Sovos Docs

Show Page Sections

France

To enable support for France, you'll need to confirm prerequisites and product IDs, configure endpoints and networks, and review the supported use cases and French regulatory requirements.

Prerequisites

  • A valid SIREN number.

  • A valid SIRET number per establishment, for companies with multiple establishments

Available products

  • fr_invoice_outbound_1.0

  • fr_invoice_inbound_1.0

  • fr_Report_1.0

Supported use cases

Sovos supports the following use cases in France.

Number #Use CaseDescription
1Multi-order/Multi-deliveryMulti-order/Multi-delivery
2Invoice already paid by the Buyer or a Third PartyInvoice already paid by the purchaser or a third party designated for invoicing at the time of invoicing when the invoice is issued
19bSelf-billingSelf-billing
20Down-payment invoiceDown-payment invoice
21Final invoice after down-paymentFinal invoice after the down-payment is paid
22aDiscounted service invoice with VAT due on paymentInvoice paid with discount on supply of services for which VAT is due on receipt of payment
22bDiscounted invoice with debit-basis VAT (goods/services)Invoice paid with discount on supply of goods (or supply of services with the option to pay VAT on debits)

Supported document types

Sovos supports the following document types in France.

SCI format

Sovos Canonical Invoice is our format created specifically to assist global clients with their e-invoicing and reporting needs. The main objective of SCI is to ease the complexity and burden when mapping data into the required local format.

Regulated formats

User and platform interactions are standardized across technical formats to ensure the tax authority can accurately process the data. The French tax authority uses a core set of formats based on global standards, adapted for France.

FormatDescription

UBL (Universal Business Language)

EN16931 France CIUS

The exchange standard for this format is promoted by OASIS (the Organization for the Advancement of Structured Information Standards) in the form of standard Universal Business Language version 2.1.

Factur-X

(PDF A/3) (non-XML)

A Franco-German standard for hybrid e-invoice (PDF for users and XML data for process automation), the first implementation of the European Semantic Standard EN 16931 was published by the European Commission on October 16th, 2017.

CII

UN/CEFACT EN16931 France CIUS

The exchange standard adopted for this format is promoted by UN/CEFACT (United Nations Centre for Trade Facilitation and Electronic Business) in the form of the Core Component Technical Specification (CCTS) version 3.0.
CDAR UN/CEFACT SCRDM CI Cross Domain Application Response message.

Supported documents

CodeDescription
380Commercial invoice
381Credit note
384Correcting invoice
386Prepayment invoice

Custom formats

You can use custom formats when you cannot generate the platform's native formats, such as the regulated formats for each mandate and the SCI. To use tailor-made data mappings, contact your Sovos representative.

Available configuration formats

Based on the supported document types. We have defined the following formats

  • FR-SCI-1.0-INVOICE-1.0

  • FR-CIUSUBL-1.0-INVOICE-1.0

  • FR-FACTURX-1.06-INVOICE-1.0

  • FR-CIUSCII-1.0-INVOICE-1.0

  • FR-CDAR-3.0-LIFECYCLE-1.0

Manage lifecycle

Learn which status messages are mandatory throughout an invoice's lifecycle, understand AFNOR's technical format specifications, and discover how to implement compliant lifecycle management.

Core principles of the invoice lifecycle

Tracking and updating an invoice's status throughout its lifecycle ensures transparency and supports reform goals. Proper status documentation lets buyers and suppliers monitor the progress of invoice processing - such as submission, availability, validation, and payment.

The invoice lifecycle must meet four key requirements:

  • Provide a shared view of invoice processing for issuers, recipients, and the tax authority

  • Define a standardized list of statuses and exchange formats to ensure interoperability between companies, registered private platforms, and the public invoicing portal

  • Establish clear processes for handling invoice rejections and cancellations

  • Support the pre-filling of VAT declaration forms

The invoice lifecycle consists of two main categories:

  • Mandatory statuses required by the Tax Authority

  • Common statuses shared across all invoicing stakeholders, which might be mandatory or optional

Status management

Note:

The submission of multiple lifecycles is not supported.

Status processing diagram

Lifecycle status definitions and procedures

Legal Status CodeLegal Status NamePlatform CodePlatform NameChange of statusTriggerProducerForwarding To
200Submitted102Validated by sender platformAutomaticThe supplier submits its invoice or credit note to the registered private platform. The status is generated after the controls are performed.

Supplier's platform

PDPE

(Issuer)

Supplier
201Issued by the platform204Sent by the platformAutomaticThe invoice has been processed on the supplier's platform and issued to the buyer.

Supplier's platform

PDPE

(Issuer)

Supplier
202Received by the platform214Validated by recipient platformAutomaticThe invoice has been received by the buyer's registered private platform but has not yet been made available to the buyer.

Buyer's platform

PDPR

(Receiver)

Supplier
203Made available215Made availableAutomaticThe invoice has been made available to the buyer on the registered private platform.

Buyer's platform

PDPR

(Receiver)

Supplier
204In hand216ReceivedManualThe invoice is assumed by the buyer for processing.>BuyerSupplier
205Approved203ApprovedManualThe invoice is accepted in its entirety by the buyer.BuyerSupplier
206Partially approved217Partially approvedManualThe invoice is partially accepted by the buyer. This partial processing may give rise to a credit note.BuyerSupplier
207Disputed218DisputedManualThere is a dispute regarding the invoice. This may ultimately lead to refusal or approval by the buyer.Buyer Supplier
208Suspended219SuspendedManualInvoice processing may be suspended when one or more supporting documents are missing. The invoice data remains unchanged.Buyer Supplier
209Completed206CompletedManualThe invoice is completed when the supplier adds an attachment or comment to an invoice with a status of "suspended".SupplierBuyer
210Refused405RefusedManual

The invoice has been refused by the recipient for business reasons

A complete list of reasons for refusal is available in the document "Annex 1 - Semantic Format FE e-invoicing - Flows 1 & 2" on the "Reason for refusal" tab.

BuyerSupplier
211Payment sent213Payment sentManualThe bank transfer flow has been sent to the supplier. The reimbursement flow has been sent to the buyer.BuyerSupplier
212Payment received220Payment receivedManualThe supplier has received payment of the invoice. This status is mandatory for supply of services (except VAT on debits and excluding reverse charge transactions).SupplierBuyer
213Rejected401RejectedAutomatic

The invoice can be automatically rejected by the platform on technical grounds (e.g. format, non-compliance with the standard, ...)

When the transmit platform rejects the invoice, the invoice must be corrected by its issuer and resubmitted to the platform. When the receive platform rejects the invoice, the Rejected status is transmitted to the transmit platform (see 2.12.1.3 Invoice management in the event of inadmissibility, rejection or refusal).

Supplier or Buyer platformSupplier or Buyer

Validate documents

Sovos validates French e-invoicing documents against technical and mandate-specific standards. Learn how inadmissibility, rejection, and refusal work, and understand the validation rules that ensure compliance with External Specifications requirements.

The French mandate establishes rules for rejection, refusal, and inadmissibility to enhance user comprehension and make it easier to fix any issues. If a document is not accepted, Sovos' role as a PA is to identify the concerned item, along with the reasons for that action.

These reasons allow issuers to:

  • Understand the reasons for the rejection of a document.
  • Take corrective action for issuing a revised document.

These are the concepts behind each validation

Inadmissibility
The platform cannot receive or process the flow or its content due to a virus, an empty or unusable file, or a non-verifiable signature. A file might be unusable because it has an unexpected format, is not compressed correctly, or some other reason. The supplier's or recipient's platform establishes inadmissibility, which relates solely to the flow.
Rejection
Both the supplier's and recipient's platform detect anomalies during functional checks. These anomalies might include issues with semantic format, data consistency, uniqueness, or other properties. Either side can reject an invoice, but when the recipient rejects it, their platform sends a Lifecycle flow to inform the sender.
Refusal
When the recipient refuses an invoice, their platform sends a Lifecycle flow to the issuer's platform to inform them of the refusal and the reason. For example, a recipient might refuse an invoice if they are not the correct recipient. The list of valid refusal reasons follows the mandate v2.4 specifications.

High-level validations

Sovos performs the following high-level validations on transmitted data messages:

Technical
Validate that the document's format fulfills all the requirements, for example, schema validation.
Mandate
Validate that the document fulfills all the region and country-specific requirements where the document is issued.

Mandate-specific validations

Sovos as a PA validates all documents against the French mandate's standards and specifications, defined in Annex 7 of External Specifications 3.0.
Note:

Expect changes to the validation rules as the AFNOR commission is still working on a stable version.

The following table lists the reasons for rejection according to each validation type:

Validation typeValidationFailure consequenceExplanation
Application ControlsSyntactic format analysisThe document is rejected.

The document issued does not comply with the expected format.

The wrong data item name is specified, if applicable.

Functional Controls Semantic format analysis (standards and specifications)The document is rejected.The document issued does not comply with the standards or specifications. The data item or data group that infringes the rule is shown, along with the infringed rule.
Uniqueness validation:
  • Supplier's Invoice number

  • Supplier's ID (the company's SIREN or SIRET registration number), if indicated (see BT-29 and BT-30 from the EN16931 standard)

  • Invoice year

The document is rejected.The issued document has already been received, but it does not comply with the uniqueness validation rules.
Invoice addressing validation:
  • The recipient exists in the directory when the invoice is submitted

  • The receiving platform ensures the recipient is a customer

The document is refused by the recipient (incorrect routing).

The recipient validates that they are the intended recipient of the document.

The document issuer ensures that the recipient's data is properly qualified (routing data present in the directory).

Sovos rejects the invoice during transmission (unknown recipient).

Understanding e-reporting requirements

France's e-reporting system requires platforms to transmit B2B and B2C transaction data to tax authorities. This section explains what you need to report, when to report it, and how to handle corrections.

Note: To see the requirements and implementation for pass through reporting, go to French mandate e-reporting (pass through).

What transactions must be reported

E-reporting applies to two categories:
International B2B transactions
Sales between French and foreign companies, including transactions where foreign companies deal with each other, but French VAT applies. These include B2Bi, Bi2B, and Bi2Bi transaction types.
B2C transactions
Sales to final consumers or VAT-exempt entities.

What data to report

To fulfill e-reporting requirements, you must send two types of data to the PPF, transaction and payment. This data covers seller and buyer operations. Compliance Network aggregates this data before sending it.

Compliance Network handles this automatically for every invoice and lifecycle document sent through the platform. However, if you send documents through other channels, you must generate the report data and send it through Compliance Network directly. Go to French mandate e-reporting (pass through) for implementation details.
Transaction data
For B2B international transactions (B2Bi, Bi2B, Bi2Bi), report each invoice. For B2C transactions, submit one daily summary instead of individual transaction reports.
Payment data
Follow the same pattern. Individual reports for payments for B2B international invoices, and daily summaries for B2C transactions.

When to report data

Note:

The PA sends data to the PPF within eight hours after each period's deadline.

The PPF receives aggregated data organized by your SIREN number, role (supplier or buyer), and reporting period. The reporting period and deadline depend on your VAT regime:

VAT RegimeTransaction dataPayment data
PeriodDeadlinePeriodDeadline
Monthly normal

10-day period (decade):

  • From the 1st until, and including, the 10th of the month

  • From the 11th until, and including, the 20th of the month

  • From the 21st until, and including, the end of the month

10 days after the end of the period:

  • The 20th of the month

  • The end of the month

  • The 10th of the following month

Monthly10th of the following month
Quarterly normal Monthly10th of the following monthMonthly10th of the following month
Simplified VATMonthlyBetween the 25th and 30th of the following monthMonthlyBetween the 25th and 30th of the following month
VAT exemption schemeBimonthly (every two months)Between the 25th and 30th of the following monthBimonthly (every two months)Between the 25th and 30th of the following month

Handle reporting errors

You can update your initial submission. You can use one of three correction methods depending on timing.

Additional submission
During the current period, submit newly discovered transactions. This adds to your existing data without changing what you already sent.
Correction submission
During the current period, mark your re-submission as a correction to replace previously reported data for the same period.
Rectification submission
After the period closes, submit a rectification that replaces the previous period's data while maintaining an audit trail.

Validation requirements

Your submissions undergo four automated checks before acceptance:

Semantic checks
Semantic validation against EN16931 standards and French e-invoicing requirements.
Data structure checks
Validates that the data structure is correct.
Data consistency checks
Logical consistency validation across fields.
Uniqueness checks
Uniqueness validation using your transmission number, SIREN, and transmission period.

You receive validation results through a lifecycle document.

The following table shows the possible statuses:

CodeStatusMandatoryDescription
300FiledYesThe PPF considers the data compliant and sends it to the tax authorities.
301RejectedYesThe PPF considers the data non-compliant and does not send it to the tax authorities.
303Rejected by the administrationYesThe tax authorities consider the data non-compliant.
304Accepted by the administrationYesThe tax authorities consider the data compliant.

The following table shows the possible reasons for rejection:

CodeCheckDescription
REJ_PERSemantic controlThe semantic format of one or more data points doesn't meet requirements.
REJ_UNIUniquenessThe data has already been sent and processed.
REJ_COHData consistencyOne or more data points are inconsistent.
REJ_PERPeriod controlThe send date doesn't match the declared period.

Trading partners

Learn how to manage endpoints for trading partners in your workspace.

Use Compliance Network to manage communication network endpoints for trading partners of the companies in your organization.

Add trading partner endpoint

Note: This feature is only available to workspace administrators.

A network should already exist.

  1. Go to Network.
  2. Click on a "non-workspace" Network to manage.
  3. Click on New endpoint.
  4. Enter required information:
    1. Enter a user friendly Name for your endpoint.
    2. Enter the SIREN number.
    3. Enter the SIRET number when registering a company branch.
    4. Enter the Code Routage to identify a specific department in your organization.
    5. Enter the Suffix identifier to create a virtual location for grouping your documents.
    6. Enter the Matricule Plateforme value to identify the PA that handles the delivery.
  5. Configure Invoices:
    1. Select Invoices.
    2. Click on Add Subtype.
    3. Select all that apply.
    4. Click Save.
    5. Select a distribution method, either push or pull.
    6. Select a plugin.
  6. Configure Lifecycles:
    1. Select Lifecycles.
    2. Click on Add Subtype
    3. Select all that apply.
    4. Click Save.
    5. Select a distribution method, either push or pull.
    6. Select a plugin.
  7. Click Save.

Edit trading partner endpoint

Note: This feature is only available to workspace administrators.
  1. Go to Network.
  2. Click on a "non-workspace" Network to manage.
  3. Click on an endpoint to manage.
  4. Click Edit.
  5. Update Invoices:
    1. Select Invoices.
    2. Add new or remove existing subtypes.
    3. Update the distribution method..
    4. Select a new plugin.
  6. Update Lifecycles:
    1. Select Lifecycles.
    2. Add new or remove existing subtypes.
    3. Update the distribution method.
    4. Select a new plugin.
  7. Click Save.

Add trading partner endpoint with Indirect Tax API

Learn how to add endpoints assigned to the workspace in Compliance Network using Indirect Tax API.

Note: This feature is only available to workspace administrators.

A network should already be available for configuration.

  1. Send a POST request to the endpoint URL
    POST https://api-test.sovos.com/v2/configurations/workspaces/networks/{networkId}/trading-partners/endpoints
  2. Include the following headers in your request
    • Authorization: Bearer {accessToken}

    • Content-Type: application/json

    • x-correlationId: {uniqueValue}

  3. Include the following parameters inside the JSON payload in the request body
    NameTypeRequiredDescription
    codeComponentsarrayYes (at least one)Business identification codes
    fieldstringYesSIREN or SIRET
    valuestringYesSIREN or SIRET value
    supportedDocumentsarrayYes (at least one)Document types and configurations
    typestringYesInvoice or Lifecycle
    subTypesarrayYesVaries by type.
    • For Invoice

      • Invoice
      • CreditNote
    • For Lifecycle

      • Lifecycle
    communicationobjectOnly in certain casesCommunication settings
    distributionMethodstringYes"Pull" (API) or "Push" (IaaS) integration
    formatIdstringYesFormat specification; See available formats for specific values
    tradingPartnerobjectYesTrading partner info
    namestringYesTrading partner name
    businessIdentifiersarrayYesArray of business identifiable info items
    typestringYesTaxId
    valuestringYesSIREN or SIRET
    namestringYesCompany Name
    countryCodestringYesFR

Upon successful creation, the API will return a JSON object containing status info.

Samples for adding a trading partner

Request sample

Request sample for adding a trading partner

curl --location --request POST 'https://api-test.sovos.com/v2/configurations/workspaces/networks/{networkId}/trading-partners/endpoints' \
--header 'x-correlationId: SET-TO-UNIQUE-VALUE' \
--header 'Authorization: Bearer TOKEN' \
--header 'Content-Type: application/json' \
--data-raw ' {
   "codeComponents":[
      {
         "field": SIREN / SIRET,
         "value": SIREN-OR-SIRET-VALUE
      }
   ],
   "supportedDocuments":[
      {
         "type": SIREN / SIRET,
         "subTypes": [
            "Invoice",
            "CreditNote"
         ],
         "communication": {
            "distributionMethod": Push / Pull,
            "formatId": AVAILABLE-FORMAT-NAME
         }
      }
   ],
   "tradingPartner": {
      "name": "Trading Partner Name",
      "businessIdentifiers": [
         {
            "type": "TaxId",
            "value": SIREN / SIRET,
            "name": "Company Name",
            "countryCode": "FR"
         }
      ]
   }
}'
Response sample

Response sample for adding a trading partner

{
   "status": 201,
   "message": "Created",
   "success": true,
   "timestamp": 1741968114340,
   "data":{
      "id": "f728171e-…-37bc12d9fa8c",
      "code": {
         "value": "123456789_12345678954321",
         "scheme": "0225"
      }
   }
}

