Rate limits

A API INFI aplica throttling por operação para proteger a infraestrutura.

Padrões

OperaçãoLimite default
POST /v1/pix200 req/hora por conta
POST /v1/withdraw10 req/hora + 2/minuto + 1/segundo por conta (anti-burst)
GET /v1/balance, GET /v1/transactions, GET /v1/transactions/:idsem throttle agressivo; sujeito a fair use

A janela horária é fixa por hora (não rolling): contadores zeram na virada de hora UTC. Os limites anti-burst de saque (1/seg e 2/min) usam buckets curtos com TTL automático.

Saques: como evitar bater os limites curtos

Os limites anti-burst (1/seg, 2/min) protegem contra retry agressivo e duplicação acidental. Eles não bloqueiam retries idempotentes: se você reenvia um request com o mesmo externalRef, a INFI retorna a transação original sem consumir o rate limit. Veja Idempotência.

Limites são ajustáveis a pedido. Para volumes maiores, contate a INFI com expectativa de tráfego.

Resposta

HTTP/1.1 429
{ "error": "Limite de requisições atingido. Tente em 1 hora." }

Saques têm mensagens específicas por janela:

  • 1/segundo: "Aguarde alguns segundos antes do próximo saque."
  • 2/minuto: "Muitos saques em curto intervalo. Aguarde alguns instantes."
  • 10/hora: "Limite de saques atingido." ou "Muitos saques solicitados. Aguarde alguns minutos."

[VERIFICAR COM EQUIPE INFI]: hoje a resposta não traz cabeçalho Retry-After nem retryAfter no corpo. Documentar quando/se for adicionado.

Estratégia recomendada

  • Backoff com jitter ao receber 429. Não retry imediato em loop.
  • Para envio em lote, distribua a criação de cobranças ao longo da hora.
  • Em saques, considere batch durante a janela do dia se você tem muitos repasses.
Limites são por conta, não por API key

Múltiplas API keys da mesma conta compartilham o mesmo balde de rate limit. Criar mais chaves não aumenta a vazão.