Skip to content

Store credit

Store credit is a spendable balance you grant to a customer in your store currency. Unlike a gift card — which is a code anyone holding it can redeem — store credit belongs to a specific customer account and is applied automatically when that customer is signed in at checkout. Use it for goodwill, promotions, compensation, or to settle a refund as credit instead of returning money to a card.

Every grant and spend is recorded in a ledger, so a customer’s balance is always the sum of what you’ve issued minus what they’ve redeemed or let expire.

The canonical ledger, reservation, expiry, currency, and liability definitions live in Financial semantics.

Where store credit lives

Store credit is managed on the customer’s detail page, not in a separate top-level section.

  1. Go to Customers in the store sidebar and open the customer.

  2. The customer header shows a Store Credit stat with the current balance alongside total orders and total spent.

  3. Open the Store Credit tab on the customer’s profile to see the Current Balance and the full credit history.

Issue store credit

  1. On the customer’s Store Credit tab, choose Issue Credit.

  2. In the Issue Store Credit dialog, enter an Amount in your store’s configured currency (for example ₹500). The amount and ISO currency are stored with integer minor units (paise/cents) — there is no rounding drift or silent currency conversion.

  3. Optionally add a Note to explain the grant (for example “Diwali goodwill” or “compensation for delayed order”). The note is saved on the ledger entry.

  4. Choose Issue. The balance updates immediately and a new credit row appears in the history.

The amount must be positive — the issue dialog only adds credit. It is also recorded with the adjustment reason, which is the reason used for credit you grant by hand from this dialog. (Other reasons such as refund, promotion, review reward, and order payment exist in the ledger for credit created by those automated flows; see below.)

How the balance is tracked

A customer’s store credit is held as one or more lots. Each issue, refund allocation, or reward creates a lot, and spending draws the balance down lot by lot. This lets the system distinguish two kinds of balance:

  • Non-expiring credit — credit issued with no expiry date. It stays on the account until spent.
  • Expiring credit — credit issued with an expiry date. Once that date passes, the unspent remainder of that lot expires and leaves the balance.

The Current Balance shown on the customer page is active, unexpired lot value less any amount reserved by an unfinished checkout. Reserved value remains an outstanding liability but cannot be applied to another cart. Spending consumes the earliest-expiring lots first, then non-expiring lots. The account also keeps lifetime totals — total issued, total redeemed, and total expired — plus the next expiry date, so you can see at a glance how a customer has used their credit over time.

Financial reporting keeps spendable available, authorized reserved, and their sum—outstanding liability—separate and scoped by currency. This matters at an expiry boundary: the page can correctly show zero available while a pre-expiry checkout still holds an authorized amount for its short TTL.

At the end of the expiry date in the store timezone, the expiry sweep removes the unreserved remainder. A reservation created while the lot was valid protects only its allocated amount through the reservation’s short TTL; it does not renew the lot or protect unreserved credit. Checkout can consume that prior authorization once. If it is released or times out after the lot expired, the released amount becomes eligible for the next expiry sweep. Expiry, its immutable ledger transaction, account totals, and next-expiry date update together.

Reading the credit history

The Store Credit tab lists every ledger entry, newest first:

  • Date — when the entry was posted.
  • Amount — green and prefixed with + for credit added; red for credit spent or expired.
  • Balance — the running balance after that entry.
  • Reason — the reason tag for the entry (for example adjustment, refund, promotion, review reward, order payment).

Because each row records the balance after it, the history is a complete, auditable trail. Issuing credit also writes a Store credit issued event to the customer’s Activity timeline; spending and expiry are logged the same way.

How customers spend store credit

Store credit is redeemed at checkout, automatically, by the signed-in customer:

  1. The customer signs in to their account on your storefront and adds items to the cart.

  2. In checkout they can apply store credit to the order. The cart records the applied amount and reduces the amount due; they can remove it again before paying.

  3. They pay any remaining balance with a normal payment method (UPI, card, and so on). If credit covers the whole order, there’s nothing left to pay.

The applied amount is reserved against the cart until it is paid, then consumed from the customer’s exact lot allocations once. Removing it, abandoning the cart, or a failed checkout releases the reservation. The order records how much store credit was applied, so it is visible on the payment summary without being misclassified as a sales discount.

Refunding as store credit

When you process a refund you don’t have to send money back to the original payment method. A refund can allocate part or all of its payout as a store credit allocation to the customer, splitting between expiring and non-expiring amounts. Posting the refund creates the credit lot and the matching ledger entry — tagged with the refund reason — and links it back to the order and the refund.

This is the cleanest way to keep value inside your store: the customer keeps a spendable balance instead of a card chargeback, and the refund stays fully traceable. For the full refund workflow, see refunds and returns.

Other ways credit is created

Besides hand-issuing and refunds, store credit ledger entries are created by:

  • Review rewards — credit awarded for leaving a review, linked to the review reward record (reason review reward). See collecting reviews.
  • Order payment — the debit recorded when a customer spends credit on an order (reason order payment).

All of these land in the same ledger and balance, so the customer sees one unified Current Balance regardless of where the credit came from. (A promotion reason also exists as a ledger tag, but it is reserved for future use — no current flow issues promotional store credit.)

Troubleshooting

  • Issue button does nothing / is disabled — the amount must be greater than zero. Enter a positive amount.
  • Customer can’t apply credit at checkout — confirm they are signed in. Store credit is account-bound, so a guest checkout can’t read it.
  • Balance dropped on its own — an expiring lot reached its expiry date and the unspent remainder expired. Check the history for an expiry entry and the account’s lifetime expired total.
  • Refund didn’t add credit — make sure you allocated the refund payout to store credit (not only to the gateway/cash). Without a store-credit allocation the refund returns money instead of adding balance.

Next steps

Gift cards

Need a transferable, code-based balance instead? Use gift cards.