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_
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 StripeCô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 :
Créer un PaymentIntentCô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
.
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.
, city
, country
et postal_
.
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.
Soumettre le paiement à StripeCô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.
<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.
// 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.
// 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_
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_
, vous pouvez également ajouter vos propres paramètres de requête à utiliser sur la page de redirection.
Paramètre | Description |
---|---|
payment_ | Identifiant unique du PaymentIntent . |
payment_ | La 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_ |
Lorsque le client est redirigé vers votre site, vous pouvez utiliser le payment_
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_
, pay_
, pay_
et pay_
. 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.
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 999999
pour 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 :
Type | Valeur |
---|---|
Prélèvement automatique | DE11520513735120710131 |
Virement bancaire | Banque de démonstration |
Carte bancaire |
|
Carte de débit |
|
É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_
.
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_
à requires_
.
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’échec | Explication |
---|---|
payment_method_customer_decline | Le client a annulé le paiement sur la page de Klarna |
payment_method_provider_decline | Klarna a refusé le paiement du client |
payment_intent_payment_attempt_expired | Le client n’a jamais mené à bien le paiement sur la page de Klarna et la session de paiement a expiré |
payment_method_not_available | Une erreur inattendue est survenue lors de l’utilisation de Klarna |