# Bloquer une somme sur une carte de paiement en ligne pour une période prolongée
Comment utiliser les autorisations prolongées pour capturer les paiements par carte en ligne jusqu'à 30 jours après l'autorisation.
# Page entièrement hébergée
> This is a Page entièrement hébergée for when platform is web and ui is stripe-hosted. View the full page at https://docs.stripe.com/payments/extended-authorization?platform=web&ui=stripe-hosted.
Les autorisations prolongées ont une période de validité plus longue, ce qui vous permet de bloquer les fonds du client plus longtemps que les délais de validité d’autorisation standard. Pour la plupart des réseaux de cartes, la période de validité de l’autorisation par défaut est de 7 jours pour les paiements en ligne et de 2 jours pour les paiements par TPE via le [Terminal](https://docs.stripe.com/terminal.md), tandis que les périodes de validité prolongées peuvent aller jusqu’à 30 jours en fonction du réseau de cartes. Pour plus d’informations sur les délais de validité de l’autorisation, consultez [cette page](https://docs.stripe.com/payments/place-a-hold-on-a-payment-method.md).
## Disponibilité
Lorsque vous utilisez des autorisations étendues, il n’y a pas de restrictions régionales. Cependant, gardez à l’esprit les limitations suivantes :
- Elles ne sont disponibles que sur Visa, Mastercard, American Express et Discover.
- Certaines marques de cartes bancaires appliquent des restrictions quant aux catégories de marchands qu’elles acceptent. Reportez-vous au tableau de disponibilité des réseaux ci-dessous.
- Cette page décrit le fonctionnement des autorisations prolongées pour les paiements par carte en ligne. Pour les paiements par carte effectués à partir d’un TPE avec des autorisations prolongées, consultez la [documentation relative à Terminal](https://docs.stripe.com/terminal/features/extended-authorizations.md).
- [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+
>
> Les autorisations prolongées fait partie des fonctionnalités que nous proposons aux clients qui utilisent la tarification *IC+* (A pricing plan where businesses pay the variable network cost for each transaction plus the Stripe fee rather than a flat rate for all transactions. This pricing model provides more visibility into payments costs). Si vous bénéficiez de plusieurs tarifications 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 et catégorie de marchand
Chaque réseau de cartes applique des règles différentes concernant l’admissibilité des paiements aux autorisations prolongées ainsi que la durée de validité de ces dernières. Le tableau suivant précise ces durées de validité ainsi que les types de transactions pour lesquels ces autorisations sont disponibles pour les réseaux Visa, Mastercard, American Express et Discover. En tout état de cause, dans la mesure où ces règles peuvent changer sans préavis, nous vous recommandons de toujours utiliser le [champ capture_before](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details-card-capture_before) pour confirmer la période de validité applicable pour un paiement donné.
| Marque de la carte bancaire | Catégorie de marchand | Durée de validité de l’autorisation prolongée |
| ----------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------- |
| **Visa** | Hôtel, hébergement, location de véhicule et croisiériste
Toutes les autres catégories de marchand* | 30 jours** |
| **Mastercard** (à l’exclusion des cartes Maestro et Cirrus) | Toutes les catégories de marchands | Réduction de 30 jours |
| **American Express** | Hébergement et location de véhicules | 30 jours*** |
| **Discover** | Compagnies aériennes, affrètement d’autocars/transport en autobus, location de voiture, croisiériste, navetteurs locaux/de banlieue, transport de passagers, y compris les ferries, hôtellerie, hébergement et train de passagers | Réduction de 30 jours |
Pour les autres catégories de marchands, Stripe facture des frais supplémentaires de 0,08 % par transaction. La fenêtre d’autorisation prolongée ne s’applique qu’aux [transactions initiées par le client](https://docs.stripe.com/payments/cits-and-mits.md) et ne concerne pas les transactions avec des entreprises japonaises ni les transactions liées aux soins de santé, au paiement de factures ou au remboursement de dettes. ** La fenêtre exacte d’autorisation prolongée de Visa est de 29 jours et 18 heures, afin de laisser suffisamment de temps pour le processus de compensation.*** Bien que le délai de validité soit prolongé à 30 jours, vous devez capturer les fonds autorisés au plus tard à la fin du séjour ou de la location de votre client.
### Réseaux avec prise en charge limitée (bêta)
Les réseaux de cartes suivants offrent une prise en charge limitée de l’autorisation prolongée :
| Marque de la carte | Pays du marchand | Catégorie de marchand | Période de validité de l’autorisation prolongée |
| ------------------ | ------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------- |
| **Diners Club** | États-Unis (via Discover) | Toutes les catégories de marchands | dans 30 jours |
| **UnionPay** | Dans le monde entier, sauf aux États-Unis et au Canada | Toutes les catégories de marchands | 27 à 29 jours |
| | États-Unis et Canada (via Discover) | Compagnies aériennes, affrètement d’autocars/transport en autobus, location de voiture, croisiériste, navetteurs locaux/de banlieue, transport de passagers, y compris les ferries, hôtellerie, hébergement et train de passagers | dans 30 jours |
### Modifications récentes de la disponibilité
- **Septembre 2023** : en raison d’informations fournies par le réseau, les autorisations prolongées sur Discover ne sont plus disponibles pour les catégories de marchands suivantes : restaurants et bars, location de bateaux, de camions, de camping-cars ou véhicules récréatifs, location en temps partagé, taxis/limousines, terrains de caravaning ou de camping, location de matériel/meubles/appareils, parcs d’attractions, cirques, voyance, services de loisirs.
- **Septembre 2023** : la période de validité des autorisations Visa est passée de 31 à 30 jours afin d’éviter les frais de non-conformité facturés par les réseaux. Pour nous assurer que les transactions soient compensées à temps, nous avons ajouté une période tampon de 6 heures, de sorte que la période d’autorisation effective est de 29 jours et 18 heures.
## Bonnes pratiques
Lorsque vous utilisez des autorisations prolongées, les fonds de vos clients sont bloqués plus longtemps. Utilisez des [libellés de relevé bancaire](https://docs.stripe.com/get-started/account/statement-descriptors.md) clairs pour éviter une augmentation des litiges due à des paiements non reconnus.
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 l’autorisation prolongée, vous êtes responsable du respect de l’ensemble des lois, réglementations et règles de réseau en vigueur. Consultez les spécifications des réseaux de cartes par l’intermédiaire desquels vous prévoyez d’accepter cette fonctionnalité, afin de vous assurer que vos ventes sont conformes aux réglementations applicables, qui varient selon les réseaux. Par exemple, pour de nombreux réseaux, les périodes de validité prolongée sont réservées aux cas où vous ne connaissez pas le montant final que vous capturerez 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 la valeur `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é d’autorisation prolongée, définissez [request_extended_authorization](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-payment_method_options-card-request_extended_authorization) 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. See https://docs.stripe.com/keys-best-practices.
# Find your keys at https://dashboard.stripe.com/apikeys.
client = Stripe::StripeClient.new('<>')
post '/create-checkout-session' do
session = client.v1.checkout.sessions.create({
line_items: [{
price_data: {
currency: 'usd',
product_data: {
name: 'T-shirt'
},
unit_amount: 2000
},
quantity: 1
}],payment_method_options: {
card: {
request_extended_authorization: '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
```
Utilisez le [champ capture_before](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details-card-capture_before) pour confirmer la période de validité d’un paiement donné. La période de validité ne change pas une fois la session Checkout terminée. Pour déterminer si l’autorisation est prolongée une fois la session Checkout terminée, examinez le [champ extended_authorization.status](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details-card-extended_authorization-status) sur le paiement associé.
```json
{
"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,"capture_before": 1696524701,
"extended_authorization": {
"status": "enabled", // or "disabled"
}
}
}
...
}
...
}
```
## 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 des autorisations prolongées pendant le test. Si les autorisations prolongées sont disponibles pour les paiements d’un réseau donné pendant les tests, elles sont également disponibles pour les paiements réels.
| Marque de la carte | Numéro | Moyen de paiement |
| ------------------ | ---------------- | -------------------- |
| Visa | 4242424242424242 | `pm_card_visa` |
| Mastercard | 5555555555554444 | `pm_card_mastercard` |
| Amex | 378282246310005 | `pm_card_amex` |
| Discover | 6011111111111117 | `pm_card_discover` |
# Page entièrement intégrée
> This is a Page entièrement intégrée for when platform is web and ui is embedded-page. View the full page at https://docs.stripe.com/payments/extended-authorization?platform=web&ui=embedded-page.
Les autorisations prolongées ont une période de validité plus longue, ce qui vous permet de bloquer les fonds du client plus longtemps que les délais de validité d’autorisation standard. Pour la plupart des réseaux de cartes, la période de validité de l’autorisation par défaut est de 7 jours pour les paiements en ligne et de 2 jours pour les paiements par TPE via le [Terminal](https://docs.stripe.com/terminal.md), tandis que les périodes de validité prolongées peuvent aller jusqu’à 30 jours en fonction du réseau de cartes. Pour plus d’informations sur les délais de validité de l’autorisation, consultez [cette page](https://docs.stripe.com/payments/place-a-hold-on-a-payment-method.md).
## Disponibilité
Lorsque vous utilisez des autorisations étendues, il n’y a pas de restrictions régionales. Cependant, gardez à l’esprit les limitations suivantes :
- Elles ne sont disponibles que sur Visa, Mastercard, American Express et Discover.
- Certaines marques de cartes bancaires appliquent des restrictions quant aux catégories de marchands qu’elles acceptent. Reportez-vous au tableau de disponibilité des réseaux ci-dessous.
- Cette page décrit le fonctionnement des autorisations prolongées pour les paiements par carte en ligne. Pour les paiements par carte effectués à partir d’un TPE avec des autorisations prolongées, consultez la [documentation relative à Terminal](https://docs.stripe.com/terminal/features/extended-authorizations.md).
- [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+
>
> Les autorisations prolongées fait partie des fonctionnalités que nous proposons aux clients qui utilisent la tarification *IC+* (A pricing plan where businesses pay the variable network cost for each transaction plus the Stripe fee rather than a flat rate for all transactions. This pricing model provides more visibility into payments costs). Si vous bénéficiez de plusieurs tarifications 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 et catégorie de marchand
Chaque réseau de cartes applique des règles différentes concernant l’admissibilité des paiements aux autorisations prolongées ainsi que la durée de validité de ces dernières. Le tableau suivant précise ces durées de validité ainsi que les types de transactions pour lesquels ces autorisations sont disponibles pour les réseaux Visa, Mastercard, American Express et Discover. En tout état de cause, dans la mesure où ces règles peuvent changer sans préavis, nous vous recommandons de toujours utiliser le [champ capture_before](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details-card-capture_before) pour confirmer la période de validité applicable pour un paiement donné.
| Marque de la carte bancaire | Catégorie de marchand | Durée de validité de l’autorisation prolongée |
| ----------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------- |
| **Visa** | Hôtel, hébergement, location de véhicule et croisiériste
Toutes les autres catégories de marchand* | 30 jours** |
| **Mastercard** (à l’exclusion des cartes Maestro et Cirrus) | Toutes les catégories de marchands | Réduction de 30 jours |
| **American Express** | Hébergement et location de véhicules | 30 jours*** |
| **Discover** | Compagnies aériennes, affrètement d’autocars/transport en autobus, location de voiture, croisiériste, navetteurs locaux/de banlieue, transport de passagers, y compris les ferries, hôtellerie, hébergement et train de passagers | Réduction de 30 jours |
Pour les autres catégories de marchands, Stripe facture des frais supplémentaires de 0,08 % par transaction. La fenêtre d’autorisation prolongée ne s’applique qu’aux [transactions initiées par le client](https://docs.stripe.com/payments/cits-and-mits.md) et ne concerne pas les transactions avec des entreprises japonaises ni les transactions liées aux soins de santé, au paiement de factures ou au remboursement de dettes. ** La fenêtre exacte d’autorisation prolongée de Visa est de 29 jours et 18 heures, afin de laisser suffisamment de temps pour le processus de compensation.*** Bien que le délai de validité soit prolongé à 30 jours, vous devez capturer les fonds autorisés au plus tard à la fin du séjour ou de la location de votre client.
### Réseaux avec prise en charge limitée (bêta)
Les réseaux de cartes suivants offrent une prise en charge limitée de l’autorisation prolongée :
| Marque de la carte | Pays du marchand | Catégorie de marchand | Période de validité de l’autorisation prolongée |
| ------------------ | ------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------- |
| **Diners Club** | États-Unis (via Discover) | Toutes les catégories de marchands | dans 30 jours |
| **UnionPay** | Dans le monde entier, sauf aux États-Unis et au Canada | Toutes les catégories de marchands | 27 à 29 jours |
| | États-Unis et Canada (via Discover) | Compagnies aériennes, affrètement d’autocars/transport en autobus, location de voiture, croisiériste, navetteurs locaux/de banlieue, transport de passagers, y compris les ferries, hôtellerie, hébergement et train de passagers | dans 30 jours |
### Modifications récentes de la disponibilité
- **Septembre 2023** : en raison d’informations fournies par le réseau, les autorisations prolongées sur Discover ne sont plus disponibles pour les catégories de marchands suivantes : restaurants et bars, location de bateaux, de camions, de camping-cars ou véhicules récréatifs, location en temps partagé, taxis/limousines, terrains de caravaning ou de camping, location de matériel/meubles/appareils, parcs d’attractions, cirques, voyance, services de loisirs.
- **Septembre 2023** : la période de validité des autorisations Visa est passée de 31 à 30 jours afin d’éviter les frais de non-conformité facturés par les réseaux. Pour nous assurer que les transactions soient compensées à temps, nous avons ajouté une période tampon de 6 heures, de sorte que la période d’autorisation effective est de 29 jours et 18 heures.
## Bonnes pratiques
Lorsque vous utilisez des autorisations prolongées, les fonds de vos clients sont bloqués plus longtemps. Utilisez des [libellés de relevé bancaire](https://docs.stripe.com/get-started/account/statement-descriptors.md) clairs pour éviter une augmentation des litiges due à des paiements non reconnus.
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 l’autorisation prolongée, vous êtes responsable du respect de l’ensemble des lois, réglementations et règles de réseau en vigueur. Consultez les spécifications des réseaux de cartes par l’intermédiaire desquels vous prévoyez d’accepter cette fonctionnalité, afin de vous assurer que vos ventes sont conformes aux réglementations applicables, qui varient selon les réseaux. Par exemple, pour de nombreux réseaux, les périodes de validité prolongée sont réservées aux cas où vous ne connaissez pas le montant final que vous capturerez 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_page`. 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 qu’une [devise](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 de retour](https://docs.stripe.com/payments/accept-a-payment.md?payment-ui=checkout&ui=embedded-page#return-page) et d’autres options pour [personnaliser le comportement de redirection](https://docs.stripe.com/payments/checkout/custom-success-page.md?payment-ui=embedded-page).
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/extended-authorization.md#mount-checkout).
Pour activer la fonctionnalité d’autorisation prolongée, définissez [request_extended_authorization](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-payment_method_options-card-request_extended_authorization) 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. See https://docs.stripe.com/keys-best-practices.
# Find your keys at https://dashboard.stripe.com/apikeys.
client = Stripe::StripeClient.new('<>')
post '/create-checkout-session' do
session = client.v1.checkout.sessions.create({
line_items: [{
price_data: {
currency: 'usd',
product_data: {
name: 'T-shirt',
},
unit_amount: 2000,
},
quantity: 1,
}],
mode: 'payment',
ui_mode: 'embedded_page',payment_method_options: {
card: {
request_extended_authorization: 'if_available',
},
},
return_url: 'https://example.com/checkout/return?session_id={CHECKOUT_SESSION_ID}'
})
{clientSecret: session.client_secret}.to_json
end
```
Utilisez le [champ capture_before](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details-card-capture_before) pour confirmer la période de validité d’un paiement donné. La période de validité ne change pas une fois la session Checkout terminée. Pour déterminer si l’autorisation est prolongée une fois la session Checkout terminée, examinez le [champ extended_authorization.status](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details-card-extended_authorization-status) sur le paiement associé.
```json
{
"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,"capture_before": 1696524701,
"extended_authorization": {
"status": "enabled", // or "disabled"
}
}
}
...
}
...
}
```
## 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.createEmbeddedCheckoutPage({
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 = React.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
Après la tentative de paiement de votre client, 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 spécifié 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-page).
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 = client.v1.checkout.sessions.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-page#redirect-based-payment-methods).
## 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 des autorisations prolongées pendant le test. Si les autorisations prolongées sont disponibles pour les paiements d’un réseau donné pendant les tests, elles sont également disponibles pour les paiements réels.
| Marque de la carte | Numéro | Moyen de paiement |
| ------------------ | ---------------- | -------------------- |
| Visa | 4242424242424242 | `pm_card_visa` |
| Mastercard | 5555555555554444 | `pm_card_mastercard` |
| Amex | 378282246310005 | `pm_card_amex` |
| Discover | 6011111111111117 | `pm_card_discover` |
# 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/extended-authorization?platform=web&ui=elements.
Les autorisations prolongées ont une période de validité plus longue, ce qui vous permet de bloquer les fonds du client plus longtemps que les délais de validité d’autorisation standard. Pour la plupart des réseaux de cartes, la période de validité de l’autorisation par défaut est de 7 jours pour les paiements en ligne et de 2 jours pour les paiements par TPE via le [Terminal](https://docs.stripe.com/terminal.md), tandis que les périodes de validité prolongées peuvent aller jusqu’à 30 jours en fonction du réseau de cartes. Pour plus d’informations sur les délais de validité de l’autorisation, consultez [cette page](https://docs.stripe.com/payments/place-a-hold-on-a-payment-method.md).
## Disponibilité
Lorsque vous utilisez des autorisations étendues, il n’y a pas de restrictions régionales. Cependant, gardez à l’esprit les limitations suivantes :
- Elles ne sont disponibles que sur Visa, Mastercard, American Express et Discover.
- Certaines marques de cartes bancaires appliquent des restrictions quant aux catégories de marchands qu’elles acceptent. Reportez-vous au tableau de disponibilité des réseaux ci-dessous.
- Cette page décrit le fonctionnement des autorisations prolongées pour les paiements par carte en ligne. Pour les paiements par carte effectués à partir d’un TPE avec des autorisations prolongées, consultez la [documentation relative à Terminal](https://docs.stripe.com/terminal/features/extended-authorizations.md).
- [capture_method](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-capture_method) est défini sur `manual` dans [PaymentIntent](https://docs.stripe.com/api/payment_intents/.md).
> #### Fonctionnalité IC+
>
> Les autorisations prolongées fait partie des fonctionnalités que nous proposons aux clients qui utilisent la tarification *IC+* (A pricing plan where businesses pay the variable network cost for each transaction plus the Stripe fee rather than a flat rate for all transactions. This pricing model provides more visibility into payments costs). Si vous bénéficiez de plusieurs tarifications 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 et catégorie de marchand
Chaque réseau de cartes applique des règles différentes concernant l’admissibilité des paiements aux autorisations prolongées ainsi que la durée de validité de ces dernières. Le tableau suivant précise ces durées de validité ainsi que les types de transactions pour lesquels ces autorisations sont disponibles pour les réseaux Visa, Mastercard, American Express et Discover. En tout état de cause, dans la mesure où ces règles peuvent changer sans préavis, nous vous recommandons de toujours utiliser le [champ capture_before](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details-card-capture_before) pour confirmer la période de validité applicable pour un paiement donné.
| Marque de la carte bancaire | Catégorie de marchand | Durée de validité de l’autorisation prolongée |
| ----------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------- |
| **Visa** | Hôtel, hébergement, location de véhicule et croisiériste
Toutes les autres catégories de marchand* | 30 jours** |
| **Mastercard** (à l’exclusion des cartes Maestro et Cirrus) | Toutes les catégories de marchands | Réduction de 30 jours |
| **American Express** | Hébergement et location de véhicules | 30 jours*** |
| **Discover** | Compagnies aériennes, affrètement d’autocars/transport en autobus, location de voiture, croisiériste, navetteurs locaux/de banlieue, transport de passagers, y compris les ferries, hôtellerie, hébergement et train de passagers | Réduction de 30 jours |
Pour les autres catégories de marchands, Stripe facture des frais supplémentaires de 0,08 % par transaction. La fenêtre d’autorisation prolongée ne s’applique qu’aux [transactions initiées par le client](https://docs.stripe.com/payments/cits-and-mits.md) et ne concerne pas les transactions avec des entreprises japonaises ni les transactions liées aux soins de santé, au paiement de factures ou au remboursement de dettes. ** La fenêtre exacte d’autorisation prolongée de Visa est de 29 jours et 18 heures, afin de laisser suffisamment de temps pour le processus de compensation.*** Bien que le délai de validité soit prolongé à 30 jours, vous devez capturer les fonds autorisés au plus tard à la fin du séjour ou de la location de votre client.
### Réseaux avec prise en charge limitée (bêta)
Les réseaux de cartes suivants offrent une prise en charge limitée de l’autorisation prolongée :
| Marque de la carte | Pays du marchand | Catégorie de marchand | Période de validité de l’autorisation prolongée |
| ------------------ | ------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------- |
| **Diners Club** | États-Unis (via Discover) | Toutes les catégories de marchands | dans 30 jours |
| **UnionPay** | Dans le monde entier, sauf aux États-Unis et au Canada | Toutes les catégories de marchands | 27 à 29 jours |
| | États-Unis et Canada (via Discover) | Compagnies aériennes, affrètement d’autocars/transport en autobus, location de voiture, croisiériste, navetteurs locaux/de banlieue, transport de passagers, y compris les ferries, hôtellerie, hébergement et train de passagers | dans 30 jours |
### Modifications récentes de la disponibilité
- **Septembre 2023** : en raison d’informations fournies par le réseau, les autorisations prolongées sur Discover ne sont plus disponibles pour les catégories de marchands suivantes : restaurants et bars, location de bateaux, de camions, de camping-cars ou véhicules récréatifs, location en temps partagé, taxis/limousines, terrains de caravaning ou de camping, location de matériel/meubles/appareils, parcs d’attractions, cirques, voyance, services de loisirs.
- **Septembre 2023** : la période de validité des autorisations Visa est passée de 31 à 30 jours afin d’éviter les frais de non-conformité facturés par les réseaux. Pour nous assurer que les transactions soient compensées à temps, nous avons ajouté une période tampon de 6 heures, de sorte que la période d’autorisation effective est de 29 jours et 18 heures.
## Bonnes pratiques
Lorsque vous utilisez des autorisations prolongées, les fonds de vos clients sont bloqués plus longtemps. Utilisez des [libellés de relevé bancaire](https://docs.stripe.com/get-started/account/statement-descriptors.md) clairs pour éviter une augmentation des litiges due à des paiements non reconnus.
> #### Conformité
>
> Lorsque vous utilisez l’autorisation prolongée, vous êtes responsable du respect de l’ensemble des lois, réglementations et règles de réseau en vigueur. Consultez les spécifications des réseaux de cartes par l’intermédiaire desquels vous prévoyez d’accepter cette fonctionnalité, afin de vous assurer que vos ventes sont conformes aux réglementations applicables, qui varient selon les réseaux. Par exemple, pour de nombreux réseaux, les périodes de validité prolongée sont réservées aux cas où vous ne connaissez pas le montant final que vous capturerez 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é
Par défaut, une autorisation de paiement par carte en ligne est valable 7 jours pour la plupart des réseaux de cartes. Pour prolonger sa période de validité, vous pouvez demander une autorisation prolongée en utilisant `if_available` avec le paramètre [request_extended_authorization](https://docs.stripe.com/api/payment_intents/confirm.md#confirm_payment_intent-payment_method_options-card-request_extended_authorization).
```curl
curl https://api.stripe.com/v1/payment_intents \
-u "<>:" \
-d amount=1099 \
-d currency=usd \
-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"
```
Utilisez le [champ capture_before](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details-card-capture_before) pour confirmer la période de validité d’un paiement donné. La période de validité ne change pas une fois le PaymentIntent confirmé. Pour déterminer si l’autorisation est prolongée après la confirmation du PaymentIntent, examinez le [champ extended_authorization.status](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details-card-extended_authorization-status) sur le paiement associé.
```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,"capture_before": 1696524701,
"extended_authorization": {
"status": "enabled", // or "disabled"
}
}
}
...
}
...
}
```
## 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 des autorisations prolongées pendant le test. Si les autorisations prolongées sont disponibles pour les paiements d’un réseau donné pendant les tests, elles sont également disponibles pour les paiements réels.
| Marque de la carte | Numéro | Moyen de paiement |
| ------------------ | ---------------- | -------------------- |
| Visa | 4242424242424242 | `pm_card_visa` |
| Mastercard | 5555555555554444 | `pm_card_mastercard` |
| Amex | 378282246310005 | `pm_card_amex` |
| Discover | 6011111111111117 | `pm_card_discover` |
## See also
- [Bloquer des fonds sur un moyen de paiement](https://docs.stripe.com/payments/place-a-hold-on-a-payment-method.md)