# Capture asynchrone Utilisez la capture asynchrone pour accélérer les confirmations de PaymentIntent. La capture asynchrone réduit la latence des confirmations de PaymentIntent en faisant en sorte que l’opération de capture se déroule en arrière-plan. Après avoir effectué la demande de capture, votre intégration reçoit une réponse positive et Stripe finalise la capture du paiement dans le back-end. Pour utiliser ces captures de PaymentIntent plus rapides, définissez le paramètre `capture_method=automatic_async` lors de la confirmation d’un PaymentIntent. ## Accepter la capture asynchrone Pour mettre à niveau votre intégration existante et ajouter la prise en charge de la capture asynchrone, utilisez `automatic_async` comme méthode de capture lors de la création d’un PaymentIntent. La spécification du paramètre `capture_method=automatic_async` est facultative, car Stripe active la fonctionnalité par défaut dans la dernière version de l’API. #### curl ```bash curl https://api.stripe.com/v1/payment_intents \ -u <>: \ -d amount=2000 \ -d currency=usd \ -d "payment_method_types[]"=card \ -d payment_method=pm_card_visa \-d capture_method=automatic_async \ -d confirm=true ``` Il se peut que vous deviez apporter des modifications supplémentaires lorsque vous optez pour la capture asynchrone, car la réponse de l’API et certains webhooks ont un comportement différent de celui des autres méthodes de capture. Pour tous les paiements, la [balance_transaction](https://docs.stripe.com/api/balance_transactions.md) est `null` pour les objets suivants. Pour les paiements Connect, le [transfer](https://docs.stripe.com/api/charges/object.md#charge_object-transfer) et l’[application_fee](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-application_fee_amount) sont également `null` pour les objets suivants : - l’objet [Charge](https://docs.stripe.com/api/charges/object.md) joint à la réponse de l’API - webhook [charge.succeeded](https://docs.stripe.com/api/events/types.md#event_types-charge.succeeded) - webhook [payment_intent.succeeded](https://docs.stripe.com/api/events/types.md#event_types-payment_intent.succeeded) Objet Charge modifié sur le webhook [charge.succeeded](https://docs.stripe.com/api/events/types.md#event_types-charge.succeeded) : ```json # Charge Object { "id": "ch_123", "object": "charge", "amount_captured": 1000, # the capture has happened "application_fee_amount": 100, "captured": true,"balance_transaction": null, # object might not be created yet, might be shown as nil. "transfer": null, # object might not be created yet, might be shown as nil. "application_fee": null, # object might not be created yet, might be shown as nil. ... } ``` Modification de la réponse de l’API et du webhook [payment_intent.succeeded](https://docs.stripe.com/api/events/types.md#event_types-payment_intent.succeeded) : (varie selon la [version de l’API](https://docs.stripe.com/upgrades.md)) #### API version 2022-11-15 ou ultérieure ```json # PaymentIntent Object { "id": "pi_123", "object": "payment_intent", "capture_method": "automatic_async", "status": "succeeded","latest_charge": "ch_**" # if expanded, this is the Modified Charge object above } ``` ## Écoutez les webhooks pour recevoir une notification lorsque des données supplémentaires sont disponibles > Notre accord de niveau de service (SLA) pour le webhook charge.updated est d’une heure après la confirmation du PaymentIntent. Vous pouvez écouter les webhooks pour vérifier l’état des objets qui sont initialement à l’état `null` lors de l’utilisation de la capture asynchrone. - Pour obtenir le [balance_transaction](https://docs.stripe.com/api/balance_transactions.md), abonnez-vous à l’événement webhook [charge.updated](https://docs.stripe.com/api/events/types.md#event_types-charge.created). - Pour obtenir l’[application_fee](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-application_fee_amount), abonnez-vous à l’événement webhook [application_fee.created](https://docs.stripe.com/api/events/types.md#event_types-application_fee.created). - Pour obtenir le [transfer](https://docs.stripe.com/api/charges/object.md#charge_object-transfer), abonnez-vous aux événements webhook [transfer.created](https://docs.stripe.com/api/events/types.md#event_types-transfer.created). Webhooks pour la capture asynchrone ```json # charge.updated events { "data": { "id": "ch_123", "object": "charge", "amount": 100,"balance_transaction": "txn_123", # applicable to all charges. "transfer": "tr_123", # applicable to destination charge only. "application_fee": "fee_123", # applicable to destination charge only. ... }, previous_attributes: { "balance_transaction": null, # applicable to all charges. "transfer": null, # applicable to destination charge only. "application_fee": null, # applicable to destination charge only. } } ``` ```json # transfer.created events { "data": { "id": "tr_123", "object": "transfer", "amount": 1000, ... } } ``` ```json # application_fee.created events { "data": { "id": "fee_123", "object": "application_fee", "amount": 100, ... } } ```