Edit trading partner endpoint with Indirect Tax API

Learn how to update endpoints assigned to the workspace in Compliance Network using Indirect Tax API.

Note: This feature is only available to workspace administrators.

The endpoint should already exist.

  1. Send a PUT request to the endpoint URL
    PUT https://api-test.sovos.com/v2/configurations/workspaces/networks/{networkId}/trading-partners/endpoints/{endpointId}
  2. Include the following headers in your request
    • Authorization: Bearer {accessToken}

    • Content-Type: application/json

    • x-correlationId: {uniqueValue}

  3. Include the following parameters inside the JSON payload in the request body
    NameTypeRequiredDescription
    supportedDocumentsarrayYes (at least one)Document types and configurations
    typestringYesInvoice or Lifecycle
    subTypesarrayYesVaries by type.
    • For Invoice

      • Invoice
      • CreditNote
    • For Lifecycle

      • Lifecycle
    communicationobjectOnly in certain casesCommunication settings
    distributionMethodstringYes"Pull" (API) or "Push" (IaaS) integration
    formatIdstringYesFormat specification; See available formats for specific values
    tradingPartnerobjectYesTrading partner info
    namestringYesTrading partner name
    businessIdentifiersarrayYesArray of business identifiable info items
    typestringYesTaxId
    valuestringYesSIREN or SIRET
    namestringYesCompany Name
    countryCodestringYesFR

Upon successful update, the API will return a JSON object containing status info.

Samples for updating a trading partner

Request sample

Request sample for updating a trading partner

curl --location --request PUT 'https://api-test.sovos.com/v2/configurations/workspaces/networks/{networkId}/trading-partners/endpoints/{endpointId}' \
--header 'x-correlationId: SET-TO-UNIQUE-VALUE' \
--header 'Authorization: Bearer TOKEN' \
--header 'Content-Type: application/json' \
--data-raw ' {
   "supportedDocuments":[
      {
         "type": SIREN / SIRET,
         "subTypes": [
            "Invoice",
            "CreditNote"
         ],
         "communication": {
            "distributionMethod": Push / Pull,
            "formatId": AVAILABLE-FORMAT-NAME
         }
      }
   ],
   "tradingPartner": {
      "name": "Trading Partner Name",
      "businessIdentifiers": [
         {
            "type": "TaxId",
            "value": SIREN / SIRET,
            "name": "Company Name",
            "countryCode": "FR"
         }
      ]
   }
}'
Response sample

Response sample for updating a trading partner

{
   "status":200,
   "message":"OK",
   "success":true,
   "timestamp":1741968114344
}

Get a trading partner endpoint with Indirect Tax API

Learn how to fetch partner endpoints assigned to a workspace in Compliance Network using Indirect Tax API.

Note: This feature is only available to workspace administrators.

The endpoint should already exist.

  1. Send a GET request to the endpoint URL
    GET https://api-test.sovos.com/v2/configurations/workspaces/networks/{networkId}/trading-partners/endpoints/{endpointId}
  2. Include the following headers in your request
    • Authorization: Bearer {accessToken}

    • Content-Type: application/json

    • x-correlationId: {uniqueValue}

Upon successful update, the API will return a JSON object containing the endpoint configuration.

Samples for fetching a trading partner

Request sample

Request sample for fetching a trading partner

curl --location --request GET 'https://api-test.sovos.com/v2/configurations/workspaces/networks/{networkId}/trading-partners/endpoints/{endpointId}' \
--header 'x-correlationId: SET-TO-UNIQUE-VALUE' \
--header 'Authorization: Bearer TOKEN' \
--header 'Content-Type: application/json'
Response sample

Response sample for fetching a trading partner

{
   "status":200,
   "message":"OK",
   "success":true,
   "timestamp":1741968114349,
   "data":{
      "id":"7f176e1f-…-d447dc499306",
      "code":{
         "value":"999999999",
         "scheme":"0225",
         "components":[
            {
               "field":"SIREN",
               "value":"999999999"
            }
         ]
      },
      "validityPeriod":{
         "start":"2026-09-01T00:00:00.0000000Z",
         "end":"2029-09-01T00:00:00.0000000Z"
      },
      "supportedDocuments":[
         {
            "type":"Invoice",
            "subTypes":[
               "Invoice",
               "CreditNote"
            ],
            "communication":{
               "distributionMethod":"Push",
               "formatId":" FR-CIUSCII-1.0-INVOICE-1.0"
            }
         },
         {
            "type":"LifeCycles",
            "subTypes":[
               "LifeCycles"
            ],
            "communication":{
               "distributionMethod":"Push",
               "formatId":"FR-CDAR-3.0-LIFECYCLE-1.0"
            }
         }
      ],
      "tradingPartner":{
         "name":"Trading Partner Name",
         "businessIdentifiers":[
            {
               "type":"TaxId",
               "value":"999999999",
               "name":"Company Name",
               "countryCode":"FR"
            },
            {
               "type":"Gln",
               "value":"1234578912345789",
               "name":"Company Name",
               "countryCode":"FR"
            }
         ]
      }
   }
}

Delete a trading partner endpoint with Indirect Tax API

Learn how to delete partner endpoints assigned to a workspace in Compliance Network using Indirect Tax API.

Note: This feature is only available to workspace administrators.

The endpoint should already exist.

  1. Send a DELETE request to the endpoint URL
    DELETE https://api-test.sovos.com/v2/configurations/workspaces/networks/{networkId}/trading-partners/endpoints/{endpointId}
  2. Include the following headers in your request
    • Authorization: Bearer {accessToken}

    • Content-Type: application/json

    • x-correlationId: {uniqueValue}

Upon successful removal, the API will return a JSON object containing status info.

Samples for removing a trading partner

Request sample

Request sample for fetching a trading partner

curl --location --request DELETE 'https://api-test.sovos.com/v2/configurations/workspaces/networks/{networkId}/trading-partners/endpoints/{endpointId}' \
--header 'x-correlationId: SET-TO-UNIQUE-VALUE' \
--header 'Authorization: Bearer TOKEN' \
--header 'Content-Type: application/json'
Response sample

Response sample for fetching a trading partner

{
   "status":200,
   "message":"OK",
   "success":true,
   "timestamp":1741968114352,
   "data":{}
}

Inbound company

Learn how to configure an inbound company in Compliance Network to receive notifications with supported formats for Invoices attached.

A company should already be available for configuration.

In this scenario, we will configure the company to receive notifications (UBL Application Response) with one of the supported formats for Invoices attached and to receive these notifications.

  1. Click the Settings icon.
  2. Select Companies from the menu.
  3. All available companies will be listed.
  4. Pick the inbound company to configure and open the details screen.
  5. Click on the Settings icon.
  6. Select Network Settings from the menu.
  7. Click on New Endpoint.
  8. Select the appropriate inbound product.
  9. Enter the required information:
    1. Enter the SIREN number.
    2. Enter the SIRET number when registering a company branch
    3. Enter the Code Routage to identify a specific department in your organization.
    4. Enter the Suffix identifier to create a virtual location for grouping your documents.
    5. Select validity period start date.
    6. Select validity period end date.
    7. Select an ERP system id.
  10. Configure Invoices:
    1. Select Invoices.
    2. Click on Add Subtype
    3. Select all that apply.
      Must select at least one.
    4. Click Save.
  11. Click Create.

The configured company will now receive notifications via API when documents become available.

Edit inbound company configuration

Learn how to update an endpoint configuration for an inbound company in Compliance Network.

Note: This feature is only available to workspace administrators.

A configuration should already be available for update.

  1. Click the Settings icon.
  2. Select Companies from the menu.
  3. All available companies will be listed.
  4. Pick the company to edit and click on the Settings icon.
  5. Select Network Settings from the menu.
  6. Click the More options icon from the endpoint.
  7. Select Edit from the menu.
  8. Update the endpoint information.
  9. Click Save.

The company has an updated configuration.

Configure inbound company with Indirect Tax API

Learn how to configure a company to receive notifications in Compliance Network using Indirect Tax API.

A company should already be available for configuration.

  1. Send a POST request to the endpoint URL
    POST https://api-test.sovos.com/v2/configurations/workspaces/organizations/{orgId}/companies/{companyId}/endpoints
  2. Include the following headers in your request
    • Authorization: Bearer {accessToken}

    • Content-Type: application/json

    • x-correlationId: {uniqueValue}

  3. Include the following parameters inside the JSON payload in the request body
    NameTypeRequiredDescription
    productIdstringYesfr_invoice_inbound_1.0
    validityPeriodobjectYesPeriod during which the configuration is valid
    startstring (ISO 8601)YesConfiguration start date
    endstring (ISO 8601)YesConfiguration end date
    codeComponentsarrayYes (at least one)Business identification codes
    fieldstringYesSIREN or SIRET
    valuestringYesSIREN or SIRET value
    supportedDocumentsarrayYes (at least one)Document types and configurations
    typestringYesInvoice or Lifecycle
    subTypesstringYesVaries by type.
    • For Invoice

      • Invoice
      • CreditNote
    • For Lifecycle

      • Lifecycle
    erpSystemIdstringYesThe system ID configured in the backend.

Upon successful creation, the API will return a JSON object containing status info.

Sample for configuring an inbound company

Request sample

Request sample for configuring an inbound company endpoint

curl --location --request POST 'https://api-test.sovos.com/v2/configurations/workspaces/organizations/{orgId}/companies/{companyId}/endpoints' \
--header 'x-correlationId: SET-TO-UNIQUE-VALUE' \
--header 'Authorization: Bearer TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
   "productId": "fr_invoice_inbound_1.0",
   "validityPeriod":{
      "start": "2026-09-01T00:00:00.0000000Z",
      "end":" 2029-09-01T00:00:00.0000000Z"
   },
   "codeComponents":[
      {
         "field": SIREN / SIRET,
         "value": SIREN-OR-SIRET-VALUE
      },
      {
         "field": SIREN / SIRET,
         "value": SIREN-OR-SIRET-VALUE
      }
   ],
   "supportedDocuments": [
      {
         "type": "Invoice",
         "subTypes": [
            "Invoice",
            "CreditNote"
         ]
      },
      {
         "type": "Lifecycle",
         "subTypes": [
            "Lifecycle"
         ]
      }
   ],
   "erpSystemId": "ERPTest_Inbound"
}'
Response sample

Response sample for configuring an inbound company endpoint

{
    "status": 201,
    "message": "Created",
    "success": true,
    "timestamp": 1752140016103,
    "data": {
        "id": "345cef18-ae70-….-bd4c-d2c2795bfbbe",
        "code": {
            "value": "123456789_12345678954321",
            "scheme": "0225"
        },
        "registeredDirectories": ["Jurisdiction", "Peppol"]
    }
}

Sample for updating an inbound company configuration

Request sample

Request sample for updating the configuration of an inbound company endpoint

curl --location --request PUT 'https://api-test.sovos.com/v2/configurations/workspaces/organizations/{orgId}/companies/{companyId}/endpoints/{endpointId}' \
--header 'x-correlationId: SET-TO-UNIQUE-VALUE' \
--header 'Authorization: Bearer TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
   "validityPeriod":{
      "start": "2026-09-01T00:00:00.0000000Z",
      "end":" 2029-09-01T00:00:00.0000000Z"
   },
   "supportedDocuments": [
      {
         "type": "Invoice",
         "subTypes": [
            "Invoice",
            "CreditNote"
         ]
      },
      {
         "type": "Lifecycle",
         "subTypes": [
            "Lifecycle"
         ]
      }
   ],
   "erpSystemId": "ERPTest_Inbound"
}'
Response sample

Response sample for updating the configuration of an inbound company endpoint

{
   "status":200,
   "message":"OK",
   "success":true,
   "timestamp":1741968114435
}

Outbound company

Learn how to configure an outbound company in Compliance Network.

A company should already be available for configuration.

In this scenario, we will configure the company to receive notifications (UBL Application Response) with the legal CDAR format for Lifecycles attached.

  1. Click the Settings icon.
  2. Select Companies from the menu.
  3. All available companies will be listed.
  4. Pick the inbound company to configure and open the details screen.
  5. Click on the Settings icon.
  6. Select Network Settings from the menu.
  7. Click on New Endpoint.
  8. Select the appropriate outbound product.
  9. Enter the required information:
    1. Enter the SIREN number.
    2. Enter the SIRET number when registering a company branch.
    3. Enter the Code Routage to identify a specific department in your organization.
    4. Enter Suffix identifier to create a virtual location for grouping your documents.
    5. Select validity period start date.
    6. Select validity period end date.
    7. Select an ERP system id.
  10. Configure Lifecycles:
    1. Click on Add Subtype
    2. Select Lifecycle.
    3. Click Save.
  11. Click Create.

The configured company will now receive notifications via API when submitting documents.

Edit outbound company configuration

Learn how to update an endpoint configuration for an outbound company in Compliance Network.

Note: This feature is only available to workspace administrators.

A configuration should already be available for update.

  1. Click the Settings icon.
  2. Select Companies from the menu.
  3. All available companies will be listed.
  4. Pick the company to edit and click on the Settings icon.
  5. Select Network Settings from the menu.
  6. Click the More options icon from the endpoint.
  7. Select Edit from the menu.
  8. Update the endpoint information.
  9. Click Save.

The company has an updated configuration.

Configure outbound company with Indirect Tax API

Learn how to configure a company to receive notifications in Compliance Network using Indirect Tax API.

A company should already be available for configuration.

  1. Send a POST request to the endpoint URL
    POST https://api-test.sovos.com/v2/configurations/workspaces/organizations/{orgId}/companies/{companyId}/endpoints
  2. Include the following headers in your request
    • Authorization: Bearer {accessToken}

    • Content-Type: application/json

    • x-correlationId: {uniqueValue}

  3. Include the following parameters inside the JSON payload in the request body
    NameTypeRequiredDescription
    productIdstringYesfr_invoice_outbound_1.0
    validityPeriodobjectYesPeriod during which the configuration is valid
    startstring (ISO 8601)YesConfiguration start date
    endstring (ISO 8601)YesConfiguration end date
    codeComponentsarrayYes (at least one)Business identification codes
    fieldstringYesSIREN or SIRET
    valuestringYesSIREN or SIRET value
    supportedDocumentsarrayYes (at least one)Document types and configurations
    typestringYesInvoice or Lifecycle
    subTypesstringYesVaries by type.
    • For Invoice

      • Invoice
      • CreditNote
    • For Lifecycle

      • Lifecycle
    erpSystemIdstringYesThe system ID configured in the backend.

Upon successful creation, the API will return a JSON object containing status info.

Sample for configuring an outbound company

Request sample

Request sample for uploading configuring an inbound company endpoint

curl --location --request POST 'https://api-test.sovos.com/v2/configurations/workspaces/organizations/{orgId}/companies/{companyId}/endpoints' \
--header 'x-correlationId: SET-TO-UNIQUE-VALUE' \
--header 'Authorization: Bearer TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
   "productId": "fr_invoice_outbound_1.0",
   "validityPeriod":{
      "start": "2026-09-01T00:00:00.0000000Z",
      "end":" 2029-09-01T00:00:00.0000000Z"
   },
   "codeComponents":[
      {
         "field": SIREN / SIRET,
         "value": SIREN-OR-SIRET-VALUE
      }
   ],
   "supportedDocuments": [
      {
         "type": "Lifecycle",
         "subTypes": [
            "Lifecycle"
         ]
      }
   ],
   "erpSystemId": "ERPTest_Outbound"
}'
Response sample

Response sample for uploading configuring an inbound company endpoint

{
    "status": 201,
    "message": "Created",
    "success": true,
    "timestamp": 1752140016103,
    "data": {
        "id": "345cef18-ae70-….-bd4c-d2c2795bfbbe",
        "code": {
            "value": "123456789_12345678954321",
            "scheme": "0225"
        },
        "registeredDirectories": ["Peppol"]
    }
}

Sample for updating an outbound company configuration

Request sample

Request sample for updating the configuration of an outbound company endpoint

curl --location --request PUT 'https://api-test.sovos.com/v2/configurations/workspaces/organizations/{orgId}/companies/{companyId}/endpoints/{endpointId}' \
--header 'x-correlationId: SET-TO-UNIQUE-VALUE' \
--header 'Authorization: Bearer TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
   "validityPeriod":{
      "start": "2026-09-01T00:00:00.0000000Z",
      "end":" 2029-09-01T00:00:00.0000000Z"
   },
   "supportedDocuments": [
      {
         "type": "Lifecycle",
         "subTypes": [
            "Lifecycle"
         ]
      }
   ],
   "erpSystemId": "ERPTest_Outbound"
}'
Response sample

Response sample for updating the configuration of an outbound company endpoint

{
   "status":200,
   "message":"OK",
   "success":true,
   "timestamp":1741968114435
}

Retrieve invoice

An overview of the inbound e-invoicing workflow for the French mandate to help developers integrate their applications with the Indirect Tax API.

The diagram below provides a detailed flow on how to retrieve an invoice in France:

France invoice retrieve invoice flow

Step 1: Sovos receives the document

Sovos receives documents from the Supplier's PA.

Step 2: Sovos processes document

Upon receiving the document, Sovos will validate the document based on mandate specifications.

ℹ️ If the document comes from an internal sender, this step is not applied.

A notification with an application response is issued with some of the following values:

  • Received by the platform (202) CDAR lifecycle

  • Maide available (203) CDAR lifecycle

  • Rejected 'on receipt' (213) CDAR lifecycle (Only if a manual submission is made on the UI)

Step 3: Sovos makes the document available

Sovos makes the document available to the buyers after transforming it into the format configured by the recipient. This generates a notification with an application response containing the inbound document.

Step 4: Buyer sends SBD with Lifecycle CDAR to Sovos

Lifecycle documents in CDAR format can be submitted to change the status of the Invoice.

