Sovos Docs

Invoice body

Create the invoice body, which contains the invoice XML embedded inside a Standard Business Document (SBD).

Sovos accepts France invoices in the following formats: SCI (covered in this article), UBL 2.1, CII (UN/CEFACT D22B), and Factur-X. SCI is Sovos's cross-market input format. SCI follows UBL 2.1 structure, and Sovos transforms it into the required legal format before transmission. For native UBL, CII, and Factur-X, refer to the authoritative schema definitions in the PPF external specifications at https://www.impots.gouv.fr/specifications-externes-b2b.

For the SBD wrapper and SBDH structure, see Create a Standard Business Document.

SBDH values

When submitting an invoice, use these values alongside the standard SBDH configuration in Create a Standard Business Document.

ElementValue
Receiver.IdentifierThe buyer's electronic billing address (adresse de facturation électronique) as registered in thePPF Annuaire. Takes the form of the buyer's SIREN, SIREN_SIRET, or SIREN_suffix. Set Authority="FR" on the element.
DocumentIdentification.Standardurn:oasis:names:specification:ubl:schema:xsd:Invoice-2
DocumentIdentification.TypeVersion2.1
DocumentIdentification.TypeInvoice
Scope: BusinessService.BusinessServiceNameDefault
Scope: BusinessCategoryB2B
Scope: Mapping.InputSchemaThe file format — see table below.

InputSchema values

Set Scope: Mapping.InputSchema to one of the following values depending on the file format you are submitting:

Submission typeInputSchema value
Invoice (SCI)FR-SCI-1.0-INVOICE-1.0
Invoice (UBL EN16931 France CIUS)FR-CIUSUBL-1.0-INVOICE-1.0
Invoice (UBL EXTENDED-CTC-FR)FR-CIUSUBLEXTENDED-1.0-INVOICE-1.0
Invoice (CII UN/CEFACT France CIUS)FR-CIUSCII-1.0-INVOICE-1.0
Invoice (CII EXTENDED-CTC-FR)FR-CIUSCIIEXTENDED-1.0-INVOICE-1.0
Invoice (Factur-X)FR-FACTURX-1.06-INVOICE-1.0
Invoice (Factur-X Basic)FR-FACTURXBASIC-1.06-INVOICE-1.0
Invoice (Factur-X Basic WL)FR-FACTURXBASICWL-1.06-INVOICE-1.0
Invoice (Factur-X Extended)FR-FACTURXEXTENDED-1.06-INVOICE-1.0
Invoice (Factur-X Minimum)FR-FACTURXMINIMUM-1.06-INVOICE-1.0

Embedding the invoice

How you embed the invoice depends on the format. For SCI format, the invoice XML goes directly inside <svs:SovosCanonicalInvoice>. For all other formats (UBL, CII, Factur-X), the document is Base64-encoded and placed in <svs:SovosLegalDocument>:

SCI format:

<svs:SovosDocument>
  <svs:SovosCanonicalInvoice>
    <Invoice>
      <!-- Invoice XML here -->
    </Invoice>
  </svs:SovosCanonicalInvoice>
</svs:SovosDocument>

All other formats (UBL, CII, Factur-X):

<svs:SovosDocument>
  <svs:SovosLegalDocument>
    <enc:Base64Document>
      <enc:EmbeddedDocument id="[INV-2026-001]"
                           fileName="invoice.xml"
                           mimeCode="application/xml">
        [Base64-encoded invoice XML]
      </enc:EmbeddedDocument>
    </enc:Base64Document>
  </svs:SovosLegalDocument>
</svs:SovosDocument>

Invoice schema

A UBL invoice opens with namespace declarations on the root <Invoice> element, followed by header fields, party blocks, tax totals, monetary totals, and one or more invoice lines.

The cbc: prefix marks simple values (text, dates, codes, amounts). The cac: prefix marks structured blocks (parties, addresses, line items). Both are defined by the namespace declarations and are required for the document to be valid.

<?xml version="1.0" encoding="UTF-8"?>
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
  xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
  xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">

  <cbc:CustomizationID>urn:cen.eu:en16931:2017</cbc:CustomizationID>
  <cbc:ProfileID>B1</cbc:ProfileID>
  <cbc:ID>INV-2026-001</cbc:ID>
  <cbc:IssueDate>2026-05-01</cbc:IssueDate>
  <cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
  <cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>

  <cac:AccountingSupplierParty>...</cac:AccountingSupplierParty>
  <cac:AccountingCustomerParty>...</cac:AccountingCustomerParty>
  <cac:TaxTotal>...</cac:TaxTotal>
  <cac:LegalMonetaryTotal>...</cac:LegalMonetaryTotal>
  <cac:InvoiceLine>...</cac:InvoiceLine>

