Skip to main content

Response envelope

Successful responses wrap the payload in data, with meta present when there’s pagination:
Errors are flat:

Pagination

List endpoints take limit (default 50, max 200) and offset. When a page comes back full, meta.pagination.nextOffset tells you where to continue; when it’s null, you’ve reached the end.

Amount sign convention

Bank transaction amounts use the banking convention throughout: positive = money out (expense), negative = money in (income). Financial statements use normal accounting presentation.

Dates

All dates are ISO YYYY-MM-DD. Transaction queries default to the last 30 days when no range is given.

Rate limits

Limits apply per API key, in three buckets: A 429 includes retryAfterSeconds in the body and a Retry-After header.

Idempotency

Pushed transactions are idempotent: supply your own id per transaction, or omit it and Cherry derives a stable identity from date, amount, and description. Re-sending the same batch never creates duplicates.