Discount Voucher Codes

Summary

Discount Voucher Codes are essentially coupons worth a fixed dollar amount. They can be purchased by an organization and distributed to members of that organization in order to offset fees or other costs associated with an application or activity.

Unlike /wiki/spaces/DOCS/pages/361824293, Discount Vouchers are not applied to any specific line item on a payment. They are simply a dollar amount discount.

Primary Business Case

An employer or organization wants to cover the fees / costs of getting their workforce certified and wants to avoid individual reimbursements to individuals. 

As of 10.0, only specific payment gateways will allow vouchers to be applied. See the Payment Gateways page. 

Step 1 - List vouchers for sale

An administrative user with the ManageProducts permission must list the Discount Voucher Codes for sale using the Admin → Products feature. 

The Product configuration collects both the purchase price (charged to buy the voucher) and the discount amount (applied against the balance when a balance is used). These do not need to be the same.

  • If the purchase price is less than the discount amount then it represents a scenario in which the credentialing body is offering the fees at a discount if they are purchased in advance.

  • If the purchase price is more than the discount amount then it represents a scenario in which the credentialing body attaches a surcharge or fee to use vouchers.

Step 2a - Organization purchases Vouchers using a credit card

To purchase Discount Voucher Codes with a credit card, a Member with the ViewVouchers permission should:

  1. Navigate to My Account → My Vouchers
  2. Click the "Purchase Vouchers" button
  3. Complete the checkout process

Upon completion of a successful payment, the vouchers will be purchased and assigned to the purchasing Member.

Step 2b - Organization purchases Vouchers using a Purchase Order

To purchase Discount Voucher Codes with a Purchase Order, a Member with the ViewVouchers permission should:

  1. Navigate to My Account → My Vouchers
  2. Click the "Purchase Vouchers" button
  3. Make note of the names, product codes, and prices of the vouchers they want to purchase
  4. Send a Purchase Order and payment details to the credentialing body (This is performed offline; the creation and transmission of the PO is not handled within LearningBuilder)

Upon receipt of the PO and payment, an Administrator with the ViewMemberVouchers permission should:

  1. Use Admin → Members to locate the purchasing Member
  2. Click the "Vouchers" link to see the vouchers for that Member
  3. Click the "Purchase Vouchers" button
  4. Fill out the purchase form, but click "Record Offline Payment" instead of "Check Out"
  5. Document the offline payment and then complete the purchase process

Upon completion of a successful payment, the vouchers will be purchased and assigned to the purchasing Member.

Step 3 - Organization gives voucher codes to their members

A Member with the ViewVouchers permission can view their list of purchased vouchers at the My Account → My Vouchers page.

Assignment of specific codes to specific people is performed manually, outside of LearningBuilder. To keep track of which codes were sent to which people, click the edit icon and use the notes field.

Step 4 - Members apply the voucher codes during the payment process

Discount Voucher Codes can be entered during the checkout process. As long as the voucher has not already been used, it will be entered as a credit against the outstanding balance. 

If a balance remains then the user will need to enter a credit card to continue. It the voucher fully satisfied the balance then the user will be able to continue without entering a credit card.

Reissuing Discount Voucher Codes

If a discount code is given to someone by mistake, or given to someone that cannot use it, the purchasing organization may want to give it to a different person instead.

To do this:

  1. Go to My Account → My Vouchers
  2. Click the "reissue" icon next to the appropriate voucher
  3. Accept the confirmation prompt

Reissuing a voucher code basically marks the original code as inactive (so that it cannot be used by the original recipient) and then generates a new voucher code that can be given to the new recipient.


Security and abuse prevention

In order to prevent abuse, a Voucher code that is applied towards a user's fees (i.e. is added to their shopping cart) becomes "locked" and cannot be added to any other shopping carts for 30 minutes. Any user attempting to add the same code to multiple in-progress orders will receive a message directing them to contact support. In scenarios of legitimate re-use, such as when the user intends to abandon the first shopping cart, the user should be directed to wait for the lock to expire before trying again. 

Vouchers are locked in this way to avoid scenarios in which a malicious user adds the same discount code to multiple orders and then simultaneously submits them all. On installations using a 3rd-party-hosted checkout process (where the user is physically directed to another website to complete checkout), LearningBuilder does not have an opportunity to do a last-minute validation of the voucher before running the credit card and is unable to fully protect against these race conditions. The locking technique acts as a bulwark against malicious use that would require labor-intensive manual cleanup.

The lock duration can be adjusted (or disabled) by a system administrator.



Requirements

  • LearningBuilder 9.3 or later
  • Using Authorize.NET as the payment gateway (other gateways can be supported with additional innovation)

Capabilities and limitations

  • Expiration Date: Program Administrators making Vouchers available for sale may specify an optional expiration date as either a specific date, or a number of days after purchase

  • Accounting system integration: GL Code can be configured on a per-voucher basis to facilitate integration with 3rd party accounting systems

  • Multi-modal purchases: Can be purchased with a credit card or using a purchase order

  • Not limited to specific types of fees; a single voucher can be used to cover multiple different fee amounts

  • Codes are not "assigned" to specific people; purchasers may distribute the codes to whomever they wish, and anyone that knows the code may use it

  • One-time-use. If the voucher code has a discount amount that is greater than the total payment due, the unused amount is not retained.

  • Limit of one voucher may be applied per payment

  • Vouchers may not be used to purchase other types of vouchers

  • Discount Codes are not attached to any specific line item on a payment. Reversing a Voucher will not automatically mark a Payment as "unpaid". There is no direct link between a used Voucher and any specific portion of a Payment. (See /wiki/spaces/DOCS/pages/361824293)