# Gift Cards vs Discount Codes vs Store Credit

Gift Card Factory works with three types of value you can give to customers: **gift cards**, **discount codes**, and **store credit**. They look similar at first, but they behave very differently at checkout, in your accounting, and in how the customer experiences them. Picking the right one is usually the most important decision when planning a campaign.

### **🧠 Quick Summary**

* **Gift card** — a code anyone holding it can spend. [Used as a payment method at checkout](https://shopify.dev/docs/api/admin-graphql/latest/objects/GiftCard). Best for transferable, prepaid balances.
* **Discount code** — a code that reduces the price of an order. Treated as a discount, not a payment. Best for promotions and incentives.
* **Store credit** — [a monetary balance attached to a customer record, redeemable at checkout](https://shopify.dev/docs/api/admin-graphql/latest/objects/StoreCreditAccount). Best for refunds, compensation, and account-bound rewards.

{% hint style="warning" %}
**Store credit has an important prerequisite.** Per Shopify, *"the account balance is redeemable at checkout only when the owner is authenticated via **new customer accounts** authentication"* ([source](https://shopify.dev/docs/api/admin-graphql/latest/objects/StoreCreditAccount)). If your store still uses classic customer accounts, customers won't be able to spend their store credit at checkout. You can check or change this in **Shopify Admin → Settings → Customer accounts**.
{% endhint %}

### **📊 Side-by-Side Comparison**

| Attribute                      | Gift Card                                                                                                                                                                         | Discount Code                                                                                                                   | Store Credit                                                                                                                                            |
| ------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Shopify resource**           | [`GiftCard`](https://shopify.dev/docs/api/admin-graphql/latest/objects/GiftCard)                                                                                                  | [`DiscountCodeBasic`](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/DiscountCodeBasicInput) and related types | [`StoreCreditAccount`](https://shopify.dev/docs/api/admin-graphql/latest/objects/StoreCreditAccount)                                                    |
| **What it is**                 | Stored value (a Shopify gift card)                                                                                                                                                | A coupon-style code with rules                                                                                                  | Account balance on a customer record                                                                                                                    |
| **Treated at checkout as**     | Payment method                                                                                                                                                                    | Discount on the order                                                                                                           | Payment method (account balance)                                                                                                                        |
| **Account requirement**        | None — anyone with the code can redeem                                                                                                                                            | None — depends on eligibility rules                                                                                             | **Customer must be logged in via new customer accounts** ([Shopify docs](https://shopify.dev/docs/api/admin-graphql/latest/objects/StoreCreditAccount)) |
| **Tied to a customer?**        | Optional (recipient/customer fields)                                                                                                                                              | Optional (eligibility can target customers or segments)                                                                         | Yes — always tied to one customer record (or a `CompanyLocation` for B2B, but Gift Card Factory only supports Customer)                                 |
| **Transferable?**              | Yes — anyone with the code can redeem it                                                                                                                                          | Yes — any customer matching the eligibility rules can use the code                                                              | No — *"the account…has an owner that cannot be transferred"* ([source](https://shopify.dev/docs/api/admin-graphql/latest/objects/StoreCreditAccount))   |
| **Code required at checkout?** | Yes (the gift card code)                                                                                                                                                          | Yes (the discount code)                                                                                                         | No — applies automatically when the customer is logged in                                                                                               |
| **Reduces order subtotal?**    | No (it's a payment, not a discount)                                                                                                                                               | Yes                                                                                                                             | No (it's a payment)                                                                                                                                     |
| **Has an expiry option?**      | Yes (`expiresOn`, never / relative / specific)                                                                                                                                    | Yes (`startsAt` / `endsAt`)                                                                                                     | Yes (per-credit-transaction `expiresAt`, or never)                                                                                                      |
| **Multiple uses?**             | Until the balance is depleted                                                                                                                                                     | `usageLimit` (total) and `appliesOncePerCustomer` (per customer)                                                                | Until the balance is depleted                                                                                                                           |
| **Counts as revenue when?**    | When redeemed at checkout                                                                                                                                                         | Reduces revenue per order at checkout                                                                                           | When redeemed at checkout                                                                                                                               |
| **Refund-friendly?**           | Yes (issue a new card)                                                                                                                                                            | Less so (codes are not designed for refunds)                                                                                    | Yes — common channel for refunds                                                                                                                        |
| **Native Shopify email?**      | Yes — Gift card created notification                                                                                                                                              | No — emailing is up to the merchant                                                                                             | Yes — Store credit issued notification                                                                                                                  |
| **Re-enable after disabling?** | **No.** *"After a gift card is deactivated, it can't be used for further purchases or re-enabled"* ([source](https://shopify.dev/docs/api/admin-graphql/latest/objects/GiftCard)) | Codes can be disabled and re-enabled in Shopify Admin                                                                           | Balance can be debited but the account itself cannot be deactivated                                                                                     |

### **🎯 When to Use Which**

#### Use a **gift card** when…

* Someone is paying for a value voucher (you sell gift cards as products).
* You're running a giveaway, contest, or influencer campaign and want recipients to get prepaid balance.
* You're rewarding employees or partners with transferable value.
* Refunds need to remain transferable (e.g. the original buyer was a third party).
* The recipient may not be logged in (or may not exist as a customer record).

→ See: [Autogenerate](/bulk-operations/autogenerate.md), [Bulk Send](/bulk-operations/bulk-send.md), [Bulk Update](/bulk-operations/bulk-update.md), [Import From File](/bulk-operations/import-from-file.md)

#### Use a **discount code** when…

* You want to offer a percentage- or fixed-amount discount on purchases.
* You're driving acquisition (welcome codes), conversion (flash sales), or retention (VIP codes).
* You want stacking rules (combine with product / order / shipping discounts), minimum-purchase requirements, or product/collection targeting.
* You want unique tracking codes for influencers, channels, or partner campaigns.

→ See: [Discount Codes Bulk Create](/bulk-operations/discount-codes-bulk-create.md), [Discount Codes Bulk Send](/bulk-operations/discount-codes-bulk-send.md), [Discount Codes Import From File](/bulk-operations/discount-codes-import-from-file.md)

#### Use **store credit** when…

* You're issuing a refund as in-store value rather than cash back.
* You're compensating a known customer for a service issue.
* You're rewarding loyalty members with account-bound balance.
* You want the value to apply automatically at checkout, without the customer having to enter a code.
* **Your store uses new customer accounts** — without this, customers can't redeem the credit.

→ See: [Store Credit Bulk Add](/bulk-operations/store-credit-bulk-add.md), [Store Credit Import From File](/bulk-operations/store-credit-import-from-file.md)

### **🛠️ Available Operations Per Type**

| Need                        | Gift Card                                                                                                       | Discount Code                                                                          | Store Credit                                                                       |
| --------------------------- | --------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
| Generate codes (no email)   | [Autogenerate](/bulk-operations/autogenerate.md)                                                                | [Discount Codes Bulk Create](/bulk-operations/discount-codes-bulk-create.md)           | *N/A — store credit always targets a customer*                                     |
| Generate + email recipients | [Bulk Send](/bulk-operations/bulk-send.md)                                                                      | [Discount Codes Bulk Send](/bulk-operations/discount-codes-bulk-send.md)               | [Store Credit Bulk Add](/bulk-operations/store-credit-bulk-add.md)                 |
| Update existing             | [Bulk Update](/bulk-operations/bulk-update.md)                                                                  | *Edit individually in Shopify Admin → Discounts*                                       | *Adjust individually in Shopify Admin → Customers*                                 |
| Import from CSV             | [Import From File](/bulk-operations/import-from-file.md)                                                        | [Discount Codes Import From File](/bulk-operations/discount-codes-import-from-file.md) | [Store Credit Import From File](/bulk-operations/store-credit-import-from-file.md) |
| Per-row scheduling in CSV   | [Multiple Imports From a Single File](/bulk-operations/import-from-file/multiple-imports-from-a-single-file.md) | *Not supported*                                                                        | *Not supported*                                                                    |

### **❓ Common Points of Confusion**

**"Which one is best for refunds?"**\
Usually **store credit** when the original buyer is the same person being refunded — Shopify treats it cleanly as account balance, and there's a native "Store credit issued" notification. Use **gift cards** if the buyer was a third party (corporate buyers, gift purchasers) since gift cards are transferable and don't require a customer account.

**"Can a customer share their store credit with someone else?"**\
No. Per Shopify, a store credit account *"has an owner that cannot be transferred"* ([docs](https://shopify.dev/docs/api/admin-graphql/latest/objects/StoreCreditAccount)). It applies only when that owner is logged in. If you need transferable value, use a gift card.

**"Will a discount code work alongside a gift card or store credit?"**\
Yes — discount codes reduce the order subtotal, then gift cards / store credit apply as payment for whatever's left. Stacking with *other* discount codes depends on the **Combines with** flags ([`DiscountCombinesWithInput`](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/DiscountCombinesWithInput)) on each code.

**"Does store credit count as a discount for accounting?"**\
No. Both gift cards and store credit are recognized as **payment** at checkout, not as a price reduction. Discount codes are the only one of the three that reduce reported order revenue.

**"Can I email a discount code only to the people I list, not to everyone?"**\
Yes. With [Discount Codes Bulk Send](/bulk-operations/discount-codes-bulk-send.md), each recipient gets a unique code. You can additionally set per-code usage limits (e.g. one use per customer via Shopify's `appliesOncePerCustomer`) so even if the code is shared, only one redemption per customer is allowed.

**"What if my customer doesn't have a Shopify customer record yet?"**\\

* For **gift cards**, recipients without a customer record can be skipped or auto-created (configurable per operation).
* For **discount codes**, no customer record is needed — codes are independent of customers (unless you set Eligibility to specific customers/segments).
* For **store credit**, a customer record is required. Imports from file auto-create one from email if needed; the bulk-add form skips recipients without an existing record.

**"My store still uses classic customer accounts. Can I issue store credit?"**\
You can issue it, but customers won't be able to redeem it at checkout until you switch to **new customer accounts**. Per Shopify's docs, store credit is only spendable when the owner is authenticated via new customer accounts. Switch under **Settings → Customer accounts** in Shopify Admin.

**"I issued a gift card for the wrong amount — can I just edit it?"**\
You can edit the balance via [Bulk Update](/bulk-operations/bulk-update.md) (using the `balance` column). However, you **cannot re-enable a gift card** once it's been deactivated — Shopify explicitly disallows this ([docs](https://shopify.dev/docs/api/admin-graphql/latest/objects/GiftCard)). If you need to fix a deactivated card, issue a new one.

### **🔗 Related Reading**

* [Recipients Selector](/misc/recipients-selector.md) — the four ways to pick recipients across operations.
* [Customers Query Selector](/misc/customers-query-selector.md) — the syntax for dynamic recipient queries.
* [Sending Customer Notifications](/misc/sending-customer-notifications.md) — how email delivery works for each method.
* Shopify reference: [GiftCard](https://shopify.dev/docs/api/admin-graphql/latest/objects/GiftCard), [StoreCreditAccount](https://shopify.dev/docs/api/admin-graphql/latest/objects/StoreCreditAccount), [DiscountCombinesWithInput](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/DiscountCombinesWithInput).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.giftcardfactory.app/comparison.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
