Response envelope
Successful responses wrap the payload indata, with meta present when there’s pagination:
Pagination
List endpoints takelimit (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 ISOYYYY-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 ownid per transaction, or omit it and Cherry derives a stable identity from date, amount, and description. Re-sending the same batch never creates duplicates.