Store credit and your books: what actually happens when a return isn't a refund

Somewhere between “great idea” and “set it live,” every merchant considering store credit for returns has the same quiet worry: what is this going to look like in my books? It’s a fair question, and the answer depends heavily on how the credit is issued — more than on the credit itself. This is the plain-language version to have in your head before you talk to your accountant. (And do talk to your accountant. This is orientation, not advice.)

A refund vs a credit, as your ledger sees them

When you refund a $148 return, the entry is simple and sad: revenue reversed, cash out, done. The customer relationship usually ends at the same line.

When you settle the same return as store credit, no cash leaves. Instead you take on a liability: you now owe the customer $148 of future product. The revenue side gets its adjustment, and the liability sits on your books until the credit is spent, at which point it converts into a sale like any other — one that costs you the wholesale value of whatever they pick, not the retail number on the credit.

After a $148 refund, you hold

Cash gone

Inventory the returned item

Customer gone with the wire

After $148 in credit, you hold

Cash still yours

Inventory the returned item

Customer coming back with a balance

The liability is real — but look at everything else on the shelf next to it.

That liability makes some merchants nervous, and it shouldn’t be dismissed — it is a real obligation. Compared with a cash refund, store credit keeps the cash in the business and gives the customer a reason to return, but the accounting and tax treatment still depends on the business and jurisdiction.

Why the gift-card workaround makes a mess

Here’s where implementation details bite. For years, apps simulated store credit on Shopify by refunding the order and issuing a gift card for the amount. Functionally similar for the customer. In your books, a small disaster:

  • Gift cards issued as return-compensation get mixed in with gift cards sold — two different things (one has revenue behind it, one is a return adjustment) reported as one.
  • The original refund and the gift card issuance are two disconnected events, so reconciling a single return means matching entries across reports.
  • Come tax season, someone has to explain which slice of outstanding gift card liability is real sold-card liability and which is disguised returns. That someone bills by the hour.

Shopify’s native store credit fixes the category problem: credit lives on the customer account as store credit, in Shopify’s own ledger, distinct from gift cards. The return, the credit, and the eventual redemption all reconcile the way Shopify expects, because you’re using the primitive Shopify built for exactly this.

Keep the bonus separate

If you sweeten credit with a bonus — $148 return becomes $162.80 in credit — resist the urge to book it as one blob. They’re two different things:

  • $148.00 — return settled as store credit. Corresponds to real returned merchandise.
  • +$14.80 — a promotional incentive you chose to grant. Marketing expense in spirit, clearly-labeled credit entry in practice.

Movement 1 — the base

Return · Order #2041, settled as store credit $148.00

Movement 2 — the bonus

"Return bonus for Order #2041" +$14.80

Two clearly-labeled entries. Each one explains itself to whoever reads the books next.

Two entries, each explaining itself. Your accountant sees exactly what the extra $14.80 is and why it exists, instead of a return that mysteriously exceeds the order value. (This is how RefundShift books it, for what it’s worth — base credit through Shopify’s returns flow, bonus as a separate, labeled store-credit entry.)

The month-end routine

Whatever tools you use, you want to be able to answer four questions per month without archaeology:

How much did we refund in cash?

How much did we issue in store credit against returns?

How much bonus credit did we grant on top?

How much outstanding credit is on the books, total?

The month-end four. If your tooling can't export these, month-end becomes archaeology.

If your returns process can export that — per month, per currency, in a file your bookkeeper can open — month-end starts with reliable source data instead of a spreadsheet built from memory. Every RefundShift plan includes Excel and CSV transaction exports. Core and Growth add summaries and reconciliation views so you can review trends and exceptions without rebuilding the analysis yourself.

Should credits expire?

Accounting has opinions here too. Expired credit eventually becomes breakage — recognizable income, but with rules attached that vary by jurisdiction, and gift-card/credit expiry itself is regulated in many places. “Never expires” isn’t just friendlier marketing; it’s also the simpler books. If you do want expiry on the bonus portion, make it a deliberate, documented policy choice, not a default you forgot about until a customer complains.

The one-line summary: store credit does not have to make reconciliation difficult. Use Shopify’s native store-credit records, keep the original value and bonus separate, export the underlying transactions, and confirm the final treatment with your accountant.