CWR two-way conversion

The CWR-JSON core schema is a faithful JSON expression of CWR 2.2 Revision 3. Any valid CWR 2.2 Revision 3 EDI file must be convertible into CWR-JSON, and that CWR-JSON shall be convertible back into CWR 2.2 Revision 3 EDI. The mapping below shows how CWR EDI records and fields are represented as JSON elements. It is intended to make the relationship between the original CWR structure and the CWR-JSON structure clear, so implementers can understand where each piece of data belongs.

NWR / REV — Work Registration Header

The NWR and REV records are the root of every CWR transaction.

Mapping

CWR EDI FieldJSON PathNotes
Record typework.messages.typeLowercased: "nwr", "rev", or "ack"
Title / WorkTitlework.titles[]{ value, type: "TT" }
ISWCwork.identifiers[]{ source: "iswc", value }
SubmitterWorkNumberwork.identifiers[]{ source: "submitterWorkNumber", value }
RevocationIndicatorwork.messages.revocation.indicator
RevocationReasonwork.messages.revocation.reason
AnomalousWorkIndicatorwork.flags.anomalous"Y"true
AnomalousWorkReasonwork.flags.anomalousReason
AIIndicatorwork.flags.aiUsageRaw value preserved

Notes

  • For REV: all work fields must be re-submitted in full. Structure is identical to NWR.
  • For REV with RevocationIndicator = "Y": the work is being revoked.

XRF — Work ID Cross Reference

CWR 2.2 XRF records carry additional work identifiers (society work numbers, ISWC/ISRC cross-refs, submitter IDs).

Mapping

CWR EDI FieldJSON PathNotes
OrganisationCode = ISWwork.identifiers[]{ source: "iswc", value: Identifier }
OrganisationCode = ISRwork.identifiers[]{ source: "isrc", value: Identifier }
Other OrganisationCodework.identifiers[]{ source: <OrganisationCode>, value: Identifier } (e.g. "035", "EMI")
OrganisationCode 000 / 099Skipped
ValidityNot emitted in JSON (all Y/N/U rows included)

Notes

  • Duplicate {source, value} pairs are deduplicated against NWR/REV and other XRF rows.
  • REC recordings are unchanged; ISR XRF also appears in identifiers[] (not auto-merged into recordings[]).


Did this page help you?