Rate limits
Limites por janela fixa protegem o sandbox contra abuso. Ao exceder, a API responde 429 RATE_LIMITED com Retry-After em segundos.
| Escopo | Contado por | Limite | Rotas |
|---|---|---|---|
api_authenticated | API key ou usuário da sessão | 100 req / 10 s | todo /v1/* exceto /v1/public/*, depois da autenticação |
payment_intent_create | API key ou usuário da sessão | 30 req / 10 s | POST /v1/payment-intents e POST /v1/orders/{id}/payment-intents |
payment_link_open | IP do comprador | 30 req / 60 s | GET /v1/public/payment-links/{id}/session (abrir um Payment Link) |
checkout_pay | sessão de checkout + IP do comprador | 10 req / 60 s | POST /v1/public/checkout-sessions/{id}/pay, /pix/simulate-payment e /reconcile |
Uma requisição pode consumir mais de um escopo: criar um PaymentIntent conta em api_authenticated e em payment_intent_create. Cada credencial (ou usuário) tem o próprio contador — uma integração nunca consome a cota de outra.
Tratando o 429
HTTP/1.1 429 Too Many Requests
retry-after: 10
content-type: application/json
{"error": {"code": "RATE_LIMITED", "message": "Too many requests.", "request_id": "req_..."}}- Espere pelo menos os segundos de
Retry-Aftere repita; para criações, repita com a mesmaIdempotency-Key. - Use backoff exponencial com jitter se o 429 se repetir.
- Para testes de carga, distribua o tráfego entre várias API keys de teste e respeite o limite de criação de PaymentIntents.