Single Use Promotion Codes

Prev Next

Promotion Codes allow you to offer discounts to consumers associated with payments and/or settlements. These can be configured manually or uploaded via ETL, and can be redeemed by an agent.

How Promotion Codes Work

  • Promotion codes are associated with a bundle.

  • Discounts can be either a fixed dollar amount or a percentage.

  • Promotion codes can be applied as a settlement and/or as an immediate discount.

  • A promotion code is available until its expiration date.

  • The expiration date for an unredeemed promotion code can be modified.

  • Agents redeem promotion codes when posting transactions or setting up payment plans.

  • Tracking and reporting of promotion code usage is available through SQL.

Setting Up Promotion Codes Manually

Before You Begin:

  • Ensure your user role includes the “Manage - Promotion Codes” permission.

Access Promotion Codes

  1. From the Account Sidebar, click Promotion Codes, click New.

Option A: Creating Settlement Promotion Codes

  1. The Settlement checkbox is checked by default.

  2. Enter:

    1. Code

    2. Discount Percent or Discount Amount (only one)

    3. Expiration Date

  3. Save the promo code.

Image Displays Settlement Promotion Code Fields

Note: A Settlement promo code applies to the total owed balance.

Option B: Creating Non-Settlement Promotion Codes

  1. Uncheck the Settlement checkbox.

  2. Enter:

    1. Code

    2. Discount Percent or Discount Amount (only one)

    3. Bucket (Principal, Fee, or Interest)

    4. Expiration Date

  3. Save the promo code.

Image Displays Non-Settlement Promotion Code Fields

Note: A Non-Settlement promo code applies only to the selected bucket.

Uploading Promotion Codes via ETL Profile

To upload promotion codes in ACE, you'll first need to prepare your import file, then create an ETL Profile using the “BUNDLE_PROMO_CODES load method to upload it. Refer to the Bundle Promo Codes ETL Layout document for details.

Step 1: Prepare Your File Using SQL Designer

Use the SQL Designer to export only the necessary column headers. This helps ensure your file includes the required fields based on how you're configuring your promo codes. Refer to the Example SQL Queries section of this article for more information.

Step 2: Load the File

  1. Go to Accounts → ETL Import → Profiles → New.

  2. Upload the file to configure the ETL Profile and map the fields.

  3. Choose the following load method:

    1. BUNDLE_PROMO_CODES

  4. Test the profile with or without a job to verify it loads data as expected.

  5. Save the profile for future use.

Viewing a Bundle’s Promotion Codes

  • Click Promotion Codes from the account sidebar.

  • View a list of promotion codes for the bundle.

Image Displays Viewing Example Promotion Codes at the Bundle Level

Redeeming Promotion Codes

Before You Begin:

  • Ensure your user’s permission roles include the “PAYMENT_SETTLE” permission.

Important:

Always redeem the promotion code before posting a payment or continuing to configure a payment plan to achieve the expected results.

1. Post a Payment

Option A: Redeem a Settlement Promotion Code

Use this method if the promotion code is set up as a Settlement (Settlement = True).

  1. Open the account.

  2. Click Post Transaction in the left sidebar.

  3. Complete the Payment Information section:

    1. Enter required credentials and contact details.

    2. Select accounts to apply the payment to.

  4. In the Promotion Code section:

    1. Select the Settlement Promotion Code.

    2. Click Redeem.

    3. The payment amount adjusts for the discount.

  5. Scroll down and verify transactions are spreading correctly.

  6. Click Apply.

What Happens:

  • The Payment Amount automatically adjusts for the settlement discount.

  • The discount is applied at the time of posting, resulting in a $0 balance on the selected accounts.

Image Displays Redeem Button for Promotion Code

Option B: Redeem a Non-Settlement Promo Code

Use this method if the promotion code is set up as Non-Settlement (Settlement = False).

  1. Open the account.

  2. Click Post Transaction in the left sidebar.

  3. In the Promotion Code section:

    1. Select the Non-Settlement Promotion Code.

    2. Click Redeem.

  4. Enter the agreed upon payment amount that qualifies the consumer for the promotion.

  5. Scroll down and verify transactions are spreading correctly.

  6. Click Apply.

What Happens:

  • The discount is automatically posted to the account before the payment is entered and applied.

Image Displays Message for Non-Settlement Promotion Code Once Redeemed (Step 3b)

2. Set Up a Payment Plan

Option A: Redeem a Settlement Promotion Code

Use this method if the promotion code is set up as a Settlement (Settlement = True).

  1. Open the account.

  2. Click Setup Payment Plan in the left sidebar.

  3. In the Promotion Code section:

    1. Select the Settlement Promotion Code.

    2. Click Redeem.

  4. Complete the payment plan details.

  5. Validate the payment plan total and schedule.

  6. Click Apply.

What Happens:

  • The Payment Plan Total and Settle Amount auto-adjust to reflect the discount.

  • The discount is applied after the plan is completed.

Option B: Redeem a Non-Settlement Promotion Code

Use this method if the promotion code is set up as Non-Settlement (Settlement = False).

  1. Open the account.

  2. Click Setup Payment Plan in the left sidebar.

  3. In the Promotion Code section:

    1. Select the Non-Settlement Promotion Code.

    2. Click Redeem.

  4. Fill in the payment plan as agreed upon with the consumer.

  5. Validate the payment plan total and schedule.

  6. Click Apply.

