Payouts & reconciliation
Stripe does not send your dues to the bank one payment at a time. It batches them: a single deposit on your bank statement nets together dozens of charges, minus refunds, minus Stripe’s fees. Payouts takes each of those deposits apart, so a national treasurer can tie the number on the bank statement back to the dues payments behind it.
Open the page
Operations → Payouts in the org sidebar, just below Billing and Payment Plans (/org/billing/payouts).
Each row is one deposit Stripe sent to your bank:
- Arrival — the date Stripe expects the money to land, with Stripe’s payout id (
po_…) beneath it. That id is how you find the same deposit in the Stripe dashboard. - Status — Pending, In transit, Paid, Failed or Canceled, as Stripe reports it.
- Deposited — what actually reached the bank.
- Fees — Stripe’s fees on the activity inside the deposit.
- Reconciliation — where the deposit stands (see below).
Use the filter to narrow the list to one status, or choose Needs attention to see only deposits with at least one unmatched line.
How a deposit is broken down
Click a row to open its detail. The three figures at the top always add up:
Gross − Fees = Deposited
Below them is every transaction the deposit contains:
| Type | What it is | Matched to a payment? |
|---|---|---|
| Charge | A dues payment collected through Stripe | Yes — should be |
| Refund | Money returned to a payer | Yes — should be |
| Fee | A standalone Stripe fee (for example, a billing fee) | No — nothing to match |
| Adjustment | A Stripe correction, such as a dispute | No |
| Payout | The deposit leaving your Stripe balance | No — it is the deposit |
The Settles column shows who each charge or refund belongs to — the paying member, or the chapter when it was a chapter remittance (one card charge covering several members’ dues, marked (remittance)).
Matched and unmatched lines
GreekManage matches each charge and refund to the dues payment it recorded when the payment went through. A line marked Unmatched is a charge in your Stripe account that GreekManage has no payment for. Usually that means one of:
- The payment is still arriving. Stripe can include a charge in a deposit before GreekManage has finished recording the payment. Unmatched lines are retried every hour, so these clear on their own.
- The charge wasn’t taken through GreekManage — for example, a payment created by hand in the Stripe dashboard, or a different product sharing the same Stripe account.
- The payment webhook never reached GreekManage, so the payment was never recorded. See Payment succeeds but the invoice stays unpaid in Payment processor configuration.
The Reconciliation column
- Reconciled — the deposit is Paid, its transactions are in, and every charge and refund matched a GreekManage payment.
- N unmatched — that many charges or refunds have no matching payment yet.
- Awaiting detail — Stripe hasn’t reported the deposit’s transactions yet. Common for a deposit that is still in transit.
- Not yet paid — every line matched, but the deposit hasn’t landed yet.
A reconciled deposit can become unreconciled again — for example, if Stripe later reports it as failed.
Download the CSV
Download CSV exports one row per transaction, using whatever filter is selected, for your bank reconciliation spreadsheet. Each row repeats the deposit’s id, status, arrival date and net amount, followed by the transaction’s type, gross, fee, net, Stripe ids, whether it matched (yes, no, or n/a for fees and the payout itself), and the chapter and payer it settles. A deposit whose transactions haven’t arrived yet still gets one row, with the transaction columns blank.
Very large exports are refused rather than cut short; narrow the date range if that happens.
How the data gets here
GreekManage reads payouts from your Stripe account every hour, using the secret key you saved in Payment processor configuration. The first sync looks back 90 days. Nothing on this page is ever written back to Stripe.
For faster updates, subscribe your existing Stripe webhook endpoint (the same …/api/payments/webhook/<org_id>/stripe/ endpoint you registered for payments) to two more events:
payout.paidpayout.failed
With those subscribed, a deposit shows up and is broken down as soon as Stripe pays it, and a failed deposit is flagged immediately. Without them, everything still arrives — just on the hourly sync.
Related
- Payment processor configuration — connecting Stripe and registering the webhook endpoint
- Chapter invoices & generation — the invoices these payments settle
- Dues configuration & billing
Last verified against v0.88.3 (2026-10-06).