</Invoice>

Header fields

SCI / UBL pathElementCardinalityDescription
Invoice/CustomizationID<cbc:CustomizationID>1..1Profile identifier.
Invoice/ProfileID<cbc:ProfileID>0..1Invoicing framework (cadre de facturation). Required for France — see France-specific fields below.
Invoice/ID<cbc:ID>1..1Invoice number.
Invoice/IssueDate<cbc:IssueDate>1..1Invoice date. Format: YYYY-MM-DD.
Invoice/InvoiceTypeCode<cbc:InvoiceTypeCode>1..1Invoice type code.
Invoice/DocumentCurrencyCode<cbc:DocumentCurrencyCode>1..1Invoice currency. ISO 4217, e.g. EUR.
Invoice/TaxCurrencyCode<cbc:TaxCurrencyCode>0..1VAT accounting currency. Required when invoice currency is not EUR.
Invoice/TaxPointDate<cbc:TaxPointDate>0..1Date VAT becomes chargeable.
Invoice/DueDate<cbc:DueDate>0..1Payment due date.
Invoice/Note<cbc:Note>0..nFree-text note. In France, notes use subject codes — see France-specific fields below.
Invoice/BuyerReference<cbc:BuyerReference>0..1Buyer's internal routing reference.
Validation
  • CustomizationID — Use urn:cen.eu:en16931:2017 for the EN16931 profile.

  • ID (invoice number) — Must be unique. The PPF performs a blocking check across the combination of invoice number + issue year + seller SIREN. A match on all three is rejected. Numbers must follow sequential numbering rules per BOFIP BOI-TVA-DECLA-30-20-20-10 (BR-FR-CO-02).

  • IssueDate — Must not be a future date (BR-FR-CO-01).

  • InvoiceTypeCode — Must be one of the reform-approved codes. Common values: 380 (standard), 381 (credit note), 384 (corrective), 386 (down payment), 389 (self-billed). Full list in AFNOR XP Z12-012.

Seller block

<cac:AccountingSupplierParty>

<cac:AccountingSupplierParty>
  <cac:Party>
    <cbc:EndpointID schemeID="0225">123456789</cbc:EndpointID>
    <cac:PartyIdentification>
      <cbc:ID schemeID="0009">12345678900012</cbc:ID>  <!-- SIRET, optional -->
    </cac:PartyIdentification>
    <cac:PartyName>
      <cbc:Name>Acme SAS</cbc:Name>
    </cac:PartyName>
    <cac:PostalAddress>
      <cbc:StreetName>12 rue de la Paix</cbc:StreetName>
      <cbc:CityName>Paris</cbc:CityName>
      <cbc:PostalZone>75001</cbc:PostalZone>
      <cac:Country>
        <cbc:IdentificationCode>FR</cbc:IdentificationCode>
      </cac:Country>
    </cac:PostalAddress>
    <cac:PartyTaxScheme>
      <cbc:CompanyID>FR40123456789</cbc:CompanyID>
      <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
    </cac:PartyTaxScheme>
    <cac:PartyLegalEntity>
      <cbc:RegistrationName>Acme SAS</cbc:RegistrationName>
      <cbc:CompanyID schemeID="0002">123456789</cbc:CompanyID>
    </cac:PartyLegalEntity>
  </cac:Party>
