@addme/clevertap-coupons
v2.2.0
Published
JavaScript/TypeScript client for CleverTap Coupon APIs — works in any Node.js project
Maintainers
Readme
@addme/clevertap-coupons
JavaScript/TypeScript client for CleverTap Coupon APIs.
Zero dependencies. Works in any Node.js project — Express, Fastify, plain scripts, TypeScript, or JavaScript.
Requires Node.js 18+ (uses native fetch).
Install
npm install @addme/clevertap-couponsJavaScript (CommonJS)
const {
createCleverTapCoupons,
CleverTapCouponsError,
} = require('@addme/clevertap-coupons');
const coupons = createCleverTapCoupons({
accountId: process.env.CLEVERTAP_ACCOUNT_ID,
passcode: process.env.CLEVERTAP_PASSCODE,
region: 'eu1',
});
async function main() {
try {
const result = await coupons.validateCoupon(
{ identity: 'user123' },
{
couponCode: 'FLAT500',
order: {
orderId: 'order12345',
saleAmount: 101,
items: [{ productId: '123456', unitPrice: 300, quantity: 3 }],
},
},
);
console.log(result);
} catch (error) {
if (error instanceof CleverTapCouponsError) {
console.error(error.message, error.statusCode, error.clevertap);
}
}
}
main();JavaScript / TypeScript (ES modules)
import { createCleverTapCoupons } from '@addme/clevertap-coupons';
const coupons = createCleverTapCoupons({
accountId: process.env.CLEVERTAP_ACCOUNT_ID,
passcode: process.env.CLEVERTAP_PASSCODE,
region: 'eu1',
});
await coupons.fetchCoupons({ identity: 'user123' }, { order: { orderId: 'o1', items: [] } });One-off calls (no setup object)
const { validateCoupon } = require('@addme/clevertap-coupons');
const config = {
accountId: process.env.CLEVERTAP_ACCOUNT_ID,
passcode: process.env.CLEVERTAP_PASSCODE,
region: 'eu1',
};
await validateCoupon(config, { identity: 'user123' }, { couponCode: 'FLAT500', order: { ... } });API
| Export | Description |
|--------|-------------|
| createCleverTapCoupons(config) | Returns { fetchCoupons, validateCoupon, applyCoupon } |
| fetchCoupons(config, query, body?) | Standalone fetch |
| validateCoupon(config, query, body) | Standalone validate |
| applyCoupon(config, query, body) | Standalone redeem/revert |
| CleverTapCouponsError | Error with statusCode and clevertap details |
NestJS / Express
This package is framework-agnostic. Wire it into your framework of choice:
- NestJS — wrap
createCleverTapCoupons()in a provider/module in your app - Express — call functions inside route handlers
- Scripts — use directly with
node script.js
