L'export Stripe contient un champ transaction_id. Le CSV de Xero contient un champ Reference. Ces deux champs peuvent désigner le même paiement — mais Excel ne le sait pas tant que vous n'avez pas construit la correspondance vous-même.
C'est là que le rapprochement commence à se dérégler.
Un comptable freelance travaille rarement avec le même schéma Stripe-Xero pour chaque client. L'un exporte les transactions de solde Stripe. Un autre fournit les transactions de compte Xero. Un troisième vous remet un relevé bancaire, un rapport de virement Stripe et un export de journal manuel Xero avec des plages de dates différentes. La difficulté ne vient pas de Stripe ni de Xero — elle vient du fait que la structure des fichiers change d'un client à l'autre.
La solution n'est pas d'imposer à chaque client un classeur maître. C'est de mettre en place une méthode basée sur les fichiers, capable de s'adapter à des en-têtes, des champs de date, des signes de montant et des colonnes de référence différents.
Ce que montrent réellement les deux fichiers
Stripe et Xero n'exportent pas la même vue de la transaction.
Stripe affiche généralement l'activité de paiement. Selon le type d'export, le fichier peut contenir des encaissements, des remboursements, des frais, des litiges, des mouvements de solde, des identifiants de virement et des montants nets. Xero affiche les écritures comptables. Le CSV de Xero peut contenir des transactions bancaires, des règlements de factures, des lignes de journal, des codes de compte, des noms de contacts, des références et le statut de rapprochement.
Autrement dit, les deux fichiers décrivent le même mouvement de trésorerie sous deux angles différents.
| Champ Stripe | Champ Xero pouvant servir à la correspondance | Ce qui peut poser problème |
|---|---|---|
transaction_id | Reference | Xero peut stocker l'ID Stripe dans un champ texte plus long |
payout_id | Description ou référence de relevé bancaire | L'identifiant de virement peut ne pas être enregistré dans Xero |
created | Date | L'horodatage Stripe peut être en UTC tandis que Xero utilise la date de comptabilisation locale |
available_on | Date ou date bancaire | La date de disponibilité du virement peut différer de la date comptable |
gross | Amount | Xero peut enregistrer le montant net reçu plutôt que le montant brut de la vente |
fee | Ligne de charge de frais | Les frais peuvent être absents ou enregistrés en lot mensuel |
net | Montant de réception bancaire | Le net peut correspondre à la banque alors que le brut ne correspond pas aux ventes |
Si vous comparez les mauvaises colonnes, des enregistrements parfaitement valides paraissent introuvables.
Prenons un exemple. Un encaissement Stripe peut contenir :
| Champ Stripe | Valeur |
|---|---|
| transaction_id | ch_3P9K2L |
| created | 2026-05-30 23:42:11 UTC |
| gross | 400.00 |
| fee | -12.20 |
| net | 387.80 |
| payout_id | po_1AB982 |
L'export Xero peut afficher :
| Champ Xero | Valeur |
|---|---|
| Date | 2026-05-31 |
| Reference | ch_3P9K2L |
| Description | Stripe payment - Customer A |
| Amount | 400.00 |
| Account | Sales |
Ces deux lignes correspondent par identifiant de transaction et par montant brut — mais pas par date, ni par montant net. Si vous rapprochez sur la date et le montant, ce paiement échoue. Si vous rapprochez sur la référence et le montant brut, il passe.
Ce choix, c'est le rapprochement.
Déterminer le type d'export Stripe à rapprocher
N'ouvrez pas les deux fichiers en cherchant un total commun. Commencez par identifier ce que représente le fichier Stripe.
Un export de transactions Stripe, un rapport de rapprochement de virements, un export de transactions de solde et un export de frais ne répondent pas aux mêmes questions.
| Type d'export Stripe | Utilisation principale | Ce à quoi le rapprocher |
|---|---|---|
| Export de paiements ou d'encaissements | Prouver l'activité de ventes | Règlements de factures ou écritures de ventes Xero |
| Export de transactions de solde | Expliquer les mouvements bruts, frais et nets | Ventes, frais, remboursements et ajustements Xero |
| Rapport de rapprochement de virements | Prouver ce qui est arrivé en banque | CSV du compte bancaire Xero ou relevé bancaire |
| Rapport de frais | Vérifier les frais de traitement | Compte de charges de frais Xero |
| Export de remboursements ou litiges | Trouver les réductions manquantes dans les livres | Écritures de remboursement, avoir ou ajustement Xero |
Cette étape évite la fausse divergence la plus courante : vouloir faire correspondre les encaissements bruts Stripe avec les réceptions bancaires Xero.
Ces deux montants ne sont pas censés être égaux.
Les encaissements bruts Stripe sont calculés avant les frais, les remboursements, les litiges et le calendrier des virements. Les réceptions bancaires Xero ne montrent que les liquidités effectivement reçues. Si le client enregistre l'activité Stripe nette, la ligne bancaire Xero sera inférieure au montant brut Stripe. Ce n'est pas forcément une erreur — cela signifie qu'il faut expliquer le passage du brut au net.
Pour une méthode plus approfondie au niveau du virement, appliquez la même logique que pour le rapprochement d'un CSV de virement Stripe avec un relevé bancaire : partez du dépôt bancaire, identifiez le virement, puis détaillez les transactions qu'il contient.
Définir la clé de correspondance avant de lancer les formules
La clé de correspondance est le champ qui prouve que deux lignes représentent le même événement.
Pour Stripe et Xero, la meilleure clé est généralement l'identifiant de transaction Stripe si Xero l'a enregistré. Celui-ci peut apparaître dans Xero sous la forme Reference, Invoice Number, Description, Payment Reference, ou d'une note saisie manuellement.
Si Xero ne contient pas l'identifiant de transaction Stripe, utilisez une clé composite. Une clé composite combine des champs qui, pris isolément, sont fragiles, mais qui ensemble sont fiables.
Voici quelques combinaisons utiles :
| Clé composite | Quand elle fonctionne |
|---|---|
| Montant + client/contact + créneau de dates | Correspondance des paiements clients individuels |
| ID de virement + montant net | Correspondance des dépôts de virement |
| Numéro de facture + montant brut | Correspondance des paiements Stripe avec les règlements de factures Xero |
| Référence de commande + montant | Correspondance des paiements e-commerce comptabilisés dans Xero |
| Créneau de dates + montant + fragment de description | Correspondance des lignes de flux bancaire sans identifiant de transaction |
Le créneau de dates est important car les dates Stripe et Xero diffèrent souvent. Un paiement capturé tard le soir en UTC peut apparaître le lendemain dans Xero. Un virement peut regrouper des paiements sur plusieurs jours. Un dépôt bancaire peut s'enregistrer après que Stripe a marqué le virement comme disponible.
N'utilisez donc pas une correspondance sur la date exacte, sauf si vous avez confirmé que les deux fichiers utilisent la même base de dates.
Pour ce type de traitement, créez quatre champs auxiliaires avant toute comparaison :
| Champ auxiliaire | Objectif |
|---|---|
| Référence normalisée | Supprime les espaces, les différences de casse et le texte de description supplémentaire autour de l'ID |
| Créneau de dates | Autorise une tolérance de un à trois jours en cas de décalage de calendrier |
| Montant signé | Rend comparables les signes débit et crédit |
| Base de montant | Indique si le montant est brut, correspond à des frais, au net, à un remboursement ou à un ajustement |
Pour le champ Référence normalisée, la formule de base est :
=SUPPRESPACE(SUBSTITUE(MAJUSCULE(A2),CAR(160)," "))La colonne A contient le champ de référence : l'identifiant de transaction Stripe, l'identifiant de virement ou le numéro de facture. SUPPRESPACE supprime les espaces courants ; CAR(160) couvre l'espace insécable que Xero exporte parfois. Si l'ID Stripe apparaît dans une description plus longue comme « Payment ch_3P9K2L for client », extrayez-le avec STXT avant la normalisation. Pour le champ Montant signé, utilisez ABS(CNUM(B2)) : CNUM convertit les montants au format texte, ABS supprime la différence de signe.
C'est là que RECHERCHEV combiné à SUPPRESPACE échoue souvent. SUPPRESPACE gère les espaces superflus. Elle ne résout pas le vrai problème : les deux fichiers ne stockent pas forcément le même événement dans la même colonne, à la même date, ni selon la même base de montant.
Séparer brut, frais, remboursements et net avant de comparer les totaux
Un rapprochement Stripe-Xero ne se construit pas autour d'un total unique et d'une seule formule. Il faut une structure intermédiaire.
Organisez-le selon ces couches :
| Couche de rapprochement | Source Stripe | Source Xero | Résultat attendu |
|---|---|---|---|
| Ventes brutes | Encaissements ou paiements | Ventes ou règlements de factures | Doivent correspondre après prise en compte des décalages de calendrier |
| Frais | Colonne de frais Stripe ou export de frais | Compte de charges de frais marchand | Doivent correspondre ou être listés comme manquants |
| Remboursements | Lignes de remboursement | Remboursements, avoirs ou ajustements | Doivent correspondre par référence ou par montant |
| Litiges | Lignes de litige | Écritures de débit ou d'ajustement | Doivent être enregistrés séparément |
| Virement net | Rapport de virement | Compte bancaire Xero ou CSV bancaire | Doit correspondre aux liquidités déposées |
Supposons que Stripe affiche :
| Catégorie Stripe | Montant |
|---|---|
| Encaissements bruts | 8,000.00 |
| Frais | -248.00 |
| Remboursements | -300.00 |
| Virement net | 7,452.00 |
Xero affiche :
| Catégorie Xero | Montant |
|---|---|
| Recettes de ventes | 8,000.00 |
| Frais Stripe comptabilisés | -248.00 |
| Remboursements comptabilisés | 0.00 |
| Réception bancaire | 7,452.00 |
La réception bancaire est correcte. Les ventes sont correctes. Les frais sont corrects. L'entrée manquante, c'est l'écriture de remboursement.
Si vous partez du constat « Stripe ne correspond pas à Xero », vous n'avez aucune réponse. Si vous séparez les couches, la réponse est précise : un remboursement existe dans Stripe et n'a pas été comptabilisé dans Xero.
C'est la conclusion qu'un client peut exploiter.
Traiter le CSV de Xero avant qu'il ne fausse la correspondance
Les exports Xero varient selon le rapport, la plage de dates, le compte et les colonnes sélectionnés. Cela compte, car une formule construite pour un export peut silencieusement pointer vers la mauvaise colonne dans l'export suivant.
Avant de lancer la correspondance, vérifiez ces points :
| Vérification | Pourquoi c'est important |
|---|---|
| En-têtes de colonnes | Reference, Description et Invoice Number peuvent porter des valeurs de correspondance différentes |
| Format de date | Xero peut exporter des dates locales tandis que Stripe utilise des champs horodatés en UTC |
| Signes de montant | Les réceptions et les paiements peuvent être exportés en positif ou en négatif selon le rapport |
| Filtre de compte | Un export de compte bancaire ne contient pas toutes les écritures de frais ou de remboursements |
| Statut de rapprochement | Les lignes non rapprochées dans Xero peuvent être des paiements valides en attente de correspondance bancaire |
| Modifications manuelles | Les références saisies par le client peuvent être incohérentes d'un mois à l'autre |
Si le fichier Xero est un export de compte bancaire, rapprochez-le avec les virements Stripe ou l'activité nette côté banque. Si c'est un export de règlements de factures, rapprochez-le avec les encaissements ou les enregistrements de paiement Stripe. Si c'est un export de grand livre, séparez d'abord les codes de compte pour que ventes, frais, remboursements et réceptions bancaires ne soient pas dans la même comparaison.
Le type de fichier détermine la logique de correspondance.
C'est aussi pour ça qu'un traitement qui fonctionnait pour le client du mois dernier peut échouer ce mois-ci. L'export vient toujours de Xero, mais ce n'est plus le même rapport. Si les en-têtes ou les comptes inclus ont changé, l'ancienne formule de recherche n'est plus fiable.
Pour plus de détails sur ce problème d'export spécifique, consultez la différence entre les exports de relevé bancaire Xero et les CSV bancaires bruts.
Mettre en place une méthode reproductible pour chaque client
Pour un comptable freelance, la vraie question n'est pas « Puis-je rapprocher ce fichier Stripe avec ce CSV Xero ? »
La vraie question est de savoir si la méthode tiendra avec le prochain client.
Suivez la même séquence à chaque fois, même quand les colonnes changent :
- Identifier le type d'export Stripe.
- Identifier le type d'export Xero.
- Choisir la base de montant : brut, frais, remboursement, litige ou net.
- Choisir la clé de correspondance la plus fiable disponible.
- Normaliser les références et les signes de montant.
- Appliquer un créneau de dates là où les décalages de virement ou de fuseau horaire s'appliquent.
- Faire correspondre d'abord les références exactes.
- Faire correspondre ensuite les clés composites.
- Distinguer les décalages de calendrier attendus des enregistrements réellement manquants.
- Produire une liste d'exceptions en indiquant la raison de chaque ligne rejetée.
La liste d'exceptions est la partie qui compte le plus.
Elle ne doit pas dire :
| Mauvais résultat | Pourquoi ça ne fonctionne pas |
|---|---|
| Non correspondant | Ne donne aucune raison |
| Écart | Ne précise pas si c'est le montant, la date ou la référence qui ne correspond pas |
| Vérifier manuellement | Renvoie le travail au comptable |
Elle doit dire :
| Meilleur résultat | Ce qu'il indique |
|---|---|
| Remboursement Stripe manquant dans Xero | Comptabiliser ou vérifier le remboursement |
| Réception Xero sans identifiant de transaction Stripe | Vérifier si le paiement a été effectué en dehors de Stripe |
| Même référence, montant différent | Vérifier le traitement des frais ou le paiement partiel |
| Même montant, date hors tolérance | Vérifier le calendrier du virement ou la date de comptabilisation |
| Virement Stripe correspond à la banque, mais frais manquants | Comptabiliser les frais marchands séparément |
C'est la différence entre une feuille de calcul qui colorie des cellules et un rapport de rapprochement qui clôt la question.
Ce que doit montrer un rapport de rapprochement complet
Le rapport final doit prouver trois choses.
Premièrement, la trésorerie est expliquée. Le virement Stripe ou l'activité nette doit correspondre au compte bancaire Xero ou à l'écriture côté banque.
Deuxièmement, les revenus sont expliqués. Les encaissements bruts Stripe doivent correspondre aux ventes ou aux règlements de factures Xero, compte tenu des décalages de calendrier.
Troisièmement, les écarts sont classés. Frais, remboursements, litiges, décalages de date, écritures manquantes dans Xero et références manquantes dans Stripe ne doivent pas se retrouver dans un même lot inexpliqué.
Un rapport utile ressemble à ceci :
| Section | Contenu |
|---|---|
| Résumé | Total Stripe, total Xero, écart expliqué, écart inexpliqué |
| Lignes correspondantes | Enregistrements concordant par référence, montant et créneau de dates acceptable |
| Décalages de date | Même transaction, décalage de calendrier acceptable |
| Écarts de montant | Même transaction, montant non concordant |
| Absent de Xero | Enregistrements Stripe introuvables dans le CSV de Xero |
| Absent de Stripe | Enregistrements Xero introuvables dans l'export Stripe |
| Pont frais/remboursements/litiges | Réductions attendues du brut au net |
| Liste d'actions client | Écritures à comptabiliser, corriger ou confirmer |
Si le rapport ne peut pas expliquer pourquoi un écart existe, le rapprochement n'est pas terminé. Le client n'a pas besoin d'une feuille de calcul colorée. Il a besoin de savoir si les livres sont erronés, si le calendrier de Stripe diffère, ou si un enregistrement manque.
Là où le traitement échoue généralement
La plupart des rapprochements Stripe-Xero ratés tombent sur l'un de ces cinq points.
On compare le mauvais total Stripe avec le mauvais total Xero. Les encaissements bruts sont comparés aux réceptions bancaires, ou les virements aux ventes. Les montants diffèrent parce qu'ils représentent des étapes différentes du flux de paiement.
La clé de correspondance est enfouie dans un champ de description. Xero peut inclure l'ID Stripe, mais pas dans une colonne de référence propre. Si la formule ne regarde que Reference, des correspondances valides échouent.
Les dates sont traitées comme exactes alors qu'il s'agit de champs de calendrier. L'heure de transaction Stripe, la date de disponibilité Stripe, la date de virement, la date bancaire et la date de comptabilisation Xero ne sont pas interchangeables.
Les frais sont comptabilisés en net plutôt que séparément. Le montant bancaire peut correspondre, tandis que les comptes de ventes et de frais restent erronés.
La méthode dépend de la structure d'un seul client. Copier la formule du mois dernier dans un nouveau classeur client présuppose les mêmes en-têtes, les mêmes signes et les mêmes références. Cette hypothèse est souvent fausse.
La solution n'est pas une meilleure formule de recherche. C'est une méthode qui nomme le type de fichier, nomme la base de montant, et produit un rapport d'exceptions classé.
Rapprocher les données Stripe avec les exports CSV de Xero, c'est d'abord cesser de traiter les deux fichiers comme deux versions d'un même tableau. Ils ne le sont pas. Stripe enregistre les mouvements de paiement. Xero enregistre les écritures comptables. Le rapprochement tient quand vous définissez le pont entre les deux, que vous correspondez sur la bonne clé, et que vous expliquez chaque écart dans un rapport que le client peut exploiter.
