> For the complete documentation index, see [llms.txt](https://help.dollarlabs.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.dollarlabs.io/dollarback-store-credit/earning-cashback-programs/reward-discount-codes-instead-of-store-credit.md).

# Reward discount codes instead of store credit

{% embed url="<https://dollarlabs.neetorecord.com/watch/008652f586e3716b7c1e>" %}

Any cashback program can pay out a **discount code** instead of store credit. This is useful when you'd rather fund a next-purchase incentive than a spendable balance. This page covers switching a program over, how the reward itself is defined, how codes are delivered, and the stacking caveat you must know before going live.

## Prerequisites

* A cashback program of any type ([Set up purchase cashback](/dollarback-store-credit/earning-cashback-programs/set-up-purchase-cashback.md) or any other)
* A reward built on the **Reward marketplace** page with **Cashback triggers** enabled under its **Available in** setting; see [Set up the reward marketplace](/dollarback-store-credit/spending-store-credit-and-rewards/set-up-the-reward-marketplace.md)
* The "Discount code earned" email enabled in **DollarBack admin → Notifications**, so customers actually receive their codes

## Step 1: Switch the reward kind

1. Open **DollarBack admin → Home**, select the **Cashback** tab, click **Manage configurations** and open the program.
2. Change **Reward kind** from **Store credit** to **Discount code**.
3. Under **Reward to give**, pick the reward this program should issue. The list shows your marketplace rewards; builds and edits live on the Reward marketplace page. If the list is empty, create a reward there first.
4. Optionally set **Limit issues per customer** to cap how many codes this program gives one customer. Leave it blank for unlimited. See [Limit issues per customer](#limit-issues-per-customer) below.
5. Save. From now on, when this program triggers, the customer gets a unique code instead of credit.

<figure><img src="https://2844543096-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcVBfwy7Yj4tU8TsxkHEr%2Fuploads%2Fgit-blob-d42f37c94f3e34f705ae8f7e13e39197f17f876c%2Fdb-purchase-reward-discount-code-annotated.png?alt=media" alt="Reward section with Reward kind Discount code, a Reward to give dropdown, Limit issues per customer, Min. order quantity and Min. order spend fields." width="560"><figcaption><p>Set Reward kind to Discount code and pick the marketplace reward that this program issues.</p></figcaption></figure>

What the code grants (product, order, and/or shipping discounts, caps, cart-group targeting, redemption rules) all comes from the reward's definition, so several programs can hand out the same reward, and editing the reward updates them all. See [Cart groups, redemption rules & rejection messages](/dollarback-store-credit/spending-store-credit-and-rewards/cart-groups-and-redemption-rules.md) for the gating options.

## How the codes work

* **One unique code per event**, formatted `{prefix}-{random}-{discriminator}`. The discriminator ties every code back to the program that issued it; that's how per-program analytics (issued / used / value) are tracked.
* **Expiry comes from the reward** (its **Expires after (days)** setting bakes an expiry into each minted code); **how many codes one customer gets comes from the program** (its **Limit issues per customer** field). The reward's **Max redemptions / customer** field only caps marketplace redemptions, not earned codes.
* **Codes from orders wait for the holding period.** If **Settings → Trigger & Timing → Holding period** is set, a code earned on an order is issued when the hold ends, like store credit. See [When credit is issued](/dollarback-store-credit/earning-cashback-programs/when-credit-is-issued.md).
* Earned codes are issued free: the customer's credit balance is not touched, whatever the reward's marketplace credit cost is.
* All codes hang off **one shared Shopify discount** whose parent code is `RDM-(DO NOT DELETE)`.

{% hint style="warning" %}
**Never delete the `RDM-(DO NOT DELETE)` discount in Shopify admin.** Every reward code ever issued (earn-side and marketplace) is attached to it; deleting it kills them all at once. If codes suddenly stop applying, this is the first thing to check: [A reward discount code isn't working](/dollarback-store-credit/troubleshooting-and-faq/reward-discount-code-isnt-working.md).
{% endhint %}

## Limit issues per customer

**Limit issues per customer** caps how many codes this program gives one customer, over the customer's whole history with the program. There is no time window: it is not "once a month", it is "this many, ever".

* **Blank** means no cap.
* A code that is **revoked** (for example, because its order was cancelled) frees its slot, so the customer can earn another.
* A code the customer has **used** still counts. Using a code doesn't make room for a new one.
* The cap counts only codes from this program. Other programs, and codes bought in the reward marketplace, don't count toward it.

When a customer is at the cap, the program issues nothing for that event; no store credit is given instead.

## Stacking with other discounts

Combination rules (whether reward codes can be used together with order / product / shipping discounts) are set **store-wide on the shared discount**. Individual programs cannot have independent stacking rules, and changing the rules affects **all outstanding codes immediately**, including ones customers are already holding. Configure and test this deliberately: [Discount combination rules](/dollarback-store-credit/spending-store-credit-and-rewards/discount-combination-rules.md).

## How the customer gets the code

When a code is issued:

* The **"Discount code earned" email** fires automatically (default subject: "{firstName}, Your Discount Code is Ready!"), carrying the code and a summary of what it grants.
* The **Discount Code Credited event** syncs to connected integrations: Klaviyo and Omnisend receive the code, reward summary, and program name for your own flows. See [Klaviyo integration](/dollarback-store-credit/integrations/klaviyo-integration.md).
* The code also surfaces in the **widgets'** reward messages on the storefront.

## Analytics

Every issuance is logged with the program name and code under **DollarBack admin → Analytics → Activity** (the **Discount codes** view), and the **Campaigns** tab tracks the aggregates per program thanks to the discriminator: codes issued, codes used, conversion, and discount value given.

## Verify it works

1. Trigger the program with a test customer (e.g. place a qualifying order).
2. Check the inbox. The code email should arrive with the code.
3. Apply the code on a new checkout and confirm it grants the configured discount.
4. Confirm the Earned and Used rows in **Analytics → Activity**, under the **Discount codes** view.

## Common issues

* Code won't apply at checkout: expired, already used, or blocked by combination rules; walk [A reward discount code isn't working](/dollarback-store-credit/troubleshooting-and-faq/reward-discount-code-isnt-working.md).
* No email arrived: check the template is enabled, then [Emails aren't arriving](/dollarback-store-credit/troubleshooting-and-faq/emails-arent-arriving.md).
* Code applies but stacks unexpectedly with other discounts: combination rules are store-wide; review [Discount combination rules](/dollarback-store-credit/spending-store-credit-and-rewards/discount-combination-rules.md).

## Related articles

* [Discount combination rules](/dollarback-store-credit/spending-store-credit-and-rewards/discount-combination-rules.md)
* [Set up the reward marketplace](/dollarback-store-credit/spending-store-credit-and-rewards/set-up-the-reward-marketplace.md)
* [Cashback program types at a glance](/dollarback-store-credit/earning-cashback-programs/cashback-program-types-at-a-glance.md)
* [A reward discount code isn't working](/dollarback-store-credit/troubleshooting-and-faq/reward-discount-code-isnt-working.md)