The supplier sends a POST request to the /documents endpoint.

The request must include the following request body parameters:

NameTypeRequiredDescription
datastringYesSet it to the SBD encoded in Base64, with the scope Mapping.InputSchema having the value "FR-CDAR-3.0-LIFECYCLE-1.0".
dataEncodingstringYes Always set it to "base64".

Step 5: Buyer retrieves application response

The application responses provide the inbound document in the configured format, and encoded in base64.

ℹ️ If applicable the buyer can also receive status information with the legal lifecycle format CDAR.

Transmission Message: It maps to the SCIGovtStatusCode and StatusReason elements in the response message, as described in the application responses section, which details any warnings or additional notes to consider. For each transaction, application responses must be retrieved based on the Invoice lifecycle specified under the French mandate.

To retrieve the application responses, the supplier can use GET /v1/notifications/FR

GET /notifications/FR

The supplier can send a GET request to the /notifications/FR endpoint to retrieve application responses that match the set search criteria. This endpoint allows setting the following query parameters:

NameTypeRequiredDefaultDescription
taxIdstringYes, only for Sovos' direct customers

Set it to include only notifications related to the specified taxId.

pageintegerNo1 To specify the page to be returned, set the value between 1 and 10.
perPageintegerNo10To specify the number of results for the returned page, set its value between 1 and 100.

⚠️ If the attachment file is configured to return the binary content, instead of a link, it's recommended to use only values between 1 and 10.

sourcesystemIdstringYes Set it to include only notifications related to documents that originate from the given source system.
includeAcknowledgedbooleanNofalse Set it to "true" to specify whether previously acknowledged notifications must be included in the result.
processTypestringNoSet it to "1" to only include notifications related to inbound documents.
Request Sample
curl --location --request GET 'https://api-test.sovos.com/v1/notifications/FR?processType=1&sourceSystemId=YOUR-SYSTEM&taxId=YOUR-TAXID' \
--header 'x-correlationId: developer-guide'
Response Sample
{
    "status": 200,
    "message": "Notifications Listed",
    "success": true,
    "timestamp": 0,
    "data": {
        "pageState": {
            "page": 1,
            "perPage": 10,
            "totalEntries": 1,
            "totalPages": 1
        },
        "notifications": [
            {
                "notificationId": "ba056226-...-a111e24acd51",
                "correlationId": "49a75544-...-5f672c2a814d",
                "appPrefix": "DLT",
                "metadata": {
                    "productId": "fr_invoice_inbound_1.0",
                    "transactionId": "47514154-...-77a72ab75731",
                    "documentId": "04c...151",
                    "erpDocumentId": "YOUR-DOCUMENT-ID",
                    "erpSystemId": "YOUR-SYSTEMERP",
                    "processType": "1",
                    "taxId": "YOUR-TAXID",
                    "sciCloudStatusCode": "215"
                },
                "content": "PD...T4=",
                "createdDate": 1674572920
            }
        ]
    }
}

Step 6: Supplier marks application response as acknowledged

After retrieving application responses, the supplier must process them and mark them as acknowledged. This can be done by sending a PUT request to the /notifications/FR/bulk endpoint. Multiple application responses can be acknowledged using one call by including them in a single request.

To make this request, set the request body to an array of the following parameters:

NameTypeRequiredDescription
statusstringYesSet it to read.
notificationIdstringYesSet it to the ID of the notification that must be marked as acknowledged.
Request Sample
curl --location --request PUT 'https://api-test.sovos.com/v1/notifications/FR/bulk' \
--header 'Content-Type: application/json' \
--header 'x-correlationId: developer-guide' \
--data-raw '[
    {
        "status": "read",
        "notificationId": "51341d39-...-a73d73e0de76"
    }
]'
Response Sample
{
  "timestamp": 1601673284,
  "status": 207,
  "success": true,
  "message": "Notifications acknowledged successfully.",
  "data": [
    {
      "notificationId": "51341d39-...-a73d73e0de76",
      "success": "true,",
      "message": "Notification marked as read"
    }
  ]
}

Error Handling

When handling errors, the client application must follow the Indirect Tax API's error handling principles, as specified in the error handling documentation.

In general, all error codes in the 400 range are client errors, which you need to analyze. After fixing the error, you can resend the request. Error codes 408 and 429 are exceptions: In these cases, you should wait at least 60 seconds before retrying. Error codes in the 500 range are server errors. In that case, resend the request according to the instructions given on the error handling documentation, which also includes a full list of error codes Indirect Tax API can return.

Issue invoice

An overview of the outbound e-invoicing workflow for the French mandate to help developers integrating their applications with the Indirect Tax API.

The flow to issue an invoice in France is based on the Default business process. The following diagrams provide a detailed overview of the workflow.

France issue invoice flow

Step 1: Supplier Creates the Standard Business Document

Every invoice sent to Sovos must be part of a Standard Business Document (SBD). This document includes a Standard Business Document Header (SBDH) and a Sovos Document node, which in turn includes a Sovos Canonical Invoice (SCI). To create the SBD, follow the detailed instructions in the SBDH, Sovos Document, and SCI pages. Here are some key elements that should be included in the SBD and in the invoice.

The Standard Business Document Header (SBDH) must be created using the following values when issuing a document in the SCI format:

NodeRequiredAttributesValue
StandardBusinessDocumentHeader.Sender.IdentifierYesAuthority="FR" Supplier's SIREN/SIRET
StandardBusinessDocumentHeader.Receiver.IdentifierYesAuthority="FR"Buyer's SIREN/SIRET
StandardBusinessDocumentHeader.DocumentIdentification.StandardYesurn:oasis:names:specification:ubl:schema:xsd:Invoice-2
StandardBusinessDocumentHeader.DocumentIdentification.TypeVersionYes2.1
StandardBusinessDocumentHeader.DocumentIdentification.TypeYes Invoice
StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes)Yes

Child node Type: Country

Child node Identifier: FR

StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes)Yes

Child node Type: ProcessType

Child node Identifier: Outbound

StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes)Yes

Child node Type: CompanyCode

Child node Identifier: Supplier's SIREN/SIRET

StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes)Yes

Child node Type: SenderDocumentId

Child node Identifier: A unique document ID, whereby the ERP document ID is recommended.

StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes)Yes

Child node Type: SenderSystemId

Child node Identifier: The system ID configured in the backend. This parameter is used to determine which notifications are returned to the client and what attachments they include. If SenderSystemId is not configured on the client side, it'll assume the default value of "DefaultSystemERP". For more information, see this topic.

StandardBusinessDocumentHeader.BusinessScope.Scope.BusinessService.BusinessServiceNameYesDefault
StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes)Yes

Child node Type: BusinessCategory

Child node Identifier: B2B

StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes)Yes

Child node Type: BusinessCategory

Child node Identifier: One of:
  • FR-SCI-1.0-INVOICE-1.0

  • FR-CIUSUBL-1.0-INVOICE-1.0

  • FR-FACTURX-1.06-INVOICE-1.0

  • FR-CIUSCII-1.0-INVOICE-1.0

  • FR-CDAR-3.0-LIFECYCLE-1.0

SovosDocument.SovosCanonicalInvoice.InvoiceYes* (only if document type is FR-SCI-1.0-INVOICE-1.0)SCI
SovosDocument.SovosLegalDocument.Base64DocumentYes* (for document types: FR-CIUSUBL-1.0-INVOICE-1.0, FR-FACTURX-1.06-INVOICE-1.0, FR-CIUSCII-1.0-INVOICE-1.0, FR-CDAR-3.0-LIFECYCLE-1.0) Other supported formats

Step 2: Supplier sends the SBD to Sovos

The supplier sends a POST request to the /documents endpoint.

The request must include the following request body parameters:

NameTypeRequiredDescription
datastringYesSet it to the SBD encoded in Base64, as created in step 1.
dataEncodingstringYes Always set it to "base64".
Request Sample
curl --location --request POST 'https://api-test.sovos.com/v1/documents' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer TOKEN' \
--header 'x-correlationId: SET-TO-UNIQUE-VALUE' \
--data-raw '{
	"data": "PD9...d4=",
	"dataEncoding" : "base64"
}'
Response Sample - Success
{
    "timestamp": 1605282724079,
    "status": 202,
    "success": true,
    "message": "Document Received",
    "data": {
        "documentId": "DOCUMENT-ID"
    }
}
Response Sample - Failure
{
  "success": false,
  "status": 400,
  "message": "Bad Request",
  "timestamp": 1601666692,
  "errors": [
    {
      "subCode": "XSD_SYNTAX_ERROR",
      "message": "An XML comment cannot contain '--', and '-' cannot be the last character. Line 276, position 11. "
    }
  ]
}

Step 3: Sovos processes the document

Upon receiving the SCI/Legal, Sovos will validate the document based on mandate specifications.

A notification with an application response is issued with some of the following values:

  • Submitted (200) CDAR lifecycle

  • Rejected 'on issue' (213) CDAR lifecycle

Step 4: Sovos transmits the document

Sovos will transmit the document file to the PA based on the buyer's information left in the Directory and if integration is configured with the PA receiver (Not available).

A notification with an application response is issued with a "Issued by the Platform (201)" CDAR lifecycle.

Step 5: PA sends the response to Sovos

After performing its services, PA sends the response to Sovos.

A notification with an application response is issued with some of the following values:

  • Received by the platform (202) CDAR lifecycle

  • Made available (203) CDAR lifecycle

  • Rejected 'on receipt' (213) CDAR lifecycle (If the document is simulated internally, it won't be rejected as it has already been in reception)

  • or any other CDAR lifecycle notifications the buyer submits

The supplier needs to retrieve and process this notifications. For more details see Retrieve application responses.

Step 6: Buyer sends the response to Sovos

After retrieving the document the buyer sends the response to its PA, and the PA send the response to Sovos.

A notification with an application response is issued with some of the following values:

  • Received by the platform (202) CDAR lifecycle

  • Made available (203) CDAR lifecycle

  • Rejected 'on receipt' (213) CDAR lifecycle (If the document is simulated internally, it won't be rejected as it has already been in reception)

  • or any other CDAR lifecycle notifications the buyer submits

The supplier needs to retrieve and process this notifications. For more details see Retrieve application responses.

Step 7: Supplier sends SBD with Lifecycle CDAR to Sovos

Lifecycle documents in CDAR format can be submitted to change the Invoice status.

ℹ️ Follow steps 1 and 2.

Step 8: Supplier Marks the Application Responses as Acknowledged

After retrieving application responses, the supplier must process them and mark them as acknowledged. This can be done by sending a PUT request to the /notifications/FR/bulk endpoint. Multiple application responses can be acknowledged using one Indirect Tax API call by including them in a single request.

To make this request, set the request body to an array of the following parameters:

NameTypeRequiredDescription
statusstringYesSet it to read.
notificationIdstringYesSet it to the ID of the notification that must be marked as acknowledged.
Request Sample
curl --location --request PUT 'https://api-test.sovos.com/v1/notifications/FR/bulk' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer TOKEN' \
--header 'x-correlationId: SET-TO-UNIQUE-VALUE' \
--data-raw '[
    {
        "status": "read",
        "notificationId": "51341d39-...-a73d73e0de76"
    }
]'
Response Sample
{
  "timestamp": 1601673284,
  "status": 207,
  "success": true,
  "message": "Notifications acknowledged successfully.",
  "data": [
    {
      "notificationId": "51341d39-...-a73d73e0de76",
      "success": "true,",
      "message": "Notification marked as read"
    }
  ]
}

Retrieve application responses

Transmission Message: It maps to the SCIGovtStatusCode and StatusReason elements in the response message, as described in the Application Responses section, which details any warnings or additional notes to consider. For each transaction, application responses must be retrieved based on the Invoice lifecycle specified under the French mandate.

The supplier must retrieve the application responses that become available during the transaction. The application responses provide status information and include the legal lifecycle format CDAR XML encoded in base64 with the respective legal status.

GET /notifications/FR

The supplier can send a GET request to the /notifications/FR endpoint to retrieve application responses that match the set search criteria. This endpoint allows setting the following query parameters:

NameTypeRequiredDefaultDescription
taxIdstringNo

Set it to include only notifications related to the specified taxId. This value relates to the CompanyCode set in the SBDH.

ℹ️ If a request doesn't include this parameter, it will return all the notifications related to the country and the sourceSystemId parameter.

pageintegerNo1To specify the page to be returned, set the value between 1 and 10.
perPageintegerNo10

To specify the number of results for the returned page, set its value between 1 and 100.

⚠️ If the attachment file is configured to return the binary content, instead of a link, it's recommended to use only values between 1 and 10.

sourceSystemIdstringYes Set it to include only notifications related to documents that originate from the given source system. This value is related to the SenderSystemId in the SBDH.
includeAckwnowledgedbooleanNofalseSet it to "true" to specify whether previously acknowledged notifications, within 24 hours of their acknowledgment, must be included in the result.
processTypestringNoSet it to "0" to only include notifications related to outbound documents.
Request Sample
curl --location --request GET 'https://api-test.sovos.com/v1/notifications/FR?page=1&perPage=2&taxId={taxId}&sourceSystemId={sourceSystemId}&processType=0' \
--header 'Content-Type: application/json' \
--header 'x-correlationId: SET-TO-UNIQUE-VALUE' \
--header 'Authorization: Bearer TOKEN'
Response Sample
{
    "timestamp": 1633685509314,
    "status": 200,
    "success": true,
    "message": "Notifications Listed",
    "data": {
        "pageState": {
            "page": 1,
            "perPage": 50,
            "totalEntries": 1
        },
        "notifications": [
            {
                "createdDate": 1633681296,
                "metadata": {
                    "productId": "fr_invoice_outbound_1.0",
                    "documentId": "DOCUMENT-ID",
                    "erpDocumentId": "321412",
                    "erpSystemId": "UAT101",
                    "processType": "0",
                    "taxId": "YOUR-TAXID",
                    "sciCloudStatusCode": "214"
                },
                "appPrefix": "CN",
                "notificationId": "a8dc1aa2-fbe6-45ce-9e4c-97a3d5fdb91c",
                "content": "PEF...NlPg=="
            }
        ]
    }
}
GET /documents/FR/{documentId}/notifications
The supplier can send a GET request to the /documents/FR/{documentId}/notifications endpoint to retrieve application responses related to a single document.

To make this request, set the following parameter:

NameTypeRequiredParameter typeDescription
documentIdstringYesPathSet it to the ID of the document returned in step 2
Request Sample
curl --location --request GET 'https://api-test.sovos.com/v1/documents/FR/{documentId}/notifications?' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer TOKEN' \
--header 'x-correlationId: SET-TO-UNIQUE-VALUE'
Response Sample
{
    "timestamp": 1633685509314,
    "status": 200,
    "success": true,
    "message": "Notifications Listed",
    "data": {
        "pageState": {
            "page": 1,
            "perPage": 50,
            "totalEntries": 1
        },
        "notifications": [
            {
                "createdDate": 1633681296,
                "metadata": {
                    "productId": "fr_invoice_outbound_1.0",
                    "documentId": "DOCUMENT-ID",
                    "erpDocumentId": "321412",
                    "erpSystemId": "UAT101",
                    "processType": "0",
                    "taxId": "YOUR-TAXID",
                    "sciCloudStatusCode": "214"
                },
                "appPrefix": "DLT",
                "notificationId": "a8dc1aa2-fbe6-45ce-9e4c-97a3d5fdb91c",
                "content": "PEF...NlPg=="
            }
        ]
    }
}

Error Handling

When handling errors, the client application must follow the Indirect Tax API's error handling principles, as specified in the error handling documentation.

In general, all error codes in the 400 range are client errors, which you need to analyze. After fixing the error, you can resend the request. Error codes 408 and 429 are exceptions: In these cases, you should wait at least 60 seconds before retrying. Error codes in the 500 range are server errors. In that case, resend the request according to the instructions given on the error handling documentation, which also includes a full list of error codes Indirect Tax API can return.

French mandate e-reporting (pass through)

Report transactions and payments using the Sovos Indirect Tax API when your PA cannot report automatically.

Note:

Use this flow to report transactions and payments that your PA cannot report automatically. This flow applies only to the pass-through version and the e-reporting format (flow 10).

This flow follows the Reporting business process. See the diagram for a detailed overview.

Report flow in France

Step 1: Create the Standard Business Document

Package every transaction or payment you send to Sovos in a Standard Business Document (SBD).

The SBD contains a Standard Business Document Header (SBDH) and a Sovos Document node, which includes the specific format to be processed. For detailed instructions on creating these components, see the SBDH, Sovos Document, and SCI documentation.

Configure the required SBDH elements:

Note:

Include all the mandatory nodes, as specified in the SBDH schema. If you cannot provide information for a mandatory node that is not mentioned on this page (for example, receiver.identifier), leave the node empty but still include it in the SBDH.

NodeRequiredAttributesValue
StandardBusinessDocumentHeader.Sender.Identifier YesAuthority="FR" SIREN/SIRET of the Issuer
StandardBusinessDocumentHeader.DocumentIdentification.StandardYesurn.cpro.gouv.fr:1p0:ereporting
StandardBusinessDocumentHeader.DocumentIdentification.TypeVersionYes1.0
StandardBusinessDocumentHeader.DocumentIdentification.TypeYes Flow10
StandardBusinessDocumentHeader.DocumentIdentification.MultipleTypeYesFalse
StandardBusinessDocumentHeader.DocumentIdentification.CreationDateAndTimeDate of creation with format "yyyy-mm-ddThh:mm:ssZ" (ex: 2024-01-01T12:00:00Z)
StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes)Yes

Child node Type: Country

Child node Identifier: FR

StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes)Yes

Child node Type: ProcessType

Child node Identifier: Outbound

StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes)Yes

Child node Type: CompanyCode

