Refund reconciliation
How nohold records refunds and supports Brightpearl Sales Credit reconciliation.
How nohold records refunds and supports Brightpearl Sales Credit reconciliation.
Available on Growth and Scale plans.
What happens when you refund
When you refund an order in Shopify, Shopify fires a refunds/create webhook. nohold:
-
Sums the refund transactions (handling partial refunds correctly).
-
Records the running total on the split row:
refunded_at,refund_amount,refund_currency. -
Writes an audit note on each child Brightpearl Sales Order:
Shopify refund processed 2026-08-12 · USD 49.99. Reconcile BP Sales Credit (auto-created within 60 days; older orders need manual).
-
Surfaces a purple Refunded $X badge on the Splits row.
What nohold does NOT do
nohold never issues the refund. The refund happens in Shopify, by you, when you decide it should. The refund webhook arrives after Shopify has executed it on your authority.
nohold also never creates Brightpearl Sales Credits. Brightpearl auto-creates Sales Credits for orders less than 60 days old; older orders need manual creation. The note nohold writes carries the date and amount your accounting team needs to reconcile, but the Sales Credit itself is a Brightpearl-side action.
Why it's split into A and B
Split orders complicate Sales Credit reconciliation because the original Brightpearl SO is now two SOs. nohold writes the same note to both child SOs so:
- Whichever child SO accounting opens, the refund context is present.
- The note explicitly names the original Shopify refund event so the accountant can confirm the source.
- If the refund covered only items on the in-stock half (for example, one item was damaged in shipping), the note still goes on both. The accountant credits the right Sales Order based on the line-item detail in Shopify.
Partial refunds
Shopify can fire multiple refund webhooks for the same order: once for the initial refund and again if you do a later partial refund. nohold sums them on the split row, so refund_amount is always the running total of what's been refunded.
The BP note is written once per refund event with the new amount, not the running total. Your accounting team sees each refund as a separate line in the BP note history.
Cancel requests vs refunds
The cancel link in the delay email records cancel_requested_at on the split (see Delay & cancel). That's a customer request, not a refund. You still need to process the refund through Shopify; the customer's click is just a strong signal that they want one.
A typical flow:
- Customer clicks cancel in the delay email.
- Splits row shows Cancel requested (red badge).
- You refund the customer in Shopify.
- Splits row now also shows Refunded $X (purple badge).
- Both BP child SOs have the audit note for accounting.