> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cakto.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Limites de Requisição

> Quantas requisições sua integração pode enviar e como reagir ao limite.

## Visão geral

A API Cakto aplica limites de taxa para proteger a plataforma. Ao ultrapassar um limite, a resposta é `429 Too Many Requests`.

## Limites por endpoint

| Endpoint                        | Limite         | Contado por                    |
| ------------------------------- | -------------- | ------------------------------ |
| `POST /public_api/payments/`    | 60 por minuto  | Endereço IP de origem          |
| `POST /public_api/payments/`    | 120 por minuto | Token de acesso (chave de API) |
| `POST /public_api/card-tokens/` | 20 por minuto  | Usuário autenticado            |
| Demais endpoints autenticados   | 5.000 por hora | Usuário autenticado            |
| Requisições não autenticadas    | 200 por hora   | Endereço IP de origem          |

<Warning>
  Os dois limites de **Criar Cobrança** valem ao mesmo tempo. Uma integração que concentra o tráfego num único IP atinge o teto de 60/min mesmo usando vários tokens.
</Warning>

<Note>
  Estes são os valores padrão. Se sua operação tem volume acima disso, fale com o [suporte](mailto:infoprodutores@cakto.com.br) antes de escalar.
</Note>

## Resposta ao exceder

```json theme={null}
{
  "detail": "Request was throttled. Expected available in 42 seconds."
}
```

A resposta inclui o header `Retry-After` com o número de segundos a aguardar.

## Como reagir

<AccordionGroup>
  <Accordion title="Respeite o Retry-After" icon="clock">
    Ao receber `429`, aguarde o tempo indicado no header `Retry-After` antes de tentar de novo. Reenviar imediatamente só consome o limite outra vez.
  </Accordion>

  <Accordion title="Use backoff exponencial" icon="chart-line">
    Se o header não estiver disponível, aumente o intervalo a cada tentativa (por exemplo 1s, 2s, 4s, 8s) em vez de repetir em intervalo fixo.
  </Accordion>

  <Accordion title="Reutilize a chave de idempotência" icon="arrows-rotate">
    Ao repetir uma cobrança que tomou `429`, mantenha o **mesmo** `X-Idempotency-Key`. Assim, se a requisição original tiver sido processada, você recebe a resposta original em vez de uma cobrança duplicada. Veja [Idempotência](/conceitos/idempotencia).
  </Accordion>

  <Accordion title="Distribua o processamento em lote" icon="layer-group">
    Ao processar filas grandes, espace as requisições ao longo do minuto em vez de dispará-las todas de uma vez.
  </Accordion>
</AccordionGroup>

## Próximos passos

<CardGroup cols={2}>
  <Card title="Idempotência" icon="arrows-rotate" href="/conceitos/idempotencia">
    Repita requisições sem duplicar cobranças
  </Card>

  <Card title="Erros" icon="triangle-exclamation" href="/conceitos/erros">
    Formato das respostas de erro da API
  </Card>
</CardGroup>
