# L'API Charges versus l'API Payment Intents Découvrez les différences entre les deux principales API de paiement Stripe et quand les utiliser. ## Comprendre les API de paiement de Stripe Il existe actuellement trois moyens d’accepter des paiements sur Stripe : - Stripe Checkout - API Charges - *API Payment Intents* (The Payment Intents API tracks the lifecycle of a customer checkout flow and triggers additional authentication steps when required by regulatory mandates, custom Radar fraud rules, or redirect-based payment methods) [Stripe Checkout](https://docs.stripe.com/payments/checkout.md) est une page de paiement préconfigurée vers laquelle vous pouvez rediriger vos clients pour simplifier les achats et les *abonnements* (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). Elle offre de nombreuse fonctionnalités, comme Apple Pay, Google Pay, l’internationalisation et la validation de formulaires. Les API [Charges](https://docs.stripe.com/api/charges.md) et [Payment Intents](https://docs.stripe.com/api/payment_intents.md) vous permettent de créer vos flux et expériences de paiement. L’API Payment Intents regroupe tous les produits et modes de paiement Stripe. Bien que nous n’abandonnons pas l’API Charges, les nouvelles fonctionnalités sont uniquement proposées sur l’API Payment Intents. Pour comparer les fonctionnalités, consultez le tableau ci-dessous : | API Charges | API Payment Intents | | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Utilisée par les entreprises dont la clientèle se situe principalement aux États-Unis et au Canada et qui recherchent un moyen simple d’accepter les cartes. | Obligatoire pour les entreprises qui acceptent divers moyens de paiement et cartes nécessitant une authentification (en vertu par exemple de la réglementation sur l’*authentification forte du client* (Strong Customer Authentication (SCA) is a regulatory requirement in effect as of September 14, 2019, that impacts many European online payments. It requires customers to use two-factor authentication like 3D Secure to verify their purchase) en Europe). | | Compatible avec le Web, iOS et Android. | Compatible avec le Web, iOS et Android. Permet également d’accepter les paiements en magasin avec Terminal. | | Prend en charge les cartes et tous les moyens de paiement de [l’API Sources](https://docs.stripe.com/sources.md). | Prend en charge les cartes, les cartes utilisant les prélèvements 3DS, iDEAL, SEPA et [de nombreux autres moyens de paiement](https://docs.stripe.com/payments/payment-methods/overview.md). | | N’est **pas prête pour la SCA** | *Est prête pour la SCA* (Strong Customer Authentication (SCA) is a regulatory requirement in effect as of September 14, 2019, that impacts many European online payments. It requires customers to use two-factor authentication like 3D Secure to verify their purchase) | ## Migrer le code lisible depuis Charges Si votre application comporte plusieurs flux de paiement qui sont migrés individuellement de façon incrémentielle de l’API Charges vers [l’API Payment Intents](https://docs.stripe.com/payments/payment-intents.md), vous devez d’abord mettre à jour tout code lisible à partir de l’objet [Charge](https://docs.stripe.com/api/charges.md). Pour vous y aider, l’objet Charge comporte deux propriétés supplémentaires, [payment_method_details](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details) et [billing_details](https://docs.stripe.com/api/charges/object.md#charge_object-billing_details), qui offrent une interface harmonisée permettant de lire l’information sur le moyen de paiement utilisé pour le règlement. Ces champs sont disponibles sur toutes les versions des API et sur les objets Charge créés avec l’API Charges et l’API Payment Intents. Le tableau ci-dessous montre les propriétés les plus couramment utilisées pour un paiement et comment accéder à ces informations à l’aide des propriétés supplémentaires : #### Cartes et comptes bancaires | Description | Avant | Après | | -------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | | Informations sur le moyen de paiement utilisé pour créer un paiement | `charge.source` | `charge.payment_method_details` | | ID du moyen de paiement utilisé pour le paiement | `charge.source.id` | `charge.payment_method` | | Type de moyen de paiement utilisé | `charge.source.object` (par exemple, `card` ou `bank_account`) | `charge.payment_method_details.type` | | Informations de facturation pour le paiement (p. ex. code postal) | `charge.source.address_zip` | `charge.billing_details.address.postal_code` | | Nom du titulaire de la carte | `charge.source.name` | `charge.billing_details.name` | | Les 4 derniers chiffres de la carte utilisée | `charge.source.last4` | `charge.payment_method_details.card.last4` | | Empreinte de la carte | `charge.source.fingerprint` | `charge.payment_method_details.card.fingerprint` | | État de la vérification du CVC pour le paiement | `charge.source.cvc_check` | `charge.payment_method_details.card.checks.cvc_check` | | Marques des cartes | `charge.source.brand` peut désigner : `American Express`, `Diners Club`, `Discover`, `JCB`, `MasterCard`, `UnionPay`ou `Visa` | `charge.payment_method_details.card.brand` peut désigner : `amex`, `diners`, `discover`, `jcb`, `mastercard`, `unionpay`ou `visa` | | Valeur d’énumération de Google Pay | `charge.source.tokenization_method` est `android_pay` | `card.wallet.type` dans `charge.payment_method_details` est `google_pay` | #### Sources | Description | Avant | Après | | -------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | | Informations sur le moyen de paiement utilisé pour créer un paiement | `charge.source` | `charge.payment_method_details` | | ID du moyen de paiement utilisé pour le paiement | `charge.source.id` (`charge.source.three_d_secure.card` si la source 3D Secure est utilisée) | `charge.payment_method` | | Type de moyen de paiement utilisé | `charge.source.object == 'source' && charge.source.type` (sauf si `charge.source.type` est `three_d_secure`) | `charge.payment_method_details.type` | | Informations de facturation pour le paiement (p. ex. code postal) | `charge.source.owner.address.postal_code` | `charge.billing_details.address.postal_code` | | Nom du titulaire de la carte | `charge.source.owner.name` | `charge.billing_details.name` | | Les 4 derniers chiffres de la carte utilisée | `charge.source.card.last4` `charge.source.three_d_secure.last4` | `charge.payment_method_details.card.last4` | | Si l’authentification 3D Secure a réussi ou non | `charge.source.object == 'source' && charge.source.type == 'three_d_secure'` | `charge.payment_method_details.card.three_d_secure.succeeded` | | Empreinte de la carte | `charge.source.card.fingerprint` | `charge.payment_method_details.card.fingerprint` | | État de la vérification du CVC pour le paiement | `charge.source.card.cvc_check` | `charge.payment_method_details.card.checks.cvc_check` | | Marques des cartes | `charge.source.card.brand` peut désigner : `American Express`, `Diners Club`, `Discover`, `JCB`, `MasterCard`, `UnionPay`ou `Visa` | `charge.payment_method_details.card.brand` peut désigner : `amex`, `diners`, `discover`, `jcb`, `mastercard`, `unionpay`ou `visa` | | Valeur d’énumération de Google Pay | `charge.source.card.tokenization_method` est `android_pay` | `card.wallet.type` dans `charge.payment_method_details` est `google_pay` | ## See also - [Migrer vers Payment Intents](https://docs.stripe.com/payments/payment-intents/migration.md)