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
      Affirm
      Afterpay/Clearpay
      Alma
      Billie
      Capchase Pay
      Klarna
        Accepter un paiement
        Configurer des paiements futurs
        Répondre aux litiges
      Kriya
      Mondu
      Paiement sur facture
      Scalapay
      SeQura
      Sunbit
      Zip
    Paiements en temps réel
    Coupons
    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 methodsBuy now, pay laterKlarna

Accepter les paiements Klarna

Comment accepter les paiements Klarna, un moyen de paiement international qui permet aux clients d'acheter tout de suite et de payer plus tard

Postes de facture unifiés avec Klarna

Pour optimiser les taux d’approbation lors de l’intégration à Klarna, incluez des données line_items pour représenter le contenu du panier d’un acheteur. Pour bénéficier d’un accès anticipé, consultez la page Postes de paiement.

Les utilisateurs de Stripe peuvent utiliser l’API Payment Intents (un chemin d’intégration qui permet de créer de créer des paiements avec tous les moyens de paiement pris en charge) pour accepter les paiements Klarna de leurs clients dans les pays pris en charge par Klarna.

Klarna est un moyen de paiement à usage unique et à notification immédiate pour lequel le client doit authentifier son paiement. Les clients sont redirigés vers le site de Klarna, sur lequel ils sont invités à choisir une option de paiement (paiement intégral immédiat, versements échelonnés ou paiement différé). Une fois que le client a accepté les conditions, Klarna garantit que les fonds sont disponibles pour le client et les transfère vers votre compte Stripe. Le client rembourse Klarna selon l’option de paiement qu’il a choisie.

Remarque

Avant de commencer l’intégration, assurez-vous que votre compte est éligible à Klarna en vous rendant dans vos paramètres des moyens de paiement.

Configurer Stripe
Côté serveur

Pour commencer, vous devez créer un compte Stripe.

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

Un PaymentIntent est un objet qui représente votre intention de collecter un paiement auprès d’un client et qui suit le cycle de vie du processus de paiement à chaque étape. Tout d’abord, créez un PaymentIntent sur votre serveur.

Si votre intégration inclut déjà l’API Payment Intents, ajoutez klarna à 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 "payment_method_types[]"=klarna \ -d amount=1099 \ -d currency=eur

Klarna requiert uniquement la devise du client. Si vous transmettez le paramètre facultatif shipping, assurez-vous que les champs suivants sont définis et qu’ils ne sont pas vides : name, address.line1, city, country et postal_code.

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 })();

Soumettre le paiement à Stripe
Côté client

À cette étape, vous effectuerez les paiements Klarna côté client avec Stripe.js.

Configurer Stripe.js

Lorsqu’un client clique pour payer avec Klarna, nous vous recommandons d’utiliser Stripe.js pour soumettre le paiement à Stripe. Stripe.js est notre bibliothèque JavaScript de base pour créer les tunnels de paiement. Elle gère automatiquement les opérations complexes telles que la redirection décrite ci-dessous, et vous permettra de facilement étendre votre intégration à d’autres moyens de paiement à l’avenir. Incluez le script Stripe.js sur votre page de paiement en l’ajoutant en haut 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.

script.js
// Set your publishable key: remember to change this to your live publishable key in production // See your keys here: https://dashboard.stripe.com/apikeys var stripe = Stripe(
'pk_test_TYooMQauvdEDq54NiTphI7jx'
);

Au lieu de transmettre au client l’objet PaymentIntent dans son intégralité, utilisez la clé secrète du client de l’étape 2. Cette clé est différente de vos clés API qui servent à authentifier les requêtes envoyées aux API Stripe.

La clé secrète du client doit être utilisée avec prudence, car elle peut servir à mener à bien le paiement. Ne l’enregistrez pas, ne l’intégrez pas dans des URL et ne la dévoilez à personne d’autre que votre client.

Utilisez stripe.confirmKlarnaPayment pour exécuter la redirection hors de votre page et effectuer le paiement. Ajoutez une adresse return_url à cette fonction pour indiquer à Stripe vers quelle page rediriger l’utilisateur une fois le paiement effectué sur le site web ou l’application mobile de Klarna.

Sur la page de paiement Klarna, le client fait son choix parmi les options de paiement disponibles dans son pays. Consultez le tableau de la page de présentation pour voir le détail des options disponibles selon les marchés. Vous ne pouvez pas limiter ni présélectionner les options de paiement sur la page de paiement Klarna : en laissant le client sélectionner l’option de son choix, vous maximisez vos chances de conclure des transactions.

client.js
// Redirects away from the client const {error} = await stripe.confirmKlarnaPayment( '{{PAYMENT_INTENT_CLIENT_SECRET}}',{ return_url: 'https://example.com/checkout/complete', } ); if (error) { // Inform the customer that there was an error. }

Lorsque votre client effectue un paiement, Stripe le redirige vers l’URL return_url et inclut les paramètres de requête d’URL suivants. La page de redirection peut utiliser ces paramètres pour récupérer l’état du PaymentIntent et ainsi afficher l’état du paiement pour le client.

Lorsque vous spécifiez une URL return_url, vous pouvez également ajouter vos propres paramètres de requête à utiliser sur la page de redirection.

ParamètreDescription
payment_intentIdentifiant unique du PaymentIntent.
payment_intent_client_secretLa clé secrète du client de l’objet PaymentIntent. Pour les intégrations d’abonnements, le client_secret est également exposé sur l’objet Invoice via confirmation_secret

