Skip to main content
Every request carries your secret key in the X-API-Key header. There is no other authentication method for merchant traffic.
Keys resolve to exactly one account. Everything you can read or write is scoped to it — there is no way to reach another account’s data with your key, and no account identifier is ever passed in a request body. Another account’s records read as 404, never 403.
Your key is shown once, when it is issued. We store only a hash and a short prefix used to look it up. A lost key cannot be recovered — it has to be revoked and replaced.

Scopes

Keys carry a list of scopes, and every endpoint requires one. Request the narrowest set that does the job. Each operation in the API Reference declares its required scope as x-required-scopes.
A minimum viable payout integration needs payouts:write, payouts:read, payment_instructions:read, identity:enquiry, and refunds:manage — the last one because a refund destination is a precondition of creating a payout at all.

Failure responses

All of these use the standard error envelope. INSUFFICIENT_SCOPES names exactly what was missing, so you can tell a permissions problem from an authentication one without guessing:
COMPLIANCE_NOT_APPROVED is not an authentication problem and no amount of retrying fixes it. Your key is valid and correctly scoped, but your compliance profile has not reached APPROVED — see Get access. Treat it as a configuration error and stop.

Handling keys safely

The key authorises payouts. It belongs on your server, in a secrets manager or environment variable — never in a browser bundle, mobile app, or repo.
Issue distinct keys for your payout service, your reconciliation job, and your staging environment. When one leaks you revoke one key instead of rotating everything at once.
Several keys can be active at once. Issue the new key, deploy it, confirm traffic has moved by checking each key’s last-used timestamp, then revoke the old one.
Webhook signatures use a separate whsec_ secret with its own rotation. The two credentials move in opposite directions — your key authenticates you to us, the webhook secret authenticates us to you.