Prerequisites
API key from Dashboard
Get your API key from the Cadana Dashboard. See Authentication for details.
Existing Person record
The worker must already be onboarded as a Person. See Onboard Workers.
Step 1: Create a User
Invite the worker to Cadana by creating a User linked to their Person record. This provisions a wallet in their compensation currency. Response:Get the onboarding link
PassreturnLink: true to receive the worker’s unique onboarding URL in the response. This is useful when you want to send it through a custom channel.
Response:
Using custom authentication? Pass
"suppressWelcomeEmail": true to skip the welcome email and password setup. You’ll handle login via your own SSO flow instead. See Custom Authentication.Step 2: KYC Verification
Before the wallet can be fully functional, the worker must complete identity verification (KYC). There are two ways to do this:Option A: Worker self-service
The worker completes KYC themselves through the Cadana app or your white-label UI after logging in.Option B: Submit KYC via API
You can submit KYC on behalf of the worker directly through the API. This is useful when you’ve already collected identity documents during your own onboarding flow. Returns204 on success — the submission is sent for verification.
Check KYC status
Poll the KYC endpoint or listen for theuser.kyc.updated webhook event to track verification progress:
Response:
Tax Forms (U.S. Businesses)
Contractors hired by U.S. businesses are also required to complete and sign a tax form (W-9, W-8BEN, or W-8BEN-E) as part of wallet onboarding. The contractor completes this through the Cadana app alongside KYC — no API integration needed. You can retrieve and download completed forms via the API. See Tax Forms.Wallet Payment Method
When you create a User for a Person, the platform automatically sets wallet as the preferred payment method. No additional API call is needed — payroll disbursements will go to the worker’s Cadana wallet by default. You can verify this by checking the Person’s payment info:If you need to switch the worker to a different payment method (bank transfer, mobile money, etc.), use
PUT /v1/persons/{personId}/paymentInfo. See Onboard Workers for details.Check Wallet Balance
Retrieve a worker’s wallet balances. A worker can hold balances in multiple currencies. Response:| Field | Description |
|---|---|
currency | Wallet currency |
balance | Total balance in lowest denomination (cents) |
available | Amount available for withdrawal |
processing | Amount currently being processed (e.g. pending withdrawals) |
Managing Users
| Operation | Endpoint | Description |
|---|---|---|
| List users | GET /v1/users | Filter by personId or email |
| Get user | GET /v1/users/{userId} | Retrieve user details and status |