Transactions
The Transactions screen is the complete financial ledger for your academy. Every course purchase, membership payment, subscription renewal, and refund appears here in one place. You can filter, search, issue refunds, and drill into the full detail of any individual transaction.
Overview
Go to Learnomy Commerce > Transactions. The list shows every transaction row with totals in the page subtitle.
The transactions list


Columns
- ID - the internal transaction number (links to the detail page).
- Customer - display name and email.
- Item - the course title or membership plan name, plus the gateway's own transaction reference (provider transaction ID) in small text below.
- Amount - the charged amount with currency code.
- Type - the transaction category (Course, Membership, Membership renewal, Refund, etc.).
- Provider - which gateway processed the charge (Stripe, PayPal, WooCommerce, Test).
- Status - the current state of the row.
- Date - date and time of the transaction.
- Actions - Refund button for eligible rows.
Transaction statuses
| Status | Meaning |
|---|---|
| Completed | Payment was collected and fulfilment ran (enrolment, subscription, etc.) |
| Refunded | A refund was issued; the matching refund row links back here |
| Pending | Payment initiated but not yet confirmed |
| Failed | The charge attempt failed; no fulfilment occurred |
Refund rows (transaction type "Refund") appear in the list and show "Refund of #N" in the Actions column, linking back to the original transaction.
Filtering and searching

Use the Status dropdown to filter by Completed, Refunded, Pending, or Failed. Use the Provider dropdown to isolate transactions from a specific gateway (Stripe, PayPal, WooCommerce, Test, or Demo). Enter a name, email, order ID, or provider transaction reference in the search box and click Filter. Click Reset to clear all filters.
Issuing a refund
A Refund button appears in the Actions column for transactions that meet all of these conditions:
- Transaction type is not itself a refund.
- Status is Completed.
- No refund has been issued for this transaction yet.
- The gateway is Stripe, PayPal, or Test (WooCommerce refunds are issued from the WooCommerce order).
Click Refund to open a confirmation dialog showing the customer name, item, and amount. Confirm to proceed.
What happens on refund:
- The gateway adapter calls the provider's refund API.
- A new transaction row is written with type "Refund" and the original transaction's ID stored in
refund_of. - The original row's status updates to "Refunded".
- The commission split for that transaction is reversed: instructor commission rows are marked
reversed(not deleted), and the platform commission row is also reversed. The net effect is that neither party keeps earnings from a refunded sale. - The student's course enrolment or membership access is revoked.
Transaction detail
Click any transaction ID in the list to open the full detail page.
Transaction card
Shows amount, type (e.g. "Membership renewal"), status badge, provider name, the gateway's own transaction reference (for cross-referencing in Stripe or PayPal), and the date.
If the transaction is itself a refund, a "Refund of #N" row links to the original. If the transaction has been refunded, a "Refunded by #N" row links to the refund.
Customer and items card
Shows the customer (linked to their student profile), the item (course or membership plan linked to its editor), the linked subscription (if a membership payment), and the coupon applied at checkout (if any), with the discount amount.
Commission split
A table shows how the transaction amount was divided. For a course purchase, two rows typically appear: one for the Platform (the site owner's share) and one for the instructor. Each row shows:
- Recipient name and type
- Amount
- Rate applied
- Payout status (pending, paid, reversed)
When a refund is issued, the commission rows for the original transaction are updated to "reversed". The new refund transaction has no commission rows.
If no commission rules are configured for a transaction, the table shows "No commission records for this transaction."
Gateway metadata
When a transaction carries a metadata_json payload from the gateway (e.g. Stripe session data), a raw JSON block appears at the bottom of the page for debugging. This block is read-only.
Tips
- WooCommerce transactions show with provider "Woocommerce". To refund them, go to the WooCommerce order (the gateway reference in the Item column is the WC order ID) and use WooCommerce's own refund flow. The Learnomy adapter listens to the
woocommerce_order_refundedhook and records the refund row automatically. - Pending transactions are created when a student reaches the checkout but the payment has not yet been confirmed. They clear to Completed when the gateway webhook fires, or to Failed if the webhook reports failure. A backlog of Pending rows usually means the gateway webhook is not configured correctly.
- The search field matches against customer name, email, the internal order ID, and the provider's own transaction reference. You can paste a Stripe
pi_...orch_...ID directly into search to find the matching row. - Commission reversal only happens on full refunds processed through the Refund button. Partial refunds (issued directly in the gateway dashboard) do not currently trigger commission reversal.