Nauseating Pumpkin Mush


    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.


    npm i cheddar

    DownloadsWeekly Downloads






    Last publish


    • jamiter