Configuration
1. Collecter le moyen de paiement du client et créer le mandat via SetupIntent
Lors de la collecte de la carte de l’utilisateur en session, créez un mandat à l’aide d’unSetupIntent Stripe. L’utilisateur effectue l’authentification lors de la confirmation, et Stripe crée le mandat pour ce moyen de paiement.
- Définissez
intervalsursporadic— les recharges sont déclenchées par un seuil de solde, et non selon une cadence fixe. - Définissez
amount_typesurmaximum— pour prendre en charge des montants de prélèvement variables. - Définissez
amountsur une valeur suffisamment élevée — pour tenir compte de la variance des montants de recharge dans le temps.
- Définissez
intervalsur la récurrence correspondante (par exemplemonth). - Définissez
amount_typesurfixedsi le frais récurrent est connu, oumaximums’il est variable. - Définissez
amountsur le frais récurrent connu ou un maximum suffisamment élevé.
2. Attendre que le mandat devienne actif
Un mandat peut rester en étatpending jusqu’à 30 minutes après sa création. Vous pouvez vérifier son état de deux façons :
- Écoutez le webhook
mandate.updatedde Stripe et attendez questatusdevienneactive. - Récupérez le mandat par ID depuis le
SetupIntentet interrogez-le jusqu’à ce qu’il soitactive.
inactive, il ne peut pas être utilisé. Le client devra autoriser un nouveau mandat.
3. Créer et mapper le champ personnalisé du mandat
Sur le contrat Metronome, créez un champ personnalisé (par exemplestripe_mandate_id). Via l’interface de mappage des entités, mappez ce champ personnalisé de contrat au champ Stripe invoice.payment_settings → default_mandate.
4. Provisionner le client dans Metronome
Créez le contrat Metronome. Renseignez le champ personnaliséstripe_mandate_id avec l’ID du mandat créé à l’étape 1. Toutes les factures envoyées à Stripe tenteront d’attacher ce mandat.
5. Écouter le webhook action_required
Après la création de la facture avec le mandat associé, le paymentIntent peut passer à l’état action_required. Stripe émettra un webhook invoice.payment_action_required.
6. Confirmer le paiement
- Si le client approuve le prélèvement, le paiement réussit et le solde est libéré.
- Si le client ne répond pas ou si le mandat devient inactif, le paiement échoue et entre dans le flux normal d’échec. Un nouveau mandat doit être collecté et activé avant que les futures tentatives de recharge puissent réussir.
Limitations
- Les mandats doivent être créés et gérés entièrement dans Stripe. Metronome n’expose pas d’API pour interagir avec les mandats autre que le renvoi de la valeur du champ personnalisé défini.
- Les mandats doivent être configurés via un
SetupIntentpuisque tous les prélèvements, y compris le premier, sont hors session. - Metronome ne gère pas les événements du cycle de vie des mandats. Les échecs de paiement sont remontés via le webhook et le chemin d’échec habituels. Il est de votre responsabilité de mettre à jour le mandat dans Stripe et de prendre les mesures appropriées avant de réessayer.