State pricing and requirements
Before you quote or file in a state, you often want two things: what will this cost, and what does this state need from me. Both come from endpoints you've likely already called, this page just points at the right one for each question.
"What does it cost?" → /calculate
Pricing is not a lookup, it's a calculation based on the premium and the
transaction type. Use POST /partner/calculate:
Full field-by-field breakdown of inputs and outputs: Price a policy.
/calculate already knows the state's rate configuration and applies it for
you. The raw rate config further down this page is for advanced cases only.
"What does it require?" → /filing-states
Requirements (what a state expects before it will accept a filing) come from
GET /partner/filing-states:
Call it without ?state= to get every state your account can file in, or
check enabledStates on GET /partner/me for the plain list of state
codes you have access to.
Each state has one descriptionNb/filesNb pair and one
descriptionEd/filesEd pair, not a separate record per filing type. Read
whichever pair matches the filing you're preparing.
descriptionNb / descriptionEd: render them, don't print them
descriptionNb and descriptionEd come back as an HTML string, usually an
ordered list (<ol>) that spells out exactly what to provide for that
filing type. Render it as HTML (for example dangerouslySetInnerHTML in
React, or your templating layer's equivalent). If you print the raw string
in a plain-text UI, your users will see literal <li> tags instead of a
checklist.
filesNb / filesEd: the documents to gather
Each entry in filesNb (new business) or filesEd (endorsement) is one
required document:
Treat filesNb / filesEd as your checklist: gather every document it
lists before you call /upload-user-file. Each document you upload becomes
one entry in the files array you send to
/create-filing, with
name matching what was listed here and filePath set to the
storagePath you got back from the upload.
Example: California, new business (illustrative, always fetch live requirements)
For California new-business filings, filesNb currently names these
documents:
- CA D1 form
- NEW CA SL-2 2024
- Copy of CA Agent/Agency P&C/SL license
- Copy of declaration page w/ limits or binder w/ limits
And descriptionNb, once rendered as HTML, reads like this (trimmed):
This is a snapshot, not a contract. States change their requirements, so
the authoritative, current text is always whatever /filing-states returns
at the time you call it, don't hardcode this list.
You can only file in the states your account is set up for. Check
enabledStates on GET /partner/me before building
against a state. If a state you need isn't in that list, contact us at
gina@valleyinsllc.com to request access.
Advanced: raw rate configuration
Most integrations never need this. /calculate already applies these rates
for you. This is here for partners building their own rate-preview UI or
reconciling numbers against our fee engine directly.
GET /partner/get-state-rates/{state}/{type} returns the raw fee-engine
configuration for a state, where type is new-business or endorsement:
Each fee has a mode enum and a value. Modes vary by fee:
PERCENTAGE_WITH_FEES bases the percentage on premium plus other fees,
PERCENTAGE_WITH_FEES_VIA additionally includes the stamping/VIA fee in
that base, and MANUAL means the value is set directly rather than
computed. carriersFee, carriersTaxable, policyFee, and policyTaxable
are booleans controlling whether those flat fees apply and whether they're
taxable.
Reproducing /calculate's output from this raw config yourself is more
work than it's worth for almost every use case, call /calculate instead.