Cambiar Estado de Transacción
Referencia API
Cambiar Estado de Transacción
Actualiza el estado de la transacción y ejecuta reglas de actualización automáticamente — en el producto de monitoreo transaccional gu1 para fraude y AML.
PATCH
Cambiar Estado de Transacción
Endpoint
Cambiar Estado de Transacción
- Validación automática de transiciones de estado (previene cambios de estado inválidos)
- Aplicación de máquina de estados (reglas de estados abiertos ↔ cerrados)
- Ejecución automática de reglas/matrices con trigger
transaction_status_changed(notransaction_updated) - Protección de integridad de transacciones
- Rastro de auditoría completo
Autenticación
Todas las solicitudes deben incluir una clave API en el encabezadoAuthorization:
Encabezados Requeridos
Parámetros de Ruta
El UUID de la transacción a actualizarTipo:
string (uuid)Cuerpo de la Solicitud
Nuevo estado de la transacción. Debe ser un valor válido del enum de estados.Estados Válidos:
CREATED- Transacción creada (estado abierto)PROCESSING- Transacción en proceso (estado abierto)SUSPENDED- Transacción temporalmente suspendida (estado abierto)SENT- Transacción enviada/transmitida (estado cerrado)EXPIRED- Transacción expirada (estado cerrado)DECLINED- Transacción rechazada/declinada (estado cerrado)REFUNDED- Transacción reembolsada/reversada (estado cerrado)SUCCESSFUL- Transacción completada exitosamente (estado cerrado)
enum - 'CREATED' | 'PROCESSING' | 'SUSPENDED' | 'SENT' | 'EXPIRED' | 'DECLINED' | 'REFUNDED' | 'SUCCESSFUL'Reglas de Transición de Estados
El endpoint aplica reglas estrictas de transición de estados para mantener la integridad de las transacciones:Estados Abiertos
Estados que permiten transiciones adicionales:CREATEDPROCESSINGSUSPENDEDSENT
Estados Cerrados
Estados finales que no pueden transicionar a otros estados:EXPIREDDECLINEDREFUNDEDSUCCESSFUL
Matriz de Transiciones
| Estado Origen | Estado Destino | ¿Permitido? | Nota |
|---|---|---|---|
| CREATED | PROCESSING | ✅ Sí | Flujo normal |
| CREATED | SUSPENDED | ✅ Sí | Suspender para revisión |
| CREATED | SUCCESSFUL | ✅ Sí | Aprobación rápida |
| PROCESSING | SUSPENDED | ✅ Sí | Suspender durante procesamiento |
| PROCESSING | SUCCESSFUL | ✅ Sí | Finalización normal |
| PROCESSING | DECLINED | ✅ Sí | Rechazar durante procesamiento |
| SUSPENDED | PROCESSING | ✅ Sí | Reanudar procesamiento |
| SUSPENDED | SUCCESSFUL | ✅ Sí | Aprobar transacción suspendida |
| SUSPENDED | DECLINED | ✅ Sí | Rechazar transacción suspendida |
| SUCCESSFUL | PROCESSING | ❌ No | No se puede reabrir transacción cerrada |
| DECLINED | PROCESSING | ❌ No | No se puede reabrir transacción cerrada |
| EXPIRED | PROCESSING | ❌ No | No se puede reabrir transacción cerrada |
| REFUNDED | any | ❌ No | No se puede cambiar transacción reembolsada |
| SUCCESSFUL | DECLINED | ❌ No | No se puede cambiar entre estados cerrados |
- ✅ Abierto → Abierto: Permitido (ej: CREATED → PROCESSING)
- ✅ Abierto → Cerrado: Permitido (ej: PROCESSING → SUCCESSFUL)
- ❌ Cerrado → Abierto: NO Permitido (ej: SUCCESSFUL → PROCESSING)
- ❌ Cerrado → Cerrado: NO Permitido (ej: DECLINED → REFUNDED)
Ejecución de Reglas de Actualización
Cuando se cambia el estado de una transacción, el endpoint automáticamente:- Valida la transición - Asegura que el nuevo estado es válido y la transición está permitida
- Actualiza el estado - Cambia el estado de la transacción en la base de datos
- Ejecuta reglas de actualización - Ejecuta todas las reglas con
trigger: 'updated'en su alcance - Actualiza puntuación de riesgo - Re-calcula el riesgo basado en los resultados de las reglas
- Devuelve transacción actualizada - Devuelve la transacción completa con la nueva evaluación de riesgo
Trigger de Reglas
El endpoint usa el modotrigger_transaction_status_changed, que ejecuta reglas con action: "status_changed" o matrices con eventType: "transaction_status_changed". El trigger updated queda para PATCH /transactions/{id} (metadata, deviceDetails, channel, reason).
Ejemplo de configuración de alcance de regla:
Ejemplos Completos de Solicitud
Aprobar una Transacción Suspendida
Rechazar una Transacción en Revisión
Suspender una Transacción para Revisión Manual
Respuesta
Respuesta Exitosa (200 OK)
Campos de Respuesta
Si el cambio de estado fue exitoso
La transacción actualizada con todos sus datos, incluyendo:
- id (string) - UUID de la transacción
- status (string) - Nuevo estado de la transacción
- origin (object) - Información de la parte origen (estructura anidada)
- entityId (string) - UUID de la entidad origen
- name (string) - Nombre de la parte origen
- country (string) - País de origen
- details (object) - Detalles adicionales de origen
- type (string) - Tipo de entidad origen
- riskScore (number) - Puntuación de riesgo de la entidad origen
- destination (object) - Información de la parte destino (estructura anidada)
- entityId (string) - UUID de la entidad destino
- name (string) - Nombre de la parte destino
- country (string) - País de destino
- details (object) - Detalles adicionales de destino
- type (string) - Tipo de entidad destino
- riskScore (number) - Puntuación de riesgo de la entidad destino
- riskScore (number) - Puntuación de riesgo actualizada después de la re-evaluación
- riskFactors (array) - Factores de riesgo actualizados
- flagged (boolean) - Estado de marcado actualizado
- updatedAt (string) - Timestamp de la actualización
Información sobre la transición de estado:
- from (string) - Estado anterior
- to (string) - Nuevo estado
En la raíz de la respuesta (alineado con Crear transacción). Solo presente cuando se ejecutaron reglas. Resumen de qué reglas hicieron match (hit) y cuáles no (no hit), acciones ejecutadas y puntuación total.
- rulesHit (array) - Reglas cuyas condiciones se cumplieron. Cada elemento: name, description, score, priority, category, status, conditions, actions.
- rulesNoHit (array) - Reglas evaluadas pero condiciones no cumplidas. Misma estructura que rulesHit.
- actionsExecuted (object) - Acciones ejecutadas agregadas: alerts, suggestion, status, assignedUser, customKeys (array de strings, opcional) — claves de acciones personalizadas de las reglas que hicieron match; para integraciones/workflows.
- totalScore (number) - Suma de puntuación de todas las reglas que hicieron hit (excluyendo shadow).
Respuestas de Error
400 Bad Request - Estado Inválido
400 Bad Request - Transición Inválida
404 Not Found
401 Unauthorized
500 Internal Server Error
Casos de Uso
1. Flujo de Revisión Manual
2. Verificación Automática de Cumplimiento
3. Respuesta a Detección de Fraude
4. Actualizaciones Masivas de Estado
Mejores Prácticas
- Validar antes de cambiar - Siempre verificar el estado actual antes de intentar un cambio de estado para evitar llamadas API innecesarias
- Manejar errores de transición - Implementar manejo de errores apropiado para transiciones inválidas, ya que las transacciones cerradas no pueden ser reabiertas
- Usar estados apropiados - Elegir el estado correcto que refleje el estado de negocio real de la transacción
-
Monitorear ejecución de reglas - Prestar atención a
rulesExecutionSummarypara asegurar que las reglas de actualización se ejecuten como se espera y verificar detalles de ejecución, advertencias y metadata - Implementar registro de auditoría - Rastrear todos los cambios de estado en su sistema para cumplimiento y depuración
- Actualizaciones masivas - Al actualizar múltiples transacciones, usar Promise.allSettled() para continuar procesando incluso si algunas actualizaciones fallan
- Integración de webhooks - Considerar configurar webhooks para recibir notificaciones cuando los cambios de estado ejecuten reglas importantes
- Probar transiciones de estado - Probar todas las posibles transiciones de estado en su entorno de desarrollo antes de desplegar a producción
Endpoints Relacionados
Crear Transacción
Crear nuevas transacciones
Obtener Transacción
Recuperar detalles de transacción
Configuración de Reglas
Configurar reglas de actualización
Resumen
Volver al resumen