Titles, Identifiers, Messages, Flags

Titles

The titles array contains all title entries for the work. Each element comes from one of three CWR record types.

Fields

FieldTypeReqDescription
valuestringMThe title text
typestringOCWR title type code — see Title Types
languagestringOISO language code (e.g., "JA", "ZH", "KO"). Present on NAT titles only.

Sources

CWR Recordtype valueNotes
NWR / REV"TT"The main registration title
ALT"ALT"Alternate title
NAT"NAT"Non-Roman alphabet title; carries language

Deduplication: {value, type} pairs that appear more than once are collapsed to a single entry.

Example

"titles": [
  { "value": "BOHEMIAN RHAPSODY", "type": "TT" },
  { "value": "BOHEMIAN RHAP", "type": "ALT" },
  { "value": "ボヘミアン・ラプソディ", "type": "NAT", "language": "JA" }
]

Identifiers

The identifiers array contains all identifiers assigned to the work.

Fields

FieldTypeReqDescription
sourcestringMIdentifier namespace — see Identifier Sources
valuestringMThe identifier value

Sources

sourceCWR SourceDescription
"iswc"NWR.ISWC, XRF (ISW)International Standard Work Code (ISO 15707)
"isrc"XRF (ISR)ISRC cross-reference on the work
"submitterWorkNumber"NWR.SubmitterWorkNumberSubmitter's internal work number
Society code (e.g. "035")XRF (OrganisationCode)Society-assigned work identifier
Submitter code (e.g. "EMI")XRF (OrganisationCode)Publisher/submitter-assigned work ID
"proprietary"XRF (no org code)Fallback when organisation code is missing

XRF mapping

CWR 2.2 XRF (Work ID Cross Reference) rows append to identifiers[]:

OrganisationCodesource in JSONvalue
ISWiswcIdentifier
ISRisrcIdentifier
Society / submitter codesame as org codeIdentifier
000, 099(skipped)

All Validity values (Y, N, U) are emitted. {source, value} duplicates (e.g. NWR ISWC + XRF ISW) are deduplicated.

Example

"identifiers": [
  { "source": "iswc", "value": "T-000.000.001-0" },
  { "source": "submitterWorkNumber", "value": "EMI-00042" },
  { "source": "035", "value": "3987389001" },
  { "source": "isrc", "value": "USRC17607839" },
  { "source": "EMI", "value": "EMI-00042" }
]

Messages

The messages object carries registration metadata, status flags, and ACK message content.

Fields

FieldTypeReqSourceDescription
typestringONWR / REV / ACK"nwr", "rev", or "ack" (lowercased)
revocationobjectONWR.RevocationIndicatorPresent if the work was flagged for revocation
revocation.indicatorstringMNWR.RevocationIndicatorRaw indicator value
revocation.reasonstringONWR.RevocationReasonHuman-readable reason
relinquishmentobjectONWR.RelinquishmentIndicatorPresent if a relinquishment indicator appears
relinquishment.indicatorstringMNWR.RelinquishmentIndicatorRaw indicator value
creationDatestringOACK.CreationDateOriginal file creation date (ACK)
creationTimestringOACK.CreationTimeOriginal file creation time (ACK)
originalGroupIdstringOACK.OriginalGroupIdOriginal GRH group id (ACK)
originalTransactionSequencestringOACK.OriginalTransactionSeqOriginal transaction sequence (ACK)
originalTransactionTypestringOACK.OriginalTransactionTypee.g. NWR / REV (ACK)
creationTitlestringOACK.CreationTitleTitle as submitted (ACK)
submitterCreationNumberstringOACK.SubmitterCreationNumberSubmitter work id (ACK)
recipientCreationNumberstringOACK.RecipientCreationNumberRecipient work id (ACK)
processingDatestringOACK.ProcessingDateDate recipient processed the transaction
transactionStatusstringOACK.TransactionStatusStatus code (RA, AS, AC, RJ, …)
msgsarrayOMSG recordsACK validation messages (see below)
schemastringM(injected by schemaV1)Schema label used for this output
schemaDescriptionstringM(injected by schemaV1)Schema description
societySpecificobjectO(reserved)Reserved for society-specific extension data

msgs[] items

FieldTypeSourceDescription
statusstringMSG.MessageTypeSeverity: F/R/T/G/E
messagestringMSG.MessageTextMessage text
originalRecordSequencestringMSG.OriginalRecordSequenceRecord seq that caused the message
recordTypestringMSG.MessageRecordTypeRecord type that caused the message
messageLevelstringMSG.MessageLevelEdit level: F/R/T/G/E
validationNumberstringMSG.ValidationNumberSpec validation number

Example (NWR)

"messages": {
  "type": "nwr",
  "revocation": {
    "indicator": "Y",
    "reason": "Duplicate registration"
  }
}

Example (ACK)

"messages": {
  "type": "ack",
  "creationDate": "20260716",
  "creationTime": "113954",
  "originalGroupId": "00001",
  "originalTransactionSequence": "00000000",
  "originalTransactionType": "NWR",
  "creationTitle": "(WE ARE) THE COWBOYS",
  "submitterCreationNumber": "ALV003306733PW",
  "recipientCreationNumber": "0044170896001",
  "processingDate": "20260716",
  "transactionStatus": "AC",
  "msgs": [
    {
      "status": "F",
      "message": "WRITER CAE ENTERED NOT FOUND IN THE WRITER CAE TABLE",
      "originalRecordSequence": "00000008",
      "recordType": "OWR",
      "messageLevel": "F",
      "validationNumber": "009"
    }
  ]
}

Flags

The flags object holds boolean and indicator fields extracted from the NWR / REV record.

Fields

FieldTypeReqSource FieldDescription
anomalousbooleanONWR.AnomalousWorkIndicatortrue if the work is marked anomalous ("Y"true)
anomalousReasonstringONWR.AnomalousWorkReasonReason text for the anomalous flag
aiUsagestringONWR.AIIndicatorAI content usage indicator. Values: "M" (music), "T" (text), "B" (both), etc.
fraudulentbooleanO(reserved)Reserved for future use

Example

"flags": {
  "anomalous": true,
  "anomalousReason": "Non-standard work structure",
  "aiUsage": "M"
}


Did this page help you?