Skip to content
Last updated

Mandates and Peppol electronic addresses

When you register a mandate, the API maps it to a Peppol electronic address — the identifier used to route invoices across the Peppol network. Understanding this mapping is essential to populating your XML invoices correctly.

How the mapping works

All French entities are addressed using Peppol scheme 0225 (FRCTC), defined in AFNOR XP Z12-014 Annex A. The identifier value is derived from the mandate's directory entry fields, following the same four-tier structure as the French PPF/AIFE directory.

Mandate typeDirectory entry fieldsPeppol electronic address
SIRENsiren0225:<siren>
SIREN + suffixsiren + suffix0225:<siren>_<suffix>
SIRETsiren + siret0225:<siret>
SIRET + routing codesiren + siret + routing_identifier0225:<siret>_<routing_identifier>

Examples

Mandate directory entryPeppol electronic address
siren: "884553033"0225:884553033
siren: "884553033", suffix: "Achats"0225:884553033_Achats
siret: "88455303300017"0225:88455303300017
siret: "88455303300017", routing_identifier: "GLN-123"0225:88455303300017_GLN-123

Belgian entities

Belgian entities use scheme 0208 (VAT Registration Number), with the BCE number (10 digits, without the BE prefix):

Directory entryPeppol electronic address
siren: "0878065378" (BE)0208:0878065378

Mandate validation when submitting files

When you call POST /invoicing/files/submit, the API extracts the sender's Peppol electronic address from the invoice XML and checks it against the active mandates of the requesting client (X-PDP-Client-Id).

The check verifies that:

  • The mandate belongs to the requesting client
  • The mandate status is CREATED or ACTIVE
  • start_date ≤ today ≤ end_date (or no end_date)

If no active mandate matches the sender address extracted from the invoice, the request is rejected with a 403 error.

This means the electronic address you set in your invoice XML must exactly match the Peppol address derived from one of your active mandates.


Setting the electronic address in XML invoices

UBL 2.1

In UBL, the electronic address is carried in the EndpointID element of both the supplier and customer party, with a schemeID attribute.

Seller (BT-34) — AccountingSupplierParty:

<cac:AccountingSupplierParty>
  <cac:Party>
    <cbc:EndpointID schemeID="0225">884553033</cbc:EndpointID>
    <!-- ... -->
  </cac:Party>
</cac:AccountingSupplierParty>

Buyer (BT-49) — AccountingCustomerParty:

<cac:AccountingCustomerParty>
  <cac:Party>
    <cbc:EndpointID schemeID="0225">88455303300017</cbc:EndpointID>
    <!-- ... -->
  </cac:Party>
</cac:AccountingCustomerParty>

For a SIREN + suffix mandate:

<cbc:EndpointID schemeID="0225">884553033_Achats</cbc:EndpointID>

For a Belgian entity:

<cbc:EndpointID schemeID="0208">0878065378</cbc:EndpointID>

CII D22B (Cross Industry Invoice)

In CII, the electronic address is carried in URIUniversalCommunication/URIID inside the trade party elements.

Seller — SellerTradeParty:

<ram:SellerTradeParty>
  <ram:URIUniversalCommunication>
    <ram:URIID schemeID="0225">884553033</ram:URIID>
  </ram:URIUniversalCommunication>
  <!-- ... -->
</ram:SellerTradeParty>

Buyer — BuyerTradeParty:

<ram:BuyerTradeParty>
  <ram:URIUniversalCommunication>
    <ram:URIID schemeID="0225">88455303300017</ram:URIID>
  </ram:URIUniversalCommunication>
  <!-- ... -->
</ram:BuyerTradeParty>

Both elements are found under:

rsm:CrossIndustryInvoice
  > rsm:SupplyChainTradeTransaction
    > ram:ApplicableHeaderTradeAgreement
      > ram:SellerTradeParty / ram:BuyerTradeParty
        > ram:URIUniversalCommunication
          > ram:URIID

Quick reference

Mandate typeschemeIDValue formatXML element (UBL)XML element (CII)
SIREN02259-digit SIRENcbc:EndpointIDram:URIID
SIREN + suffix0225<SIREN>_<suffix>cbc:EndpointIDram:URIID
SIRET022514-digit SIRETcbc:EndpointIDram:URIID
SIRET + routing code0225<SIRET>_<routing_code>cbc:EndpointIDram:URIID
Belgian BCE020810-digit BCEcbc:EndpointIDram:URIID