Workflow
O Workflow é o motor que define as condições de negócio que retêm ou liberam um valor. Ele é
genuinamente opcional — uma Transaction pode ser criada sem nenhum workflowVersionId, e
executeSettlement() nunca verifica o estado do Workflow de qualquer forma (ver
Transaction, Settlement, Split e Refund). Use-o quando quiser que a
própria plataforma modele e imponha o ciclo de vida do seu produto; dispense-o quando sua própria
aplicação já decide quando liquidar. Sete conceitos compõem esse motor:
- Workflow — o "molde" reutilizável de um processo (ex.: escrow simples, marketplace com split).
- Workflow Version — um snapshot imutável e publicável de um Workflow. Toda
Transactionreferencia uma versão específica, nunca o Workflow "atual" — depois de publicada, uma versão nunca é alterada; uma mudança exige nova versão. - State — um estado possível dentro de uma Workflow Version (ex.:
waiting_payment,funded,settled). - Transition — a aresta permitida entre dois States, governada por uma ou mais Rules.
- Rule — a condição configurável que autoriza uma Transition.
- Condition — o predicado avaliado dentro de uma Rule (ex.: prazo expirado, valor recebido ≥ esperado).
- Action — o efeito colateral disparado por uma Transition bem-sucedida (ex.: disparar um Settlement, emitir um Webhook).
Fluxo de criação
- Criar o Workflow (rascunho).
- Definir States, Transitions e Rules.
- Publicar — a plataforma valida consistência (estados alcançáveis, sem ciclos inválidos) antes de tornar a versão imutável.
Rotas
- Criar Workflow:
POST /v1/organizations/{organizationId}/workflows - Criar versão:
POST /v1/workflows/{workflowId}/versions - Publicar versão:
publish-workflow-version - Consultar:
get-workflow/get-workflow-version