# Producer Management API



<EndpointIndex
  names={[
  	'fetchProducer',
  	'fetchProducers',
  	'fetchProducerHierarchy',
  	'createProducer',
  	'updateProducer',
  	'replaceProducer',
  	'validateProducer',
  	'discardProducer',
  	'suspendProducer',
  	'unsuspendProducer',
  	'retireProducer',
  	'fetchProducerCode',
  	'fetchProducerCodes',
  	'fetchProducerCodeByCode',
  	'createProducerCode',
  	'updateProducerCode',
  	'replaceProducerCode',
  	'validateProducerCode',
  	'discardProducerCode',
  	'suspendProducerCode',
  	'unsuspendProducerCode',
  	'retireProducerCode',
  	'generateCodeByNumber',
  	'setCodeByNumber',
  	'fetchProducerLicense',
  	'fetchProducerLicenses',
  	'createProducerLicense',
  	'updateProducerLicense',
  	'replaceProducerLicense',
  	'validateProducerLicense',
  	'discardProducerLicense',
  	'fetchProducerAppointment',
  	'fetchProducerAppointments',
  	'createProducerAppointment',
  	'updateProducerAppointment',
  	'replaceProducerAppointment',
  	'validateProducerAppointment',
  	'discardProducerAppointment',
  ]}
/>

