> ## 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.

# Overview

> Automate statutory filings and government remittances across jurisdictions

The Statutory Compliance API automates the post-payroll compliance lifecycle — filing statutory returns with government authorities and remitting payments through Cadana's local payment rails. It builds on the existing [Tax Calculation](/tax/overview), [Person](/workforce/onboarding-workers), and [Payroll](/workforce/pay-workers-via-payroll) APIs.

<Note>
  **Availability** — jurisdiction discovery, required fields, compliance requirements, and statutory data submission are generally available. Statutory obligations themselves are fully handled today — calculated, withheld, filed, and remitted — as part of [Cadana's payroll process](/workforce/pay-workers-via-payroll). The standalone filing, remittance, compliance-summary, and events APIs, which give you direct self-serve control over that lifecycle, are in **beta** — contact Cadana to enable them for your business.
</Note>

***

## Key Capabilities

<CardGroup cols={2}>
  <Card title="Automated Filings" icon="file-lines">
    Create and submit statutory returns to government authorities across jurisdictions.
  </Card>

  <Card title="Government Remittances" icon="building-columns">
    Pay what's owed through local payment rails with automatic FX conversion.
  </Card>

  <Card title="Compliance Dashboard" icon="chart-line">
    Real-time visibility into filing status, deadlines, and requirements across all countries.
  </Card>

  <Card title="Audit Trail" icon="clock-rotate-left">
    Every action recorded with legislative citations and immutable event history.
  </Card>
</CardGroup>

***

## Choose What You Need

Filing and remittance are two co-equal products. A remittance always points at an `accepted` filing — what varies between modes is who prepared the filing data and whether Cadana also moves the money.

<CardGroup cols={3}>
  <Card title="Filing Only" icon="file-lines">
    Cadana prepares and submits statutory returns to the authority. You handle the payment yourself outside Cadana.
  </Card>

  <Card title="Remittance Only" icon="building-columns">
    You file with the authority yourself, then submit the resulting totals to Cadana so Cadana can pay the authority through local rails.
  </Card>

  <Card title="Filing + Remittance" icon="arrows-rotate">
    The full loop. Cadana prepares the filing, submits to the authority, and pays.
  </Card>
</CardGroup>

The data model is the same across all three — a `Filing` resource (with `source: cadana` or `source: external`) plus, where applicable, a `Remittance` resource that references it. The difference between modes is which endpoints you call:

* **Filing only** — Create filings with `source: cadana` and approve them for submission. Skip the `/remittances` endpoints entirely. See the [Filing guide](/statutory/filing).
* **Remittance only** — Create filings with `source: external` (you provide totals + `filingReference` + per-employee breakdown), then call [`POST /v1/statutory/remittances`](/api-reference/statutory/remittances/create-a-remittance). See the [Remittance-only walkthrough](/statutory/remittance#remittance-only-walkthrough-external-filing).
* **Both** — Create filings with `source: cadana`, approve them, then remit. See the [full loop guide](/statutory/the-full-loop).

***

## The Compliance Loop

<Steps>
  <Step title="Calculate taxes">
    The [Tax Calculation API](/tax/overview) computes gross-to-net deductions with legislative citations.
  </Step>

  <Step title="File statutory returns">
    Create filings from payroll runs — Cadana determines applicable filing types per jurisdiction.
  </Step>

  <Step title="Remit to government">
    Initiate government payments through local payment rails with automatic currency conversion.
  </Step>

  <Step title="Prove compliance">
    Download filed documents, payment receipts, and audit the full event trail.
  </Step>
</Steps>

***

## Submitting Compliance Data

The statutory API is the **single front door** for all filing data. You discover what's needed, check what's missing, and submit it through the statutory endpoints. See the [Getting Started guide](/statutory/getting-started) for the full workflow.

| What                   | Endpoint                                                                                                                   |
| :--------------------- | :------------------------------------------------------------------------------------------------------------------------- |
| Person filing fields   | [`PUT /v1/statutory/persons/{id}/fields/{cc}`](/api-reference/statutory/statutory-fields/submit-person-filing-fields)      |
| Business filing fields | [`PUT /v1/statutory/businesses/{id}/fields/{cc}`](/api-reference/statutory/statutory-fields/submit-business-filing-fields) |
| Tax calculation inputs | [`PUT /v1/persons/{id}/taxProfile`](/api-reference/workforce/persons/update-tax-profile)                                   |

Data already on the person or business record (name, address, tax ID, etc.) auto-populates — you only need to submit what's actually missing.

<Tip>
  When missing data is submitted, the Statutory API detects the change and unblocks filings automatically — no manual retries needed.
</Tip>

***

## Filing Lifecycle

`source: cadana` filings follow the full lifecycle below. `source: external` filings are created directly in `accepted` and skip the submission states — Cadana never submits them to the authority because you already did.

```
pending → in_review → approved → submitted → accepted
  |           |                        |
  v           v                        v
blocked    blocked                  rejected
  |           |                        |
  v           v                        v
pending    pending               pending (retry)
```

* **pending** — Created with amounts, being validated
* **in\_review** — Validated and ready for approval
* **approved** — Queued for submission to government authority
* **submitted** — Sent to the authority
* **accepted** — Authority acknowledged receipt. Terminal state for `cadana` and `external` filings alike.
* **blocked** — Missing data or requirements prevent submission
* **rejected** — Authority rejected the filing — returns to pending for correction
* **cancelled** — Filing was cancelled

***

## Guides

<CardGroup cols={2}>
  <Card title="Getting Started" icon="rocket" href="/statutory/getting-started">
    Discover jurisdictions, required fields, and outstanding requirements
  </Card>

  <Card title="Statutory Filing" icon="file-lines" href="/statutory/filing">
    Create, review, approve, and submit filings to government authorities
  </Card>

  <Card title="Statutory Remittance" icon="building-columns" href="/statutory/remittance">
    Pay government authorities with automatic FX conversion
  </Card>

  <Card title="The Full Loop" icon="arrows-rotate" href="/statutory/the-full-loop">
    Walk through the complete calculate, file, remit, prove cycle
  </Card>
</CardGroup>

***

## API Reference

<Card title="Statutory Compliance API" icon="code" href="/api-reference/statutory">
  Full endpoint documentation
</Card>
