> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cadanapay.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Employment Models

> Direct employment vs Employer of Record, and what each model collects at payroll

export const ApiExample = ({method = "GET", path, params, body, reference, tenantKey}) => {
  const baseUrl = "https://api.cadanapay.com";
  const query = params ? "?" + Object.entries(params).map(([k, v]) => `${k}=${v}`).join("&") : "";
  const url = `${baseUrl}${path}${query}`;
  const isPlatformPath = (/^\/(v1\/)?platform(\/|$)/).test(path || "");
  const includeTenantKey = tenantKey === undefined ? !isPlatformPath : tenantKey;
  let curl = `curl -X ${method} '${url}' \\\n  -H 'Authorization: Bearer YOUR_API_KEY'`;
  if (includeTenantKey) {
    curl += ` \\\n  -H 'X-MultiTenantKey: YOUR_BUSINESS_TENANT_KEY'`;
  }
  if (body) {
    const formatted = JSON.stringify(body, null, 2);
    curl += ` \\\n  -H 'Content-Type: application/json' \\\n  -d '${formatted}'`;
  }
  return <div>
      <CodeBlock language="bash" filename="bash" wrap>
        {curl}
      </CodeBlock>
      {reference && <div style={{
    marginTop: "-0.5rem",
    marginBottom: "1rem"
  }}>
          <a href={reference} style={{
    fontSize: "0.875rem"
  }}>
            Try it in the playground →
          </a>
        </div>}
    </div>;
};

Cadana supports two employment models. Set `compInfo.employmentModel: "eor"` when [creating a person](/api-reference/workforce/persons/create) — or when updating compensation via [`PUT /v1/persons/{personId}/jobInfo`](/api-reference/workforce/persons/update-job-information) — to employ the worker through Cadana's Employer of Record. Omit the field for direct employment.

***

## What the Payroll Debit Collects

The employment model determines what the payroll `debit` — the amount collected from your business account, returned by [`GET /v1/payrolls/{payrollId}`](/api-reference/workforce/payrolls/get) — includes:

|                                   | Direct employment                                      | Employer of Record                        |
| :-------------------------------- | :----------------------------------------------------- | :---------------------------------------- |
| `compInfo.employmentModel`        | omitted                                                | `"eor"`                                   |
| `debit` collects                  | Net pay + fees                                         | Gross pay + employer contributions        |
| Income tax & statutory deductions | Calculated and shown on the payslip, **not** collected | Collected                                 |
| Invoice line categories           | `NET_PAYROLL` + fee items                              | `GROSS_PAYROLL` + `EMPLOYER_CONTRIBUTION` |

For an identical employee earning ₹400,000/month gross, funded in USD at the same FX rate, the direct debit is ≈ $3,330 while the EOR debit is ≈ $4,275.

After the payroll completes, [`GET /v1/invoices/{invoiceId}`](/api-reference/workforce/invoices/get-invoice) breaks the debit into the line categories above.

***

## Creating an EOR Employee

<ApiExample method="POST" path="/v1/persons" body={{ type: "EMPLOYEE", firstName: "Maricel", lastName: "Santos", email: "maricel@example.com", address: { line1: "18 Ayala Avenue", city: "Makati", state: "Metro Manila", postalCode: "1226", countryCode: "PH" }, compInfo: { type: "salaried", salary: { amount: 8000000, currency: "PHP" }, frequency: "monthly", employmentModel: "eor" }, jobInfo: { title: "Software Engineer", startDate: "2026-08-01" } }} reference="/api-reference/workforce/persons/create" />

Payroll runs identically for both models — see [Pay Workers via Payroll](/workforce/pay-workers-via-payroll).

***

## Next Steps

<CardGroup cols={2}>
  <Card title="Onboard Workers" icon="user-plus" href="/workforce/onboarding-workers">
    Create Person records and configure compensation
  </Card>

  <Card title="Payroll Lifecycle" icon="arrows-rotate" href="/workforce/payroll-lifecycle">
    Status flow, webhooks, and multi-currency handling
  </Card>
</CardGroup>
