Skip to main content
This guide walks through the full lifecycle of a business on your platform: Each business you create gets its own tenantKey. Every subsequent call for that business — KYB, funding, workers, payroll — carries that key in the X-MultiTenantKey header.

Prerequisites

1

Platform access enabled

Contact your account manager to enable Platform API access.
2

Platform API token

Generate a Platform token from your Platform Dashboard under Settings > Developers.
Platform API access requires special enablement. Standard org tokens cannot create businesses or use the X-MultiTenantKey header.

Create a Business

Create a business on your platform. The response includes the tenantKey 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.

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 the X-MultiTenantKey header with the tenant key.
If you omit the header, the request does not fail — it silently runs against your platform’s own main business. Always set X-MultiTenantKey when you intend to operate on a sub-business.
Unsure which business a request will hit? Call GET /v1/me with the same headers — the response includes the business the request resolved to.
All business-scoped endpoints (persons, users, payrolls, contracts, invoices, KYB) accept the 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:
A business starts in 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 in pending_verification and can’t process payments until Know Your Business (KYB) verification is approved. There are two ways to submit it:
  • Hosted formgenerate 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.
See KYB Requirements for required fields, document uploads, and the nuances of updating a submission (in short: PATCH updates existing fields and principals, re-POST to add principals).

Track Verification

Poll GET /v1/businesses/{businessId}/kybrequirements.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 is ACTIVE, 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 a tenantKey field to identify which business the event relates to.
See Events for all event types and Webhooks to configure your endpoint.

Sandbox Testing

In sandbox mode, businesses are created instantly and KYB can be auto-approved using test values (e.g., tax ID 000-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


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