Treasury Payouts Orders
Pagos flexibles para tesorerías modernas
¿Qué me ofrece el API de Payouts Orders de Shinkansen Treasury?
Con el API de Payouts Orders puedes encolar pagos que puedan ser revisados por reglas de negocio configuradas por tu empresa, y si es aprobado, ejecutar el movimientos de fondos.
Payouts o Payout Orders
Payouts (Core) y Payout Orders (Treasury) son objetos distintos, con ciclos de vida distintos.
| Concepto | Payout (Core) | Payout Order (Treasury) |
|---|---|---|
| Para qué sirve | Ejecutar un pago directamente | Orquestar un pago dentro de Treasury antes de ejecutarlo |
| Cuándo usarlo | Tu sistema ya decide qué se paga y solo necesitas ejecutar el pago | Necesitas que el pago pase por reglas de aprobación, programarlo con una fecha de ejecución o poder cancelarlo antes de que se ejecute |
| Se puede cancelar | No: una vez enviado, es una instrucción de pago | Sí, mientras esté en created, waiting_validation, waiting_approval o scheduled |
| Objeto | Transacción payout, enviada a POST /messages/payouts |
payout_order, creada con POST /payout_orders |
¿Qué reglas de negocio puedo configurar?
Existen varias reglas de negocio que puedes configurar para que un pago sea aprobado o rechazado. Algunas de ellas son:
- Aprobación de un apoderado
- Aprobación de un grupo de apoderados
- Que el monto del pago no exceda un límite
- Que el monto del pago no sea menor a un límite
- Que el pago sea a una cuenta previamente registrada y muchas más
En el siguiente link puedes ver más detalles sobre cómo crear, editar y eliminar reglas de automatización.
Cómo se aprueba una orden
Cada orden se evalúa contra las reglas de aprobación que configuró tu empresa. Lo que sigue es el comportamiento por defecto; algunos puntos pueden variar según la configuración de tu empresa.
- Rechazo por defecto. Si la orden no calza con ninguna regla, o si tu empresa no tiene reglas configuradas, la orden queda en estado
rejectedy no se ejecuta. - Una regla de rechazo prevalece. Si una regla de rechazo aplica a la orden, la orden se rechaza aunque otras reglas la aprueben.
- Basta un rechazo. Si la orden requiere aprobación y un aprobador la rechaza, la orden queda en
rejected, aunque otros aprobadores la hayan aprobado. - Quien crea la orden no la aprueba. En las reglas que piden una o dos aprobaciones, la aprobación de la persona que creó la orden no cuenta, y esa persona no ve sus propias órdenes en la bandeja de aprobación del dashboard. Tu empresa puede habilitar la autoaprobación, que por defecto está apagada.
- Dos aprobaciones. Puedes configurar una regla que exija la aprobación de dos personas distintas antes de ejecutar la orden.
¿Cómo es el flujo de un pago?
A diferencia de el flujo de Payouts, el flujo de un Payout Order tiene más puntos de control. Primero el participante o Customer crea un Payout Order a través de la API, luego el Payout Order es revisado por las reglas de negocio configuradas por la empresa, y si es aprobado, se ejecuta el movimiento de fondos. En caso de ser rechazado, el Payout Order termina en estado rejected y no se ejecuta el movimiento de fondos.
¿Qué hago para manejar los posibles errores?
Shinkansen Treasury se hace cargo de cualquier error y posibles reintentos de los pagos. Si un pago no puede ser procesado, se marcará como fallido.
¿Cómo puedo saber si un pago fue exitoso?
Puedes consultar el estado de un pago a través de la API de Payouts Orders. Un Payout Order puede estar en uno de estos estados:
| Estado | Qué significa | Terminal | Envía webhook |
|---|---|---|---|
created |
La orden fue creada (estado inicial). | No | No |
waiting_validation |
Se está validando la cuenta de destino antes de que la orden avance. | No | No |
waiting_approval |
La orden espera aprobación. | No | No |
approved |
La orden fue aprobada y pronto se encolará o ejecutará. | No | No |
scheduled |
La orden fue aprobada y espera su fecha de ejecución. | No | No |
pending_funds |
La orden está retenida porque la cuenta de origen aún no tiene saldo suficiente. | No | No |
enqueued |
La orden espera en cola para ejecutarse. | No | No |
executing |
La orden se está ejecutando. | No | No |
cancelled |
La orden fue cancelada por tu empresa, por la API o desde el dashboard. | Sí | Sí, salvo en formato translated |
rejected |
La orden fue rechazada (por ejemplo, por las reglas de aprobación o por un aprobador) y no se ejecuta. | Sí | Sí, salvo en formato translated |
succeeded |
El pago se ejecutó con éxito. | Sí | Sí |
partially_succeeded |
La orden se dividió en tramos y algunos se ejecutaron con éxito y otros fallaron (solo en órdenes divididas). | Sí | Sí |
failed |
La orden no se pudo ejecutar. | Sí | Sí |
El webhook de los estados terminales se envía cuando tu empresa tiene un webhook configurado. Con el formato por defecto (raw) lo envían los cinco; con el formato translated, cancelled y rejected no lo envían.
scheduled solo ocurre en cuentas con diferimiento configurado. Por defecto, una orden con fecha de ejecución futura se queda en created, y se evalúa y aprueba al llegar esa fecha.
Un estado terminal no cambia más. Dentro del detalle de un pago, puedes encontrar información adicional como todos los intentos de ejecución, el motivo de la falla (si el pago falló), el monto del pago, la fecha de creación, entre otros.
También puedes configurar un endpoint para recibir el estado terminal de un pago .
¿Puedo hacer pagos de forma manual?
Sí, en este link explicamos cómo realizar pagos manuales cargando archivos en el dashboard de Shinkansen.
🪝 Si tienes configurado el webhook para recibir el resultado final de un payout order , también te llegarán los resultados de lo que se procese desde archivos manuales.
