curl --request PUT \
--url https://go.aiinsurance.io/api/v1/companies/{companyId}/quotes/{quoteId}/invoicing/settings \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"schedule": {
"paymentPeriod": "quarterly",
"installmentCount": 4,
"firstDueDate": "2026-01-01",
"owedLeadTimeDays": 14,
"avoidWeekendSends": true,
"downPayment": null
},
"payees": [
{
"group": "Policy Invoice",
"payeeId": "550e8400-e29b-41d4-a716-446655440010"
}
],
"endorsementHandling": {
"mode": "void",
"status": "scheduled"
}
}
'{
"quoteId": "550e8400-e29b-41d4-a716-446655440002",
"settings": {
"schedule": {
"paymentPeriod": "quarterly",
"installmentCount": 4,
"firstDueDate": "2026-01-01",
"owedLeadTimeDays": 14,
"avoidWeekendSends": true,
"downPayment": null
},
"payees": [
{
"group": "Policy Invoice",
"payeeId": "550e8400-e29b-41d4-a716-446655440010"
}
],
"endorsementHandling": {
"mode": "void",
"status": "scheduled"
}
},
"settingsSource": "quote",
"plan": null
}Replace Quote Invoice Settings
Quote door. A quote owns its invoices, and its settings are what generating them reads, before the quote is bound or as it binds. This replaces the quote’s settings and leaves the plan on the quote as it is.
The body is the whole settings object and every field is required: a PUT replaces them all. Choose payees by policy invoice type name. A type you leave out gets its payee when invoices are generated, as Quote invoicing explains. The one schedule sent replaces any per-invoice-type schedules from older company defaults.
Settings change no invoices on their own. To put invoices on the quote, call Generate Quote Invoices next. The Billing step in the app shows and saves the same settings.
Refusals. A body that breaks a rule returns 400 naming the field:
an unknown or missing field; an installmentCount other than 1 or null
with upfront; a downPayment with upfront or with one installment; a
value out of range; a group listed twice or that is not a live policy
invoice type; a payeeId that the type’s invoices cannot be issued to.
Nothing is saved. With policy invoicing disabled, this returns
403 finv2-policy-invoicing-disabled. A bound or cancelled quote returns
409. Every quote type takes settings: new business, renewal,
endorsement, cancellation and reinstatement.
Required permission: quote.edit
curl --request PUT \
--url https://go.aiinsurance.io/api/v1/companies/{companyId}/quotes/{quoteId}/invoicing/settings \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"schedule": {
"paymentPeriod": "quarterly",
"installmentCount": 4,
"firstDueDate": "2026-01-01",
"owedLeadTimeDays": 14,
"avoidWeekendSends": true,
"downPayment": null
},
"payees": [
{
"group": "Policy Invoice",
"payeeId": "550e8400-e29b-41d4-a716-446655440010"
}
],
"endorsementHandling": {
"mode": "void",
"status": "scheduled"
}
}
'{
"quoteId": "550e8400-e29b-41d4-a716-446655440002",
"settings": {
"schedule": {
"paymentPeriod": "quarterly",
"installmentCount": 4,
"firstDueDate": "2026-01-01",
"owedLeadTimeDays": 14,
"avoidWeekendSends": true,
"downPayment": null
},
"payees": [
{
"group": "Policy Invoice",
"payeeId": "550e8400-e29b-41d4-a716-446655440010"
}
],
"endorsementHandling": {
"mode": "void",
"status": "scheduled"
}
},
"settingsSource": "quote",
"plan": null
}Authorizations
API key authentication. Send your raw API key as the Authorization header value with NO scheme prefix — Authorization: YOUR-API-KEY. Do NOT prefix it with Bearer or ApiKey, and do not use an X-API-Key header; those are not accepted.
Path Parameters
Company identifier
Quote identifier
Body
The settings a quote generates its invoices from. A PUT sends every field and replaces them all. A GET returns the same shape, so you can change a field of a GET's settings and send the object back.
When the new invoices fall due and how they are sent.
Show child attributes
Show child attributes
The payee chosen for each policy invoice type, by the type's name. List a type at most once; a type you leave out gets its payee when invoices are generated: the payee of the plan on the quote, then, on an endorsement, cancellation or reinstatement, the payee of the policy's current invoices of that type, then the type's configured payee. A GET lists only the payees chosen on the quote.
Show child attributes
Show child attributes
What generating does with the policy's existing invoices on an endorsement, cancellation or reinstatement. void voids the invoices with the given status (scheduled, owed, or all); keep keeps them and voids the rest; manual keeps every invoice. Paid invoices and invoices with payments are never voided. Kept invoices count toward the billing, so new invoices bill only what they leave.
- Option 1
- Option 2
- Option 3
Show child attributes
Show child attributes
Response
The quote's invoicing, with the new settings.
A quote's invoicing: the settings it generates invoices from and the plan saved on it. Binding the quote uses them. Every quote invoicing endpoint returns this.
The settings a quote generates its invoices from. A PUT sends every field and replaces them all. A GET returns the same shape, so you can change a field of a GET's settings and send the object back.
Show child attributes
Show child attributes
Where settings come from. quote once the quote has settings of its own: saved with Replace Quote Invoice Settings, kept by Generate Quote Invoices, or saved in the app's Billing step. A plan attached without settings counts too, because its schedule is what settings shows. company-defaults while nothing on the quote sets them: settings are the company's payment defaults, applied to this quote.
quote, company-defaults The plan saved on the quote, or null when it holds none.
- Option 1
- Option 2
Show child attributes
Show child attributes
