curl -X POST \
-H "Authorization: Bearer sk_workspace_test_..." \
-H "Content-Type: application/json" \
-d '{
"name": "KYC Premium",
"entryNodeId": "nd_req",
"nodes": [
{ "id": "nd_req", "type": "request", "next": "nd_verify" },
{ "id": "nd_verify", "type": "verification", "next": "nd_resp", "config": { "channel": "oidc", "claims": ["name", "birthdate"] } },
{ "id": "nd_resp", "type": "response" }
]
}' \
"https://sandbox.api.hopae.com/connect/v1/apps/abc123/workflows"
{
"workflowId": "wf_abc123",
"name": "KYC Premium",
"entryNodeId": "nd_req",
"nodes": [
{ "id": "nd_req", "type": "request", "next": "nd_verify" },
{ "id": "nd_verify", "type": "verification", "next": "nd_resp", "config": { "channel": "oidc", "claims": ["name", "birthdate"] } },
{ "id": "nd_resp", "type": "response" }
],
"createdAt": "2025-01-15T10:00:00.000Z",
"updatedAt": "2025-01-15T10:00:00.000Z"
}
Workflows
Create Workflow
Create a new workflow for an app.
POST
/
apps
/
{client_id}
/
workflows
curl -X POST \
-H "Authorization: Bearer sk_workspace_test_..." \
-H "Content-Type: application/json" \
-d '{
"name": "KYC Premium",
"entryNodeId": "nd_req",
"nodes": [
{ "id": "nd_req", "type": "request", "next": "nd_verify" },
{ "id": "nd_verify", "type": "verification", "next": "nd_resp", "config": { "channel": "oidc", "claims": ["name", "birthdate"] } },
{ "id": "nd_resp", "type": "response" }
]
}' \
"https://sandbox.api.hopae.com/connect/v1/apps/abc123/workflows"
{
"workflowId": "wf_abc123",
"name": "KYC Premium",
"entryNodeId": "nd_req",
"nodes": [
{ "id": "nd_req", "type": "request", "next": "nd_verify" },
{ "id": "nd_verify", "type": "verification", "next": "nd_resp", "config": { "channel": "oidc", "claims": ["name", "birthdate"] } },
{ "id": "nd_resp", "type": "response" }
],
"createdAt": "2025-01-15T10:00:00.000Z",
"updatedAt": "2025-01-15T10:00:00.000Z"
}
Create a new workflow. Provider keys referenced in
VERIFICATION nodes must exist in app.providers. Maximum 100 workflows per app.
Request
string
required
Bearer <API_KEY> from Console > Developers > Workspace API Keys.string
application/jsonstring
Optional client-generated string (max 255 chars) to safely retry without creating duplicates. Scoped per workspace. A key is valid for 24 hours. If the same key is replayed with an identical body, the original response is returned with an
Idempotency-Replayed: true header. Reusing the same key with a different body returns 409 IDEMPOTENCY_KEY_CONFLICT.Path parameters
string
required
Client identifier of the app.
Request body
string
required
Display name for the workflow.
string
required
ID of the entry node (must exist in
nodes).object[]
required
Array of flow nodes. Each node has:
Response
string
Auto-generated workflow identifier.
string
Workflow name.
string
Entry node ID.
object[]
Array of flow nodes.
string
ISO 8601 timestamp.
string
ISO 8601 timestamp.
The response includes a
Location header pointing at the newly-created resource (e.g., /connect/v1/apps/{clientId}/workflows/wf_abc123).curl -X POST \
-H "Authorization: Bearer sk_workspace_test_..." \
-H "Content-Type: application/json" \
-d '{
"name": "KYC Premium",
"entryNodeId": "nd_req",
"nodes": [
{ "id": "nd_req", "type": "request", "next": "nd_verify" },
{ "id": "nd_verify", "type": "verification", "next": "nd_resp", "config": { "channel": "oidc", "claims": ["name", "birthdate"] } },
{ "id": "nd_resp", "type": "response" }
]
}' \
"https://sandbox.api.hopae.com/connect/v1/apps/abc123/workflows"
{
"workflowId": "wf_abc123",
"name": "KYC Premium",
"entryNodeId": "nd_req",
"nodes": [
{ "id": "nd_req", "type": "request", "next": "nd_verify" },
{ "id": "nd_verify", "type": "verification", "next": "nd_resp", "config": { "channel": "oidc", "claims": ["name", "birthdate"] } },
{ "id": "nd_resp", "type": "response" }
],
"createdAt": "2025-01-15T10:00:00.000Z",
"updatedAt": "2025-01-15T10:00:00.000Z"
}

