Workflow
El Workflow es el motor que define las condiciones de negocio que retienen o liberan un
valor. Es genuinamente opcional — una Transaction puede crearse sin ningún workflowVersionId,
y executeSettlement() nunca verifica el estado del Workflow de ninguna forma (vea
Transaction, Settlement, Split y Refund). Úselo cuando quiera que la
propia plataforma modele e imponga el ciclo de vida de su producto; omítalo cuando su propia
aplicación ya decide cuándo liquidar. Siete conceptos componen este motor:
- Workflow — el "molde" reutilizable de un proceso (ej.: escrow simple, marketplace con split).
- Workflow Version — una instantánea inmutable y publicable de un Workflow. Toda
Transactionreferencia una versión específica, nunca el Workflow "actual" — después de publicada, una versión nunca se modifica; un cambio exige una nueva versión. - State — un estado posible dentro de una Workflow Version (ej.:
waiting_payment,funded,settled). - Transition — la arista permitida entre dos States, gobernada por una o más Rules.
- Rule — la condición configurable que autoriza una Transition.
- Condition — el predicado evaluado dentro de una Rule (ej.: plazo expirado, valor recibido ≥ esperado).
- Action — el efecto colateral disparado por una Transition exitosa (ej.: disparar un Settlement, emitir un Webhook).
Flujo de creación
- Crear el Workflow (borrador).
- Definir States, Transitions y Rules.
- Publicar — la plataforma valida consistencia (estados alcanzables, sin ciclos inválidos) antes de hacer la versión inmutable.
Rutas
- Crear Workflow:
POST /v1/organizations/{organizationId}/workflows - Crear versión:
POST /v1/workflows/{workflowId}/versions - Publicar versión:
publish-workflow-version - Consultar:
get-workflow/get-workflow-version