Requests to the payments endpoints take a token from both buckets.
If you need more than this, use separate keys for separate systems, cache reads, and rely on webhooks instead of polling.
Response headers
Every authenticated response includes:
On the charging and payments endpoints, these headers describe the stricter bucket.
When you’re limited
You get429 Too Many Requests with a Retry-After header (in seconds) and this body:
Retry-After seconds before retrying. A 429 is never stored against an Idempotency-Key, so retry with the same key.
Good practice
- Spread batch jobs out instead of firing them all at once; the burst covers spikes, not sustained load.
- Use
limit=100when walking lists, so you make fewer requests. - Subscribe to
session.*webhooks rather than pollingGET /sessions/{sessionId}. - Limits are an operational safeguard and may be enforced approximately. Don’t design around being able to send exactly the documented number.

