Developers
Show batch ingestion and synchronization guides and endpoints, core concepts, and the content hash calculator.
Explore the docs

Reference

API reference

The complete public contract. Explore requests, field definitions, and responses for every endpoint.

Batch ingestion and synchronization endpoints are hidden. Enable Advanced in the top bar to show them. The OpenAPI download always includes every endpoint.

Loading the interactive reference...
POST/ingest

Ingest one business event

Synchronously process a client, disbursement, payment, or operation event. Choose create, update, or delete in data.step. Parent records must exist before child events. Body limit: 1 MiB. Only declared envelope/data fields are accepted.

View the OpenAPI definition
POST/ingest/batch

Ingest a same-category batch

Submit 1-100 items of one category with per-item idempotency_key values. No request-level Idempotency-Key is required. Items execute sequentially with per-item rollback boundaries. This is not an all-or-nothing business batch: successful items can coexist with failures. A completed request returns 200 and ordered results; inspect every result's status/body. Exact item retries replay original results; changed content under a stored key returns an item 409.

View the OpenAPI definition
GET/api/tables/{table}

List table records

Return records for one allowed logical table. Results are scoped to the API key in the `Authorization` header.

View the OpenAPI definition
GET/api/tables/{table}/ids

List table IDs

Return business primary-key IDs for one allowed logical table (for example `client_id`, `disbursement_id`). Results are scoped to the API key in the `Authorization` header.

View the OpenAPI definition
GET/api/tables/{table}/{id}

Get one table record

Return one record from an allowed logical table by primary key. Results are scoped to the API key in the `Authorization` header.

View the OpenAPI definition
GET/api/sync-state/{table}

List IDs and content hashes

Compact tenant-scoped state for reconciliation, ordered by ascending business ID. Hashes use version 2. Follow opaque next_cursor tokens, not raw IDs. Only compare hashes using the same canonicalization contract; do not hash arbitrary JSON. See /docs/sync and /docs/money. A page containing an uninitialized stored hash returns 409; contact support rather than resetting data. This rounding update alone needs no backfill.

View the OpenAPI definition

Search documentation

Start typing to find your next step.

    navigate Enter openLocal, private search