Child node Identifier: SIREN/SIRET of the Issuer

StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes)Yes

Child node Type: SenderDocumentId

Child node Identifier: A unique document ID, whereby the ERP document ID is recommended.

StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes)Yes

Child node Type: SenderSystemId

Child node Identifier: The system ID configured in the backend. This parameter is used to determine which notifications are returned to the client and what attachments they include. If SenderSystemId is not configured on the client side, it'll assume the default value of "DefaultSystemERP". For more information, see this topic.

StandardBusinessDocumentHeader.BusinessScope.Scope (with child nodes)Yes

Child node Type: Report.Type

Child node Identifier: FR_Reporting_Transaction_Report or FR_Reporting_Payment_Report

StandardBusinessDocumentHeader.BusinessScope.Scope.BusinessService.BusinessServiceNameYesReporting
SovosDocument.SovosLegalDocument.Base64DocumentYes Other supported formats

Encode your report document in Base64 and add it to the SovosDocument.SovosLegalDocument.Base64Document node.

Example:

    </sbd:StandardBusinessDocumentHeader>
    <svs:SovosDocument>
        <svs:SovosLegalDocument>
            <enc:Base64Document>
                <enc:EmbeddedDocument id="1" fileName="invoice.xml" mimeCode="application/xml">PD94bWwgdmVyc...FrdHVyYT4NCg==</enc:EmbeddedDocument>
            </enc:Base64Document>
        </svs:SovosLegalDocument>
    </svs:SovosDocument>
</svs:StandardBusinessDocument>
<sbd:StandardBusinessDocument xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://uri.etsi.org/01903/v1.4.1#"
	xmlns:ad="http://www.sovos.com/namespaces/additionalData"
	xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
	xmlns:n0="urn:oasis:names:specification:ubl:schema:xsd:CommonSignatureComponents-2"
	xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
	xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
	xmlns:crn="urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2"
	xmlns:dbn="urn:oasis:names:specification:ubl:schema:xsd:DebitNote-2"
	xmlns:enc="http://www.sovos.com/namespaces/base64Document"
	xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2"
	xmlns:inv="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
	xmlns:qdt="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDataTypes-2"
	xmlns:sac="urn:oasis:names:specification:ubl:schema:xsd:SignatureAggregateComponents-2"
	xmlns:sbc="urn:oasis:names:specification:ubl:schema:xsd:SignatureBasicComponents-2"
	xmlns:sbd="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader"
	xmlns:sci="http://www.sovos.com/namespaces/sovosCanonicalInvoice"
	xmlns:sov="http://www.sovos.com/namespaces/sovosExtensions"
	xmlns:svs="http://www.sovos.com/namespaces/sovosDocument"
	xmlns:udt="urn:oasis:names:specification:ubl:schema:xsd:UnqualifiedDataTypes-2"
	xmlns:xades="http://uri.etsi.org/01903/v1.3.2#"
	xmlns:ccts-cct="urn:un:unece:uncefact:data:specification:CoreComponentTypeSchemaModule:2">
	<sbd:StandardBusinessDocumentHeader>
		<sbd:HeaderVersion>1.0</sbd:HeaderVersion>
		<sbd:Sender>
			<sbd:Identifier Authority="FR">100000008</sbd:Identifier>
			<!-- Always Siren - 9 digits -->
		</sbd:Sender>
		<sbd:DocumentIdentification>
			<sbd:Standard>urn.cpro.gouv.fr:1p0:ereporting</sbd:Standard>
			<sbd:TypeVersion>1.0</sbd:TypeVersion>
			<sbd:InstanceIdentifier />
			<sbd:Type>Flow10</sbd:Type>
			<sbd:MultipleType>false</sbd:MultipleType>
			<sbd:CreationDateAndTime>2024-01-01T12:00:00Z</sbd:CreationDateAndTime>
		</sbd:DocumentIdentification>
		<sbd:BusinessScope>
			<sbd:Scope>
				<!-- Mandatory -->
				<sbd:Type>Version</sbd:Type>
				<sbd:InstanceIdentifier />
				<sbd:Identifier>1.0</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<!-- Mandatory -->
				<sbd:Type>Country</sbd:Type>
				<sbd:InstanceIdentifier />
				<sbd:Identifier>FR</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<!-- optional -->
				<sbd:Type>CompanyCode</sbd:Type>
				<!-- The tax ID of the company sending the request. -->
				<sbd:InstanceIdentifier />
				<sbd:Identifier>100000008</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<!-- optional -->
				<sbd:Type>SenderDocumentId</sbd:Type>
				<!-- The unique document ID for the Sender used to identify the document. The value
				content is not constrained, but Sovos recommends using the unique ERP document
				identification. -->
				<sbd:InstanceIdentifier />
				<sbd:Identifier>UC1_2023001_F</sbd:Identifier>
				<!-- Must be passed in the metadata of the notification relating to the document
				sent -->
			</sbd:Scope>
			<sbd:Scope>
				<!-- optional -->
				<sbd:Type>SenderSystemId</sbd:Type>
				<!-- the Sender system ID used to create the document. Examples of used values are:
				Sandboxes1, Development2, SAPUAT, SAPERC, etc. -->
				<sbd:InstanceIdentifier />
				<sbd:Identifier>SystemERP</sbd:Identifier>
				<!-- Must be passed in the metadata of the notification relating to the document
				sent -->
			</sbd:Scope>
			<sbd:Scope>
				<!-- Mandatory -->
				<sbd:Type>ProcessType</sbd:Type>
				<sbd:InstanceIdentifier />
				<sbd:Identifier>Outbound</sbd:Identifier>
				<!-- Used to distinguish the direction of the document submitted -->
			</sbd:Scope>
			<sbd:Scope>
				<!-- Mandatory -->
				<sbd:Type>Mapping.OutputSchema</sbd:Type>
				<sbd:InstanceIdentifier />
				<sbd:Identifier>Report</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<!-- Mandatory -->
				<sbd:Type>BusinessProcess</sbd:Type>
				<sbd:InstanceIdentifier />
				<sbd:BusinessService>
					<sbd:BusinessServiceName>Reporting</sbd:BusinessServiceName>
				</sbd:BusinessService>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>Report.Type</sbd:Type>
				<sbd:InstanceIdentifier />
				<sbd:Identifier>FR_Reporting_Transaction_Report</sbd:Identifier>
			</sbd:Scope>
		</sbd:BusinessScope>
	</sbd:StandardBusinessDocumentHeader>
	<svs:SovosDocument>
		<svs:SovosLegalDocument>
			<enc:Base64Document>
				<enc:EmbeddedDocument id="REP_RM_0006" fileName="report_flow10.xml"
					mimeCode="application/xml">
					<!-- 5 MB limit for the Embedded Document -->
					PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxSZXBvcnQgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSI+DQoJPFJlcG9ydERvY3VtZW50Pg0KCQk8SWQ+UkVQX1JNXzAwMDQ8L0lkPg0KCQk8TmFtZT5SRVBfUk1fMDAwNDwvTmFtZT4NCgkJPElzc3VlRGF0ZVRpbWU+DQoJCQk8RGF0ZVRpbWVTdHJpbmc+MjAyMzA5MTUxNTM0MzA8L0RhdGVUaW1lU3RyaW5nPg0KCQk8L0lzc3VlRGF0ZVRpbWU+DQoJCTxUeXBlQ29kZT5JTjwvVHlwZUNvZGU+DQoJCTxTZW5kZXI+DQoJCQk8SWQgc2NoZW1lSWQ9IjAwMDIiPjExMTExMTExMTwvSWQ+DQoJCQk8TmFtZT5QRFAgRk9VUk5JU1NFVVI8L05hbWU+DQoJCQk8Um9sZUNvZGU+V0s8L1JvbGVDb2RlPg0KCQkJPFVSSVVuaXZlcnNhbENvbW11bmljYXRpb24+DQoJCQkJPFVSSUlEPmZvdXJuaXNzZXVyQHBkcC5mcjwvVVJJSUQ+DQoJCQk8L1VSSVVuaXZlcnNhbENvbW11bmljYXRpb24+DQoJCTwvU2VuZGVyPg0KCQk8SXNzdWVyPg0KCQkJPElkIHNjaGVtZUlkPSIwMDAyIj4xMDAwMDAwMDg8L0lkPg0KCQkJPE5hbWU+Rk9VUk5JU1NFVVI8L05hbWU+DQoJCQk8Um9sZUNvZGU+U0U8L1JvbGVDb2RlPg0KCQkJPFVSSVVuaXZlcnNhbENvbW11bmljYXRpb24+DQoJCQkJPFVSSUlEPmZvdXJuaXNzZXVyQGZvdXJuaXNzZXVyLmNvbTwvVVJJSUQ+DQoJCQk8L1VSSVVuaXZlcnNhbENvbW11bmljYXRpb24+DQoJCTwvSXNzdWVyPg0KCTwvUmVwb3J0RG9jdW1lbnQ+DQoJPFRyYW5zYWN0aW9uc1JlcG9ydD4NCgkJPFJlcG9ydFBlcmlvZD4NCgkJCTxTdGFydERhdGU+MjAyNTEwMDE8L1N0YXJ0RGF0ZT4NCgkJCTxFbmREYXRlPjIwMjUxMDMxPC9FbmREYXRlPg0KCQk8L1JlcG9ydFBlcmlvZD4NCgkJPEludm9pY2U+DQoJCQk8SUQ+UzFGMV9SRVBPUlQyMDI1X3h4eDwvSUQ+DQoJCQk8SXNzdWVEYXRlPjIwMjUwOTAxPC9Jc3N1ZURhdGU+DQoJCQk8VHlwZUNvZGU+MzgwPC9UeXBlQ29kZT4NCgkJCTxDdXJyZW5jeUNvZGU+RVVSPC9DdXJyZW5jeUNvZGU+DQoJCQk8RHVlRGF0ZT4yMDI1MDkzMDwvRHVlRGF0ZT4NCgkJCTxJbmNsdWRlZE5vdGU+DQoJCQkJPFN1YmplY3Q+QUJMPC9TdWJqZWN0Pg0KCQkJCTxDb250ZW50PlJDUyBNQVZJTExFIDEwMCAwMDAgMDA5PC9Db250ZW50Pg0KCQkJPC9JbmNsdWRlZE5vdGU+DQoJCQk8SW5jbHVkZWROb3RlPg0KCQkJCTxTdWJqZWN0PkFBSTwvU3ViamVjdD4NCgkJCQk8Q29udGVudD4zNSBtYSBydWUgYSBtb2ksNzUwMTggUEFSSVMsIEZSIOKAkyBjb250YWN0QHZlbmRldXIuZnIgLSB3d3cubGV2ZW5kZXVyLmZyICDigJMgTsKwIFRWQSA6IEZSODggMTAwIDAwMCAwMDk8L0NvbnRlbnQ+DQoJCQk8L0luY2x1ZGVkTm90ZT4NCgkJCTxJbmNsdWRlZE5vdGU+DQoJCQkJPFN1YmplY3Q+UE1EPC9TdWJqZWN0Pg0KCQkJCTxDb250ZW50PkVuIGNhcyBkZSByZXRhcmQgZGUgcGFpZW1lbnQsIHVuZSBww6luYWxpdMOpIGF1IHRhdXggZGUgMTIgJSBhbm51ZWwgc2VyYSBhcHBsaXF1w6llLjwvQ29udGVudD4NCgkJCTwvSW5jbHVkZWROb3RlPg0KCQkJPEluY2x1ZGVkTm90ZT4NCgkJCQk8U3ViamVjdD5QTVQ8L1N1YmplY3Q+DQoJCQkJPENvbnRlbnQ+VW5lIGluZGVtbml0w6kgZm9yZmFpdGFpcmUgZGUgNDAg4oKsIHNlcmEgw6lnYWxlbWVudCBleGlnw6llLCBjb25mb3Jtw6ltZW50IMOgIGzigJlhcnRpY2xlIEw0NDEtMTAgZHUgQ29kZSBkZSBjb21tZXJjZS48L0NvbnRlbnQ+DQoJCQk8L0luY2x1ZGVkTm90ZT4NCgkJCTxJbmNsdWRlZE5vdGU+DQoJCQkJPFN1YmplY3Q+QUFCPC9TdWJqZWN0Pg0KCQkJCTxDb250ZW50PkF1Y3VuIGVzY29tcHRlIGFjY29yZMOpIGVuIGNhcyBkZSBwYWllbWVudCBhbnRpY2lww6kuPC9Db250ZW50Pg0KCQkJPC9JbmNsdWRlZE5vdGU+DQoJCQk8QnVzaW5lc3NQcm9jZXNzPg0KCQkJCTxJRD5TMTwvSUQ+DQoJCQkJPFR5cGVJRD51cm4uY3Byby5nb3V2LmZyOjFwMDplcmVwb3J0aW5nPC9UeXBlSUQ+DQoJCQk8L0J1c2luZXNzUHJvY2Vzcz4NCgkJCTxTZWxsZXI+DQoJCQkJPENvbXBhbnlJZCBzY2hlbWVJZD0iMDAwMiI+MTAwMDAwMDA5PC9Db21wYW55SWQ+DQoJCQkJPFRheFJlZ2lzdHJhdGlvbklkIHF1YWxpZnlpbmdJZD0iVkFUIj5GUjk5OTk5OTk5OTk5PC9UYXhSZWdpc3RyYXRpb25JZD4NCgkJCQk8UG9zdGFsQWRkcmVzcz4NCgkJCQkJPENvdW50cnlJZD5GUjwvQ291bnRyeUlkPg0KCQkJCTwvUG9zdGFsQWRkcmVzcz4NCgkJCTwvU2VsbGVyPg0KCQkJPEJ1eWVyPg0KCQkJCTxDb21wYW55SWQgc2NoZW1lSWQ9IjAwMDIiPjIwMDAwMDAwODwvQ29tcGFueUlkPg0KCQkJCTxUYXhSZWdpc3RyYXRpb25JZCBxdWFsaWZ5aW5nSWQ9IlZBVCI+SVQwMDk4NzY1NDMyMTwvVGF4UmVnaXN0cmF0aW9uSWQ+DQoJCQkJPFBvc3RhbEFkZHJlc3M+DQoJCQkJCTxDb3VudHJ5SWQ+SVQ8L0NvdW50cnlJZD4NCgkJCQk8L1Bvc3RhbEFkZHJlc3M+DQoJCQk8L0J1eWVyPg0KCQkJPERlbGl2ZXJ5Pg0KCQkJCTxMb2NhdGlvbj4NCgkJCQkJPExpbmVPbmU+VmlhIEZyYW5jZXNjbyBDcmlzcGkgMjI2PC9MaW5lT25lPg0KCQkJCQk8Q2l0eU5hbWU+UGFsZXJtbzwvQ2l0eU5hbWU+DQoJCQkJCTxQb3N0YWxab25lPjkwMTM5PC9Qb3N0YWxab25lPg0KCQkJCQk8Q291bnRyeUlkPklUPC9Db3VudHJ5SWQ+DQoJCQkJPC9Mb2NhdGlvbj4NCgkJCTwvRGVsaXZlcnk+DQoJCQk8SW52b2ljZVBlcmlvZD4NCgkJCQk8U3RhcnREYXRlPjIwMjUwOTAxPC9TdGFydERhdGU+DQoJCQkJPEVuZERhdGU+MjAyNTA5MzA8L0VuZERhdGU+DQoJCQk8L0ludm9pY2VQZXJpb2Q+DQoJCQk8TW9uZXRhcnlUb3RhbD4NCgkJCQk8VGF4RXhjbHVzaXZlQW1vdW50PjEwMDAwLjAwPC9UYXhFeGNsdXNpdmVBbW91bnQ+DQoJCQkJPFRheEFtb3VudCBDdXJyZW5jeUNvZGU9IkVVUiI+MDwvVGF4QW1vdW50Pg0KCQkJPC9Nb25ldGFyeVRvdGFsPg0KCQkJPFRheFN1YlRvdGFsPg0KCQkJCTxUYXhhYmxlQW1vdW50PjEwMDAwLjAwPC9UYXhhYmxlQW1vdW50Pg0KCQkJCTxUYXhBbW91bnQ+MDwvVGF4QW1vdW50Pg0KCQkJCTxUYXhDYXRlZ29yeT4NCgkJCQkJPENvZGU+RTwvQ29kZT4NCgkJCQkJPFBlcmNlbnQ+MC4wMDwvUGVyY2VudD4NCgkJCQkJPFRheEV4ZW1wdGlvblJlYXNvbj5FeG9uw6lyYXRpb24gZGUgVFZBIHNlbG9uIEFydCAyNjIgZHUgQ0dJLiBWZW50ZSBkYW5zIGwnVUU8L1RheEV4ZW1wdGlvblJlYXNvbj4NCgkJCQkJPFRheEV4ZW1wdGlvblJlYXNvbkNvZGU+VkFURVgtRVUtMTUxPC9UYXhFeGVtcHRpb25SZWFzb25Db2RlPg0KCQkJCTwvVGF4Q2F0ZWdvcnk+DQoJCQk8L1RheFN1YlRvdGFsPg0KCQkJPExpbmU+DQoJCQkJPEJpbGxlZFF1YW50aXR5IFVuaXRDb2RlPSJOQVIiPjEwLjAwMDA8L0JpbGxlZFF1YW50aXR5Pg0KCQkJCTxJbnZvaWNlUGVyaW9kPg0KCQkJCQk8U3RhcnREYXRlPjIwMjUwOTAxPC9TdGFydERhdGU+DQoJCQkJCTxFbmREYXRlPjIwMjUwOTMwPC9FbmREYXRlPg0KCQkJCTwvSW52b2ljZVBlcmlvZD4NCgkJCQk8UHJpY2U+DQoJCQkJCTxQcmljZUFtb3VudD4xMDAwMDwvUHJpY2VBbW91bnQ+DQoJCQkJCTxBbGxvd2FuY2VDaGFyZ2VBbW91bnQ+MDwvQWxsb3dhbmNlQ2hhcmdlQW1vdW50Pg0KCQkJCQk8QWxsb3dhbmNlQ2hhcmdlQmFzZUFtb3VudD4xMDAwMDwvQWxsb3dhbmNlQ2hhcmdlQmFzZUFtb3VudD4NCgkJCQk8L1ByaWNlPg0KCQkJCTxQcm9kdWN0Pg0KCQkJCQk8TmFtZT5MaWduZSBmYWN0dXJlMV9TY2VuYXJpbzE8L05hbWU+DQoJCQkJPC9Qcm9kdWN0Pg0KCQkJPC9MaW5lPg0KCQk8L0ludm9pY2U+DQoJCTxJbnZvaWNlPg0KCQkJPElEPlMxRjJfUkVQT1JUMjAyNV94eHg8L0lEPg0KCQkJPElzc3VlRGF0ZT4yMDI1MDkwMTwvSXNzdWVEYXRlPg0KCQkJPFR5cGVDb2RlPjM4MDwvVHlwZUNvZGU+DQoJCQk8Q3VycmVuY3lDb2RlPkVVUjwvQ3VycmVuY3lDb2RlPg0KCQkJPER1ZURhdGU+MjAyNTA5MzA8L0R1ZURhdGU+DQoJCQk8SW5jbHVkZWROb3RlPg0KCQkJCTxTdWJqZWN0PkFCTDwvU3ViamVjdD4NCgkJCQk8Q29udGVudD5SQ1MgTUFWSUxMRSAxMDAgMDAwIDAwOTwvQ29udGVudD4NCgkJCTwvSW5jbHVkZWROb3RlPg0KCQkJPEluY2x1ZGVkTm90ZT4NCgkJCQk8U3ViamVjdD5BQUk8L1N1YmplY3Q+DQoJCQkJPENvbnRlbnQ+MzUgbWEgcnVlIGEgbW9pLDc1MDE4IFBBUklTLCBGUiDigJMgY29udGFjdEB2ZW5kZXVyLmZyIC0gd3d3LmxldmVuZGV1ci5mciAg4oCTIE7CsCBUVkEgOiBGUjg4IDEwMCAwMDAgMDA5PC9Db250ZW50Pg0KCQkJPC9JbmNsdWRlZE5vdGU+DQoJCQk8SW5jbHVkZWROb3RlPg0KCQkJCTxTdWJqZWN0PlBNRDwvU3ViamVjdD4NCgkJCQk8Q29udGVudD5FbiBjYXMgZGUgcmV0YXJkIGRlIHBhaWVtZW50LCB1bmUgcMOpbmFsaXTDqSBhdSB0YXV4IGRlIDEyICUgYW5udWVsIHNlcmEgYXBwbGlxdcOpZS48L0NvbnRlbnQ+DQoJCQk8L0luY2x1ZGVkTm90ZT4NCgkJCTxJbmNsdWRlZE5vdGU+DQoJCQkJPFN1YmplY3Q+UE1UPC9TdWJqZWN0Pg0KCQkJCTxDb250ZW50PlVuZSBpbmRlbW5pdMOpIGZvcmZhaXRhaXJlIGRlIDQwIOKCrCBzZXJhIMOpZ2FsZW1lbnQgZXhpZ8OpZSwgY29uZm9ybcOpbWVudCDDoCBs4oCZYXJ0aWNsZSBMNDQxLTEwIGR1IENvZGUgZGUgY29tbWVyY2UuPC9Db250ZW50Pg0KCQkJPC9JbmNsdWRlZE5vdGU+DQoJCQk8SW5jbHVkZWROb3RlPg0KCQkJCTxTdWJqZWN0PkFBQjwvU3ViamVjdD4NCgkJCQk8Q29udGVudD5BdWN1biBlc2NvbXB0ZSBhY2NvcmTDqSBlbiBjYXMgZGUgcGFpZW1lbnQgYW50aWNpcMOpLjwvQ29udGVudD4NCgkJCTwvSW5jbHVkZWROb3RlPg0KCQkJPEJ1c2luZXNzUHJvY2Vzcz4NCgkJCQk8SUQ+UzE8L0lEPg0KCQkJCTxUeXBlSUQ+dXJuLmNwcm8uZ291di5mcjoxcDA6ZXJlcG9ydGluZzwvVHlwZUlEPg0KCQkJPC9CdXNpbmVzc1Byb2Nlc3M+DQoJCQk8U2VsbGVyPg0KCQkJCTxDb21wYW55SWQgc2NoZW1lSWQ9IjAwMDIiPjEwMDAwMDAwOTwvQ29tcGFueUlkPg0KCQkJCTxUYXhSZWdpc3RyYXRpb25JZCBxdWFsaWZ5aW5nSWQ9IlZBVCI+RlI5OTk5OTk5OTk5OTwvVGF4UmVnaXN0cmF0aW9uSWQ+DQoJCQkJPFBvc3RhbEFkZHJlc3M+DQoJCQkJCTxDb3VudHJ5SWQ+RlI8L0NvdW50cnlJZD4NCgkJCQk8L1Bvc3RhbEFkZHJlc3M+DQoJCQk8L1NlbGxlcj4NCgkJCTxCdXllcj4NCgkJCQk8Q29tcGFueUlkIHNjaGVtZUlkPSIwMDAyIj4yMDAwMDAwMDg8L0NvbXBhbnlJZD4NCgkJCQk8VGF4UmVnaXN0cmF0aW9uSWQgcXVhbGlmeWluZ0lkPSJWQVQiPklUMDA5ODc2NTQzMjE8L1RheFJlZ2lzdHJhdGlvbklkPg0KCQkJCTxQb3N0YWxBZGRyZXNzPg0KCQkJCQk8Q291bnRyeUlkPklUPC9Db3VudHJ5SWQ+DQoJCQkJPC9Qb3N0YWxBZGRyZXNzPg0KCQkJPC9CdXllcj4NCgkJCTxEZWxpdmVyeT4NCgkJCQk8TG9jYXRpb24+DQoJCQkJCTxMaW5lT25lPlZpYSBGcmFuY2VzY28gQ3Jpc3BpIDIyNjwvTGluZU9uZT4NCgkJCQkJPENpdHlOYW1lPlBhbGVybW88L0NpdHlOYW1lPg0KCQkJCQk8UG9zdGFsWm9uZT45MDEzOTwvUG9zdGFsWm9uZT4NCgkJCQkJPENvdW50cnlJZD5JVDwvQ291bnRyeUlkPg0KCQkJCTwvTG9jYXRpb24+DQoJCQk8L0RlbGl2ZXJ5Pg0KCQkJPEludm9pY2VQZXJpb2Q+DQoJCQkJPFN0YXJ0RGF0ZT4yMDI1MDkwMTwvU3RhcnREYXRlPg0KCQkJCTxFbmREYXRlPjIwMjUwOTMwPC9FbmREYXRlPg0KCQkJPC9JbnZvaWNlUGVyaW9kPg0KCQkJPE1vbmV0YXJ5VG90YWw+DQoJCQkJPFRheEV4Y2x1c2l2ZUFtb3VudD4yMDAwMDA8L1RheEV4Y2x1c2l2ZUFtb3VudD4NCgkJCQk8VGF4QW1vdW50IEN1cnJlbmN5Q29kZT0iRVVSIj4wPC9UYXhBbW91bnQ+DQoJCQk8L01vbmV0YXJ5VG90YWw+DQoJCQk8VGF4U3ViVG90YWw+DQoJCQkJPFRheGFibGVBbW91bnQ+MjAwMDAwPC9UYXhhYmxlQW1vdW50Pg0KCQkJCTxUYXhBbW91bnQ+MDwvVGF4QW1vdW50Pg0KCQkJCTxUYXhDYXRlZ29yeT4NCgkJCQkJPENvZGU+RTwvQ29kZT4NCgkJCQkJPFBlcmNlbnQ+MC4wMDwvUGVyY2VudD4NCgkJCQkJPFRheEV4ZW1wdGlvblJlYXNvbj5FeG9uw6lyYXRpb24gZGUgVFZBIHNlbG9uIEFydCAyNjIgZHUgQ0dJLiBWZW50ZSBkYW5zIGwnVUU8L1RheEV4ZW1wdGlvblJlYXNvbj4NCgkJCQkJPFRheEV4ZW1wdGlvblJlYXNvbkNvZGU+VkFURVgtRVUtMTUxPC9UYXhFeGVtcHRpb25SZWFzb25Db2RlPg0KCQkJCTwvVGF4Q2F0ZWdvcnk+DQoJCQk8L1RheFN1YlRvdGFsPg0KCQkJPExpbmU+DQoJCQkJPEJpbGxlZFF1YW50aXR5IFVuaXRDb2RlPSJOQVIiPjEuMDAwMDwvQmlsbGVkUXVhbnRpdHk+DQoJCQkJPEludm9pY2VQZXJpb2Q+DQoJCQkJCTxTdGFydERhdGU+MjAyNTA5MDE8L1N0YXJ0RGF0ZT4NCgkJCQkJPEVuZERhdGU+MjAyNTA5MzA8L0VuZERhdGU+DQoJCQkJPC9JbnZvaWNlUGVyaW9kPg0KCQkJCTxQcmljZT4NCgkJCQkJPFByaWNlQW1vdW50PjIwMDAwMDwvUHJpY2VBbW91bnQ+DQoJCQkJCTxBbGxvd2FuY2VDaGFyZ2VBbW91bnQ+MDwvQWxsb3dhbmNlQ2hhcmdlQW1vdW50Pg0KCQkJCQk8QWxsb3dhbmNlQ2hhcmdlQmFzZUFtb3VudD4yMDAwMDA8L0FsbG93YW5jZUNoYXJnZUJhc2VBbW91bnQ+DQoJCQkJPC9QcmljZT4NCgkJCQk8UHJvZHVjdD4NCgkJCQkJPE5hbWU+TGlnbmUgZmFjdHVyZTJfU2NlbmFyaW8xPC9OYW1lPg0KCQkJCTwvUHJvZHVjdD4NCgkJCTwvTGluZT4NCgkJPC9JbnZvaWNlPg0KCQk8VHJhbnNhY3Rpb25zPg0KCQkJPERhdGU+MjAyNTA5MjI8L0RhdGU+DQoJCQk8VHJhbnNhY3Rpb25zQ3VycmVuY3k+RVVSPC9UcmFuc2FjdGlvbnNDdXJyZW5jeT4NCgkJCTxDYXRlZ29yeUNvZGU+VExCMTwvQ2F0ZWdvcnlDb2RlPg0KCQkJPFRheEV4Y2x1c2l2ZUFtb3VudD4xMDAwMDwvVGF4RXhjbHVzaXZlQW1vdW50Pg0KCQkJPFRheFRvdGFsPjIwMDA8L1RheFRvdGFsPg0KCQkJPFRyYW5zYWN0aW9uc0NvdW50PjEwMDwvVHJhbnNhY3Rpb25zQ291bnQ+DQoJCQk8VGF4U3VidG90YWw+DQoJCQkJPFRheFBlcmNlbnQ+MjA8L1RheFBlcmNlbnQ+DQoJCQkJPFRheGFibGVBbW91bnQ+MTAwMDA8L1RheGFibGVBbW91bnQ+DQoJCQkJPFRheFRvdGFsPjIwMDA8L1RheFRvdGFsPg0KCQkJPC9UYXhTdWJ0b3RhbD4NCgkJPC9UcmFuc2FjdGlvbnM+DQoJCTxUcmFuc2FjdGlvbnM+DQoJCQk8RGF0ZT4yMDI1MDkxNjwvRGF0ZT4NCgkJCTxUcmFuc2FjdGlvbnNDdXJyZW5jeT5FVVI8L1RyYW5zYWN0aW9uc0N1cnJlbmN5Pg0KCQkJPENhdGVnb3J5Q29kZT5UUFMxPC9DYXRlZ29yeUNvZGU+DQoJCQk8VGF4RXhjbHVzaXZlQW1vdW50PjEwMDAwPC9UYXhFeGNsdXNpdmVBbW91bnQ+DQoJCQk8VGF4VG90YWw+MjAwMDwvVGF4VG90YWw+DQoJCQk8VHJhbnNhY3Rpb25zQ291bnQ+MTAwPC9UcmFuc2FjdGlvbnNDb3VudD4NCgkJCTxUYXhTdWJ0b3RhbD4NCgkJCQk8VGF4UGVyY2VudD4yMDwvVGF4UGVyY2VudD4NCgkJCQk8VGF4YWJsZUFtb3VudD4xMDAwMDwvVGF4YWJsZUFtb3VudD4NCgkJCQk8VGF4VG90YWw+MjAwMDwvVGF4VG90YWw+DQoJCQk8L1RheFN1YnRvdGFsPg0KCQk8L1RyYW5zYWN0aW9ucz4NCgk8L1RyYW5zYWN0aW9uc1JlcG9ydD4NCjwvUmVwb3J0Pg==
					</enc:EmbeddedDocument>
			</enc:Base64Document>
		</svs:SovosLegalDocument>
	</svs:SovosDocument>
