# Configurer un abonnement avec Klarna Découvrez comment créer et facturer un abonnement avec Klarna. Suivez ce guide pour configurer un *abonnement* (A Subscription represents the product details associated with the plan that your customer subscribes to. Allows you to charge the customer on a recurring basis) avec [Klarna](https://docs.stripe.com/payments/klarna.md) comme moyen de paiement. > #### Les options de paiement Klarna disponibles varient en fonction du cas d'utilisation et du pays de l'acheteur. > > Voyez quelles [options de paiement](https://docs.stripe.com/payments/klarna.md#payment-options) sont disponibles pour vos clients avant de commencer votre intégration. Nous vous recommandons d’utiliser [Stripe Checkout](https://docs.stripe.com/payments/checkout.md) pour enregistrer Klarna comme moyen de paiement. # Une page hébergée par Stripe > This is a Une page hébergée par Stripe for when api-integration is checkout. View the full page at https://docs.stripe.com/billing/subscriptions/klarna?api-integration=checkout. Dans un premier temps, vous devez créer un compte Stripe. [S’inscrire maintenant](https://dashboard.stripe.com/register). Utilisez nos bibliothèques officielles pour accéder à l’API Stripe depuis votre application : #### Ruby ```bash # Available as a gem sudo gem install stripe ``` ```ruby # If you use bundler, you can add this line to your Gemfile gem 'stripe' ``` ## Créer un produit et un tarif [Dashboard] Les [produits](https://docs.stripe.com/api/products.md) correspondent aux articles ou services que vous vendez. Les [tarifs](https://docs.stripe.com/api/prices.md) définissent le montant et la fréquence des paiements facturés pour un produit. Le tarif prend en compte la valeur du produit, la devise que vous acceptez et s’il s’agit d’un paiement ponctuel ou récurrent. Si vous n’avez que quelques produits et tarifs, créez-les et gérez-les dans le Dashboard. Ce guide prend comme exemple un service de banque d’images qui débite ses clients d’un montant de 15 USD pour un abonnement mensuel. Pour modéliser ceci : 1. Go to the [Products](https://dashboard.stripe.com/products?active=true) page and click **Create product**. 1. Saisissez un **Nom** pour le produit. Vous pouvez éventuellement ajouter une **Description** et télécharger une image du produit. 1. Select a **Product tax code**. Learn more about [product tax codes](https://docs.stripe.com/tax/tax-codes.md). 1. Sélectionnez **Récurrent**. Saisissez ensuite **** pour le prix et sélectionnez **** comme devise. 1. Choose whether to **Include tax in price**. You can either use the default value from your [tax settings](https://dashboard.stripe.com/test/settings/tax) or set the value manually. In this example, select **Auto**. 1. Pour **Période de facturation**, sélectionnez **Mensuel**. 1. Click **More pricing options**. Then select **Flat rate** as the pricing model for this example. Learn more about [flat rate](https://docs.stripe.com/products-prices/pricing-models.md#flat-rate) and other [pricing models](https://docs.stripe.com/products-prices/pricing-models.md). 1. Add an internal **Price description** and [Lookup key](https://docs.stripe.com/products-prices/manage-prices.md#lookup-keys) to organize, query, and update specific prices in the future. 1. Cliquez sur **Suivant**. Cliquez ensuite sur **Ajouter un produit**. Après avoir créé le produit et le tarif, enregistrez l’ID de tarif de manière à pouvoir l’utiliser dans les étapes ultérieures. La page des tarifs affiche l’ID dont le format est similaire à ce qui suit : `price_G0FvDp6vZvdwRZ`. ## Créer une session Checkout [Côté client] [Côté serveur] Ajoutez à votre site Web un bouton de paiement qui appelle un endpoint côté serveur afin de créer une session Checkout. ```html Checkout
``` Créez une session Checkout avec l’ID d’un [tarif](https://docs.stripe.com/api/prices.md) existant. Définissez le mode sur `subscription` et transmettez au moins un tarif récurrent. Vous pouvez ajouter des tarifs ponctuels en plus des tarifs récurrents. Après avoir créé la session Checkout, redirigez votre client vers l’[URL](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-url) renvoyée dans la réponse. ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -d "line_items[0][price]={{PRICE_ID}}" \ -d "line_items[0][quantity]=1" \ -d mode=subscription \ --data-urlencode "success_url=https://example.com/success?session_id={CHECKOUT_SESSION_ID}" ``` Une fois le paiement effectué, Stripe redirige votre client vers l’URL `success_url`. Il s’agit d’une page de votre site Web indiquant au client que le paiement a réussi. Mettez l’ID de session à disposition sur votre page de confirmation de paiement en incluant la variable de modèle `{CHECKOUT_SESSION_ID}` dans l’URL `success_url`, comme illustré ci-dessus. Les sessions Checkout expirent 24 heures après leur création. > Ne vous fiez pas uniquement à la redirection vers `success_url` pour détecter l’initiation d’un paiement, car : > > - Des utilisateurs malveillants pourraient accéder directement au `success_url` sans payer et obtenir l’accès à vos biens ou à vos services. - Après un paiement réussi, les clients peuvent fermer l’onglet de leur navigateur avant d’être redirigés vers `success_url`. ### Configurer un essai Vous pouvez créer des essais gratuits dans une session Checkout en utilisant le paramètre [subscription_data](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-subscription_data) pour fournir des informations sur la durée, la date d’expiration et d’autres paramètres de la période d’essai. Découvrez comment [configurer les périodes d’essai gratuites de manière à les annuler ou suspendre lorsqu’elles se terminent sans moyen de paiement](https://docs.stripe.com/billing/subscriptions/trials/free-trials.md?how=checkout#create-free-trials-without-payment). ## Récupérer l'abonnement [Côté serveur] Après qu’un client ait soumis ses données de paiement, Stripe crée automatiquement un abonnement. Vous pouvez récupérer l’abonnement de manière synchrone en utilisant le `success_url` ou de manière asynchrone en utilisant *webhooks* (A webhook is a real-time push notification sent to your application as a JSON payload through HTTPS requests). La décision de récupérer l’abonnement de manière synchrone ou asynchrone dépend de votre tolérance aux abandons de paiement. En effet, il peut arriver que le client n’aboutisse pas au `success_url` à l’issue de son paiement (il peut par exemple lui arriver de fermer l’onglet de son navigateur avant que la redirection n’intervienne). L’utilisation de webhooks vous permet d’éviter que votre intégration ne subisse ce type d’abandon. #### Webhooks Traitez les webhooks `checkout.session.completed`, qui contiennent un objet Session. Découvrez comment [configurer des webhooks](https://docs.stripe.com/webhooks.md). L’exemple suivant est une réponse `checkout.session.completed`. ```json { "id": "evt_1Ep24XHssDVaQm2PpwS19Yt0", "object": "event", "api_version": "2019-03-14", "created": 1561420781, "data": { "object": { "id": "cs_test_a1h2mO4eLbjemY0JWW9rCz5dcglwr3M5ldjLOvpGxWD37i1Oi5SeFhSup1", "object": "checkout.session", "billing_address_collection": null, "client_reference_id": null, "customer": null, "customer_email": null, "display_items": [], "mode": "setup","subscription": "sub_1Op9VFCvDOElLqwO6fs7Na4P", "submit_type": null, "success_url": "https://example.com/success" } }, "livemode": false, "pending_webhooks": 1, "request": { "id": null, "idempotency_key": null }, "type": "checkout.session.completed" } ``` Conservez une trace de la valeur de la clé `subscription`, qui est l’ID de l’objet [Subscription](https://docs.stripe.com/api/subscriptions.md) créé à partir de la session Checkout. #### URL après paiement réussi Récupération du `session_id` depuis l’URL lorsque l’utilisateur est redirigé vers votre site et [récupération](https://docs.stripe.com/api/checkout/sessions/retrieve.md) de l’objet Session. ```curl curl -G https://api.stripe.com/v1/checkout/sessions/{{SESSION_ID}} \ -u "<>:" \ -d "expand[]=subscription" ``` > Pour vous assurer que le `session_id` soit disponible depuis l’URL, incluez la variable de modèle `session_id={CHECKOUT_SESSION_ID}` dans l’URL `success_url` lorsque vous créez la session Checkout. La réponse contient l’objet [Subscription](https://docs.stripe.com/api/subscriptions.md) créé sous la clé [subscription](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-subscription). ## Tester votre intégration > Klarna utilise des cookies pour le suivi des sessions. Pour tester différents emplacements clients, déconnectez-vous de l’environnement de test Klarna de la session précédente et utilisez les déclencheurs pertinents. 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. #### Australie | | Approuvé | Refusé | | ----------------- | ----------------- | ------------------------ | | Date de naissance | 10/07/1970 | 03-05-1994 | | Prénom | Test | John | | Nom | Person-au | snow | | Rue | Wharf St | Silverwater Rd | | Numéro de rue | 4 | 1-5 | | Code postal | 4877 | 2128 | | Ville | Port Douglas | Silverwater | | Région | QLD | NSW | | Téléphone | +61473752244 | +61473763254 | | Adresse e-mail | customer@email.au | customer+denied@email.au | #### Autriche | | Approuvé | Refusé | | ----------------- | ------------------ | ------------------------ | | Date de naissance | 10/07/1970 | 10/07/1970 | | Prénom | Test | Test | | Nom | Person-at | Person-at | | E-mail | customer@email.at | customer+denied@email.at | | Rue | Mariahilfer Straße | Mariahilfer Straße | | Numéro de rue | 47 | 47 | | Ville | Vienne | Vienne | | Code postal | 1060 | 1060 | | Téléphone | +4306762600456 | +4306762600745 | #### Belgique | | Approuvé | Refusé | | ----------------- | ----------------- | ------------------------ | | Date de naissance | 10/07/1970 | 10/07/1970 | | Prénom | Test | Test | | Nom | Person-be | Person-be | | E-mail | customer@email.be | customer+denied@email.be | | Rue | Grote Markt | Grote Markt | | Numéro de rue | 1 | 1 | | Ville | Bruxelles | Bruxelles | | Code postal | 1 000 | 1 000 | | Téléphone | +32485121291 | +32485212123 | #### Canada | | Approuvé | Refusé | | ----------------- | ----------------- | ------------------------ | | Date de naissance | 10/07/1970 | 10/07/1970 | | Prénom | Test | Test | | Nom | Person-ca | Person-ca | | Rue | 2693 Byron Rd | 2693 Byron Rd | | Code postal | V7H 1L9 | V7H 1L9 | | Ville | North Vancouver | North Vancouver | | Région | BC | BC | | Téléphone | +15197438620 | +15197308624 | | Adresse e-mail | customer@email.ca | customer+denied@email.ca | #### République tchèque | | Approuvé | Refusé | | ----------------- | ----------------------- | ------------------------ | | Date de naissance | 01-01-1970 | 27-06-1992 | | Prénom | Test | Test | | Nom | Person-cz | Person-cz | | E-mail | customer@email.cz | customer+denied@email.cz | | Rue | Zazvorkova 1480/11 | Zázvorkova 1480/11 | | Code postal | 155 00 | 155 00 | | Ville | Prague | PRAHA 13 | | Téléphone | +420771613715 | +420771623691 | #### Danemark | | Approuvé | Refusé | | ----------------- | ----------------- | ------------------------ | | Date de naissance | 01-01-1980 | 10/07/1970 | | Prénom | Test | Test | | Nom | Person-dk | Person-dk | | E-mail | customer@email.dk | customer+denied@email.dk | | Rue | Dantes Plads | Nygårdsvej | | Numéro de rue | 7 | 65 | | Ville | København Ø | København Ø | | Code postal | 1556 | 2100 | | Téléphone | +4542555628 | +4552555348 | #### Finlande | | Approuvé | Refusé | | ----------------- | ----------------- | ------------------------ | | Date de naissance | 01-01-1999 | 01-01-1999 | | Prénom | Test | Person FI | | Nom | Person-fi | Test | | E-mail | customer@email.fi | customer+denied@email.fi | | Rue | Mannerheimintie | Mannerheimintie | | Numéro de rue | 34 | 34 | | Ville | Helsinki | Helsinki | | Code postal | 00100 | 00100 | | Téléphone | +358401234567 | +358401234568 | #### France | | Approuvé | Refusé | | ----------------- | ----------------- | ------------------------ | | Date de naissance | 10-07-1990 | 10-07-1990 | | Lieu de naissance | Paris | Paris | | Prénom | Test | Test | | Nom | Person-fr | Person-fr | | E-mail | customer@email.fr | customer+denied@email.fr | | Rue | rue La Fayette | rue La Fayette | | Numéro de rue | 33 | 33 | | Ville | Paris | Paris | | Code postal | 75009 | 75009 | | Téléphone | +33689854321 | +33687984322 | #### Allemagne | | Approuvé | Refusé | | ----------------- | --------------------- | ------------------------ | | Date de naissance | 10/07/1970 | 10/07/1970 | | Prénom | Mock | Test | | Nom | Mock | Person-de | | E-mail | customer@email.de | customer+denied@email.de | | Rue | Neue Schönhauser Str. | Neue Schönhauser Str. | | Numéro de rue | 2 | 2 | | Ville | Berlin | Berlin | | Code postal | 10178 | 10178 | | Téléphone | +49017614284340 | +49017610927312 | #### Grèce | | Approuvé | Refusé | | ----------------- | ----------------- | ------------------------ | | Numéro fiscal | 090000045 | 090000045 | | Date de naissance | 01-01-1960 | 11-11-1970 | | Prénom | Test | Test | | Nom | Person-gr | Test-gr | | E-mail | customer@email.gr | customer+denied@email.gr | | Rue | Kephisias | Baralo | | Numéro de rue | 37 | 56 | | Code postal | 151 23 | 123 67 | | Ville | Athina | Athina | | Téléphone | +306945553624 | +306945553625 | #### Irlande | | Approuvé | Refusé | | ----------------- | ----------------- | ------------------------ | | Date de naissance | 10/07/1970 | 10/07/1970 | | Prénom | Test | Test | | Nom | Person-ie | Person-ie | | E-mail | customer@email.ie | customer+denied@email.ie | | Rue | King Street South | King Street South | | Numéro de rue | 30 | 30 | | Ville | Dublin | Dublin | | Code EIR | D02 C838 | D02 C838 | | Téléphone | +353855351400 | +353855351401 | #### Italie | | Approuvé | Refusé | | ----------------- | ----------------- | ------------------------ | | Date de naissance | 01-01-1980 | 01-01-1980 | | Prénom | Test | Test | | Nom | Person-it | Person-it | | E-mail | customer@email.it | customer+denied@email.it | | Code fiscal | RSSBNC80A41H501B | RSSBNC80A41H501B | | Rue | Via Enrico Fermi | Via Enrico Fermi | | Numéro de rue | 150 | 150 | | Ville | Rome | Rome | | Code postal | 00146 | 00146 | | Téléphone | +393339741231 | +393312232389 | #### Pays-Bas | | Approuvé | Refusé | | ----------------- | ----------------- | ------------------------ | | Date de naissance | 10/07/1970 | 10/07/1970 | | Prénom | Test | Test | | Nom | Person-nl | Person-nl | | E-mail | customer@email.nl | customer+denied@email.nl | | Rue | Osdorpplein | Osdorpplein | | Numéro de rue | 137 | 137 | | Ville | Amsterdam | Amsterdam | | Code postal | 1068 SR | 1068 SR | | Téléphone | +31689124321 | +31632167678 | #### Nouvelle-Zélande | | Approuvé | Refusé | | ----------------- | ------------------------ | ------------------------ | | Date de naissance | 10/07/1970 | 10/07/1970 | | Prénom | Test | Test | | Nom | Person-nz | Person-nz | | Rue | Mount Wellington Highway | Mount Wellington Highway | | Numéro de rue | 286 | 286 | | Code postal | 6011 | 6011 | | Ville | Auckland | Wellington | | Téléphone | +6427555290 | +642993007712 | | Adresse e-mail | customer@email.nz | customer+denied@email.nz | #### Norvège | | Approuvé | Refusé | | ----------------- | ----------------------------- | ------------------------ | | Date de naissance | 01-08-1970 | 01-08-1970 | | Prénom | Jane | Test | | Nom | Test | Person-no | | E-mail | customer@email.no | customer+denied@email.no | | Numéro personnel | NO1087000571 | NO1087000148 | | Rue | Edvard Munchs Plass | Sæffleberggate | | Numéro de rue | 1 | 56 | | Ville | Oslo | Oslo | | Code postal | 0194 | 0563 | | Téléphone | +4740123456 | +4740123457 | #### Pologne | | Approuvé | Refusé | | ----------------- | ----------------- | ------------------------ | | Date de naissance | 05-05-1967 | 05-05-1967 | | Prénom | Test | Test | | Nom | Person-pl | Person-pl | | Rue | Ul. Górczewska | Ul. Górczewska | | Numéro de rue | 124 | 124 | | Code postal | 01-460 | 01-460 | | Ville | Varsovie | Varsovie | | Téléphone | +48795222223 | +48795223325 | | E-mail | customer@email.pl | customer+denied@email.pl | #### Portugal | | Approuvé | Refusé | | ----------------- | ---------------------------------- | ---------------------------------- | | Date de naissance | 10/07/1970 | 10/07/1970 | | Prénom | Test | Test | | Nom | Person-pt | Person-pt | | Rue | Avenida Dom João II | Avenida Dom João II | | Numéro de rue | 40 | 40 | | Code postal | 1990-094 | 1990-094 | | Ville | Lisbonne | Lisbonne | | Téléphone | +351935556731 | +351915593837 | | E-mail | customer@email.pt | customer+denied@email.pt | #### Roumanie | | Approuvé | Refusé | | --------------------------------------- | ----------------- | ------------------------ | | Date de naissance | 25-12-1970 | 25-12-1970 | | Prénom | Test | Test | | Nom | Person-ro | Person-ro | | E-mail | customer@email.ro | customer+denied@email.ro | | Rue | Drumul Taberei | Drumul Taberei | | Numéro de rue | 35 | 35 | | Ville | Bucarest | Bucarest | | Secteur | Sectorul 6 | Sectorul 6 | | Code postal | 061357 | 061357 | | Téléphone | +40741209876 | +40707127444 | | Numéro d’identification personnel (CNP) | 1701225193558 | | #### Espagne | | Approuvé | Refusé | | ----------------- | ----------------- | ------------------------ | | DNI/NIE | 99999999R | 99999999R | | Date de naissance | 10/07/1970 | 10/07/1970 | | Prénom | Test | Test | | Nom | Person-es | Person-es | | E-mail | customer@email.es | customer+denied@email.es | | Rue | C. de Atocha | C. de Atocha | | Numéro de rue | 27 | 27 | | Ville | Madrid | Madrid | | Code postal | 28012 | 28012 | | Téléphone | +34672563009 | +34682425101 | #### Suède | | Approuvé | Refusé | | ----------------- | ---------------------------- | ------------------------ | | Date de naissance | 21-03-1941 | 28-10-1941 | | Prénom | Alice | Test | | Nom | Test | Person-se | | E-mail | customer@email.se | customer+denied@email.se | | Rue | Södra Blasieholmshamnen | Karlaplan | | Numéro de rue | 2 | 3 | | Ville | Stockholm | Stockholm | | Code postal | 11 148 | 11 460 | | Téléphone | +46701740615 | +46701740620 | #### Suisse | | Approuvé | Refusé | | ----------------- | ----------------- | ------------------------ | | Date de naissance | 01-01-1990 | 01-01-2000 | | Prénom | Accepté | Client | | Nom | Person-ch | Person-ch | | Rue | Augustinergasse | Bahnhofstrasse | | Numéro de rue | 2 | 77 | | Code postal | 4051 | 8001 | | Ville | Bâle | Zürich | | Téléphone | +41758680000 | +41758680001 | | E-mail | customer@email.ch | customer+denied@email.ch | #### Royaume-Uni | | Approuvé | Refusé | | ----------------- | --------------------- | ------------------------ | | Date de naissance | 10/07/1970 | 10/07/1970 | | Prénom | Test | Test | | Nom | Person-uk | Person-uk | | E-mail | customer@email.uk | customer+denied@email.uk | | Rue | New Burlington Street | New Burlington Street | | Numéro de rue | 10 | 10 | | Appartement | Apt 214 | Apt 214 | | Code postal | W1S 3BE | W1S 3BE | | Ville | Londres | Londres | | Téléphone | +447755564318 | +447355505530 | #### États-Unis | | Approuvé | Refusé | | ----------------- | ----------------- | ------------------------ | | Date de naissance | 07-10-1970 | 07-10-1970 | | Prénom | Test | Test | | Nom | Person-us | Person-us | | E-mail | customer@email.us | customer+denied@email.us | | Rue | Amsterdam Ave | Amsterdam Ave | | Numéro de rue | 509 | 509 | | Ville | New York | New York | | État | New York | New York | | Code postal | 10024-3941 | 10024-3941 | | Téléphone | +13106683312 | +13106354386 | ### 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 | - 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 | # Intégration avancée > This is a Intégration avancée for when api-integration is elements. View the full page at https://docs.stripe.com/billing/subscriptions/klarna?api-integration=elements. Si vous souhaitez créer une interface de paiement personnalisée avec l’[élément de paiement](https://docs.stripe.com/payments/payment-element.md), utilisez l’[API Abonnements](https://docs.stripe.com/api/subscriptions.md) pour créer un abonnement. Dans un premier temps, vous devez créer un compte Stripe. [S’inscrire maintenant](https://dashboard.stripe.com/register). Utilisez nos bibliothèques officielles pour accéder à l’API Stripe depuis votre application : #### Ruby ```bash # Available as a gem sudo gem install stripe ``` ```ruby # If you use bundler, you can add this line to your Gemfile gem 'stripe' ``` ## Créer un produit et un tarif [Dashboard] Les [produits](https://docs.stripe.com/api/products.md) correspondent aux articles ou services que vous vendez. Les [tarifs](https://docs.stripe.com/api/prices.md) définissent le montant et la fréquence des paiements facturés pour un produit. Le tarif prend en compte la valeur du produit, la devise que vous acceptez et s’il s’agit d’un paiement ponctuel ou récurrent. Si vous n’avez que quelques produits et tarifs, créez-les et gérez-les dans le Dashboard. Ce guide prend comme exemple un service de banque d’images qui débite ses clients d’un montant de 15 USD pour un abonnement mensuel. Pour modéliser ceci : 1. Go to the [Products](https://dashboard.stripe.com/products?active=true) page and click **Create product**. 1. Saisissez un **Nom** pour le produit. Vous pouvez éventuellement ajouter une **Description** et télécharger une image du produit. 1. Select a **Product tax code**. Learn more about [product tax codes](https://docs.stripe.com/tax/tax-codes.md). 1. Sélectionnez **Récurrent**. Saisissez ensuite **** pour le prix et sélectionnez **** comme devise. 1. Choose whether to **Include tax in price**. You can either use the default value from your [tax settings](https://dashboard.stripe.com/test/settings/tax) or set the value manually. In this example, select **Auto**. 1. Pour **Période de facturation**, sélectionnez **Mensuel**. 1. Click **More pricing options**. Then select **Flat rate** as the pricing model for this example. Learn more about [flat rate](https://docs.stripe.com/products-prices/pricing-models.md#flat-rate) and other [pricing models](https://docs.stripe.com/products-prices/pricing-models.md). 1. Add an internal **Price description** and [Lookup key](https://docs.stripe.com/products-prices/manage-prices.md#lookup-keys) to organize, query, and update specific prices in the future. 1. Cliquez sur **Suivant**. Cliquez ensuite sur **Ajouter un produit**. Après avoir créé le produit et le tarif, enregistrez l’ID de tarif de manière à pouvoir l’utiliser dans les étapes ultérieures. La page des tarifs affiche l’ID dont le format est similaire à ce qui suit : `price_G0FvDp6vZvdwRZ`. ## Créer un abonnement [Côté serveur] Créez un [abonnement](https://docs.stripe.com/api/subscriptions.md) avec un tarif et un client à l’état `incomplete` en attribuant au paramètre [payment_behavior](https://docs.stripe.com/api/subscriptions/create.md#create_subscription-payment_behavior) la valeur `default_incomplete`. Définissez le paramètre `payment_settings.save_default_payment_method=on_subscription` pour enregistrer un moyen de paiement lors de l’activation de l’abonnement. ```curl curl https://api.stripe.com/v1/subscriptions \ -u "<>:" \ -d customer={{CUSTOMER_ID}} \ -d payment_behavior=default_incomplete \ -d "items[0][price]={{PRICE_ID}}" \ -d "payment_settings[save_default_payment_method]=on_subscription" \ -d "expand[0]=latest_invoice.payments" \ -d "expand[1]=latest_invoice.confirmation_secret" ``` La réponse inclut la première [facture](https://docs.stripe.com/api/invoices.md) de l’*abonnement* (A Subscription represents the product details associated with the plan that your customer subscribes to. Allows you to charge the customer on a recurring basis). Celui-ci contient les paiements de la facture, qui inclut un PaymentIntent par défaut que Stripe a généré pour cette facture et la clé secrète de confirmation que vous pouvez envoyer au client afin qu’il finalise le processus de paiement en toute sécurité au lieu de lui transmettre la totalité de l’objet PaymentIntent. Obtenez l’ID PaymentIntent que vous devez utiliser pour confirmer un paiement provenant de `latest_invoice.payments`. Renvoyez le `latest_invoice.confirmation_secret.client_secret` au front-end pour finaliser le paiement. ### Configurer un essai Vous pouvez configurer des abonnements avec des essais gratuits. Découvrez comment [retarder les paiements d’abonnements actifs avec des périodes d’essai](https://docs.stripe.com/billing/subscriptions/trials.md). ## Collecter les informations de paiement [Côté client] ### Configurer Stripe Elements Le composant Payment Element est automatiquement disponible en tant que fonctionnalité de Stripe.js. Intégrez le script Stripe.js à votre page de paiement en l’ajoutant entre les balises `head` de votre fichier HTML. Chargez toujours Stripe.js directement à partir de js.stripe.com pour maintenir votre conformité PCI. Vous ne devez pas inclure le script dans un lot ni en héberger de copie. ```html Checkout ``` Créez une instance de Stripe avec le code JavaScript suivant sur votre page de paiement : ```javascript // Set your publishable key: remember to change this to your live publishable key in production // See your keys here: https://dashboard.stripe.com/apikeys const stripe = Stripe('<>'); ``` ### Ajouter le composant Payment Element à votre page Le Payment Element doit avoir un emplacement dédié dans votre page de paiement. Créez un nœud DOM (conteneur) vide avec un ID unique dans votre formulaire de paiement. ```html
``` Une fois le formulaire ci-dessus chargé, créez une instance du composant Payment Element et montez-la sur le nœud DOM du conteneur. À l’étape de [création de l’abonnement](https://docs.stripe.com/billing/subscriptions/klarna.md#pi-create-subscription), vous avez transmis la valeur `client_secret` au front-end. Passez cette valeur comme option lors de la création d’une instance d’Elements. ```javascript const options = { clientSecret: '{{CLIENT_SECRET}}' }; // Set up Stripe.js and Elements to use in checkout form, passing the client secret obtained in step 5 const elements = stripe.elements(options); // Create and mount the Payment Element const paymentElementOptions = { layout: 'accordion'}; const paymentElement = elements.create('payment', paymentElementOptions); paymentElement.mount('#payment-element'); ``` Le composant Payment Element affiche un formulaire dynamique qui permet à votre client de sélectionner un moyen de paiement. Le formulaire collecte automatiquement toutes les informations de paiement nécessaires pour le moyen de paiement sélectionné. ### Effectuer le paiement Utilisez `stripe.confirmPayment` pour mener à bien le paiement à l’aide des informations du composant Payment Element et activer l’abonnement. Un PaymentMethod est alors créé et le premier PaymentIntent de l’abonnement incomplet est confirmé, ce qui déclenche le processus de paiement. Stripe redirige le client vers Klarna pour effectuer le premier paiement et les paiements suivants. Fournissez une [return_url](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-return_url) pour indiquer où l’utilisateur doit être redirigé après avoir finalisé le paiement sur Klarna. ```javascript const form = document.getElementById('payment-form'); form.addEventListener('submit', async (event) => { event.preventDefault(); const {error} = await stripe.confirmPayment({ //`Elements` instance that was used to create the Payment Element elements, confirmParams: { return_url: "https://example.com/order/123/complete", mandate_data: { customer_acceptance: { type: "online", online: { infer_from_client: true } } } } }); if (error) { // This point will only be reached if there is an immediate error when // confirming the payment. Show error to your customer (for example, payment // details incomplete) const messageContainer = document.querySelector('#error-message'); messageContainer.textContent = error.message; } }); ``` Une fois que l’utilisateur a été redirigé, interrogez le PaymentIntent pour vérifier son état. Si l’état est `succeeded`, le paiement a été effectué et votre abonnement est désormais actif. ## Tester votre intégration > Klarna utilise des cookies pour le suivi des sessions. Pour tester différents emplacements clients, déconnectez-vous de l’environnement de test Klarna de la session précédente et utilisez les déclencheurs pertinents. 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. #### Australie | | Approuvé | Refusé | | ----------------- | ----------------- | ------------------------ | | Date de naissance | 10/07/1970 | 03-05-1994 | | Prénom | Test | John | | Nom | Person-au | snow | | Rue | Wharf St | Silverwater Rd | | Numéro de rue | 4 | 1-5 | | Code postal | 4877 | 2128 | | Ville | Port Douglas | Silverwater | | Région | QLD | NSW | | Téléphone | +61473752244 | +61473763254 | | Adresse e-mail | customer@email.au | customer+denied@email.au | #### Autriche | | Approuvé | Refusé | | ----------------- | ------------------ | ------------------------ | | Date de naissance | 10/07/1970 | 10/07/1970 | | Prénom | Test | Test | | Nom | Person-at | Person-at | | E-mail | customer@email.at | customer+denied@email.at | | Rue | Mariahilfer Straße | Mariahilfer Straße | | Numéro de rue | 47 | 47 | | Ville | Vienne | Vienne | | Code postal | 1060 | 1060 | | Téléphone | +4306762600456 | +4306762600745 | #### Belgique | | Approuvé | Refusé | | ----------------- | ----------------- | ------------------------ | | Date de naissance | 10/07/1970 | 10/07/1970 | | Prénom | Test | Test | | Nom | Person-be | Person-be | | E-mail | customer@email.be | customer+denied@email.be | | Rue | Grote Markt | Grote Markt | | Numéro de rue | 1 | 1 | | Ville | Bruxelles | Bruxelles | | Code postal | 1 000 | 1 000 | | Téléphone | +32485121291 | +32485212123 | #### Canada | | Approuvé | Refusé | | ----------------- | ----------------- | ------------------------ | | Date de naissance | 10/07/1970 | 10/07/1970 | | Prénom | Test | Test | | Nom | Person-ca | Person-ca | | Rue | 2693 Byron Rd | 2693 Byron Rd | | Code postal | V7H 1L9 | V7H 1L9 | | Ville | North Vancouver | North Vancouver | | Région | BC | BC | | Téléphone | +15197438620 | +15197308624 | | Adresse e-mail | customer@email.ca | customer+denied@email.ca | #### République tchèque | | Approuvé | Refusé | | ----------------- | ----------------------- | ------------------------ | | Date de naissance | 01-01-1970 | 27-06-1992 | | Prénom | Test | Test | | Nom | Person-cz | Person-cz | | E-mail | customer@email.cz | customer+denied@email.cz | | Rue | Zazvorkova 1480/11 | Zázvorkova 1480/11 | | Code postal | 155 00 | 155 00 | | Ville | Prague | PRAHA 13 | | Téléphone | +420771613715 | +420771623691 | #### Danemark | | Approuvé | Refusé | | ----------------- | ----------------- | ------------------------ | | Date de naissance | 01-01-1980 | 10/07/1970 | | Prénom | Test | Test | | Nom | Person-dk | Person-dk | | E-mail | customer@email.dk | customer+denied@email.dk | | Rue | Dantes Plads | Nygårdsvej | | Numéro de rue | 7 | 65 | | Ville | København Ø | København Ø | | Code postal | 1556 | 2100 | | Téléphone | +4542555628 | +4552555348 | #### Finlande | | Approuvé | Refusé | | ----------------- | ----------------- | ------------------------ | | Date de naissance | 01-01-1999 | 01-01-1999 | | Prénom | Test | Person FI | | Nom | Person-fi | Test | | E-mail | customer@email.fi | customer+denied@email.fi | | Rue | Mannerheimintie | Mannerheimintie | | Numéro de rue | 34 | 34 | | Ville | Helsinki | Helsinki | | Code postal | 00100 | 00100 | | Téléphone | +358401234567 | +358401234568 | #### France | | Approuvé | Refusé | | ----------------- | ----------------- | ------------------------ | | Date de naissance | 10-07-1990 | 10-07-1990 | | Lieu de naissance | Paris | Paris | | Prénom | Test | Test | | Nom | Person-fr | Person-fr | | E-mail | customer@email.fr | customer+denied@email.fr | | Rue | rue La Fayette | rue La Fayette | | Numéro de rue | 33 | 33 | | Ville | Paris | Paris | | Code postal | 75009 | 75009 | | Téléphone | +33689854321 | +33687984322 | #### Allemagne | | Approuvé | Refusé | | ----------------- | --------------------- | ------------------------ | | Date de naissance | 10/07/1970 | 10/07/1970 | | Prénom | Mock | Test | | Nom | Mock | Person-de | | E-mail | customer@email.de | customer+denied@email.de | | Rue | Neue Schönhauser Str. | Neue Schönhauser Str. | | Numéro de rue | 2 | 2 | | Ville | Berlin | Berlin | | Code postal | 10178 | 10178 | | Téléphone | +49017614284340 | +49017610927312 | #### Grèce | | Approuvé | Refusé | | ----------------- | ----------------- | ------------------------ | | Numéro fiscal | 090000045 | 090000045 | | Date de naissance | 01-01-1960 | 11-11-1970 | | Prénom | Test | Test | | Nom | Person-gr | Test-gr | | E-mail | customer@email.gr | customer+denied@email.gr | | Rue | Kephisias | Baralo | | Numéro de rue | 37 | 56 | | Code postal | 151 23 | 123 67 | | Ville | Athina | Athina | | Téléphone | +306945553624 | +306945553625 | #### Irlande | | Approuvé | Refusé | | ----------------- | ----------------- | ------------------------ | | Date de naissance | 10/07/1970 | 10/07/1970 | | Prénom | Test | Test | | Nom | Person-ie | Person-ie | | E-mail | customer@email.ie | customer+denied@email.ie | | Rue | King Street South | King Street South | | Numéro de rue | 30 | 30 | | Ville | Dublin | Dublin | | Code EIR | D02 C838 | D02 C838 | | Téléphone | +353855351400 | +353855351401 | #### Italie | | Approuvé | Refusé | | ----------------- | ----------------- | ------------------------ | | Date de naissance | 01-01-1980 | 01-01-1980 | | Prénom | Test | Test | | Nom | Person-it | Person-it | | E-mail | customer@email.it | customer+denied@email.it | | Code fiscal | RSSBNC80A41H501B | RSSBNC80A41H501B | | Rue | Via Enrico Fermi | Via Enrico Fermi | | Numéro de rue | 150 | 150 | | Ville | Rome | Rome | | Code postal | 00146 | 00146 | | Téléphone | +393339741231 | +393312232389 | #### Pays-Bas | | Approuvé | Refusé | | ----------------- | ----------------- | ------------------------ | | Date de naissance | 10/07/1970 | 10/07/1970 | | Prénom | Test | Test | | Nom | Person-nl | Person-nl | | E-mail | customer@email.nl | customer+denied@email.nl | | Rue | Osdorpplein | Osdorpplein | | Numéro de rue | 137 | 137 | | Ville | Amsterdam | Amsterdam | | Code postal | 1068 SR | 1068 SR | | Téléphone | +31689124321 | +31632167678 | #### Nouvelle-Zélande | | Approuvé | Refusé | | ----------------- | ------------------------ | ------------------------ | | Date de naissance | 10/07/1970 | 10/07/1970 | | Prénom | Test | Test | | Nom | Person-nz | Person-nz | | Rue | Mount Wellington Highway | Mount Wellington Highway | | Numéro de rue | 286 | 286 | | Code postal | 6011 | 6011 | | Ville | Auckland | Wellington | | Téléphone | +6427555290 | +642993007712 | | Adresse e-mail | customer@email.nz | customer+denied@email.nz | #### Norvège | | Approuvé | Refusé | | ----------------- | ----------------------------- | ------------------------ | | Date de naissance | 01-08-1970 | 01-08-1970 | | Prénom | Jane | Test | | Nom | Test | Person-no | | E-mail | customer@email.no | customer+denied@email.no | | Numéro personnel | NO1087000571 | NO1087000148 | | Rue | Edvard Munchs Plass | Sæffleberggate | | Numéro de rue | 1 | 56 | | Ville | Oslo | Oslo | | Code postal | 0194 | 0563 | | Téléphone | +4740123456 | +4740123457 | #### Pologne | | Approuvé | Refusé | | ----------------- | ----------------- | ------------------------ | | Date de naissance | 05-05-1967 | 05-05-1967 | | Prénom | Test | Test | | Nom | Person-pl | Person-pl | | Rue | Ul. Górczewska | Ul. Górczewska | | Numéro de rue | 124 | 124 | | Code postal | 01-460 | 01-460 | | Ville | Varsovie | Varsovie | | Téléphone | +48795222223 | +48795223325 | | E-mail | customer@email.pl | customer+denied@email.pl | #### Portugal | | Approuvé | Refusé | | ----------------- | ---------------------------------- | ---------------------------------- | | Date de naissance | 10/07/1970 | 10/07/1970 | | Prénom | Test | Test | | Nom | Person-pt | Person-pt | | Rue | Avenida Dom João II | Avenida Dom João II | | Numéro de rue | 40 | 40 | | Code postal | 1990-094 | 1990-094 | | Ville | Lisbonne | Lisbonne | | Téléphone | +351935556731 | +351915593837 | | E-mail | customer@email.pt | customer+denied@email.pt | #### Roumanie | | Approuvé | Refusé | | --------------------------------------- | ----------------- | ------------------------ | | Date de naissance | 25-12-1970 | 25-12-1970 | | Prénom | Test | Test | | Nom | Person-ro | Person-ro | | E-mail | customer@email.ro | customer+denied@email.ro | | Rue | Drumul Taberei | Drumul Taberei | | Numéro de rue | 35 | 35 | | Ville | Bucarest | Bucarest | | Secteur | Sectorul 6 | Sectorul 6 | | Code postal | 061357 | 061357 | | Téléphone | +40741209876 | +40707127444 | | Numéro d’identification personnel (CNP) | 1701225193558 | | #### Espagne | | Approuvé | Refusé | | ----------------- | ----------------- | ------------------------ | | DNI/NIE | 99999999R | 99999999R | | Date de naissance | 10/07/1970 | 10/07/1970 | | Prénom | Test | Test | | Nom | Person-es | Person-es | | E-mail | customer@email.es | customer+denied@email.es | | Rue | C. de Atocha | C. de Atocha | | Numéro de rue | 27 | 27 | | Ville | Madrid | Madrid | | Code postal | 28012 | 28012 | | Téléphone | +34672563009 | +34682425101 | #### Suède | | Approuvé | Refusé | | ----------------- | ---------------------------- | ------------------------ | | Date de naissance | 21-03-1941 | 28-10-1941 | | Prénom | Alice | Test | | Nom | Test | Person-se | | E-mail | customer@email.se | customer+denied@email.se | | Rue | Södra Blasieholmshamnen | Karlaplan | | Numéro de rue | 2 | 3 | | Ville | Stockholm | Stockholm | | Code postal | 11 148 | 11 460 | | Téléphone | +46701740615 | +46701740620 | #### Suisse | | Approuvé | Refusé | | ----------------- | ----------------- | ------------------------ | | Date de naissance | 01-01-1990 | 01-01-2000 | | Prénom | Accepté | Client | | Nom | Person-ch | Person-ch | | Rue | Augustinergasse | Bahnhofstrasse | | Numéro de rue | 2 | 77 | | Code postal | 4051 | 8001 | | Ville | Bâle | Zürich | | Téléphone | +41758680000 | +41758680001 | | E-mail | customer@email.ch | customer+denied@email.ch | #### Royaume-Uni | | Approuvé | Refusé | | ----------------- | --------------------- | ------------------------ | | Date de naissance | 10/07/1970 | 10/07/1970 | | Prénom | Test | Test | | Nom | Person-uk | Person-uk | | E-mail | customer@email.uk | customer+denied@email.uk | | Rue | New Burlington Street | New Burlington Street | | Numéro de rue | 10 | 10 | | Appartement | Apt 214 | Apt 214 | | Code postal | W1S 3BE | W1S 3BE | | Ville | Londres | Londres | | Téléphone | +447755564318 | +447355505530 | #### États-Unis | | Approuvé | Refusé | | ----------------- | ----------------- | ------------------------ | | Date de naissance | 07-10-1970 | 07-10-1970 | | Prénom | Test | Test | | Nom | Person-us | Person-us | | E-mail | customer@email.us | customer+denied@email.us | | Rue | Amsterdam Ave | Amsterdam Ave | | Numéro de rue | 509 | 509 | | Ville | New York | New York | | État | New York | New York | | Code postal | 10024-3941 | 10024-3941 | | Téléphone | +13106683312 | +13106354386 | ### 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 | - 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 |