# Licenses



import Image from 'next/image';

Licenses authorize [producers](/features/producer-management/producers) to conduct business in relation to specific [products ](/getting-started/create-a-tenant-configuration-file#what-is-an-insurance-product) and [jurisdictions](/features/jurisdictions). Each license is associated with one producer. Products can be configured to require producers associated with a quote or policy transaction to have a [valid license](#LicenseCriteria) when an underwriting request is processed.

Licenses can contain extension [data](/configuration/data-extensions/overview). Extension data for licenses supports [media](/features/work-management/media) data.

Lifecycle [#lifecycle]

The following diagram illustrates the lifecycle for licenses:

<Image src="/images/producer-management/license-lifecycle.png" alt="License lifecycle" width={500} height={129} unoptimized />

Licenses begin in the `draft` state after creation and will move to the `validated` state following a successful validation request.

Licenses in the `draft` or `validated` states will move to the `discarded` state following a successful discard request. Once licenses are moved to the `discarded` state, they cannot be moved back to the `validated` state and cannot be used again.

Configuration [#configuration]

Before licenses can be created, they must be defined within the `producerLicenses` object in the `producerManagement` <ApiLink name="ConfigurationRef">configuration</ApiLink> object.

For example:

```json
{
	"producerManagement": {
		"producerLicenses": {
			"ExampleProducerLicense": {
				"abstract": true,
				"extend": "AnotherProducerLicense",
				"data": {},
				"defaultSearchable": false
			}
		}
	}
}
```

Licenses can be defined as `abstract`, meaning they cannot be created directly. Licenses can inherit data from the license specified in the `extend` field.

Extension [data](/configuration/data-extensions/overview) can be defined in the `data` field.

The `defaultSearchable` field can be used to modify [search](/features/search) behavior.

Create a License [#create-a-license]

Once your configuration changes have been deployed, create a license through the <ApiLink name="createProducerLicense" /> API endpoint.

Here's an example request:

```json
{
	"type": "ExampleProducerLicense",
	"licenseNumber": "34677263",
	"producerCodes": ["43668", "84634"], // An empty list means all producer codes associated with a producer
	"jurisdictions": ["CA", "FL"], // An empty list means all jurisdictions
	"products": ["CommercialAuto", "CommercialProperty"], // An empty list means all products
	"effectiveTime": "2026-06-15T00:00:00Z",
	"expirationTime": "2027-06-15T00:00:00Z",
	"data": {}
}
```

The request object contains the following fields:

* `type` - The name of a license listed in the `producerLicenses` configuration object
* `licenseNumber` - A license number associated with the license
* `producerCodes` - The producer codes covered by the license
* `jurisdictions` - The jurisdictions covered by the license
* `products` - The products covered by the license
* `effectiveTime` - When the license becomes active
* `expirationTime` - When the license expires
* `data` - Extension [data](/configuration/data-extensions/overview)

An empty list for `producerCodes`, `jurisdictions`, or `products` means the license applies to all possible values for the given field.

The `producerCodes` field can include producer codes associated with the producer and producer codes associated with producers contained within the producer hierarchy.

License details can be updated through the <ApiLink name="updateProducerLicense" /> API endpoint. Expired licenses can be renewed by updating the `effectiveTime` and `expirationTime` values.

Use the <ApiLink name="validateProducerLicense" /> API endpoint to validate a license.

Refer to the [Producer Management API](/api/producer-management) index for additional API endpoints.

<span id="LicenseCriteria" />

Underwriting Criteria for Licenses [#underwriting-criteria-for-licenses]

Products can be configured to require [producers associated with a quote or policy transaction](/features/producer-management/producers#associateProducer) to meet the following underwriting criteria:

* Producers must have a non-expired license currently in effect and in the `validated` state for the product.
* Producers must have a license associated with the `jurisdiction` that matches the `jurisdiction` associated with the product. See the [Jurisdictions](/features/jurisdictions) feature guide for more information.

These requirements can be enabled by setting the `producerQualification` field at the top level of the <ApiLink name="ProductRef" /> configuration to `license`. The default value is `none`.

If the `producerQualification` field is set to `license`, and a quote or policy transaction associated with a producer fails to meet the above underwriting criteria, <ApiLink name="underwriteQuote">underwriting</ApiLink> requests will fail, and the system will automatically add an [underwriting](/features/underwriting) flag to the quote or policy transaction. See the [Producers](/features/producer-management/producers#underwritingFlagProducers) feature guide for more information.

Underwriting criteria for licenses are evaluated based on the `producerCode` associated with a quote or policy transaction. The `producerCodeOfRecord` associated with a quote or policy transaction has no effect on underwriting criteria for licenses.

<Callout>
  These requirements are only enforced if a quote or policy transaction is associated with a producer. If a product is not associated with a `jurisdiction`, producers associated with the product are not required to have an association with any specific `jurisdiction`.
</Callout>

Here's an example product configuration:

```json
{
	"products": {
		"CommercialAuto": {
			"producerQualification": "license" // none | license | appointment - The default value is none
		}
	}
}
```

Next Steps [#next-steps]

* [Appointments](/features/producer-management/appointments)

See Also [#see-also]

* [Producers](/features/producer-management/producers)
* [Producer Management API](/api/producer-management)
* <ApiLink name="ProducerManagementRef" />
* [Jurisdictions](/features/jurisdictions)
* [Data Extensions](/configuration/data-extensions/overview)
* [Underwriting](/features/underwriting)
