# Límites

Peticiones, cuerpo, tiempos y montos.

Cuando superes un límite recibes `429 rate_limited` con `Retry-After`. Espera esos segundos y repite con la misma clave.

## Peticiones

| Límite | Valor | Alcance |
|---|---|---|
| Lecturas | 20 por segundo, ráfaga de 40 | Por llave |
| Escrituras | 5 por segundo, ráfaga de 10 | Por llave |
| Simultáneas | 8 | Por empresa |
| Por IP | 50 por segundo | Por IP de origen |
| Salidas de dinero en vuelo | Una | Por empresa |

En la cuenta de prueba son 5 por segundo por llave, con ráfaga de 10, en lecturas y escrituras. En el simulador público y en el borde de la cuenta de prueba son 10 por segundo por IP, con ráfaga de 20.

Una segunda salida simultánea responde `409 payment_in_flight`. Repite con la misma clave cuando se resuelva la anterior.

## Cuerpo

Hasta 64 KB en producción y en la cuenta de prueba, y 64 KB en el simulador público. Un cuerpo mayor responde `413`, con el código `invalid_request`. Corrige la petición: repetirla no sirve.

## Tiempos

| Tipo de operación | Espera de tu cliente HTTP |
|---|---|
| Lecturas | 20 segundos |
| Escrituras que no son pagos | 35 segundos |
| Pagos | 60 segundos |

Un pago responde a más tardar a los 45 segundos: si aún no hay resultado, llega `202 processing`.

## Montos

No hay tope por pago: en producción, `max_amount` en [`GET /v1/limits`](/docs/operaciones/consultar-limites/) llega en `null`. Los pagos sí tienen un tope acumulado por empresa:

| Tope | Valor |
|---|---|
| Día natural, hora de México | 100,000 MXN |
| 7 días corridos | 300,000 MXN |

Rebasar cualquiera de los dos responde `422 limit_exceeded`, con `retryable: false`, y el pago no llega al riel. La respuesta no dice cuál se rebasó ni cuánto queda. Para otro intento usa una clave nueva: la misma repite el rechazo.

Cómo se cuenta:

- Suma todo pago que pudo debitar fondos: en proceso, completado o reenviado.
- Un pago rechazado libera su lugar enseguida. Uno cancelado o devuelto, cuando queda confirmado.
- Un pago caído sigue contando hasta saber dónde quedó el dinero.
- Repetir un pago con su misma clave no cuenta dos veces.
- Otra moneda vale su equivalente en MXN al crear el pago, y ese valor ya no cambia. USD usa el tipo de cambio de ese momento. Las demás usan su débito estimado en USD, con comisión, a ese mismo tipo.
- Si no hay tipo de cambio responde `503 service_unavailable`. Repite con la misma clave.
- Cobros y depósitos no cuentan.

El tope es igual para todas las empresas y no se aplica en la cuenta de prueba. También aplican las revisiones manuales de cumplimiento y los límites de cada riel, que responden el mismo `422 limit_exceeded`.

## Errores comunes

- Reintentar un `429` sin esperar `Retry-After`.
- Lanzar pagos en paralelo: una salida a la vez por empresa. Ver [Pago masivo](/docs/recetas/pago-masivo/).

## Qué sigue

[Paginación](/docs/paginacion/).