</cac:AccountingSupplierParty>
Seller block fieldsElementCardinalityDescription
Invoice/AccountingSupplierParty/Party/EndPointID<cbc:EndpointID schemeID="0225">0..1Seller's electronic routing address.
Invoice/AccountingSupplierParty/Party/PartyLegalEntity/CompanyID<cbc:CompanyID schemeID="0002">0..1Seller's SIREN.
Invoice/AccountingSupplierParty/Party/PartyLegalEntity/RegistrationName<cbc:RegistrationName>1..1Seller's registered company name.
Invoice/AccountingSupplierParty/Party/PartyName/Name<cbc:Name> in <cac:PartyName>0..1Seller's trading name.
Invoice/AccountingSupplierParty/Party/PartyTaxScheme/CompanyID<cbc:CompanyID> in <cac:PartyTaxScheme>0..1Seller's VAT number, e.g. FR40123456789.
Invoice/AccountingSupplierParty/Party/PartyIdentification/ID<cbc:ID schemeID="0009">0..nSeller's SIRET (optional).
Invoice/AccountingSupplierParty/Party/PostalAddress<cac:PostalAddress>1..1Seller's postal address.
Invoice/AccountingSupplierParty/Party/PostalAddress/Country/IdentificationCode<cbc:IdentificationCode>1..1Seller's country code. ISO 3166, e.g. FR.
Validation
  • EndPointID — Required for France e-invoicing. Must begin with the seller's SIREN, e.g. 123456789 or 123456789_site1. schemeID must be 0225. Alphanumeric characters plus -, _, . only. Max 125 characters (BR-FR-13, BR-FR-23, BR-FR-25).

  • PartyLegalEntity/CompanyID — Required for France. Exactly 9 digits. Must be registered and active in the PPF Annuaire. schemeID must be 0002 (BR-FR-10).

  • PartyIdentification/ID (SIRET) — If provided, must be exactly 14 digits. schemeID must be 0009. First 9 digits must match the seller's SIREN (BR-FR-09).

Buyer block

<cac:AccountingCustomerParty>

<cac:AccountingCustomerParty>
  <cac:Party>
    <cbc:EndpointID schemeID="0225">987654321</cbc:EndpointID>
    <cac:PartyLegalEntity>
      <cbc:RegistrationName>Buyer Corp SAS</cbc:RegistrationName>
      <cbc:CompanyID schemeID="0002">987654321</cbc:CompanyID>
    </cac:PartyLegalEntity>
    <cac:PostalAddress>
      <cbc:CityName>Lyon</cbc:CityName>
      <cbc:PostalZone>69001</cbc:PostalZone>
      <cac:Country>
        <cbc:IdentificationCode>FR</cbc:IdentificationCode>
      </cac:Country>
    </cac:PostalAddress>
  </cac:Party>
</cac:AccountingCustomerParty>
Buyer block fieldsElementCardinalityDescription
Invoice/AccountingCustomerParty/Party/EndpointID<cbc:EndpointID schemeID="0225">0..1Buyer's electronic routing address.
Invoice/AccountingCustomerParty/Party/PartyLegalEntity/CompanyID<cbc:CompanyID schemeID="0002">0..1Buyer's SIREN.
Invoice/AccountingCustomerParty/Party/PartyLegalEntity/RegistrationName<cbc:RegistrationName>1..1Buyer's registered company name.
Invoice/AccountingCustomerParty/Party/PartyTaxScheme/CompanyID<cbc:CompanyID> in <cac:PartyTaxScheme>0..1Buyer's VAT number.
Invoice/AccountingCustomerParty/Party/PostalAddress<cac:PostalAddress>1..1Buyer's postal address.
Invoice/AccountingCustomerParty/Party/PostalAddress/Country/IdentificationCode<cbc:IdentificationCode>1..1Buyer's country code. ISO 3166.
Validation
  • EndpointID — Required for France e-invoicing. Sovos queries the PPF directory with this value to route the invoice to the buyer's PDP. Must begin with the buyer's SIREN. schemeID must be 0225. Alphanumeric characters plus -, _, . only. Max 125 characters. If not found or not active in the PPF directory, the invoice is rejected (BR-FR-12, BR-FR-21, BR-FR-23, BR-FR-25).

  • PartyLegalEntity/CompanyID — Required for France e-invoicing scope. Exactly 9 digits. Must be active in the PPF Annuaire. schemeID must be 0002 (BR-FR-11)

Tax total

<cac:TaxTotal>

<cac:TaxTotal>
  <cbc:TaxAmount currencyID="EUR">200.00</cbc:TaxAmount>
  <cac:TaxSubtotal>
    <cbc:TaxableAmount currencyID="EUR">1000.00</cbc:TaxableAmount>
    <cbc:TaxAmount currencyID="EUR">200.00</cbc:TaxAmount>
    <cac:TaxCategory>
      <cbc:ID>S</cbc:ID>
      <cbc:Percent>20</cbc:Percent>
      <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
    </cac:TaxCategory>
  </cac:TaxSubtotal>
