Ir al contenido

PUT /stp/v1/transaction

STP llama este endpoint cuando el estado de una transferencia saliente de Finalitix cambia. Este endpoint nunca es llamado por el backend de Finalitix.

URL: PUT /stp/v1/transaction
Caller: STP Bank (directo)

{
"id": 1234567,
"empresa": "FINALITIX",
"folioOrigen": "FNLTX9876543",
"estado": "Liquidación",
"causaDevolucion": "",
"tsLiquidacion": 1713139200000,
"firma": "<RSA-SHA256 en Base64>"
}
CampoTipoDescripción
idintegerID de la transacción en STP (el mismo api_id guardado al enviar)
empresastringSiempre "FINALITIX"
folioOrigenstringFolio/clave de rastreo original de Finalitix
estadostringVer valores posibles abajo
causaDevolucionstringMotivo de devolución (vacío si no aplica)
tsLiquidacionbigintTimestamp de liquidación en milisegundos
firmastringFirma RSA-SHA256. Se extrae antes de verificar
EstadoAcción
LiquidaciónTransacción exitosa. Actualiza api_state = "Liquidación" y state = "liquidation"
CancelaciónTransacción cancelada. Devuelve el monto al saldo, notifica al usuario (TRANSACTION_RETURNED)
DevoluciónIgual que cancelación
1. Verificar firma RSA con CryptoHandlerNotificacionEstadoTransaccion (solo ENV=prod)
2. Buscar transacción por api_id en tabla transaction
3. Actualizar api_state y state según el estado recibido
4. Si estado = "Cancelación" o "Devolución":
a. account.amount += transaccion.amount (devolver saldo)
b. Actualizar plan: remaining_transactions += 1
c. Notificar usuario: Lambda Notifications (template TRANSACTION_RETURNED)
d. Publicar en SQS: nota de crédito en Odoo
5. Notificar portal admin vía WebSocket (Lambda PubSub)
// 200 — Estado actualizado
{ "mensaje": "recibido" }
// 500 — Firma inválida (solo en prod)
{ "message": "error validando firma" }