Skip to main content
POST
Create a publisher
This endpoint requires authentication. Include your Bearer token in the Authorization header.

Description

POST /publisher/publishers Authorization:
  • Required role: admin or higher

Code Examples

Authorizations

Authorization
string
header
required

JWT Authorization header using the Bearer scheme. Format: "Bearer {token}"

Body

application/json
name
string
required
publisherType
enum<string>
required
Available options:
original,
sub,
administrator
ipiNameNumber
string | null
ipiBaseNumber
string | null
settings
object
tenantUserId
string<uuid> | null

Must belong to the caller's tenant if provided.

Response

Publisher created.

id
string<uuid>
tenantId
integer
name
string

1-45 characters (VALIDATION_RULES.publisher.name).

ipiNameNumber
string | null

11-digit IPI name number. Unique per tenant when set.

ipiBaseNumber
string | null

13-character IPI base number. Unique per tenant when set.

publisherType
enum<string>
default:original
Available options:
original,
sub,
administrator
affiliatedPRO
string | null
isActive
boolean
default:true
settings
object
territories
object[]

JSONB territory snapshot stored directly on the Publisher row. Distinct from the normalized PublisherTerritories table managed by the /territories endpoints.

tenantUserId
string<uuid> | null

Optional link to a TenantUser; when set and ipiNameNumber is absent, some read paths fall back to the linked user's IPI.

PublisherTerritories
object[]

Present on list/get responses (Sequelize include, unaliased plural).

PublisherAgreements
object[]

Present on GET /publishers/{id} and GET /publishers/me only.

userData
object | null

Linked TenantUser (id, firstName, lastName, email, ipi), present when tenantUserId is set.

createdAt
string<date-time>
updatedAt
string<date-time>