Skip to main content

Overview

POST /v1/workflows/execute runs a workflow and returns the result. By default it uses the latest deployed version of the workflow. The call is synchronous — it holds the connection until the workflow reaches a terminal state or pauses. Typical execution times: These are end-to-end wall-clock times under normal load. Design your UX accordingly — KYC flows warrant a loading state; credential-only calls are fast enough to be invisible.

Prerequisites

Basic Execution

Request Fields

Handling the Response

200 — Terminal (Completed or Failed)

The workflow ran to a terminal state. Check success and status to determine outcome:
If a block failed, success will be false and error will describe what went wrong:

202 — Paused

The workflow reached a block that requires external input before it can continue — a manual compliance review, sponsor bank approval, or a human-in-the-loop decision:
Store the executionId. When the external review is complete, resume by running POST /v1/workflows/execute again with runFromBlock pointing to the block after the pause point.

Resuming a Paused Execution

The resumed execution picks up state from exec_01HQ7R... and runs from credential_issue forward, skipping the already-completed blocks.

Listing Past Executions

Check the history of any workflow:

Testing with Draft State

Before deploying a workflow change, run it against draft state to validate the changes:
Never run draft state in production. Use a staging API key (sk_staging_*) when testing draft workflows.

Error Codes

Next Steps

Credentials API

Deep-dive into the credential that workflows emit

Verifying a Credential

How to verify the signed credential at transaction time

Fintech Company Using Beltic

Full end-to-end example — workflow execution, sponsor bank queue, and transaction authorization