</cac:TaxTotal>
Tax total fieldsElementCardinalityDescription
Invoice/TaxTotal/TaxAmount<cbc:TaxAmount currencyID="...">1..1Total VAT amount for the invoice.
Invoice/TaxTotal/TaxSubtotal/TaxableAmount<cbc:TaxableAmount>1..1Tax base amount for this VAT category.
Invoice/TaxTotal/TaxSubtotal/TaxAmount<cbc:TaxAmount>1..1VAT amount for this category.
Invoice/TaxTotal/TaxSubtotal/TaxCategory/ID<cbc:ID> in <cac:TaxCategory>1..1VAT category code.
Invoice/TaxTotal/TaxSubtotal/TaxCategory/Percent<cbc:Percent>0..1VAT rate. Omit for exempt categories.
Validation
  • All amount fields (TaxAmount, TaxableAmount) — Max 19 digits total, max 2 decimal places. Use . as the decimal separator. A - sign counts as one character (BR-FR-DEC-01).

  • TaxCategory/ID — France accepts only: S (standard), E (exempt), AE (reverse charge), K (intra-community), G (export), O (out of scope), Z (zero rate) (BR-FR-15).

  • TaxCategory/Percent — Express as a percentage, e.g. 20 not 0.20. Must be a France-permitted rate. Most common: 0, 2.1, 5.5, 10, 20. Full list in AFNOR XP Z12-012 (BR-FR-16).

Monetary totals

<cac:LegalMonetaryTotal>

<cac:LegalMonetaryTotal>
  <cbc:LineExtensionAmount currencyID="EUR">1000.00</cbc:LineExtensionAmount>
  <cbc:TaxExclusiveAmount currencyID="EUR">1000.00</cbc:TaxExclusiveAmount>
  <cbc:TaxInclusiveAmount currencyID="EUR">1200.00</cbc:TaxInclusiveAmount>
  <cbc:PayableAmount currencyID="EUR">1200.00</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
Monetary totals fieldsElementCardinalityDescription
Invoice/LegalMonetaryTotal/LineExtensionAmount<cbc:LineExtensionAmount>1..1Sum of net line amounts.
Invoice/LegalMonetaryTotal/TaxExclusiveAmount<cbc:TaxExclusiveAmount>1..1Total amount excluding VAT.
Invoice/LegalMonetaryTotal/TaxInclusiveAmount<cbc:TaxInclusiveAmount>1..1Total amount including VAT.
Invoice/LegalMonetaryTotal/PayableAmount<cbc:PayableAmount>1..1Amount due for payment.
Invoice/LegalMonetaryTotal/PrepaidAmount<cbc:PrepaidAmount>0..1Amount already paid, e.g. for pre-paid card invoices.
Validation

All amount fields — Max 19 digits total, max 2 decimal places. Use . as the decimal separator (BR-FR-DEC-01).

Invoice lines

<cac:InvoiceLine>

<cac:InvoiceLine>
  <cbc:ID>1</cbc:ID>
  <cbc:InvoicedQuantity unitCode="C62">10</cbc:InvoicedQuantity>
  <cbc:LineExtensionAmount currencyID="EUR">1000.00</cbc:LineExtensionAmount>
  <cac:Item>
    <cbc:Name>Consulting</cbc:Name>
    <cbc:Description>Q1 consulting services</cbc:Description>
    <cac:ClassifiedTaxCategory>
      <cbc:ID>S</cbc:ID>
      <cbc:Percent>20</cbc:Percent>
      <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
    </cac:ClassifiedTaxCategory>
  </cac:Item>
  <cac:Price>
    <cbc:PriceAmount currencyID="EUR">100.00</cbc:PriceAmount>
  </cac:Price>
</cac:InvoiceLine>
Invoice line fieldsElementCardinalityDescription
Invoice/InvoiceLine/ID<cbc:ID>1..1Line identifier.
Invoice/InvoiceLine/InvoicedQuantity<cbc:InvoicedQuantity unitCode="...">0..1Quantity with unit code (UN/ECE Rec 20), e.g. C62 for units.
Invoice/InvoiceLine/LineExtensionAmount<cbc:LineExtensionAmount>1..1Net line amount (quantity × unit price, net of line discounts).
Invoice/InvoiceLine/Item/Name<cbc:Name> in <cac:Item>1..1Line item name.
Invoice/InvoiceLine/Item/Description<cbc:Description> in <cac:Item>0..nLine item description.
Invoice/InvoiceLine/Item/ClassifiedTaxCategory/ID<cbc:ID> in <cac:ClassifiedTaxCategory>1..1VAT category code for this line.
Invoice/InvoiceLine/Item/ClassifiedTaxCategory/Percent<cbc:Percent>0..1VAT rate for this line.
Invoice/InvoiceLine/Price/PriceAmount<cbc:PriceAmount>1..1Unit price excluding VAT.
Validation
  • ID — Must be unique within the invoice.

  • InvoicedQuantity — Max 19 digits total, max 4 decimal places (BR-FR-DEC-02).

  • LineExtensionAmount — Max 19 digits total, max 2 decimal places (BR-FR-DEC-01).

  • ClassifiedTaxCategory/ID — Same allowed values as the header tax block: S, E, AE, K, G, O, Z (BR-FR-15).

  • ClassifiedTaxCategory/Percent — Must be a France-permitted rate (BR-FR-16).

