Sur cette page
Les moyens de paiement se règlent dans Facturation → Paiements → Configurer. Deux passerelles sont intégrées : Stripe (carte bancaire, page de paiement Stripe Checkout avec 3-D Secure) et PayPal. Chaque passerelle affiche son URL de notification (webhook), avec un bouton pour la copier :
| Passerelle | URL du webhook | Événements à cocher |
|---|---|---|
| Stripe | https://votre-domaine/webhooks/payments/stripe |
checkout.session.completed, checkout.session.async_payment_succeeded, charge.dispute.created |
| PayPal | https://votre-domaine/webhooks/payments/paypal |
PAYMENT.CAPTURE.COMPLETED, CUSTOMER.DISPUTE.CREATED |
C’est ce webhook qui marque la facture payée et déclenche la création du service : sans lui, les paiements ne sont pas confirmés.
Proposer ce moyen de paiement ne peut être coché qu’une fois tous les champs remplis. L’Ordre d’affichage décide de l’ordre des boutons au paiement. Les secrets sont chiffrés et ne sont jamais réaffichés : laissez un champ vide pour garder la valeur enregistrée.
Stripe (carte bancaire)
- Tableau de bord Stripe → Développeurs → Clés API : copiez la clé secrète (
sk_live_…, ou une clé restreinterk_live_…). - Développeurs → Webhooks → Ajouter un endpoint : collez l’URL du webhook et sélectionnez les trois événements :
checkout.session.completed— paiement réussi ;checkout.session.async_payment_succeeded— paiements différés (prélèvements…) ;charge.dispute.created— ouverture d’un litige (rétrofacturation).
- Copiez le secret de signature de l’endpoint (
whsec_…). - Dans Velnex : Clé secrète, Secret de signature du webhook, cochez Proposer ce moyen de paiement, enregistrez.
Mode test : il n’y a pas d’interrupteur, utilisez simplement une clé sk_test_… et un endpoint créé en mode test, puis la carte 4242 4242 4242 4242. Remplacez clé et secret de signature en passant en production.
PayPal
- developer.paypal.com → Apps & Credentials : créez une application REST et copiez le Client ID et le Secret.
- Dans l’application, Webhooks → Add Webhook : collez l’URL du webhook et cochez
PAYMENT.CAPTURE.COMPLETEDetCUSTOMER.DISPUTE.CREATED. Copiez l’ID du webhook. - Dans Velnex : Environnement (« Sandbox (tests) » puis « Production »), Client ID, Secret, ID du webhook, cochez Proposer ce moyen de paiement.
Le paiement est capturé par Velnex au retour du client ; le webhook sert de filet de sécurité s’il ferme la page trop tôt.
Les identifiants Sandbox et Production sont différents (application et webhook compris) : pensez à tout remplacer en passant en production.
Litiges et rétrofacturations
Quand un client conteste un paiement (événements charge.dispute.created ou CUSTOMER.DISPUTE.CREATED), Velnex :
- marque le paiement et la facture « Contesté » ;
- suspend les services actifs payés par cette facture (motif « litige », qui n’est jamais levé automatiquement) ;
- envoie un e-mail « Litige sur la facture … » à l’équipe ayant la permission de gérer les factures.
Répondez au litige avec vos justificatifs sur le tableau de bord de Stripe ou PayPal. Si vous l’emportez, réactivez les services depuis la fiche du service ; sinon, laissez-les suspendus ou résiliez-les.
Remboursements
Un remboursement passe toujours par un avoir : sur une facture payée, Créer un avoir puis choisissez Rembourser via Stripe/PayPal (le remboursement est fait par l’API de la passerelle avant la création de l’avoir) ou Remboursé à part. Voir « Factures, avoirs et remboursements ».
Autres règlements
Virements, chèques et espèces s’enregistrent depuis la facture avec Marquer comme payée : moyen (Virement bancaire, Chèque, Espèces, Autre), référence et note interne. Si aucune passerelle n’est active, vos clients voient un message les invitant à vous contacter pour payer.
Dépannage
| Symptôme | Cause probable |
|---|---|
| Paiement réussi chez Stripe/PayPal, facture toujours « À payer » | webhook absent, mauvaise URL, ou mauvais secret de signature / ID de webhook |
| Stripe affiche des erreurs 400 sur l’endpoint | secret whsec_… d’un autre endpoint (test ↔ production) |
| Stripe/PayPal affichent des erreurs 404 | la passerelle n’est pas activée dans Velnex |
| Erreurs 419 ou redirections sur l’URL du webhook | un pare-feu applicatif ou Cloudflare bloque les requêtes POST vers /webhooks/ |
Un paiement reçu sur une facture qui n’est plus payable (annulée…) est tout de même enregistré, et l’équipe reçoit l’e-mail « Paiement inattendu sur la facture ».
Cet article n’a pas résolu votre problème ?
Ouvrir un ticket