# Capturer un montant supérieur au montant autorisé d'un paiement Utilisez la surcapture pour capturer un montant supérieur au montant autorisé pour un PaymentIntent. # Page hébergée par Stripe > This is a Page hébergée par Stripe for when platform is web and ui is stripe-hosted. View the full page at https://docs.stripe.com/payments/overcapture?platform=web&ui=stripe-hosted. La surcapture vous permet de capturer un montant supérieur au montant autorisé pour un paiement par carte. Contrairement aux [autorisations complémentaires](https://docs.stripe.com/payments/incremental-authorization.md), la surcapture n’entraîne pas d’autorisations supplémentaires auprès des réseaux de cartes. Lorsque vous surcapturez un PaymentIntent, votre client ne verra pas les mises à jour immédiates sur son relevé de carte. Une fois que le montant capturé est réglé, l’autorisation initiale en attente est mise à jour avec le montant final capturé. ## Disponibilité Lorsque vous utilisez la surcapture, tenez compte des restrictions suivantes : - Disponible uniquement avec Visa, Mastercard, American Express et Discover. - Uniquement admissible pour les paiements par carte en ligne. Pour les paiements par carte à partir d’un TPE, consultez la page [Collecter des pourboires](https://docs.stripe.com/terminal/features/collecting-tips/overview.md). - Les marques de carte bancaire limitent le montant que vous pouvez surcapturer (qui est généralement un pourcentage calculé à partir du montant autorisé) et imposent des contraintes supplémentaires, comme le pays, le type de carte et les restrictions qui s’appliquent à la catégorie de marchand (voir ci-dessous). - [mode](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-mode) est défini sur `payment` et [capture_method](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-payment_intent_data-capture_method) est défini sur `manual` pour la [CheckoutSession](https://docs.stripe.com/api/checkout/sessions/.md) > #### Fonctionnalité IC+ > > Nous proposons la surcapture aux utilisateurs de la *tarification IC+*. Si vous utilisez la tarification standard de Stripe et souhaitez accéder à cette fonctionnalité, contactez-nous via le formulaire du [service de support Stripe](https://support.stripe.com). ### Disponibilité par réseau de cartes, pays de marchand et catégorie de marchand | Marque de la carte | Pays du marchand | Catégorie de marchand | Limite en pourcentage | | -------------------- | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | | **Visa**\* | International | Taxis et limousines ; bars et autres lieux de consommation (boissons alcoolisées) ; instituts de beauté et salons de coiffure ; spas de santé et de beauté | +20 % | | | États-Unis | Restaurants et autres lieux de restauration ; établissements de restauration rapide ; traiteurs | +30 % | | | International | Restaurants et autres lieux de restauration ; établissements de restauration rapide | +20 % | | | International | Location de voitures | La plus grande des deux valeurs suivantes : 15 % ou 75 USD (ou l’équivalent en devise locale) | | | International | Hébergement ; bateaux de croisière | +15 % | | | International** | Toutes les autres catégories de marchand | +15 % | | **Mastercard** | US*** | Restaurants et autres lieux de restauration ; établissements de restauration rapide | +30 % | | **American Express** | International**** | Restaurants et autres lieux de restauration ; bars et autres lieux de consommation (boissons alcoolisées) ; établissements de restauration rapide | +30 % | | | International | Taxis et limousines ; instituts de beauté et salons de coiffure ; spas de santé et de beauté | +20 % | | | International | Hébergement ; location de voitures ; location de camions et de remorques utilitaires ; location de camping-cars et de véhicules de loisirs ; supermarchés ; magasins | +15 % | | **Discover** | International | Taxis et limousines ; restaurants et autres lieux de restauration ; bars et autres lieux de consommation (boissons alcoolisées) ; établissements de restauration rapide ; instituts de beauté et salons de coiffure ; spas de santé et de beauté | +20 % | | | International | Hébergement ; location de voitures | +15 % | Entreprises de l’Espace économique européen (EEE) non comprises \** Pour les transactions effectuées par le titulaire de la carte \*** La carte bancaire doit également être émise aux États-Unis \****La limite en pourcentage pour les paiements par carte de débit et prépayée s’élève à 20 % ### Réseaux avec prise en charge limitée (bêta) Les réseaux de cartes suivants offrent une prise en charge limitée de la surcapture : | Marque de la carte | Pays du marchand | Catégorie de marchand | Limite en pourcentage | | ------------------ | ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------- | | **Diners Club** | États-Unis (via Discover) | Taxis et limousines ; restaurants et autres lieux de restauration ; bars et autres lieux de consommation (boissons alcoolisées) ; établissements de restauration rapide ; instituts de beauté et salons de coiffure ; spas de santé et de beauté | +20 % | | | États-Unis (via Discover) | Hébergement ; location de voitures | +15 % | ### Surcapture avec authentification forte du client (SCA) Si vous et le titulaire de la carte vous trouvez dans un pays soumis aux exigences de l’authentification forte du client (SCA), gardez à l’esprit les limitations liées à la disponibilité de la surcapture. - En vertu des exigences de la SCA, vous devez généralement authentifier un montant supérieur ou égal au montant capturé. Pour cette raison, vous devez authentifier et autoriser le montant estimé le plus élevé que vous prévoyez de capturer, plutôt que d’utiliser la surcapture comme indiqué ailleurs sur cette page. Par la suite, vous pouvez capturer jusqu’à la totalité du montant authentifié, en fonction du montant total des biens ou services fournis. Si vous estimez nécessaire de capturer un montant supérieur au montant initialement autorisé et authentifié, vous devez annuler le paiement d’origine et en créer un nouveau avec le montant correct. Il existe toutefois quelques exceptions à cette exigence (voir ci-dessous). - Il existe un certain nombre de cas de [transactions exemptées](https://support.stripe.com/questions/transaction-exemptions-for-strong-customer-authentication-%28sca%29) de la SCA dans lesquels la surcapture peut être autorisée. Par exemple, les transactions initiées par le marchand pour lesquelles le client n’est pas physiquement présent lors du paiement sont potentiellement exemptées. Consultez la page [Transactions initiées par le marchand (TIM) : dans quel cas une transaction est-elle une TIM ?](https://support.stripe.com/questions/merchant-initiated-transactions-\(mits\)-when-to-categorize-a-transaction-as-mit). Vous devez vous familiariser avec la documentation complète pour bien comprendre les exigences en matière de capture supérieure au montant autorisé et les exigences de la SCA. Pour en savoir plus, consultez notre [guide sur la SCA](https://stripe.com/guides/strong-customer-authentication). Vous pouvez utiliser le champ [custom_text](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-custom_text) lorsque vous créez une nouvelle [CheckoutSession](https://docs.stripe.com/api/checkout_sessions.md) pour afficher du texte supplémentaire sur la page de paiement afin de respecter les exigences de conformité. > #### Conformité > > Lorsque vous utilisez la surcapture, vous êtes responsable du respect de l’ensemble des lois, réglementations et règles de réseau en vigueur. Veillez à consulter les règles de réseau des réseaux de cartes avec lesquels vous prévoyez d’utiliser cette fonctionnalité pour vous assurer que vos ventes sont conformes aux règles applicables, qui varient d’un réseau à l’autre. Par exemple, certains réseaux de cartes n’autorisent pas la surcapture pour les transactions dont le montant final doit être connu au moment de l’autorisation. > > Les informations fournies sur cette page traitant de votre conformité à ces exigences le sont uniquement à titre indicatif, et ne constituent en rien des conseils juridiques, fiscaux, comptables ou autres. Si vous ne savez pas quelles obligations vous devez respecter, consultez un professionnel. ## Créer une session Checkout Ajoutez sur votre site Web un bouton de paiement qui appelle un endpoint côté serveur afin de créer une [session Checkout](https://docs.stripe.com/api/checkout/sessions/create.md). ```html Buy cool new product
``` Une session Checkout est la représentation programmatique de ce que votre client voit lorsqu’il est redirigé vers le formulaire de paiement. Vous pouvez la configurer à l’aide d’options telles que : - Les [postes](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-line_items) à facturer - Les devises à utiliser Vous devez renseigner `success_url` avec l’URL d’une page de votre site web vers laquelle Checkout redirige votre client une fois le paiement effectué. > Par défaut, les sessions Checkout expirent 24 heures après leur création. Après avoir créé une 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. Pour activer la fonctionnalité de surcapture, définissez [request_overcapture](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-payment_method_options-card-request_overcapture) sur `if_available`. #### Ruby ```ruby # This example sets up an endpoint using the Sinatra framework. require 'json' require 'sinatra' require 'stripe' # Don't put any keys in code. Use a secrets vault or environment # variable to supply keys to your integration. This example # shows how to set a secret key for illustration purposes only. # # See https://docs.stripe.com/keys-best-practices and find your # keys at https://dashboard.stripe.com/apikeys. Stripe.api_key = '<>' post '/create-checkout-session' do session = Stripe::Checkout::Session.create({ line_items: [{ price_data: { currency: 'usd', product_data: { name: 'T-shirt' }, unit_amount: 2000 }, quantity: 1 }],payment_method_options: { card: { request_overcapture: 'if_available' } }, mode: 'payment', # These placeholder URLs will be replaced in a following step. success_url: 'https://example.com/success' }) redirect session.url, 303 end ``` Une fois que votre client a effectué le paiement, consultez le champ [overcapture.status](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details-card-overcapture) de l’objet [latest_charge](https://docs.stripe.com/api/charges/object.md) du [PaymentIntent](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-payment_intent) pour déterminer si la surcapture est disponible pour le paiement selon la [disponibilité](https://docs.stripe.com/payments/overcapture.md#availability). S’il est défini sur `available`, le champ [maximum_amount_capturable](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details-card-overcapture-maximum_amount_capturable) indique le montant maximum qui peut être capturé pour le PaymentIntent. S’il est défini sur `unavailable`, le maximum_amount_capturable correspond au montant autorisé. ```json // PaymentIntent response { "id": "pi_xxx", "object": "payment_intent", "amount": 1000, "amount_capturable": 1000, "amount_received": 0, "status": "requires_capture", ... // if latest_charge is expanded "latest_charge": { "id": "ch_xxx", "object": "charge", "payment_method_details": { "card": { "amount_authorized": 1000 "overcapture": {"status": "available", // or "unavailable" "maximum_amount_capturable": 1200 } } } ... } ... } ``` ## Capturer le PaymentIntent Pour capturer plus que le montant actuellement autorisé sur un PaymentIntent, utilisez l’endpoint [capture](https://docs.stripe.com/api/payment_intents/capture.md) et fournissez un [amount_to_capture](https://docs.stripe.com/api/payment_intents/capture.md#capture_payment_intent-amount_to_capture) jusqu’au [maximum_amount_capturable](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details-card-overcapture). Si vous devez capturer un montant supérieur au `maximum_amount_capturable`, effectuez une [autorisation complémentaire](https://docs.stripe.com/payments/incremental-authorization.md) pour augmenter le montant autorisé, le cas échéant. ```curl curl https://api.stripe.com/v1/payment_intents/pi_xxx/capture \ -u "<>:" \ -d amount_to_capture=1200 \ -d "expand[]"=latest_charge ``` Si la surcapture aboutit, les champs [amount_capturable](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-amount_capturable) et [amount_received](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-amount_received) sont mis à jour en conséquence dans la réponse de capture du PaymentIntent. Lorsqu’il est renvoyé, le PaymentIntent capturé affiche un [montant](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-amount) mis à jour pour indiquer la valeur monétaire totale transférée dans le cadre de ce paiement. Utilisez le champ [amount_authorized](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details-card-amount_authorized) sur le paiement associé pour indiquer le montant initial autorisé, afin de vous assurer que la surcapture aboutira. ```json // PaymentIntent response { "id": "pi_xxx", "object": "payment_intent","amount": 1200, "amount_capturable": 0, "amount_received": 1200, "status": "succeeded", ... // if latest_charge is expanded "latest_charge": { "id": "ch_xxx", "object": "charge", "payment_method_details": { "card": { "amount_authorized": 1000, "overcapture": { "maximum_amount_capturable": 1200, "status": "available" // or "unavailable" } } } ... } ... } ``` # Formulaire intégré > This is a Formulaire intégré for when platform is web and ui is embedded-form. View the full page at https://docs.stripe.com/payments/overcapture?platform=web&ui=embedded-form. La surcapture vous permet de capturer un montant supérieur au montant autorisé pour un paiement par carte. Contrairement aux [autorisations complémentaires](https://docs.stripe.com/payments/incremental-authorization.md), la surcapture n’entraîne pas d’autorisations supplémentaires auprès des réseaux de cartes. Lorsque vous surcapturez un PaymentIntent, votre client ne verra pas les mises à jour immédiates sur son relevé de carte. Une fois que le montant capturé est réglé, l’autorisation initiale en attente est mise à jour avec le montant final capturé. ## Disponibilité Lorsque vous utilisez la surcapture, tenez compte des restrictions suivantes : - Disponible uniquement avec Visa, Mastercard, American Express et Discover. - Uniquement admissible pour les paiements par carte en ligne. Pour les paiements par carte à partir d’un TPE, consultez la page [Collecter des pourboires](https://docs.stripe.com/terminal/features/collecting-tips/overview.md). - Les marques de carte bancaire limitent le montant que vous pouvez surcapturer (qui est généralement un pourcentage calculé à partir du montant autorisé) et imposent des contraintes supplémentaires, comme le pays, le type de carte et les restrictions qui s’appliquent à la catégorie de marchand (voir ci-dessous). - [mode](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-mode) est défini sur `payment` et [capture_method](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-payment_intent_data-capture_method) est défini sur `manual` pour la [CheckoutSession](https://docs.stripe.com/api/checkout/sessions/.md) > #### Fonctionnalité IC+ > > Nous proposons la surcapture aux utilisateurs de la *tarification IC+*. Si vous utilisez la tarification standard de Stripe et souhaitez accéder à cette fonctionnalité, contactez-nous via le formulaire du [service de support Stripe](https://support.stripe.com). ### Disponibilité par réseau de cartes, pays de marchand et catégorie de marchand | Marque de la carte | Pays du marchand | Catégorie de marchand | Limite en pourcentage | | -------------------- | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | | **Visa**\* | International | Taxis et limousines ; bars et autres lieux de consommation (boissons alcoolisées) ; instituts de beauté et salons de coiffure ; spas de santé et de beauté | +20 % | | | États-Unis | Restaurants et autres lieux de restauration ; établissements de restauration rapide ; traiteurs | +30 % | | | International | Restaurants et autres lieux de restauration ; établissements de restauration rapide | +20 % | | | International | Location de voitures | La plus grande des deux valeurs suivantes : 15 % ou 75 USD (ou l’équivalent en devise locale) | | | International | Hébergement ; bateaux de croisière | +15 % | | | International** | Toutes les autres catégories de marchand | +15 % | | **Mastercard** | US*** | Restaurants et autres lieux de restauration ; établissements de restauration rapide | +30 % | | **American Express** | International**** | Restaurants et autres lieux de restauration ; bars et autres lieux de consommation (boissons alcoolisées) ; établissements de restauration rapide | +30 % | | | International | Taxis et limousines ; instituts de beauté et salons de coiffure ; spas de santé et de beauté | +20 % | | | International | Hébergement ; location de voitures ; location de camions et de remorques utilitaires ; location de camping-cars et de véhicules de loisirs ; supermarchés ; magasins | +15 % | | **Discover** | International | Taxis et limousines ; restaurants et autres lieux de restauration ; bars et autres lieux de consommation (boissons alcoolisées) ; établissements de restauration rapide ; instituts de beauté et salons de coiffure ; spas de santé et de beauté | +20 % | | | International | Hébergement ; location de voitures | +15 % | Entreprises de l’Espace économique européen (EEE) non comprises \** Pour les transactions effectuées par le titulaire de la carte \*** La carte bancaire doit également être émise aux États-Unis \****La limite en pourcentage pour les paiements par carte de débit et prépayée s’élève à 20 % ### Réseaux avec prise en charge limitée (bêta) Les réseaux de cartes suivants offrent une prise en charge limitée de la surcapture : | Marque de la carte | Pays du marchand | Catégorie de marchand | Limite en pourcentage | | ------------------ | ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------- | | **Diners Club** | États-Unis (via Discover) | Taxis et limousines ; restaurants et autres lieux de restauration ; bars et autres lieux de consommation (boissons alcoolisées) ; établissements de restauration rapide ; instituts de beauté et salons de coiffure ; spas de santé et de beauté | +20 % | | | États-Unis (via Discover) | Hébergement ; location de voitures | +15 % | ### Surcapture avec authentification forte du client (SCA) Si vous et le titulaire de la carte vous trouvez dans un pays soumis aux exigences de l’authentification forte du client (SCA), gardez à l’esprit les limitations liées à la disponibilité de la surcapture. - En vertu des exigences de la SCA, vous devez généralement authentifier un montant supérieur ou égal au montant capturé. Pour cette raison, vous devez authentifier et autoriser le montant estimé le plus élevé que vous prévoyez de capturer, plutôt que d’utiliser la surcapture comme indiqué ailleurs sur cette page. Par la suite, vous pouvez capturer jusqu’à la totalité du montant authentifié, en fonction du montant total des biens ou services fournis. Si vous estimez nécessaire de capturer un montant supérieur au montant initialement autorisé et authentifié, vous devez annuler le paiement d’origine et en créer un nouveau avec le montant correct. Il existe toutefois quelques exceptions à cette exigence (voir ci-dessous). - Il existe un certain nombre de cas de [transactions exemptées](https://support.stripe.com/questions/transaction-exemptions-for-strong-customer-authentication-%28sca%29) de la SCA dans lesquels la surcapture peut être autorisée. Par exemple, les transactions initiées par le marchand pour lesquelles le client n’est pas physiquement présent lors du paiement sont potentiellement exemptées. Consultez la page [Transactions initiées par le marchand (TIM) : dans quel cas une transaction est-elle une TIM ?](https://support.stripe.com/questions/merchant-initiated-transactions-\(mits\)-when-to-categorize-a-transaction-as-mit). Vous devez vous familiariser avec la documentation complète pour bien comprendre les exigences en matière de capture supérieure au montant autorisé et les exigences de la SCA. Pour en savoir plus, consultez notre [guide sur la SCA](https://stripe.com/guides/strong-customer-authentication). Vous pouvez utiliser le champ [custom_text](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-custom_text) lorsque vous créez une nouvelle [CheckoutSession](https://docs.stripe.com/api/checkout_sessions.md) pour afficher du texte supplémentaire sur la page de paiement afin de respecter les exigences de conformité. > #### Conformité > > Lorsque vous utilisez la surcapture, vous êtes responsable du respect de l’ensemble des lois, réglementations et règles de réseau en vigueur. Veillez à consulter les règles de réseau des réseaux de cartes avec lesquels vous prévoyez d’utiliser cette fonctionnalité pour vous assurer que vos ventes sont conformes aux règles applicables, qui varient d’un réseau à l’autre. Par exemple, certains réseaux de cartes n’autorisent pas la surcapture pour les transactions dont le montant final doit être connu au moment de l’autorisation. > > Les informations fournies sur cette page traitant de votre conformité à ces exigences le sont uniquement à titre indicatif, et ne constituent en rien des conseils juridiques, fiscaux, comptables ou autres. Si vous ne savez pas quelles obligations vous devez respecter, consultez un professionnel. ## Créer une session Checkout Depuis votre serveur, créez une *Checkout Session* (A Checkout Session represents your customer's session as they pay for one-time purchases or subscriptions through Checkout. After a successful payment, the Checkout Session contains a reference to the Customer, and either the successful PaymentIntent or an active Subscription) et définissez l’[ui_mode](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-ui_mode) sur `embedded`. Vous pouvez configurer la [Checkout Session](https://docs.stripe.com/api/checkout/sessions/create.md) avec des [postes](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-line_items) à inclure et des options telles que [currency](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-currency). Pour rediriger vos clients vers une page personnalisée hébergée sur votre site Web, spécifiez l’URL de cette page dans le paramètre [return_url](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-return_url). Incluez la variable de modèle `{CHECKOUT_SESSION_ID}` dans l’URL pour récupérer l’état de la session sur la page de retour. Checkout remplace automatiquement la variable par l’ID de session Checkout avant la redirection. En savoir plus sur la [configuration de la page](https://docs.stripe.com/payments/accept-a-payment.md?payment-ui=checkout&ui=embedded-form#return-page) de retour et d’autres options pour [personnaliser le comportement](https://docs.stripe.com/payments/checkout/custom-success-page.md?payment-ui=embedded-form) de redirection. Après avoir créé la session Checkout, utilisez la `client_secret` renvoyée dans la réponse pour [monter Checkout](https://docs.stripe.com/payments/overcapture.md#mount-checkout). Pour activer la fonctionnalité de surcapture, définissez [request_overcapture](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-payment_method_options-card-request_overcapture) sur `if_available`. #### Ruby ```ruby # This example sets up an endpoint using the Sinatra framework. require 'json' require 'sinatra' require 'stripe' # Don't put any keys in code. Use a secrets vault or environment # variable to supply keys to your integration. This example # shows how to set a secret key for illustration purposes only. # # See https://docs.stripe.com/keys-best-practices and find your # keys at https://dashboard.stripe.com/apikeys. Stripe.api_key = '<>' post '/create-checkout-session' do session = Stripe::Checkout::Session.create({ line_items: [{ price_data: { currency: 'usd', product_data: { name: 'T-shirt', }, unit_amount: 2000, }, quantity: 1, }], mode: 'payment', ui_mode: 'embedded',payment_method_options: { card: { request_overcapture: 'if_available', }, }, return_url: 'https://example.com/checkout/return?session_id={CHECKOUT_SESSION_ID}' }) {clientSecret: session.client_secret}.to_json end ``` Une fois que le client a terminé son paiement, consultez le champ [overcapture.status](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details-card-overcapture) de l’objet [latest_charge](https://docs.stripe.com/api/charges/object.md) du [PaymentIntent](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-payment_intent) pour déterminer si la surcapture est disponible pour le paiement en fonction de la [disponibilité](https://docs.stripe.com/payments/overcapture.md#availability). S’il est défini sur `available`, le champ [maximum_amount_capturable](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details-card-overcapture-maximum_amount_capturable) indique le montant maximum qui peut être capturé pour le PaymentIntent. S’il est défini sur `unavailable`, le maximum_amount_capturable correspond au montant autorisé. ```json // PaymentIntent response { "id": "pi_xxx", "object": "payment_intent", "amount": 1000, "amount_capturable": 1000, "amount_received": 0, "status": "requires_capture", ... // if latest_charge is expanded "latest_charge": { "id": "ch_xxx", "object": "charge", "payment_method_details": { "card": { "amount_authorized": 1000 "overcapture": {"status": "available", // or "unavailable" "maximum_amount_capturable": 1200 } } } ... } ... } ``` ## Capturer le PaymentIntent Pour capturer plus que le montant actuellement autorisé sur un PaymentIntent, utilisez l’endpoint [capture](https://docs.stripe.com/api/payment_intents/capture.md) et fournissez un [amount_to_capture](https://docs.stripe.com/api/payment_intents/capture.md#capture_payment_intent-amount_to_capture) jusqu’au [maximum_amount_capturable](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details-card-overcapture). Si vous devez capturer un montant supérieur au `maximum_amount_capturable`, effectuez une [autorisation complémentaire](https://docs.stripe.com/payments/incremental-authorization.md) pour augmenter le montant autorisé, le cas échéant. ```curl curl https://api.stripe.com/v1/payment_intents/pi_xxx/capture \ -u "<>:" \ -d amount_to_capture=1200 \ -d "expand[]"=latest_charge ``` Si la surcapture aboutit, les champs [amount_capturable](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-amount_capturable) et [amount_received](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-amount_received) sont mis à jour en conséquence dans la réponse de capture du PaymentIntent. Lorsqu’il est renvoyé, le PaymentIntent capturé affiche un [montant](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-amount) mis à jour pour indiquer la valeur monétaire totale transférée dans le cadre de ce paiement. Utilisez le champ [amount_authorized](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details-card-amount_authorized) sur le paiement associé pour indiquer le montant initial autorisé, afin de vous assurer que la surcapture aboutira. ```json // PaymentIntent response { "id": "pi_xxx", "object": "payment_intent","amount": 1200, "amount_capturable": 0, "amount_received": 1200, "status": "succeeded", ... // if latest_charge is expanded "latest_charge": { "id": "ch_xxx", "object": "charge", "payment_method_details": { "card": { "amount_authorized": 1000, "overcapture": { "maximum_amount_capturable": 1200, "status": "available" // or "unavailable" } } } ... } ... } ``` ## Monter Checkout #### HTML + JS Checkout est disponible dans [Stripe.js](https://docs.stripe.com/js.md). Intégrez le script Stripe.js à votre page en l’ajoutant à l’en-tête de votre fichier HTML. Ensuite, créez un nœud DOM vide (conteneur) à utiliser pour le montage. ```html
``` Initialisez Stripe.js avec votre clé API publique. Créez une fonction `fetchClientSecret` asynchrone qui demande à votre serveur de créer la session Checkout et de récupérer la clé secrète du client. Transmettez cette fonction dans la propriété `options` lorsque vous créez l’instance Checkout : ```javascript // Initialize Stripe.js const stripe = Stripe('<>'); initialize(); // Fetch Checkout Session and retrieve the client secret async function initialize() { const fetchClientSecret = async () => { const response = await fetch("/create-checkout-session", { method: "POST", }); const { clientSecret } = await response.json(); return clientSecret; }; // Initialize Checkout const checkout = await stripe.initEmbeddedCheckout({ fetchClientSecret, }); // Mount Checkout checkout.mount('#checkout'); } ``` #### React Installez [react-stripe-js](https://docs.stripe.com/sdks/stripejs-react.md) et le chargeur Stripe.js à partir de npm : ```bash npm install --save @stripe/react-stripe-js @stripe/stripe-js ``` Pour utiliser le composant Checkout intégré, créez un `EmbeddedCheckoutProvider`. Appelez `loadStripe` avec votre clé API publique et transmettez la valeur `Promise` au prestataire. Créez une fonction `fetchClientSecret` asynchrone qui demande à votre serveur de créer la session Checkout et de récupérer la clé secrète du client. Transmettez cette fonction dans la propriété `options` acceptée par le prestataire. ```jsx import * as React from 'react'; import {loadStripe} from '@stripe/stripe-js'; import { EmbeddedCheckoutProvider, EmbeddedCheckout } from '@stripe/react-stripe-js'; // Make sure to call `loadStripe` outside of a component’s render to avoid // recreating the `Stripe` object on every render. const stripePromise = loadStripe('pk_test_123'); const App = () => { const fetchClientSecret = useCallback(() => { // Create a Checkout Session return fetch("/create-checkout-session", { method: "POST", }) .then((res) => res.json()) .then((data) => data.clientSecret); }, []); const options = {fetchClientSecret}; return (
) } ``` Checkout s’affiche dans un iframe qui envoie de manière sécurisée les informations de paiement à Stripe via une connexion HTTPS. > Évitez de placer Checkout dans un autre iframe, car certains moyens de paiement nécessitent une redirection vers une autre page pour la confirmation du paiement. ### Personnaliser l’apparence Personnalisez Checkout pour qu’il corresponde au design de votre site en définissant la couleur d’arrière-plan, la couleur des boutons, le rayon de la bordure et les polices dans les [paramètres de marque](https://dashboard.stripe.com/settings/branding) de votre compte. Par défaut, Checkout s’affiche sans espacement externe ni marge. Nous vous recommandons d’utiliser un élément de conteneur tel qu’un espace div pour appliquer la marge souhaitée (par exemple, 16 px sur tous les côtés). ## Afficher une page de retour Une fois que votre client a effectué une tentative de paiement, Stripe le redirige vers une page de retour que vous hébergez sur votre site. Lors de la création de la session Checkout, vous avez renseigné l’URL de la page de retour dans le paramètre [return_url](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-return_url). En savoir plus sur les autres options de [personnalisation du comportement de redirection](https://docs.stripe.com/payments/checkout/custom-success-page.md?payment-ui=embedded-form). Lors de l’affichage de votre page de retour, récupérez l’état de la session Checkout à l’aide de l’ID de session Checkout dans l’URL. Traitez le résultat en fonction de l’état de la session comme suit : - `complete` : Le paiement a abouti. Utilisez les informations de la session Checkout pour afficher une page de confirmation. - `open` : Le paiement a échoué ou a été annulé. Montez à nouveau Checkout pour que votre client puisse effectuer une nouvelle tentative. #### Ruby ```ruby get '/session-status' do session = Stripe::Checkout::Session.retrieve(params[:session_id]) {status: session.status, customer_email: session.customer_details.email}.to_json end ``` ```javascript const session = await fetch(`/session_status?session_id=${session_id}`) if (session.status == 'open') { // Remount embedded Checkout } else if (session.status == 'complete') { // Show success page // Optionally use session.payment_status or session.customer_email // to customize the success page } ``` #### Moyens de paiement avec redirection Lors du paiement, certains moyens de paiement redirigent le client vers une page intermédiaire, comme la page d’autorisation de sa banque. Une fois qu’il a renseigné cette page, Stripe le redirige vers votre page de retour. En savoir plus sur [les moyens de paiement avec redirection et le comportement de redirection](https://docs.stripe.com/payments/checkout/custom-success-page.md?payment-ui=embedded-form#redirect-based-payment-methods). # Intégration avancée > This is a Intégration avancée for when platform is web and ui is elements. View the full page at https://docs.stripe.com/payments/overcapture?platform=web&ui=elements. La surcapture vous permet de capturer un montant supérieur au montant autorisé pour un paiement par carte. Contrairement aux [autorisations complémentaires](https://docs.stripe.com/payments/incremental-authorization.md), la surcapture n’entraîne pas d’autorisations supplémentaires auprès des réseaux de cartes. Lorsque vous surcapturez un PaymentIntent, votre client ne verra pas les mises à jour immédiates sur son relevé de carte. Une fois que le montant capturé est réglé, l’autorisation initiale en attente est mise à jour avec le montant final capturé. ## Disponibilité Lorsque vous utilisez la surcapture, tenez compte des restrictions suivantes : - Disponible uniquement avec Visa, Mastercard, American Express et Discover. - Uniquement admissible pour les paiements par carte en ligne. Pour les paiements par carte à partir d’un TPE, consultez la page [Collecter des pourboires](https://docs.stripe.com/terminal/features/collecting-tips/overview.md). - Les marques de carte bancaire limitent le montant que vous pouvez surcapturer (qui est généralement un pourcentage calculé à partir du montant autorisé) et imposent des contraintes supplémentaires, comme le pays, le type de carte et les restrictions qui s’appliquent à la catégorie de marchand (voir ci-dessous). > #### Fonctionnalité IC+ > > Nous proposons la surcapture aux utilisateurs de la *tarification IC+*. Si vous utilisez la tarification standard de Stripe et souhaitez accéder à cette fonctionnalité, contactez-nous via le formulaire du [service de support Stripe](https://support.stripe.com). ### Disponibilité par réseau de cartes, pays de marchand et catégorie de marchand | Marque de la carte | Pays du marchand | Catégorie de marchand | Limite en pourcentage | | -------------------- | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | | **Visa**\* | International | Taxis et limousines ; bars et autres lieux de consommation (boissons alcoolisées) ; instituts de beauté et salons de coiffure ; spas de santé et de beauté | +20 % | | | États-Unis | Restaurants et autres lieux de restauration ; établissements de restauration rapide ; traiteurs | +30 % | | | International | Restaurants et autres lieux de restauration ; établissements de restauration rapide | +20 % | | | International | Location de voitures | La plus grande des deux valeurs suivantes : 15 % ou 75 USD (ou l’équivalent en devise locale) | | | International | Hébergement ; bateaux de croisière | +15 % | | | International** | Toutes les autres catégories de marchand | +15 % | | **Mastercard** | US*** | Restaurants et autres lieux de restauration ; établissements de restauration rapide | +30 % | | **American Express** | International**** | Restaurants et autres lieux de restauration ; bars et autres lieux de consommation (boissons alcoolisées) ; établissements de restauration rapide | +30 % | | | International | Taxis et limousines ; instituts de beauté et salons de coiffure ; spas de santé et de beauté | +20 % | | | International | Hébergement ; location de voitures ; location de camions et de remorques utilitaires ; location de camping-cars et de véhicules de loisirs ; supermarchés ; magasins | +15 % | | **Discover** | International | Taxis et limousines ; restaurants et autres lieux de restauration ; bars et autres lieux de consommation (boissons alcoolisées) ; établissements de restauration rapide ; instituts de beauté et salons de coiffure ; spas de santé et de beauté | +20 % | | | International | Hébergement ; location de voitures | +15 % | Entreprises de l’Espace économique européen (EEE) non comprises \** Pour les transactions effectuées par le titulaire de la carte \*** La carte bancaire doit également être émise aux États-Unis \****La limite en pourcentage pour les paiements par carte de débit et prépayée s’élève à 20 % ### Réseaux avec prise en charge limitée (bêta) Les réseaux de cartes suivants offrent une prise en charge limitée de la surcapture : | Marque de la carte | Pays du marchand | Catégorie de marchand | Limite en pourcentage | | ------------------ | ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------- | | **Diners Club** | États-Unis (via Discover) | Taxis et limousines ; restaurants et autres lieux de restauration ; bars et autres lieux de consommation (boissons alcoolisées) ; établissements de restauration rapide ; instituts de beauté et salons de coiffure ; spas de santé et de beauté | +20 % | | | États-Unis (via Discover) | Hébergement ; location de voitures | +15 % | ### Surcapture avec authentification forte du client (SCA) Si vous et le titulaire de la carte vous trouvez dans un pays soumis aux exigences de l’authentification forte du client (SCA), gardez à l’esprit les limitations liées à la disponibilité de la surcapture. - En vertu des exigences de la SCA, vous devez généralement authentifier un montant supérieur ou égal au montant capturé. Pour cette raison, vous devez authentifier et autoriser le montant estimé le plus élevé que vous prévoyez de capturer, plutôt que d’utiliser la surcapture comme indiqué ailleurs sur cette page. Par la suite, vous pouvez capturer jusqu’à la totalité du montant authentifié, en fonction du montant total des biens ou services fournis. Si vous estimez nécessaire de capturer un montant supérieur au montant initialement autorisé et authentifié, vous devez annuler le paiement d’origine et en créer un nouveau avec le montant correct. Il existe toutefois quelques exceptions à cette exigence (voir ci-dessous). - Il existe un certain nombre de cas de [transactions exemptées](https://support.stripe.com/questions/transaction-exemptions-for-strong-customer-authentication-%28sca%29) de la SCA dans lesquels la surcapture peut être autorisée. Par exemple, les transactions initiées par le marchand pour lesquelles le client n’est pas physiquement présent lors du paiement sont potentiellement exemptées. Consultez la page [Transactions initiées par le marchand (TIM) : dans quel cas une transaction est-elle une TIM ?](https://support.stripe.com/questions/merchant-initiated-transactions-\(mits\)-when-to-categorize-a-transaction-as-mit). Vous devez vous familiariser avec la documentation complète pour bien comprendre les exigences en matière de capture supérieure au montant autorisé et les exigences de la SCA. Pour en savoir plus, consultez notre [guide sur la SCA](https://stripe.com/guides/strong-customer-authentication). > #### Conformité > > Lorsque vous utilisez la surcapture, vous êtes responsable du respect de l’ensemble des lois, réglementations et règles de réseau en vigueur. Veillez à consulter les règles de réseau des réseaux de cartes avec lesquels vous prévoyez d’utiliser cette fonctionnalité pour vous assurer que vos ventes sont conformes aux règles applicables, qui varient d’un réseau à l’autre. Par exemple, certains réseaux de cartes n’autorisent pas la surcapture pour les transactions dont le montant final doit être connu au moment de l’autorisation. > > Les informations fournies sur cette page traitant de votre conformité à ces exigences le sont uniquement à titre indicatif, et ne constituent en rien des conseils juridiques, fiscaux, comptables ou autres. Si vous ne savez pas quelles obligations vous devez respecter, consultez un professionnel. ## Créer et confirmer un PaymentIntent non capturé Vous pouvez effectuer une surcapture uniquement sur des paiements non capturés après la [confirmation du PaymentIntent](https://docs.stripe.com/api/payment_intents/confirm.md). Pour indiquer que vous souhaitez séparer l’autorisation de la capture, définissez le paramètre [capture_method](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-capture_method) sur `manual` lors de la création du PaymentIntent. Pour en savoir plus sur comment séparer l’autorisation de la capture, consultez la page [comment bloquer une somme d’argent sur un moyen de paiement](https://docs.stripe.com/payments/place-a-hold-on-a-payment-method.md). Vous devez spécifier les PaymentIntents que vous prévoyez de surcapturer en utilisant `if_available` à l’aide du paramètre [request_overcapture](https://docs.stripe.com/api/payment_intents/confirm.md#confirm_payment_intent-payment_method_options-card-request_overcapture). ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d amount=1000 \ -d currency=usd \ -d "payment_method_types[]"=card \ -d payment_method=pm_card_visa \ -d confirm=true \ -d capture_method=manual \ -d "expand[]"=latest_charge \ -d "payment_method_options[card][request_overcapture]"=if_available ``` Consultez le champ [overcapture.status](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details-card-overcapture) dans l’objet [latest_charge](https://docs.stripe.com/api/charges/object.md) de la réponse de confirmation du PaymentIntent pour déterminer si la surcapture est disponible pour le paiement selon la [disponibilité](https://docs.stripe.com/payments/overcapture.md#availability). Si la valeur est `available`, le champ [maximum_amount_capturable](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details-card-overcapture-maximum_amount_capturable) indique le montant maximum qui peut être capturé pour le PaymentIntent. Si la valeur est `unavailable`, maximum_amount_capturable indique le montant autorisé. ```json // PaymentIntent response { "id": "pi_xxx", "object": "payment_intent", "amount": 1000, "amount_capturable": 1000, "amount_received": 0, "status": "requires_capture", ... // if latest_charge is expanded "latest_charge": { "id": "ch_xxx", "object": "charge", "payment_method_details": { "card": { "amount_authorized": 1000 "overcapture": {"status": "available", // or "unavailable" "maximum_amount_capturable": 1200 } } } ... } ... } ``` ## Capturer le PaymentIntent Pour capturer plus que le montant actuellement autorisé sur un PaymentIntent, utilisez l’endpoint [capture](https://docs.stripe.com/api/payment_intents/capture.md) et fournissez un [amount_to_capture](https://docs.stripe.com/api/payment_intents/capture.md#capture_payment_intent-amount_to_capture) jusqu’au [maximum_amount_capturable](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details-card-overcapture). Si vous devez capturer un montant supérieur au `maximum_amount_capturable`, effectuez une [autorisation complémentaire](https://docs.stripe.com/payments/incremental-authorization.md) pour augmenter le montant autorisé, le cas échéant. ```curl curl https://api.stripe.com/v1/payment_intents/pi_xxx/capture \ -u "<>:" \ -d amount_to_capture=1200 \ -d "expand[]"=latest_charge ``` Si la surcapture aboutit, les champs [amount_capturable](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-amount_capturable) et [amount_received](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-amount_received) sont mis à jour en conséquence dans la réponse de capture du PaymentIntent. Lorsqu’il est renvoyé, le PaymentIntent capturé affiche un [montant](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-amount) mis à jour pour indiquer la valeur monétaire totale transférée dans le cadre de ce paiement. Utilisez le champ [amount_authorized](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details-card-amount_authorized) sur le paiement associé pour indiquer le montant initial autorisé, afin de vous assurer que la surcapture aboutira. ```json // PaymentIntent response { "id": "pi_xxx", "object": "payment_intent","amount": 1200, "amount_capturable": 0, "amount_received": 1200, "status": "succeeded", ... // if latest_charge is expanded "latest_charge": { "id": "ch_xxx", "object": "charge", "payment_method_details": { "card": { "amount_authorized": 1000, "overcapture": { "maximum_amount_capturable": 1200, "status": "available" // or "unavailable" } } } ... } ... } ``` ## Tester votre intégration Utilisez les cartes de test Stripe ci-dessous avec n’importe quel CVC et une date d’expiration postérieure à la date du jour test pour demander et effectuer des surcaptures pendant le test. Si la surcapture est disponible pour les paiements d’un réseau donné pendant les tests, elle est également disponible pour les paiements réels. | Numéro | Moyen de paiement | Description | | ---------------- | ---------------------------------------------- | ---------------------------------------------------------------------- | | 4242424242424242 | `pm_card_visa` | Carte bancaire de test qui prend en charge la surcapture. | | 5555555555554444 | `pm_card_mastercard` | Carte bancaire de test Mastercard qui prend en charge la surcapture. | | 378282246310005 | `pm_card_amex` | Carte bancaire de text Amex qui prend en charge la surcapture. | | 6011111111111117 | `pm_card_discover` | Découvrez la carte bancaire de test qui prend en charge la surcapture. | | 4000008400000076 | `pm_card_credit_disableEnterpriseCardFeatures` | Carte test bancaire qui ne prend pas en charge la surcapture. |