How the limits work
There are two rate limits, both measured in requests per second (req/s):| Request type | Limit |
|---|---|
POST requests for transaction creation and 3DS session creation and authentication | 1000 req/s |
| Every other request | 50 req/s |
The two pools are independent of each other. Transaction-creating or 3DS-creating requests draw from the 1000 req/s pool, while all other requests draw from the 50 req/s pool.
Same across all environments
Rate limits behave identically in every environment, including sandbox. This means you can validate your integration against the real limits before going to production.When you exceed a limit
Exceeding a limit does not block your account or interrupt service. Requests that stay within the limit always succeed and the API keeps working normally. Only the excess requests above the limit are rejected. Rejected requests return a429 Too Many Requests status code with no response body. The rate limit details are returned in the response headers:
| Header | Description |
|---|---|
x-ratelimited | Set to true when the request was rejected for exceeding the limit. |
x-ratelimit-limit | The limit for the applicable pool. 50, 50;w=1 means 50 requests per 1-second window. |
x-ratelimit-remaining | Requests remaining in the current window. 0 when the limit has been reached. |
x-ratelimit-reset | Seconds until the window resets and requests are accepted again. |
Unlike other API errors, a rate limit rejection has no JSON body. Detect it from the
429 status code and the x-ratelimit-* headers rather than parsing a response body.Best practices
- Throttle outbound requests so your sustained rate stays within the applicable pool.
- Retry rejected requests with a short backoff. Because there is no penalty, a rejected request can be retried as soon as your rate is back within the limit.
- Use idempotency for transaction creation. Include a
request_idwhen creating transactions so safe retries never produce duplicates. See Error handling for details.
Next steps
Error handling
Handle 429 and other error responses
API Reference
Explore all endpoints and schemas

