# Gérer les paiements récurrents sur Apple Pay Améliorez les taux d'autorisation des transactions Apple Pay récurrentes. ## Bonnes pratiques Checkout et Elements [Checkout](https://docs.stripe.com/payments/checkout.md) et [Elements](https://docs.stripe.com/payments/elements.md) appliquent automatiquement les bonnes pratiques recommandées dans ce guide. ## Fonctionnement des paiements Apple Pay récurrents Pour effectuer des paiements récurrents, certaines entreprises doivent enregistrer le moyen de paiement Apple Pay pendant la session d’un utilisateur, puis effectuer les paiements récurrents dans un second temps, lorsque l’utilisateur est hors session. Le premier paiement effectué pendant une session est souvent appelé transaction initiée par le client, tandis que les paiements récurrents ultérieurs sont souvent appelés transactions initiées par le marchand. Voici deux exemples de paiements récurrents (ou transactions initiées par le marchand) : - Abonnements pour lesquels les utilisateurs sont facturés à une fréquence fixe. - Paiements récurrents hors session pour lesquels la fréquence de facturation est irrégulière ou variable. Lorsque les utilisateurs interagissent avec le formulaire de paiement Apple Pay, pour préserver la confidentialité du numéro de carte bancaire d’origine, également appelé numéro PAN, Apple Pay traite le numéro PAN de carte bancaire et génère un numéro de compte principal de l’appareil (DPAN) ou un [token de commerçant](https://developer.apple.com/apple-pay/merchant-tokens/) (MPAN), selon l’intégration et la version du système d’exploitation de l’appareil. Les numéros DPAN sont associés à un appareil Apple spécifique et peuvent être désactivés de manière involontaire si un utilisateur passe à un nouvel appareil (par exemple un iPhone ou un iPad) et y ajoute la même carte bancaire. Le numéro MPAN est l’option la plus récente et la plus fiable pour les paiements récurrents. Les MPAN ne sont pas désactivés lorsque les utilisateurs changent d’appareil et offrent une meilleure visibilité et une meilleure gestion du cycle de vie. Au-delà de ces différences, les numéros MPAN et DPAN ont un comportement similaire. ## Un cryptogramme expiré peut entraîner des échecs d’autorisation Lorsqu’un numéro DPAN (ou MPAN) est généré, il est également accompagné d’un cryptogramme à usage unique et à la durée de validité limitée. Stripe doit effectuer traiter dès que possible la transaction effectuée par le client et envoyer le DPAN (ou MPAN) et le cryptogramme au réseau d’autorisation avant qu’il n’expire. Ce mécanisme d’expiration ajoute une couche de sécurité aux portefeuilles Apple Pay, mais un déclenchement retardé de la transaction initiée par le client est souvent à l’origine des échecs d’autorisation. Si la première transaction initiée par le client avec envoi de cryptogramme échoue, les transactions ultérieures initiées par le marchand avec le même objet [Card](https://docs.stripe.com/api/cards/object.md) échoueront également, car ils sont liés en interne à la transaction initiée par le client. Ces échecs de paiement récurrents entraînent une baisse du taux d’autorisation. ## Améliorez le taux d’autorisations de votre intégration API Pour exécuter des transactions Apple Pay récurrentes avec l’API : 1. Enregistrez le numéro DPAN (ou MPAN) et le cryptogramme dans un objet `Card`. 1. Initiez une transaction initiée par le client (CIT) afin d’utiliser la cryptomonnaie avant son expiration. [Utilisez un SetupIntent](https://docs.stripe.com/apple-pay/apple-pay-recurring.md#create-setup-intent) pour envoyer une transaction de validation à 0 USD ou une transaction de paiement au réseau d’autorisation, puis conservez l’enregistrement de la transaction réseau renvoyée. 1. Réutilisez le moyen de paiement pour les prochaines transactions hors sessions initiées par le marchand. Stripe envoie au réseau d’autorisation le DPAN (ou MPAN) et l’ID de transaction réseau de la transaction initiée par le client d’origine pour améliorer le taux d’autorisations. Consommez les cryptogrammes dès leur création en suivant les recommandations ci-dessous. ### Utilisez les abonnements pour offrir des essais gratuits Lorsqu’un client souscrit un essai gratuit, il n’est pas débité jusqu’à la fin de la période d’essai. Pour utiliser le cryptogramme DPAN (ou MPAN) avant qu’il n’expire, utilisez les [abonnements Stripe](https://docs.stripe.com/subscriptions.md). Les objets Subscription créent un [SetupIntent](https://docs.stripe.com/api/setup_intents.md) qui génère une validation de 0 USD auprès du réseau d’autorisation. Celle-ci tient lieu de transaction initiée par le client, qui utilise le cryptogramme immédiatement, plutôt que de retarder la première transaction jusqu’à la fin de la période d’essai, quand le cryptogramme aura expiré. Vous pouvez également [créer directement un SetupIntent](https://docs.stripe.com/api/setup_intents/create.md) afin d’enregistrer l’objet [PaymentMethod Apple Pay](https://docs.stripe.com/api/payment_methods/object.md#payment_method_object-card-wallet-apple_pay) en vue d’une utilisation ultérieure. La confirmation du SetupIntent initie la même validation de 0 USD initiée par le client pour utiliser le cryptogramme. Vous pourrez alors utiliser l’objet [PaymentMethod Apple Pay](https://docs.stripe.com/api/payment_methods/object.md#payment_method_object-card-wallet-apple_pay) ainsi autorisé pour créer un objet Subscription par la suite. ### Créer un SetupIntent pour les intégrations de l’API Tokens (Legacy) Nous vous déconseillons d’utiliser les anciennes API Tokens et Charges pour les paiements Apple Pay récurrents. En effet, elles entraînent un échec d’autorisation pour cause d’expiration du cryptogramme, tel que décrit dans ce document. L’API Tokens ne déclenche pas la demande d’autorisation à temps pour utiliser le cryptogramme. En outre, l’API Charges ne prend pas en charge les fonctionnalités suivantes, dont beaucoup sont requises pour assurer la conformité des cartes bancaires : - Entreprises en Inde - Demandes d’authentification de carte émanant des banques - Authentification forte du client **Pour ces raisons, nous vous recommandons de migrer vers les API PaymentIntents et SetupIntents.** Si vous utilisez l’ancienne API [Tokens](https://docs.stripe.com/api/tokens.md) pour créer un token de paiement Apple Pay, et appelez par la suite l’API [Charges](https://docs.stripe.com/api/charges.md) pour débiter l’utilisateur à la fin de la période d’essai, vous pouvez améliorer votre taux d’autorisations en suivant ces étapes. 1. Créez un moyen de paiement immédiatement après la création du token. #### curl ```bash curl https://api.stripe.com/v1/payment_method \ -u <>: \ -d "type"="card" \ -d "card[token]"="tok_123" ``` 1. Créez immédiatement un [SetupIntent](https://docs.stripe.com/api/setup_intents.md) avec le nouvel objet PaymentMethod pour effectuer une transaction de validation de 0 USD. Une fois ces deux étapes terminées, la transaction initiée par le client est effectuée et le cryptogramme est envoyé au réseau pour autorisation avant son expiration. Si vous utilisez Stripe.js, vous pouvez combiner ces étapes en appelant [stripe.confirmCardSetup avec le token](https://docs.stripe.com/js/setup_intents/confirm_card_setup#stripe_confirm_card_setup-token). Vous pouvez désormais effectuer des paiements MIT hors session en utilisant le moyen de paiement Apple Pay enregistré. Si vous utilisez PaymentIntents, définissez [off_session](https://docs.stripe.com/api/payment_intents/confirm.md#confirm_payment_intent-off_session) pour indiquer que le client n’est pas dans votre tunnel de paiement. ### Configurez des paiements hors session Si vous configurez des paiements Apple Pay différés hors session et souhaitez recueillir des informations de paiement en vue de futures utilisations hors session, comme une réservation d’hôtel, consultez la [liste des types de paiements pris en charge](https://developer.apple.com/apple-pay/planning/) par Apple Pay. Apple Pay prend en charge les paiements [usage=off_session](https://docs.stripe.com/api/setup_intents/object.md#setup_intent_object-usage) utilisant un numéro DPAN (ou MPAN) lorsque le client est en dehors du tunnel de paiement. Ces paiements présentent toutefois un risque légèrement plus élevé, car ils ne bénéficient pas d’un transfert de responsabilité depuis le réseau et leur taux d’autorisation peut être inférieur à la moyenne. > #### Restriction en matière de moyens de paiement enregistrés > > Les Conditions d’Apple Pay interdisent l’utilisation d’un moyen de paiement enregistré pour les paiements [usage=on_session](https://docs.stripe.com/api/setup_intents/object.md#setup_intent_object-usage). Si le client est dans le tunnel de paiement, vous devez lui demander d’autoriser la transaction et générer un nouveau cryptogramme pour cette transaction. Apple Pay ne prend en charge les autorisations complémentaires que lorsque vous augmentez le montant d’un paiement autorisé avant le capturer. Vous pouvez déclencher une transaction initiée par le marchand pour votre intégration de l’API Tokens de l’une des manières suivantes : - [Créez un SetupIntent](https://docs.stripe.com/api/setup_intents/create.md) comme décrit dans le scénario d’essai gratuit pour initier la validation d’une somme de 0 USD afin de créer un moyen de paiement réutilisable avec numéro DPAN (ou MPAN) pour les paiements hors session. - Créez un PaymentIntent avec le paramétrage [setup_future_usage=off_session](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-setup_future_usage). Vous pouvez désormais effectuer des paiements hors session initiés par le marchand avec le moyen de paiement enregistré. Si vous utilisez PaymentIntents, paramétrez [off_session=true](https://docs.stripe.com/api/payment_intents/confirm.md#confirm_payment_intent-off_session) pour indiquer que le client n’est pas dans votre tunnel de paiement.