Dwolla V2 Node client.
dwolla-v2
is available on NPM.
npm install dwolla-v2 --save
var Client = require("dwolla-v2").Client;
var dwolla = new Client({
key: process.env.DWOLLA_APP_KEY,
secret: process.env.DWOLLA_APP_SECRET,
environment: "sandbox" // defaults to 'production'
});
Check out our Integrations Authorization Guide.
Once you've created a Client
, you can make requests using the #get
, #post
,
and #delete
methods. These methods return promises containing a response object
detailed in the Responses section.
// GET api.dwolla.com/customers?limit=10&offset=20
dwolla
.get("customers", { limit: 10, offset: 20 })
.then(res => console.log(res.body.total));
// POST api.dwolla.com/resource {"foo":"bar"}
dwolla
.post("customers", {
firstName: "Jane",
lastName: "Doe",
email: "[email protected]"
})
.then(res => console.log(res.headers.get("location")));
// POST api.dwolla.com/resource multipart/form-data foo=...
var body = new FormData();
body.append("file", fs.createReadStream("mclovin.jpg"), {
filename: "mclovin.jpg",
contentType: "image/jpeg",
knownLength: fs.statSync("mclovin.jpg").size
});
body.append("documentType", "license");
dwolla.post(`${customerUrl}/documents`, body);
// DELETE api.dwolla.com/resource
dwolla.delete("resource");
To set additional headers on a request you can pass an object
as the 3rd argument.
For example:
dwolla.post(
"customers",
{ firstName: "John", lastName: "Doe", email: "[email protected]" },
{ "Idempotency-Key": "a52fcf63-0730-41c3-96e8-7147b5d1fb01" }
);
dwolla.get("customers").then(
function(res) {
// res.status => 200
// res.headers => Headers { ... }
// res.body => Object or String depending on response type
},
function(error) {
// when the server return a status >= 400
// error.status => 400
// error.headers => Headers { ... }
// error.body => Object or String depending on response type
}
);
Bug reports and pull requests are welcome on GitHub at https://github.com/Dwolla/dwolla-v2-node.
The gem is available as open source under the terms of the MIT License.
- 3.1.0 Add integrations auth functionality
- 3.0.2 Don't cache token errors
- 3.0.1 Fix token leeway logic
- 3.0.0 Token management changes
- 2.1.0 Update dependencies
- 2.0.1 Update dependencies
- 2.0.0 Change token URLs, update dependencies, remove Node 0.x support.
- 1.3.3 Update lodash to avoid security vulnerability (#25 - Thanks @bold-d!).
- 1.3.2 Strip domain from URLs provided to
token.*
methods. - 1.3.1 Update sandbox URLs from uat => sandbox.
- 1.3.0 Refer to Client id as key.
- 1.2.3 Use Bluebird Promise in Auth to prevent Promise undefined error.
- 1.2.2 Upgrade
node-fetch
dependency to fixform-data
compatibility ([#15][/Dwolla/issues/15]) - 1.2.1 Add support for
verified_account
anddwolla_landing
auth flags - 1.2.0 Reject promises with Errors instead of plain objects (#8)
- 1.1.2 Fix issue uploading files (#4)
- 1.1.1 Handle promises differently to allow all rejections to be handled (#5)