Trouver et enregistrer les identifiants Peppol de vos clients dans Stripe
Par evoicely · Dernière vérification le 21 octobre 2026
Un identifiant de participant Peppol se compose d'un code de schéma et d'un identifiant, par exemple 0208:0765432146 : le schéma 0208 (le numéro d'entreprise belge), suivi du numéro lui-même.
Pour une société belge, vous n'avez presque jamais besoin de le demander. Le numéro d'entreprise est le numéro de TVA de la société sans le BE, et les prestataires Peppol belges doivent enregistrer leurs clients sous ce numéro.
Pour les autres, vous cherchez l'identifiant dans le Peppol Directory ou par une recherche SMP, ou vous le demandez au client.
Stripe n'a pas de champ prévu pour cela : conservez le numéro de TVA dans les tax_ids du Customer et tout le reste dans ses metadata.
Cette page couvre le format, les recherches, le cas belge, Stripe et les erreurs que détectent les règles officielles Peppol.
Ce qu'est un identifiant de participant Peppol
Chaque émetteur et chaque destinataire sur Peppol est adressé par un identifiant de participant. Il comporte deux parties : un schéma d'identification issu de la liste de codes EAS (Electronic Address Scheme) de Peppol, et la valeur attribuée dans ce schéma (Peppol Policy for use of Identifiers 4.4.0, points 3 et 4, en anglais). Vous le verrez écrit de trois façons :
0208:0765432146: le schéma et la valeur, la forme qu'acceptent la plupart des points d'accès et leurs API.iso6523-actorid-upis::0208:0765432146: la forme complète, précédée du « méta-schéma » fixe de Peppol. L'API du Peppol Directory et les recherches SMP l'utilisent (point 5).<cbc:EndpointID schemeID="0208">0765432146</cbc:EndpointID>: dans la facture elle-même, comme adresse électronique du vendeur (BT-34) et de l'acheteur (BT-49). Les règles Peppol BIS exigent les deux (PEPPOL-EN16931-R020 et R010).
La valeur ne tient pas compte de la casse (point 2 : 0088:abc désigne le même participant que 0088:ABc), mais le schéma n'est pas interchangeable : les mêmes chiffres sous un autre schéma désignent un autre participant.
Une société peut être enregistrée sous plusieurs identifiants, par exemple son numéro d'entreprise et son numéro de TVA.
Schémas courants
La liste EAS compte bien plus d'une centaine d'entrées. Voici celles qu'un vendeur Stripe en Belgique ou aux Pays-Bas a le plus de chances de rencontrer. Les noms viennent de la liste de codes EAS de Peppol, les contrôles de format des règles Peppol BIS Billing 3.0 (en anglais) :
| Schéma | Identifiant | Format contrôlé par les règles Peppol |
|---|---|---|
0208 | Numéro d'entreprise belge (BCE/KBO) | 10 chiffres, sans points ni BE ; les deux derniers sont un contrôle modulo 97 des huit premiers (PEPPOL-COMMON-R043) |
9925 | Numéro de TVA belge | Pas de règle de format propre dans Peppol BIS |
0088 | Global Location Number (GLN) | Un GLN GS1 valide (PEPPOL-COMMON-R040) |
0106 | Numéro de la Chambre de commerce néerlandaise (KVK) | 8 chiffres (PEPPOL-COMMON-R054, un avertissement) |
0190 | Numéro d'identification des organisations néerlandaises (OIN) | 20 chiffres (PEPPOL-COMMON-R055, un avertissement) |
9944 | Numéro de TVA néerlandais | Du type NL123456789B12 (PEPPOL-COMMON-R056-1, un avertissement) |
Un schéma absent de la liste échoue à la règle PEPPOL-EN16931-CL008. L'e-mail (EM) n'y figure pas : une adresse e-mail ne peut donc pas servir d'adresse Peppol.
Clients belges : l'identifiant est dans le numéro de TVA
Depuis le 1er janvier 2026, les entreprises belges assujetties à la TVA doivent échanger entre elles des factures électroniques structurées, envoyées via Peppol (efacture.belgium.be, SPF Finances). Qui est concerné : voir L'obligation Peppol en Belgique pour les entreprises qui facturent avec Stripe. Trouver l'identifiant de l'acheteur est la partie facile :
- Toute entreprise belge a un numéro d'entreprise à 10 chiffres attribué par la Banque-Carrefour des Entreprises (BCE), et son numéro de TVA est ce même numéro précédé de
BE(business.belgium.be, en anglais). Ainsi,BE0765.432.146donne le numéro d'entreprise0765432146. - Les enregistrements Peppol belges l'utilisent. Le SPF Finances indique qu'une société belge doit être enregistrée au moins une fois sous son numéro d'entreprise (schéma
0208), que les prestataires de services y sont contractuellement tenus, et que cela vous évite de devoir demander leur identifiant Peppol à tous vos clients. Vous pouvez toujours envoyer au numéro d'entreprise ; les autres identifiants (numéro de TVA, GLN, DUNS, etc.) ne sont utilisés que si les deux parties en conviennent (SPF Finances : Qu'est-ce qu'un ID Peppol ?). - Inutile donc de le demander. À la question « Dois-je demander un ID Peppol à mes clients ? », le SPF Finances répond : « Non. » (FAQ B2B, question 15).
Éviter les erreurs
La plupart des adresses belges qui échouent sont des erreurs de format. Nous avons soumis ces variantes aux règles Peppol BIS Billing 3.0 qu'utilise notre validateur gratuit, sur une facture par ailleurs valide :
cbc:EndpointID de l'acheteur | Résultat |
|---|---|
schemeID="0208" 1111111145 | Valide |
schemeID="0208" 0111.111.124 | PEPPOL-COMMON-R043 : les points font partie de la façon d'écrire le numéro, pas de l'identifiant |
schemeID="0208" BE1111111145 | PEPPOL-COMMON-R043 : le BE appartient au numéro de TVA, pas au numéro d'entreprise |
schemeID="0208" 1111111146 | PEPPOL-COMMON-R043 : les chiffres de contrôle ne correspondent pas |
schemeID="9925" BE1111111145 | Valide, mais n'atteint l'acheteur que s'il a aussi enregistré cet identifiant |
schemeID="BE:EN" 1111111145 | BR-CL-25 et PEPPOL-EN16931-CL008 : ce n'est pas un schéma de la liste EAS |
Les numéros d'entreprise de ces exemples sont fictifs ; ils passent seulement le contrôle. Ce contrôle est simple : les deux derniers chiffres doivent être égaux à 97 moins le reste de la division des huit premiers par 97, c'est ainsi que la règle Peppol le calcule.
Les documents plus anciens écrivent le numéro d'entreprise sur 9 chiffres (sans le 0 initial) ; complétez-le à 10 chiffres avant de l'utiliser. N'utilisez pas l'exemple de format de Stripe, BE0123456789, comme donnée de test pour Peppol : ses chiffres de contrôle ne sont pas bons.
Dans le code, dériver l'identifiant d'un numéro de TVA belge tient en quelques lignes :
import re
def be_peppol_id(vat: str) -> str | None:
"""'BE 0765.432.146' -> '0208:0765432146', or None if it isn't a valid Belgian number."""
digits = re.sub(r"[\s.\-]", "", vat.upper()).removeprefix("BE")
if len(digits) == 9: # old 9-digit form
digits = "0" + digits
if not re.fullmatch(r"\d{10}", digits) or 97 - int(digits[:8]) % 97 != int(digits[8:]):
return None
return "0208:" + digits
Un numéro valide ne signifie pas que la société est déjà sur Peppol. Vérifiez-le avant l'envoi, comme expliqué ci-dessous.
Comment trouver un identifiant Peppol
Le Peppol Directory
Le Peppol Directory est le moteur de recherche d'OpenPeppol sur les « cartes de visite » (business cards) que publient les SMP Peppol. Vous pouvez y chercher par nom ou par identifiant, filtrer par pays, ou l'interroger depuis votre code. Deux limites comptent (Peppol Directory : introduction, en anglais) :
- L'inscription est facultative. Une société absente du Directory peut tout de même être sur Peppol. Une société qui y figure est un participant Peppol.
- Seuls les destinataires y figurent. Le Directory montre qui peut recevoir des documents, et c'est ce qu'il vous faut savoir pour envoyer une facture.
L'API REST attend l'identifiant complet, encodé, et accepte au plus 2 requêtes par seconde (documentation de l'API REST, en anglais) :
curl "https://directory.peppol.eu/search/1.0/json?participant=iso6523-actorid-upis%3A%3A0208%3A0765432146"
Une liste de résultats vide est renvoyée avec le statut 200 : vérifiez donc le nombre de résultats plutôt que le code de statut. Pour trouver un identifiant à partir du nom de la société, utilisez le paramètre name ou la recherche libre du site, puis vérifiez le pays et l'adresse avant d'enregistrer quoi que ce soit.
SML et SMP : la vérification qui fait foi
Le Directory s'adresse aux humains. Quand un point d'accès envoie un document, il cherche le destinataire dans le Service Metadata Locator (SML), un registre basé sur le DNS, qui renvoie au Service Metadata Publisher (SMP) du destinataire. Le SMP indique quels types de documents le participant peut recevoir, et à quel point d'accès (Policy for use of Identifiers, section 2.1.2, en anglais). La question « ce client est-il sur Peppol ? » revient donc à demander : « le SML connaît-il cet identifiant, et son SMP accepte-t-il les factures Peppol BIS ? » Contrairement au Directory, cette vérification couvre tous les destinataires enregistrés.
- À la main : l'outil SMP and business card lookup d'OpenPeppol (en anglais). Le SPF Finances y renvoie les utilisateurs belges : cherchez
0208:suivi du numéro d'entreprise. Il montre qui peut recevoir, pas qui peut envoyer. - Depuis votre code : la plupart des API de points d'accès proposent un appel « verify recipient » ou « lookup » qui fait la recherche SML/SMP pour vous. Appelez-le juste avant l'envoi, et pas une seule fois au moment d'enregistrer l'identifiant : les enregistrements changent.
Demander au client
Hors de Belgique, il n'existe souvent aucune règle qui indique sous quel identifiant une société est enregistrée : une société néerlandaise peut être sur Peppol avec son numéro KVK (0106), avec son numéro de TVA (9944), ou pas du tout.
Si le Directory ne la répertorie pas, demandez à son service comptabilité fournisseurs l'identifiant complet, schéma compris, et vérifiez-le avant la première facture. En Belgique, ne le demandez que si le client veut recevoir ses factures sous un autre identifiant que son numéro d'entreprise.
Où le conserver dans Stripe
Stripe n'a pas de champ pour l'identifiant Peppol. Sa documentation sur la facturation électronique indique de mettre le numéro de TVA du client dans les tax_ids du Customer, et les identifiants de participant Peppol dans les metadata du Customer, sous une clé constante, par exemple peppol_participant_id
(Stripe : facturation électronique, en anglais).
Les tax IDs pour le numéro de TVA
Un numéro de TVA belge ou néerlandais est un tax ID de type eu_vat. Stripe vérifie les numéros de TVA européens auprès de VIES et indique le résultat dans verification.status (pending, verified, unverified ou unavailable), mais il vérifie seulement que le numéro est valide, pas que le nom et l'adresse correspondent
(Stripe : numéros fiscaux des clients, en anglais).
curl https://api.stripe.com/v1/tax_ids \
-u "$STRIPE_SECRET_KEY:" \
-d type=eu_vat \
-d value=BE0765432146 \
-d "owner[type]=customer" \
-d "owner[customer]=cus_123"
Chaque facture en porte une copie dans customer_tax_ids. Cette copie suit le Customer jusqu'à la finalisation de la facture, puis elle est figée (objet Invoice, en anglais) : ajoutez donc le numéro de TVA avant que la première facture soit finalisée.
Pour un client belge, c'est tout ce qu'il vous faut : l'identifiant 0208 peut en être dérivé à chaque fois. Stripe n'a pas de type de tax ID pour un numéro KVK ni pour un GLN : ceux-là vont dans les métadonnées.
Les métadonnées pour tout le reste
Enregistrez l'identifiant sur le Customer comme une seule valeur de la forme schéma:identifiant, pour que le schéma ne puisse pas être séparé du numéro :
curl https://api.stripe.com/v1/customers/cus_123 \
-u "$STRIPE_SECRET_KEY:" \
-d "metadata[peppol_participant_id]=0106:12345678"
Normalisez-le à l'enregistrement : ni espaces ni points, pas de préfixe iso6523-actorid-upis::, et vérifiez-le une fois pour qu'aucune faute de frappe n'atteigne votre première facture.
Les métadonnées du Customer ne sont pas copiées sur les factures : l'outil qui convertit une facture doit récupérer le Customer (ou développer customer avec expand) pour les lire.
Ce qui se retrouve dans le XML
Un vendeur belge fictif facture une société belge fictive. Tous deux ont un numéro de TVA belge, et les deux adresses électroniques utilisent le schéma 0208 avec le numéro d'entreprise dérivé du numéro de TVA.
Le générateur Peppol d'evoicely a produit ce fichier, qui passe les règles EN 16931 et Peppol BIS Billing 3.0. Extrait, avec des commentaires ajoutés après coup :
<cac:AccountingSupplierParty>
<cac:Party>
<cbc:EndpointID schemeID="0208">1000000120</cbc:EndpointID> <!-- BT-34 -->
...
<cac:PartyTaxScheme>
<cbc:CompanyID>BE1000000120</cbc:CompanyID> <!-- BT-31 -->
...
<cac:AccountingCustomerParty>
<cac:Party>
<cbc:EndpointID schemeID="0208">1111111145</cbc:EndpointID> <!-- BT-49 -->
...
<cac:PartyTaxScheme>
<cbc:CompanyID>BE1111111145</cbc:CompanyID> <!-- BT-48 -->
...
Le numéro de TVA garde son préfixe BE ; l'adresse 0208 le perd. Notre validateur gratuit affiche l'adresse électronique de chaque partie avec son schéma : vous voyez ainsi à quel identifiant une facture est adressée.
Ce que fait evoicely aujourd'hui
evoicely envoie des factures Peppol pour les vendeurs belges qui activent l'envoi via Peppol. Il ne vous demande pas les identifiants Peppol de vos clients :
- L'identifiant de l'acheteur est dérivé du premier tax ID
eu_vatde la facture Stripe, lorsque l'adresse de facturation du client est en Belgique :0208plus le numéro d'entreprise, avec le contrôle modulo 97 décrit plus haut (un numéro à 9 chiffres est complété à 10). Les points et les espaces dans le numéro de TVA ne posent pas de problème. - Avant l'envoi, evoicely demande à son point d'accès, Recommand, si cet identifiant est enregistré sur Peppol. Si ce n'est pas le cas, le document est envoyé par e-mail, si vous avez activé l'envoi par e-mail ; sinon, il est marqué comme non envoyé, avec la raison.
- Votre propre identifiant est
0208plus le numéro d'entreprise tiré du numéro de TVA belge indiqué dans vos paramètres. - Pas pris en compte aujourd'hui : un identifiant Peppol dans les métadonnées (y compris
peppol_participant_id) et tout schéma autre que0208. Les clients hors de Belgique, ou les clients belges sans numéro de TVA dans Stripe, ne reçoivent que les fichiers XRechnung et ZUGFeRD, avec leur adresse e-mail comme adresse électronique. - En mode test, les documents passent par l'environnement de test de Recommand, où l'envoi est simulé et rien n'arrive chez l'acheteur.
Liste de contrôle
- Indiquez le numéro de TVA de chaque client professionnel dans les
tax_idsStripe, avec le typeeu_vat, avant la finalisation de sa première facture, et vérifiez qu'il est validé. - Clients belges : dérivez du numéro de TVA
0208:suivi du numéro d'entreprise à 10 chiffres. Inutile de le leur demander. - Autres clients : trouvez l'identifiant dans le Peppol Directory ou demandez-le avec son schéma, puis enregistrez-le dans les métadonnées du Customer sous la forme
schéma:identifiant. - Juste avant chaque envoi, faites confirmer par votre point d'accès que l'identifiant est enregistré pour les factures Peppol BIS. Prévoyez une solution de repli pour les clients qui ne le sont pas.
- Validez le fichier. Notre validateur gratuit applique les règles officielles Peppol, y compris la vérification des chiffres de contrôle des numéros 0208.
Guides associés
- L'obligation Peppol en Belgique pour les entreprises qui facturent avec Stripe : qui doit envoyer des factures Peppol depuis 2026.
- Common Peppol BIS validation errors (en anglais) : PEPPOL-COMMON-R043 et les autres.
Où evoicely intervient
evoicely envoie vos factures et notes de crédit Stripe via Peppol : il adresse les clients belges par le numéro d'entreprise contenu dans leur numéro de TVA, après avoir vérifié qu'ils sont sur Peppol. Chaque document est contrôlé selon les règles officielles Peppol avant son envoi. Connectez votre compte Stripe, gratuitement pour 10 factures électroniques par mois.
Ceci est une information générale, pas un conseil juridique ou fiscal. Vérifiez ce qui s'applique à votre entreprise avec votre comptable ou conseiller fiscal.