Shopify store credit, explained

If all you want is to issue store credit, Shopify already does that for free.It is built in, it is on every plan, and you do not need an app for it.

What Shopify’s documentation does not cover well is how the feature behaves once you rely on it. Below are the four limits that catch merchants out, and one behaviour that is not documented anywhere, which we tested ourselves because we could not find the answer.

Everything here is either quoted from Shopify’s documentation, something we tested and recorded, or clearly marked as our own read of it.

How does store credit work on Shopify?

Store credit is a balance attached to a customer’s account. You issue it, they spend it at checkout, and Shopify keeps the ledger.

You will find it on the customer’s profile in your admin, in a card marked Store credit. From there you can add credit or adjust a balance.

The Store credit card on a customer's profile in the Shopify admin, showing a balance of $21.50 USD
The Store credit card as it appears on a customer’s profile in the Shopify admin.

Three things worth knowing up front.

It is on every plan

Shopify’s help centre sets no plan restriction. The only plan-specific line concerns transaction fees rather than availability: on Shopify Plus with Shopify Payments, a fee is waived.

You may read otherwise. Several app vendors’ articles still say native store credit is Plus-only, or that merchants on Basic need a third-party wallet. Store credit did launch on Plus before reaching other plans, and our read is that those articles have not been updated since. Either way, the current documentation does not restrict it by plan.

It works in more than one place

Shopify documents store credit as available as a payment method “on your online store, Point of Sale (POS), and Shop.” Credit issued online can be spent in store.

Worth noting what is not in that list: draft orders. If your workflow depends on building orders manually for customers to pay, do not assume credit applies there.

Balances live in Shopify

They are attached to the customer record, not to any app. Add or remove software later and the balance is not stranded somewhere else.

Can you give store credit instead of a refund?

Yes, and this is where most older advice is out of date.

You can refund an order to store credit regardless of how the customer originally paid. Shopify’s documentation puts it plainly: you can offer store credit when refunding an order where “store credit or other payments, such as credit cards, were used as a payment method.”

In the order’s Refund now section, choose store credit as the refund method. You can also:

  • split a refund between store credit and the original payment method
  • set an expiry date on the credit as you issue it

You need to be the store owner or have the Refund to store credit permission, which sits under Orders permissions.

You will still find older forum threads saying this is impossible, or that credit only works if the customer originally paid with credit. That described an earlier version of the feature.

One accounting note, because it comes up. Refunding to store credit is a refund method within the refund flow, so it is recorded as a refund on the order rather than an exchange. We cannot tell you how that flows into your particular accounting integration, because that depends on the integration. If you are switching because the old refund-to-gift-card route was breaking your reconciliation, run one order through end to end and check your books before changing your whole returns process.

How do customers find and use their store credit?

At checkout, a signed-in customer with a balance sees an Apply store credit option. Tick it and the credit goes toward the order. If credit covers the total, no card is needed.

Two limits here matter more than they first appear.

Customers cannot choose how much to apply

Shopify’s documentation states:

Only the full store credit amount can be applied as a payment method. Customers can’t select a partial amount of their store credit to pay for an order.

That sentence is ambiguous in the one place it matters. It could mean the customer cannot pick an amount and the system takes what the order needs. Or it could mean using credit at all consumes the whole balance. The documentation never says what happens to credit left over when the order costs less than the balance.

We could not find that answered anywhere, so we tested it.

Test, 30 July 2026. A customer with a $15.00 balance bought a single $5.00 item. No discount, no exchange, online checkout, single currency. We applied store credit at checkout.

Result. Checkout applied $5.00, not $15.00. The order summary read Store credit −$5.00, total due went to $0.00, and after the order the customer’s balance was $10.00.

So in our testing the rule means the customer cannot choose an amount. The system draws what the order needs and leaves the remainder. The figure shown beside the “Apply store credit” toggle is the customer’s balance, not the amount about to be spent.

To be clear about what that does and does not establish: it is one order, one currency, online checkout, no discount. We would expect it to generalise, but we have not tested the variations. Merchants have separately reported unused credit not surviving in the Shopify POS exchange flow when a discount is also involved. We have not reproduced that, and it is a different path from the one we tested.

It requires new customer accounts

This is the one that quietly breaks store credit programmes.

Shopify’s documentation is blunt about it: “Store credit isn’t available for legacy customer accounts.” Customers can only use it when signed in through customer accounts.

So if you are planning to offer credit and you are still on legacy accounts, change that first. Otherwise the feature appears simply not to work, and it is easy to read that as customers rejecting the offer.

You will find the setting under Settings → Customer accounts.

Balances are held per currency

If you sell in more than one currency, this will come up.

Store credit is held per currency, and Shopify’s documentation describes the consequence at checkout: “If a customer has store credit issued to their account in multiple currencies, then only the store credit balance that matches the currency of your checkout displays to the customer at checkout.”

In practice that means a customer refunded €40 sees nothing at a checkout priced in dollars. Balances are not converted and are not pooled.

The practical rule: issue credit in the currency the customer actually transacted in. Issue in your shop’s currency instead and you can hand someone a balance they will never see.

Expiry dates

You can set an expiry when issuing credit, including on a refund, or choose no expiry date.

Two things to check before you use it. Gift card and store credit expiry are regulated differently depending on where your customers are, so confirm what applies to you. And unless you know how long your customers typically take to come back and spend credit, an expiry date is a guess. Set it at 30 days for customers who return after six weeks and you are cancelling credit you already promised.

What native store credit does not do

Everything above is free and built in. Here is what it will not do, so you can judge whether you need anything more.

It gives the customer no reason to choose credit over cash

Shopify’s refund flow is entirely merchant-side. There is no point in it where the customer is shown that credit is an option, or that it might be worth more than the cash refund. That is not a criticism of any app’s implementation. The platform provides no customer-facing surface inside the refund flow at all, which we confirmed against Shopify’s list of customer account extension points.

The consequence is that a merchant can enable credit and see little uptake without ever learning whether customers declined it or were never offered it.

That part is addressable with wording rather than software. Put it in the three places customers actually read: your returns policy page, the saved reply support uses when someone asks for a refund, and the email that goes out when you issue the credit.

There is no rule layer

You cannot express “defect gets a cash refund, changed mind gets credit” and have it applied automatically. A human decides, per return, every time. At five returns a month that is noise. At fifty it is a real slice of someone’s week, and the policy drifts depending on who is on support that day.

Customers cannot see their balance while they shop

It appears at checkout and in their account. Someone browsing your storefront gets no reminder that they have money to spend with you.

Issuing credit is one customer at a time

Fine for occasional goodwill. Painful for a bulk campaign or a supplier appeasement run.

Native Shopify vs CreditPerk

 Native ShopifyCreditPerk
Issue store credit manuallyYesYes
Refund an order to store creditYesYes
Set an expiry dateYesYes
Bulk issuance from a CSVNoYes
Automatic bonus for choosing creditNoYes
Balance shown while customers shopNoYes
Exportable activity log across all customersPer customer onlyYes

We build CreditPerk. It automates the bonus for choosing credit over cash, and puts the customer’s balance on your storefront so they know it is there. It runs on the native store credit described above rather than a wallet we control, so balances stay in Shopify and nothing is stranded if you uninstall.

Manual and bulk issuance, the activity log and the storefront balance block are free. The automation is the paid part.

The policy wording above costs nothing and does most of the work either way. If you want the three templates we use, ask and we will send them.

View CreditPerk on the App Store