How Responsibilities Split
Step 1 — Estimate the Cost of Hire
Before making an offer, estimate the full employer cost — gross↔net plus employer-side contributions — with the Employment Cost Calculator. No person record is needed: The response’semployerContributions array is what you will fund on top of gross pay under EOR — see Employment Models for exactly what the payroll debit collects.
Step 2 — Confirm EOR Availability and Local Employment Rules
List jurisdictions filtered to EOR support — each country reports itseorStatus alongside the workerTypes and employmentModels it supports:
Then fetch the jurisdiction’s details. For EOR countries the response carries an eor block with the local employment rules you need to shape a compliant offer — probation and fixed-term limits, working hours, notice periods, statutory leave minimums, 13th-salary obligations, payout constraints, and termination rules. Numeric fields carry a value (null where no statutory rule exists) plus notes explaining the underlying statute:
Step 3 — Create the EOR Employee
Create the person withcompInfo.employmentModel: "eor", then complete their identity details, tax profile, statutory filing fields, and payment details. This is identical to Pay an Employee, steps 3–7 — the employment model changes what the payroll debit collects, not how you submit data.
Use the requirements endpoint to loop until nothing is outstanding — under EOR, complete statutory data is a precondition for issuing the employment agreement.
Before setting the worker’s payment details, check the jurisdiction’s
eor.payoutMethod.walletPayoutAllowed from step 2 — some countries require salary to be credited to a bank account in the worker’s name, so a wallet can’t be their payout destination there.Step 4 — The Employment Agreement
Once the worker’s data is complete, the local employment agreement is issued from a country-specific template. Both signing modes are supported — see Manage Contracts for the full flows:- Electronic signing — create the contract from a template, then hand each signer a signing URL. The business representative signs first, then the worker.
- Offline signing — a contract executed outside the platform (for example, wet-signed locally) is uploaded as a signed PDF and attached to the person’s record.
contract.created, contract.signed, and contract.status.updated webhook events. Contract issuance can be asynchronous — treat the webhooks, not the create call, as your source of truth for signature state.
EOR employment agreement templates are configured per country with your account manager. The agreement is between the worker and Cadana as the employing entity — your business is referenced as the client the work is performed for.
Step 5 — Worker Account and Verification
Every worker gets a Cadana account. Invite them once their person record exists — the invite email (or a returnable onboarding link, if you deliver it yourself) takes them into the app, where they complete identity and address verification at first sign-in: If you’re embedding the experience in your own product instead, submit verification data directly via the KYC API and track state with theuser.kyc.updated webhook. Both paths are covered in Worker Wallets.
Step 6 — Fund the Payroll
EOR payrolls debit gross pay plus employer contributions from your business balance (direct employment debits net plus fees — see Employment Models). Fund your account ahead of the payroll date and read your balance back at any time: See Fund Your Account for deposit methods (bank transfer, direct debit from a linked external account, and sandbox test deposits).Step 7 — Run Payroll
Payroll runs identically to direct employment: create, save entries, review the computeddebit, approve. Follow Pay an Employee, steps 8–9. After completion, the payroll’s invoice itemizes the debit into GROSS_PAYROLL and EMPLOYER_CONTRIBUTION line categories with per-line FX rates.
Changing Salary or Role
Compensation and job changes go through the job info endpoint — under EOR this also triggers the corresponding employment-agreement update on the Cadana side: Changes surface on theperson.updated webhook. Salary changes apply from the next payroll run that you save.
Termination and Offboarding
Request offboarding with an exit date and reason — Cadana handles the compliant execution (statutory notice, severance, and final pay under local law): Offboarding is scheduled, not immediate — the worker transitions toFormer on the exit date, and you can cancel before then or reinstate after. The full lifecycle, request fields, and the four person.offboarding.* / person.reinstated webhook events are covered in Offboard Workers.
Webhooks to Subscribe To
See Webhooks for setup and Events for payloads.
Next Steps
Pay an Employee End-to-End
The shared data-collection and payroll steps in full detail
Employment Models
What the payroll debit collects under EOR vs direct
Manage Contracts
Template-based e-signing and signed-PDF upload
Offboard Workers
Scheduling, cancelling, reinstating, and webhooks