Producers [#producers]

Fetch Producer [#fetch-producer]

<ApiEndpoint name="fetchProducer" />

Fetch Producers [#fetch-producers]

<ApiEndpoint name="fetchProducers" />

Fetch Producer Hierarchy [#fetch-producer-hierarchy]

<ApiEndpoint name="fetchProducerHierarchy" />

Create Producer [#create-producer]

<ApiEndpoint name="createProducer" />

Update Producer [#update-producer]

<ApiEndpoint name="updateProducer" />

Replace Producer [#replace-producer]

<ApiEndpoint name="replaceProducer" />

Validate Producer [#validate-producer]

<ApiEndpoint name="validateProducer" />

Discard Producer [#discard-producer]

<ApiEndpoint name="discardProducer" />

Suspend Producer [#suspend-producer]

<ApiEndpoint name="suspendProducer" />

Unsuspend Producer [#unsuspend-producer]

<ApiEndpoint name="unsuspendProducer" />

Retire Producer [#retire-producer]

<ApiEndpoint name="retireProducer" />

Producer Codes [#producer-codes]

Fetch Producer Code [#fetch-producer-code]

<ApiEndpoint name="fetchProducerCode" />

Fetch Producer Codes [#fetch-producer-codes]

<ApiEndpoint name="fetchProducerCodes" />

Fetch Producer Code By Code [#fetch-producer-code-by-code]

<ApiEndpoint name="fetchProducerCodeByCode" />

Create Producer Code [#create-producer-code]

<ApiEndpoint name="createProducerCode" />

Update Producer Code [#update-producer-code]

<ApiEndpoint name="updateProducerCode" />

Replace Producer Code [#replace-producer-code]

<ApiEndpoint name="replaceProducerCode" />

Validate Producer Code [#validate-producer-code]

<ApiEndpoint name="validateProducerCode" />

Discard Producer Code [#discard-producer-code]

<ApiEndpoint name="discardProducerCode" />

Suspend Producer Code [#suspend-producer-code]

<ApiEndpoint name="suspendProducerCode" />

Unsuspend Producer Code [#unsuspend-producer-code]

<ApiEndpoint name="unsuspendProducerCode" />

Retire Producer Code [#retire-producer-code]

<ApiEndpoint name="retireProducerCode" />

Generate Code By Number [#generate-code-by-number]

<ApiEndpoint name="generateCodeByNumber" />

Set Code By Number [#set-code-by-number]

<ApiEndpoint name="setCodeByNumber" />

Licenses [#licenses]

Fetch Producer License [#fetch-producer-license]

<ApiEndpoint name="fetchProducerLicense" />

Fetch Producer Licenses [#fetch-producer-licenses]

<ApiEndpoint name="fetchProducerLicenses" />

Create Producer License [#create-producer-license]

<ApiEndpoint name="createProducerLicense" />

Update Producer License [#update-producer-license]

<ApiEndpoint name="updateProducerLicense" />

Replace Producer License [#replace-producer-license]

<ApiEndpoint name="replaceProducerLicense" />

Validate Producer License [#validate-producer-license]

<ApiEndpoint name="validateProducerLicense" />

Discard Producer License [#discard-producer-license]

<ApiEndpoint name="discardProducerLicense" />

Appointments [#appointments]

Fetch Producer Appointment [#fetch-producer-appointment]

<ApiEndpoint name="fetchProducerAppointment" />

Fetch Producer Appointments [#fetch-producer-appointments]

<ApiEndpoint name="fetchProducerAppointments" />

Create Producer Appointment [#create-producer-appointment]

<ApiEndpoint name="createProducerAppointment" />

Update Producer Appointment [#update-producer-appointment]

<ApiEndpoint name="updateProducerAppointment" />

Replace Producer Appointment [#replace-producer-appointment]

<ApiEndpoint name="replaceProducerAppointment" />

Validate Producer Appointment [#validate-producer-appointment]

<ApiEndpoint name="validateProducerAppointment" />

Discard Producer Appointment [#discard-producer-appointment]

<ApiEndpoint name="discardProducerAppointment" />

<ApiSchema name="ProducerResponse" />

<ApiSchema name="ListPageResponseProducerResponse" />

<ApiSchema name="ProducerHierarchyResponse" />

<ApiSchema name="ProducerCreateRequest" />

<ApiSchema name="ProducerUpdateRequest" />

<ApiSchema name="ProducerCodeResponse" />

<ApiSchema name="ListPageResponseProducerCodeResponse" />

<ApiSchema name="ProducerCodeCreateRequest" />

<ApiSchema name="ProducerCodeUpdateRequest" />

<ApiSchema name="ProducerCodeReplaceRequest" />

<ApiSchema name="ProducerLicenseResponse" />

<ApiSchema name="ListPageResponseProducerLicenseResponse" />

<ApiSchema name="ProducerLicenseCreateRequest" />

<ApiSchema name="ProducerLicenseUpdateRequest" />

<ApiSchema name="ProducerLicenseReplaceRequest" />

<ApiSchema name="ProducerAppointmentResponse" />

<ApiSchema name="ListPageResponseProducerAppointmentResponse" />

<ApiSchema name="ProducerAppointmentCreateRequest" />

<ApiSchema name="ProducerAppointmentUpdateRequest" />

<ApiSchema name="ProducerAppointmentReplaceRequest" />


## API Reference

GET /producers/{tenantLocator}/producers/{producerLocator} — fetchProducer
Tags: producers-controller
Permissions: read
Parameters:
  tenantLocator (uuid, path, required)
  producerLocator (ulid, path, required)
Responses:
  200 ProducerResponse — OK

GET /producers/{tenantLocator}/producers/list — fetchProducers
Tags: producers-controller
Permissions: read, list
Parameters:
  tenantLocator (uuid, path, required)
  offset (integer, query)
  count (integer, query)
Responses:
  200 ListPageResponseProducerResponse — OK

GET /producers/{tenantLocator}/producers/{producerLocator}/producerHierarchy — fetchProducerHierarchy
Tags: producers-controller
Permissions: read
Parameters:
  tenantLocator (uuid, path, required)
  producerLocator (ulid, path, required)
Responses:
  200 ProducerHierarchyResponse — OK

POST /producers/{tenantLocator}/producers — createProducer
Tags: producers-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
Request body (ProducerCreateRequest):
Responses:
  200 ProducerResponse — OK

PATCH /producers/{tenantLocator}/producers/{producerLocator} — updateProducer
Tags: producers-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
  producerLocator (ulid, path, required)
Request body (ProducerUpdateRequest):
Responses:
  200 ProducerResponse — OK

PUT /producers/{tenantLocator}/producers/{producerLocator} — replaceProducer
Tags: producers-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
  producerLocator (ulid, path, required)
Request body (ProducerCreateRequest):
Responses:
  200 ProducerResponse — OK

PATCH /producers/{tenantLocator}/producers/{producerLocator}/validate — validateProducer
Tags: producers-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
  producerLocator (ulid, path, required)
Responses:
  200 ProducerResponse — OK

PATCH /producers/{tenantLocator}/producers/{producerLocator}/discard — discardProducer
Tags: producers-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
  producerLocator (ulid, path, required)
Responses:
  200 ProducerResponse — OK

PATCH /producers/{tenantLocator}/producers/{producerLocator}/suspend — suspendProducer
Tags: producers-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
  producerLocator (ulid, path, required)
Responses:
  200 ProducerResponse — OK

PATCH /producers/{tenantLocator}/producers/{producerLocator}/unsuspend — unsuspendProducer
Tags: producers-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
  producerLocator (ulid, path, required)
Responses:
  200 ProducerResponse — OK

PATCH /producers/{tenantLocator}/producers/{producerLocator}/retire — retireProducer
Tags: producers-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
  producerLocator (ulid, path, required)
Responses:
  200 ProducerResponse — OK

GET /producers/{tenantLocator}/producers/{producerLocator}/codes/{producerCodeLocator} — fetchProducerCode
Tags: producers-controller
Permissions: read
Parameters:
  tenantLocator (uuid, path, required)
  producerLocator (ulid, path, required)
  producerCodeLocator (ulid, path, required)
Responses:
  200 ProducerCodeResponse — OK

GET /producers/{tenantLocator}/producers/{producerLocator}/codes/list — fetchProducerCodes
Tags: producers-controller
Permissions: read, list
Parameters:
  tenantLocator (uuid, path, required)
  producerLocator (ulid, path, required)
  offset (integer, query)
  count (integer, query)
Responses:
  200 ListPageResponseProducerCodeResponse — OK

GET /producers/{tenantLocator}/producers/codes/{code} — fetchProducerCodeByCode
Tags: producers-controller
Permissions: read
Parameters:
  tenantLocator (uuid, path, required)
  code (string, path, required)
Responses:
  200 ProducerCodeResponse — OK

POST /producers/{tenantLocator}/producers/{producerLocator}/codes — createProducerCode
Tags: producers-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
  producerLocator (ulid, path, required)
Request body (ProducerCodeCreateRequest):
Responses:
  200 ProducerCodeResponse — OK

PATCH /producers/{tenantLocator}/producers/{producerLocator}/codes/{producerCodeLocator} — updateProducerCode
Tags: producers-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
  producerLocator (ulid, path, required)
  producerCodeLocator (ulid, path, required)
Request body (ProducerCodeUpdateRequest):
Responses:
  200 ProducerCodeResponse — OK

PUT /producers/{tenantLocator}/producers/{producerLocator}/codes/{producerCodeLocator} — replaceProducerCode
Tags: producers-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
  producerLocator (ulid, path, required)
  producerCodeLocator (ulid, path, required)
Request body (ProducerCodeReplaceRequest):
Responses:
  200 ProducerCodeResponse — OK

PATCH /producers/{tenantLocator}/producers/{producerLocator}/codes/{producerCodeLocator}/validate — validateProducerCode
Tags: producers-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
  producerLocator (ulid, path, required)
  producerCodeLocator (ulid, path, required)
Responses:
  200 ProducerCodeResponse — OK

PATCH /producers/{tenantLocator}/producers/{producerLocator}/codes/{producerCodeLocator}/discard — discardProducerCode
Tags: producers-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
  producerLocator (ulid, path, required)
  producerCodeLocator (ulid, path, required)
Responses:
  200 ProducerCodeResponse — OK

PATCH /producers/{tenantLocator}/producers/{producerLocator}/codes/{producerCodeLocator}/suspend — suspendProducerCode
Tags: producers-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
  producerLocator (ulid, path, required)
  producerCodeLocator (ulid, path, required)
Responses:
  200 ProducerCodeResponse — OK

PATCH /producers/{tenantLocator}/producers/{producerLocator}/codes/{producerCodeLocator}/unsuspend — unsuspendProducerCode
Tags: producers-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
  producerLocator (ulid, path, required)
  producerCodeLocator (ulid, path, required)
Responses:
  200 ProducerCodeResponse — OK

PATCH /producers/{tenantLocator}/producers/{producerLocator}/codes/{producerCodeLocator}/retire — retireProducerCode
Tags: producers-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
  producerLocator (ulid, path, required)
  producerCodeLocator (ulid, path, required)
Responses:
  200 ProducerCodeResponse — OK

POST /producers/{tenantLocator}/producers/{producerLocator}/codes/{producerCodeLocator}/number/generate — generateCodeByNumber
Tags: producers-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
  producerLocator (ulid, path, required)
  producerCodeLocator (ulid, path, required)
Responses:
  200 ProducerCodeResponse — OK

POST /producers/{tenantLocator}/producers/{producerLocator}/codes/{producerCodeLocator}/number/set — setCodeByNumber
Tags: producers-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
  producerLocator (ulid, path, required)
  producerCodeLocator (ulid, path, required)
  code (string, query, required)
Responses:
  200 ProducerCodeResponse — OK

GET /producers/{tenantLocator}/producers/{producerLocator}/licenses/{producerLicenseLocator} — fetchProducerLicense
Tags: producer-licenses-controller
Permissions: read
Parameters:
  tenantLocator (uuid, path, required)
  producerLocator (ulid, path, required)
  producerLicenseLocator (ulid, path, required)
Responses:
  200 ProducerLicenseResponse — OK

GET /producers/{tenantLocator}/producers/{producerLocator}/licenses/list — fetchProducerLicenses
Tags: producer-licenses-controller
Permissions: read, list
Parameters:
  tenantLocator (uuid, path, required)
  producerLocator (ulid, path, required)
  offset (integer, query)
  count (integer, query)
Responses:
  200 ListPageResponseProducerLicenseResponse — OK

POST /producers/{tenantLocator}/producers/{producerLocator}/licenses — createProducerLicense
Tags: producer-licenses-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
  producerLocator (ulid, path, required)
Request body (ProducerLicenseCreateRequest):
Responses:
  200 ProducerLicenseResponse — OK

PATCH /producers/{tenantLocator}/producers/{producerLocator}/licenses/{producerLicenseLocator} — updateProducerLicense
Tags: producer-licenses-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
  producerLocator (ulid, path, required)
  producerLicenseLocator (ulid, path, required)
Request body (ProducerLicenseUpdateRequest):
Responses:
  200 ProducerLicenseResponse — OK

PUT /producers/{tenantLocator}/producers/{producerLocator}/licenses/{producerLicenseLocator} — replaceProducerLicense
Tags: producer-licenses-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
  producerLocator (ulid, path, required)
  producerLicenseLocator (ulid, path, required)
Request body (ProducerLicenseReplaceRequest):
Responses:
  200 ProducerLicenseResponse — OK

PATCH /producers/{tenantLocator}/producers/{producerLocator}/licenses/{producerLicenseLocator}/validate — validateProducerLicense
Tags: producer-licenses-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
  producerLocator (ulid, path, required)
  producerLicenseLocator (ulid, path, required)
Responses:
  200 ProducerLicenseResponse — OK

PATCH /producers/{tenantLocator}/producers/{producerLocator}/licenses/{producerLicenseLocator}/discard — discardProducerLicense
Tags: producer-licenses-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
  producerLocator (ulid, path, required)
  producerLicenseLocator (ulid, path, required)
Responses:
  200 ProducerLicenseResponse — OK

GET /producers/{tenantLocator}/producers/{producerLocator}/appointments/{producerAppointmentLocator} — fetchProducerAppointment
Tags: producer-appointments-controller
Permissions: read
Parameters:
  tenantLocator (uuid, path, required)
  producerLocator (ulid, path, required)
  producerAppointmentLocator (ulid, path, required)
Responses:
  200 ProducerAppointmentResponse — OK

GET /producers/{tenantLocator}/producers/{producerLocator}/appointments/list — fetchProducerAppointments
Tags: producer-appointments-controller
Permissions: read, list
Parameters:
  tenantLocator (uuid, path, required)
  producerLocator (ulid, path, required)
  offset (integer, query)
  count (integer, query)
Responses:
  200 ListPageResponseProducerAppointmentResponse — OK

POST /producers/{tenantLocator}/producers/{producerLocator}/appointments — createProducerAppointment
Tags: producer-appointments-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
  producerLocator (ulid, path, required)
Request body (ProducerAppointmentCreateRequest):
Responses:
  200 ProducerAppointmentResponse — OK

PATCH /producers/{tenantLocator}/producers/{producerLocator}/appointments/{producerAppointmentLocator} — updateProducerAppointment
Tags: producer-appointments-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
  producerLocator (ulid, path, required)
  producerAppointmentLocator (ulid, path, required)
Request body (ProducerAppointmentUpdateRequest):
Responses:
  200 ProducerAppointmentResponse — OK

PUT /producers/{tenantLocator}/producers/{producerLocator}/appointments/{producerAppointmentLocator} — replaceProducerAppointment
Tags: producer-appointments-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
  producerLocator (ulid, path, required)
  producerAppointmentLocator (ulid, path, required)
Request body (ProducerAppointmentReplaceRequest):
Responses:
  200 ProducerAppointmentResponse — OK

PATCH /producers/{tenantLocator}/producers/{producerLocator}/appointments/{producerAppointmentLocator}/validate — validateProducerAppointment
Tags: producer-appointments-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
  producerLocator (ulid, path, required)
  producerAppointmentLocator (ulid, path, required)
Responses:
  200 ProducerAppointmentResponse — OK

PATCH /producers/{tenantLocator}/producers/{producerLocator}/appointments/{producerAppointmentLocator}/discard — discardProducerAppointment
Tags: producer-appointments-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
  producerLocator (ulid, path, required)
  producerAppointmentLocator (ulid, path, required)
Responses:
  200 ProducerAppointmentResponse — OK

ProducerResponse
Properties:
  locator (ulid, required)
  type (string, required)
  producerState (Enum draft | validated | suspended | discarded | retired, required)
  parentLocator (ulid)
  data (map<string, object>)
  createdAt (datetime, required)
  createdBy (uuid, required)
  validationResult (ValidationResult)

ListPageResponseProducerResponse
Properties:
  listCompleted (boolean, required)
  items (ProducerResponse[], required)

ProducerHierarchyResponse
Properties:
  locator (ulid, required)
  type (string, required)
  producerState (Enum draft | validated | suspended | discarded | retired, required)
  parentLocator (ulid)
  data (map<string, object>)
  createdAt (datetime, required)
  createdBy (uuid, required)
  validationResult (ValidationResult)
  childProducers (ProducerHierarchyResponse[], required)

ProducerCreateRequest
Properties:
  type (string, required)
  parentLocator (ulid)
  data (map<string, object>)

ProducerUpdateRequest
Properties:
  type (string)
  parentLocator (ulid)
  setData (map<string, object>, required)
  removeData (map<string, object>, required)

ProducerCodeResponse
Properties:
  locator (ulid, required)
  type (string, required)
  producerCodeState (Enum draft | validated | suspended | discarded | retired, required)
  producerLocator (ulid, required)
  code (string)
  data (map<string, object>)
  createdAt (datetime, required)
  createdBy (uuid, required)
  validationResult (ValidationResult)

ListPageResponseProducerCodeResponse
Properties:
  listCompleted (boolean, required)
  items (ProducerCodeResponse[], required)

ProducerCodeCreateRequest
Properties:
  type (string, required)
  code (string)
  data (map<string, object>)

ProducerCodeUpdateRequest
Properties:
  type (string)
  producerLocator (ulid)
  code (string)
  setData (map<string, object>, required)
  removeData (map<string, object>, required)

ProducerCodeReplaceRequest
Properties:
  producerLocator (ulid, required)
  type (string, required)
  code (string)
  data (map<string, object>)

ProducerLicenseResponse
Properties:
  locator (ulid, required)
  type (string, required)
  producerLicenseState (Enum draft | validated | discarded, required)
  producerLocator (ulid, required)
  licenseNumber (string)
  producerCodes (string[], required)
  jurisdictions (string[], required)
  products (string[], required)
  effectiveTime (datetime)
  expirationTime (datetime)
  data (map<string, object>)
  createdAt (datetime, required)
  createdBy (uuid, required)
  validationResult (ValidationResult)

ListPageResponseProducerLicenseResponse
Properties:
  listCompleted (boolean, required)
  items (ProducerLicenseResponse[], required)

ProducerLicenseCreateRequest
Properties:
  type (string, required)
  licenseNumber (string)
  producerCodes (string[], required)
  jurisdictions (string[], required)
  products (string[], required)
  effectiveTime (datetime)
  expirationTime (datetime)
  data (map<string, object>)

ProducerLicenseUpdateRequest
Properties:
  producerLocator (ulid)
  type (string)
  licenseNumber (string)
  producerCodes (string[])
  jurisdictions (string[])
  products (string[])
  effectiveTime (datetime)
  expirationTime (datetime)
  setData (map<string, object>, required)
  removeData (map<string, object>, required)

ProducerLicenseReplaceRequest
Properties:
  producerLocator (ulid, required)
  type (string, required)
  licenseNumber (string)
  producerCodes (string[], required)
  jurisdictions (string[], required)
  products (string[], required)
  effectiveTime (datetime)
  expirationTime (datetime)
  data (map<string, object>)

ProducerAppointmentResponse
Properties:
  locator (ulid, required)
  type (string, required)
  producerAppointmentState (Enum draft | validated | discarded, required)
  producerLocator (ulid, required)
  appointmentNumber (string)
  producerCodes (string[], required)
  jurisdictions (string[], required)
  products (string[], required)
  licenses (ulid[], required)
  effectiveTime (datetime)
  expirationTime (datetime)
  data (map<string, object>)
  createdAt (datetime, required)
  createdBy (uuid, required)
  validationResult (ValidationResult)

ListPageResponseProducerAppointmentResponse
Properties:
  listCompleted (boolean, required)
  items (ProducerAppointmentResponse[], required)

ProducerAppointmentCreateRequest
Properties:
  type (string, required)
  appointmentNumber (string)
  producerCodes (string[], required)
  jurisdictions (string[], required)
  products (string[], required)
  licenses (ulid[], required)
  effectiveTime (datetime)
  expirationTime (datetime)
  data (map<string, object>)

ProducerAppointmentUpdateRequest
Properties:
  producerLocator (ulid)
  type (string)
  appointmentNumber (string)
  producerCodes (string[])
  jurisdictions (string[])
  products (string[])
  licenses (ulid[])
  effectiveTime (datetime)
  expirationTime (datetime)
  setData (map<string, object>, required)
  removeData (map<string, object>, required)

ProducerAppointmentReplaceRequest
Properties:
  producerLocator (ulid, required)
  type (string, required)
  appointmentNumber (string)
  producerCodes (string[], required)
  jurisdictions (string[], required)
  products (string[], required)
  licenses (ulid[], required)
  effectiveTime (datetime)
  expirationTime (datetime)
  data (map<string, object>)