Skip to main content

Prerequisites

1

API key from Dashboard

Get your API key from the Cadana Dashboard. See Authentication for details.
2

Active business on Cadana

Your business must be created and verified on the platform.

Check Location Support

Verify which countries and regions are supported. The response includes valid state/region codes needed when creating a person. Response:
{
  "countries": [
    {
      "name": "Australia",
      "code": "AU",
      "regions": [
        { "name": "New South Wales", "code": "NSW" },
        { "name": "Victoria", "code": "VIC" },
        { "name": "Queensland", "code": "QLD" }
      ]
    }
  ]
}

Get Required Tax Fields

Some countries require additional fields (marital status, number of dependents, etc.) for accurate calculations. Retrieve the required fields before creating a person. Response:
{
  "country": "MX",
  "fields": [
    {
      "name": "maritalStatus",
      "required": true,
      "type": "string",
      "enum": ["single", "married", "divorced", "widowed"],
      "description": "Marital status for tax deduction eligibility"
    },
    {
      "name": "numberOfDependents",
      "required": false,
      "type": "number",
      "description": "Number of dependents for tax relief"
    }
  ]
}

Create a Person

Create a person with their address, salary, and compensation details. The returned id is used for all subsequent tax calculations. Response:
{
  "id": "per_01ABC..."
}
Populate any country-specific fields from the previous step on the person record. Use PUT /v1/persons/{id}/basicInfo to add taxId, socialSecurityId, or taxProfile fields like marital status and number of dependents.

Manage Persons

OperationEndpoint
GetGET /v1/persons/{id}
Update basic infoPUT /v1/persons/{id}/basicInfo
Update job infoPUT /v1/persons/{id}/jobInfo

Calculate Taxes

Calculate taxes for a person. Pass the personId and the salary for the period. Response:
{
  "personId": "per_01ABC...",
  "grossAmount": { "amount": 4000000, "currency": "MXN" },
  "netAmount": { "amount": 3050000, "currency": "MXN" },
  "deductions": [
    {
      "name": "ISR (Impuesto Sobre la Renta)",
      "amount": { "amount": 680000, "currency": "MXN" }
    },
    {
      "name": "IMSS Employee Contribution",
      "amount": { "amount": 270000, "currency": "MXN" }
    }
  ],
  "employerContributions": [
    {
      "name": "IMSS Employer Contribution",
      "amount": { "amount": 840000, "currency": "MXN" }
    },
    {
      "name": "INFONAVIT (5%)",
      "amount": { "amount": 200000, "currency": "MXN" }
    }
  ]
}

Response fields

FieldDescription
grossAmountInput salary for the period
netAmountTake-home pay after all deductions
deductionsEmployee deductions (social security, income tax, etc.)
employerContributionsEmployer-side costs not deducted from the employee’s pay
summaryStep-by-step calculation breakdown showing formulas, brackets, and rates for each line item
The additionalAttributes field accepts country-specific values like year-to-date salary or pension contributions. These are calculation-time inputs — different from the tax profile fields set when creating a person. Use the tax fields endpoint to discover what’s available for each country.

Next Steps