Payment means

<cac:PaymentMeans>

<cac:PaymentMeans>
<cbc:PaymentMeansCode name="Virement">30</cbc:PaymentMeansCode>
<cbc:PaymentID>200000008_UC4_2023001</cbc:PaymentID>
<cac:PayeeFinancialAccount>
	<cbc:ID>FR76 1254 2547 2569 8542 5874 660</cbc:ID>
	<cbc:Name>Nom de compte de paiement</cbc:Name>
	<cac:FinancialInstitutionBranch>
		<cbc:ID>BICBANQUE</cbc:ID>
	</cac:FinancialInstitutionBranch>
</cac:PayeeFinancialAccount>
</cac:PaymentMeans>
Payment means fieldsElementCardinalityDescription
Invoice/PaymentMeans/PaymentMeansCode<cbc:PaymentMeansCode>1..1Payment method type code. UNTDID 4461 code list.
Invoice/PaymentMeans/PaymentID<cbc:PaymentID>0..1Payment reference note, e.g. a remittance reference or invoice number repeated for reconciliation.
Invoice/PaymentMeans/PayeeFinancialAccount<cac:PayeeFinancialAccount>0..1Payee's financial account. Required when PaymentMeansCode indicates credit transfer (e.g. 30, 58).
Invoice/PaymentMeans/PayeeFinancialAccount/ID<cbc:ID> in <cac:PayeeFinancialAccount>1..1Payment account identifier, e.g. IBAN.
Invoice/PaymentMeans/PayeeFinancialAccount/Name<cbc:Name> in <cac:PayeeFinancialAccount>0..1Payment account name, e.g. the account holder's name.
Invoice/PaymentMeans/PayeeFinancialAccount/FinancialInstitutionBranch<cac:FinancialInstitutionBranch>0..1Payee's financial institution branch. Contains the BIC/SWIFT identifier of the bank.
Invoice/PaymentMeans/PayeeFinancialAccount/FinancialInstitutionBranch/ID<cbc:ID> in <cac:FinancialInstitutionBranch>0..1Payment service provider identifier, e.g. BIC/SWIFT code.
Validation
  • PaymentMeansCode — Required when the <cac:PaymentMeans> block is present. Use UNTDID 4461 codes. Common values for France: 30 (credit transfer), 49 (direct debit), 57 (standing agreement), 58 (SEPA credit transfer).

  • PayeeFinancialAccount/ID — Use IBAN format for SEPA payments, e.g. FR7612345678901234567890189.

  • FinancialInstitutionBranch/ID — Use BIC/SWIFT format when provided, e.g. BNPAFRPPXXX.

Additional document reference

<cac:AdditionalDocumentReference>

Use <cac:AdditionalDocumentReference> to attach supporting documents to an invoice, such as a PDF visual representation. The block repeats — include one instance per attachment. Under the France e-invoicing mandate, the structured XML is the legally valid invoice. The DGFiP treats any embedded PDF as a visual representation only — it has no legal standing.

<cac:AdditionalDocumentReference>
  <cbc:ID schemeID="[UNTDID-1153-code]">INV-2026-001-attachment</cbc:ID>
  <cbc:DocumentTypeCode>[document-type-code]</cbc:DocumentTypeCode>
  <cbc:DocumentDescription>Invoice PDF representation</cbc:DocumentDescription>
  <cac:Attachment>
    <cbc:EmbeddedDocumentBinaryObject
        mimeCode="application/pdf"
        filename="INV-2026-001.pdf">
      JVBERi0xLjQKJ...
    </cbc:EmbeddedDocumentBinaryObject>
  </cac:Attachment>
