Skip to main content
POST
/
v1
/
statutory
/
filings
/
batch
Create all filings for a period
curl --request POST \
  --url https://api.cadanapay.com/v1/statutory/filings/batch \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "businessId": "<string>",
  "periodStart": "2026-02-01",
  "periodEnd": "2026-02-28",
  "payrollRunIds": [
    "<string>"
  ],
  "filings": [
    {
      "filingTypeId": "ft_mx_isr_monthly",
      "currency": "MXN",
      "breakdown": [
        {
          "amount": 4250,
          "personId": "per_01HQ3K4N7XYZABC",
          "externalEmployeeId": "EMP-00142",
          "employeeName": "María García López"
        }
      ],
      "source": "cadana",
      "filingReference": "0123456ABCD7890EF"
    }
  ],
  "countryCode": "<string>",
  "filingTypeIds": [
    "<string>"
  ]
}
'
{
  "data": [
    {
      "id": "fil_01HQ3K4N7XYZABC"
    }
  ]
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Headers

X-MultiTenantKey
string

Required when using a Platform API token. The tenant key identifying which business to operate on.

Body

application/json

Batch create filings for a business and period in one call. Pick one input shape:

  • payrollRunIds — Cadana derives the filing types and breakdowns from the linked Cadana payroll runs. Each filing is created as source: cadana and runs the full lifecycle.
  • filings — Provide an explicit array, each entry with its own filingTypeId, currency, and breakdown. Each entry can be source: cadana (Cadana files for you) or source: external (you already filed and supply a filingReference). Use this when amounts were computed outside Cadana.

Exactly one of payrollRunIds or filings must be provided.

businessId
string
required
periodStart
string<date>
required
Example:

"2026-02-01"

periodEnd
string<date>
required
Example:

"2026-02-28"

payrollRunIds
string[]

Link to Cadana payroll runs. Cadana auto-determines filing types and populates amounts from the tax engine. Mutually exclusive with filings.

filings
object[]

Explicit per-filing data. Use this when you computed the amounts outside Cadana — works for both source: cadana (Cadana still files) and source: external (you already filed). Mutually exclusive with payrollRunIds.

countryCode
string

Limit to a specific jurisdiction. If omitted, creates filings for all jurisdictions where the business has active workers.

filingTypeIds
string[]

Limit to specific filing types (only applies when using payrollRunIds mode). If omitted, creates all applicable filing types based on worker flags.

Response

Filings created

data
object[]