Individual onboarding API workflow
Use this map to connect individual KYC policy to the current generated API reference. Follow the current resource at every step rather than implementing policy-facing labels as an API state machine.Workflow map
1. Create the individual customer
Create the customer withPOST /v3/customers. Store the returned customer id and read the current resource with GET /v3/customers/{customerId}.
2. Discover and request an eligible capability
ReadGET /v3/customers/{customerId}/capabilities/supported. Select a variant only when its current availability and eligibility allow the request, then use POST /v3/customers/{customerId}/capabilities/{capabilityId}.
3. Read the current capability and applications
ReadGET /v3/customers/{customerId}/capabilities/{capabilityId} and GET /v3/customers/{customerId}/capabilities/{capabilityId}/applications. Follow current open task ids rather than assuming readiness from an earlier response.
For named bank capabilities, a customer has one application case per bank, shared across compatible capabilities. See Shared applications per bank for response codes, selectedApplicationId, and the customer applications list.
4. Fetch current task detail
List customer tasks withGET /v3/customers/{customerId}/tasks. Fetch the authorized action surface with GET /v3/customers/{customerId}/tasks/{taskId}.
Task detail can expose first-party hosted session URLs and the current actionable requirements. Use its current revision and status.
In intake tasks that accept direct submission, eligible requirements already backed by the customer’s profile or uploaded documents move to review automatically. Build forms from each requirement’s metadata. See Render requirements.
5. Complete hosted sessions or submit task answers
When task detail provides a hosted session, return only the required session data to your client and keep the API key in your backend. When the task requires answers, create one complete immutable attempt withPOST /v3/customers/{customerId}/tasks/{taskId}/submissions. Read one current submission and its public outcome with GET /v3/customers/{customerId}/tasks/{taskId}/submissions/{submissionId}.
6. Upload documents only when requested
Upload documents only when the current task asks for them. UsePOST /v3/customers/{customerId}/documents, then place the returned document id in the applicable document answer.