Skip to main content
Rate, Quote, Bind is how an insurance sale moves: price the risk, offer the terms, accept them. Through the API, each step is a request you already use, and each request carries what its step decides. There are no extra calls in between. Paths below are under /api/v1/companies/{companyId}.

Before you start

  • The quote’s submission and its exposures exist. Reference them by id.
  • Your API key’s role holds quote.create, quote.edit, quote.rate and quote.bind, and quote.view to read the quote back. With form.create and form.edit too, the create adds the quote’s recommended quote forms and the bind its policy forms (see Recommended forms on quote create).
  • You know the name of the rating workflow to run. A rate that names none, or an unknown one, returns 400 listing your company’s workflows.

Choose the path

At a company that invoices, a quote states the pricing stack layer it is meant to bind at. Complete and Bind refuse a quote whose bind would land anywhere else. The app calls the layers Financials Setups, and the path follows from the setup: Pricing Only (pricing) follows the Invoicing Off row for a quote whose billing calculation states no billing. No Pricing (base) skips rating. The examples use one quote: a year from 2026-01-01, rated at 1,200.00, whose billing states one line, Premium on the Policy Invoice type. The names are an example company’s; use your own, which Export Financials Configuration lists. Your company’s configuration decides which other fields the quote needs.

Full Billing, completed here

Four requests.
  1. Create the quote with its setup. pricingSetup holds the quote’s intended layer and, when they differ from your company’s payment defaults, its invoice settings, shaped as Replace Quote Invoice Settings takes them.
    POST /api/v1/companies/{companyId}/entities/quote
    The response is 201 with the quote’s id. The quote and its setup are saved together: a refused setting creates nothing. pricingSetup is not a field, so entity reads never return it. Send an Idempotency-Key to make a retry safe.
  2. Rate the quote and save the rating.
    POST /api/v1/companies/{companyId}/quotes/{quoteId}/rate
    The rating is saved as the app saves it: the quote states fullTermPricingInfo, its billing calculation states fullTermBillingInfo (one Premium line of 1,200.00), and the run becomes the quote’s current rating. The response’s data is the rated quote. A rating that fails is still a 200, with diagnostics and no data, and saves nothing.
  3. Complete the quote, generating its invoices.
    PATCH /api/v1/companies/{companyId}/entities/quote/{quoteId}
    Complete generates the quote’s invoice plan from its settings, as Generate Quote Invoices does, and saves it: four Premium invoices of 30000 cents, due 2026-01-01, 2026-04-01, 2026-07-01 and 2026-10-01. It then completes the quote, checking it as its bind will. If either is refused, neither is saved. To review the invoices before you bind, GET /api/v1/companies/{companyId}/quotes/{quoteId}/invoicing shows them.
  4. Bind the invoices the quote offers.
    POST /api/v1/companies/{companyId}/quotes/{quoteId}/bind
Outcome: the policy holds the quote’s pricing and billing and exactly the four invoices Complete generated, 120000 cents in all.

Full Billing, quoted in your own app

Three requests, when your own system presents the quote and its terms: the quote stays in progress, and the bind generates its invoices.
  1. Create the quote with its setup, as above.
  2. Rate it and save the rating, as above.
  3. Bind it, generating the invoices from its settings.
    POST /api/v1/companies/{companyId}/quotes/{quoteId}/bind
Outcome: the policy holds the four invoices the bind generated. The bind runs the same checks Complete runs, and the quote keeps no plan of the invoices: after the bind, the policy’s invoices are the record.

Invoicing Off

Four requests, and no invoices.
  1. Create the quote meant to bind at Invoicing Off:
    POST /api/v1/companies/{companyId}/entities/quote
  2. Rate it and save the rating, as above.
  3. Complete it: { "quoteStatus": "complete" }.
  4. Bind it naming no invoices: {}.
Outcome: the policy holds the quote’s pricing and billing, and no invoices.

A company that does not invoice

A company that does not invoice has no layers to choose. Create the quote without pricingSetup (sending it returns 403 finv2-policy-invoicing-disabled), rate it and save the rating, complete it, and bind it naming no invoices.

When a step is refused

A refusal saves nothing, and its message names the one request that fixes it, with your ids. The ones this journey meets most: Check Bind Conditions runs the bind’s checks without binding, if you want to know before you send it.