Lorsque le client est redirigé vers votre site, vous pouvez utiliser le payment_intent_client_secret pour interroger le PaymentIntent et communiquer l’état de la transaction à votre client.

Vous trouverez des informations sur l’option de paiement Klarna sélectionnée par le client sur l’attribut charge de la propriété payment_method_details. Quatre valeurs sont possibles : pay_later, pay_with_financing, pay_now et pay_in_installments. Consultez notre page de présentation de Klarna pour plus d’informations sur ces options.

Vous pouvez également identifier la langue utilisée pour localiser la page de paiement Klarna sous la propriété payment_method_details.

{ "charges": { "data": [ { "payment_method_details": { "klarna": { "payment_method_category": "pay_in_installments", "preferred_locale": "en-US" }, "type": "klarna" }, "id": "src_16xhynE8WzK49JbAs9M21jaR", "object": "source", "amount": 1099, "client_secret": "src_client_secret_UfwvW2WHpZ0s3QEn9g5x7waU",

Tester votre intégration Klarna

Nous avons réuni ci-dessous des données de test pour les pays pris en charge. Dans un environnement de test, Klarna s’appuie sur l’adresse e-mail fournie pour approuver ou refuser une transaction.

ApprouvéRefusé
Date de naissance10/07/197003-05-1994
PrénomTestJohn
NomPerson-ausnow
RueWharf StSilverwater Rd
Numéro de rue41-5
Code postal48772128
VillePort DouglasSilverwater
RégionQLDNSW
Téléphone+61473752244+61473763254
Adresse e-mailcustomer@email.aucustomer+denied@email.au

Pour les tests en production, vous pouvez utiliser un montant de 3500 dans votre devise locale pour tester toutes les options de paiement proposées par Klarna. Par exemple, pour tester le paiement en 3 fois en Italie, vous pouvez utiliser une transaction de 35,00 EUR.

Authentification à deux facteurs

Tout numéro à six chiffres forme un code d’authentification à deux facteurs valide. Utilisez 999999pour que l’authentification échoue.

Mode de remboursement

Dans le flux Klarna, vous pouvez utiliser les valeurs de test suivantes pour essayer divers types de remboursements :

TypeValeur
Prélèvement automatiqueDE11520513735120710131
Virement bancaireBanque de démonstration
Carte bancaire
  • Numéro : 4111 1111 1111 1111
  • CVV : 123
  • Date d’expiration : toute date future valide
Carte de débit
  • Numéro : 4012 8888 8888 1881
  • CVV : 123
  • Date d’expiration : toute date future valide

FacultatifSéparer l'autorisation et la capture

FacultatifGérer la redirection Klarna manuellement

FacultatifGérer les événements post-paiement

FacultatifPersonnaliser la page de paiement Klarna

FacultatifAjouter des postes de facture au Paymentintent

FacultatifAfficher des informations relatives aux moyens de paiement sur votre site Web

Échecs de paiement

Klarna prend en compte de nombreux facteurs pour accepter ou refuser une transaction (par exemple, la durée d’utilisation de Klarna, le montant résiduel que le client doit rembourser ou encore la valeur de la commande actuelle).

Lorsque le client sélectionne un moyen de paiement différé, Klarna effectue une évaluation des risques avant d’accepter la transaction. Klarna peut refuser la transaction en raison d’un résultat insatisfaisant de l’évaluation des risques, du montant de la transaction en question ou du niveau de dette du client. C’est pourquoi nous vous recommandons d’intégrer des options de paiement supplémentaires telles que card dans votre tunnel de paiement. Dans ces cas, le PaymentMethod est dissocié et l’état de l’objet PaymentIntent passe automatiquement à requires_payment_method.

Les clients sont tenus d’effectuer le paiement dans les 48 heures suivant leur redirection vers le site Klarna. Si aucune action n’est effectuée au bout de 48 heures, le PaymentMethod est dissocié et l’état de l’objet PaymentIntent passe automatiquement de requires_action à requires_payment_method.

Dans ce cas, informez votre client pour réessayer avec une option de paiement différente présentée dans votre tunnel de paiement.

Limites de débit Klarna

Les requêtes API adressées à Klarna sont soumises à des limites de débit supplémentaires qui dépassent les limites de débit à l’échelle de l’API de Stripe. Ces limites peuvent varier en fonction de la forme des requêtes API que vous effectuez. En général, si vous effectuez plus de 360 requêtes par minute, vous constaterez peut-être une limitation de débit sous la forme de réponses avec le code d’état HTTP 400 ou 402. Veuillez nous contacter pour obtenir plus d’informations si vous craignez que votre utilisation n’atteigne ces niveaux, car Klarna pourrait augmenter ces limites au cas par cas.

Messages d’erreur

Les paiements Klarna qui échouent renvoient normalement l’un des codes d’échec suivants. Ces codes apparaissent dans l’objet API last_payment_error.

Mise en garde

Dans les versions de l’API antérieures à 2023-08-16, chaque erreur Klarna était signalée comme suit : payment_intent_authentication_failure. Assurez-vous que votre version de l’API est à jour pour consulter les erreurs répertoriées ci-dessous.

Code d’échecExplication
payment_method_customer_declineLe client a annulé le paiement sur la page de Klarna
payment_method_provider_declineKlarna a refusé le paiement du client
payment_intent_payment_attempt_expiredLe client n’a jamais mené à bien le paiement sur la page de Klarna et la session de paiement a expiré
payment_method_not_availableUne erreur inattendue est survenue lors de l’utilisation de Klarna
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