</sbd:StandardBusinessDocument>
<sbd:StandardBusinessDocument xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://uri.etsi.org/01903/v1.4.1#"
	xmlns:ad="http://www.sovos.com/namespaces/additionalData"
	xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
	xmlns:n0="urn:oasis:names:specification:ubl:schema:xsd:CommonSignatureComponents-2"
	xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
	xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
	xmlns:crn="urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2"
	xmlns:dbn="urn:oasis:names:specification:ubl:schema:xsd:DebitNote-2"
	xmlns:enc="http://www.sovos.com/namespaces/base64Document"
	xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2"
	xmlns:inv="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
	xmlns:qdt="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDataTypes-2"
	xmlns:sac="urn:oasis:names:specification:ubl:schema:xsd:SignatureAggregateComponents-2"
	xmlns:sbc="urn:oasis:names:specification:ubl:schema:xsd:SignatureBasicComponents-2"
	xmlns:sbd="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader"
	xmlns:sci="http://www.sovos.com/namespaces/sovosCanonicalInvoice"
	xmlns:sov="http://www.sovos.com/namespaces/sovosExtensions"
	xmlns:svs="http://www.sovos.com/namespaces/sovosDocument"
	xmlns:udt="urn:oasis:names:specification:ubl:schema:xsd:UnqualifiedDataTypes-2"
	xmlns:xades="http://uri.etsi.org/01903/v1.3.2#"
	xmlns:ccts-cct="urn:un:unece:uncefact:data:specification:CoreComponentTypeSchemaModule:2">
	<sbd:StandardBusinessDocumentHeader>
		<sbd:HeaderVersion>1.0</sbd:HeaderVersion>
		<sbd:Sender>
			<sbd:Identifier Authority="FR">100000008</sbd:Identifier>
			<!-- Always Siren - 9 digits -->
		</sbd:Sender>
		<sbd:DocumentIdentification>
			<sbd:Standard>urn.cpro.gouv.fr:1p0:ereporting</sbd:Standard>
			<sbd:TypeVersion>1.0</sbd:TypeVersion>
			<sbd:InstanceIdentifier />
			<sbd:Type>Flow10</sbd:Type>
			<sbd:MultipleType>false</sbd:MultipleType>
			<sbd:CreationDateAndTime>2024-01-01T12:00:00Z</sbd:CreationDateAndTime>
		</sbd:DocumentIdentification>
		<sbd:BusinessScope>
			<sbd:Scope>
				<!-- Mandatory -->
				<sbd:Type>Version</sbd:Type>
				<sbd:InstanceIdentifier />
				<sbd:Identifier>1.0</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<!-- Mandatory -->
				<sbd:Type>Country</sbd:Type>
				<sbd:InstanceIdentifier />
				<sbd:Identifier>FR</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<!-- optional -->
				<sbd:Type>CompanyCode</sbd:Type>
				<!-- The tax ID of the company sending the request. -->
				<sbd:InstanceIdentifier />
				<sbd:Identifier>100000008</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<!-- optional -->
				<sbd:Type>SenderDocumentId</sbd:Type>
				<!-- The unique document ID for the Sender used to identify the document. The value
				content is not constrained, but Sovos recommends using the unique ERP document
				identification. -->
				<sbd:InstanceIdentifier />
				<sbd:Identifier>UC1_2023001_F</sbd:Identifier>
				<!-- Must be passed in the metadata of the notification relating to the document
				sent -->
			</sbd:Scope>
			<sbd:Scope>
				<!-- optional -->
				<sbd:Type>SenderSystemId</sbd:Type>
				<!-- the Sender system ID used to create the document. Examples of used values are:
				Sandboxes1, Development2, SAPUAT, SAPERC, etc. -->
				<sbd:InstanceIdentifier />
				<sbd:Identifier>SystemERP</sbd:Identifier>
				<!-- Must be passed in the metadata of the notification relating to the document
				sent -->
			</sbd:Scope>
			<sbd:Scope>
				<!-- Mandatory -->
				<sbd:Type>ProcessType</sbd:Type>
				<sbd:InstanceIdentifier />
				<sbd:Identifier>Outbound</sbd:Identifier>
				<!-- Used to distinguish the direction of the document submitted -->
			</sbd:Scope>
			<sbd:Scope>
				<!-- Mandatory -->
				<sbd:Type>Mapping.OutputSchema</sbd:Type>
				<sbd:InstanceIdentifier />
				<sbd:Identifier>Report</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<!-- Mandatory -->
				<sbd:Type>BusinessProcess</sbd:Type>
				<sbd:InstanceIdentifier />
				<sbd:BusinessService>
					<sbd:BusinessServiceName>Reporting</sbd:BusinessServiceName>
				</sbd:BusinessService>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>Report.Type</sbd:Type>
				<sbd:InstanceIdentifier />
				<sbd:Identifier>FR_Reporting_Payment_Report</sbd:Identifier>
			</sbd:Scope>
		</sbd:BusinessScope>
	</sbd:StandardBusinessDocumentHeader>
	<svs:SovosDocument>
		<svs:SovosLegalDocument>
			<enc:Base64Document>
				<enc:EmbeddedDocument id="REP_PYM_0005" fileName="report_flow10_payment.xml"
					mimeCode="application/xml">
					<!-- 5 MB limit for the Embedded Document -->
					PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxSZXBvcnQgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSI+DQoJPFJlcG9ydERvY3VtZW50Pg0KCQk8SWQ+UkVQX1BZTV8wMDA1PC9JZD4NCgkJPE5hbWU+UkVQX1BZTV8wMDA1PC9OYW1lPg0KCQk8SXNzdWVEYXRlVGltZT4NCgkJCTxEYXRlVGltZVN0cmluZz4yMDIzMDkxNTE1MzQzMDwvRGF0ZVRpbWVTdHJpbmc+DQoJCTwvSXNzdWVEYXRlVGltZT4NCgkJPFR5cGVDb2RlPklOPC9UeXBlQ29kZT4NCgkJPFNlbmRlcj4NCgkJCTxJZCBzY2hlbWVJZD0iMDAwMiI+MTExMTExMTExPC9JZD4NCgkJCTxOYW1lPlBEUCBGT1VSTklTU0VVUjwvTmFtZT4NCgkJCTxSb2xlQ29kZT5XSzwvUm9sZUNvZGU+DQoJCQk8VVJJVW5pdmVyc2FsQ29tbXVuaWNhdGlvbj4NCgkJCQk8VVJJSUQ+Zm91cm5pc3NldXJAcGRwLmZyPC9VUklJRD4NCgkJCTwvVVJJVW5pdmVyc2FsQ29tbXVuaWNhdGlvbj4NCgkJPC9TZW5kZXI+DQoJCTxJc3N1ZXI+DQoJCQk8SWQgc2NoZW1lSWQ9IjAwMDIiPjEwMDAwMDAwODwvSWQ+DQoJCQk8TmFtZT5GT1VSTklTU0VVUjwvTmFtZT4NCgkJCTxSb2xlQ29kZT5TRTwvUm9sZUNvZGU+DQoJCQk8VVJJVW5pdmVyc2FsQ29tbXVuaWNhdGlvbj4NCgkJCQk8VVJJSUQ+Zm91cm5pc3NldXJAZm91cm5pc3NldXIuY29tPC9VUklJRD4NCgkJCTwvVVJJVW5pdmVyc2FsQ29tbXVuaWNhdGlvbj4NCgkJPC9Jc3N1ZXI+DQoJPC9SZXBvcnREb2N1bWVudD4NCgk8UGF5bWVudHNSZXBvcnQ+DQoJCTxSZXBvcnRQZXJpb2Q+DQoJCQk8U3RhcnREYXRlPjIwMjUxMDAxPC9TdGFydERhdGU+DQoJCQk8RW5kRGF0ZT4yMDI1MTAzMTwvRW5kRGF0ZT4NCgkJPC9SZXBvcnRQZXJpb2Q+DQoJCTxJbnZvaWNlPg0KCQkJPEludm9pY2VJRD5TMkYzX1JFUE9SVDIwMjVfeHh4PC9JbnZvaWNlSUQ+DQoJCQk8SXNzdWVEYXRlPjIwMjUwOTAzPC9Jc3N1ZURhdGU+DQoJCQk8UGF5bWVudD4NCgkJCQk8RGF0ZT4yMDI1MTAzMDwvRGF0ZT4NCgkJCQk8U3ViVG90YWxzPg0KCQkJCQk8VGF4UGVyY2VudD4wPC9UYXhQZXJjZW50Pg0KCQkJCQk8Q3VycmVuY3lDb2RlPkVVUjwvQ3VycmVuY3lDb2RlPg0KCQkJCQk8QW1vdW50PjMwMDAwLjAwPC9BbW91bnQ+DQoJCQkJPC9TdWJUb3RhbHM+DQoJCQk8L1BheW1lbnQ+DQoJCTwvSW52b2ljZT4NCgkJPEludm9pY2U+DQoJCQk8SW52b2ljZUlEPlMyRjRfUkVQT1JUMjAyNV94eHg8L0ludm9pY2VJRD4NCgkJCTxJc3N1ZURhdGU+MjAyNTA5MTA8L0lzc3VlRGF0ZT4NCgkJCTxQYXltZW50Pg0KCQkJCTxEYXRlPjIwMjUxMDMwPC9EYXRlPg0KCQkJCTxTdWJUb3RhbHM+DQoJCQkJCTxUYXhQZXJjZW50PjA8L1RheFBlcmNlbnQ+DQoJCQkJCTxDdXJyZW5jeUNvZGU+RVVSPC9DdXJyZW5jeUNvZGU+DQoJCQkJCTxBbW91bnQ+NDAwMDAwLjAwPC9BbW91bnQ+DQoJCQkJPC9TdWJUb3RhbHM+DQoJCQk8L1BheW1lbnQ+DQoJCTwvSW52b2ljZT4NCgkJPFRyYW5zYWN0aW9ucz4NCgkJCTxQYXltZW50Pg0KCQkJCTxEYXRlPjIwMjUwOTIyPC9EYXRlPg0KCQkJCTxTdWJUb3RhbHM+DQoJCQkJCTxUYXhQZXJjZW50PjIwPC9UYXhQZXJjZW50Pg0KCQkJCQk8QW1vdW50PjMwMDAwPC9BbW91bnQ+DQoJCQkJPC9TdWJUb3RhbHM+DQoJCQk8L1BheW1lbnQ+DQoJCTwvVHJhbnNhY3Rpb25zPg0KCQk8VHJhbnNhY3Rpb25zPg0KCQkJPFBheW1lbnQ+DQoJCQkJPERhdGU+MjAyNTA5MTY8L0RhdGU+DQoJCQkJPFN1YlRvdGFscz4NCgkJCQkJPFRheFBlcmNlbnQ+MjA8L1RheFBlcmNlbnQ+DQoJCQkJCTxBbW91bnQ+MzAwMDA8L0Ftb3VudD4NCgkJCQk8L1N1YlRvdGFscz4NCgkJCTwvUGF5bWVudD4NCgkJPC9UcmFuc2FjdGlvbnM+DQoJPC9QYXltZW50c1JlcG9ydD4NCjwvUmVwb3J0Pg0K
					</enc:EmbeddedDocument>
			</enc:Base64Document>
		</svs:SovosLegalDocument>
	</svs:SovosDocument>
