Accepter un paiement Multibanco
Découvrez comment accepter le moyen de paiement Multibanco.
Mise en garde
Nous vous recommandons de suivre le guide Accepter un paiement, sauf si vous devez exécuter la confirmation manuelle côté serveur, ou si votre intégration requiert la présentation de moyens de paiement de manière distincte. Si vous avez déjà intégré Elements, consultez le Guide de migration du Payment Element.
Multibanco est un moyen de paiement à l’aide de coupons répandu au Portugal. Si votre entreprise est établie en Europe ou aux États-Unis, vous pouvez accepter les paiements Multibanco de vos clients au Portugal à l’aide de l’API Payment Intents.
Pour effectuer une transaction, les clients reçoivent un bon sur lequel figurent les numéros d’entité et de référence Multibanco. Les clients utilisent ces informations de coupon pour effectuer un paiement en dehors de votre tunnel de paiement, via leur espace bancaire en ligne ou au distributeur automatique de billets.
La confirmation du paiement peut être retardée de plusieurs jours en raison de l’initiation d’un virement bancaire lorsqu’un client règle un bon Multibanco. Les virements bancaires peuvent subir des retards, en particulier le week-end, ce qui contribue à retarder la confirmation du paiement.
Configurer StripeCôté serveurCôté client
Tout d’abord, il vous faut un compte Stripe. Inscrivez-vous.
Côté serveur
Pour cette intégration, votre serveur doit être doté d’endpoints qui communiquent avec l’API Stripe. Utilisez les bibliothèques officielles pour accéder à l’API Stripe depuis votre serveur :
Côté client
Le SDK iOS de Stripe est disponible en open source et fait l’objet d’une documentation complète. Il est également compatible avec les applications prenant en charge iOS 13 et les versions ultérieures.
Remarque
Pour obtenir de plus amples informations sur la version la plus récente du SDK et ses versions antérieures, consultez la page des versions sur GitHub. Pour recevoir une notification lors de la publication d’une nouvelle version, surveillez les versions à partir du référentiel.
Configurez le SDK avec votre clé publiable Stripe au démarrage de votre application. Cela lui permet d’envoyer des requêtes à l’API Stripe.
Remarque
Utilisez vos clés de test lors de vos activités de test et de développement et vos clés du mode production pour la publication de votre application.
Créer un PaymentIntentCôté serveurCôté client
Stripe utilise un objet PaymentIntent pour représenter votre intention d’encaisser le paiement d’un client, qui suit les changements d’état du paiement, de la création du bon Multibanco à la finalisation du règlement.
Côté serveur
Créez un PaymentIntent sur votre serveur en précisant un montant et la devise eur
(Multibanco ne prend pas en charge d’autres devises). Si votre intégration inclut déjà l’API Payment Intents, ajoutez multibanco
à la liste des types de moyens de paiement valides pour votre PaymentIntent.
Le PaymentIntent renvoyé contient la clé secrète du client, que vous utiliserez pour confirmer le PaymentIntent. Renvoyez cette clé secrète côté client pour permettre son utilisation à l’étape suivante.
Côté client
Côté client, demandez un PaymentIntent auprès de votre serveur et sauvegardez la clé secrète du client.
Collecter les informations du moyen de paiementCôté client
Dans votre application, collectez les informations de facturation requises suivantes auprès du client. Ensuite, créez un objet STPPaymentIntentParams à l’aide de ces informations.
Champ | Valeur |
---|---|
email | L’adresse e-mail complète du client. |
Envoyer le paiement à StripeCôté client
Soumettez les informations de facturation du client en appelant STPPaymentHandler confirmPayment avec la clé secrète du client de l’objet PaymentIntent que vous avez créé. Une vue web affiche alors le bon Multibanco. Ensuite, le bloc de finalisation est appelé avec le résultat du paiement.
Stripe envoie un événement payment_intent.requires_action lors de la création d’un bon Multibanco. Si vous avez besoin d’envoyer un e-mail avec le lien vers les instructions de paiement du bon, vous pouvez localiser le hosted_
dans payment_intent.next_action.multibanco_display_details.hosted_voucher_url.
Gérer les événements post-paiementCôté serveur
Multibanco est un moyen de paiement à notification différée. Un client règle un bon Multibanco en dehors de votre tunnel de paiement, via son espace bancaire en ligne ou à un distributeur automatique de billets.
Une fois qu’un paiement Multibanco aboutit, Stripe envoie un événement payment_intent.succeeded. Utilisez le Dashboard ou créez un gestionnaire de webhooks pour recevoir ces événements et exécuter des actions, comme envoyer une confirmation de commande par e-mail à votre client, enregistrer la vente dans une base de données ou lancer un flux de livraison.
En savoir plus sur l’expiration des bons Multibanco.
Événement | Description | Prochaines étapes |
---|---|---|
payment_ | Le bon Multibanco a bien été créé. | Attendez que le client règle le bon Multibanco. |
payment_ | Le client ne peut plus régler le bon Multibanco. | Attendez que le paiement aboutisse ou échoue. |
payment_ | Le client a payé le bon Multibanco. | Traitez la commande de biens ou de services du client. |
payment_ | Le client n’a pas payé le bon Multibanco. | Envoyez un e-mail ou une notification push au client pour lui demander d’utiliser un autre moyen de paiement. |
Recevoir des événements et exécuter des actions métier
Manuellement
Utilisez le Dashboard Stripe pour consulter tous vos paiements Stripe, envoyer des reçus par e-mail, gérer les virements et relancer les paiements en échec.
Afficher vos paiements tests dans le Dashboard
Code personnalisé
Créez un gestionnaire de webhooks pour écouter des événements et créer des tunnels de paiement asynchrones personnalisés. Testez et déboguez votre intégration de webhooks localement, grâce à l’interface de ligne de commande Stripe.
Découvrez comment créer un webhook personnalisé.
Tester l'intégration
En environnement de test, définissez STPPaymentMethodBillingDetails email sur les valeurs suivantes lorsque vous appelez STPPaymentHandler confirmPayment pour tester différents scénarios.
Description | |
---|---|
| Simule un bon Multibanco payé par un client. Le webhook Exemple : julie@exemple.com |
| Simule un bon Multibanco qu’un client paie immédiatement. Le webhook Exemple : succeed_immediately@exemple.com |
| Simule un bon Multibanco qui expire immédiatement. Le webhook Exemple : expire_immediately@exemple.com |
| Simule un bon Multibanco qui expire avant le règlement du client. Le webhook Exemple : expire_with_delay@exemple.com |
| Simule un bon Multibanco qui n’aboutit jamais. Le webhook Exemple : fill_never@example.com |
Date d’expiration
Les bons Multibanco expirent à la date UNIX expires_
indiquée dans next_action.multibanco_display_details.expires_at, soit 7 jours après la création du bon. Les clients ne peuvent pas payer un bon Multibanco après son expiration. Après expiration, l’état du PaymentIntent passe de requires_
à processing
et Stripe envoie un événement payment_intent.processing.
Le PaymentIntent demeure à l’état processing
pendant une période de 4 jours pour tenir compte des éventuels retards de notification de paiement réussi causés par les retards de virement bancaire. Si le paiement Multibanco n’est pas finalisé au cours de cette période, l’état du PaymentIntent passe à requires_
et Stripe envoie un événement payment_intent.payment_failed. Si vous recevez les fonds du client après cette période, Stripe lance automatiquement un processus de remboursement pour le montant indûment versé.
Annulation
Vous pouvez annuler les bons Multibanco en annulant un PaymentIntent. Après l’annulation, Stripe envoie un événement payment_intent.canceled.
Si les fonds d’un client sont versés alors que le bon Multibanco est annulé, Stripe lance automatiquement le processus de remboursement du montant indûment versé.
Remarque
L’annulation d’un paiement en attente entraîne l’invalidation des instructions initiales du bon. Lorsque vous annulez un paiement Multibanco en attente, informez-en votre client.
Lorsque vous reconfirmez avec succès un PaymentIntent à l’état requires_
, Stripe crée de nouvelles instructions pour le coupon et un nouveau hosted_
. Vous devez les fournir à votre client.
Remboursements
En savoir plus sur les remboursements Multibanco.