# Bulk Upload Promo Codes

If you want to create multiple promo codes, use the **Bulk Upload** feature to upload a CSV, XLS, or, XLSX file with your promo code data.

Refer to the *Promo code bulk upload reference* tables below for help in structuring this file. To ensure the upload is successful, keep the file size under 1MB for XLS/XLSX or 5MB for CSV. Validation is based strictly on file size, so there is no specific limit on the number of rows.

{% hint style="warning" %}
**Warning:** Make sure the column headers in your CSV/XLS file exactly match the column names below (case-sensitive and spaces), otherwise your file upload could be rejected.
{% endhint %}

{% hint style="info" %}
**Example:** The example below is for an example promo code `10PEROFF`.

```programlisting
Promo Code,Campaign Id,Media Id,Type,Credit Rule,Match Mode,Deal
Name10PEROFF,4321,1299679,TRACKING,ALWAYS,LI,
```

{% endhint %}

#### Bulk upload tracking promo codes

1. From the left navigation menu, select ![](https://4048883401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwMLlMoFBtKJa8ptd3zaw%2Fuploads%2Fgit-blob-230534471fef5f40808e921e41ee44e4a06ded03%2Fe6cb9548999afdc1ed3ce4942e4cb5b45b5cecbd323267aac2a7cd1915fccc09.svg?alt=media) **\[Engage]** → **Content** → **Promo Codes**.
2. On the *Promo Codes* screen, select **Bulk Upload**.
3. Select **Choose File** and then locate and then select the Excel / CSV file with the promo codes that you want to upload.

   <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p><strong>Note:</strong> Ensure your file uses the required column format shown in the table below.</p></div>

   | Column            | Type    | Required | Description                                                                                                                                                        |
   | ----------------- | ------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
   | Promo Code        | String  | Yes      | The unique promo code to be assigned.                                                                                                                              |
   | Program Id        | Integer | Yes      | The unique impact.com Program Id to which the ad belongs.                                                                                                          |
   | Media Id          | Integer | Yes      | The impact.com Media Id to which the promo code will be assigned. This can be Partner Id or Media Source Id.                                                       |
   | Type              | String  | Yes      | <p>The promo code type. Allowed values:</p><p><code>TRACKING</code></p>                                                                                            |
   | Credit Rule       | String  | Yes      | <p>The promo code credit rule. Allowed values:</p><p><code>ALWAYS</code></p><p><code>INVOLVED</code></p><p><code>WINNER</code></p>                                 |
   | Match Mode        | String  | Yes      | <p>The promo code match mode. Allowed values:</p><p><code>LI</code> (Exact/Literal)</p><p><code>RE</code> (Regex/Regular Expression)</p>                           |
   | Deal Id           | Integer | No       | The unique ID of the deal this promo code should be associated with. The deal must already exist in your program.                                                  |
   | Active Start Date | Date    | No       | Gives you the ability to schedule this restriction. This is an [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) Date. Example format: `2013-06-30T00:00:00-07:00` |
   | Active End Date   | Date    | No       | This is an ISO8601 Date. Example format: `2013-06-30T00:00:00-07:00`                                                                                               |
   | Timezone          | String  | No       | Timezone is derived from the start date, but if you want to override it with a specific timezone, enter the full name here, e.g., `America/New_York`.              |

   Each uploaded tracking promo code can only be assigned to 1 partner or media source through the `Media Id` field. If another partner promotes that code, impact.com flags the resulting conversion as an invalid conversion and reverses it.
4. Select **Next**.
5. Review the list of promo codes that will be uploaded. If the details are correct, select **Accept & Create Promo Codes**.
6. If the upload is successful, the new *Tracking promo codes* are created and listed on the *Promo Codes* screen.

#### Bulk upload restricted promo code fields

{% hint style="info" %}
**Note:** As part of ongoing platform improvements, we are retiring the *Restricted Promo Codes* feature at the end of February. Please review your current configurations and plan accordingly.
{% endhint %}

Before you begin, understand the difference between the two restriction types:

* **White List**
  * Purpose: Define a list of promo codes that must be used in order for a Partner to get credit for a sale.
  * This is recommended if your authorized list of promo codes is smaller than your unauthorized list.
* **Black List**
  * Purpose: Define a list of promo codes that, if used will not credit a sale to a Partner.
  * This is recommended if your unauthorized list of promo codes is smaller than your authorized list.

**Step 1: Choose the restriction type**

1. From the left navigation menu, select ![](https://4048883401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwMLlMoFBtKJa8ptd3zaw%2Fuploads%2Fgit-blob-230534471fef5f40808e921e41ee44e4a06ded03%2Fe6cb9548999afdc1ed3ce4942e4cb5b45b5cecbd323267aac2a7cd1915fccc09.svg?alt=media) **\[Engage]** → **Content** → **Promo Codes**.
2. On the *Promo Codes* screen, select **Create Promo Code** ![](https://4048883401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwMLlMoFBtKJa8ptd3zaw%2Fuploads%2Fgit-blob-c2cb550b55c51ea1eeff0acbd6f437a03b621a2c%2F60d033ae8a04c14498d5229c3c0160ac05feea7f605dbd770741793c900469f0.svg?alt=media) **\[Drop-down menu]** → **Restricted**.
3. On the *Promo Codes Restrictions* page, select ![](https://4048883401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwMLlMoFBtKJa8ptd3zaw%2Fuploads%2Fgit-blob-6282f271b7521383385339243690b303086736d9%2F3b5a585dd2895bdf1c30d1236c72ba590dddd18717863b27074c8d313d05ae20.svg?alt=media) **Setup Promo Code Restrictions**.
4. The Promo Code Restrictions page appears, displaying two columns for setup:
   * Optionally, select ![](https://4048883401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwMLlMoFBtKJa8ptd3zaw%2Fuploads%2Fgit-blob-6282f271b7521383385339243690b303086736d9%2F3b5a585dd2895bdf1c30d1236c72ba590dddd18717863b27074c8d313d05ae20.svg?alt=media) **Setup White List**, to upload white listed promo codes.
   * Optionally, select ![](https://4048883401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwMLlMoFBtKJa8ptd3zaw%2Fuploads%2Fgit-blob-6282f271b7521383385339243690b303086736d9%2F3b5a585dd2895bdf1c30d1236c72ba590dddd18717863b27074c8d313d05ae20.svg?alt=media) **Setup Black List**, to upload black listed promo codes.

**Step 2: Upload your file**

1. Select **Choose file**, then locate and select the Excel / CSV file with restricted promo codes that you want to upload.

   <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p><strong>Note:</strong> Ensure your file uses the required column format shown in the table below.</p></div>

   | Column            | Type    | Required | Description                                                                                                                                           |
   | ----------------- | ------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
   | Promo Code        | String  | Yes      | The unique promo code to be assigned.                                                                                                                 |
   | Program Id        | Integer | Yes      | The unique impact.com Program Id to which the ad belongs.                                                                                             |
   | Type              | String  | Yes      | <p>The promo code type. Allowed value:</p><p><code>RESTRICTED</code></p>                                                                              |
   | Match Mode        | String  | Yes      | <p>The promo code match code. Allowed values:</p><p><code>LI</code> (Exact/Literal)</p><p><code>RE</code> (Regex/Regular Expression)</p>              |
   | Active Start Date | Date    | No       | Gives you the ability to schedule this restriction. This is an ISO8601 Date. Example format: `2013-06-30T00:00:00-07:00`.                             |
   | Active End Date   | Date    | No       | This is an ISO8601 Date. Example format: `2013-06-30T00:00:00-07:00`                                                                                  |
   | Timezone          | String  | No       | Timezone is derived from the start date, but if you want to override it with a specific timezone, enter the full name here, e.g., `America/New_York`. |
2. Select **Next**.
3. Review the list of restricted codes that are displayed on the *Promo Code Bulk Upload* page.
   * Optionally, to view only entries that contain errors, select **Show errors only**.
4. If the details are correct, select **Accept & Create Promo Codes**.

**Step 3: Add media partner exceptions**

1. On the *Media Partner Controls* page, choose how the restriction rules will apply:
   1. Optionally, select **Apply to all partners**, if you want this rule to apply to everyone.
   2. Optionally, select **Allow certain partners to bypass this rule and get credited for restricted promo codes**.

      If you choose to allow a bypass, select **Lookup** and then select and **Add** the specific partners from the list.
2. Select **Save & Activate**.
3. The new Restricted Promo code rule is activated and the uploaded codes are applied to the chosen *White List* or *Black List*.
