Skip to content

umayr/recurly-js

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Recurly-js

npm Known Vulnerabilities

This is a fork of original node-recurly library by Rob Righter for the recurly recurring billing service.

This library is intended to follow very closely the recurly documentation found at: Recurly Docs

Installation

npm install recurly-js --save

Add a config file to your project that has contents similar to:

module.exports = {
  API_KEY: 'secret',
  SUBDOMAIN:    '[your_account]',
  ENVIRONMENT:  'sandbox',
  DEBUG: false,
  API_VERSION: 2.7 // optional
};

Usage

Using callbacks

var Recurly = require('recurly-js');
var recurly = new Recurly(require('./config'));
recurly.accounts.get('account_code_123', function (errResponse, response) {
})

Or a promises based version

var Recurly = require('recurly-js/promise');
var recurly = new Recurly(require('./config'));
recurly.accounts.get('account_code_123')
  .then(function (response) {})
  .catch(function (errorResponse) {})

For convenience the original callback version of every method is available with Callback suffix

var callback = function () {};

var filter = {
  state: 'active'
};

recurly.subscriptions.listByAccountCallback('account_code_123', callback, filter)

Accounts

http://docs.recurly.com/api/accounts

recurly.accounts.list(callback, filter)
recurly.accounts.create(details, callback)
recurly.accounts.update(accountcode, details, callback) 
recurly.accounts.get(accountcode, callback) 
recurly.accounts.close(accountcode, callback) 
recurly.accounts.reopen(accountcode, callback)
recurly.accounts.notes(accountcode, callback)

Billing Information

http://docs.recurly.com/api/billing-info

recurly.billingInfo.update(accountcode, details, callback) 
recurly.billingInfo.get(accountcode, callback) 
recurly.billingInfo.remove(accountcode, callback) 

Adjustments

http://docs.recurly.com/api/adjustments

recurly.adjustments.list(accountcode, callback)
recurly.adjustments.get(uuid, callback)
recurly.adjustments.create(accountcode, details, callback)
recurly.adjustments.remove(uuid, callback)

Coupons

http://docs.recurly.com/api/coupons

recurly.coupons.list(callback, filter)
recurly.coupons.get(couponcode, callback)
recurly.coupons.create(details, callback)
recurly.coupons.deactivate(couponcode, callback)

Coupon Redemption

http://docs.recurly.com/api/coupons/coupon-redemption

recurly.couponRedemption.redeem(couponcode, details, callback)
recurly.couponRedemption.get(accountcode, callback)
recurly.couponRedemption.remove(accountcode, callback)
recurly.couponRedemption.getByInvoice(invoicenumber, callback) // Deprecated
recurly.couponRedemption.getAllByInvoice(invoicenumber, callback)

Invoices

http://docs.recurly.com/api/invoices

recurly.invoices.list(callback, filter)
recurly.invoices.listByAccount(accountcode, callback, filter)
recurly.invoices.get(invoicenumber, callback)
recurly.invoices.create(accountcode, details, callback)
recurly.invoices.preview(accountcode, callback)
recurly.invoices.refundLineItems(invoicenumber, details, callback)
recurly.invoices.refundOpenAmount(invoicenumber, details, callback)
recurly.invoices.markSuccessful(invoicenumber, callback)
recurly.invoices.markFailed(invoicenumber, callback)
recurly.invoices.enterOfflinePayment(invoicenumber, details, callback)

Special pdf method - callback will contain a pdf document as Buffer You should send the buffer to the client with content type of application/pdf

recurly.invoices.retrievePdf(invoicenumber, details, callback)

Subscriptions

http://docs.recurly.com/api/subscriptions

recurly.subscriptions.list(callback, filter) 
recurly.subscriptions.listByAccount(accountcode, callback, filter) 
recurly.subscriptions.get(uuid, callback) 
recurly.subscriptions.create(details, callback) 
recurly.subscriptions.preview(details, callback) 
recurly.subscriptions.update(uuid, details, callback) 
recurly.subscriptions.updateNotes(uuid, details, callback)
recurly.subscriptions.updatePreview(uuid, details, callback)
recurly.subscriptions.cancel(uuid, callback) 
recurly.subscriptions.reactivate(uuid, callback) 
recurly.subscriptions.terminate(uuid, refundType, callback) 
recurly.subscriptions.postpone(uuid, nextRenewalDate, callback) 

Subscription Plans

http://docs.recurly.com/api/plans

recurly.plans.list(callback, filter) 
recurly.plans.get(plancode, callback) 
recurly.plans.create(details, callback)
recurly.plans.update(plancode, details, callback)
recurly.plans.remove(plancode, callback)

Plan Add-ons

http://docs.recurly.com/api/plans/add-ons

recurly.planAddons.list(plancode, callback, filter) 
recurly.planAddons.get(plancode, addoncode, callback) 
recurly.planAddons.create(plancode, details, callback)
recurly.planAddons.update(plancode, addoncode, details, callback)
recurly.planAddons.remove(plancode, addoncode, callback)

Purchases

https://dev.recurly.com/docs/create-purchase

recurly.purchases.create(details, callback)

The purchase endpoint requires API version v2.6. Creating multiple subscriptions requires API v2.8, and some extra feature flags enabled. Contact Recurly support for more details.

Transactions

http://docs.recurly.com/api/transactions

recurly.transactions.list(callback, filter) 
recurly.transactions.listByAccount(accountcode, callback, filter) 
recurly.transactions.get(id, callback) 
recurly.transactions.create(details, callback) 
recurly.transactions.refund(id, callback, amount) 

Usage Records

https://dev.recurly.com/docs/usage-record-object

recurly.usageRecords.list(subscription_uuid, add_on_code, callback, filter) 
recurly.usageRecords.lookup(subscription_uuid, add_on_code, usage_id, callback) 
recurly.usageRecords.log(subscription_uuid, add_on_code, details, callback) 
recurly.usageRecords.update(subscription_uuid, add_on_code, usage_id, details, callback) 
recurly.usageRecords.delete(subscription_uuid, add_on_code, usage_id, callback) 

Custom API calls

var options = {
  url: '/v2/accounts/' + account_code + '/invoices',
  method: 'POST',
  headers: {
    "My-Custom_header": "Value"
  },
  bodyRoot: 'invoice', // xml root element
  body: {} // content to convert to xml using js2xmlparser
};

recurly.api(options, callback)

Maintainers

Thodoris Greasidis
Thodoris Greasidis

Umayr Shahid
Umayr Shahid

About

A node.js library for the Recurly.com api

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%