# Migrer vers les derniers scénarios de paiement flexibles Adaptez vos scénarios de paiement bêta avancés à la version générale. Stripe prend désormais en charge plusieurs scénarios de paiement flexibles pour les transactions sans présentation de la carte. Si vous avez déjà intégré la version bêta privée de l’une de ces fonctionnalités, ce guide vous explique comment passer à la version générale. Pour les nouvelles intégrations, consultez les guides suivants concernant les fonctionnalités qui vous intéressent : - [Augmenter une autorisation](https://docs.stripe.com/payments/incremental-authorization.md) - [Capturer un montant supérieur au montant autorisé](https://docs.stripe.com/payments/overcapture.md) - [Bloquer une somme sur une carte de paiement en ligne pour une période prolongée](https://docs.stripe.com/payments/extended-authorization.md) - [Capturer un paiement plusieurs fois](https://docs.stripe.com/payments/multicapture.md) Nous avons intégré les améliorations suivantes à ces fonctionnalités suite aux retours d’informations : - Contrôle détaillé des fonctionnalités au niveau du *PaymentIntent* (API object that represents your intent to collect payment from a customer, tracking charge attempts and payment state changes throughout the process). - Attentes plus claires concernant la disponibilité et l’utilisation des fonctionnalités après une phase de *confirmation* (Confirming a PaymentIntent indicates that the customer intends to pay with the current or provided payment method. Upon confirmation, the PaymentIntent attempts to initiate a payment). Chaque fonctionnalité de paiement flexibles présente des exigences différentes de celles de son intégration en version bêta privée. Choisissez la fonctionnalité à mettre à niveau et reportez-vous à la note en haut de la page pour connaître les modifications et les exigences qui lui sont spécifiques. # Autorisation complémentaire > This is a Autorisation complémentaire for when flex-payment-features is incremental-auth. View the full page at https://docs.stripe.com/payments/flexible-features-migration?flex-payment-features=incremental-auth. > #### Modifications par rapport à la version bêta > > La première étape de cette intégration est désormais obligatoire. ## Demander une autorisation complémentaire Votre *PaymentIntent* (API object that represents your intent to collect payment from a customer, tracking charge attempts and payment state changes throughout the process) doit inclure une demande d’autorisation complémentaire avant la confirmation. > Cette étape auparavant facultative est désormais obligatoire. ### Before ```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_debit_incrementalAuthAuthorized \ -d confirm=true \ -d capture_method=manual \ -d "expand[]=latest_charge" \ -d "payment_method_options[card][request_incremental_authorization_support]=true" ``` ### After ```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_debit_incrementalAuthAuthorized \ -d confirm=true \ -d capture_method=manual \ -d "expand[]=latest_charge" \ -d "payment_method_options[card][request_incremental_authorization]=if_available" ``` La réponse renvoie désormais l’état de la demande d’autorisation complémentaire dans la propriété `payment_method_details.card.incremental_authorization.status` de [latest_charge](https://docs.stripe.com/api/charges/object.md). Ses valeurs sont `available` ou `unavailable` selon le moyen de paiement du client. ### Before ```json // PaymentIntent Response { "id": "pi_ANipwO3zNfjeWODtRPIg", "object": "payment_intent", "amount": 1000, "amount_capturable": 1000, "amount_received": 0, ... // if latest_charge is expanded { "latest_charge": { "amount": 1000, "payment_method_details": { "card": {"incremental_authorization_supported": true // or false } } ... } } } ``` ### After ```json // PaymentIntent Response { "id": "pi_ANipwO3zNfjeWODtRPIg", "object": "payment_intent", "amount": 1000, "amount_capturable": 1000, "amount_received": 0, ... // if latest_charge is expanded { "latest_charge": { "amount": 1000, "payment_method_details": { "card": { "incremental_authorization": {"status": "available" // or "unavailable" } } } ... } } } ``` ## Modifier progressivement le montant autorisé **Aucune modification n’a été apportée à cette étape par rapport à la version bêta.** ```curl curl https://api.stripe.com/v1/payment_intents/pi_ANipwO3zNfjeWODtRPIg/increment_authorization \ -u "<>:" \ -d amount=1500 ``` # Surcapture > This is a Surcapture for when flex-payment-features is overcapture. View the full page at https://docs.stripe.com/payments/flexible-features-migration?flex-payment-features=overcapture. > #### Modifications par rapport à la version bêta > > La première étape de cette intégration n’existait pas auparavant, mais elle est désormais obligatoire. ## Demander une surcapture Votre *PaymentIntent* (API object that represents your intent to collect payment from a customer, tracking charge attempts and payment state changes throughout the process) doit inclure une demande de surcapture avant la confirmation. L’intégration de la version bêta privée pour la surcapture ne comprenait pas cette étape, car le paramètre de requête n’existait pas. ```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" ``` La réponse renvoie l’état de la demande de surcapture dans la propriété `payment_method_details.card.overcapture.status` de [latest_charge](https://docs.stripe.com/api/charges/object.md). Ses valeurs sont `available` ou `unavailable` selon le moyen de paiement du client. ```json // PaymentIntent Response { "id": "pi_ANipwO3zNfjeWODtRPIg", "object": "payment_intent", "amount": 1000, "amount_capturable": 1000, "amount_received": 0, ... // if latest_charge is expanded { "latest_charge": { "amount": 1000, "payment_method_details": { "card": { "overcapture": {"status": "available", // or "unavailable" "maximum_capturable_amount": 1200 } } } ... } } } ``` ## Capturer un montant supérieur au montant autorisé Pour capturer un montant supérieur au montant actuellement autorisé sur un *PaymentIntent* (API object that represents your intent to collect payment from a customer, tracking charge attempts and payment state changes throughout the process), utilisez l’endpoint [capture](https://docs.stripe.com/api/payment_intents/capture.md) et fournissez un paramètre [amount_to_capture](https://docs.stripe.com/api/payment_intents/capture.md#capture_payment_intent-amount_to_capture) inférieur ou égal au [maximum_amount_capturable](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details-card-overcapture). ```curl curl https://api.stripe.com/v1/payment_intents/pi_ANipwO3zNfjeWODtRPIg/capture \ -u "<>:" \ -d amount_to_capture=1200 ``` # Autorisation prolongée > This is a Autorisation prolongée for when flex-payment-features is extended-auth. View the full page at https://docs.stripe.com/payments/flexible-features-migration?flex-payment-features=extended-auth. > #### Modifications par rapport à la version bêta > > La première étape de cette intégration n’existait pas auparavant, mais elle est désormais obligatoire. ## Demander une autorisation prolongée Votre *PaymentIntent* (API object that represents your intent to collect payment from a customer, tracking charge attempts and payment state changes throughout the process) doit inclure une demande d’autorisation prolongée avant la confirmation. L’intégration de la version bêta privée pour l’autorisation prolongée ne comprenait pas cette étape, car le paramètre de requête n’existait pas. ```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_extended_authorization]=if_available" ``` La réponse renvoie l’état de la demande d’autorisation prolongée dans la propriété `payment_method_details.card.extended_authorization.status` de [latest_charge](https://docs.stripe.com/api/charges/object.md). Ses valeurs sont `available` ou `unavailable` selon le moyen de paiement du client. ```json // PaymentIntent Response { "id": "pi_ANipwO3zNfjeWODtRPIg", "object": "payment_intent", "amount": 1000, "amount_capturable": 1000, "amount_received": 0, ... // if latest_charge is expanded { "latest_charge": { "amount": 1000, "payment_method_details": { "card": {// The field is now always available, even when not using extended authorization "capture_before": 1679090539, // The response contains information on whether the capture window was extended. "extended_authorization": {"status": "enabled", // or "disabled" } } } ... } } } ``` ## Capturer l'autorisation **Aucune modification n’a été apportée à cette étape par rapport à la version bêta.** Effectuez une capture avant la date indiquée dans le [champ `capture_before`](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details-card-capture_before). ```curl curl https://api.stripe.com/v1/payment_intents/pi_ANipwO3zNfjeWODtRPIg/capture \ -u "<>:" \ -d amount_to_capture=1000 ``` # Multicapture > This is a Multicapture for when flex-payment-features is multicapture. View the full page at https://docs.stripe.com/payments/flexible-features-migration?flex-payment-features=multicapture. > #### Modifications par rapport à la version bêta > > La migration de la version bêta à la version disponible au grand public nécessite plusieurs modifications affectant les quatre étapes suivantes. ## Demander une multicapture Votre *PaymentIntent* (API object that represents your intent to collect payment from a customer, tracking charge attempts and payment state changes throughout the process) doit inclure une demande de multicapture avant la confirmation. L’intégration de la version bêta privée pour la multicapture ne comprenait pas cette étape, car le paramètre de requête n’existait pas. Demandez l’accès à la fonctionnalité dans la version disponible au public en transmettant la valeur `multicapture_migrate_to_ga_from_beta` dans l’en-tête [Stripe-Version](https://docs.stripe.com/sdks/set-version.md) avant de confirmer le *PaymentIntent* (API object that represents your intent to collect payment from a customer, tracking charge attempts and payment state changes throughout the process). ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -H "Stripe-Version: 2026-03-25.preview; multicapture_migrate_to_ga_from_beta" \ -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_multicapture]=if_available" ``` La réponse renvoie l’état de la demande de multicapture dans la propriété `payment_method_details.card.multicapture.status` de [latest_charge](https://docs.stripe.com/api/charges/object.md). Ses valeurs sont `available` ou `unavailable` selon le moyen de paiement du client. ```json // PaymentIntent Response { "id": "pi_ANipwO3zNfjeWODtRPIg", "object": "payment_intent","amount": 1000, "amount_capturable": 1000, "amount_received": 0, ... // if latest_charge is expanded "latest_charge": {"amount": 1000, "amount_captured": 0, "amount_refunded": 0, "payment_method_details": { "card": { "multicapture": {"status": "available" // or "unavailable" } } } ... } ... } ``` ## Capturer plusieurs fois partiellement le montant autorisé Comme dans la version bêta, le paramètre facultatif `final_capture` vous permet de capturer le *PaymentIntent* (API object that represents your intent to collect payment from a customer, tracking charge attempts and payment state changes throughout the process) plusieurs fois tant qu’il reste à l’[état requires_capture](https://docs.stripe.com/payments/paymentintents/lifecycle.md). ```curl curl https://api.stripe.com/v1/payment_intents/pi_ANipwO3zNfjeWODtRPIg/capture \ -u "<>:" \ -H "Stripe-Version: 2026-03-25.preview; multicapture_migrate_to_ga_from_beta" \ -d amount_to_capture=700 \ -d final_capture=false \ -d "expand[]=latest_charge" ``` ```json // PaymentIntent Response { "id": "pi_ANipwO3zNfjeWODtRPIg", "object": "payment_intent","amount": 1000, "amount_capturable": 300, // 1000 - 700 = 300 "amount_received": 700, "status": "requires_capture", // if latest_charge is expanded "latest_charge": {"amount": 1000, "amount_captured": 700, "amount_refunded": 0, ... } ... } ``` > Dans la version généralement disponible, toute tentative de capture de la totalité du montant restant avec le paramètre `final_capture` défini sur `false` renvoie une erreur 400. ### Before ```curl curl https://api.stripe.com/v1/payment_intents/pi_ANipwO3zNfjeWODtRPIg/capture \ -u "<>:" \ -d amount_to_capture=300 \ -d final_capture=false \ -d "expand[]=latest_charge" ``` ```json // PaymentIntent Response { "id": "pi_ANipwO3zNfjeWODtRPIg", "object": "payment_intent","amount": 1000, "amount_capturable": 0, // 1000 - 700 - 300 = 0 "amount_received": 1000, "status": "succeeded", // if latest_charge is expanded "latest_charge": {"amount": 1000, "amount_captured": 1000, "amount_refunded": 0, ... } ... } ``` ### After ```curl curl https://api.stripe.com/v1/payment_intents/pi_ANipwO3zNfjeWODtRPIg/capture \ -u "<>:" \ -d amount_to_capture=300 \ -d final_capture=false \ -d "expand[]=latest_charge" ``` ```json // HTTP 400 { "message": "can't set final_capture as false when fully capturing a payment intent.", "type": "invalid_request_error" } ``` ## Webhooks La génération d’événements de multicapture diffère de la version bêta, mais le contenu des événements reste inchangé. | Comportement | Avant | Après | | --------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | | À chaque capture non finale | Stripe envoie [charge.captured](https://docs.stripe.com/api/events/types.md#event_types-charge.captured) | Stripe envoie [charge.updated](https://docs.stripe.com/api/events/types.md#event_types-charge.updated) | | À la capture finale | Stripe envoie [charge.captured](https://docs.stripe.com/api/events/types.md#event_types-charge.captured) | Stripe envoie [charge.captured](https://docs.stripe.com/api/events/types.md#event_types-charge.captured) | ## Remboursement Dans la version généralement disponible, aucun [refund](https://docs.stripe.com/api/refunds/object.md) n’est créé pour représenter les fonds non capturés pour un quelconque *PaymentIntent* (API object that represents your intent to collect payment from a customer, tracking charge attempts and payment state changes throughout the process) dans lequel l’utilisateur transmet `final_capture=true`. ## Choisir comment capturer un montant supérieur à celui initialement autorisé Deux des fonctionnalités de paiement flexible permettent de capturer un montant supérieur à celui initialement autorisé : - Surcapture jusqu’à une certaine limite ([capturer un montant supérieur au montant autorisé d’un paiement](https://docs.stripe.com/payments/overcapture.md)) - Augmenter le montant de l’autorisation existante, puis capturer le nouveau montant autorisé ([Augmenter une autorisation](https://docs.stripe.com/payments/incremental-authorization.md)) L’exemple ci-dessous montre comment ces fonctionnalités peuvent se compléter dans la version généralement disponible. ```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_incremental_authorization]=if_available" \ -d "payment_method_options[card][request_overcapture]=if_available" ``` ```json // PaymentIntent Response { "object": "payment_intent", "amount": 1000, ... // if latest_charge is expanded { "latest_charge": { "payment_method_details": { "card": { "incremental_authorization": {"status": "available" // or "unavailable" }, "overcapture": {"status": "available", // or "unavailable" "maximum_capturable_amount": 1200 } } } ... } } } ``` Après la *confirmation* (Confirming a PaymentIntent indicates that the customer intends to pay with the current or provided payment method. Upon confirmation, the PaymentIntent attempts to initiate a payment) du PaymentIntent, si les deux fonctionnalités sont disponibles, vous avez la possibilité de capturer un montant supérieur à celui initialement autorisé : 1. Effectuer une surcapture si le montant souhaité est inférieur ou égal à `maximum_capturable_amount`. 1. Exécuter une autorisation complémentaire jusqu’au montant souhaité, puis effectuer une capture.