# Bloquer une somme d'argent sur un moyen de paiement

Séparez l'autorisation et la capture du paiement pour créer immédiatement le paiement et ne capturer les fonds qu'ultérieurement.

Lorsque vous créez un paiement, vous pouvez bloquer une somme sur un moyen de paiement admissible pour mettre ces fonds en réserve et les capturer plus tard. Par exemple, les hôtels autorisent souvent l’intégralité du paiement avant l’arrivée du client, puis capturent l’argent au moment du départ du client. On parle parfois de *capture manuelle* (Manually capture funds separately from an authorization).

Autoriser un paiement permet d’en garantir le montant en retenant les fonds correspondant sur le moyen de paiement du client. Si vous utilisez l’API, l’attribut [payment_method_details.card.capture_before](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details-card-capture_before) du paiement précise la date de fin de l’autorisation.

Vous devez capturer les fonds avant l’expiration de l’autorisation. Si celle-ci expire avant la capture des fonds, la mise en réserve des fonds est levée et le paiement passe à l’état `canceled`. En savoir plus sur les [états des paiements asynchrones](https://docs.stripe.com/payments/paymentintents/lifecycle.md).

## Durée de validité de l’autorisation

Les tableaux suivants présentent les délais de validité de l’autorisation des différents types de transaction.

### Transactions sans présentation de la carte bancaire

| Marque de la carte bancaire | Délai de validité de l’autorisation d’une [transaction initiée par le marchand](https://docs.stripe.com/payments/cits-and-mits.md) | Délai de validité de l’autorisation d’une [transaction initiée par le client](https://docs.stripe.com/payments/cits-and-mits.md) |
| --- | --- | --- |
| **Visa** | 5&nbsp;jours* | 7&nbsp;jours |
| **Mastercard** | 7&nbsp;jours | 7&nbsp;jours |
| **American Express** | 7&nbsp;jours | 7&nbsp;jours |
| **Discover** | 7&nbsp;jours | 7&nbsp;jours |

La fenêtre d’autorisation exacte est de 4&nbsp;jours et 18&nbsp;heures, afin de laisser du temps pour les processus de compensation.

> Stripe et le réseau de cartes bancaires classent les transactions en tant que MIT ou CIT établies sur des signaux de participation des titulaires de la carte, et pas uniquement sur des paramètres API comme [off_session](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-off_session). Par exemple, un paiement avec `off_session: true` peut tout de même être classé en tant que CIT si un CVC est présent, entraînant à la place la fenêtre d’autorisation CIT.

### Transactions avec présentation de la carte bancaire (paiements par TPE)

| Marque de la carte bancaire | Durée de validité de l’autorisation |
| --- | --- |
| **Visa** | 5&nbsp;jours* |
| **Mastercard** | 2&nbsp;jours |
| **American Express** | 2&nbsp;jours |
| **Discover** | 2&nbsp;jours |

La fenêtre d’autorisation exacte est de 4&nbsp;jours et 18&nbsp;heures, afin de laisser du temps pour les processus de compensation.

### Délai d’autorisation de 30&nbsp;jours au Japon

Si votre compte est établi au Japon, les transactions en JPY effectuées par Visa, Mastercard, JCB, Diners Club et Discover peuvent faire l’objet d’une retenue pendant 30&nbsp;jours maximum. Les transactions non libellées en JPY et celles d’American Express expirent selon les [délais d’autorisation standard](https://docs.stripe.com/payments/place-a-hold-on-a-payment-method.md#authorization-validity-windows).

## Limites des moyens de paiement

Avant de passer à l’implémentation, sachez que la séparation entre l’autorisation et la capture est soumise aux limites suivantes.

- Seuls certains moyens de paiement prennent en charge les fonctionnalités d’autorisation et de *capture* (Fulfillment is the process of providing the goods or services purchased by a customer, typically after payment is collected) distinctes. C’est notamment le cas des cartes, d’Affirm, d’Afterpay, de Cash App Pay, de Klarna et de PayPal. En revanche, [ACH](https://docs.stripe.com/payments/ach-direct-debit.md) et [iDEAL](https://docs.stripe.com/payments/ideal.md), entre autres, ne les prennent pas en charge. En savoir plus sur la [prise en charge des fonctionnalités des moyens de paiement](https://docs.stripe.com/payments/payment-methods/payment-method-support.md).

- Au-delà de ce qui est indiqué dans les tableaux ci-dessus, d’autres moyens de paiement ont des règles et des fenêtres d’autorisation différentes :

  - Paiements par carte&nbsp;: le montant est généralement bloqué pendant sept&nbsp;jours pour les paiements en ligne et deux&nbsp;jours pour les paiements Terminal (en fonction du type de transaction et du réseau de cartes). Vous pouvez demander une autorisation prolongée pour certaines [autorisations en ligne](https://docs.stripe.com/payments/extended-authorization.md) ainsi que certaines [autorisations de paiement Terminal](https://docs.stripe.com/terminal/features/extended-authorizations.md) admissibles à des délais prolongés. Les réseaux de cartes peuvent également restreindre les autorisations de 1&nbsp;USD si vous n’avez pas l’intention de les capturer.
  - [Affirm](https://docs.stripe.com/payments/affirm/accept-a-payment.md?payment-ui=direct-api#manual-capture)&nbsp;: Si Affirm exige un acompte pour des montants de commande très élevés, le montant est prélevé lors de l’autorisation et remboursé si le paiement n’est pas capturé. Vous avez ensuite 30&nbsp;jours pour capturer le solde du paiement.
  - [Afterpay/Clearpay](https://docs.stripe.com/payments/afterpay-clearpay/accept-a-payment.md?web-or-mobile=web&payment-ui=direct-api#manual-capture)&nbsp;: lors de l’autorisation, le client paie le premier versement échelonné. Afterpay rembourse le paiement s’il n’est pas capturé. Vous disposez alors de 13&nbsp;jours pour capturer le solde du paiement.
  - [Cash App Pay](https://docs.stripe.com/payments/cash-app-pay/accept-a-payment.md?web-or-mobile=web&payment-ui=direct-api#manual-capture)&nbsp;: les autorisations valides doivent être capturées sous 7&nbsp;jours pour effectuer un paiement.
  - [Klarna](https://docs.stripe.com/payments/klarna/accept-a-payment.md?web-or-mobile=web&payment-ui=direct-api#manual-capture)&nbsp;: vous devez capturer le paiement au plus tard à minuit du 28e&nbsp;jour calendaire qui suit la demande de paiement, sinon l’autorisation expirera. Par exemple, vous devez capturer une demande de paiement effectuée le 01/10/2020 à 14&nbsp;h&nbsp;00 UTC au plus tard le 29/10/2020 à 00&nbsp;h&nbsp;00.
  - [PayPal](https://docs.stripe.com/payments/paypal/accept-a-payment.md?web-or-mobile=web&payment-ui=direct-api#manual-capture)&nbsp;: bloque le montant pendant 10&nbsp;jours. Stripe tente automatiquement de bloquer les fonds pour 10&nbsp;jours supplémentaires, soit un total de 20&nbsp;jours. Votre [préférence de règlement](https://docs.stripe.com/payments/paypal/choose-settlement-preference.md) peut affecter la durée de l’autorisation. Pour en savoir plus, reportez-vous à la section [autorisation et capture distinctes](https://docs.stripe.com/payments/paypal/accept-a-payment.md?web-or-mobile=web&payment-ui=direct-api#manual-capture).

## Utiliser le Dashboard pour autoriser et capturer

Vous pouvez autoriser un paiement et capturer les fonds séparément sans écrire une seule ligne de code.

1. Dans le Dashboard, [créez un nouveau paiement](https://dashboard.stripe.com/test/payments/new). Sélectionnez **ponctuel**.
2. Lorsque vous saisissez ou sélectionnez le moyen de paiement, sélectionnez **Autres options** puis **Capturer les fonds plus tard**.

Le paiement apparaît sur votre [page de paiement](https://dashboard.stripe.com/test/payments) comme **Non capturé**.

Pour capturer les fonds, accédez à la page des détails du paiement et cliquez sur **Capturer**.

## Indiquer à Stripe d’autoriser uniquement

#### L'API Checkout Session

Pour indiquer que vous souhaitez séparer l’autorisation de la capture, définissez la valeur de l’option [capture_method](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-payment_intent_data-capture_method) sur `manual` lors de la création de la session Checkout. Ce paramètre indique à Stripe d’autoriser le montant mais de ne pas le capturer sur le moyen de paiement du client.

```curl
curl https://api.stripe.com/v1/checkout/sessions \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "line_items[0][price]={{PRICE_ID}}" \
  -d "line_items[0][quantity]=2" \
  -d mode=payment \
  -d ui_mode=elements \
  -d "payment_intent_data[capture_method]=manual"
```

Avec l’approche ci-dessus, vous indiquez à Stripe que vous pouvez uniquement utiliser la «&nbsp;capture après&nbsp;» pour un Checkout Session avec les moyens de paiement éligibles.

#### API Payment Intents

Pour indiquer que vous souhaitez séparer l’autorisation de la capture, définissez [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. Ce paramètre indique à Stripe d’autoriser le montant mais de ne pas le capturer sur le moyen de paiement du client.

```curl
curl https://api.stripe.com/v1/payment_intents \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d amount=1099 \
  -d currency=usd \
  -d "automatic_payment_methods[enabled]=true" \
  -d capture_method=manual
```

Avec l’approche ci-dessus, vous indiquez à Stripe que vous pouvez uniquement utiliser la «&nbsp;capture ultérieure&nbsp;» pour un PaymentIntent avec des moyens de paiement admissibles. Par exemple, vous ne pouvez pas accepter les paiements par carte ni par prélèvement automatique SEPA (lequel ne prend pas en charge la capture ultérieure) pour un seul PaymentIntent. Pour accepter des moyens de paiement qui ne prennent peut-être pas tous en charge la capture ultérieure, vous pouvez configurer cette fonctionnalité pour chaque moyen de paiement en définissant `capture_method=manual` sur l’objet `payment_method_options[<payment_method_type>]`.

Par exemple, en configurant `payment_method_options[card][capture_method]=manual`, vous ne mettez en attente que les paiements par carte. Vous pouvez gérer les moyens de paiement à partir du [Dashboard](https://dashboard.stripe.com/settings/payment_methods). Stripe gère la logique d’[affichage dynamique](https://docs.stripe.com/payments/payment-methods/dynamic-payment-methods.md) des moyens de paiement admissibles les plus pertinents pour chaque client en fonction d’éléments tels que le montant de la transaction, la devise et le tunnel de paiement.

```curl
curl https://api.stripe.com/v1/payment_intents \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d amount=1099 \
  -d currency=usd \
  -d "automatic_payment_methods[enabled]=true" \
  -d "payment_method_options[card][capture_method]=manual"
```

Vous pouvez également lister `card` et `sepa_debit` en utilisant [allowed_payment_method_types](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-allowed_payment_method_types), comme dans l’exemple suivant.

```curl
curl https://api.stripe.com/v1/payment_intents \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d amount=1099 \
  -d currency=eur \
  -d "allowed_payment_method_types[]=card" \
  -d "allowed_payment_method_types[]=sepa_debit" \
  -d "payment_method_options[card][capture_method]=manual"
```

Avant de passer à la capture, joignez un moyen de paiement comportant des informations de carte au PaymentIntent et autorisez la carte en confirmant le PaymentIntent. Pour cela, définissez les champs `payment_method` et `confirm` du PaymentIntent.

> #### Autorisations prolongées
> 
> En règle générale, une autorisation de paiement par carte en ligne est valable 7&nbsp;jours. Pour prolonger la période de validité, vous pouvez [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 les fonds

> #### Checkout Sessions dispose d’un ID PaymentIntent
> 
> Si vous utilisez l’API Checkout Sessions, veillez à utiliser l’[ID PaymentIntent](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-payment_intent) renvoyé dans l’objet Checkout Session.

Lorsque le moyen de paiement est autorisé, l’[état](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-status) du PaymentIntent passe à `requires_capture`. Pour capturer les fonds autorisés, effectuez une demande de [capture](https://docs.stripe.com/api/payment_intents/capture.md) du PaymentIntent. Le montant total autorisé est capturé par défaut. Pour capturer un montant inférieur ou (pour certains paiements par carte en ligne) supérieur à ce qui a été autorisé, transmettez l’option [amount_to_capture](https://docs.stripe.com/api/payment_intents/capture.md#capture_payment_intent-amount_to_capture). Une capture partielle libère automatiquement le montant restant. Si vous tentez de capturer un montant supérieur au montant initial d’un paiement par carte en ligne, reportez-vous à la [documentation relative aux surcaptures](https://docs.stripe.com/payments/overcapture.md) pour en savoir plus.

L’exemple suivant montre comment capturer 7,50&nbsp;USD sur le paiement autorisé de 10,99&nbsp;USD&nbsp;:

```curl
curl https://api.stripe.com/v1/payment_intents/pi_123/capture \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d amount_to_capture=750
```

Bien que certains paiements par carte soient éligibles à la [capture multiple](https://docs.stripe.com/payments/multicapture.md), vous ne pouvez effectuer qu’une seule capture sur un paiement autorisé pour la plupart des transactions. Si vous capturez partiellement un paiement, vous ne pouvez pas effectuer d’autre capture pour la différence. (Envisagez plutôt d’[enregistrer les informations du moyen de paiement du client pour une utilisation ultérieure](https://docs.stripe.com/payments/save-during-payment.md?payment-ui=elements#save-payment-details-for-future-use) et de créer des paiements futurs au fur et à mesure des besoins.)

Les relevés de carte bancaire de certains émetteurs et certaines interfaces de moyens de paiement ne permettent pas de distinguer les autorisations et les paiements capturés (réglés), ce qui peut parfois induire les clients en erreur.

Par ailleurs, lorsqu’un client finalise le processus de paiement sur un PaymentIntent par une capture manuelle, l’événement `payment_intent.amount_capturable_updated` est déclenché. Vous pouvez consulter la propriété [amount_capturable](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-amount_capturable) du PaymentIntent pour connaître le montant total du PaymentIntent pouvant être capturé.

## Annuler l’autorisation

Si vous devez annuler une autorisation, vous pouvez [annuler le PaymentIntent](https://docs.stripe.com/refunds.md#cancel-payment) correspondant.

## Capturer le paiement avant l’expiration de l’autorisation (Private preview)

Vous pouvez demander à Stripe de capturer automatiquement le paiement avant l’expiration de l’autorisation, au lieu de déclencher manuellement la capture pour les moyens de paiement par carte. Utilisez la capture différée automatique pour vous assurer de ne pas manquer la capture des paiements autorisés. Vous pouvez également contrôler le moment de la capture à l’aide du paramètre `capture_by`.

Pour activer la capture automatique différée, définissez [capture_method](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-payment_method_options-card) sur `automatic_delayed` sur le PaymentIntent&nbsp;:

```curl
curl https://api.stripe.com/v1/payment_intents \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d amount=1099 \
  -d currency=usd \
  -d "automatic_payment_methods[enabled]=true" \
  -d "payment_method_options[card][capture_method]=automatic_delayed"
```

Avec cette approche, Stripe captures votre paiement par carte avant l’expiration de l’autorisation, en déclenchant la capture environ 6 heures avant l’heure d’expiration. Cela sert de processus de secours pour garantir la capture des paiements autorisés avant leur expiration. Vous pouvez toujours [capturer](https://docs.stripe.com/api/payment_intents/capture.md) ou [annuler](https://docs.stripe.com/refunds.md#cancel-payment) manuellement le PaymentIntent avant sa capture automatique.

### Contrôlez le moment de la capture

Utilisez le paramètre `capture_by` pour contrôler le moment où les fonds sont capturés sur le compte du client. Les valeurs suivantes sont prises en charge&nbsp;:

- `auth_expiry`&nbsp;: capture les fonds avant l’expiration de l’autorisation. Il s’agit du comportement par défaut lorsque `capture_by` est omis.
- `end_of_day`&nbsp;: capture les fonds à la fin de la journée (UTC).
- `target_delay`&nbsp;: capture les fonds après un délai renseigné. Lorsque vous utilisez `target_delay`, indiquez un hachage `capture_delay` avec `days` ou `hours` pour spécifier la durée du délai.

L’exemple suivant utilise `capture_by` défini sur `target_delay` avec un `capture_delay` de 3&nbsp;jours pour capturer automatiquement le PaymentIntent 3&nbsp;jours après la réussite de l’autorisation&nbsp;:

```curl
curl https://api.stripe.com/v1/payment_intents \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d amount=1099 \
  -d currency=usd \
  -d "automatic_payment_methods[enabled]=true" \
  -d "payment_method_options[card][capture_method]=automatic_delayed" \
  -d "payment_method_options[card][capture_by]=target_delay" \
  -d "payment_method_options[card][capture_delay][days]=3"
```

Cela est utile si vous connaissez le temps nécessaire pour effectuer des actions entre l’autorisation et la capture, et pour vous assurer de capturer le paiement avant l’expiration de l’autorisation. Vous pouvez définir à la fois `days` et `hours` tant que le délai total ne dépasse pas 30&nbsp;jours.

> Avec `capture_method=automatic_delayed`, Stripe donne la priorité à la capture du paiement avant l’expiration de l’autorisation. Si la période d’autorisation est plus courte que la période de délai spécifiée, nous capturons le PaymentIntent avant l’expiration, en ignorant la période de délai.

### Souhaitez-vous bénéficier d'un accès anticipé aux captures automatiques différées&nbsp;?

Veuillez indiquer votre adresse e-mail ci-dessous, notre équipe vous contactera incessamment sous peu.

```bash
curl https://docs.stripe.com/preview/register \
  -X POST \
  -H "Content-Type: application/json" \
  -H "Referer: https://docs.stripe.com/payments/place-a-hold-on-a-payment-method" \
  -d '{"email": "EMAIL", "preview": "automatic_delayed_capture_beta_preview"}'
```

## See also

- [Séparez l’autorisation et la capture à l’aide de Checkout](https://docs.stripe.com/payments/accept-a-payment.md?payment-ui=checkout&ui=stripe-hosted#auth-and-capture)
- [Bloquer une somme sur une carte de paiement en ligne pour une période prolongée](https://docs.stripe.com/payments/extended-authorization.md)
