curl --request POST \
--url https://public.api.live.turrisfi.com/v1/downstream-entity-associations/dangerously-invite \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"useInviteUrl": false,
"isNpnRequired": true,
"downstreamEntityName": "ABC Insurance Agency",
"firstName": "Jon",
"lastName": "Doe",
"email": "example@test.com",
"category": "agency",
"producerCode": "PROD-001",
"externalId": "EXT-12345",
"contractContainerTemplateId": "507f1f77bcf86cd799439011",
"producerAgreementId": "<string>",
"parentProducerCode": "PARENT-001",
"customFields": {
"customField1": "value1",
"customField2": 123
},
"customFieldValues": {
"commission_rate": 10,
"effective_date": "2026-06-01"
}
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
useInviteUrl: false,
isNpnRequired: true,
downstreamEntityName: 'ABC Insurance Agency',
firstName: 'Jon',
lastName: 'Doe',
email: 'example@test.com',
category: 'agency',
producerCode: 'PROD-001',
externalId: 'EXT-12345',
contractContainerTemplateId: '507f1f77bcf86cd799439011',
producerAgreementId: '<string>',
parentProducerCode: 'PARENT-001',
customFields: {customField1: 'value1', customField2: 123},
customFieldValues: {commission_rate: 10, effective_date: '2026-06-01'}
})
};
fetch('https://public.api.live.turrisfi.com/v1/downstream-entity-associations/dangerously-invite', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://public.api.live.turrisfi.com/v1/downstream-entity-associations/dangerously-invite"
payload = {
"useInviteUrl": False,
"isNpnRequired": True,
"downstreamEntityName": "ABC Insurance Agency",
"firstName": "Jon",
"lastName": "Doe",
"email": "example@test.com",
"category": "agency",
"producerCode": "PROD-001",
"externalId": "EXT-12345",
"contractContainerTemplateId": "507f1f77bcf86cd799439011",
"producerAgreementId": "<string>",
"parentProducerCode": "PARENT-001",
"customFields": {
"customField1": "value1",
"customField2": 123
},
"customFieldValues": {
"commission_rate": 10,
"effective_date": "2026-06-01"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"data": {
"url": "<string>"
},
"requestId": "dev-2c5e7cf2-9acf-4c8c-ab2f-b81f39d775a8",
"timestamp": "2025-11-12T20:49:03.293Z"
}{
"statusCode": 123,
"requestId": "<string>",
"errorType": "validation_error",
"errorMessage": [
"<string>"
],
"timestamp": "<string>",
"details": {}
}{
"statusCode": 123,
"requestId": "<string>",
"errorType": "validation_error",
"errorMessage": [
"<string>"
],
"timestamp": "<string>",
"details": {}
}{
"statusCode": 123,
"requestId": "<string>",
"errorType": "validation_error",
"errorMessage": [
"<string>"
],
"timestamp": "<string>",
"details": {}
}{
"statusCode": 123,
"requestId": "<string>",
"errorType": "validation_error",
"errorMessage": [
"<string>"
],
"timestamp": "<string>",
"details": {}
}Invite (Dangerously)
Send an invitation without validation checks
curl --request POST \
--url https://public.api.live.turrisfi.com/v1/downstream-entity-associations/dangerously-invite \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"useInviteUrl": false,
"isNpnRequired": true,
"downstreamEntityName": "ABC Insurance Agency",
"firstName": "Jon",
"lastName": "Doe",
"email": "example@test.com",
"category": "agency",
"producerCode": "PROD-001",
"externalId": "EXT-12345",
"contractContainerTemplateId": "507f1f77bcf86cd799439011",
"producerAgreementId": "<string>",
"parentProducerCode": "PARENT-001",
"customFields": {
"customField1": "value1",
"customField2": 123
},
"customFieldValues": {
"commission_rate": 10,
"effective_date": "2026-06-01"
}
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
useInviteUrl: false,
isNpnRequired: true,
downstreamEntityName: 'ABC Insurance Agency',
firstName: 'Jon',
lastName: 'Doe',
email: 'example@test.com',
category: 'agency',
producerCode: 'PROD-001',
externalId: 'EXT-12345',
contractContainerTemplateId: '507f1f77bcf86cd799439011',
producerAgreementId: '<string>',
parentProducerCode: 'PARENT-001',
customFields: {customField1: 'value1', customField2: 123},
customFieldValues: {commission_rate: 10, effective_date: '2026-06-01'}
})
};
fetch('https://public.api.live.turrisfi.com/v1/downstream-entity-associations/dangerously-invite', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://public.api.live.turrisfi.com/v1/downstream-entity-associations/dangerously-invite"
payload = {
"useInviteUrl": False,
"isNpnRequired": True,
"downstreamEntityName": "ABC Insurance Agency",
"firstName": "Jon",
"lastName": "Doe",
"email": "example@test.com",
"category": "agency",
"producerCode": "PROD-001",
"externalId": "EXT-12345",
"contractContainerTemplateId": "507f1f77bcf86cd799439011",
"producerAgreementId": "<string>",
"parentProducerCode": "PARENT-001",
"customFields": {
"customField1": "value1",
"customField2": 123
},
"customFieldValues": {
"commission_rate": 10,
"effective_date": "2026-06-01"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"data": {
"url": "<string>"
},
"requestId": "dev-2c5e7cf2-9acf-4c8c-ab2f-b81f39d775a8",
"timestamp": "2025-11-12T20:49:03.293Z"
}{
"statusCode": 123,
"requestId": "<string>",
"errorType": "validation_error",
"errorMessage": [
"<string>"
],
"timestamp": "<string>",
"details": {}
}{
"statusCode": 123,
"requestId": "<string>",
"errorType": "validation_error",
"errorMessage": [
"<string>"
],
"timestamp": "<string>",
"details": {}
}{
"statusCode": 123,
"requestId": "<string>",
"errorType": "validation_error",
"errorMessage": [
"<string>"
],
"timestamp": "<string>",
"details": {}
}{
"statusCode": 123,
"requestId": "<string>",
"errorType": "validation_error",
"errorMessage": [
"<string>"
],
"timestamp": "<string>",
"details": {}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
UUID to ensure idempotent request processing
"550e8400-e29b-41d4-a716-446655440000"
Alternative UUID header for idempotent request processing
"550e8400-e29b-41d4-a716-446655440000"
Body
If true, returns an invite URL instead of sending an email
false
Whether NPN is required for this downstream entity
true
Name of the downstream entity
"ABC Insurance Agency"
First name of the primary contact
"Jon"
Last name of the primary contact
"Doe"
Email address of the primary contact
"example@test.com"
Category of the downstream entity
agency, agency network, wholesale brokerage, third party administrator "agency"
Producer code for this downstream entity
"PROD-001"
External identifier for integration purposes
"EXT-12345"
ContractContainer template ID to associate with this invitation. Obtain via the List Contract Container Templates endpoint. Preferred over the legacy producerAgreementId field.
"507f1f77bcf86cd799439011"
Deprecated: use contractContainerTemplateId instead. Legacy producer-agreement file-document ID. Still accepted for backward compatibility; the ID is internally resolved to the matching ContractContainer template.
Onboarding settings to customize the onboarding flow
Show child attributes
Show child attributes
Producer code of the parent entity (for branch relationships)
"PARENT-001"
Custom fields for additional data
{
"customField1": "value1",
"customField2": 123
}
Values to populate the contract template custom fields. Keyed by fieldName. Required when the selected contractContainerTemplateId has customFields defined; the values are validated against type / required / min / max.
{
"commission_rate": 10,
"effective_date": "2026-06-01"
}
Was this page helpful?