What Happens:

  • The discount is automatically posted to the account when the plan plan is created.

  • The plan total is not adjusted; the agent must enter the agreed upon plan terms.

Example SQL Queries

The following eight example SQL queries are provided for reference only, to be used in order to quickly export the column headers you may choose to use before building your ETL file.

Example: Amount by Bucket via Debt ID

Image Displays Column Header for Amount by Bucket Debt ID

SELECT
   debt.debt_id,
   bundle_promo_code.code,
   bundle_promo_code.discount_amount,
   bundle_promo_code.expiration,
   bundle_promo_code.bucket
FROM debt
LEFT OUTER JOIN bundle_promo_code ON bundle_promo_code.bundle_id = debt.bundle_id
WHERE bundle_promo_code.discount_amount <> 0
ORDER BY debt.last_update DESC
LIMIT 1;

Example: Amount by Bucket via Bundle ID

Image Displays Amount by Bucket via Bundle ID

SELECT
   debt.bundle_id,
   bundle_promo_code.code,
   bundle_promo_code.discount_amount,
   bundle_promo_code.expiration,
   bundle_promo_code.bucket
FROM debt
LEFT OUTER JOIN bundle_promo_code ON bundle_promo_code.bundle_id = debt.bundle_id
WHERE bundle_promo_code.discount_amount <> 0
ORDER BY debt.last_update DESC
LIMIT 1;

Example: Amount for Settlement via Bundle ID

Image Displays Amount for Settlement via Bundle ID

SELECT
   debt.bundle_id,
   bundle_promo_code.code,
   bundle_promo_code.discount_amount,
   bundle_promo_code.expiration,
   bundle_promo_code.settlement
FROM debt
LEFT OUTER JOIN bundle_promo_code ON bundle_promo_code.bundle_id = debt.bundle_id
WHERE bundle_promo_code.discount_amount <> 0
  AND bundle_promo_code.settlement = 't'
ORDER BY debt.last_update DESC
LIMIT 1;

Example: Amount for Settlement via Debt ID

Image Displays Amount for Settlement via Debt ID

SELECT
   debt.debt_id,
   bundle_promo_code.code,
   bundle_promo_code.discount_amount,
   bundle_promo_code.expiration,
   bundle_promo_code.settlement
FROM debt
LEFT OUTER JOIN bundle_promo_code ON bundle_promo_code.bundle_id = debt.bundle_id
WHERE bundle_promo_code.discount_amount <> 0
  AND bundle_promo_code.settlement = 't'
ORDER BY debt.last_update DESC
LIMIT 1;

Example: Percent by Bucket via Debt ID

Image Displays Percent by Bucket via Debt ID

SELECT
   debt.debt_id,
   bundle_promo_code.code,
   bundle_promo_code.discount_percent,
   bundle_promo_code.expiration,
   bundle_promo_code.bucket
FROM debt
LEFT OUTER JOIN bundle_promo_code ON bundle_promo_code.bundle_id = debt.bundle_id
WHERE bundle_promo_code.discount_percent <> 0
ORDER BY debt.last_update DESC
LIMIT 1;

Example: Percent by Bucket via Bundle ID

Image Displays Percent by Bucket via Bundle ID

SELECT
   debt.bundle_id,
   bundle_promo_code.code,
   bundle_promo_code.discount_percent,
   bundle_promo_code.expiration,
   bundle_promo_code.bucket
FROM debt
LEFT OUTER JOIN bundle_promo_code ON bundle_promo_code.bundle_id = debt.bundle_id
WHERE bundle_promo_code.discount_percent <> 0
ORDER BY debt.last_update DESC
LIMIT 1;

Example: Percent for Settlement via Debt ID

Image Displays Percent for Settlement via Debt ID

SELECT
   debt.debt_id,
   bundle_promo_code.code,
   bundle_promo_code.discount_percent,
   bundle_promo_code.expiration,
   bundle_promo_code.settlement
FROM debt
LEFT OUTER JOIN bundle_promo_code ON bundle_promo_code.bundle_id = debt.bundle_id
WHERE bundle_promo_code.discount_percent <> 0
  AND bundle_promo_code.settlement = 't'
ORDER BY debt.last_update DESC
LIMIT 1;

Example: Percent for Settlement via Bundle ID

Image Displays Percent for Settlement via Bundle ID

SELECT
   debt.bundle_id,
   bundle_promo_code.code,
   bundle_promo_code.discount_percent,
   bundle_promo_code.expiration,
   bundle_promo_code.settlement
FROM debt
LEFT OUTER JOIN bundle_promo_code ON bundle_promo_code.bundle_id = debt.bundle_id
WHERE bundle_promo_code.discount_percent <> 0
  AND bundle_promo_code.settlement = 't'
ORDER BY debt.last_update DESC
LIMIT 1;

Reporting Promotion Code

Here is a basic SQL example that may be used to report some account and promotion code fields.

Please note: this example limits the number of rows returned.

SELECT
  debt.debt_id,
  debt.customer_client_code,
  debt.principal_owing,
  debt.fee_owing,
  debt.interest_owing,
  debt.bundle_id,
  bundle_promo_code.*
FROM debt
LEFT OUTER JOIN bundle_promo_code ON bundle_promo_code.bundle_id = debt.bundle_id
ORDER BY debt.last_update DESC
LIMIT 1000;