</sbd:StandardBusinessDocument>
<sbd:StandardBusinessDocument xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://uri.etsi.org/01903/v1.4.1#"
	xmlns:ad="http://www.sovos.com/namespaces/additionalData"
	xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
	xmlns:n0="urn:oasis:names:specification:ubl:schema:xsd:CommonSignatureComponents-2"
	xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
	xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
	xmlns:crn="urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2"
	xmlns:dbn="urn:oasis:names:specification:ubl:schema:xsd:DebitNote-2"
	xmlns:enc="http://www.sovos.com/namespaces/base64Document"
	xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2"
	xmlns:inv="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
	xmlns:qdt="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDataTypes-2"
	xmlns:sac="urn:oasis:names:specification:ubl:schema:xsd:SignatureAggregateComponents-2"
	xmlns:sbc="urn:oasis:names:specification:ubl:schema:xsd:SignatureBasicComponents-2"
	xmlns:sbd="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader"
	xmlns:sci="http://www.sovos.com/namespaces/sovosCanonicalInvoice"
	xmlns:sov="http://www.sovos.com/namespaces/sovosExtensions"
	xmlns:svs="http://www.sovos.com/namespaces/sovosDocument"
	xmlns:udt="urn:oasis:names:specification:ubl:schema:xsd:UnqualifiedDataTypes-2"
	xmlns:xades="http://uri.etsi.org/01903/v1.3.2#"
	xmlns:ccts-cct="urn:un:unece:uncefact:data:specification:CoreComponentTypeSchemaModule:2">
	<sbd:StandardBusinessDocumentHeader>
		<sbd:HeaderVersion>1.0</sbd:HeaderVersion>
		<sbd:Sender>
			<sbd:Identifier Authority="FR">100000008</sbd:Identifier>
			<!-- Always Siren - 9 digits -->
		</sbd:Sender>
		<sbd:DocumentIdentification>
			<sbd:Standard>urn.cpro.gouv.fr:1p0:ereporting</sbd:Standard>
			<sbd:TypeVersion>1.0</sbd:TypeVersion>
			<sbd:InstanceIdentifier />
			<sbd:Type>Flow10</sbd:Type>
			<sbd:MultipleType>false</sbd:MultipleType>
			<sbd:CreationDateAndTime>2024-01-01T12:00:00Z</sbd:CreationDateAndTime>
		</sbd:DocumentIdentification>
		<sbd:BusinessScope>
			<sbd:Scope>
				<!-- Mandatory -->
				<sbd:Type>Version</sbd:Type>
				<sbd:InstanceIdentifier />
				<sbd:Identifier>1.0</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<!-- Mandatory -->
				<sbd:Type>Country</sbd:Type>
				<sbd:InstanceIdentifier />
				<sbd:Identifier>FR</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<!-- optional -->
				<sbd:Type>CompanyCode</sbd:Type>
				<!-- The tax ID of the company sending the request. -->
				<sbd:InstanceIdentifier />
				<sbd:Identifier>100000008</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<!-- optional -->
				<sbd:Type>SenderDocumentId</sbd:Type>
				<!-- The unique document ID for the Sender used to identify the document. The value
				content is not constrained, but Sovos recommends using the unique ERP document
				identification. -->
				<sbd:InstanceIdentifier />
				<sbd:Identifier>UC1_2023001_F</sbd:Identifier>
				<!-- Must be passed in the metadata of the notification relating to the document
				sent -->
			</sbd:Scope>
			<sbd:Scope>
				<!-- optional -->
				<sbd:Type>SenderSystemId</sbd:Type>
				<!-- the Sender system ID used to create the document. Examples of used values are:
				Sandboxes1, Development2, SAPUAT, SAPERC, etc. -->
				<sbd:InstanceIdentifier />
				<sbd:Identifier>SystemERP</sbd:Identifier>
				<!-- Must be passed in the metadata of the notification relating to the document
				sent -->
			</sbd:Scope>
			<sbd:Scope>
				<!-- Mandatory -->
				<sbd:Type>ProcessType</sbd:Type>
				<sbd:InstanceIdentifier />
				<sbd:Identifier>Outbound</sbd:Identifier>
				<!-- Used to distinguish the direction of the document submitted -->
			</sbd:Scope>
			<sbd:Scope>
				<!-- Mandatory -->
				<sbd:Type>Mapping.OutputSchema</sbd:Type>
				<sbd:InstanceIdentifier />
				<sbd:Identifier>Report</sbd:Identifier>
			</sbd:Scope>
			<sbd:Scope>
				<!-- Mandatory -->
				<sbd:Type>BusinessProcess</sbd:Type>
				<sbd:InstanceIdentifier />
				<sbd:BusinessService>
					<sbd:BusinessServiceName>Reporting</sbd:BusinessServiceName>
				</sbd:BusinessService>
			</sbd:Scope>
			<sbd:Scope>
				<sbd:Type>Report.Type</sbd:Type>
				<sbd:InstanceIdentifier />
				<sbd:Identifier>FR_Reporting_Transaction_Report</sbd:Identifier>
			</sbd:Scope>
		</sbd:BusinessScope>
	</sbd:StandardBusinessDocumentHeader>
	<svs:SovosDocument>
		<svs:SovosLegalDocument>
			<enc:Base64Document>
				<enc:EmbeddedDocument id="REP_RM_0006" fileName="report_flow10.xml"
					mimeCode="application/xml">
					<!-- 5 MB limit for the Embedded Document -->
					PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxSZXBvcnQgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSI+DQoJPFJlcG9ydERvY3VtZW50Pg0KCQk8SWQ+UkVQX1JNXzAwMDY8L0lkPg0KCQk8TmFtZT5SRVBfUk1fMDAwNjwvTmFtZT4NCgkJPElzc3VlRGF0ZVRpbWU+DQoJCQk8RGF0ZVRpbWVTdHJpbmc+MjAyMzA5MTUxNTM0MzA8L0RhdGVUaW1lU3RyaW5nPg0KCQk8L0lzc3VlRGF0ZVRpbWU+DQoJCTxUeXBlQ29kZT5SRTwvVHlwZUNvZGU+DQoJCTxSZWZlcmVuY2VzPg0KCQkJPFJlcG9ydElkIHNjaGVtZUlkPSdJTic+UkVQX1JNXzAwMDU8L1JlcG9ydElkPg0KCQk8L1JlZmVyZW5jZXM+DQoJCTxTZW5kZXI+DQoJCQk8SWQgc2NoZW1lSWQ9IjAwMDIiPjExMTExMTExMTwvSWQ+DQoJCQk8TmFtZT5QRFAgRk9VUk5JU1NFVVI8L05hbWU+DQoJCQk8Um9sZUNvZGU+V0s8L1JvbGVDb2RlPg0KCQkJPFVSSVVuaXZlcnNhbENvbW11bmljYXRpb24+DQoJCQkJPFVSSUlEPmZvdXJuaXNzZXVyQHBkcC5mcjwvVVJJSUQ+DQoJCQk8L1VSSVVuaXZlcnNhbENvbW11bmljYXRpb24+DQoJCTwvU2VuZGVyPg0KCQk8SXNzdWVyPg0KCQkJPElkIHNjaGVtZUlkPSIwMDAyIj4xMDAwMDAwMDg8L0lkPg0KCQkJPE5hbWU+Rk9VUk5JU1NFVVI8L05hbWU+DQoJCQk8Um9sZUNvZGU+U0U8L1JvbGVDb2RlPg0KCQkJPFVSSVVuaXZlcnNhbENvbW11bmljYXRpb24+DQoJCQkJPFVSSUlEPmZvdXJuaXNzZXVyQGZvdXJuaXNzZXVyLmNvbTwvVVJJSUQ+DQoJCQk8L1VSSVVuaXZlcnNhbENvbW11bmljYXRpb24+DQoJCTwvSXNzdWVyPg0KCTwvUmVwb3J0RG9jdW1lbnQ+DQoJPFRyYW5zYWN0aW9uc1JlcG9ydD4NCgkJPFJlcG9ydFBlcmlvZD4NCgkJCTxTdGFydERhdGU+MjAyMjA1MDE8L1N0YXJ0RGF0ZT4NCgkJCTxFbmREYXRlPjIwMjIwNTMxPC9FbmREYXRlPg0KCQk8L1JlcG9ydFBlcmlvZD4NCgkJPEludm9pY2U+DQoJCQk8SUQ+VUM4LTAxLVJFUDIwMjIxMDAxPC9JRD4NCgkJCTxJc3N1ZURhdGU+MjAyMjAxMzE8L0lzc3VlRGF0ZT4NCgkJCTxUeXBlQ29kZT4zODA8L1R5cGVDb2RlPg0KCQkJPEN1cnJlbmN5Q29kZT5FVVI8L0N1cnJlbmN5Q29kZT4NCgkJCTxUYXhEdWVEYXRlVHlwZUNvZGU+MjwvVGF4RHVlRGF0ZVR5cGVDb2RlPg0KCQkJPEJ1c2luZXNzUHJvY2Vzcz4NCgkJCQk8SUQ+TTE8L0lEPg0KCQkJCTxUeXBlSUQ+dXJuLmNwcm8uZ291di5mcjoxcDA6ZXJlcG9ydGluZzwvVHlwZUlEPg0KCQkJPC9CdXNpbmVzc1Byb2Nlc3M+DQoJCQk8U2VsbGVyPg0KCQkJCTxDb21wYW55SWQgc2NoZW1lSWQ9IjAwMDIiPjEwMDAwMDAwODwvQ29tcGFueUlkPg0KCQkJCTxUYXhSZWdpc3RyYXRpb25JZCBxdWFsaWZ5aW5nSWQ9IlZBVCI+RlIxMDAwMDAwMDAwMDwvVGF4UmVnaXN0cmF0aW9uSWQ+DQoJCQkJPFBvc3RhbEFkZHJlc3M+DQoJCQkJCTxDb3VudHJ5SWQ+RlI8L0NvdW50cnlJZD4NCgkJCQk8L1Bvc3RhbEFkZHJlc3M+DQoJCQk8L1NlbGxlcj4NCgkJCTxTZWxsZXJUYXhSZXByZXNlbnRhdGl2ZT4NCgkJCQk8IS0tIFRHLTE2IC8gQkctMTEgOiBSRVBSw4lTRU5UQU5UIEZJU0NBTCBEVSBWRU5ERVVSIC0tPg0KCQkJCTxUYXhSZWdpc3RyYXRpb25JZCBzY2hlbWVJZD0iMDAwMiI+RlI0MDAwMDAwMDAwMDwvVGF4UmVnaXN0cmF0aW9uSWQ+DQoJCQkJPCEtLSBUVC00MCAvIEJULTYzIDogSWRlbnRpZmlhbnQgw6AgbGEgVFZBIGR1IHJlcHLDqXNlbnRhbnQgZmlzY2FsIGR1IHZlbmRldXIgLS0+DQoJCQk8L1NlbGxlclRheFJlcHJlc2VudGF0aXZlPg0KCQkJPEludm9pY2VQZXJpb2Q+DQoJCQkJPFN0YXJ0RGF0ZT4yMDIyMDEwMTwvU3RhcnREYXRlPg0KCQkJCTxFbmREYXRlPjIwMjIxMjMxPC9FbmREYXRlPg0KCQkJPC9JbnZvaWNlUGVyaW9kPg0KCQkJPEFsbG93YW5jZUNoYXJnZSBDaGFyZ2VJbmRpY2F0b3I9InRydWUiPg0KCQkJCTxBbW91bnQ+NS4wMDwvQW1vdW50Pg0KCQkJPC9BbGxvd2FuY2VDaGFyZ2U+DQoJCQk8QWxsb3dhbmNlQ2hhcmdlIENoYXJnZUluZGljYXRvcj0idHJ1ZSI+DQoJCQkJPEFtb3VudD41LjAwPC9BbW91bnQ+DQoJCQk8L0FsbG93YW5jZUNoYXJnZT4NCgkJCTxNb25ldGFyeVRvdGFsPg0KCQkJCTxUYXhFeGNsdXNpdmVBbW91bnQ+MjUwLjAwPC9UYXhFeGNsdXNpdmVBbW91bnQ+DQoJCQkJPFRheEFtb3VudCBDdXJyZW5jeUNvZGU9IlN0cmluZyI+MDwvVGF4QW1vdW50Pg0KCQkJPC9Nb25ldGFyeVRvdGFsPg0KCQkJPFRheFN1YlRvdGFsPg0KCQkJCTxUYXhhYmxlQW1vdW50PjEwMDwvVGF4YWJsZUFtb3VudD4NCgkJCQk8VGF4QW1vdW50PjIwPC9UYXhBbW91bnQ+DQoJCQkJPFRheENhdGVnb3J5Pg0KCQkJCQk8Q29kZT5TPC9Db2RlPg0KCQkJCQk8UGVyY2VudD4yMC4wMDwvUGVyY2VudD4NCgkJCQk8L1RheENhdGVnb3J5Pg0KCQkJPC9UYXhTdWJUb3RhbD4NCgkJCTxUYXhTdWJUb3RhbD4NCgkJCQk8VGF4YWJsZUFtb3VudD4xMDA8L1RheGFibGVBbW91bnQ+DQoJCQkJPFRheEFtb3VudD41LjU8L1RheEFtb3VudD4NCgkJCQk8VGF4Q2F0ZWdvcnk+DQoJCQkJCTxDb2RlPlM8L0NvZGU+DQoJCQkJCTxQZXJjZW50PjUuNTA8L1BlcmNlbnQ+DQoJCQkJPC9UYXhDYXRlZ29yeT4NCgkJCTwvVGF4U3ViVG90YWw+DQoJCQk8VGF4U3ViVG90YWw+DQoJCQkJPFRheGFibGVBbW91bnQ+NTA8L1RheGFibGVBbW91bnQ+DQoJCQkJPFRheEFtb3VudD4wPC9UYXhBbW91bnQ+DQoJCQkJPFRheENhdGVnb3J5Pg0KCQkJCQk8Q29kZT5FPC9Db2RlPg0KCQkJCQk8UGVyY2VudD4wPC9QZXJjZW50Pg0KCQkJCQk8VGF4RXhlbXB0aW9uUmVhc29uPkRFQk9VUlM8L1RheEV4ZW1wdGlvblJlYXNvbj4NCgkJCQkJPFRheEV4ZW1wdGlvblJlYXNvbkNvZGU+VkFURVgtRVUtNzktQzwvVGF4RXhlbXB0aW9uUmVhc29uQ29kZT4NCgkJCQk8L1RheENhdGVnb3J5Pg0KCQkJPC9UYXhTdWJUb3RhbD4NCgkJCTxMaW5lPg0KCQkJCTxCaWxsZWRRdWFudGl0eSBVbml0Q29kZT0iQmllbnMgZGUgdHlwZSAxIj4xLjAwMDA8L0JpbGxlZFF1YW50aXR5Pg0KCQkJCTxJbnZvaWNlUGVyaW9kPg0KCQkJCQk8U3RhcnREYXRlPjIwMjIwMTAxPC9TdGFydERhdGU+DQoJCQkJCTxFbmREYXRlPjIwMjIxMjMxPC9FbmREYXRlPg0KCQkJCTwvSW52b2ljZVBlcmlvZD4NCgkJCQk8QWxsb3dhbmNlQ2hhcmdlIENoYXJnZUluZGljYXRvcj0iZmFsc2UiPg0KCQkJCQk8QW1vdW50PjQwLjAwPC9BbW91bnQ+DQoJCQkJPC9BbGxvd2FuY2VDaGFyZ2U+DQoJCQkJPEFsbG93YW5jZUNoYXJnZSBDaGFyZ2VJbmRpY2F0b3I9InRydWUiPg0KCQkJCQk8QW1vdW50PjIwLjAwPC9BbW91bnQ+DQoJCQkJPC9BbGxvd2FuY2VDaGFyZ2U+DQoJCQkJPFByaWNlPg0KCQkJCQk8UHJpY2VBbW91bnQ+MTIwLjAwMDA8L1ByaWNlQW1vdW50Pg0KCQkJCTwvUHJpY2U+DQoJCQkJPFByb2R1Y3Q+DQoJCQkJCTxOYW1lPkxCIExpZ25lIDE8L05hbWU+DQoJCQkJPC9Qcm9kdWN0Pg0KCQkJPC9MaW5lPg0KCQkJPExpbmU+DQoJCQkJPEJpbGxlZFF1YW50aXR5IFVuaXRDb2RlPSJCaWVucyBkZSB0eXBlIDIiPjIuMDAwMDwvQmlsbGVkUXVhbnRpdHk+DQoJCQkJPEludm9pY2VQZXJpb2Q+DQoJCQkJCTxTdGFydERhdGU+MjAyMjAxMDE8L1N0YXJ0RGF0ZT4NCgkJCQkJPEVuZERhdGU+MjAyMjEyMzE8L0VuZERhdGU+DQoJCQkJPC9JbnZvaWNlUGVyaW9kPg0KCQkJCTxQcmljZT4NCgkJCQkJPFByaWNlQW1vdW50PjUwLjAwMDA8L1ByaWNlQW1vdW50Pg0KCQkJCTwvUHJpY2U+DQoJCQkJPFByb2R1Y3Q+DQoJCQkJCTxOYW1lPkxCIExpZ25lIDI8L05hbWU+DQoJCQkJPC9Qcm9kdWN0Pg0KCQkJPC9MaW5lPg0KCQkJPExpbmU+DQoJCQkJPEJpbGxlZFF1YW50aXR5IFVuaXRDb2RlPSJTZXJ2aWNlcyBkZSB0eXBlIDMiPjEuMDAwMDwvQmlsbGVkUXVhbnRpdHk+DQoJCQkJPEludm9pY2VQZXJpb2Q+DQoJCQkJCTxTdGFydERhdGU+MjAyMjAxMDE8L1N0YXJ0RGF0ZT4NCgkJCQkJPEVuZERhdGU+MjAyMjEyMzE8L0VuZERhdGU+DQoJCQkJPC9JbnZvaWNlUGVyaW9kPg0KCQkJCTxQcmljZT4NCgkJCQkJPFByaWNlQW1vdW50PjUwLjAwMDA8L1ByaWNlQW1vdW50Pg0KCQkJCTwvUHJpY2U+DQoJCQkJPFByb2R1Y3Q+DQoJCQkJCTxOYW1lPlBTIExpZ25lIDM8L05hbWU+DQoJCQkJPC9Qcm9kdWN0Pg0KCQkJPC9MaW5lPg0KCQk8L0ludm9pY2U+DQoJPC9UcmFuc2FjdGlvbnNSZXBvcnQ+DQo8L1JlcG9ydD4=
					</enc:EmbeddedDocument>
			</enc:Base64Document>
		</svs:SovosLegalDocument>
	</svs:SovosDocument>
