Reversos y reaplicaciones
Simula los resultados de conciliación reverse y reapply sobre tus transferencias Bre-B en el entorno sandbox
Después de que una transferencia se settlea, la conciliación de cierre del Banco de la República (BanRep) todavía puede ajustarla. Hay dos resultados:
- Reverso — una operación que parecía exitosa en realidad no se completó en
el destino (o fue devuelta), por lo que se reversa. Un pago entrante
reversado que pertenece a un recaudo se revierte: su intento pasa de
successfulareversed, se recalculan elpaid_amounty los contadores del recaudo, y el recaudo puede reabrirse. - Reaplicación — una operación marcada como
faileden realidad se settleó tarde, por lo que se reaplica. Un pago entrante reaplicado settlea el intento que se había finalizado como fallido: pasa defailedasuccessfuly se acredita al recaudo.
En producción estos resultados vienen del archivo de conciliación diario. El sandbox te permite replicar cualquiera de los dos resultados sobre una de tus propias transferencias para verificar que tu integración maneja los webhooks resultantes. Estos endpoints solo están disponibles en el entorno sandbox.
Prerrequisitos
Necesitas una transferencia existente y su end_to_end_id:
- Para reversar, la transferencia debe estar en un estado reversable
(
successfuloreapplied). Para un recaudo, primero simula un pago de recaudo exitoso. - Para reaplicar, la transferencia debe estar en estado
failed. Para un recaudo, primero simula un pago con unerrorpara que el intento quede finalizado como fallido.
El end_to_end_id se devuelve en la respuesta de la
simulación de intento de recaudo
y está presente en todos los payloads de webhook collection.attempt_* e
incoming_transfer.*.
Simulando un reverso
Envía un POST para reversar la transferencia que coincide con el
end_to_end_id:
curl -X POST \
https://breb-participant.sandbox.mono.la/api/v1/sandbox/transfers/{end_to_end_id}/reverse \
-H "Authorization: Bearer <access_token>"Recibes una respuesta 202 Accepted describiendo el resultado aplicado:
{
"end_to_end_id": "20260527345544001ENT177994036665555",
"direction": "incoming",
"state": "reversed",
"state_reason": "reversed_by_banrep",
"result": "applied"
}Unos segundos después, los webhooks se entregan a tu URL configurada. Para un pago entrante reversado que pertenece a un recaudo recibes:
collection.attempt_reversed— el intento que estabasuccessfulahora estáreversed.collection.updated— se recalcularon elpaid_amount, los contadores y el estado del recaudo.
Simulando una reaplicación
Envía un POST para reaplicar la transferencia fallida que coincide con el
end_to_end_id:
curl -X POST \
https://breb-participant.sandbox.mono.la/api/v1/sandbox/transfers/{end_to_end_id}/reapply \
-H "Authorization: Bearer <access_token>"Recibes una respuesta 202 Accepted:
{
"end_to_end_id": "20260527345544001ENT177994036665555",
"direction": "incoming",
"state": "reapplied",
"state_reason": "reapplied_by_banrep",
"result": "applied"
}Para un pago entrante reaplicado que pertenece a un recaudo recibes:
collection.attempt_successful— el intento que estabafailedahora estásuccessful.collection.updated— se recalcularon elpaid_amount, los contadores y el estado del recaudo.
Ver la referencia de webhooks de recaudo para los payloads completos.
Campos de la respuesta
| Campo | Descripción |
|---|---|
end_to_end_id | La transferencia a la que se aplicó el resultado. |
direction | incoming (settlea un recaudo) o outgoing. |
state | El estado resultante de la transferencia: reversed o reapplied. |
state_reason | El motivo registrado para el cambio. |
result | applied cuando la transferencia transicionó ahora, o already_applied si ya estaba en el estado objetivo. |
Idempotente
Llamar reverse sobre una transferencia ya reversada (o reapply sobre una ya reaplicada)
devuelve éxito con "result": "already_applied" y no emite un nuevo webhook.
Errores
| Estado | Código | Cuándo |
|---|---|---|
404 | transfer_not_found | Ninguna transferencia coincide con el end_to_end_id. |
409 | transfer_invalid_state | La transferencia no puede reversarse/reaplicarse desde su estado actual. |
Flujo esperado
- Crea una transferencia sobre la cual actuar (p. ej. simula un pago de recaudo).
- Toma su
end_to_end_idde la respuesta de simulación o de un webhook. - Llama al endpoint sandbox de reverse o reapply con ese
end_to_end_id. - La API responde con
202 Acceptedy el resultado aplicado. - Tras un breve delay, los webhooks
collection.*se entregan a tu URL configurada.