---
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}`

## Request

- Base URL: `https://partner-api.monta.com`
- URL: `https://partner-api.monta.com/api/v1/teams/{teamId}/tax-compliance/{countryCode}`
- Auth: HTTP bearer

Sets the FR fiscal registration, and optionally the compliance identifiers, on an existing team. `countryCode` must be `fr` (the only country supported today). The fiscal registration, including its declaration, is required; the compliance identifiers are optional. Idempotent upsert. The team's address is then replaced with the address held for the company in the French business registry, looked up by `FR_SIRET` when the team has one on record and by `FR_SIREN` otherwise, so the team carries its registered address rather than the one it was created with. Only the street, postcode and city the registry answers with are replaced; anything it leaves empty keeps its current value, and a company that has opted out of public diffusion of its registry data keeps its address unchanged. Registering the compliance data succeeds even if the registry cannot be reached — repeat the call to apply the address. Required scope: `teams:write` </br>Organization authorization: `supported`

## Path parameters

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

## Request body

- RegisterComplianceRequest: French tax compliance data for an existing team or operator. The fiscal registration, including its declaration, is required. Registration numbers are optional: send them when they are not already on record for this team or operator.
  - `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, required
    - `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.
    - `routingIdentifier` string, nullable: Where the company wants to receive its electronic invoices. Leave it empty and invoices go to the company as a whole, addressed to its SIREN — which is what most companies want. Set it to send invoices to one particular place instead: - the whole company — the 9-digit SIREN on its own, e.g. `840227060`. - one establishment — the SIREN, an underscore, then that site's 14-digit SIRET, e.g. `840227060_84022706000012`. - one department — the SIREN, an underscore, then a code the company chooses, e.g. `840227060_SERVICEACHATS`. Always send the full value including the SIREN, and it must be this company's own SIREN — send `compliance_identifiers.FR_SIREN` in the same request so it can be checked. After the underscore you may use letters, digits, dots, hyphens and underscores, up to 115 characters. A 14-digit code after the underscore is read as a SIRET and must be a real SIRET of this company.
    - `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, required
      - `issuanceScope` 'IN_SCOPE_2026' | 'IN_SCOPE_2027' | 'OUT_OF_SCOPE', nullable, required: 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

## Changes

- **2026-11-03** `0ca400461c52`: 4 breaking, 1 info
  - the request property `fiscal_registration` became required
  - the request property `fiscal_registration/allOf[#/components/schemas/FiscalRegistrationRequest]/declaration` became required
  - the request property `fiscal_registration/allOf[#/components/schemas/FiscalRegistrationRequest]/declaration/allOf[#/components/schemas/FiscalDeclarationRequest]/issuanceScope` became required
  - the `compliance_identifiers/additionalProperties/` request property type changed from `object` to `string`
  - …1 more

[Operation history](https://skmtc.dev/monta/apis/monta-partner-api/changes/api/v1/teams/:teamId/tax-compliance/:countryCode/put.md)

---

[API](https://skmtc.dev/monta/apis/monta-partner-api.md) - [All operations](https://skmtc.dev/monta/apis/monta-partner-api/llms.txt) - [OpenAPI document](https://skmtc.dev/monta/apis/monta-partner-api/revisions/0ca400461c52?raw)