</cac:AdditionalDocumentReference>
Additional document reference fieldsElementCardinalityDescription
Invoice/AdditionalDocumentReference<cac:AdditionalDocumentReference>0..nAdditional supporting documents block. Repeatable — include one instance per attachment.
Invoice/AdditionalDocumentReference/ID<cbc:ID>0..1Supporting document reference identifier, or invoiced object identifier.
Invoice/AdditionalDocumentReference/ID @schemeIDschemeID attribute1..1Scheme identifier for the document reference. UNTDID 1153 code list. Required when ID is present.
Invoice/AdditionalDocumentReference/DocumentTypeCode<cbc:DocumentTypeCode>0..1Type of the referenced document, expressed as a code. See the DGFiP external specifications for permitted values.
Invoice/AdditionalDocumentReference/DocumentDescription<cbc:DocumentDescription>0..1Supporting document description, for example a short label identifying the attachment.
Invoice/AdditionalDocumentReference/Attachment/EmbeddedDocumentBinaryObject<cbc:EmbeddedDocumentBinaryObject>0..1The attachment content, Base64-encoded. Use for embedded binary files such as PDFs.
Invoice/AdditionalDocumentReference/Attachment/EmbeddedDocumentBinaryObject @mimeCodemimeCode attribute1..1MIME type of the attachment. Required when EmbeddedDocumentBinaryObject is present.
Invoice/AdditionalDocumentReference/Attachment/EmbeddedDocumentBinaryObject @filenamefilename attribute1..1File name of the attachment, including the extension, for example INV-2026-001.pdf. Required when EmbeddedDocumentBinaryObject is present.
Invoice/AdditionalDocumentReference/Attachment/ExternalReference/URI<cbc:URI> in <cac:ExternalReference>0..1URI pointing to an externally hosted document. Use as an alternative to EmbeddedDocumentBinaryObject when the attachment is not embedded in the XML.
Validation
  • EmbeddedDocumentBinaryObject and ExternalReference/URI are mutually exclusive within a single <cac:Attachment> — use one or the other, not both.

  • mimeCode and filename — Both attributes are required when EmbeddedDocumentBinaryObject is present. Permitted MIME types: application/pdf, image/png, image/jpeg, text/csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.oasis.opendocument.spreadsheet.

  • ID — Max 50 characters (supporting document reference) or 100 characters (invoiced object identifier).

  • ID @schemeID — Max three characters.

  • DocumentDescription — Max 100 characters.

  • @mimeCode — Max 100 characters.

  • @filename — Max 100 characters.

  • ExternalReference/URI — Max 100 characters.

France-specific fields

These elements use standard UBL structure but carry France-specific values required by the reform.

ProfileID — invoicing framework

<cbc:ProfileID> declares the invoicing context. Required for France.

CodeDescription
B1Goods invoice
S1Services invoice
M1Mixed goods and services
B2Goods invoice — already paid
S2Services invoice — already paid
B4 / S4 / M4Final invoice after down payment
S5Subcontractor services invoice
S6Co-contractor services invoice
B7 / S7Invoice already subject to e-reporting
Note — subject-coded notes

<cbc:Note> elements carry structured information when prefixed with a subject code separated by #:

<cbc:Note>#BAR#B2B</cbc:Note>
<cbc:Note>#PMT#Payment by bank transfer to IBAN FR76...</cbc:Note>
<cbc:Note>#AAI#General invoice footer information</cbc:Note>
Subject codePurpose
BARTreatment scope: B2B (e-invoicing), B2BINT (cross-border B2B e-reporting), B2C (B2C e-reporting), OUTOFSCOPE.
PMTPayment instructions.
PMDPayment method description.
AAIGeneral information, e.g. invoice footer text.
AABPayment terms.
SURSeller remarks.
ABLLegal information, e.g. trade register number.
Corrective invoices and credit notes
  • If InvoiceTypeCode is a corrective type (384 and variants), exactly one prior invoice reference and its issue date must be present at header level (BR-FR-CO-04)

  • If InvoiceTypeCode is a credit note (381 and variants), at least one prior invoice reference must be present at header level, or a line-level reference must appear in every invoice line (BR-FR-CO-05)

Complete SBD example

The sample files below are complete, production-ready SBD payloads in the exact format required for POST /v1/documents. Each contains a full SBDH wrapper with the invoice XML Base64-encoded inside <enc:EmbeddedDocument>.

To inspect the invoice XML: decode the Base64 content from <enc:EmbeddedDocument> to view the full structure including all parties, tax totals, and line items. Your own payloads must also Base64-encode the invoice XML before embedding.

Download sample — standard goods invoice (B1)

Download sample — services invoice (S1)