Skip to main content
PATCH
Cambiar Estado de Transacción

Endpoint

Cambiar Estado de Transacción

Actualiza el estado de una transacción existente con validación automática de transiciones de estado y ejecución opcional de reglas para re-evaluación de riesgo en tiempo real. Características:
  • 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 (no transaction_updated)
  • Protección de integridad de transacciones
  • Rastro de auditoría completo

Autenticación

Todas las solicitudes deben incluir una clave API en el encabezado Authorization:

Encabezados Requeridos

Parámetros de Ruta

string
required
El UUID de la transacción a actualizarTipo: string (uuid)

Cuerpo de la Solicitud

string
required
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)
Tipo: 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:
  • CREATED
  • PROCESSING
  • SUSPENDED
  • SENT

Estados Cerrados

Estados finales que no pueden transicionar a otros estados:
  • EXPIRED
  • DECLINED
  • REFUNDED
  • SUCCESSFUL

Matriz de Transiciones

Reglas Clave:
  1. Abierto → Abierto: Permitido (ej: CREATED → PROCESSING)
  2. Abierto → Cerrado: Permitido (ej: PROCESSING → SUCCESSFUL)
  3. Cerrado → Abierto: NO Permitido (ej: SUCCESSFUL → PROCESSING)
  4. 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:
  1. Valida la transición - Asegura que el nuevo estado es válido y la transición está permitida
  2. Actualiza el estado - Cambia el estado de la transacción en la base de datos
  3. Ejecuta reglas de actualización - Ejecuta todas las reglas con trigger: 'updated' en su alcance
  4. Actualiza puntuación de riesgo - Re-calcula el riesgo basado en los resultados de las reglas
  5. Devuelve transacción actualizada - Devuelve la transacción completa con la nueva evaluación de riesgo

Trigger de Reglas

El endpoint usa el modo trigger_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

boolean
Si el cambio de estado fue exitoso
object
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
object
Información sobre la transición de estado:
  • from (string) - Estado anterior
  • to (string) - Nuevo estado
object
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

  1. Validar antes de cambiar - Siempre verificar el estado actual antes de intentar un cambio de estado para evitar llamadas API innecesarias
  2. Manejar errores de transición - Implementar manejo de errores apropiado para transiciones inválidas, ya que las transacciones cerradas no pueden ser reabiertas
  3. Usar estados apropiados - Elegir el estado correcto que refleje el estado de negocio real de la transacción
  4. Monitorear ejecución de reglas - Prestar atención a rulesExecutionSummary para asegurar que las reglas de actualización se ejecuten como se espera y verificar detalles de ejecución, advertencias y metadata
  5. Implementar registro de auditoría - Rastrear todos los cambios de estado en su sistema para cumplimiento y depuración
  6. Actualizaciones masivas - Al actualizar múltiples transacciones, usar Promise.allSettled() para continuar procesando incluso si algunas actualizaciones fallan
  7. Integración de webhooks - Considerar configurar webhooks para recibir notificaciones cuando los cambios de estado ejecuten reglas importantes
  8. 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