Library for accessing the api for the Recurly recurring billing service.
npm install recurly-nodejsThis 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
npm install recurly-nodejs --save
`Add a config file to your project that has contents similar to:
`javascript
module.exports = {
API_KEY: 'secret',
HOST: 'recurly.com',
PORT: 443,
SUBDOMAIN: '[your_account]',
ENVIRONMENT: 'sandbox',
DEBUG: false,
API_VERSION: 2.7 // optional
};
`Usage
#### Using callbacks
`javascript
var Recurly = require('recurly-nodejs');
var recurly = new Recurly(require('./config'));
recurly.accounts.get('account_code_123', function (errResponse, response) {
})
`#### Or a promises based version
`javascript
var Recurly = require('recurly-nodejs/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
`javascript
var callback = function () {};var filter = {
state: 'active'
};
recurly.subscriptions.listByAccountCallback('account_code_123', callback, filter)
`$3
> http://docs.recurly.com/api/accounts`javascript
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)
`$3
> http://docs.recurly.com/api/billing-info`javascript
recurly.billingInfo.update(accountcode, details, callback)
recurly.billingInfo.get(accountcode, callback)
recurly.billingInfo.remove(accountcode, callback)
`$3
> http://docs.recurly.com/api/adjustments
`javascript
recurly.adjustments.list(accountcode, callback)
recurly.adjustments.get(uuid, callback)
recurly.adjustments.create(accountcode, details, callback)
recurly.adjustments.remove(uuid, callback)
`$3
> http://docs.recurly.com/api/coupons`javascript
recurly.coupons.list(callback, filter)
recurly.coupons.get(couponcode, callback)
recurly.coupons.create(details, callback)
recurly.coupons.deactivate(couponcode, callback)
`$3
> http://docs.recurly.com/api/coupons/coupon-redemption`javascript
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)
`$3
> http://docs.recurly.com/api/invoices`javascript
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`javascript
recurly.invoices.retrievePdf(invoicenumber, details, callback)
`$3
> http://docs.recurly.com/api/subscriptions`javascript
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)
`$3
> http://docs.recurly.com/api/plans`javascript
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)
`$3
> http://docs.recurly.com/api/plans/add-ons`javascript
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)
`$3
> https://dev.recurly.com/docs/create-purchase`javascript
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.
$3
> http://docs.recurly.com/api/transactions`javascript
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)
`$3
> https://dev.recurly.com/docs/usage-record-object`javascript
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)
`$3
`javascript
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)
``