La comptabilisation des flux issus de la solution de paiement Stripe, très utilisée en e-commerce, peut rapidement s'avérer complexe et donc chronophage. Comment automatiser la comptabilisation de ces données, et assurer un traitement homogène au sein du cabinet ?
La société Stripe a développé un logiciel et des API pour accepter des paiements, effectuer des virements et gérer l'activité en ligne d'entreprise de e-commerce.
Stripe a un business model assez simple : prélèvement d'un pourcentage sur chacune des transactions encaissées et une commission fixe d'abonnement à la plateforme. Mais la gestion de la comptabilité des boutiques en ligne peut devenir rapidement un casse-tête pour le cabinet d'expertise comptable, notamment si la société gère plusieurs boutiques avec plusieurs comptes Stripe ou des comptes avec des devises étrangères.
En effet, à ce jour, il n'est malheureusement pas possible de récupérer automatiquement les écritures comptables via le même canal d'usage que les flux bancaires (Jedeclare, So Bank, Transfert Banque, etc...). Par ailleurs, l'export au format FEC, qui faciliterait grandement le travail d'intégration dans les logiciels de production comptables, n'est pas prévu à ce jour.
Dès lors, comment mettre en place une procédure unique pour assurer une homogénéité de la saisie au sein du cabinet ?
Autopsie d'un fichier type issu du back-office de la plateforme Stripe
L'export par défaut est disponible sur le site sous l'onglet « payments » puis rubrique « Toutes les transactions ».
A partir de cette interface, il est alors possible d'exporter toutes les transactions au format csv.
Les exports financiers visibles dans les captures d'écran ci-dessus permettent d'obtenir des données synthétiques qui seront utiles pour rapprocher le solde réel et le solde comptable lors des travaux de situations périodiques ou de révision de fin d'exercice.
L'ouverture du fichier CSV permet de visualiser les informations suivantes :
Intitulé de la colonne | Exemple | Nature | Information utile pour le cabinet |
Id | txn_1GP177777QgLRBNCFhVx6QVqv5 | Numéro de la transaction | OUI |
Type | Charge, refund, payment_refund,etc... | Type de flux : encaissements, frais, etc... | OUI |
Source | du_1G6UX8FQgLRXXXXXXXsZkk | Inconnu | NON |
Amount | 35 | Montant TTC (en devise locale) avant prélèvement de la commission de Stripe | OUI |
Fee | 0,74 | Montant des frais en devises locale | OUI |
Currency | eur | Devises de la transaction et des frais | OUI |
Created (UTC) | 21/03/2020 07:43 | Date de création de la transaction | OUI |
Available On (UTC) | 21/03/2020 07:43 | Date de validation de la transaction | OUI |
payments_refund_id (metadata) | Pas d'exemple | Information de remboursement | NON |
shop_id (metadata) | 777744564512162 | Numéro d'identification unique de la boutique | NON |
shop_name (metadata) | Nom_de_la_boutique | Nom de la boutique | OUI |
email (metadata) | aaaa@eeeeee.fr | Email du client | NON |
order_id (metadata) | C451616517354817.1 | Numéro de commande | NON |
manual_entry (metadata) | False/vide | Données saisies manuellement | NON |
checkout (metadata) | Pas d'exemple | Pas d'exemple | NON |
product_0 (metadata) | Pas d'exemple | Pas d'exemple | NON |
country_code (metadata) | FR | Pays d'origine de la transaction. Utile pour renseigner les informations sur le Guichet Unique pour la TVA | OUI |
first_name (metadata) | Pas d'exemple | Pas d'exemple | NON |
last_name (metadata) | Pas d'exemple | Pas d'exemple | NON |
address1 (metadata) | Pas d'exemple | Pas d'exemple | NON |
zip (metadata) | Pas d'exemple | Pas d'exemple | NON |
city (metadata) | Pas d'exemple | Pas d'exemple | NON |
original_amount (metadata) | Pas d'exemple | Pas d'exemple | NON |
application_fees (metadata) | Pas d'exemple | Pas d'exemple | NON |
stripe_fees (metadata) | Pas d'exemple | Pas d'exemple | NON |
final_amount (metadata) | Pas d'exemple | Pas d'exemple | NON |
En pratique, quelle est la nature des différents flux Stripe et quelles sont les schémas d'écritures possibles ?
L'analyse (sous Excel) du fichier, permet de voir la colonne B, intitulée « Type » et de détecter la nature des flux économiques intervenus :
- « payout » : il s'agit des transferts vers les comptes bancaires du client, le montant apparaît dans la colonne D sous le libellé « Amount ». Ce montant doit se retrouver au centime près sur le compte bancaire « classique » du client.
- « charge » : le montant figurant dans la colonne « Amount » correspond au montant encaissé par le client, égale à la vente TTC.
- « refund » : il s'agit des remboursements clients effectués depuis Stripe.
- « payment » : il s'agit généralement du prélèvement de la commission fixe par Stripe.
- « payment_refund » : il s'agit du remboursement de la commission fixe Stripe (oui cela arrive !).
Par précaution, il convient de s'assurer que le code devise qui apparaît dans la colonne G intitulée « Currency » soit euros. En cas de devise étrangère, il conviendra de faire les conversions en euros.
Proposition de schéma d'écritures pour les différentes catégories de flux
Flux « Charge »
Date | Compte | Libellé | Débit | Crédit |
15/08/2020 | 411xxx | Encaissement STRIPE | A | |
15/08/2020 | 6278xx | Frais sur encaissement client STRIPE | B | |
15/08/2020 | 517xxx | Encaissement client sur STRIPE net de frais | C = A - B |
Flux « payout »
Date | Compte | Libellé | Débit | Crédit |
15/08/2020 | 58xxxx | Transfert interne vers banque | X |
|
15/08/2020 | 517xxx | Transfert interne vers banque |
| X |
Flux « refund »
Date | Compte | Libellé | Débit | Crédit |
15/08/2020 | 411xxx | Remboursement client depuis STRIPE | X |
|
15/08/2020 | 517xxx | Remboursement client depuis STRIPE |
| X |
Flux « payment »
Date | Compte | Libellé | Débit | Crédit |
15/08/2020 | 401xxx | Paiement sortant STRIPE | X |
|
15/08/2020 | 517xxx | Paiement sortant STRIPE |
| X |
Flux « payment_refund »
Date | Compte | Libellé | Débit | Crédit |
15/08/2020 | 401xxx | Remboursement de la part de STRIPE |
| X |
15/08/2020 | 517xxx | Remboursement de la part de STRIPE | X |
|
Quelle procédure mettre en place au sein du cabinet ?
1. Créer un compte avec droit restreint sur la plateforme au profit du cabinet
Demander au client d'ajouter un email au compte STRIPE qui pointe vers une liste de diffusion du cabinet. Par exemple client_A@moncabinetcomptable.fr
Cela permet d'avoir un accès aux extractions par le collaborateur en total autonomie. Ainsi, le client sera moins sollicité. En cas de départ du collaborateur, le recours à une liste de diffusion évite de perdre l'accès du cabinet suite à la désactivation de l'adresse email du collaborateur...
Nous vous conseillons de créer autant de liste de diffusion que de clients du cabinet qui utilise STRIPE. Sinon, le renseignement par un client de l'adresse email du cabinet risque d'écraser l'accès d'un autre client qui utilise également Stripe. En effet, il n'existe pas à l'instar de impot.gouv de compte délégataire sur le site.
2. Opérer un traitement automatique du fichier STRIPE pour générer un fichier FEC
A titre d'exemple, voici le fichier FEC généré au Cabinet Fabrice Heuvrard via une macro VBA à partir d'un fichier STRIPE extrait selon le mode opératoire décrit en paragraphe 1 et codifié selon les règles comptables décrites dans le paragraphe 3.
Remarque : nous avons fait le choix de réaliser simultanément l'écriture de vente dans le journal de vente en faisant référence à l'ID de transaction comme référence de pièce dans notre fichier FEC.
3. Importer le FEC dans le logiciel de production comptable
4. Rapprocher les transactions « payout » comptabilisées en compte 58 avec les montants créditeurs présents sur le relevé bancaire avec le libellé « Stripe Payments UK Ltd STRIPE »
5. Rapprocher le solde comptable du compte 517xxx de chacune des boutiques avec le solde présent dans le rapport financier de STRIPE lors de l'établissement des situations et lors de l'établissement des comptes annuels.
Vers une plateforme d'intégration des flux ?
Le traitement des fichiers des start-up montante tel que Stripe qui ne dispose pas d'export FEC peuvent s'avérer un obstacle au maintien de la rentabilité d'un dossier client au sein d'un cabinet.
A ce titre, la programmation d'une macro VBA paramétrable avec des variables (code journaux, compte comptables, etc...) ou d'un script python devient une nécessité si les flux sont conséquents et rendus possibles par la standardisation des écritures au sein du cabinet.
L'innovation au sein du cabinet doit malheureusement passer par la manipulation de fichier et leur traduction dans un format compatible avec tous les logiciels.
Une idée de plateforme à lancer pour faciliter l'intégration de ces flux ?