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.

Limite60 chamadas por minuto
Conta porchave de API
Passou do limite429 RATE_LIMITED
Quando voltarcabeç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=100 numa listagem custa 1 chamada; limit=20 custa 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.