Accéder directement au contenu
Créez un compte
ou
connecter-vous
Logo de la documentation Stripe
/
Demander à l'assistant IA
Créez un compte
Connectez-vous
Démarrer
Paiements
Revenus
Plateformes et places de marché
Gestion de fonds
Ressources pour les développeurs
Aperçu
À propos des paiements Stripe
Mettre votre intégration à niveau
Analyses des paiements
Paiements en ligne
PrésentationTrouver votre cas d'usageManaged Payments
Utiliser Payment Links
Créer une page de paiement
Développer une intégration avancée
Développer une intégration dans l'application
Moyens de paiement
Ajouter des moyens de paiement
    Présentation
    Options d'intégration des moyens de paiement
    Gérer les moyens de paiement par défaut dans le Dashboard
    Types de moyens de paiement
    Cartes bancaires
    Payer avec le solde Stripe
    Cryptomonnaies
    Prélèvements bancaires
    Virements avec redirection bancaire
    Virements bancaires
    Virements (Sources)
    Achetez maintenant, payez plus tard
    Paiements en temps réel
    Coupons
      Boleto
      Konbini
        Accepter un paiement
      Multibanco
      OXXO
    Portefeuilles
    Activer des moyens de paiement locaux par pays
    Moyens de paiement personnalisés
Gérer les moyens de paiement
Paiement accéléré avec Link
Interfaces de paiement
Payment Links
Checkout
Elements pour le web
Elements intégrés à l'application
Scénarios de paiement
Gérer plusieurs devises
Tunnels de paiement personnalisés
Acquisition flexible
Orchestration
Paiements par TPE
Terminal
Au-delà des paiements
Constituez votre entreprise
Cryptomonnaies
Financial Connections
Climate
AccueilPaiementsAdd payment methodsVouchersKonbini

Paiements Konbini

Utilisez les API Payment Intents et Payment Methods pour accepter les paiements via Konbini, un moyen de paiement courant dans les commerces japonais.

Les utilisateurs de Stripe au Japon peuvent accepter des paiements Kombini de clients situés au Japon en utilisant les API Payment Intents et Payment Methods. Pour payer, les clients fournissent un code de paiement, un numéro de confirmation et un paiement en espèces dans un commerce de proximité japonais. Stripe vous informe lorsque le paiement est effectué.

Configurer Stripe
Côté serveur

Pour commencer, vous avez besoin d’un compte Stripe. Inscrivez-vous.

Utilisez nos bibliothèques officielles pour accéder à l’API Stripe depuis votre application :

Command Line
Ruby
# Available as a gem sudo gem install stripe
Gemfile
Ruby
# If you use bundler, you can add this line to your Gemfile gem 'stripe'

Créer un PaymentIntent
Côté serveur

Pour représenter votre intention d’encaisser le paiement d’un client, Stripe utilise un objet PaymentIntent qui suit les changements d’état depuis la création du PaymentIntent Konbini jusqu’à son exécution.

Créez un PaymentIntent sur votre serveur en précisant un montant et la devise jpy (Konbini ne prend pas en charge d’autres devises). Si votre intégration inclut déjà l’API Payment Intents, ajoutez konbini à la liste des types de moyens de paiement valides pour votre PaymentIntent.

Command Line
cURL
curl https://api.stripe.com/v1/payment_intents \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d amount=1099 \ -d currency=jpy \ -d "payment_method_types[]"=konbini \ -d "payment_method_options[konbini][product_description]"="Tシャツ" \ -d "payment_method_options[konbini][expires_after_days]"=3

Récupérer la clé secrète du client

Le PaymentIntent contient une clé secrète à utiliser côté client pour finaliser le processus de paiement en toute sécurité. Vous pouvez adopter différentes approches pour transmettre cette clé secrète côté client.

