Rapprochement automatique
Laissez Stripe gérer le rapprochement de trésorerie pour les moyens de paiement par virement bancaire.
Avertissement
Cette page couvre l’implémentation des virements dans Sources. L’API Sources est obsolète, et nous prévoyons de ne plus prendre en charge les moyens de paiement locaux. Si vous intégrez actuellement les virements, vous devez migrer vers l’API Payment Methods. Nous vous enverrons un e-mail contenant plus d’informations sur la fin de ce service.
Les entreprises ont souvent recours aux paiements par virement bancaire pour les contrats importants ou leurs nouvelles relations commerciales. Ces paiements par virement bancaire peuvent générer une grande quantité de tâches manuelles pour votre équipe. Stripe facilite ce processus en acceptant les virements qui règlent les factures en cours.
Pour chacun de vos clients, Stripe génère automatiquement un numéro de compte bancaire virtuel américain qui peut être payé en USD par virement ACH ou par virement bancaire. Lorsque votre client voit une facture avec ce compte bancaire virtuel, il peut envoyer un paiement à ce compte. Stripe rapproche automatiquement le paiement incluant le compte bancaire virtuel avec la facture, puis marque la facture comme payée.
Virements et prélèvements
Grâce au rapprochement automatique, vous n’avez pas besoin d’exposer vos coordonnées bancaires sensibles aux utilisateurs ou de rapprocher manuellement les factures en cours avec votre banque. Avec le rapprochement automatique des factures, Stripe peut :
- Faire correspondre les paiements entrants avec les montants des factures.
- Gérer les trop-perçus ou les paiements insuffisants, lorsque le montant payé ne correspond pas à la facture.
- Réduire le nombre d’appels à l’API nécessaires pour transférer des fonds dans Stripe.
- Gérer les tentatives de paiement sur les factures en cours.
Régler une facture
Stripe crée un sous-hachage ach_credit_transfer pour chaque facture si le client n’en possède pas déjà un. Toutes les factures contiennent des instructions sur l’endroit où envoyer le paiement. De plus, chaque client possède une adresse de paiement unique qui est partagée par toutes ses factures. Grâce au sous-hachage ach_
, il peut transférer des fonds par le biais du système ACH américain ou d’un virement aux États-Unis, en indiquant le numéro de la facture dans le champ mémo.
Note
Les virements bancaires ACH ne sont pris en charge qu’en dollars (USD).
Dès qu’un client effectue un virement, Stripe fait correspondre le paiement avec une facture en vérifiant qu’un numéro de facture figure dans le champ mémo du virement. Toutes les factures pour lesquelles une correspondance est trouvée sont réglées. Si aucune correspondance n’est trouvée, la facture impayée la plus ancienne du même montant est réglée. Si aucune facture impayée de ce montant n’est trouvée, toutes les factures impayées pouvant être réglées avec le montant du transfert le seront, en commençant par la plus ancienne. Lorsqu’une facture est réglée, un événement invoice.
se produit (vous pouvez recevoir cet événement à l’aide de webhooks).
Vous pouvez vérifier l’état d’un virement bancaire ACH en consultant la liste des moyens de paiement du client, dans le Dashboard ou en consultant les sources du client dans l’API :
curl https://api.stripe.com/v1/customers/cus_9jWC3097MQwYwF/sources \ -u
:sk_test_4eC39HqLyjWDarjtT1zdp7dc
Stripe renvoie une liste des sources associées à ce client. Le type
de source pour le virement bancaire ACH possède une valeur ach_
. L’exemple de réponse suivant indique que le destinataire du virement bancaire ACH attend le paiement de la part du client.
{ "object": "list", "data": [ { "id": "src_19Q3AILlRB0eXbMt81RVDnM9", "object": "source", "amount": null, "client_secret": "src_client_secret_Z0zPIgnR0BVafiMLaJcxI3HS", "created": 1481585102, "currency": "usd", "customer": "cus_9jWC3097MQwYwF", "flow": "receiver", "livemode": false, "metadata": {}, "owner": { "address": null, "email": "jenny.rosen@example.com", "name": null, "phone": null, "verified_address": null,
Il peut arriver que les clients souhaitent utiliser des moyens de paiement autres que Stripe, par exemple, avec des chèques papier. Dans ce cas, Stripe vous permet de suivre l’état du paiement de vos factures. Après avoir reçu le paiement d’une facture d’un client en dehors de Stripe, vous pouvez marquer manuellement cette facture comme payée.
Gérer les exceptions
Si votre client règle un montant qui ne correspond pas à celui de la facture, les fonds ne sont pas débités et restent dans l’objet Source
. Si vous voulez utiliser ces fonds pour régler votre facture, vous pouvez faire usage des quelques options suivantes :
- Trop-perçu : si un utilisateur envoie plus de fonds que la somme indiquée dans la facture, Stripe marque automatiquement la facture comme payée, en utilisant les fonds qui correspondent à la facture en cours. Les fonds restants sont conservés dans le récepteur
Source
. Vous pouvez appliquer manuellement ces fonds à une facture. Si plusieurs factures impayées correspondent, Stripe applique les fonds à la facture la plus ancienne. - Paiement insuffisant : dans vos paramètres d’abonnement et d’e-mail, dans la section Paiements partiels, vous pouvez définir des règles en cas de paiements insuffisants. Vous pouvez spécifier que, dans les limites d’une certaine marge d’erreur, Stripe doit rapprocher automatiquement les factures et créditer la différence.
Un scénario typique de paiement insuffisant est que la banque d’un client prélève des fonds sur le montant total envoyé. Par exemple, si le client envoie 100 USD pour régler une facture de 100 USD, la banque du client peut prélever 20 USD, laissant ainsi 80 USD. Si cette différence (qui est généralement de l’ordre de 20 USD) est acceptable, vous pouvez minimiser l’effort manuel en spécifiant cette marge à l’avance.
Pour les autres exceptions :
- Si le destinataire dispose de fonds suffisants pour payer votre facture, vous pouvez réclamer la somme concernée dans le Dashboard en cliquant sur le bouton Débiter le client présent sur la facture, ou en appelant l’endpoint Pay invoice et en spécifiant l’objet de virement bancaire ACH comme source.
- Si les fonds pour payer la facture sont insuffisants et que vous n’annulez pas la différence, vous pouvez demander à votre client d’envoyer le montant restant. Vous pouvez également annuler l’ancienne facture, en ouvrir une nouvelle pour le montant le moins élevé et cliquer immédiatement sur Débiter le client.
Si votre client dispose d’une source de virement bancaire ACH avec des fonds suffisants, ou d’un compte bancaire ou d’une carte de crédit enregistré(e), vous pouvez utiliser ces sources pour le paiement de la facture en appelant l’endpoint Pay invoice avec la source que vous souhaitez utiliser.
Rembourser des paiements
Vous pouvez rembourser les paiements par virement bancaire ACH et par chèque via le Dashboard ou l’API. Toutefois, le client doit indiquer le compte sur lequel il souhaite que les fonds soient remboursés. Stripe contacte automatiquement le client à l’adresse e-mail fournie. Le remboursement est traité automatiquement dès que le client a fourni les informations relatives à son compte.
L’état initial du remboursement est pending
. Si le remboursement échoue, l’événement refund.
est envoyé et l’état du remboursement bascule sur failed
. Cela signifie que Stripe n’est pas en mesure de traiter le remboursement et que vous devez restituer les fonds à votre client en dehors de Stripe. Cette situation peut exceptionnellement se présenter lorsque le remboursement est envoyé vers un compte bloqué. Les remboursements qui abouti prennent quant à eux l’état succeeded
.
Tester un paiement
En mode test, vous pouvez simuler un transfert d’argent vers le récepteur en définissant l’e-mail du propriétaire apparaissant sur la source sur amount_
, où XXXX
correspond à la somme d’argent dont vous voulez simuler le virement. Le paiement ne sera associé à la facture que si celle-ci a été bloquée par Stripe pour empêcher toute modification. Cette opération a lieu une heure après la réception des webhooks ou lorsque vous avez envoyé un e-mail de facturation au client. Dans le Dashboard, vous pouvez envoyer immédiatement un e-mail en cliquant sur le bouton Envoyer la facture qui apparaît sur la facture.
Quelques instants après la demande de mise à jour, vous pouvez récupérer le paramètre receiver
:
Si la demande de mise à jour a abouti, l’attribut receiver
affiche les fonds :
{ "object": "list", "data": [ { "id": "src_19Q3AILlRB0eXbMt81RVDnM9", "object": "source", "amount": null, "client_secret": "src_client_secret_Z0zPIgnR0BVafiMLaJcxI3HS", "created": 1481585102, "currency": "usd", "customer": "cus_4fdAW5ftNQow1a", "flow": "receiver", "livemode": false, "metadata": {}, "owner": { "address": null, "email": "amount_1000@test.com", "name": null, "phone": null, "verified_address": null,
Dans ce cas, la facture ouverte du client (du même montant) apparaît comme payée, avec un objet de paiement correspondant qui affiche les détails du paiement.