Rate limits
A API INFI aplica throttling por operação para proteger a infraestrutura.
Padrões
| Operação | Limite default |
|---|---|
POST /v1/pix | 200 req/hora por conta |
POST /v1/withdraw | 10 req/hora + 2/minuto + 1/segundo por conta (anti-burst) |
GET /v1/balance, GET /v1/transactions, GET /v1/transactions/:id | sem 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.
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-AfternemretryAfterno 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.
Múltiplas API keys da mesma conta compartilham o mesmo balde de rate limit. Criar mais chaves não aumenta a vazão.