diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2faccd80..e3d4af1d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,13 @@
+
+# [2.4.0](https://github.com/bigcommerce-labs/bigpay-client-js/compare/2.3.0...2.4.0) (2017-09-20)
+
+
+### Features
+
+* **Payment Mappers:** map BT PayPal Credit to braintree ([44e3183](https://github.com/bigcommerce-labs/bigpay-client-js/commit/44e3183))
+
+
+
# [2.3.0](https://github.com/bigcommerce-labs/bigpay-client-js/compare/2.2.0...2.3.0) (2017-09-04)
diff --git a/lib/payment/payment-method-ids.js b/lib/payment/payment-method-ids.js
index f2ef205d..ccc13bb1 100644
--- a/lib/payment/payment-method-ids.js
+++ b/lib/payment/payment-method-ids.js
@@ -5,5 +5,6 @@ Object.defineProperty(exports, "__esModule", {
});
var BRAINTREE = exports.BRAINTREE = 'braintree';
var BRAINTREE_PAYPAL = exports.BRAINTREE_PAYPAL = 'braintreepaypal';
+var BRAINTREE_PAYPAL_CREDIT = exports.BRAINTREE_PAYPAL_CREDIT = 'braintreepaypalcredit';
var BRAINTREE_VISACHECKOUT = exports.BRAINTREE_VISACHECKOUT = 'braintreevisacheckout';
//# sourceMappingURL=payment-method-ids.js.map
\ No newline at end of file
diff --git a/lib/payment/payment-method-ids.js.map b/lib/payment/payment-method-ids.js.map
index 5de6076a..95965363 100644
--- a/lib/payment/payment-method-ids.js.map
+++ b/lib/payment/payment-method-ids.js.map
@@ -1 +1 @@
-{"version":3,"sources":["../../src/payment/payment-method-ids.js"],"names":["BRAINTREE","BRAINTREE_PAYPAL","BRAINTREE_VISACHECKOUT"],"mappings":";;;;;AAAO,IAAMA,gCAAY,WAAlB;AACA,IAAMC,8CAAmB,iBAAzB;AACA,IAAMC,0DAAyB,uBAA/B","file":"payment-method-ids.js","sourcesContent":["export const BRAINTREE = 'braintree';\nexport const BRAINTREE_PAYPAL = 'braintreepaypal';\nexport const BRAINTREE_VISACHECKOUT = 'braintreevisacheckout';\n"]}
\ No newline at end of file
+{"version":3,"sources":["../../src/payment/payment-method-ids.js"],"names":["BRAINTREE","BRAINTREE_PAYPAL","BRAINTREE_PAYPAL_CREDIT","BRAINTREE_VISACHECKOUT"],"mappings":";;;;;AAAO,IAAMA,gCAAY,WAAlB;AACA,IAAMC,8CAAmB,iBAAzB;AACA,IAAMC,4DAA0B,uBAAhC;AACA,IAAMC,0DAAyB,uBAA/B","file":"payment-method-ids.js","sourcesContent":["export const BRAINTREE = 'braintree';\nexport const BRAINTREE_PAYPAL = 'braintreepaypal';\nexport const BRAINTREE_PAYPAL_CREDIT = 'braintreepaypalcredit';\nexport const BRAINTREE_VISACHECKOUT = 'braintreevisacheckout';\n"]}
\ No newline at end of file
diff --git a/lib/payment/payment-method-mappers/payment-method-id-mapper.js b/lib/payment/payment-method-mappers/payment-method-id-mapper.js
index 868e5777..1ce86266 100644
--- a/lib/payment/payment-method-mappers/payment-method-id-mapper.js
+++ b/lib/payment/payment-method-mappers/payment-method-id-mapper.js
@@ -6,12 +6,27 @@ Object.defineProperty(exports, "__esModule", {
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
-var _paymentMethodIds = require('../payment-method-ids');
-
var _paymentMethodTypes = require('../payment-method-types');
+var _paymentMethodIds = require('../payment-method-ids');
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+/**
+ * @param {string} id
+ * @return {Boolean}
+ */
+function isBraintreePaymentMethod(id) {
+ switch (id) {
+ case _paymentMethodIds.BRAINTREE_PAYPAL:
+ case _paymentMethodIds.BRAINTREE_PAYPAL_CREDIT:
+ case _paymentMethodIds.BRAINTREE_VISACHECKOUT:
+ return true;
+ default:
+ return false;
+ }
+}
+
var PaymentMethodIdMapper = function () {
function PaymentMethodIdMapper() {
_classCallCheck(this, PaymentMethodIdMapper);
@@ -33,7 +48,7 @@ var PaymentMethodIdMapper = function () {
id = paymentMethod.gateway;
}
- if (id === _paymentMethodIds.BRAINTREE_PAYPAL || id === _paymentMethodIds.BRAINTREE_VISACHECKOUT) {
+ if (isBraintreePaymentMethod(id)) {
return _paymentMethodIds.BRAINTREE;
}
diff --git a/lib/payment/payment-method-mappers/payment-method-id-mapper.js.map b/lib/payment/payment-method-mappers/payment-method-id-mapper.js.map
index 05cea74a..00917025 100644
--- a/lib/payment/payment-method-mappers/payment-method-id-mapper.js.map
+++ b/lib/payment/payment-method-mappers/payment-method-id-mapper.js.map
@@ -1 +1 @@
-{"version":3,"sources":["../../../src/payment/payment-method-mappers/payment-method-id-mapper.js"],"names":["PaymentMethodIdMapper","paymentMethod","id","method","gateway"],"mappings":";;;;;;;;AAAA;;AACA;;;;IAEqBA,qB;;;;;;;;;AAQjB;;;;gCAIQC,a,EAAe;AAAA,gBACbC,EADa,GACND,aADM,CACbC,EADa;;;AAGnB,gBAAID,cAAcE,MAAd,qCAAJ,EAA2C;AACvCD,qBAAKD,cAAcG,OAAnB;AACH;;AAED,gBAAIF,6CAA2BA,+CAA/B,EAA8D;AAC1D;AACH;;AAED,mBAAOA,EAAP;AACH;;;;AAvBD;;;iCAGgB;AACZ,mBAAO,IAAIF,qBAAJ,EAAP;AACH;;;;;;kBANgBA,qB","file":"payment-method-id-mapper.js","sourcesContent":["import { BRAINTREE, BRAINTREE_PAYPAL, BRAINTREE_VISACHECKOUT } from '../payment-method-ids';\nimport { MULTI_OPTION } from '../payment-method-types';\n\nexport default class PaymentMethodIdMapper {\n /**\n * @returns {PaymentMethodIdMapper}\n */\n static create() {\n return new PaymentMethodIdMapper();\n }\n\n /**\n * @param {PaymentMethod} paymentMethod\n * @returns {string}\n */\n mapToId(paymentMethod) {\n let { id } = paymentMethod;\n\n if (paymentMethod.method === MULTI_OPTION) {\n id = paymentMethod.gateway;\n }\n\n if (id === BRAINTREE_PAYPAL || id === BRAINTREE_VISACHECKOUT) {\n return BRAINTREE;\n }\n\n return id;\n }\n}\n"]}
\ No newline at end of file
+{"version":3,"sources":["../../../src/payment/payment-method-mappers/payment-method-id-mapper.js"],"names":["isBraintreePaymentMethod","id","PaymentMethodIdMapper","paymentMethod","method","gateway"],"mappings":";;;;;;;;AAAA;;AACA;;;;AAOA;;;;AAIA,SAASA,wBAAT,CAAkCC,EAAlC,EAAsC;AAClC,YAAQA,EAAR;AACA;AACA;AACA;AACI,mBAAO,IAAP;AACJ;AACI,mBAAO,KAAP;AANJ;AAQH;;IAEoBC,qB;;;;;;;;;AAQjB;;;;gCAIQC,a,EAAe;AAAA,gBACbF,EADa,GACNE,aADM,CACbF,EADa;;;AAGnB,gBAAIE,cAAcC,MAAd,qCAAJ,EAA2C;AACvCH,qBAAKE,cAAcE,OAAnB;AACH;;AAED,gBAAIL,yBAAyBC,EAAzB,CAAJ,EAAkC;AAC9B;AACH;;AAED,mBAAOA,EAAP;AACH;;;;AAvBD;;;iCAGgB;AACZ,mBAAO,IAAIC,qBAAJ,EAAP;AACH;;;;;;kBANgBA,qB","file":"payment-method-id-mapper.js","sourcesContent":["import { MULTI_OPTION } from '../payment-method-types';\nimport {\n BRAINTREE,\n BRAINTREE_PAYPAL,\n BRAINTREE_PAYPAL_CREDIT,\n BRAINTREE_VISACHECKOUT,\n} from '../payment-method-ids';\n\n/**\n * @param {string} id\n * @return {Boolean}\n */\nfunction isBraintreePaymentMethod(id) {\n switch (id) {\n case BRAINTREE_PAYPAL:\n case BRAINTREE_PAYPAL_CREDIT:\n case BRAINTREE_VISACHECKOUT:\n return true;\n default:\n return false;\n }\n}\n\nexport default class PaymentMethodIdMapper {\n /**\n * @returns {PaymentMethodIdMapper}\n */\n static create() {\n return new PaymentMethodIdMapper();\n }\n\n /**\n * @param {PaymentMethod} paymentMethod\n * @returns {string}\n */\n mapToId(paymentMethod) {\n let { id } = paymentMethod;\n\n if (paymentMethod.method === MULTI_OPTION) {\n id = paymentMethod.gateway;\n }\n\n if (isBraintreePaymentMethod(id)) {\n return BRAINTREE;\n }\n\n return id;\n }\n}\n"]}
\ No newline at end of file
diff --git a/lib/payment/v1/payment-mappers/payment-mapper.js b/lib/payment/v1/payment-mappers/payment-mapper.js
index ef306649..664e843b 100644
--- a/lib/payment/v1/payment-mappers/payment-mapper.js
+++ b/lib/payment/v1/payment-mappers/payment-mapper.js
@@ -115,7 +115,8 @@ var PaymentMapper = function () {
month: payment.ccExpiry ? (0, _utils.toNumber)(payment.ccExpiry.month) : null,
number: payment.ccNumber,
verification_value: payment.ccCvv,
- year: payment.ccExpiry ? (0, _utils.toNumber)(payment.ccExpiry.year) : null
+ year: payment.ccExpiry ? (0, _utils.toNumber)(payment.ccExpiry.year) : null,
+ customer_code: payment.ccCustomerCode
});
}
}]);
diff --git a/lib/payment/v1/payment-mappers/payment-mapper.js.map b/lib/payment/v1/payment-mappers/payment-mapper.js.map
index 63f9b181..6191a734 100644
--- a/lib/payment/v1/payment-mappers/payment-mapper.js.map
+++ b/lib/payment/v1/payment-mappers/payment-mapper.js.map
@@ -1 +1 @@
-{"version":3,"sources":["../../../../src/payment/v1/payment-mappers/payment-mapper.js"],"names":["PaymentMapper","paymentMethodIdMapper","create","data","order","orderMeta","payment","paymentMethod","quoteMeta","payload","device_info","request","deviceSessionId","device","deviceFingerprint","fingerprint_id","gateway","mapToId","notify_url","callbackUrl","return_url","returnUrl","nonce","credit_card_token","token","credit_card","mapToCreditCard","account_name","ccName","month","ccExpiry","number","ccNumber","verification_value","ccCvv","year"],"mappings":";;;;;;;;AAAA;;;;AACA;;;;AACA;;;;;;IAEqBA,a;;;;AACjB;;;;iCAIgB;AACZ,gBAAMC,wBAAwB,gCAAsBC,MAAtB,EAA9B;;AAEA,mBAAO,IAAIF,aAAJ,CAAkBC,qBAAlB,CAAP;AACH;;AAED;;;;;;;AAIA,2BAAYA,qBAAZ,EAAmC;AAAA;;AAC/B;;;;AAIA,aAAKA,qBAAL,GAA6BA,qBAA7B;AACH;;AAED;;;;;;;;qCAIaE,I,EAAM;AAAA,8BAOXA,IAPW,CAEXC,KAFW;AAAA,gBAEXA,KAFW,+BAEH,EAFG;AAAA,kCAOXD,IAPW,CAGXE,SAHW;AAAA,gBAGXA,SAHW,mCAGC,EAHD;AAAA,gCAOXF,IAPW,CAIXG,OAJW;AAAA,gBAIXA,OAJW,iCAID,EAJC;AAAA,sCAOXH,IAPW,CAKXI,aALW;AAAA,gBAKXA,aALW,uCAKK,EALL;AAAA,kCAOXJ,IAPW,CAMXK,SANW;AAAA,gBAMXA,SANW,mCAMC,EAND;;;AASf,gBAAMC,UAAU;AACZC,6BAAaF,UAAUG,OAAV,GAAoBH,UAAUG,OAAV,CAAkBC,eAAtC,GAAwD,IADzD;AAEZC,wBAAQR,UAAUS,iBAAV,GAA8B,EAAEC,gBAAgBV,UAAUS,iBAA5B,EAA9B,GAAgF,IAF5E;AAGZE,yBAAS,KAAKf,qBAAL,CAA2BgB,OAA3B,CAAmCV,aAAnC,CAHG;AAIZW,4BAAYd,MAAMe,WAJN;AAKZC,4BAAYb,cAAcc,SAAd,KAA4BjB,MAAME,OAAN,GAAgBF,MAAME,OAAN,CAAce,SAA9B,GAA0C,IAAtE;AALA,aAAhB;;AAQA,gBAAMC,QAAQhB,QAAQgB,KAAR,IAAiBf,cAAce,KAA7C;;AAEA,gBAAIA,KAAJ,EAAW;AACP,4CAAab,OAAb,EAAsB;AAClBc,uCAAmB;AACfC,+BAAOF;AADQ;AADD,iBAAtB;AAKH,aAND,MAMO;AACH,4CAAab,OAAb,EAAsB;AAClBgB,iCAAa,KAAKC,eAAL,CAAqBvB,IAArB;AADK,iBAAtB;AAGH;;AAED,mBAAO,oBAAQM,OAAR,CAAP;AACH;;AAED;;;;;;;;wCAKgBN,I,EAAM;AAAA,iCACOA,IADP,CACVG,OADU;AAAA,gBACVA,OADU,kCACA,EADA;;;AAGlB,mBAAO,oBAAQ;AACXqB,8BAAcrB,QAAQsB,MADX;AAEXC,uBAAOvB,QAAQwB,QAAR,GAAmB,qBAASxB,QAAQwB,QAAR,CAAiBD,KAA1B,CAAnB,GAAsD,IAFlD;AAGXE,wBAAQzB,QAAQ0B,QAHL;AAIXC,oCAAoB3B,QAAQ4B,KAJjB;AAKXC,sBAAM7B,QAAQwB,QAAR,GAAmB,qBAASxB,QAAQwB,QAAR,CAAiBK,IAA1B,CAAnB,GAAqD;AALhD,aAAR,CAAP;AAOH;;;;;;kBA5EgBnC,a","file":"payment-mapper.js","sourcesContent":["import objectAssign from 'object-assign';\nimport PaymentMethodIdMapper from '../../payment-method-mappers/payment-method-id-mapper';\nimport { omitNil, toNumber } from '../../../common/utils';\n\nexport default class PaymentMapper {\n /**\n * @param {PaymentMethodIdMapper} paymentMethodIdMapper\n * @returns {PaymentMapper}\n */\n static create() {\n const paymentMethodIdMapper = PaymentMethodIdMapper.create();\n\n return new PaymentMapper(paymentMethodIdMapper);\n }\n\n /**\n * @param {PaymentMethodIdMapper} paymentMethodIdMapper\n * @returns {void}\n */\n constructor(paymentMethodIdMapper) {\n /**\n * @private\n * @type {PaymentMethodIdMapper}\n */\n this.paymentMethodIdMapper = paymentMethodIdMapper;\n }\n\n /**\n * @param {PaymentRequestData} data\n * @returns {Object}\n */\n mapToPayment(data) {\n const {\n order = {},\n orderMeta = {},\n payment = {},\n paymentMethod = {},\n quoteMeta = {},\n } = data;\n\n const payload = {\n device_info: quoteMeta.request ? quoteMeta.request.deviceSessionId : null,\n device: orderMeta.deviceFingerprint ? { fingerprint_id: orderMeta.deviceFingerprint } : null,\n gateway: this.paymentMethodIdMapper.mapToId(paymentMethod),\n notify_url: order.callbackUrl,\n return_url: paymentMethod.returnUrl || (order.payment ? order.payment.returnUrl : null),\n };\n\n const nonce = payment.nonce || paymentMethod.nonce;\n\n if (nonce) {\n objectAssign(payload, {\n credit_card_token: {\n token: nonce,\n },\n });\n } else {\n objectAssign(payload, {\n credit_card: this.mapToCreditCard(data),\n });\n }\n\n return omitNil(payload);\n }\n\n /**\n * @private\n * @param {PaymentRequestData} data\n * @returns {Object}\n */\n mapToCreditCard(data) {\n const { payment = {} } = data;\n\n return omitNil({\n account_name: payment.ccName,\n month: payment.ccExpiry ? toNumber(payment.ccExpiry.month) : null,\n number: payment.ccNumber,\n verification_value: payment.ccCvv,\n year: payment.ccExpiry ? toNumber(payment.ccExpiry.year) : null,\n });\n }\n}\n"]}
\ No newline at end of file
+{"version":3,"sources":["../../../../src/payment/v1/payment-mappers/payment-mapper.js"],"names":["PaymentMapper","paymentMethodIdMapper","create","data","order","orderMeta","payment","paymentMethod","quoteMeta","payload","device_info","request","deviceSessionId","device","deviceFingerprint","fingerprint_id","gateway","mapToId","notify_url","callbackUrl","return_url","returnUrl","nonce","credit_card_token","token","credit_card","mapToCreditCard","account_name","ccName","month","ccExpiry","number","ccNumber","verification_value","ccCvv","year","customer_code","ccCustomerCode"],"mappings":";;;;;;;;AAAA;;;;AACA;;;;AACA;;;;;;IAEqBA,a;;;;AACjB;;;;iCAIgB;AACZ,gBAAMC,wBAAwB,gCAAsBC,MAAtB,EAA9B;;AAEA,mBAAO,IAAIF,aAAJ,CAAkBC,qBAAlB,CAAP;AACH;;AAED;;;;;;;AAIA,2BAAYA,qBAAZ,EAAmC;AAAA;;AAC/B;;;;AAIA,aAAKA,qBAAL,GAA6BA,qBAA7B;AACH;;AAED;;;;;;;;qCAIaE,I,EAAM;AAAA,8BAOXA,IAPW,CAEXC,KAFW;AAAA,gBAEXA,KAFW,+BAEH,EAFG;AAAA,kCAOXD,IAPW,CAGXE,SAHW;AAAA,gBAGXA,SAHW,mCAGC,EAHD;AAAA,gCAOXF,IAPW,CAIXG,OAJW;AAAA,gBAIXA,OAJW,iCAID,EAJC;AAAA,sCAOXH,IAPW,CAKXI,aALW;AAAA,gBAKXA,aALW,uCAKK,EALL;AAAA,kCAOXJ,IAPW,CAMXK,SANW;AAAA,gBAMXA,SANW,mCAMC,EAND;;;AASf,gBAAMC,UAAU;AACZC,6BAAaF,UAAUG,OAAV,GAAoBH,UAAUG,OAAV,CAAkBC,eAAtC,GAAwD,IADzD;AAEZC,wBAAQR,UAAUS,iBAAV,GAA8B,EAAEC,gBAAgBV,UAAUS,iBAA5B,EAA9B,GAAgF,IAF5E;AAGZE,yBAAS,KAAKf,qBAAL,CAA2BgB,OAA3B,CAAmCV,aAAnC,CAHG;AAIZW,4BAAYd,MAAMe,WAJN;AAKZC,4BAAYb,cAAcc,SAAd,KAA4BjB,MAAME,OAAN,GAAgBF,MAAME,OAAN,CAAce,SAA9B,GAA0C,IAAtE;AALA,aAAhB;;AAQA,gBAAMC,QAAQhB,QAAQgB,KAAR,IAAiBf,cAAce,KAA7C;;AAEA,gBAAIA,KAAJ,EAAW;AACP,4CAAab,OAAb,EAAsB;AAClBc,uCAAmB;AACfC,+BAAOF;AADQ;AADD,iBAAtB;AAKH,aAND,MAMO;AACH,4CAAab,OAAb,EAAsB;AAClBgB,iCAAa,KAAKC,eAAL,CAAqBvB,IAArB;AADK,iBAAtB;AAGH;;AAED,mBAAO,oBAAQM,OAAR,CAAP;AACH;;AAED;;;;;;;;wCAKgBN,I,EAAM;AAAA,iCACOA,IADP,CACVG,OADU;AAAA,gBACVA,OADU,kCACA,EADA;;;AAGlB,mBAAO,oBAAQ;AACXqB,8BAAcrB,QAAQsB,MADX;AAEXC,uBAAOvB,QAAQwB,QAAR,GAAmB,qBAASxB,QAAQwB,QAAR,CAAiBD,KAA1B,CAAnB,GAAsD,IAFlD;AAGXE,wBAAQzB,QAAQ0B,QAHL;AAIXC,oCAAoB3B,QAAQ4B,KAJjB;AAKXC,sBAAM7B,QAAQwB,QAAR,GAAmB,qBAASxB,QAAQwB,QAAR,CAAiBK,IAA1B,CAAnB,GAAqD,IALhD;AAMXC,+BAAe9B,QAAQ+B;AANZ,aAAR,CAAP;AAQH;;;;;;kBA7EgBrC,a","file":"payment-mapper.js","sourcesContent":["import objectAssign from 'object-assign';\nimport PaymentMethodIdMapper from '../../payment-method-mappers/payment-method-id-mapper';\nimport { omitNil, toNumber } from '../../../common/utils';\n\nexport default class PaymentMapper {\n /**\n * @param {PaymentMethodIdMapper} paymentMethodIdMapper\n * @returns {PaymentMapper}\n */\n static create() {\n const paymentMethodIdMapper = PaymentMethodIdMapper.create();\n\n return new PaymentMapper(paymentMethodIdMapper);\n }\n\n /**\n * @param {PaymentMethodIdMapper} paymentMethodIdMapper\n * @returns {void}\n */\n constructor(paymentMethodIdMapper) {\n /**\n * @private\n * @type {PaymentMethodIdMapper}\n */\n this.paymentMethodIdMapper = paymentMethodIdMapper;\n }\n\n /**\n * @param {PaymentRequestData} data\n * @returns {Object}\n */\n mapToPayment(data) {\n const {\n order = {},\n orderMeta = {},\n payment = {},\n paymentMethod = {},\n quoteMeta = {},\n } = data;\n\n const payload = {\n device_info: quoteMeta.request ? quoteMeta.request.deviceSessionId : null,\n device: orderMeta.deviceFingerprint ? { fingerprint_id: orderMeta.deviceFingerprint } : null,\n gateway: this.paymentMethodIdMapper.mapToId(paymentMethod),\n notify_url: order.callbackUrl,\n return_url: paymentMethod.returnUrl || (order.payment ? order.payment.returnUrl : null),\n };\n\n const nonce = payment.nonce || paymentMethod.nonce;\n\n if (nonce) {\n objectAssign(payload, {\n credit_card_token: {\n token: nonce,\n },\n });\n } else {\n objectAssign(payload, {\n credit_card: this.mapToCreditCard(data),\n });\n }\n\n return omitNil(payload);\n }\n\n /**\n * @private\n * @param {PaymentRequestData} data\n * @returns {Object}\n */\n mapToCreditCard(data) {\n const { payment = {} } = data;\n\n return omitNil({\n account_name: payment.ccName,\n month: payment.ccExpiry ? toNumber(payment.ccExpiry.month) : null,\n number: payment.ccNumber,\n verification_value: payment.ccCvv,\n year: payment.ccExpiry ? toNumber(payment.ccExpiry.year) : null,\n customer_code: payment.ccCustomerCode,\n });\n }\n}\n"]}
\ No newline at end of file
diff --git a/package.json b/package.json
index ddbe42bd..87fc5051 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "bigpay-client",
- "version": "2.3.0",
+ "version": "2.4.0",
"description": "JavaScript client for Bigpay",
"main": "lib/index.js",
"scripts": {