Intégrations · Prestataires de paiement
Les ventes Stripe, chacune liée à la visite qui a amené l’acheteur.
Connectez Stripe avec une clé restreinte en lecture seule. Tally importe vos 365 derniers jours, puis reçoit chaque paiement au moment où il a lieu et le lie à un visiteur grâce à la preuve la plus solide dont il dispose.
14 jours gratuits, sans carte bancaire.
01Ce que Tally lit
- Chaque paiement une seule fois, par son PaymentIntent, quelle qu’en soit l’origine : Checkout, un Payment Link, une facture ou un PaymentIntent créé par votre code.
- Les abonnements, distingués par leur facture : premier paiement, renouvellement ou changement d’offre ; un essai converti compte comme une vente.
- Les remboursements, partiels compris, et les rétrofacturations : les fonds retirés en négatif, les fonds restitués en positif.
- Les montants hors taxes, en cents US au taux de la Banque centrale européenne du jour du paiement, les devises sans décimales étant comptées correctement.
- Les 365 derniers jours à la connexion, puis chaque paiement en quelques secondes via un endpoint de webhook que Tally crée sur votre compte.
02Comment une vente retrouve sa visite
- Métadonnées CheckoutVotre code transmet l’identifiant du visiteur en tally_visitor_id dans les métadonnées de la session Checkout, ainsi que dans subscription_data.metadata pour que les renouvellements en héritent. Confiance élevée.
- Payment LinksLe snippet ajoute de lui-même l’identifiant du visiteur aux liens buy.stripe.com en client_reference_id, en mode avec cookie, et en mode « consentement d’abord » une fois le consentement donné. Confiance élevée.
- Page de confirmationVotre URL de confirmation porte « ?session_id={CHECKOUT_SESSION_ID} », et le premier visiteur à voir cette page est l’acheteur. Confiance élevée ; fonctionne aussi en mode sans cookie.
- E-mailVotre site appelle tally('identify', { email }) et l’e-mail client du paiement y correspond, tous deux hachés. Confiance moyenne.
- Renouvellements et remboursementsUn renouvellement ou un passage à une offre supérieure reprend le lien du premier paiement de l’abonnement ; un remboursement ou une rétrofacturation reprend celui du paiement annulé.
03Ce qu’il ne peut pas lire
- Les paiements créés avec l’ancienne API Charges, sans PaymentIntent, ne sont pas comptés, pas plus que leurs remboursements ou leurs litiges.
- Les factures payées hors de Stripe, marquées payées à la main ou réglées sur un solde créditeur ne font circuler aucun argent dans Stripe : elles ne sont donc pas comptées.
- Un compte Stripe n’alimente qu’un seul site à la fois ; le connecter à un second site est refusé tant qu’il n’est pas déconnecté du premier.
- Les frais de litige sont un coût, pas un revenu : ils ne sont donc pas comptés comme une rétrofacturation.
04Le connecter
- Dans Stripe, ouvrez Developers, API keys, choisissez Create restricted key et définissez les autorisations ci-dessous. Laissez tout le reste sur None.
- Collez la clé sur la page Integrations de votre site. Chaque autorisation est vérifiée par un véritable appel : une autorisation manquante est signalée avant tout enregistrement.
- Tally chiffre la clé, crée son propre endpoint de webhook sur votre compte et importe les 365 derniers jours.
- Pour des liens à confiance élevée sur les sessions Checkout que crée votre code, la page Coverage donne les lignes à ajouter, pour Node, Next.js, Python, Ruby et PHP.
Ce dont la clé restreinte a besoin
Tally demande une clé restreinte qui ne peut faire que cela, et vérifie chaque autorisation par un vrai appel quand vous la collez, si bien qu’une autorisation manquante est nommée :
| Autorisation | Accès | Pourquoi |
|---|---|---|
| PaymentIntents | Lecture | Chaque paiement : son montant, sa devise, son client et ses métadonnées. |
| Invoices | Lecture | Si un paiement est le premier d’un abonnement, un renouvellement ou un changement d’offre, et la taxe qu’il contient. |
| Checkout Sessions | Lecture | L’identifiant de visiteur que vous passez dans les métadonnées ou dans client_reference_id, et le Payment Link qui a vendu. |
| Customers | Lecture | Les métadonnées du client, et son e-mail pour le rapprocher de tally('identify') : haché aussitôt, jamais conservé. |
| Charges | Lecture | Remboursements. |
| Disputes | Lecture | Les rétrofacturations, et les fonds rétablis après un litige gagné. |
| Webhook Endpoints | Écriture | Tally crée son propre endpoint sur votre compte, pour que les paiements arrivent en quelques secondes. |
Où la créer : Stripe, Developers, API keys.
05Questions fréquentes
Pourquoi une clé restreinte et pas ma clé secrète ?
Une clé restreinte ne peut faire que ce que vous autorisez. Tally a besoin de lire les paiements et de créer un endpoint de webhook, jamais de déplacer de l’argent, et vous pouvez révoquer la clé dans Stripe à tout moment. Une clé secrète est refusée.
Les renouvellements gardent-ils la source de la première vente ?
Oui. Un renouvellement ou un passage à une offre supérieure reprend le lien du premier paiement de l’abonnement : le revenu récurrent reste attribué à la visite qui a converti le client. Mettez aussi l’identifiant du visiteur dans subscription_data.metadata, et chaque renouvellement le portera.
Le mode test fonctionne-t-il ?
Oui. Une clé restreinte du mode test se connecte comme une clé de production, et l’intégration affiche un badge mode test : vous pouvez d’abord essayer tout le parcours avec les cartes de test de Stripe.
Et les paiements dans d’autres devises ?
Chacun est converti en cents US au taux de référence de la Banque centrale européenne du jour. Une devise que la BCE ne publie pas garde son montant d’origine et est signalée, au lieu d’être convertie à un taux inventé.