</sbd:StandardBusinessDocument>

Step 2: Send the SBD to Sovos

Send a POST request to the /documents endpoint with the Standard Business Document to submit your e-reporting data.

Prepare the request body with the following parameters:

NameTypeRequiredDescription
datastringYesThe SBD encoded in Base64 (created in step 1).
dataEncodingstringYesAlways set it to "base64".
  • If the request fails, you receive an error response. Correct your request and retry. No flow starts at this point, and you do not receive a notification.

  • If the request succeeds, you receive a 202 response with a documentId. The flow begins, and you receive notifications as processing continues.

Request Sample
curl --location --request POST 'https://api-test.sovos.com/v1/documents' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer TOKEN' \
--header 'x-correlationId: SET-TO-UNIQUE-VALUE' \
--data-raw '{
	"data": "PD9...d4=",
	"dataEncoding" : "base64"
}'
Response Sample - Success
{
    "timestamp": 1605282724079,
    "status": 202,
    "success": true,
    "message": "Document Received",
    "data": {
        "documentId": "DOCUMENT-ID"
    }
}
Response Sample - Failure
{
  "success": false,
  "status": 400,
  "message": "Bad Request",
  "timestamp": 1601666692,
  "errors": [
    {
      "subCode": "XSD_SYNTAX_ERROR",
      "message": "An XML comment cannot contain '--', and '-' cannot be the last character. Line 276, position 11. "
    }
  ]
}

Step 3: Sovos processes the document

Sovos validates your document based on French mandate specifications. The validation consists of two steps:

Schema validation
Validates the XML structure against the schema.
Schematron validation
Validates business rules (available after the French tax authority releases the official Schematron files).

The system generates a notification that includes an application response status:

102
Validation passed
401
Validation failed

If validation fails, the flow stops, and Sovos returns the error details as part of the notification response.

Step 4: Sovos transmits the document

After successful validation, Sovos sends the document to the PPF through the predefined channel.

Step 5: PPF reviews and responds

The PPF receives your report, performs its own validation process, and responds.

  1. The PPF sends an initial receipt status:

    Recevable

    The PPF confirms successful transmission.

  2. The PPF validates your data, which results in one of the following statuses:

    300 - Déposée (Filed)
    The report is accepted.
    301 - Rejetée (Rejected)
    The report is rejected. Follow the rectification process to correct it.
  3. The PPF performs additional compliance checks, which result in one of the following statuses:

    304 - Acceptée par l'administration (Accepted)
    Accepted by the administration.
    303 - Refusée par l'administration (Refused)
    Refused by the administration.
Rectification process
Use the rectification process:
  • To rectify a rejected report.

  • To add or remove invoices for an already transmitted report.

The rectification report must have:
  • TypeCode element set to RE.

  • References\ReportID element set to the id of the report to be rectified.

Step 6: Retrieve application responses

Application responses provide status information, transmission messages, attachments, and warnings.

When you initially send the document, you receive a JSON response message with HTTP status code 202 (asynchronous transaction). This means that you must retrieve the application responses as they become available during the flow.

You receive responses from two sources:

Sovos flow 10 validation responses
Schema and Schematron validations.
#SCICloudStatusCodeSCIResponseCode Sample
1102IP Successfully validated
2401RE Validation error
PPF technical and functional validation responses
Tax authority validations.
#CodeValidationDescription
1REJ_PERSemantic controlThe semantic format of one or more data points doesn't meet requirements.
2REJ_UNIUniquenessThe data has already been sent and processed.
3REJ_COHData consistencyOne or more data points are inconsistent.
4REJ_PERPeriod controlThe send date doesn't match the declared period.

Make sure you parse the following items for each response:

Transmission message
It maps to the SCIGovtStatusCode and StatusReason elements in the response message, as described in the application responses documentation, which details any warnings or additional notes to consider.
Attachments
Retrieve the attachments from the Base64-encoded binary data embedded in the application response or fetch them from the download link.

The issuer can use the following Indirect Tax API endpoints to retrieve application responses:

  • GET /notifications/FR

  • GET /documents/FR/{documentId}/notifications

GET /notifications/FR
The issuer can send a GET request to the /notifications/FR endpoint to retrieve application responses that match the configured search criteria. To make this request, set the following query parameters:
NameTypeRequiredDefaultDescription
taxIdstringNo

Include only notifications related to the specified taxId. This value relates to the CompanyCode set in the SBDH.

ℹ️ If a request doesn't include this parameter, it will return all the notifications related to the country and the sourceSystemId parameter.

pageintegerNo1To specify the page to be returned, enter a value between 1 and 10.
perPageintegerNo10

To specify the number of results for the returned page, enter a value between 1 and 100.

⚠️ If the attachment file is configured to return the binary content instead of a link, use only values between 1 and 10.

sourceSystemIdstringYesInclude only notifications related to documents that originate from the given source system. This value is related to the SenderSystemId in the SBDH.
includeAcknowledgedbooleanNofalseEnter "true" to specify whether previously acknowledged notifications must be included in the result.
processTypestringNoEnter "0" to only include notifications related to outbound documents.
Request sample
curl --location --request GET 'https://api-test.sovos.com/v1/notifications/FR?page=1&perPage=2&includeAcknowledged=true&taxId={taxId}&sourceSystemId={sourceSystemId}&processType=0' \
                                    --header 'Content-Type: application/json' \
                                    --header 'x-correlationId: 057b5a5e-520c-4ea0-a948-9d583b4d121c' \
                                    --header 'Authorization: Bearer oj3Uw1IJLVZyrc8TYmC9amh7F5Cx'
                                    
Response sample
{
                                        "timestamp": 1633685509314,
                                        "status": 200,
                                        "success": true,
                                        "message": "Notifications Listed",
                                        "data": {
                                            "pageState": {
                                                "page": 1,
                                                "perPage": 10,
                                                "totalEntries": 1
                                            },
                                            "notifications": [
                                                {
                                                    "createdDate": 1633681296,
                                                    "metadata": {
                                                        "productId": "fr_Report__1.0",
                                                        "documentId": "3add2b7104dc0049ff0bf410f57e0a19afaf",
                                                        "erpDocumentId": "321412",
                                                        "erpSystemId": "UAT101",
                                                        "processType": "0",
                                                        "taxId": "08AAACI9260R002",
                                                        "sciCloudStatusCode": "200",
                                                        "sciResponseCode": "AP",
                                                        "sciStatusAction": "NOA",
                                                        "sciGovtStatusCode": "100"
                                                    },
                                                    "appPrefix": "DLT",
                                                    "notificationId": "a8dc1aa2-fbe6-45ce-9e4c-97a3d5fdb91c",
                                                    "content": "PEF...NlPg=="
                                                }
                                            ]
                                        }
                                    }
                                    
GET /documents/FR/{documentId}/notifications
The issuer can send a GET request to the /documents/FR/{documentId}/notifications endpoint to retrieve application responses related to a single document. To make this request, set the following parameter:
NameTypeRequiredParameter typeDefaultDescription
documentIdstringYesPathThe ID of the document returned in step 2
Request sample
curl --location --request GET 'https://api-test.sovos.com/v1/documents/FR/{documentId}/notifications?' \
                                    --header 'Content-Type: application/json' \
                                    --header 'Authorization: Bearer oj3Uw1IJLVZyrc8TYmC9amh7F5Cx' \
                                    --header 'x-correlationId: 6d49dcfe-fd6b-4fb5-a590-44f4e720d70b'
                                    
Response sample
{
                                        "timestamp": 1633685509314,
                                        "status": 200,
                                        "success": true,
                                        "message": "Notifications Listed",
                                        "data": {
                                            "pageState": {
                                                "page": 1,
                                                "perPage": 10,
                                                "totalEntries": 1
                                            },
                                            "notifications": [
                                                {
                                                    "createdDate": 1633681296,
                                                    "metadata": {
                                                        "productId": "fr_Report__1.0",
                                                        "documentId": "3add2b7104dc0049ff0bf410f57e0a19afaf",
                                                        "erpDocumentId": "321412",
                                                        "erpSystemId": "UAT101",
                                                        "processType": "0",
                                                        "taxId": "08AAACI9260R002",
                                                        "sciCloudStatusCode": "200",
                                                        "sciResponseCode": "AP",
                                                        "sciStatusAction": "NOA",
                                                        "sciGovtStatusCode": "100"
                                                    },
                                                    "appPrefix": "DLT",
                                                    "notificationId": "a8dc1aa2-fbe6-45ce-9e4c-97a3d5fdb91c",
                                                    "content": "PEF...NlPg=="
                                                }
                                            ]
                                        }
                                    }

Step 7: Acknowledge application responses

After retrieving application responses, you need to process them and mark them as acknowledged. This is done by sending a PUT request to the /notifications/FR/bulk endpoint. Multiple application responses can be acknowledged using one Indirect Tax API call by including them in a single request.

If not acknowledged the application response will remain in the queue and will be returned the next time you fetch application responses. This can lead to duplicate processing or duplication errors on your side.

To make this request, set the request body to an array of the following parameters:

NameTypeRequiredDescription
statusstringYesSet it to read.
notificationIdstringYesSet it to the ID of the notification that must be marked as acknowledged.
Request Sample
curl --location --request PUT 'https://api-test.sovos.com/v1/notifications/FR/bulk' \
                        --header 'Content-Type: application/json' \
                        --header 'Authorization: Bearer TOKEN' \
                        --header 'x-correlationId: SET-TO-UNIQUE-VALUE' \
                        --data-raw '[
                            {
                                "status": "read",
                                "notificationId": "51341d39-...-a73d73e0de76"
                            }
                        ]'
Response Sample
{
                        "timestamp": 1601673284,
                        "status": 207,
                        "success": true,
                        "message": "Notifications acknowledged successfully.",
                        "data": [
                            {
                            "notificationId": "51341d39-...-a73d73e0de76",
                            "success": "true,",
                            "message": "Notification marked as read"
                            }
                        ]
                        }

Error handling

Note:

Not all 400 range errors defined in our error handling documentation apply to the reporting flow but many do. The best approach is to analyze the error messages to discover the source of the issue.

All errors in the 500 range apply to the reporting flow. Read our error handling documentation on how to handle this types of errors.

