Three doors
Nothing applies silently
Invoice behavior lives in the request, so the request you send predicts the invoices you get. No invoices apply that the request does not name:- A quote’s saved plan applies only when its bind names it with
invoices: "saved". A bind that names no invoices while the quote holds a plan is refused (409 finv2-quote-has-invoice-plan) rather than applying it. A saved quote’s bind binds the quote’s state, so it never takes aninvoicePlan: a plan you wrote goes on the quote first, where Check Bind Conditions can check it before anything commits. - A value door creates exactly the invoices its
invoicePlancreates and voids exactly the invoices it names. Without a plan it creates none. - A refusal commits nothing and names its fix, with the ids of your request in any path it names. Invoice plans lists them.
invoicePlan, a bind’s invoices, the
invoice batch or the quote invoicing endpoints) returns
403 finv2-policy-invoicing-disabled and saves nothing.
The rule
A policy’s active invoices add up to its billing, per line item, to the cent. A plan names the invoices it voids; every invoice it does not name is kept and counts toward the total. Invoice plans explains the plan’s shape, why the rule holds, credits, and how a stale plan is refused.Five flows
All five use one policy: a year from 2026-01-01 whose billing states one line,Premium on the Policy Invoice type, of 1,200.00. Billing states dollars
("amount": 1200); a plan states cents ("amountCents": 120000). Every invoice
is issued to the same payee, an organization of the company.
The names (the Policy Invoice type, the Premium line item and its
premium classification) are this example company’s. Use your company’s own,
which Export Financials Configuration
lists. The request bodies show what invoicing needs; your company’s policy
configuration may require more in data, such as a policy number, a time zone
or the insured.
1. Review, then bind
Quote door. You prepare the quote’s invoices, review them, then bind exactly what you reviewed.-
Save the quote (for example with
Update Entity after rating it). Its
billing calculation states
fullTermBillingInfo. -
Choose the schedule, payees and endorsement handling.
PUT /api/v1/companies/{companyId}/quotes/{quoteId}/invoicing/settings
-
Generate the invoices onto the quote:
POST /api/v1/companies/{companyId}/quotes/{quoteId}/invoicing/generate, with no body. The quote’splannow creates fourPremiuminvoices of30000cents, due 2026-01-01, 2026-04-01, 2026-07-01 and 2026-10-01. -
Review them with
GET /api/v1/companies/{companyId}/quotes/{quoteId}/invoicing. Optionally, check the bind you are about to send:GET /api/v1/companies/{companyId}/quotes/{quoteId}/bind-conditions?invoices=savedanswers"readyToBind": true. -
Bind the plan you reviewed.
POST /api/v1/companies/{companyId}/quotes/{quoteId}/bind
30000 cents
each, 120000 in all, which is its billing.
2. Generate at bind
Quote door. You let the bind build the invoices from the quote’s settings.- Save the quote, as in flow 1. Choose its settings first if the company’s payment defaults are not what you want.
-
Bind, generating as you go.
POST /api/v1/companies/{companyId}/quotes/{quoteId}/bind
30000 cents with the settings of flow 1. The quote keeps no plan
of them, and a plan already saved on the quote is not applied.
3. New business with a plan
Value door. You create the policy and state its twelve monthly invoices in the same request.POST /api/v1/companies/{companyId}/policies/transaction/new-business
10000
cents each, 120000 in all. Each invoice is sent on its scheduledDate.
4. Mid-term endorsement
Value door. On 2026-10-15 the premium rises to 1,320.00. The ten invoices due through October stay; the last two are replaced.-
Read the policy’s invoices and note the
idandheadJournalIdof the two you will replace:GET /api/v1/companies/{companyId}/financials/invoices?linkedPolicy={policyId}. -
Endorse, stating the new price and billing and the invoices that change.
POST /api/v1/companies/{companyId}/policies/{policyId}/transaction/endorse
10000 and two new ones of 16000 make 132000 cents, which is 1,320.00. The
version and its invoices commit together. Had an invoice changed since you read
it, the endorsement would have been refused with
409 finv2-invoice-head-conflict and nothing saved; read the invoices again
and rebuild the plan.
5. Switch to monthly
After the bind. The policy of flow 1 has four quarterly invoices, and the first is paid. On 2026-03-15 the insured asks to pay the rest monthly.- Read the policy’s invoices, as in flow 4.
-
Void the three unpaid quarterly invoices and create nine monthly ones.
POST /api/v1/companies/{companyId}/financials/policies/{policyId}/invoices/batch
30000 is kept, and nine monthly invoices of 10000 replace the three voided
ones, 120000 cents in all. The policy itself does not change.
Where to go next
- Invoice plans: the plan’s fields, the add-up rule, credits, version checks and every refusal with its fix.
- Quote invoicing: a quote’s settings, where payees and defaults come from, generating versus attaching, and endorsement handling.
- Policy Transactions: the five transactions and the policy’s billing.
