B2B customers often pay by bank transfer, cheque or cash, so there is no payment gateway transaction to refund against. When a refund is due, for example when a subscription is cancelled with the refund option, BillHive does not fail or skip it. It records the refund for your finance team to pay out and complete.
What Happens When a Refund Is Due
- BillHive refunds through the payment gateway for any part of the amount the customer paid through the gateway. Gateway refunds work as before.
- Whatever cannot be refunded through the gateway is recorded as one Refund transaction with the status Needs Attention. This covers customers who paid offline, subscriptions with no gateway payment, and gateway refunds that failed.
- The workflow, such as the cancellation, carries on normally. The subscription is cancelled and the credits are applied as usual.
- BillHive emails the tenant’s administrators that a refund needs a manual payout. If no administrator email or system email sender is set up, no email is sent and a warning is logged, so check the account’s transactions regularly.
The Refund transaction has these details:
| Field | Value |
|---|---|
| Type | Refund |
| Status | Needs Attention |
| Mode | Bank Transfer |
| Amount | The amount still owed to the customer |
| Links | The subscription, the order and the credit memos, in the transaction’s reason |
Completing the Refund
- Pay the customer outside BillHive, for example by NEFT.
- Navigate to Customers and open the customer account.
- Open the Transactions tab. The refund is shown in amber with the status Needs Attention.
- Click Complete refund, enter the UTR and the Refund Date, add optional notes and confirm.
The transaction status becomes Success. The UTR is stored as the transaction’s reference ID and the refund date as its transaction date.
Using the API
PATCH /transactions/{id}/complete-refund{
"utr": "UTR123456789",
"refundDate": "2026-10-24",
"notes": "NEFT to the customer's bank account"
}| Response | Meaning |
|---|---|
| 200 | The refund is completed. The updated transaction is returned. |
| 400 | The transaction is not a Refund in Needs Attention (for example it is already completed), or the UTR is empty, or the date is invalid or in the future. |
| 404 | The transaction does not exist. |
Limitations
- BillHive does not move the money. Finance pays the customer and then records the UTR here.
- A refund can be completed once. A completed refund cannot be reopened.
- Completing a refund needs the same permission as recording an offline payment (
Transaction.create).