When handling errors, the client application must follow the Indirect Tax API's error handling principles, as specified in the error handling documentation.

In general, all error codes in the 400 range are client errors, which you need to analyze. After fixing the error, you can resend the request. Error codes 408 and 429 are exceptions: In these cases, you should wait at least 60 seconds before retrying. Error codes in the 500 range are server errors. In that case, resend the request according to the instructions given on the error handling documentation, which also includes a full list of error codes Indirect Tax API can return.

French mandate error messages

Market codes

The market codes list France-specific messages that come from the Network.

CodeCode ServiceCode CategorySequenceComponentOriginal CodeOriginal MessageUser Error Message
Company Validation
M-FR-2009001191Company ValidationCountryCodeCountry code value should be FR. Country code should be FR.
M-FR-2009002 192Company ValidationTaxIdTax ID is required.Company TaxId is required.
M-FR-2009003193Company ValidationTaxIdOperation cannot be executed due to mismatch between Tax ID and Siren/Siret. Operation cannot be executed due to mismatch between TaxId and Siren/Siret.
Components Validation
M-FR-2008001181Components ValidatorCodeComponentsRequiredNo valid fields found.No valid fields found.
M-FR-2008002182Components ValidatorMATRICULE_PLATEFORMEIt should be the only code component available.It should be the only code component available.
M-FR-2008003183Components ValidatorSIRENSiren is Mandatory.Siren is Mandatory.
M-FR-2008004184Components ValidatorSIRENInvalid Format.Invalid Format.
M-FR-2008005185Components ValidatorSIRENMust be unique.Must be unique.
M-FR-2008006186Components ValidatorSIRETMust be unique.Must be unique.
M-FR-2008007187Components ValidatorSIRETInvalid Format.Invalid Format.
M-FR-2008008188Components ValidatorSIRETThe SIRET and the SIREN must be related. The SIRET and the SIREN must be related.
M-FR-2008009189Components ValidatorSIRETWhen exists siret field, it must have value.When exists siret field, it must have value.
M-FR-20080101810Components ValidatorSUFFIXE_ADRESSAGEMust be unique.Must be unique.
M-FR-20080111811Components ValidatorSUFFIXE_ADRESSAGEInvalid Format.Invalid Format.
M-FR-20080121812Components ValidatorSUFFIXE_ADRESSAGESiret must be null when suffix field exists.Siret must be null when suffix field exists.
M-FR-20080131813Components ValidatorSUFFIXE_ADRESSAGECode Routage must be null when suffix field exists.Code Routage must be null when suffix field exists.
M-FR-20080141814Components ValidatorSUFFIXE_ADRESSAGEWhen exists suffixe field, it must have value.When exists suffixe field, it must have value.
M-FR-20080151815Components ValidatorCODE_ROUTAGEMust be unique.Must be unique.
M-FR-20080161816Components ValidatorCODE_ROUTAGEInvalid Format.Invalid Format.
M-FR-20080171817Components ValidatorCODE_ROUTAGESiret is Mandatory when Route Code exists.Siret is Mandatory when Route Code exists.
M-FR-20080181818Components ValidatorCODE_ROUTAGESuffix must be null when Code Routage field exists.Suffix must be null when Code Routage field exists.
M-FR-20080191819Components ValidatorCODE_ROUTAGEWhen exists code routage field, it must have value.When exists code routage field, it must have value.
Update Endpoint
M-FR-2002001121Update EndpointSiretThe Siret and the Siren must be related.The Siret and the Siren must be related.
M-FR-2002002122Update EndpointSirenField Siren was not found.Siren is not found.
M-FR-2002003123Update EndpointSirenSiren value is null or emptySiren is Required.
M-FR-2002004124Update EndpointValidityPeriodStartRequiredValidityPeriod Start is different from the start date of the current lineValidityPeriod Start date is required.
M-FR-2002005125Update Endpoint(Code From Load Configurations)(Message From Load Configurations)An error occurred while loading configurations.
M-FR-2002006126Update Endpoint(Code From Response)(Message From Response)An error occurred while trying to retrieve the Ligne Annuaire.
M-FR-2002007127Update EndpointPutLigneAnnuaireErrorAn error occurred while trying to save the Ligne Annuaire.An error occurred while trying to save the Ligne Annuaire.
M-FR-2002008128Update Endpoint(Code From Response)(Message From Response)An error occurred perform save operation on Peppol.
Register Endpoint
M-FR-2005001151Register EndpointObjectRequiredData is RequiredData is Required!
M-FR-2005002152Register EndpointInvalidOperationOutbound endpoint creation is not supported unless it is a LifeCycle document type.Outbound endpoint creation is not supported unless it is a LifeCycle document type.
M-FR-2005003153Register EndpointEndpointCodeRequiredEndpoint Code is required.Endpoint Code is required.
M-FR-2005004154Register EndpointEndpointSchemeRequiredEndpoint Scheme is required.Endpoint Scheme is required.
M-FR-2005005155Register EndpointPdpRegistrationNotSupportedInvalid Operation: cannot register a PDP.Invalid Operation: cannot register a PDP.
M-FR-2005006156Register EndpointValidityPeriodStartRequiredValidityPeriod Start date is required.ValidityPeriod Start date is required.
M-FR-2005007157Register EndpointSirenField Siren was not found.Siren is not found.
M-FR-2005008158Register EndpointSirenSiren value is null or empty.Siren is Required.
M-FR-2005009159Register EndpointIdInstanceRequiredCould not get IdInstance from Public DirectoryCould not get IdInstance from Public Directory
M-FR-20050101510Register EndpointCodeRoutageRequiredSiret and IdentifiantRoutage are required for Code RoutageSiret and IdentifiantRoutage are required for Code Routage
M-FR-20050111511Register EndpointGetLigneAnnuaireByCodeError(Code From Response)(Message From Response)
M-FR-20050121512Register EndpointUpdateLigneAnnuaireError(Code From Response)(Message From Response)
M-FR-20050131513Register EndpointCreateLigneAnnuaireError(Code From Response)(Message From Response)
M-FR-20050141514Register EndpointGetCodeRoutageError(Code From Response)(Message From Response)
M-FR-20050151515Register EndpointCreateCodeRoutageError(Code From Response)(Message From Response)
M-FR-20050161516Register EndpointLoadConfigurationError(Code From Load Configuration)(Message From Load Configuration)
Delete Endpoint
M-FR-2003001131Delete EndpointValidityPeriodEndRequiredValidityPeriod End date is required.ValidityPeriod End date is required.
M-FR-2003002132Delete EndpointSirenField Siren was not found.Siren is not found.
M-FR-2003003133Delete EndpointSirenSiren value is null or empty.Siren is Required.
M-FR-2003004134Delete Endpoint(Code From Load Config)(Message From Load Config)An error occurred while loading configurations.
M-FR-2003005135Delete Endpoint(Code From Response)(Message From Response)An error occurred while trying to delete the Ligne Annuaire.
Dynamically Discovery
M-FR-2004001141Dynamically DiscoverySearchParametersRequiredEndpointCode is required.EndpointCode is required.
M-FR-2004002142Dynamically Discovery(Code From Load Config)(Message From Load Config)An error occurred while loading configurations.
M-FR-2004003143Dynamically Discovery(Code From Response)(Messages From Response)An error occurred while trying to retrieve the endpoint.
Fetch Endpoint
M-FR-2007001171Fetch EndpointSearchParametersRequiredIdInstance or EndpointCode are required.IdInstance or EndpointCode are required.
M-FR-2007002172Fetch EndpointMetadataRequiredMetadata is required.Metadata is required.
M-FR-2007003173Fetch Endpoint(Code From Load Config)(Message From Load Config)An error occurred while loading configurations.
M-FR-2007004174Fetch Endpoint(Code From Response)(Messages From Response)An error occurred while trying to retrieve the Ligne Annuaire by Instance Id.
M-FR-2007005175Fetch Endpoint(Code From Response)(Messages From Response)An error occurred while trying to retrieve the Ligne Annuaire by Code/Identifiante.
Identify Endpoint
M-FR-2006001161Identify EndpointCodeComponentsRequiredCodeComponents is requiredC

System codes

The system codes list network-related messages that come from Compliance Network.

CodeDescription
NS-11001001 Workspace ID is mandatory and must be provided.
NS-11001002The value provided for workspace ID is not valid.
NS-11001003Endpoint code is mandatory and must be provided.
NS-11001004Network type is mandatory and must be provided.
NS-11001005Document type is mandatory and must be provided.
NS-11001006Document subtype is mandatory and must be provided.
NS-11001007The endpoint data is not valid.
NS-11001008No supported documents found for the endpoint.
NS-11001009No communications configured for the endpoint.
NS-12001001An unexpected error occurred while doing the dynamic discovery of the endpoint.
NS-12001002The network was not found.
NS-12001003Supported documents and parent cannot both be filled.
NS-12001004Supported documents or parent must be provided.
NS-12001005Parent trading partner endpoint must exist.
NS-12001006Parent partner must exist in the communications gateway.
NS-12001007Error while creating partner on the communications gateway.
NS-12001008Error while updating partner on the communications gateway.
NS-12001009Error while creating the endpoint code components.
NS-12001010Error while creating the trading partner endpoint.
NS-12001011Error while updating the trading partner endpoint.
NS-16001001An unexpected error occurred creating the error transaction.
NS-16002001An unexpected error occurred creating the invoice transaction.
NS-16003001An unexpected error occurred creating the lifecycle transaction.
NS-17001001An unexpected error occurred while processing a document shortcut transaction.
NS-17001002An error occurred while reading the internal format from the transaction.
NS-17002001An unexpected error occurred while reading the internal format from the transaction.
NS-17003001An unexpected error occurred while reading the internal format from the transaction.
NS-17003002An unexpected error occurred while reading the internal format from the transaction.
NS-17003003Failed to associate the original document to the transaction.
NS-17003004Failed to associate the internal document to the transaction.
NS-17003005Transaction with multiple internal formats is not supported in this use case.
NS-17004001An unexpected error occurred while mapping to internal format.
NS-17004002The original file was not found on the storage.
NS-17004003No internal format generated from the original document.
NS-17004004Failed to generate the internal format from the original document.
NS-17005001An unexpected error occurred while processing a new document.
NS-17005002An unexpected error occurred while processing an existent document.
NS-17005003An unexpected error occurred while processing an shorcut document.
NS-17006001An unexpected error occurred while creating the document.
NS-17006002Could not create document.
NS-17006003Could not create document because of invalid internal format.
NS-17006004Could not get seller information from invoice.
NS-17006005Could not get seller country from invoice.
NS-17006006Could not get buyer information from invoice.
NS-17006007Could not get buyer country from invoice.
NS-17007001An unexpected error occurred while checking the document duplicates.
NS-17007002An invoice must have a unique document number for a supplier in a given financial year.
NS-17008001An unexpected error occurred while updating document direction.
NS-17008002Could not update existing document direction.
NS-17009001Document direction changed.
NS-17010001An unexpected error occurred while adding additional data to the document.
NS-17010002An internal validation failed.
NS-17011001An unexpected error occurred while validating the validation format.
NS-17011002The validation format could not be obtained.
NS-17011003The validation format could not be associated with the document.
NS-17011004The validation format failed on the schematron validations.
NS-17012001Skipped mandate validations as the delivery product was not set.
NS-17012002Skipped mandate validations as the delivery product does not have a validation format configured.
NS-17013001An unexpected error occurred while enriching the document.
NS-17013002Failed to add amounts to the document during enrichment.
NS-17013003Failed to check self-billing during document enrichment.
NS-17013004Failed to add document tag during enrichment.
NS-17013005Failed to add document references during enrichment.
NS-17013006Failed to add emails to the document during enrichment.
NS-17013007Failed to add document attachments during enrichment.
NS-17014001An unexpected error occurred while adding additional data to the document.
NS-17015001No update was made to Tax Authority information.
NS-17015002Updated Tax Authority information.
NS-17015003No additional formats were added.
NS-17015004Additional formats were added.
NS-17016001An unexpected error occurred while adding additional data to the document.
NS-17016002An error occurred while associating the PDF file with the document. Please ensure that the PDF file is properly linked and associated with the corresponding document.
NS-17016003An error occurred during the extraction of the PDF file. Please verify the PDF file integrity and ensure it is compatible with the document extraction process.
NS-17017001An unexpected error occurred while delivering the document to the recipient.
NS-17017002Delivery failed because the recipient party was not set on the document.
NS-17017003Delivery failed due to recipient endpoint identifier with invalid data on the document.
NS-17017004No endpoint was found for recipient endpoint ID.
NS-17017005 Could not find invoice integration mapper for endpoint when delivering document.
NS-17017006Failed to generate the integration format.
NS-17017007Failed to generate the legal format.
NS-17017008 Failed to associate the integration format to the document.
NS-17017009Failed to associate the legal format to the document.
NS-17017010An error occurred while delivering the integration format to the recipient.
NS-17017011An error occurred while adding the destination reference on the delivery transaction.
NS-17018001Skipped delivery as the delivery product was not set.
NS-17018002Document should not be notified by email.
NS-17018003Skipped legal format generation.
NS-17019001An unexpected error occurred while delivering the document to the recipient.
NS-17019002Company name is mandatory and must be provided.
NS-17019003Company country is mandatory and must be provided.
NS-17019004Company tax ID is mandatory and must be provided.
NS-17019005Legal format name is mandatory and must be provided.
NS-17019006Legal format type is mandatory and must be provided.
NS-17019007Legal format full name is mandatory and must be provided.
NS-17019008Integration format is mandatory and must be provided.
NS-17019009Integration format name is mandatory and must be provided.
NS-17019010Integration format type is mandatory and must be provided.
NS-17019011Integration format full name is mandatory and must be provided.
NS-17019012Integration format ID is mandatory and must be provided.
NS-17020001An unexpected error occurred while delivering the document to the recipient.
NS-17020002Partner not found in the communications gateway.
NS-17020003Failed to communicate with the communications gateway.
NS-17020004An unexpected error occurred in the communications gateway.
NS-17021001 An unexpected error occurred while transmitting the transmission format.
NS-17021002The transmission product does not have a compliance services product ID set.
NS-17021003The transmission product does not have transmission format set for invoice.
NS-17021004Could not obtain or generate the transmition format.
NS-17021005Failed to associate the transmission format to the document.
NS-17021006Could not send transmission format to the transmission middleware.
NS-17022001Skipped transmission as the CTC product was not set.
NS-17023001An unexpected error occurred when trying to serialize the Application Response to base64 string.
NS-17024001An unexpected error occurred while archiving the document.
NS-17024002Could not archive document using transmission middleware.
NS-17025001Skipped archiving as the product was not set.
NS-18001001An unexpected error occurred while issuing the lifecycle.
NS-18002001An unexpected error occurred while processing a lifecycle transaction.
NS-18003001Could not find document for lifecycle association.
NS-18004001An unexpected error occurred while associating document to lifecycle.
NS-18004002Error while associating document to lifecycle.
NS-18005001An unexpected error occurred while delivering the lifecycle.
NS-18005002Delivery failed due to recipient endpoint identifier with invalid data on the lifecycle.
NS-18005003No Endpoint was found for recipient endpoint ID.
NS-18005004No communication set for the supported document.
NS-18005005Failed to generate the integration format.
NS-18005006Failed to generate the legal format.
NS-18005007Failed to associate the integration format to the lifecycle.
NS-18005008Failed to associate the legal format to the lifecycle.
NS-18005009An error occurred while delivering the integration format to the recipient.
NS-18005010An error occurred while adding the destination reference on the delivery transaction.
NS-18006001Skipped lifecycle delivery as the delivery product was not set.
NS-18006002Skipped legal format generation as the delivery product was not set for recipient or issuer.
NS-18006003Skipped legal format generation as there is no legal format set for the product.
NS-18007001An unexpected error occurred while delivering the document do the recipient.
NS-18007002Lifecycle must be associated to a document.
NS-18007003Company name is mandatory and must be provided.
NS-18007004Company country is mandatory and must be provided.
NS-18007005Company tax ID is mandatory and must be provided.
NS-18007006The lifecycle status could not be mapped to application response status.
NS-18007007Original format name is mandatory and must be provided.
NS-18007008Original format type is mandatory and must be provided.
NS-18007009Original format full name is mandatory and must be provided.
NS-18007010Integration format is mandatory and must be provided.
NS-18007011Integration format name is mandatory and must be provided.
NS-18007012Integration format type is mandatory and must be provided.
NS-18007013Integration format full name is mandatory and must be provided.
NS-18007014Integration format ID is mandatory and must be provided.
NS-18008001An unexpected error occurred while delivering the document do the recipient.
NS-18008002Partner not found in the communications gateway.
NS-18008003Failed to communicate with the communications gateway.
NS-18008004An unexpected error occurred in the communications gateway.
NS-18008005Error while getting the integration document.
NS-18008006The transaction doesn't have a parent transaction.
NS-18010001An unexpected error occurred while transmitting the transmission format.
NS-18010002The transmission product does not have a compliance services product ID set.
NS-18010003The transmission product does not have transmission format set for lifecycle.
NS-18010004Could not obtain or generate the transmission format.
NS-18010005Failed to associate the transmission format to the lifecycle.
NS-18010006Could not send transmission format to the transmission middleware.
NS-18011001Skipped transmission as the life cycle does not qualify for reporting to the Tax Authority.
NS-18011002Skipped lifecycle transmission as the CTC product was not set.
NS-18012001An unexpected error occurred while updating document.
NS-18013001An unexpected error occurred while mapping to internal format.
NS-18013002The original file was not found on the storage.
NS-18013003No internal format generated from the original document.
NS-18013004Failed to generate the internal format from the original document.
NS-18014001An unexpected error occurred while receiving a lifecycle transaction.