curl --request POST \
--url https://go.aiinsurance.io/api/v1/companies/{companyId}/financials/validation/sync \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '{}'{
"rebuilt": {
"invoices": 214,
"invoicePayments": 388,
"entityAccountBalances": 152,
"earningLayers": 96
}
}Rebuild Financials Read-State
Rebuilds the company’s derived financial read state from its source of
truth (the journal and ledger) — the remediation counterpart of
GET …/financials/validation/check. Cache maintenance, NOT a financial
action: no journal records are written, no amounts change; the rebuild
runs under an exclusive company-level lock, serialized against every
in-flight financials write.
scope picks which derived read models to rebuild — invoices (invoices
and their payments), balances (entity account balances), or earning
(policy earning layers); omit it to
rebuild everything. Returns per-table rebuilt row counts (0 for
out-of-scope tables).
Idempotent and safe at any time. The read state is a pure derivation of the journal, so re-running converges on the same result. Verify with the check endpoint.
Required permission: financials.validate
curl --request POST \
--url https://go.aiinsurance.io/api/v1/companies/{companyId}/financials/validation/sync \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '{}'{
"rebuilt": {
"invoices": 214,
"invoicePayments": 388,
"entityAccountBalances": 152,
"earningLayers": 96
}
}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
Body
Which derived read models to rebuild; omit to rebuild everything
invoices, balances, earning Response
Per-table rebuilt row counts (0 for out-of-scope tables)
Show child attributes
Show child attributes
