Qué protege este flujo
Algunos corredores bancarios protegen un destino después de un rechazo reciente del banco. Cuando el mismo destino normalizado fue rechazado recientemente, CBPay detiene el siguiente create antes de crear el payout, debitar el saldo o consumir la clave de idempotencia. La protección se acota a la cuenta y a la combinación normalizada debank_code, account_number y tax_id. Cambiar mayúsculas o formato no la
evade.
Secuencia segura
- Si la primera respuesta es ambigua, repite la solicitud exacta con la misma
idempotency_key. Devuelve el recurso original conidempotency_hit: true; nunca crea un segundo payout. - Si la respuesta es
destination_recently_rejected, la clave original no se consumió. Revisa el rechazo bancario y decide si corresponde reintentar el destino. - Un reintento deliberado usa una clave de idempotencia nueva y
options.destination_retry_ackcon el ID del payout rechazado más reciente. - Reutilizar la clave anterior con opciones cambiadas devuelve
409 idempotency_conflict; nunca modifica la operación original. - Un destino sin rechazo reciente, o un payout de otro corredor, sigue su validación y despacho normal.
Request de reintento deliberado
Ejemplos de respuesta
Rechazo reciente
Opciones cambiadas con la clave anterior
Estados y acciones
Preguntas frecuentes
¿El 422 crea un payout?
¿El 422 crea un payout?
No. La guardia corre antes de insertar el payout y antes del débito. Tampoco
consume la clave de idempotencia enviada.
¿Puedo reintentar con la misma clave después del 422?
¿Puedo reintentar con la misma clave después del 422?
Sí, si estás repitiendo exactamente la solicitud original. Un reintento
deliberado después de revisar el rechazo debe usar clave nueva y el acuse.
¿Por qué cambiar solo las opciones devuelve 409?
¿Por qué cambiar solo las opciones devuelve 409?
Las opciones forman parte del payload de idempotencia. Reutilizar una clave con
opciones distintas es otra solicitud, por eso CBPay la rechaza en vez de
modificar silenciosamente la operación original.
¿Aplica a todos los corredores de payouts?
¿Aplica a todos los corredores de payouts?
No. La protección se aplica solo donde el corredor la habilita. Los demás
rieles y destinos sin rechazo reciente siguen su validación y despacho normal.