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.
bash
curl -X POST 'https://api.cadanapay.com/v1/persons' \
  -H 'Authorization: Bearer YOUR_API_KEY'
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.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.
bash
curl -X PUT 'https://api.cadanapay.com/v1/persons/8ef9a712-cdae-4110-b1ea-9ba95abbee6e/paymentInfo' \
  -H 'Authorization: Bearer YOUR_API_KEY'

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

bash
curl -X GET 'https://api.cadanapay.com/v1/persons/8ef9a712-cdae-4110-b1ea-9ba95abbee6e/paymentInfo' \
  -H 'Authorization: Bearer YOUR_API_KEY'

Step 3: Issue a Contract (Optional)

You can issue a contract to the worker immediately after onboarding. See Manage Contracts for the full guide.
bash
curl -X POST 'https://api.cadanapay.com/v1/contracts' \
  -H 'Authorization: Bearer YOUR_API_KEY'

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 job infoPUT /v1/persons/{personId}/jobInfoTitle, department, compensation, start date
Update payment infoPUT /v1/persons/{personId}/paymentInfoPreferred payment method and details
See the Workforce API Reference for full request and response schemas.

Next Steps