Create or update a CWR registration
POST /work/registrations
Description
POST /work/registrations Description: Upserts aWorkRegistration keyed on (tenantId, societyCode, workId). workId may be omitted/null for a society-level
registration not tied to a specific work. queuedAt is never set
by this endpoint — creation always leaves the row un-queued
(registrationStatus: pending unless another status is given);
use POST .../queue to opt in to PRO submission.
Authorization:
- Required role:
adminor higher
Code Examples
Authorizations
JWT Authorization header using the Bearer scheme. Format: "Bearer {token}"
Body
Upsert keyed on (tenantId, societyCode, workId) — an existing row
for the same work/society pair is updated (200) rather than
duplicated; otherwise a new row is created (201). metadata is
shallow-merged into the existing value on update.
2 - 3pending, submitted, registered, rejected, conflict, cancelled Omit/null for a society-level registration not tied to a specific work
Response
Existing registration for this work/society updated
2-3 character society code (e.g. ASCAP, BMI, PRS)
pending, submitted, registered, rejected, conflict, cancelled External/society-assigned registration identifier (distinct from the row's own id)
Set when the row is explicitly queued for PRO submission; null on creation
Present when eager-loaded