Lorsque vous enregistrez un mandat, l'API le convertit en adresse électronique Peppol — l'identifiant utilisé pour router les factures sur le réseau Peppol. Comprendre ce mapping est indispensable pour renseigner correctement vos factures XML.
Toutes les entités françaises sont adressées via le schéma Peppol 0225 (FRCTC), défini dans l'annexe A de la norme AFNOR XP Z12-014. La valeur de l'identifiant est dérivée des champs de l'entrée d'annuaire du mandat, selon la même structure à quatre niveaux que l'annuaire PPF/AIFE.
| Type de mandat | Champs de l'entrée d'annuaire | Adresse électronique Peppol |
|---|---|---|
| SIREN | siren | 0225:<siren> |
| SIREN + suffixe | siren + suffix | 0225:<siren>_<suffixe> |
| SIRET | siren + siret | 0225:<siret> |
| SIRET + code de routage | siren + siret + routing_identifier | 0225:<siret>_<code_routage> |
| Entrée d'annuaire du mandat | Adresse électronique Peppol |
|---|---|
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 |
Les entités belges utilisent le schéma 0208 (numéro de TVA), avec le numéro BCE (10 chiffres, sans le préfixe BE) :
| Entrée d'annuaire | Adresse électronique Peppol |
|---|---|
siren: "0878065378" (BE) | 0208:0878065378 |
Lors de l'appel à POST /invoicing/files/submit, l'API extrait l'adresse électronique Peppol de l'émetteur depuis la facture XML et la compare aux mandats actifs du client demandeur (X-PDP-Client-Id).
La vérification contrôle que :
- Le mandat appartient au client demandeur
- Le statut du mandat est
CREATEDouACTIVE start_date≤ aujourd'hui ≤end_date(ou pas deend_date)
Si aucun mandat actif ne correspond à l'adresse émetteur extraite de la facture, la requête est rejetée avec une erreur 403.
Cela signifie que l'adresse électronique renseignée dans votre facture XML doit correspondre exactement à l'adresse Peppol dérivée d'un de vos mandats actifs.
En UBL, l'adresse électronique est portée par l'élément EndpointID dans les parties fournisseur et client, avec un attribut schemeID.
Vendeur (BT-34) — AccountingSupplierParty :
<cac:AccountingSupplierParty>
<cac:Party>
<cbc:EndpointID schemeID="0225">884553033</cbc:EndpointID>
<!-- ... -->
</cac:Party>
</cac:AccountingSupplierParty>Acheteur (BT-49) — AccountingCustomerParty :
<cac:AccountingCustomerParty>
<cac:Party>
<cbc:EndpointID schemeID="0225">88455303300017</cbc:EndpointID>
<!-- ... -->
</cac:Party>
</cac:AccountingCustomerParty>Pour un mandat SIREN + suffixe :
<cbc:EndpointID schemeID="0225">884553033_Achats</cbc:EndpointID>Pour une entité belge :
<cbc:EndpointID schemeID="0208">0878065378</cbc:EndpointID>En CII, l'adresse électronique est portée par URIUniversalCommunication/URIID dans les éléments de partie commerciale.
Vendeur — SellerTradeParty :
<ram:SellerTradeParty>
<ram:URIUniversalCommunication>
<ram:URIID schemeID="0225">884553033</ram:URIID>
</ram:URIUniversalCommunication>
<!-- ... -->
</ram:SellerTradeParty>Acheteur — BuyerTradeParty :
<ram:BuyerTradeParty>
<ram:URIUniversalCommunication>
<ram:URIID schemeID="0225">88455303300017</ram:URIID>
</ram:URIUniversalCommunication>
<!-- ... -->
</ram:BuyerTradeParty>Ces éléments se trouvent sous :
rsm:CrossIndustryInvoice
> rsm:SupplyChainTradeTransaction
> ram:ApplicableHeaderTradeAgreement
> ram:SellerTradeParty / ram:BuyerTradeParty
> ram:URIUniversalCommunication
> ram:URIID| Type de mandat | schemeID | Format de la valeur | Élément XML (UBL) | Élément XML (CII) |
|---|---|---|---|---|
| SIREN | 0225 | SIREN 9 chiffres | cbc:EndpointID | ram:URIID |
| SIREN + suffixe | 0225 | <SIREN>_<suffixe> | cbc:EndpointID | ram:URIID |
| SIRET | 0225 | SIRET 14 chiffres | cbc:EndpointID | ram:URIID |
| SIRET + code de routage | 0225 | <SIRET>_<code_routage> | cbc:EndpointID | ram:URIID |
| BCE belge | 0208 | BCE 10 chiffres | cbc:EndpointID | ram:URIID |
Comment fonctionne le mapping