Flow structure
A flow is a JSON object with the following top-level fields:| Field | Type | Description |
|---|---|---|
name | string | Human-readable name for the flow |
start | string (uuid) | The id of the first node to execute |
nodes | array | List of node objects that make up the flow |
type and a data object. The fields in data differ by node type.
Node types
Start
Marks the entry point of the flow. Every flow must have exactly one start node, and the top-levelstart field must reference its id.
Unique identifier for this node.
The node to route to when the flow begins.
Transaction
Pauses the flow and dispatches a CloudEvent to your processor integration. The flow resumes when your integration responds with a Finish event.Unique identifier for this node.
The
ce-type of the Custom Transaction Event sent to your integration.A key passed to your integration to select which operation to perform.
Seconds before the transaction is considered failed.
The gateway node to route to after the transaction completes.
Gateway
Evaluates theresult from your integration’s Finish event and routes the flow to the appropriate next node. If no rule matches, the flow execution fails.
Unique identifier for this node.
Requirement
Signals that an external action must be completed before the flow can continue — for example, a 3DS authentication challenge presented to the cardholder. The flow pauses until it receives a confirmation event routed through the next gateway.Unique identifier for this node.
The type of requirement to fulfill.
| Value | Description |
|---|---|
TDS | 3D Secure redirect |
ManualCapture | Payment requires a manual capture |
The gateway node to route to after the requirement is signaled.
Seconds before the requirement is considered failed.
Transition
Sets the flow’s outcome state and then routes to the next node. Use this node to record whether a flow path ended in success or failure before reaching the end.Unique identifier for this node.
The payment state to set. Allowed values:
| Value | Description |
|---|---|
accepted | Payment has been accepted |
authorized | Payment has been authorized |
completed | Payment has been completed |
failed | Payment has failed |
The node to route to after the state is set.
End
Marks a terminal point in the flow. A flow can have multiple end nodes — for example, one per outcome path.Unique identifier for this node.
Schema
Download the JSON Schema (Draft 2020-12): flow.schema.jsonExamples
- Payment
- Refund
The payment flow handles a card sale with optional 3DS v1 authentication. If the processor requires 3DS, the flow pauses for the cardholder challenge and then confirms authentication before completing the sale.

