Skip to main content
The Chipper Platform API is a REST API that accepts JSON bodies and returns JSON responses. It runs as two fully separate stacks: sandbox for integration and testing, and production for real money.

Base URLs

A sk_test_… key only works against sandbox; a sk_live_… key only works against production. Using the wrong pair returns 401.

Authentication

Every request carries your API key in the Authorization header:
Keys are created in the dashboard under Developers → API keys and shown once at creation. See Authentication for scopes, IP allowlists, and spend caps.

API versioning

Send the chipper-version header with the current version date:
The version is echoed back on every response. Omitting it uses the current version. Breaking changes ship under a new version date; additive changes (new fields, new endpoints) do not require a version bump and the old version keeps working.

Pagination

All list endpoints accept limit (1–100, default 20) and cursor. Results are newest first.
Pass nextCursor as cursor on the next request to walk forward. nextCursor is null on the last page. Cursors are opaque strings — do not construct them.

Response envelopes

Single resources are wrapped in a key named after the resource:
Lists use the shape above with a data array.

Errors

Every error uses the same shape:
error is a stable machine-readable code to branch on. requestId matches the x-request-id response header — include it when contacting support. See Errors for the full code reference.

Rate limits

100 requests per second per API key, sliding window. Exceeding the limit returns 429 rate_limited with details.retryAfter. For bulk operations, use POST /v1/recipients/bulk and POST /v1/validate/bulk (up to 100 items each).

Money

All amounts in responses are decimal strings ("150.00"), never floats. Parse with a decimal library when doing arithmetic. See Money & Currencies for currency codes and zero-decimal currencies.

Idempotency

Money-moving endpoints (payouts, collections, orders, conversions) accept an externalReference — your unique string for the operation. Retrying with the same value returns the original resource (200 instead of 201) and never creates a duplicate. See Idempotency.