tenantKey. Every subsequent call for that business — KYB, funding, workers, payroll — carries that key in the X-MultiTenantKey header.
Prerequisites
Platform API token
Generate a Platform token from your Platform Dashboard under Settings > Developers.
Create a Business
Create a business on your platform. The response includes thetenantKey you’ll need for all subsequent calls to this business.
Response:
Store the
tenantKey in your database mapped to the business. You’ll need it for every API call that targets this business.Creating a business sends a welcome email to
adminEmail. Pass suppressWelcomeEmail: true if you onboard the business yourself and don’t want Cadana to email your customer.Add Legal Entities (Optional)
For global payroll, you can create legal entities representing subsidiaries or branches in different jurisdictions: See Entity Management for full details.Use the Tenant Key
For all business-specific operations, include theX-MultiTenantKey header with the tenant key.
X-MultiTenantKey header. Platform-level endpoints (/v1/platform/*) like creating and listing businesses do not take it. See the API Reference for all available endpoints.
List Your Businesses
Retrieve all businesses on your platform. No tenant key needed. Response:pending_verification and moves to ACTIVE once KYB is approved. Use the node.next cursor with the next query parameter to page through results.
Complete KYB
A new business starts inpending_verification and can’t process payments until Know Your Business (KYB) verification is approved. There are two ways to submit it:
- Hosted form — generate a KYB link and send it to the business owner. They complete a branded multi-step form; links expire after 6 hours and progress is saved between visits.
- API submission — collect the data in your own UI and submit it directly. You can submit everything at once or incrementally.
Track Verification
PollGET /v1/businesses/{businessId}/kyb — requirements.currentlyDue lists anything still outstanding — or subscribe to the business.kyb.reviewed and business.kyb.completed webhooks. When KYB reaches complete, the business status flips to ACTIVE.
Fund the Business
Once the business isACTIVE, retrieve the bank details to send funds to, and check balances:
See Fund Your Account for all funding methods (bank transfer, ACH direct debit, crypto) and the sandbox deposit endpoint for instant test funds.
Webhooks
Platform integrations receive webhooks for all businesses. The payload includes atenantKey field to identify which business the event relates to.
Sandbox Testing
In sandbox mode, businesses are created instantly and KYB can be auto-approved using test values (e.g., tax ID000-CAD-AUTO-APPROVE). All API calls work the same as production.
Use https://dev-api.cadanapay.com as the base URL. See Sandbox & Testing for all test values and simulated scenarios.
Troubleshooting
| Error | Cause | Solution |
|---|---|---|
| Request affects the wrong business (no error) | Missing X-MultiTenantKey header — the request ran against your platform’s main business | Add the header with the correct tenant key |
401 Unauthorized | Invalid or expired token | Verify your Platform token is valid |
403 Forbidden | Tenant key doesn’t belong to your platform | Verify the tenant key matches a business you created |
400 unauthorized access | The businessId in the path doesn’t belong to the business in X-MultiTenantKey | Use the businessId and tenantKey of the same business |
400 Platform access required | Account not enabled for platform access | Contact your account manager |
Next Steps
KYB Requirements
Business verification requirements
Fund Your Account
Fund business accounts before running payroll
Onboard Workers
Create Person and User records for each business
Pay Workers via Payroll
Run payroll for a business
Transaction Reconciliation
Reconcile transactions across businesses
Workforce API Reference
Full API documentation