# Interroger des données de transactions Créez des rapports personnalisés sur les paiements, les remboursements, les transferts, etc. Utilisez les données des tables du [schéma](https://docs.stripe.com/stripe-data/write-queries.md) pour générer des rapports sur l’activité du solde de votre compte. La section **Tables de paiement** contient des tables représentant les mouvements de fonds, notamment les paiements et remboursements, transitant entre vos clients et votre compte Stripe. Les informations concernant les virements du solde de votre compte Stripe vers votre compte bancaire (*virements* (A payout is the transfer of funds to an external account, usually a bank account, in the form of a deposit)) sont répertoriées dans la section **Tables de virement**. Utilisez la table `balance_transactions` comme point de départ pour votre comptabilité. Contrairement à l’utilisation de plusieurs tables distinctes (comme `charges` ou `refunds`), elle permet de générer un rapport semblable à un grand livre comptable concernant tout [type](https://docs.stripe.com/api.md#balance_transaction_object-type) d’opération entrante ou sortante sur le solde de votre compte Stripe. Utilisez les opérations sur solde pour générer les rapports les plus fréquemment utilisés et simplifier l’enregistrement de vos activités financières. Voici les types d’opérations sur solde les plus courants : - `charges` - `refunds` - `transfers` - `payouts` - `adjustments` - `application_fees` Chaque ligne d’opération sur solde représente un objet [balance_transaction](https://docs.stripe.com/api.md#balance_transaction_object) distinct qui, une fois créé, ne sera plus modifié. Par exemple, la création d’un paiement génère également la création d’une opération sur solde de type `charge`. Le remboursement de ce paiement génère une opération sur solde distincte de type `refund`, sans modifier l’opération sur solde initiale. De la même façon, lorsque vous recevez un virement sur votre compte bancaire, une autre opération sur solde (en l’occurrence un transfert) est créée. L’exemple de requête suivant utilise cette table afin de récupérer des informations concernant les cinq opérations sur solde les plus récentes. ```sql select date_format(created, '%m-%d-%Y') as day, id, amount, currency, source_id, type from balance_transactions order by day desc limit 5 ``` | jour | id | montant | devise | source_id | type | | ---------- | ------------------- | ----------- | ------ | ------------------ | ------------- | | 15/04/2026 | txn_orWziM4j7CiRL8J | -1 000 | USD | re_orWziM4j7CiRL8J | remboursement | | 15/04/2026 | txn_orWziM4j7CiRL8J | 1 000 | USD | ch_orWziM4j7CiRL8J | paiement | | 15/04/2026 | txn_orWziM4j7CiRL8J | 1 000 | USD | ch_orWziM4j7CiRL8J | paiement | | 15/04/2026 | txn_orWziM4j7CiRL8J | 1 000 | EUR | ch_orWziM4j7CiRL8J | paiement | | 15/04/2026 | txn_orWziM4j7CiRL8J | -1 000 | USD | re_orWziM4j7CiRL8J | remboursement | Vous pouvez générer les rapports financiers les plus courants en associant la table `balance_transactions` à d’autres tables contenant les informations voulues. Certains de nos modèles de requête (par exemple le [solde quotidien](https://dashboard.stripe.com/sigma/queries/templates/Daily%20balance) et [solde et récapitulatif mensuels](https://dashboard.stripe.com/sigma/queries/templates/Monthly%20summary%20and%20balance)) fonctionnent en associant cette table à d’autres. ![](https://b.stripecdn.com/docs-statics-srv/assets/balance-transactions.f272cb17ff065ae1c02b320a235f0b3e.png) ## Détails des frais de l’opération sur solde La table `balance_transaction_fee_details` fournit des informations relatives aux frais pour chaque opération sur solde. En joignant cette table à la table `balance_transactions` de la manière décrite ci-dessous, vous pouvez renvoyer les informations relatives aux frais de chaque opération sur solde. ![](https://b.stripecdn.com/docs-statics-srv/assets/balance_transaction_fee_details.e8c6bba21d6e26ee77157a3fd6b797be.png) La requête suivante joint les tables `balance_transactions` et `balance_transaction_fee_details`. Chaque poste d’opération sur solde renvoyé comprend le montant, les frais, le type de frais appliqué et une description de ces frais. ```sql select date_format(date_trunc('day', balance_transactions.created), '%m-%d-%Y') as day, balance_transactions.id, balance_transactions.amount, balance_transactions.fee, balance_transaction_fee_details.type from balance_transactions inner join balance_transaction_fee_details on balance_transaction_fee_details.balance_transaction_id=balance_transactions.id order by day desc limit 5 ``` | jour | id | montant | frais | type | | ---------- | ------------------- | ---------- | ----- | ---------- | | 15/04/2026 | txn_orWziM4j7CiRL8J | 1 000 | 59 | stripe_fee | | 15/04/2026 | txn_orWziM4j7CiRL8J | 1 000 | 59 | stripe_fee | | 15/04/2026 | txn_orWziM4j7CiRL8J | 1 000 | 59 | stripe_fee | | 15/04/2026 | txn_orWziM4j7CiRL8J | 1 000 | 59 | stripe_fee | | 15/04/2026 | txn_orWziM4j7CiRL8J | 1 000 | 59 | stripe_fee | ## Paiements La table `charges` contient des données relatives aux objets [Charge](https://docs.stripe.com/api.md#charge_object). Utilisez cette table pour les requêtes qui portent sur les informations de paiement plutôt qu’à des fins comptables ou de rapprochement. Elle complète également les rapports comptables avec des données supplémentaires sur les clients. Par exemple, le modèle de requête [détails des cartes de paiement](https://dashboard.stripe.com/sigma/queries/templates/Payment%20card%20breakdown) utilise la table `charges` pour générer un rapport sur les différents types de cartes utilisés par vos clients. Vous pouvez joindre la table `charges` à diverses autres tables afin de récupérer davantage d’informations au moyen de vos requêtes. ![](https://b.stripecdn.com/docs-statics-srv/assets/charges.6bba866fbd70648f58b7af6bcf425c3e.png) L’exemple suivant utilise la table `charges` pour générer un rapport sur les échecs de paiement, en renvoyant la marque de la carte ainsi que le message et le code d’erreur. ```sql select date_format(date_trunc('day', created), '%m-%d-%Y') as day, id, card_brand, failure_code, failure_message from charges where status = 'failed' order by day desc limit 5 ``` | jour | id | card_brand | failure_code | failure_message | | ---------- | ------------------ | ---------- | ------------- | --------------------------------------------------- | | 15/04/2026 | ch_orWziM4j7CiRL8J | Visa | card_declined | Votre carte a été refusée. | | 15/04/2026 | ch_orWziM4j7CiRL8J | MasterCard | card_declined | Votre carte ne prend pas en charge ce type d’achat. | | 15/04/2026 | ch_orWziM4j7CiRL8J | Visa | card_declined | Votre carte ne dispose pas de fonds suffisants. | | 15/04/2026 | ch_orWziM4j7CiRL8J | Visa | card_declined | Votre carte a été refusée. | | 15/04/2026 | ch_orWziM4j7CiRL8J | MasterCard | card_declined | Votre carte a été refusée. | ## Clients La table `customers` contient des données relatives aux objets [Customer](https://docs.stripe.com/api.md#customers) (cette table ne fait pas partie du groupe **Table des paiements**). Utilisez-la pour créer des paiements à partir de clients (par exemple, à partir des informations de paiement enregistrées.) Elle est également utile si vous utilisez des [abonnements](https://docs.stripe.com/stripe-data/query-billing-data.md). ![](https://b.stripecdn.com/docs-statics-srv/assets/customers.44a1f795dc4ca7d4df666617f45855e9.png) L’exemple suivant récupère une liste des échecs de paiement, avec l’ID et l’adresse e-mail de chaque client. ```sql select date_format(date_trunc('day', charges.created), '%m-%d-%Y') as day, customers.id, customers.email, charges.id from charges inner join customers on customers.id=charges.customer_id where charges.status = 'failed' order by day desc limit 5 ``` ## Remboursements Les paiements et les remboursements correspondent à des objets distincts dans l’API. Le remboursement d’un paiement génère un objet [Refund](https://docs.stripe.com/api.md#refund_object). Ces données sont disponibles dans la table `refunds` et vous fournissent des informations détaillées sur les remboursements effectués. Comme pour les rapports sur les paiements, il est préférable de commencer par les données relatives aux opérations sur solde. Si besoin, vous pouvez recueillir des informations supplémentaires à l’aide de la table `refunds`. Vous pouvez joindre la table `refunds` aux tables `balance_transactions` et `charges` pour analyser les données des remboursements plus en détail. ![](https://b.stripecdn.com/docs-statics-srv/assets/refunds.aebf78debf4de6e9ee96a477b23fc198.png) L’exemple suivant associe les tables `balance_transactions` et `refunds` grâce aux colonnes `refunds.balance_transaction_id` et `balance_transactions.id`. Chaque poste d’opération sur solde renvoyé est un remboursement et affiche l’ID et le montant du paiement correspondant. Seules les opérations sur solde créées après une certaine date sont renvoyées. ```sql select date_format(date_trunc('day', balance_transactions.created), '%m-%d-%Y') as day, balance_transactions.source_id, refunds.charge_id, balance_transactions.amount from balance_transactions inner join refunds on refunds.balance_transaction_id=balance_transactions.id where balance_transactions.type = 'refund' order by day desc limit 5 ``` | jour | source_id | charge_id | montant | | ---------- | ------------------ | ------------------ | ----------- | | 15/04/2026 | re_orWziM4j7CiRL8J | ch_orWziM4j7CiRL8J | -1 000 | | 15/04/2026 | re_orWziM4j7CiRL8J | ch_orWziM4j7CiRL8J | -1 000 | | 15/04/2026 | re_orWziM4j7CiRL8J | ch_orWziM4j7CiRL8J | -1 000 | | 15/04/2026 | re_orWziM4j7CiRL8J | ch_orWziM4j7CiRL8J | -1 000 | | 15/04/2026 | re_orWziM4j7CiRL8J | ch_orWziM4j7CiRL8J | -1 000 | ## Remboursements de capture partielle Using [auth and capture](https://docs.stripe.com/payments/place-a-hold-on-a-payment-method.md) and capturing only some of the authorized amount creates both a charge and a refund. An authorized charge creates a `charge` and an associated balance transaction for the full amount. After a partial capture is complete, the uncaptured amount is released and a `refund` is created with a `reason` field of `partial_capture` along with an associated balance transaction. Par exemple, si vous autorisez un paiement de 10 USD mais que vous ne capturez que 7 USD, un objet `charge` de 10 USD est créé, ainsi qu’un objet `refund` au motif `partial_capture` pour les 3 USD restants. Cet aspect est à prendre en compte si votre entreprise procède à l’autorisation et à la capture des paiements et que vous créez des rapports pour examiner les taux de remboursement des clients. Faute de prise en compte, l’autorisation et la capture peuvent fausser le nombre de remboursements sur votre compte. Utilisez le champ `reason` du remboursement pour filtrer les remboursements de capture partielle lors de la récupération des informations de paiement. ```sql select balance_transactions.id, balance_transactions.amount from balance_transactions inner join refunds on refunds.id=balance_transactions.source_id where reason != 'partial_capture' limit 5 ``` ## Transferts et virements La table `transfers` contient des données sur les [virements](https://docs.stripe.com/payouts.md) effectués depuis votre solde Stripe vers votre compte bancaire. Si vous utilisez les [virements automatiques](https://docs.stripe.com/payouts.md), vous pouvez utiliser cette table pour rapprocher chaque virement avec les paiements, remboursements et réajustements spécifiques qui le constituent. Pour les plateformes *Connect* (Connect is Stripe's solution for multi-party businesses, such as marketplace or software platforms, to route payments between sellers, customers, and other recipients), cette table inclut également des données sur les transferts de fonds effectués vers les comptes Stripe connectés. ![](https://b.stripecdn.com/docs-statics-srv/assets/transfers.f4311836b58c92e30de891a4d124d402.png) Si vous réalisez vos virements manuellement, le montant d’un virement vers votre compte bancaire est toujours arbitraire. Vous ne pouvez donc pas le rapprocher à des opérations sur solde spécifiques, car il reflète uniquement le montant que vous avez choisi de virer vers votre compte bancaire. L’exemple suivant joint les tables `balance_transactions` et `transfers`. Il renvoie une liste des paiements et des remboursements, le virement auquel ils sont associés et la date à laquelle le virement vers votre compte bancaire a été planifié. ```sql select date_format(date_trunc('day', balance_transactions.created), '%m-%d-%Y') as bt_created, balance_transactions.source_id, balance_transactions.type, balance_transactions.net as net_amount, balance_transactions.automatic_transfer_id as transfer_id, date_format(date_trunc('day', transfers.date), '%m-%d-%Y') as transfer_date from balance_transactions inner join transfers on balance_transactions.automatic_transfer_id=transfers.id where balance_transactions.type = 'charge' and balance_transactions.type != 'refund' order by bt_created desc limit 5 ``` | jour | source_id | type | net_amount | transfer_id | transfer_date | | ---------- | ------------------ | -------- | ---------- | ------------------ | ------------- | | 22-05-2017 | ch_orWziM4j7CiRL8J | paiement | 941 | po_orWziM4j7CiRL8J | 24-05-2017 | | 22-05-2017 | ch_orWziM4j7CiRL8J | paiement | 941 | po_orWziM4j7CiRL8J | 24-05-2017 | | 21-05-2017 | ch_orWziM4j7CiRL8J | paiement | 941 | po_orWziM4j7CiRL8J | 23-05-2017 | | 21-05-2017 | ch_orWziM4j7CiRL8J | paiement | 941 | po_orWziM4j7CiRL8J | 23-05-2017 | | 21-05-2017 | ch_orWziM4j7CiRL8J | paiement | 941 | po_orWziM4j7CiRL8J | 23-05-2017 | > Les virements effectués avant le 06-04-2017 possèdent un TRANSFER_ID avec un préfixe `tr_`. ## Annulations de transferts Vous pouvez annuler un paiement créé manuellement (ou un transfert vers un compte Stripe connecté) s’il n’a pas encore été payé en utilisant les fonds renvoyés au solde disponible de votre compte. Ceux-ci sont représentés comme des objets [Transfer_reversal](https://docs.stripe.com/api.md#transfer_reversal_object) et résident dans la table `transfer_reversals`. Les annulations de transferts s’appliquent uniquement aux virements et aux transferts créés manuellement. Les virements automatiques ne peuvent pas être annulés.