diff --git a/CHANGELOG.md b/CHANGELOG.md index e4e216b..6a382b3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ Changelog ========= +2.1.1 +------------------- +- Added field 'accountId' to PayPal. +- PayPal account creation allowed using field 'accountId' which accepts Email, Phone Number, PayPal PayerID. +- Venmo account creation allowed using field 'accountId' which accepts Email, Phone Number, Venmo Handle, Venmo External ID. 2.1.0 ------------------- diff --git a/src/Hyperwallet.js b/src/Hyperwallet.js index 8add7bf..998e375 100644 --- a/src/Hyperwallet.js +++ b/src/Hyperwallet.js @@ -1033,8 +1033,8 @@ export default class Hyperwallet { if (!data.transferMethodCurrency) { throw new Error("transferMethodCurrency is required"); } - if (!data.email) { - throw new Error("email is required"); + if (!data.email && !data.accountId) { + throw new Error("email or accountId is required"); } this.client.doPost(`users/${encodeURIComponent(userToken)}/paypal-accounts`, data, {}, callback); } diff --git a/test/Hyperwallet.spec.js b/test/Hyperwallet.spec.js index c46d92b..6c7f23a 100644 --- a/test/Hyperwallet.spec.js +++ b/test/Hyperwallet.spec.js @@ -1996,7 +1996,7 @@ describe("Hyperwallet", () => { expect(() => client.createPayPalAccount("test-user-token", { transferMethodCountry: "test-transferMethodCountry", transferMethodCurrency: "test-transferMethodCurrency", - }, callback)).to.throw("email is required"); + }, callback)).to.throw("email or accountId is required"); }); /** @test {Hyperwallet#createPayPalAccount} */ @@ -2015,6 +2015,22 @@ describe("Hyperwallet", () => { email: "email", }, {}, callback); }); + /** @test {Hyperwallet#createPayPalAccount} */ + it("should do post call to PayPal account endpoint with accountId", () => { + const callback = () => null; + client.createPayPalAccount("test-user-token", { + transferMethodCountry: "test-transferMethodCountry", + transferMethodCurrency: "test-transferMethodCurrency", + accountId: "accountId", + }, callback); + + apiClientSpy.should.have.been.calledOnce(); + apiClientSpy.should.have.been.calledWith("users/test-user-token/paypal-accounts", { + transferMethodCountry: "test-transferMethodCountry", + transferMethodCurrency: "test-transferMethodCurrency", + accountId: "accountId", + }, {}, callback); + }); }); /** @test {Hyperwallet#getPayPalAccount} */