Skip to main content
Onboarding a worker means creating a Person — the HR record that stores their personal details, job information, and compensation. Once a Person exists, you can run payroll, issue contracts, and configure how they get paid.

Prerequisites

  • A Cadana account with API access
  • Your API key from the Dashboard

Step 1: Create a Person

A Person represents an employee or contractor in your organization.
Response:
{
  "id": "8ef9a712-cdae-4110-b1ea-9ba95abbee6e"
}
Save the id — you’ll need it to configure payment methods, create a user, and run payroll.

Required Fields

FieldDescription
personTypeEMPLOYEE or CONTRACTOR
firstName, lastNameContact person’s legal name
emailMust be unique per tenant for active persons
address.countryCodeISO country code — determines available payment methods and tax rules
compInfo.salaryAmount in minor units (cents). 500000 USD = $5,000.00
compInfo.currencyCompensation currency
compInfo.frequencyhourly, daily, or monthly
compInfo.typenet (contractor) or salaried (employee with tax calculation)
For workers with variable pay, you may set compInfo.salary to 0 during onboarding. You’ll provide the actual amount when saving payroll entries during a payroll run.

Contractor-Specific Fields

FieldDescription
contractorTypeINDIVIDUAL or BUSINESS — required when personType is CONTRACTOR
businessNameCompany name — required when contractorType is BUSINESS

Optional Fields

FieldDescription
jobInfo.titleJob title
jobInfo.departmentDepartment name (must match a department configured on the business)
jobInfo.startDateEmployment start date (YYYY-MM-DD)
jobInfo.employeeNumberYour internal employee/contractor ID
jobInfo.entityIdUUID of the legal entity this person belongs to. See Entity Management.
jobInfo.customFieldsCustom fields configured on the business
phoneNumberMust be globally unique across all tenants
metadataKey-value pairs for your own tracking (max 50 entries)

Step 2: Configure Payment Method

Payment methods are configured separately after creating the Person. By default, workers are paid via Cadana Wallet — the recommended option for most integrations.

Cadana Wallet (Default)

Workers are paid into a Cadana Global Wallet, where they can manage their funds, withdraw to a local bank, and access financial features like Virtual Cards. To set up a wallet, the worker needs a User account. See Set Up Worker Wallets for the full flow (create User, complete KYC, wallet is provisioned automatically).
Wallet is set automatically. When you create a User for a Person, the platform automatically sets wallet as the preferred payment method. No separate PUT /paymentInfo call is needed.

Direct Payment Methods (Alternative)

Direct payment methods (bank transfer, mobile money, etc.) require enablement for your business. Contact your account manager to configure direct-to-bank payouts.
If enabled, you can pay workers directly to their bank account or mobile money without creating a User account.

Payment Methods

MethodpreferredMethodUse CaseRequires User
Cadana WalletwalletDefault — workers manage funds via CadanaYes
Bank transferbankLocal bank accountNo
Mobile moneymomoMobile money (GH, KE, UG, etc.)No
ACHachUS bank accountsNo
SWIFTswiftInternational wire transfersNo
ProxyproxyProxy-based payments (e.g., Pix)No
Available payment methods vary by country and currency. The API will return a validation error if the method isn’t supported for the worker’s country. See Payment Methods for coverage.

Check Current Payment Info


Step 3: Issue a Contract (Optional)

You can issue a contract to the worker immediately after onboarding. See Manage Contracts for the full guide.

Managing Person Records

After onboarding, you can update worker details as needed:
OperationEndpointWhat it updates
Get personGET /v1/persons/{personId}Retrieve full person record
List personsGET /v1/personsList all persons (filterable by email)
Update basic infoPUT /v1/persons/{personId}/basicInfoName, email, phone, metadata
Update personal infoPUT /v1/persons/{personId}/personalInfoDate of birth, national ID, tax ID, social security ID, gender, nationality, address
Update job infoPUT /v1/persons/{personId}/jobInfoTitle, department, compensation, start date
Update payment infoPUT /v1/persons/{personId}/paymentInfoPreferred payment method and details
Update tax profilePUT /v1/persons/{personId}/taxProfileMarital status, number of dependents, and other country-specific tax fields
See the Workforce API Reference for full request and response schemas.

Change Employment Type

To switch a person between Employee and Contractor without offboarding and re-onboarding, use the Update Person Type endpoint. The person must be in Active status.
A successful request returns 204 No Content.

Request Fields

FieldTypeRequiredDescription
newTypestringYesTarget employment type: EMPLOYEE or CONTRACTOR
compInfoobjectNoCompensation for the new type. If omitted, incompatible compensation is auto-converted.
compInfo.typestringYes (if compInfo provided)Compensation type: net, salaried, gross, or fixed
compInfo.salaryobjectYes (if compInfo provided)Amount in minor units with currency (e.g., { "amount": 600000, "currency": "GHS" })
compInfo.frequencystringNoPay frequency: monthly, daily, weekly, biweekly, or hourly. Defaults to monthly.

Auto-Conversion Rules

When compInfo is omitted, the API automatically converts incompatible compensation types:
Current comp typeTarget person typeResult
salariedContractorAuto-converted to net — same amount and frequency
fixedEmployeeAuto-converted to net — same amount, frequency defaults to monthly if not set
net or grossEitherNo conversion needed — left unchanged
Auto-conversion only changes the compensation type. All other compensation fields (allowances, deductions, tax reliefs, employer contributions, pension settings) are preserved. The tax engine interprets these fields based on the person’s type at payroll calculation time.

Compensation Type Compatibility

When providing compInfo, the compensation type must be compatible with the target person type:
Comp typeEmployeeContractor
salariedYesNo
grossYesYes
netYesYes
fixedNoYes
Pass compInfo when you want to set a specific compensation structure for the new type — for example, switching a contractor to a salaried employee with tax calculation, or changing the pay amount alongside the type switch.

Next Steps

Set Up Worker Wallets

Create a User account and provision a Cadana wallet

Pay Workers via Payroll

Pay your onboarded workers

Manage Contracts

Issue employment or contractor agreements

Admin Management

Add and manage business administrators