# Vérifier les paiements non capturés

Comment utiliser les vérifications si votre intégration Stripe utilise l'autorisation et la capture.

Par défaut, vous [créez des paiements](https://docs.stripe.com/payments/accept-a-payment.md) en une seule étape. Vous n’avez rien d’autre à faire pour envoyer des fonds sur votre compte bancaire. Stripe prend également en charge les paiements en deux&nbsp;étapes, souvent appelés [autorisation et capture](https://docs.stripe.com/payments/place-a-hold-on-a-payment-method.md). Si votre intégration utilise cette méthode, l’approbation d’une vérification et la capture d’un paiement sont des actions distinctes.

Votre fenêtre de capture pour les paiements approuvés varie selon la [marque de la carte bancaire](https://docs.stripe.com/payments/place-a-hold-on-a-payment-method.md#authorization-validity-windows), la possibilité d’une [prolongation de la période de rétention](https://docs.stripe.com/payments/extended-authorization.md), et le [type de moyen de paiement](https://docs.stripe.com/payments/place-a-hold-on-a-payment-method.md#auth-capture-limitations).

## Vérifier les paiements non capturés dans le Dashboard

Lorsque nous plaçons un paiement non capturé en vérification, le Dashboard de Stripe affiche un bouton **Capture** à côté des boutons permettant d’approuver ou d’annuler la vérification. Les paiements non capturés affichent un bouton **Annuler** au lieu d’un bouton **Rembourser**, car l’annulation d’un paiement non capturé libère l’autorisation sans créer d’objet [Rembourser](https://docs.stripe.com/api/refunds.md).

> L’approbation de la vérification ne capture pas automatiquement le paiement. Vous devez ensuite cliquer sur **Capturer**.
![](https://b.stripecdn.com/docs-statics-srv/assets/uncaptured-payment.b9aab5781bebea8e1cc8f349dc2092bf.png)

## Utilisez l’API pour capturer automatiquement les paiements approuvés

Via l’API, vous pouvez configurer votre intégration pour&nbsp;:

- Capturer immédiatement les paiements *non* placés en `review`.
- Laisser les paiements placés en `review` non capturés
- Une fois que la vérification est approuvée, capturez le paiement.

### Capturer immédiatement les paiements non placés en vérification

Définissez l’attribut `capture_method` dans votre requête API pour créer un paiement non capturé. Après une requête réussie, vérifiez l’attribut [vérifier](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-review) sur le PaymentIntent. S’il est vide, capturez le paiement.

#### Ruby

```ruby

# 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('<<YOUR_SECRET_KEY>>')

# Get the credit card details submitted by the form
# Create a PaymentIntent with manual capture
payment_intent = client.v1.payment_intents.create({
  amount: 1000,
  currency: 'usd',
  payment_method: '{{PAYMENT_METHOD_ID}}',
  description: 'Example charge',
  confirm: true,
  capture_method: 'manual',
})

# Check if the payment is in review. If not, capture it.
if !payment_intent.review
  client.v1.payment_intents.capture(payment_intent.id)
end
```

### Capturez un paiement après l’approbation d’une vérification

À l’étape précédente, vous avez laissé des paiements en `review` et non capturés. Utilisez les *webhooks* (A webhook is a real-time push notification sent to your application as a JSON payload through HTTPS requests) pour capturer automatiquement ces paiements après approbation.

Configurez vos webhooks pour écouter l’événement `review.closed`. L’événement comprend l’[objet Review](https://docs.stripe.com/api.md#review_object), et son attribut `reason` indique si la révision a été approuvée ou clôturée pour une autre raison (par exemple, si le paiement a été remboursé).

```json
// Review object included in review.closed event webhook.
{
  "id": "prv_08voh1589O8KAxCGPcIQpmkz",
  "object": "review",
  "payment_intent": "pi_1D0CsEITpIrAk4QYdrWDnbRS",
  "created": 1474379631,
  "livemode": false,
  "open": false,
  "reason": "approved"
}
```

Si `reason` est `approved`, capturez le paiement.

```ruby

# 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('<<YOUR_SECRET_KEY>>')

post "/my/webhook/url" do
  event_json = JSON.parse(request.body.read)
  event = client.v1.events.retrieve(event_json["id"])

  if event.type == 'review.closed'
    review = event.object
    if review.reason == 'approved'
      pi = client.v1.payment_intents.retrieve(review.payment_intent)
      client.v1.payment_intents.capture(pi.id)
    end
  end

  status 200
end
```
