Discover supported capabilities
Read the customer’s current options withGET /v3/customers/{customerId}/capabilities/supported:
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.
Pooled vs named account types
Bank capabilities come in two variants, encoded as theaccountType field and the capability ID suffix (for example ach_pooled, wire_named):
pooled: shared Swipelux bank account. Each pay-in uses a unique reference to route funds. Pick this for one-time transfers.named: dedicated bank details for the customer (virtual IBAN, dedicated ACH account). Reusable and shareable with any payer. Required for issued bank accounts.
pooled. Use named only when the customer needs reusable bank details. Check the supported response for which variants are available.
Request the capability
Request the selected option withPOST /v3/customers/{customerId}/capabilities/{capabilityId}:
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 withGET /v3/customers/{customerId}/tasks, select IDs from OPEN_TASK_IDS, then read each current task with GET /v3/customers/{customerId}/tasks/{taskId}:
data.revision and data.requirements. Refetch the task immediately before submitting if either may have changed.
Hosted actions
When the task returnsverificationSessions 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 withPOST /v3/customers/{customerId}/documents:
data.id as DOCUMENT_ID before submitting the answer that references it.
API answers
Submit one complete answer set for the current revision withPOST /v3/customers/{customerId}/tasks/{taskId}/submissions:
Continue when the capability is ready
Read the capability again withGET /v3/customers/{customerId}/capabilities/{capabilityId}: