---
title: "Register a team's FR tax compliance"
method: PUT
path: "/api/v1/teams/{teamId}/tax-compliance/{countryCode}"
tags: ["Tax Compliance"]
---

# Register a team's FR tax compliance

`PUT /api/v1/teams/{teamId}/tax-compliance/{countryCode}`

Sets the FR compliance identifiers and/or fiscal registration on an existing team. `countryCode` must be `fr` (the only country supported today). At least one of the two blocks is required. Idempotent upsert. Required scope: `teams:write` </br>Organization authorization: `supported`

## Path parameters

- `teamId` integer, required
- `countryCode` string, required

## Request body

- RegisterComplianceRequest — French compliance data for an existing team or operator. Both blocks are optional, but at least one must be provided (see \[hasAtLeastOneBlock\]). The shape mirrors the Portal2 team-create compliance body and is forwarded verbatim to the backend, which owns the FR allowlist, the camelCase→snake_case fiscal mapping and the FR-only gate.
  - `compliance_identifiers` object, nullable — The company's official French registration numbers, given as key/value pairs where each key names a type of identifier and the value is the number itself. You do not need to send all three — always include `FR_SIREN`, and add the others only if they apply: - `FR_SIREN` — required. The 9-digit number that identifies the company nationally. - `FR_SIRET` — optional. The 14-digit number that identifies one specific site of the company (its SIREN followed by a 5-digit site code). Include it when registering a particular establishment. - `FR_VAT` — optional. The company's French VAT number. It is derived from the SIREN/SIRET, so you normally don't need to set it yourself.
  - `fiscal_registration` FiscalRegistrationRequest
    - `vatPaymentBasis` 'ENCAISSEMENTS' | 'DEBITS', nullable — When the company owes VAT to the tax authority: - `ENCAISSEMENTS` — once the customer pays the invoice (the usual French default). - `DEBITS` — as soon as the invoice is issued, even if not yet paid. Leave empty for VAT-exempt companies.
    - `vatGroupId` string, nullable — If several related companies file VAT together as a single taxable entity (a French "assujetti unique" VAT group), this is that group's identifier. There is no default value — leave it empty if the company is not part of such a group.
    - `legalFormCode` string, nullable — The company's legal form, as a 4-digit code from the French national business registry (INSEE "catégorie juridique"). For example, `5710` is a simplified joint-stock company (SAS). The first digit gives the broad type: `1` = sole trader, `5` = commercial company, `7` or `4` = public body, `9` = association.
    - `vatExemptionReasonCode` 'VATEX-FR-FRANCHISE' | 'VATEX-EU-132-1A' | 'VATEX-EU-132-1B' | 'VATEX-EU-132-1C' | 'VATEX-EU-132-1D' | 'VATEX-EU-132-1E' | 'VATEX-EU-132-1G' | 'VATEX-EU-132-1H' | 'VATEX-EU-132-1I' | 'VATEX-EU-132-1J' | 'VATEX-EU-135-1A' | 'VATEX-EU-135-1B' | 'VATEX-EU-135-1C' | 'VATEX-EU-135-1D' | 'VATEX-EU-135-1E' | 'VATEX-EU-135-1K', nullable — If the company is exempt from VAT, this is the standard code (from the European e-invoicing standard EN 16931) that says why, and it is required whenever an exemption applies. Possible values: - `VATEX-FR-FRANCHISE` — small business below the French turnover threshold (franchise en base). - `VATEX-EU-132-1A` — postal services provided by the public postal operator (La Poste). - `VATEX-EU-132-1B` — hospital and medical care provided by public bodies. - `VATEX-EU-132-1C` — medical and paramedical care provided directly by healthcare professionals. - `VATEX-EU-132-1D` — supply of human organs, blood and breast milk. - `VATEX-EU-132-1E` — services and dental prostheses supplied by dental technicians. - `VATEX-EU-132-1G` — services closely linked to welfare and social-security work. - `VATEX-EU-132-1H` — services closely linked to the protection of children and young persons. - `VATEX-EU-132-1I` — school, university or vocational education provided by certified bodies. - `VATEX-EU-132-1J` — private tuition given independently by teachers, covering regular school curricula. - `VATEX-EU-135-1A` — insurance and reinsurance, including related broker services. - `VATEX-EU-135-1B` — granting, negotiating and managing credit or loans. - `VATEX-EU-135-1C` — managing bank accounts, deposits, debts and payments. - `VATEX-EU-135-1D` — transactions in currency, bank notes and cash conversion. - `VATEX-EU-135-1E` — transactions in shares, bonds, company interests and other securities. - `VATEX-EU-135-1K` — financial leasing or long-term letting of residential real estate.
    - `chorusPro` FiscalChorusProRequest
      - `serviceCodeRequired` boolean, nullable — `true` if this public-sector customer requires a service code on invoices sent through Chorus Pro.
      - `serviceCode` string, nullable — The Chorus Pro service code that routes invoices to the right department. Leave empty if none is required.
    - `declaration` FiscalDeclarationRequest
      - `issuanceScope` 'IN_SCOPE_2026' | 'IN_SCOPE_2027' | 'OUT_OF_SCOPE', nullable — Which wave of France's mandatory e-invoicing rollout the company belongs to (the company declares this itself): - `IN_SCOPE_2026` — large and mid-size companies, required to issue e-invoices from September 2026. - `IN_SCOPE_2027` — small and very small companies, required from September 2027. - `OUT_OF_SCOPE` — the company is not covered by the mandate.

## Response `204`

Compliance data registered

## Other responses

- `400` — The request is invalid
- `401` — Consumer with provided credentials was not found
- `403` — Operator doesn't have access to resource
- `404` — Entity with the provided id was not found

---

[API](https://skmtc.net/monta/apis/monta-partner-api.md) · [All operations](https://skmtc.net/monta/apis/monta-partner-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/monta/monta-partner-api/revisions/517e18f11015/schema)
