# Transactions, refunds and reconciliation

> Find any customer payment, issue a full or partial refund, reverse an offline payment, and compare collections with provider fees and payouts.

Canonical: https://help.spacebrain.ai/payments/transactions-and-refunds/
Last modified: 2026-09-25T00:00:00.000Z

This guide helps you look up a customer's payment history, refund a payment and check what reached your bank. It is for owners, finance staff and anyone who answers billing questions from customers.

## Before you begin [#before-you-begin]

* You need permission to manage Payments to issue refunds. Others can usually view transactions only.
* Have something to search by: the customer's name, the amount or the date.
* Refunds go back through the provider that took the payment. Online refunds are available for Stripe and Razorpay payments.

> **Warning — Refunds cannot be undone in Spacebrain**
>
> Check the customer and amount before you confirm. If you are unsure whether a refund is owed, ask your manager or accountant first.

## Where to find it [#where-to-find-it]

* Payment history: **Payments → Transactions**
* Fees and payouts: **Payments → Reconciliation**

## Find a payment [#find-a-payment]

1. Open **Payments → Transactions**. The page lists payments and refunds confirmed by your provider. You can't edit this list.
2. Use **Source** to narrow it down. Payments from other modules appear here too, such as **Memberships**, **Agreements**, **Webinars**, **Calendar** and **Forms**.
3. Use **Status** to show **Pending**, **Paid**, **Partially refunded**, **Failed** or **Refunded** payments.
4. Choose **View** on a row to open the transaction.

The transaction page shows the customer, amount, method, linked invoice and a **Revenue reconciliation** section with fees and payout details.

### What the payment statuses mean [#what-the-payment-statuses-mean]

| Status                 | Meaning                                                                           |
| ---------------------- | --------------------------------------------------------------------------------- |
| **Pending**            | Checkout started or the provider has not confirmed yet. Do not charge again.      |
| **Paid**               | The provider confirmed the payment.                                               |
| **Failed**             | The payment did not go through. The customer can try again from the same invoice. |
| **Partially refunded** | Some of the payment was returned.                                                 |
| **Refunded**           | The full payment was returned.                                                    |

## Refund a payment [#refund-a-payment]

1. Open the transaction from **Payments → Transactions**.
2. Choose **Refund payment**. This button shows only for Stripe or Razorpay payments that still have money left to refund.
3. In **Confirm refund**, check the customer and invoice named in the warning.
4. Check **Amount**. It starts at the full refundable amount. Lower it for a partial refund. The helper text shows the maximum.
5. Optional: add an &#x2A;*Internal reason (optional)**. Only your team sees it.
6. Choose **Refund** followed by the amount.

### What you should see [#what-you-should-see]

* The message "Refund status updated. Only verified provider evidence confirms the refunded amount."
* A new row in **Refund history** with the date, status and amount. Statuses move from **pending** or **accepted** to **succeeded** (or **failed**).
* The invoice and transaction change to **Refunded** or **Partially refunded** once the provider confirms it.

While one refund is in progress, you cannot start another on the same payment. Wait for the provider to confirm it first.

## Reverse an offline payment [#reverse-an-offline-payment]

Payments you recorded by hand (bank transfer, cash, cheque) are not refunded through a provider. Instead:

1. Open the offline payment's transaction.
2. Choose **Reverse payment**.
3. Enter a **Reversal reason** and confirm.

The message "Offline payment reversed. The invoice balance has been reopened." confirms it worked. Return the money to the customer yourself.

## Check fees and payouts [#check-fees-and-payouts]

**Payments → Reconciliation** compares what you collected with what the provider kept and paid out.

* The summary shows **Gross collected**, **Refunded**, **Provider fees**, **Known net**, **Pending evidence**, **Paid out** and **Needs attention**.
* The **Provider evidence** table lists each payment with its gross amount, fee and known net. Choose **Review** to open one.
* On a transaction, choose **Refresh provider evidence** if the fee or payout details look out of date.

If a value shows as unknown, Spacebrain has not received that detail from the provider yet. It does not guess.

## Razorpay payment recovery [#razorpay-payment-recovery]

If you use Razorpay, admins can see **Payment recovery** in **Payments → Settings**. It lists Razorpay payments that need another check. Choose **Refresh** to update the list. Bank settlement details are available in Razorpay itself.

## Worked example: a partial refund [#worked-example-a-partial-refund]

A client paid for a three-session package and used one session. You agree to refund the other two.

1. Open **Transactions**, set **Source** to **Payments** and find the client's payment.
2. Choose **View**, then **Refund payment**.
3. Change **Amount** to the value of two sessions and add the reason "Two unused sessions".
4. Confirm. The transaction shows **Partially refunded** once Stripe confirms.

## If something goes wrong [#if-something-goes-wrong]

* **There is no Refund payment button.** The payment was offline, came from a provider that does not support refunds here, is already fully refunded, or you lack permission.
* **The refund stays pending.** Providers can take time to confirm. Refresh later. Do not start a second refund.
* **The refund failed.** Read the status in **Refund history**. Check the provider dashboard for the reason, such as a closed card.
* **A customer says they were charged twice.** Search **Transactions** for both payments before refunding. Refund only the confirmed duplicate.

## FAQ [#faq]

### How long does a refund take to reach the customer? [#how-long-does-a-refund-take-to-reach-the-customer]

That depends on the provider and the customer's bank. Spacebrain shows the refund once the provider confirms it.

### Does refunding a membership payment cancel the membership? [#does-refunding-a-membership-payment-cancel-the-membership]

No. Cancel or change the membership separately in [Memberships](/memberships/manage-members-and-renewals/).

### Can I refund a Commas payment here? [#can-i-refund-a-commas-payment-here]

Refunds here are available for Stripe and Razorpay payments. Handle other refunds in the provider's dashboard.

## Next step [#next-step]

Connect billing to signed terms with [Agreements billing and collections](/agreements/billing-and-collections/).
