How Shopify refunds should adjust loyalty points (without breaking trust)
A practical guide to reversing loyalty points on Shopify full and partial refunds — webhooks, customer expectations, and automation.
2026-05-19 · Lance
Short answer: Shopify refunds should automatically reverse loyalty points in proportion to the refunded amount — via the refunds/create webhook (or equivalent), mapped to the original order accrual. Full refunds remove all points from that order; partial refunds remove their share. Never let customers keep points on returned goods if you want finance and customers to trust the program.
Refunds are normal in ecommerce. If your loyalty program does not handle them cleanly, customers remember the one time their balance looked wrong — not the ten orders that worked perfectly.
Here is how to design refund-safe loyalty on Shopify, especially when you also sell in-store on Square.
Why refunds break naive loyalty programs
Many early setups only listen for order paid events. They add points on purchase and never subtract on return. Over time:
- Customers keep points on refunded orders.
- Liability is overstated.
- Finance loses confidence.
- Support spends hours on manual adjustments.
The fix is not “ban refunds.” The fix is treating refunds as first-class events — same priority as accrual (Shopify refund webhooks).
Which Shopify events to use
Accrual: payment confirmation — commonly orders/paid — not checkout creation.
Reversal: refunds/create when a refund is created on an order (partial or full).
Your loyalty system should:
- Store points awarded per order (or line).
- On refund, calculate proportional points to remove.
- Floor balance at zero unless policy allows negative points.
SamePoints applies tenant rules automatically — verify in Logs after setup (Shopify setup).
Full refund vs partial refund
Full refund: remove all points from that order (or unredeemed portion if points were spent — document policy).
Partial refund: remove points proportional to refunded amount.
Example: 100 points on $100 order; $25 item returned → remove 25 points if earn rule is linear per dollar.
Document the rule in your rewards FAQ so support quotes one sentence.
Edge cases worth deciding upfront
- Shipping-only refunds: usually no point change if points were on product subtotal only.
- Store credit vs card refund: still reverse if order value reduced.
- Exchanges: treat as refund + new accrual, not silent transfer.
- Edited orders after payment: prefer webhook recalculation over manual edits.
Write these before launch. Ambiguity becomes public complaints.
Customer communication that prevents escalations
- Show point history with order references in rewards UI.
- Optional email on large negative adjustments.
- POS script: “Returns adjust rewards automatically — balance updates in a few minutes.”
Australian consumers expect fair handling — ACCC refunds guidance. Loyalty should feel as predictable as refund timelines.
Testing your refund flow before go-live
- Test order → confirm points added.
- Partial refund one line → partial deduction.
- Full refund → full deduction.
- Refund after gift card redemption → confirm clawback policy.
Log webhook payloads during testing. Shopify JSON includes refund line amounts for ledger mapping.
Refunds when you also use Square
Omnichannel merchants face split scenarios: buy online, return in store, or vice versa. Without a unified ledger, each platform adjusts independently.
One system connected to Shopify and Square should apply the same reversal rules wherever the refund was processed — matched by customer identity (no double counting).
Square: subscribe to refund.created / refund.updated and link to original payment — Square setup.
Automation vs manual CSV fixes
CSV imports can bootstrap history. They are a poor ongoing tool for refunds because refunds arrive continuously and human error scales with volume.
Webhook automation with visible Logs (processed, failed, skipped) is sustainable past ~100 orders/month — reconciliation.
Reconciliation: catching missed webhooks
Compare in a time window:
- Paid orders vs accrual records.
- Refunds vs reversal records.
- Alert on mismatches above tolerance.
Track refund-adjusted point accuracy as a KPI — loyalty KPIs guide.
FAQ
Which Shopify webhook handles refund point reversals?
Typically refunds/create. Your loyalty app should subscribe automatically on Partner app install; confirm with a test refund in Logs.
Should partial refunds always reverse partial points?
Yes, if your earn rule is proportional to spend. Document exceptions (shipping-only refunds) in your policy.
What if a customer already spent points from a refunded order?
Define clawback policy: block redemption, allow negative balance, or manual review. Communicate in FAQ.
Do Square refunds reverse Shopify-displayed points?
With unified loyalty, yes — when Square refund events hit the same ledger and original payment is found.
What is SamePoints?
SamePoints automates Shopify and Square loyalty with refund-aware reversals, real-time webhooks, and gift card issuance at your threshold.
Ready to unify Shopify + Square loyalty?
Start free