DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/voucher-code-generator package

1.3.0 • Public • Published

Coupon Code Generator

Generate unique, random, and hard to guess coupon / voucher codes. Use cases: promo codes, loyalty coupons, gift vouchers, in-app purchases, referral links

This library originates from Voucherify.


Voucherify - programmable building blocks for coupon, referral, and loyalty programs.

Our developer friendly, API-first platform helps developers integrate digital promotions across any marketing channel or customer touchpoint - eventually giving full control over campaigns back to the marketing team.

Why Voucherify?

  • RESTful API with pre-built client libraries and comprehensive documentation
  • Configurable webhooks allow you to integrate Voucherify with any API service out there
  • Get real-time visibility into every change in your system with monitoring & logs
  • Explore the possibilities with dozens of working demos and test mode
  • Livechat & Slack support

See the full documentation - https://docs.voucherify.io


In Node.js

Install with npm:

$ npm install --save voucher-code-generator

Include with require:

var voucher_codes = require('voucher-code-generator');

In a browser

<script src="voucher_codes.js"></script>


Generate 5 codes, each 8 characters long:

    length: 8,
    count: 5

Sample result: ["FR6bwx1q", "ByamOdWV", "7roFwfQs", "rmWlwvll", "pgih5eAB"]


Default charset is alphanumeric (numbers and letters). However, you can specify your own charset:

    length: 6,
    count: 3,
    charset: "0123456789"

Sample result: ["386525", "676442", "019075"]

You can also use one of the predefined charsets by calling voucher_codes.charset(name).

name charset
"numbers" "0123456789"
"alphabetic" "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
"alphanumeric" "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"

For example:

    length: 5,
    count: 4,
    charset: voucher_codes.charset("alphabetic")

Result: ["odghy", "kZEYc", "eOTCl", "wVCzD"]

Prefix and Postfix

You can optionally surround each generated code with a prefix and/or postfix.

For instance:

    prefix: "promo-",
    postfix: "-2015"

Result: ["promo-WZ4x1t3U-2015"]


Codes may follow a specified pattern. Use hash (#) as a placeholder for random characters. Notice that if pattern is specified then length is ignored.


    pattern: "##-###-##",

Result: ["P7-ofW-Ka"]

Infeasible configs

There exist some configs that are not feasible. For example it's not possible to generate 1000 codes if you want your codes to be 2 characters long and consisting only of numbers. Voucher code generator detects such cases and throws an error "Not possible to generate requested number of codes.".

try {
        count: 1000,
        length: 2,
        charset: "0123456789"
catch (e) {
    console.log("Sorry, not possible.");

Sequential code

It is possible to generate a specific code from the pool of all possible codes for a config using a sequenceOffset parameter. The offset must be greater than equal 0, otherwise the first possible combination will be returned.
The offset must be less than the number of maximum combinations for a config, otherwise the last possible combination will be returned. It is possible to generate a series of codes starting from sequenceOffset by additionally using count config parameter.

var sequenceOffset = 52;

    count: 3,
    length: 2,
    charset: "0123456789"
}, sequenceOffset);

Result: ["52", "53", "54"]

Config reference

attribute default value description
length 8 Number of characters in a generated code (excluding prefix and postfix)
count 1 Number of codes generated.
charset alphanumeric Characters that can appear in the code.
prefix "" A text appended before the code.
postfix "" A text appended after the code.
pattern "########" A pattern for codes where hashes (#) will be replaced with random characters.


Install dependencies:

npm install

Run tests:

npm run test


Code released under the MIT license.

Package Sidebar


npm i voucher-code-generator

Weekly Downloads






Unpacked Size

22.4 kB

Total Files


Last publish


  • rspective