Response envelopes
Single resources are wrapped in a key named after the resource —{ "payout": { … } }, { "recipient": { … } }. Lists always return:
Pagination
Every list takeslimit (1–100, default 20) and cursor. Results are newest first. Pass the previous page’s nextCursor as cursor; it’s null on the last page. Cursors are opaque — don’t build them.
IDs
IDs are prefixed strings that tell you the type at a glance:
Customer-facing ids carry the stack on sandbox:
pl_test_…. Balance accounts are <CURRENCY><8 digits>, e.g. GHS12345678.
Versioning
Sendchipper-version: 2026-02-20 (the current version). It’s echoed back on every response. Omitting it means “current”. Versions are dates; breaking changes get a new date and the old one keeps working — additive changes (new fields, new endpoints) ship without a version bump.
Rate limits
100 requests per second per API key, sliding window. Over the limit you get429 rate_limited with details.retryAfter. Back off and retry; for bursts, batch — POST /v1/recipients/bulk and POST /v1/validate/bulk take up to 100 items.
Timestamps
ISO 8601 in UTC:2026-08-23T20:50:41.000Z.