Errors & limits
Errors & limits
The conventions that apply across every endpoint — error shape, rate limits, pagination, and how amounts are represented.
Error response
Failed requests return a consistent JSON body. Branch on errorCode, not on the human-readable message.
{ "message": "payment not found", "errorCode": 404}A human-readable description of what went wrong. For logs and debugging.
A stable integer code for machine handling. Use it to drive your control flow.
400 invalid request · 401 missing or invalid API key · 404 not found · 409 conflict (e.g. duplicate externalId) · 429 rate limited.
Rate limits
Requests are rate-limited per key. Exceeding the limit returns 429; back off and retry.
Need higher throughput? Contact support to raise your limits.
Pagination
List endpoints return newest-first pages with cursor pagination.
Pass the id of the last item from the previous page to fetch the next one.
Page size. Defaults to 20; the maximum is 100.
Sort direction by id: asc or desc (default).
Money & amounts
Every monetary field is a decimal string, never a floating-point number, so precision is never lost. Parse them with a decimal library.
A single payment can request at most 60,000 (USD-equivalent).
Note: there is no Idempotency-Key header. To make a create call idempotent, pass externalId — a repeat with the same value returns a conflict instead of creating a duplicate.