Skip to main content
A capability tells you whether a customer can use a specific outcome, payment method, and direction. Open tasks tell you what must happen before that capability or a related resource can move forward.

Discover supported capabilities

Read the customer’s current options with GET /v3/customers/{customerId}/capabilities/supported:
Choose a response entry that matches the intended directions, method, and accountType. Continue only when availability is available or beta and eligibility.eligible is true. If institutions are returned, select only an ID from that response. Store the selected data[].id as CAPABILITY_ID. Never copy a capability ID from another customer or environment.

Request the capability

Request the selected option with POST /v3/customers/{customerId}/capabilities/{capabilityId}:
Use an explicit institutions array only when you need to select from IDs returned by the supported-capability response. Store data.status as CAPABILITY_STATUS, data.openTaskIds as OPEN_TASK_IDS, and each data.applications[].id in APPLICATION_IDS.

Complete current tasks

List tasks with GET /v3/customers/{customerId}/tasks, select IDs from OPEN_TASK_IDS, then read each current task with GET /v3/customers/{customerId}/tasks/{taskId}:
Use the latest data.revision and data.requirements. Refetch the task immediately before submitting if either may have changed.

Hosted actions

When the task returns verificationSessions or tosSessions, store each session id and current url. Send the customer to the returned URL, then read the task again. These are task-scoped actions, not a separate customer-verification lifecycle.

Upload documents

When a requirement requests a document, upload it with POST /v3/customers/{customerId}/documents:
Store the returned data.id as DOCUMENT_ID before submitting the answer that references it.

API answers

Submit one complete answer set for the current revision with POST /v3/customers/{customerId}/tasks/{taskId}/submissions:
Take every requirement ID and answer type from the latest task. If the API reports that the task changed, refetch it and rebuild the submission from the new revision.

Continue when the capability is ready

Read the capability again with GET /v3/customers/{customerId}/capabilities/{capabilityId}:
Replace the stored status and task IDs with the latest response. Continue only when the current capability status permits the account, quote, or transfer you intend to create. Next, choose the matching journey in Common flows.