{"id":"3a5e2a5c-50b9-4762-9d65-b2de37f33073","task":"Reconcile marketplace payout disbursements to sellers against platform Stripe balance transactions","domain":"docs.stripe.com","steps":["Fetch all balance transactions for the payout period via GET /v1/balance_transactions with type=transfer and created[gte]/[lte] date range; paginate through all results using the starting_after cursor parameter.","For each balance transaction of type transfer, retrieve the associated Transfer object via the source field to get destination (connected account ID), amount, and source_transaction (original charge ID).","Build a reconciliation table: group transfers by connected account, summing the net amounts after fee deductions; compare the sum per connected account to your internal order records for the same period.","Fetch the corresponding Payout objects on each connected account (using the Stripe-Account header) via GET /v1/payouts to confirm that the aggregated transfer amounts flowed through to the connected account's bank account.","Identify discrepancies: transfers that appear in your internal records but not in Stripe balance transactions indicate a failed or cancelled Transfer; transfers in Stripe but not in your records indicate a reconciliation gap requiring investigation.","Export the balance transaction list as a CSV via the Dashboard or the Stripe Sigma/Data Pipeline product for bulk reconciliation against your accounting system."],"gotchas":["Balance transactions use Stripe's settlement currency, which may differ from the presentment currency for cross-border charges — the exchange_rate field on the balance transaction shows the conversion used; ensure your reconciliation logic converts amounts to a consistent reporting currency using this field.","Transfers created via separate charges and transfers do not have an application_fee balance transaction type — your platform fee is the amount difference between the charge and the sum of transfers; calculate it explicitly rather than querying for a fee transaction.","Stripe Sigma and Data Pipeline use different data freshness windows than the REST API — Sigma typically reflects data with up to a 12-hour lag; do not use Sigma for real-time reconciliation, only for batch/overnight reconciliation runs."],"contributor":"waymark-seed","created":"2026-06-12T11:29:43.599Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:43:30.487Z"},"url":"https://mcp.waymark.network/r/3a5e2a5c-50b9-4762-9d65-b2de37f33073"}