# Rapprochement des virements

Identifier les transactions incluses dans un virement.

Lorsque vous envoyez des fonds de votre solde Stripe disponible vers votre compte bancaire, cela génère un objet Payout. Les virements automatiques se produisent régulièrement et suivent votre [fréquence de virements](https://docs.stripe.com/payouts.md#payout-schedule). Ils peuvent inclure des fonds correspondant à différentes transactions.

Stripe propose les moyens suivants pour consulter les transactions incluses dans un virement automatique&nbsp;:

- Ouvrir un virement dans le [Dashboard Stripe](https://dashboard.stripe.com/test/payouts).
- Visualiser ou télécharger le [rapport de rapprochement des virements](https://docs.stripe.com/reports/payout-reconciliation.md).
- Récupérer les détails d’un virement via l’API Stripe, comme indiqué dans ce guide.

> #### Rapprochement des virements manuels
> 
> Puisque vous contrôlez la fréquence et le montant des virements manuels, Stripe ne peut pas identifier les transactions incluses dans chaque virement. Vous êtes responsable de la réconciliation de vos virements avec votre historique de transactions.

## Rechercher l'identifiant d'un virement

Pour obtenir des informations sur les transactions incluses dans un virement, vous avez besoin de son `id` (`po_xxx`). Pour l’obtenir&nbsp;:

- Écoutez l’événement de webhook `payout.reconciliation_completed`.
- Appelez l’API [List Payouts](https://docs.stripe.com/api/payouts/list.md) pour consulter la liste des virements.
- Récupérez-le dans votre propre base de données.

Vous pouvez [récupérer un virement](https://docs.stripe.com/api/payouts/retrieve.md) pour accéder à ses propriétés, mais cela ne vous permettra pas de savoir quelles transactions sont incluses dans le montant total.

```json
{
  "id": "po_001",
  "amount": 8000,
  "currency": "usd",
  "status": "paid",
  ...
}
```

## Liste des objets BalanceTransaction

Chaque mouvement de fonds entrant ou sortant de votre compte Stripe crée un objet [BalanceTransaction](https://docs.stripe.com/api/balance_transactions.md). Transmettez l’identifiant du paiement dans votre requête de [liste des BalanceTransactions](https://docs.stripe.com/api/balance_transactions/list.md) afin d’afficher uniquement les transactions associées à ce paiement.

```curl
curl -G https://api.stripe.com/v1/balance_transactions \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d payout=po_xxx
```

Si vous avez besoin de plus de résultats que la valeur par défaut de&nbsp;10, définissez le paramètre [limit](https://docs.stripe.com/api/balance_transactions/list.md#balance_transaction_list-limit) dans la requête ou utilisez la [pagination automatique](https://docs.stripe.com/api/pagination/auto.md) de Stripe.

La réponse renvoie un tableau des objets BalanceTransaction corresondant au virement spécifié&nbsp;:

```json
{
  "object": "list",
  "data": [
    {
      "id": "txn_001",
      "amount": 10000,
      "type": "charge",
      "source": "ch_001",
      ...
    },
    {
      "id": "txn_002",
      "amount": -2000,
      "type": "refund",
      "source": "re_001",
      ...
    },
    ...
```

La propriété `type` identifie l’activité sous-jacente qui a généré la transaction. par exemple :

- `charge`&nbsp;: paiement reçu de votre client.
- `refund`&nbsp;: fonds que vous avez restitués à votre client.
- `stripe_fee`&nbsp;: frais que vous avez payé à Stripe.
- `payout`&nbsp;: le virement lui-même, qui est également une transaction qui a déplacé des fonds de votre compte Stripe vers votre compte bancaire.

Consultez les [types d’opérations sur solde](https://docs.stripe.com/reports/balance-transaction-types.md#types) pour découvrir la liste complète.

## Développer les ressources de l'opération sur solde

La propriété `source` de chaque BalanceTransaction identifie l’objet sous-jacent représentant le type de transaction, par exemple `ch_xxx` pour un débit ou `re_xxx` pour un remboursement. Pour récupérer ces objets sans faire d’appels supplémentaires à l’API, mettez à jour le code précédent en utilisant la fonction [Expand](https://docs.stripe.com/expand.md).

```curl
curl -G https://api.stripe.com/v1/balance_transactions \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d payout=po_xxx \
  -d "expand[]=data.source"
```

La réponse contient l’objet `source` développé pour chaque BalanceTransaction du virement&nbsp;:

```json
{
  "object": "list",
  "data": [
    {
      "id": "txn_001",
      "amount": 10000,
      "type": "charge",
      "source": {
        "id": "ch_001",
        "amount": 10000,
        "metadata": { ... },
        ...
      },
      ...
    },
    {
      "id": "txn_002",
      "amount": -2000,
      "type": "refund",
      "source": {
        "id": "re_001",
        "amount": 2000,
        "reason": "requested_by_customer",
        ...
      },
      ...
    }
  ]
}
```

Utilisez le code suivant pour accéder aux propriétés de l’objet `source` notamment ses attributs `id` et `amount`.

#### Ruby

```ruby
balance_transactions['data'].each do |txn|
  obj = txn['source']
  puts "#{obj['id']} #{obj['amount']}"
end
```
