Limites de chamadas
Cada chave de API pode fazer até 60 chamadas por minuto. O limite é o mesmo no sandbox e em produção, e protege a API (e a sua integração) de um erro que dispare chamadas sem parar.
| Limite | 60 chamadas por minuto |
| Conta por | chave de API |
| Passou do limite | 429 RATE_LIMITED |
| Quando voltar | cabeçalho Retry-After, em segundos |
Quando o limite estoura
A resposta é:
HTTP/1.1 429 Too Many Requests
Retry-After: 12
{ "code": "RATE_LIMITED", "message": "Limite de chamadas atingido. Aguarde e tente de novo." }A chamada recusada não foi executada. Espere os segundos de Retry-After e mande de novo,
com a mesma Idempotency-Key.
async function callWithRetry(send) {
for (let attempt = 0; attempt < 5; attempt += 1) {
const response = await send();
if (response.status !== 429) return response;
const seconds = Number(response.headers.get('Retry-After') ?? 1);
await new Promise((resolve) => setTimeout(resolve, seconds * 1000));
}
throw new Error('limite de chamadas: tentativas esgotadas');
}Como não chegar no limite
- Use webhooks em vez de ficar consultando. Perguntar "já pagou?" a cada poucos segundos é o jeito mais rápido de estourar o limite. O aviso chega sozinho.
- Busque em páginas grandes.
limit=100numa listagem custa 1 chamada;limit=20custa 5 pra trazer a mesma coisa. - Não dispare tudo junto. Em rotina em lote, ponha uma fila com um pequeno intervalo entre as chamadas.
- Guarde o que não muda. Uma transação paga ou cancelada não precisa ser consultada de novo a toda hora.
Se a sua operação precisa de mais que isso, fale com a SwitchPay.