ID of the firm
Get a firm by ID
Returns a single firm visible to the authenticated customer. The FEIN is always masked to **** and never returned in full here; use GET /v2/firms/{firmId}/fein (audited) for the full value.
Returns 404 if the firm does not exist or is not visible to the authenticated customer. A 403 is returned only when the caller’s token lacks the required scope; cross-customer access returns 404, not 403.
Path Parameters
Response
application/json
Response
Firm retrieved successfully.
FirmV2
Customer-facing firm resource. The FEIN is always masked to ****; the full FEIN is available only via GET /v2/firms/{firmId}/fein (audited).
The unique identifier of the firm.
Example:550e8400-e29b-41d4-a716-446655440000
National Producer Number.
Example:1234567
Legal name of the firm.
Example:Acme Insurance LLC
Primary contact email address.
Example:contact@acme.com
Business entity type (SC, LLC, SP).
Example:LLC
FINRA CRD number (digits only, max 11 characters).
Example:12345
Masked Federal Employer Identification Number. Always returned as ****. The full FEIN is never exposed by this endpoint.
Example:****6789
Whether this is a test account.
Example:false
ISO-8601 UTC timestamp when the firm was created.
Example:2024-01-15T10:30:00Z
ISO-8601 UTC timestamp of the last update.
Example:2024-06-01T14:22:00Z
Authentication
Path Parameters
Update a firm by ID
Updates mutable fields on a firm visible to the authenticated customer. The fields npn and fein are immutable and cannot be changed via this endpoint. Omitted fields leave the stored value unchanged (partial update).
Returns 404 if the firm does not exist or is not visible to the authenticated customer. A 403 is returned only when the caller’s token lacks the required scope; cross-customer access returns 404, not 403.
Path Parameters
ID of the firm
Body
application/json
Body
UpdateFirmRequest
Fields that may be updated on a firm. All fields are optional — omitted fields leave the stored value unchanged. The npn and fein fields are immutable and cannot be set via this endpoint.
Legal name of the firm.
Example:Acme Insurance LLC
Primary contact email address.
Example:contact@acme.com
Business entity type (SC, LLC, SP).
Example:LLC
FINRA CRD number (digits only, max 11 characters).
Match pattern:^[0-9]*$
<= 11 characters
Example:12345
Response
application/json
Response
Firm updated successfully.
FirmV2
Customer-facing firm resource. The FEIN is always masked to ****; the full FEIN is available only via GET /v2/firms/{firmId}/fein (audited).
The unique identifier of the firm.
Example:550e8400-e29b-41d4-a716-446655440000
National Producer Number.
Example:1234567
Legal name of the firm.
Example:Acme Insurance LLC
Primary contact email address.
Example:contact@acme.com
Business entity type (SC, LLC, SP).
Example:LLC
FINRA CRD number (digits only, max 11 characters).
Example:12345
Masked Federal Employer Identification Number. Always returned as ****. The full FEIN is never exposed by this endpoint.
Example:****6789
Whether this is a test account.
Example:false
ISO-8601 UTC timestamp when the firm was created.
Example:2024-01-15T10:30:00Z
ISO-8601 UTC timestamp of the last update.
Example:2024-06-01T14:22:00Z
Authentication
Path Parameters
Body
Retrieve a firm's unmasked FEIN
Returns the full, unmasked Federal Employer Identification Number for the specified firm. The FEIN is masked everywhere else in the API and returned in full only by this endpoint. Every access is recorded in a durable audit log. Cross-customer or unknown ids return 404 (never 403) so resource existence is not leaked across customer boundaries.
Path Parameters
ID of the firm
Response
application/json
Response
Full unmasked FEIN retrieved successfully.
FeinDto
Carries a firm’s full, unmasked Federal Employer Identification Number. Returned only by GET /v2/firms/{firmId}/fein; the FEIN is masked in all other responses.
The unique identifier of the firm.
Example:550e8400-e29b-41d4-a716-446655440000
The full, unmasked Federal Employer Identification Number (9 digits).
Example:123456789
Authentication
Path Parameters
Persons
Operations for managing person identities
Create a person
Creates a new producer identity and associates them with the authenticated customer. The new person is immediately visible to the caller’s organization.
When sendInvite is omitted or false, the person is created without sending an email invitation. Set sendInvite: true to trigger the same invite email as the V1 ?sendInvite=true path.
Returns 400 when required fields are missing or field values fail validation.
Headers
Client-generated UUID used to deduplicate retried requests. When provided, the server caches the first successful response for this key and returns it for any subsequent request with the same key from the same client, without re-processing.
Body
application/json
Body
CreatePersonRequest
Fields for creating a new person. firstName, lastName, and primaryEmail are required. sendInvite defaults to false; set it to true to trigger an email invitation. Internal-only fields (customer ID, intake ID) are not accepted.
Example:Jane
Example:Smith
<= 100 characters
The person’s honorific title.
Allowed values:DRMRMRSMSMISS
Example:MS
The person’s name suffix.
Allowed values:JRSRIIIIIIOBEMBEBSCJPGM
Example:JR
The person’s gender.
Allowed values:MALEFEMALE
Example:FEMALE
Example:jane.smith@example.com
National Producer Number. Must start with a non-zero digit and contain only digits.
Match pattern:^[1-9][0-9]*$
<= 12 characters
FINRA CRD number. Must contain only digits.
Match pattern:^[0-9]+$
<= 11 characters
Social Security Number. Must be exactly 9 digits.
Match pattern:^[0-9]*$
>= 9 characters<= 9 characters
When true, sends an email invitation to the person. Defaults to false.
Default:false
Response
application/json
Response
Person created successfully.
PersonV2
Customer-facing producer identity. SSN is masked — only the last four digits are present via ssnLast4. The full unmasked SSN is available only via GET /v2/persons/{personId}/ssn.
The unique identifier of the person.
Example:550e8400-e29b-41d4-a716-446655440000
The person’s honorific title.
Allowed values:DRMRMRSMSMISS
Example:MS
The person’s first name.
Example:Jane
The name the person prefers to be addressed by, when different from their legal first name.
Example:Janey
The person’s middle name.
Example:Quincy
The person’s last name.
Example:Smith
The person’s name suffix.
Allowed values:JRSRIIIIIIOBEMBEBSCJPGM
Example:JR
The person’s primary contact email address.
Example:jane.smith@example.com
The person’s secondary contact email address.
Example:jane.alt@example.com
The person’s date of birth (YYYY-MM-DD).
Example:1990-05-15
The person’s gender.
Allowed values:MALEFEMALE
Example:FEMALE
The person’s country of citizenship.
Example:US
The person’s state of residence.
Example:CO
Whether the person is a United States citizen.
Example:true
Whether the person is authorized to work in the United States.
Example:true
Whether the person is married.
Example:false
National Producer Number.
Example:12345678
Whether the person’s NPN has been verified against NIPR.
The person’s FINRA Central Registration Depository (CRD) number.
Example:1234567
Last four digits of the Social Security Number. Full SSN available only via GET /v2/persons/{personId}/ssn.
Example:6789
RFC3339 timestamp when the person record was created.
Example:2026-01-15T10:30:00Z
RFC3339 timestamp of the most recent modification.
Example:2026-06-01T14:22:00Z