Facturation crypto pour SaaS B2B
Comment faire payer des factures SaaS en crypto à des clients B2B : création du paiement, rapprochement, paiements partiels, renouvellements, remboursements.

Certains clients B2B veulent payer vos factures en crypto : équipes internationales, entreprises confrontées à des frictions bancaires, entreprises natives de la crypto. Les prendre en charge n’est pas difficile, mais les factures se comportent autrement qu’un paiement en boutique en ligne, et quelques choix de conception décident si votre équipe financière s’en félicite ou s’en agace. Ce guide couvre ces choix.
Pourquoi une entreprise SaaS propose la facturation crypto
La crypto est rarement le principal moyen d’encaissement d’une entreprise SaaS, et elle n’a pas à l’être. Elle est utile comme option supplémentaire quand :
- les clients sont dans des pays où les cartes ou les virements bancaires sont lents, coûteux ou peu fiables ;
- l’acheteur est une entreprise native de la crypto qui paie déjà ses fournisseurs en stablecoins ;
- vous voulez des paiements indépendants des horaires bancaires et non rétrofacturables.
Gardez les cartes et les virements pour tous les autres. La crypto n’est qu’une ligne de plus dans la liste « comment payer » de votre facture.
En quoi une facture diffère d’un paiement en boutique
Le tunnel de paiement d’une boutique crée le paiement au moment de l’achat. Une facture est émise d’abord et payée des jours ou des semaines plus tard, souvent par une équipe financière qui suit un processus interne. Cela change plusieurs choses :
- Le montant est fixé en dollars, pas en crypto. Vous établissez la facture en dollars ; le payeur envoie l’équivalent dans l’actif qu’il utilise.
- Le taux de change ne peut pas être tenu des semaines. Chez Qvard, le taux est figé pendant une heure à partir de la création du paiement. Un taux fixé à l’émission de la facture serait très périmé au moment du paiement.
- Il faut une référence. Les équipes financières ont besoin d’un numéro de facture sur chaque paiement pour rapprocher.
- Les payeurs passent par des circuits de validation. Ils peuvent payer en plusieurs fois ou avec retard ; il vous faut donc des règles claires pour les paiements partiels.
Créez le paiement quand le client est prêt à payer
La décision de conception clé : ne créez pas le paiement crypto à l’émission de la facture. Créez-le quand le client choisit de payer.
Placez un bouton « Payer en crypto » sur la page de la facture. Quand le client clique, votre backend crée un paiement avec le numéro de facture comme id et le montant dû en dollars, puis redirige le client vers la page de paiement. Le taux est alors figé pour l’heure suivante, exactement la fenêtre dont le client a besoin pour envoyer le transfert.
Utiliser le numéro de facture comme id apporte deux avantages. Si le client clique deux fois ou si votre requête est renvoyée, Qvard renvoie le paiement existant pour le même id et le même moyen de paiement au lieu d’en créer un en double. Et le webhook qui signale le résultat porte le même id ; vous retrouvez donc la facture sans table de correspondance.
// Runs when the customer clicks "Pay with crypto" on invoice INV-2026-0142,
// not when the invoice is issued: the exchange rate is fixed for one hour.
async function payInvoiceWithCrypto(invoice) {
const res = await fetch('https://api.qvard.com/api/v1/payment', {
method: 'POST',
headers: { Authorization: 'Bearer ' + process.env.QVARD_API_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({
id: invoice.number, // "INV-2026-0142": clicking twice returns the same payment
price: invoice.amountUsd // amount due, in US dollars
})
});
if (!res.ok) throw new Error('Qvard ' + res.status);
return (await res.json()).redirectUrl; // open this payment page for the customer
}Rapprochez avec le webhook
Quand le paiement est terminé, Qvard envoie un webhook à votre serveur avec l’id (votre numéro de facture) et le statut. Votre gestionnaire marque la facture comme payée et enregistre la transaction. Trois habitudes le rendent fiable :
- Vérifiez la signature de l’en-tête
X-Qvard-Signaturequi accompagne le webhook (HMAC-SHA256 avec votre clé secrète) et rejetez toute valeur qui ne correspond pas. - Répondez exactement HTTP 200 ; sinon la notification est renvoyée, jusqu’à cinq fois en environ six minutes.
- Rendez le gestionnaire idempotent, pour qu’un événement répété n’enregistre pas le paiement deux fois.
Le webhook signale le paiement, pas la facture ; conservez donc à côté de la facture l’id du paiement, la date et le statut. Vos comptables disposent ainsi d’une ligne par paiement à rapprocher du relevé qu’ils attendent. Le gestionnaire complet figure dans comment accepter des paiements crypto sur un site web.
Paiements insuffisants et frais de plateforme d’échange
Le ticket de support le plus fréquent en facturation crypto est le paiement insuffisant. Le payeur envoie un peu moins que nécessaire, et la facture n’est pas soldée. Raisons typiques :
- le client a payé depuis un compte de plateforme d’échange, qui a prélevé ses frais de retrait sur le montant envoyé ;
- le client a arrondi le montant ;
- le client a envoyé le transfert en deux fois.
Un paiement insuffisant apparaît avec le statut partial. Définissez votre politique à l’avance et écrivez-la sur la facture : soit la facture reste ouverte jusqu’à l’arrivée de la différence, soit vous acceptez les paiements dans une faible marge de tolérance. Faites en sorte que la page de la facture indique ce qui a été reçu et ce qui reste dû, pour que le client puisse compléter sans écrire au support.
Un conseil à imprimer sur la facture : si vous payez depuis une plateforme d’échange, ajoutez les frais de retrait au montant.
Renouvellements et abonnements
Avec une carte, un abonnement débite le client automatiquement. Un paiement crypto est différent : le client envoie le transfert lui-même à chaque fois ; un renouvellement ne peut donc pas être « prélevé » sur son portefeuille.
Le schéma pratique consiste à émettre la facture de renouvellement comme d’habitude et à envoyer au client un lien pour la payer, avec le même bouton et la même création de paiement que pour une première facture. Qvard crée un paiement pour chaque requête que vous envoyez ; la facturation récurrente est gérée par votre propre système de facturation, qui crée un nouveau paiement à chaque période. Rappelez l’échéance au client et, si vous offrez une remise sur le forfait annuel payé en crypto, rendez-la visible sur la facture.
Remboursements et avoirs
Un transfert crypto confirmé est définitif ; un remboursement est donc un nouveau transfert de votre part vers le client. Convenez de l’adresse par écrit avec le client, car un transfert vers une mauvaise adresse ne peut pas être récupéré. L’API de Qvard comprend un appel de versement (payout) pour envoyer des fonds de votre solde vers une adresse, avec votre propre id pour qu’une nouvelle tentative n’envoie pas l’argent deux fois ; vous pouvez aussi retirer manuellement depuis l’espace client.
Enregistrez le remboursement par rapport à la facture d’origine et émettez l’avoir habituel, pour que votre comptabilité raconte la même histoire que la blockchain.
Liste pour la comptabilité
Interrogez votre comptable sur les points qui dépendent de votre pays et préparez les données dont il aura besoin :
- numéro de facture,
iddu paiement, date, montant en dollars et actif et réseau utilisés ; - comment vous enregistrez l’encaissement et toute conversion en fiat ;
- comment sont traités les frais de réseau payés par le client ;
- comment et quand vous retirez vers votre portefeuille.
Ceci est une information générale, pas un conseil fiscal ou juridique.
Où se situe Qvard
Qvard est une passerelle de paiement crypto de type custodial : vous créez un paiement via l’API, le client paie sur une page de paiement hébergée en USDT ou USDC sur les principaux réseaux (ou en BTC ou LTC), et le statut final arrive sur votre serveur par webhook. Les fonds sont crédités sur votre solde commerçant et vous les retirez vers votre portefeuille. Pour les équipes SaaS en particulier, voyez paiements crypto pour le SaaS ; pour les bases, qu’est-ce qu’une passerelle de paiement crypto.
FAQ
Puis-je émettre des factures en crypto plutôt qu’en dollars ?
Vous émettez la facture en dollars américains et le payeur envoie l’équivalent dans l’actif qu’il choisit. Vos prix restent stables et votre comptabilité dans une seule monnaie.
Combien de temps le taux de change est-il valable ?
Chez Qvard, le taux est figé pendant une heure à partir de la création du paiement. Créez le paiement quand le client est prêt à payer, pas quand vous émettez la facture.
Que se passe-t-il si le client paie moins que la facture ?
Le paiement apparaît avec le statut partial. Vous pouvez garder la facture ouverte jusqu’à l’arrivée de la différence ou accepter le paiement dans une tolérance que vous définissez ; indiquez la règle sur la facture.
Puis-je facturer un abonnement automatiquement ?
Non. Un paiement crypto est envoyé par le client ; il ne peut donc pas être prélevé automatiquement sur un portefeuille. Votre système de facturation émet chaque renouvellement et envoie au client un lien de paiement.