Récupérez la clé secrète du client à partir d’un endpoint sur votre serveur, à l’aide de la fonction fetch du navigateur. Cette approche est recommandée si votre côté client est une application d’une seule page, en particulier si elle repose sur un framework front-end moderne tel que React. Créez l’endpoint de serveur qui gère la clé secrète du client :

main.rb
Ruby
get '/secret' do intent = # ... Create or retrieve the PaymentIntent {client_secret: intent.client_secret}.to_json end

Récupérez ensuite la clé secrète du client à l’aide JavaScript côté client :

(async () => { const response = await fetch('/secret'); const {client_secret: clientSecret} = await response.json(); // Render the form using the clientSecret })();

Options supplémentaires de moyens de paiement

Les options de moyens de paiement peuvent être définies dans les options des moyens de paiement sous la clé konbini.

ChampValeurObligatoireValeur par défaut
expires_after_daysNombre de jours calendaires avant l’expiration d’un paiement Konbini en attente. Les valeurs valides sont comprises entre 1 et 60 jours. Consultez la page Expiration.Non3
expires_atHorodatage Unix indiquant la date d’expiration du paiement Konbini en attente. Cette date doit être située à moins de 30 minutes de l’heure actuelle et à moins de 60 jours de l’application du paramètre au PaymentIntent. Consultez la page Expiration.Nonnon définie
product_descriptionLibellé produit de 22 caractères maximum, qui s’affiche dans les commerces de proximité pour les clients. La présence de caractères non codés en Shift JIS (JIS X 0208:1997) entraîne le renvoi d’une erreur. Bien que cela ne soit pas obligatoire, nous recommandons de définir cette option. Sinon, nous nous rabattons sur un caractère générique choisi à notre discrétion (par exemple, お買い上げ商品・サービス).Nonparamètre substituable

Expiration

Les paiements Konbini en attente expirent juste avant minuit (23 h 59 m 59 s JST) à la date donnée. Par exemple, si le paramètre expires_after_days est défini sur 2 et que le PaymentIntent est confirmé le lundi, le paiement Konbini en attente expirera le mercredi à 23 h 59 m 59 s heure du Japon (UTC+9).

Le paramètre expires_at est un horodatage Unix exprimé en secondes. Si cette valeur est définie à moins de 30 minutes de l’heure actuelle ou si la confirmation du PaymentIntent est effectuée moins de 30 minutes avant l’heure d’expiration, une erreur sera renvoyée.

Les paramètres expires_after_days et expires_at s’excluent mutuellement. Une erreur sera renvoyée s’ils sont tous les deux définis. Ils sont également facultatifs, donc si aucun de ces paramètres n’est défini, la date d’expiration par défaut de 3 jours après la création du PaymentIntent s’appliquera à 23 h 59 heure du Japon (UTC+9).

Gestion des erreurs

Les requêtes concernant la création, la mise à jour et la confirmation de PaymentIntents sont susceptibles d’échouer. Vous pouvez identifier la valeur error de la réponse de l’API pour en déterminer la raison. Ensuite, dans de nombreux cas, soumettez de nouveau votre requête ou corrigez l’erreur. Si vous indiquez une valeur pour l’option de moyen de paiement confirmation_number, vous pourriez notamment vouloir traiter les codes d’erreur spécifiques que nous vous renvoyons. Pour plus de détails, consultez la page consacrée aux numéros de confirmation.

Le moyen de paiement peut parfois devenir indisponible en raison de pannes, de maintenances programmées ou de vos habitudes d’utilisation. Pour plus de détails, consultez la page consacrée à la gestion des problèmes de disponibilité temporaires.

Recueillir les informations du moyen de paiement
Côté client

Créez un formulaire de paiement côté client pour recueillir les informations de facturation du client :

ChampValeur
nameLe nom complet du client, tronqué à une longueur maximum de 20 caractères sur les interfaces utilisateur et les reçus des commerces. Les caractères non codés en Shift JIS (JIS X 0208:1997) seront ignorés et remplacés.
emailL’adresse e-mail complète du client.

L’exemple de formulaire présenté ici recueille également le numéro de téléphone, lequel sera utilisé comme numéro de confirmation fourni par le client.

checkout.html
<form id="payment-form"> <div class="form-row"> <label for="name"> Name </label> <input id="name" name="name" required> </div> <div class="form-row"> <label for="email"> Email </label> <input id="email" name="email" required> </div> <div class="form-row"> <label for="phone"> Phone Number </label> <input id="phone" name="phone" required> </div> <!-- Used to display form errors. --> <div id="error-message" role="alert"></div> <button id="submit-button">Pay with Konbini</button> </form>

Envoyer le paiement à Stripe
Côté client

Lorsqu’un client clique pour payer avec Konbini, utilisez Stripe.js pour soumettre le paiement à Stripe. Stripe.js est notre bibliothèque JavaScript de base pour la création de tunnels de paiement.

Intégrez le script Stripe.js à votre page de paiement en l’ajoutant entre les balises head de votre fichier HTML.

checkout.html
<head> <title>Checkout</title> <script src="https://js.stripe.com/basil/stripe.js"></script> </head>

Créez une instance de Stripe.js avec le code JavaScript suivant sur votre page de paiement.

client.js
// Set your publishable key. Remember to switch to your live publishable key in production! // See your keys here: https://dashboard.stripe.com/apikeys const stripe = Stripe(
'pk_test_TYooMQauvdEDq54NiTphI7jx'
);

Utilisez stripe.confirmKonbiniPayment et la clé secrète du client de l’objet PaymentIntent que vous avez créé à l’étape 2 pour envoyer les informations de facturation du client.

À la confirmation, Stripe ouvrira automatiquement une fenêtre modale afin d’afficher les instructions associées au paiement Konbini pour votre client.

client.js
const form = document.getElementById('payment-form'); form.addEventListener('submit', async (event) => { event.preventDefault(); const result = await stripe.confirmKonbiniPayment( '{{PAYMENT_INTENT_CLIENT_SECRET}}', { payment_method: { billing_details: { name: document.getElementById('name').value, email: document.getElementById('email').value, }, }, payment_method_options: { konbini: { confirmation_number: document.getElementById('phone').value.replace(/\D/g,''), }, }, } ); // Stripe.js will open a modal to display the Konbini payment instructions to your customer // This async function finishes when the customer closes the modal if (result.error) { // Display error to your customer const errorMsg = document.getElementById('error-message'); errorMsg.innerText = result.error.message; } });

Remarque

L’exécution de la méthode stripe.confirmKonbiniPayment peut prendre plusieurs secondes. Pendant ce temps, bloquez le renvoi de votre formulaire et affichez un indicateur d’attente. Si vous recevez une erreur, montrez-la au client, réactivez le formulaire et masquez l’indicateur d’attente.

Options supplémentaires de moyens de paiement

Lors de la confirmation d’un PaymentIntent Konbini, d’autres options de moyens de paiement peuvent être définies dans les options des moyens de paiement sous la clé konbini.

ChampValeurObligatoireValeur par défaut
confirmation_numberChaîne numérique de 10 à 11 chiffres. Ce numéro apparaît également dans les instructions de paiement et ne peut pas contenir que des zéros. Si aucune valeur n’est fournie pour confirmation_number, Stripe en génèrera un pour vous de manière aléatoire. Pour en savoir plus, consultez la page Numéros de confirmation.Nonnon définie

Numéros de confirmation

Pour finaliser leur paiement, vos clients devront se référer au confirmation_number. Si vous choisissez de définir cette valeur ou de laisser vos clients la définir, nous vous suggérons d’utiliser le numéro de téléphone du client. Un confirmation_number peut également être déterminé lors de la création du PaymentIntent côté serveur, mais il est en général défini par le client lors de la confirmation du PaymentIntent. La valeur définie lors de la création du PaymentIntent peut être modifiée jusqu’à la confirmation du PaymentIntent.

Si un confirmation_number défini a trop d’occurrences dans les transactions en cours du commerce, il pourrait être rejeté au moment de la confirmation du PaymentIntent. Dans ce cas, le code d’erreur renvoyé serait alors payment_intent_konbini_rejected_confirmation_number. Ce message ne s’affiche que lors de la confirmation d’un PaymentIntent.

Stripe bloque tous les numéros de confirmation composés uniquement de zéros lors de la création, de la modification et de la confirmation du PaymentIntent. Vérifiez que vous n’utilisez pas cette valeur et que vous n’autorisez pas vos clients à l’utiliser.

Gestion des erreurs

La confirmation d’un PaymentIntent côté client peut aussi échouer. Vous devez consulter la valeur error pour en déterminer la raison. Vous pourrez ainsi montrer l’erreur à votre client ou la corriger et essayer de nouveau.

FacultatifAfficher vos propres instructions de paiement Konbini pour votre client
Côté client

FacultatifSoumettre le paiement à Stripe depuis votre serveur
Côté serveur

FacultatifPersonnaliser les instructions de paiement

FacultatifEnvoyer des instructions sur les paiements par e-mail

FacultatifEnvoyer des e-mails de rappel

Gérer les événements post-paiement
Côté serveur

Konbini est un moyen de paiement à notification différée, ce qui signifie que les fonds ne sont pas disponibles immédiatement. Les clients ne sont pas obligés de procéder immédiatement au règlement dans un magasin de proximité après avoir finalisé la commande.

Une fois le paiement Konbini effectué, Stripe envoie un événement payment_intent.succeeded. Utilisez le Dashboard ou créez un gestionnaire de webhook afin de recevoir ces événements et d’exécuter des actions. Exemples d’actions : envoyer un e-mail de confirmation de commande à votre client, enregistrer la vente dans une base de données ou lancer un flux de livraison.

S’il peut être établi avec certitude qu’un paiement Konbini en attente n’a pas été finalisé (généralement, environ une heure après sa date/heure limite d’expiration), Stripe envoie un événement payment_intent.payment_failed.

ÉvénementDescriptionÉtapes suivantes
payment_intent.requires_actionLe paiement Konbini en attente est créé.Vous pouvez, à titre facultatif, envoyer le client sur la page contenant les instructions de paiement. Attendez que le client effectue le paiement Konbini.
payment_intent.succeededLe client a effectué le paiement Konbini en attente avant la date d’expiration.Traitez la commande de biens ou de services du client.
payment_intent.payment_failedLe client n’a pas effectué le paiement Konbini en attente avant la date d’expiration.Envoyez un e-mail ou une notification push au client pour lui demander d’utiliser un autre moyen de paiement.

Remarque

En mode test, l’état d’un PaymentIntent Konbini peut changer automatiquement en fonction des paramètres envoyés, tels que email. Vous pouvez confirmer les mises à jour sur le Dashboard. Pour en savoir plus, consultez la page Tester l’intégration.

Recevoir des événements et exécuter des actions

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 en local, grâce à l’interface de ligne de commande Stripe.

  • Créer un webhook personnalisé

Tester l'intégration

Lors des tests, définissez payment_method.billing_details.email sur les valeurs suivantes lorsque vous appelez stripe.confirmKonbiniPayment pour tester différents scénarios. Vous pouvez effectuer vos tests avec un numéro de confirmation spécial et/ou un modèle d’e-mail. Si les deux sont fournis, le numéro de confirmation spécial s’applique.

E-mailNuméro de confirmationDescription

{any_prefix}@{any_domain}

11111111110

Simule un paiement Konbini qui réussit après 3 minutes. Le webhook payment_intent.succeeded s’affiche ensuite.

Exemple : hanako@test.com

{any_prefix}succeed_immediately@{any_domain}

22222222220

Simule un paiement Konbini qui réussit immédiatement. Le webhook payment_intent.succeeded s’affiche ensuite.

Exemple : succeed_immediately@test.com

{any_prefix}expire_immediately@{any_domain}

33333333330

Simule un paiement Konbini qui expire immédiatement. Le webhook payment_intent.payment_failed s’affiche ensuite.

Le champ expires_at de next_action.konbini_display_details est défini sur la date/heure du jour, quelle que soit la valeur du paramètre expires_after_days ou expires_at des options du moyen de paiement.

Exemple : expire_immediately@test.com

{any_prefix}expire_with_delay@{any_domain}

44444444440

Simule un paiement Konbini qui ne réussit jamais. Il expire au bout de 3 minutes et le webhook payment_intent.payment_failed s’affiche ensuite.

Le champ expires_at de next_action.konbini_display_details est défini pour expirer après 3 minutes, quelle que soit la valeur définie dans les paramètres expires_after_days ou 'expires_at des options du moyen de paiement.

Exemple : expire_with_delay@test.com

{any_prefix}fill_never@{any_domain}

55555555550

Simule un paiement Konbini qui ne réussit jamais. Il expire conformément à la valeur du champ expires_at dans next_action.konbini_display_details, en fonction des paramètres définis dans les options des moyens de paiement. Le payment_intent.payment_failed s’affiche ensuite.

Exemple : fill_never@test.com

Pour tester la gestion des erreurs touchant au numéro de confirmation, vous pouvez utiliser les valeurs suivantes pour payment_method_options[confirmation_number] :

  • 01234567890 génère un code d’erreur payment_intent_konbini_rejected_confirmation_number.
  • 00000000000 génère un code d’erreur de validation générique. Cette erreur peut être évitée dans votre intégration à l’aide de la prévalidation.

Expiration et annulation

Une fois la date définie par la valeur expires_at dans next_action.konbini_display_details, le client ne peut plus initier le processus de paiement d’un paiement Konbini en attente dans un kiosque de supérette. Cependant, si un reçu de paiement valide est émis avant l’échéance, il pourra finaliser le paiement à la caisse après la date expires_at.

Dans ce cas, il existe une marge de manœuvre pour éviter des échecs de paiement prématurés. L’état du PaymentIntent passe à requires_payment_method. Vous pouvez alors annuler ou confirmer le PaymentIntent avec un autre moyen de paiement.

Un paiement Konbini en attente peut également être annulé une fois confirmé, avant même la date spécifiée par next_action.konbini_display_details.expires_at. De la même manière, la mise à jour du PaymentIntent ou sa confirmation avec un autre moyen de paiement annulera de manière implicite le paiement Konbini existant.

Si le client effectue actuellement le paiement Konbini dans un commerce de proximité, la requête d’annulation échouera. L’annulation peut à nouveau être envisagée si le client abandonne la tentative de paiement et une fois que le bordereau de paiement a expiré.

Veuillez noter que les problèmes de disponibilité temporaires des moyens de paiement impactent également les demandes d’annulation (explicites comme implicites).

Mise en garde

Lorsque vous annulez un paiement en attente, les instructions de paiement initiales sont invalidées. Dans la plupart des cas d’usage, nous vous suggérons de contacter votre client pour l’informer de l’annulation.

Lorsque vous reconfirmez un PaymentIntent dont l’état affiche requires_action, nous créons de nouvelles instructions ainsi qu’une nouvelle hosted_voucher_url. Vous devez veiller à ce que votre client en soit informé.

Gérer les problèmes temporaires de disponibilité

Les codes d’erreur suivants indiquent que des problèmes temporaires affectent la disponibilité du moyen de paiement :

CodeDescriptionGestion
payment_method_rate_limit_exceededUn trop grand nombre de requêtes successives sont effectuées pour ce moyen de paiement, dont les limites sont plus strictes que nos limites de débit à l’échelle de l’API.Il suffit généralement de réessayer quelques instants plus tard pour résoudre le problème. Toutefois, en cas d’utilisation intensive du moyen de paiement (par exemple pendant une vente sur votre site web), ces erreurs peuvent persister pour un certain nombre de requêtes. Dans ce cas, vous pouvez demander à vos clients d’envisager un autre moyen de paiement.
payment_method_not_availableLe moyen de paiement rencontre des problèmes temporaires inconnus qui peuvent potentiellement se prolonger un certain temps (par exemple, pendant les pannes ou les périodes de maintenance programmées).Nous vous conseillons d’inviter vos utilisateurs à effectuer leur achat avec un autre moyen de paiement ou à réessayer plus tard.

Mise en garde

Si vous prévoyez une utilisation intensive, que ce soit de manière générale ou pour un événement à venir, veuillez nous contacter suffisamment à l’avance.

Remboursements

Il est possible de rembourser les paiements Konbini via le Dashboard ou l’API.

Pour exécuter un remboursement et l’envoyer directement sur le compte bancaire du client, votre client doit fournir les coordonnées bancaires du compte sur lequel il souhaite recevoir les fonds. Stripe contacte le client à l’adresse e-mail indiquée dans les informations de facturation et lui demande ces informations. Une fois les coordonnées bancaires reçues, nous procédons automatiquement au remboursement.

L’état du remboursement évolue comme suit :

ÉvénementÉtat du remboursement
Le remboursement est créérequires_action
Le client soumet ses coordonnées bancaires et Stripe initie le remboursementpending
Le remboursement devrait arriver sur le compte bancaire du clientsucceeded
La banque du client reverse les fonds à Striperequires_action
Le remboursement passe à l’état requires_action 45 jours après sa créationfailed
Le remboursement est annulé à partir d’un état requires_actioncanceled

Si la banque du client ne parvient pas à mener à bien le transfert, les fonds sont reversés à Stripe et le remboursement bascule sur l’état requires_action. Cette situation se produit si le nom du titulaire du compte ne correspond pas aux données que la banque bénéficiaire possède dans ses archives, ou si le numéro de compte bancaire fourni contient une faute de frappe. Dans ces cas-là, Stripe envoie un e-mail au client pour l’informer de l’échec de l’opération et lui demande de soumettre à nouveau ses coordonnées bancaires.

Si votre client ne fournit pas ses coordonnées bancaires sous 45 jours, l’état du remboursement passe à failed et nous envoyons l’événement refund.failed. Cela signifie que Stripe n’est pas en mesure de procéder au remboursement et que vous devez restituer les fonds à votre client en dehors de Stripe.

Le champ instructions_email du remboursement correspond à l’adresse e-mail à laquelle le remboursement a été envoyé. En attente de la réponse du client, vous pouvez retrouver les informations relatives à la date et l’adresse d’envoi de l’e-mail sous le champ next_action.display_details.email_sent du remboursement.

Chaque remboursement (y compris les remboursements partiels) peut entraîner des frais. Veuillez consulter votre contact chez Stripe pour en savoir plus à ce sujet.

Tester les remboursements

Pour tester le comportement de remboursement en mode test, utilisez les comptes bancaires de test suivants sur la page de collecte des coordonnées bancaires, dont le lien figure dans l’e-mail envoyé au client. Aucunes autres coordonnées bancaires ne seront acceptées.

RoutageCompteType
11000000001234Le remboursement réussit.

1100000

1111113

1111116

1111113

3333335

4444440

Le remboursement échoue.

Tester l’expiration des remboursements

Vous pouvez simuler l’expiration d’un remboursement en mode test en effectuant un appel à l’API.

Command Line
curl https://api.stripe.com/v1/test_helpers/refunds/{{REFUND_ID}}/expire \ -X POST \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
Cette page vous a-t-elle été utile ?
OuiNon
Besoin d'aide ? Contactez le service Support.
Rejoignez notre programme d'accès anticipé.
Consultez notre log des modifications.
Des questions ? Contactez l'équipe commerciale.
LLM ? Lire llms.txt.
Propulsé par Markdoc