Onboarding — lifecycle
This is the canonical description of the onboarding journey — the states an onboarding moves through and the end-to-end process behind them. The same status envelope and the same five states apply to all three flows; the journey diverges only in the provisioning tail.
A caller starts an onboarding and then polls its status. Behind that single
handle, Ark runs the applicant through address validation, identity verification, a risk
assessment, and provisioning — reporting progress as a status and a granular currentStep at
each point.
States (shared across all three flows)
| Status | Meaning |
|---|---|
INITIATED | Accepted by the API; not yet executing. This is the status returned by the start call. |
IN_PROGRESS | Steps are executing (address validation, risk assessment, provisioning). |
PENDING_ACTION | Waiting on the identity verification — in particular a manual review, which can take up to ~3 days. |
COMPLETED | Terminal success — the party, account, and card have been provisioned. |
FAILED | Terminal failure — a step failed, identity was not verified, or the risk assessment routed the applicant to manual review. The reason is on the state's errors. |
Which flow
Three flows share the same envelope and the same pre-provisioning trunk (address → KYX → risk).
They differ only in the request shape (what the caller supplies on party) and the provisioning
tail (what gets created in core banking).
| Flow | When to use | Provisioning tail |
|---|---|---|
| Individual | An individual applicant onboarding for themselves. | party → account → card. |
| Sole-trader | An individual operating a sole-trader business — same person, with an ABN. | party (with ABN on entityDetails) → account → card. |
| Company | A company onboarding, where the caller has already onboarded the directors and one of them will be the authorised signatory on the company's account. | party (with relationships[] to existing directors) → account → addSignatories → card. |
The workflowType field on the WorkflowStateResponse (individual, sole-trader, or company)
is the runtime discriminator. The status and currentStep fields are common shape across all
three.