0.11.2 • Public • Published

Node.js Cheddar API wrapper

This module will simplify the process of integrating Cheddar into your existing node.js apps.

Table of Contents


npm install cheddar

Also install the peer dependencies:

npm install request

Basic usage

import Cheddar from 'cheddar';
const cheddar = new Cheddar({
  username: "",
  password: "passwordExample",
  productCode: "PRODUCT_CODE",
  .then(plans => console.log(plans))
  .catch(err => console.error(err));
// When inside an async function, you can simply await any Cheddar function
const plans = await cheddar.getPlans();

Or using ES5:

var Cheddar = require("cheddar");
var cheddar = new Cheddar({
  username: "",
  password: "passwordExample",
  productCode: "PRODUCT_CODE",
  .then(function (plans) { console.log(plans); })
  .catch(function (err) { console.error(err); });

Implemented methods

  • getPlans()
  • getPlan(planCode)
  • getCustomers([query])
  • getCustomer(customerCode)
  • searchCustomers([query])
  • createCustomer(customerData)
  • editCustomerAndSubscription(customerData)
  • editCustomer(customerCode, customerData)
  • editSubscription(customerCode, customerData)
  • deleteCustomer(customerCode)
  • cancelSubscription(customerCode)
  • addItem(customerCode, itemCode, [amount])
  • removeItem(customerCode, itemCode, [amount])
  • setItemQuantity(customerCode, itemCode, amount)
  • addCustomCharge(customerCode, chargeCode, quantity, amount, description)
  • deleteCustomCharge(customerCode, chargeId)
  • resendInvoiceEmail(idOrNumber)
  • oneTimeInvoice(customerCode, invoiceData)
  • getPromotions([query])
  • getPromotion(promotionCode)

All methods return a promise with the requested data in JSON format.

Using a proxy

You might want to set up a proxy to communicate with Cheddar. Cheddar blocks most of the Heroku servers (a range of AWS IPs):

Recently, a large block of IPs on the Heroku platform were listed by DenyHosts due to a spike in SSH brute force attacks coming from the Heroku platform. In short, you need to be coming from an IP that isn't listed.

A proxy url is easily set with the CHEDDAR_PROXY_URL environment variable:

CHEDDAR_PROXY_URL= node your-server.js

Running tests

First add a config file (config.json) with all your Cheddar credentials:

  "username": "EMAIL",
  "password": "PASSWORD",
  // User either productCode OR productId
  "productCode": "PRODUCTCODE",
  "productId": "PRODUCTID",
  "planCode": "PLANCODE",
  "itemCode": "ITEMCODE",
  "promoCode": "PROMOCODE"

Now you can install all dependencies and run the tests:

npm install
npm test

WARNING: Only run the tests on a development account to prevent any side effects in production

NOTE: Not all API calls have been fully tested yet.


Original work was done by Kevin Smith.

Package Sidebar


npm i cheddar

Weekly Downloads






Last publish


  • jamiter