Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Mangopay/mangopay2-nodejs-sdk
Node.js SDK for MANGOPAY
https://github.com/Mangopay/mangopay2-nodejs-sdk
api fintech js mangopay payments wallets
Last synced: 7 days ago
JSON representation
Node.js SDK for MANGOPAY
- Host: GitHub
- URL: https://github.com/Mangopay/mangopay2-nodejs-sdk
- Owner: Mangopay
- License: mit
- Created: 2016-03-29T08:56:17.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2024-04-30T13:55:10.000Z (7 months ago)
- Last Synced: 2024-05-02T07:03:56.297Z (7 months ago)
- Topics: api, fintech, js, mangopay, payments, wallets
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/mangopay2-nodejs-sdk
- Size: 1.17 MB
- Stars: 50
- Watchers: 14
- Forks: 36
- Open Issues: 31
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
Mangopay Node.js SDK [![Build Status](https://travis-ci.org/Mangopay/mangopay2-nodejs-sdk.svg?branch=master)](https://travis-ci.org/Mangopay/mangopay2-nodejs-sdk)
=================================================
MangopaySDK is a Node.js client library to work with [Mangopay REST API](http://docs.mangopay.com/api-references/).Installation
-------------------------------------------------
Install the module via npmnpm install mangopay2-nodejs-sdk --save
Usage inside your app
var mangopay = require('mangopay2-nodejs-sdk');
var api = new mangopay({
clientId: 'your_client_id',
clientApiKey: 'your_client_api_key',
// Set the right production API url. If testing, omit the property since it defaults to sandbox URL
baseUrl: 'https://api.mangopay.com'
});api.Users.create(...)
Supported options
-------------------------------------------------
| Option | Default value | Description |
| -------- | ----------- | ----------- |
|clientId |null | API Client Id|
|clientApiKey|null| API Client Api Key|
|baseUrl|"https://api.sandbox.mangopay.com"| API Base URL. The default value points to sandbox. Production is 'https://api.mangopay.com'|
|debugMode|false| Active debugging|
|logClass|```function() {console.log(arguments)}```|Log function to be used for debug|
|connectionTimeout|30000|Set the connection timeout limit (in milliseconds)|
|responseTimeout|80000|Set the response timeout limit (in milliseconds)|
|apiVersion|'v2.01'|API Version|
|errorHandler|```function(options, err) {console.error(options, err)}```|Set a custom error handlerDocumentation
-------------------------------------------------
[Github Full Node.js SDK Documentation](docs/README.md) is located in ``/docs`` folder.
You can also access [API References on our website](https://docs.mangopay.com/endpoints/).License
-------------------------------------------------
MangopaySDK is distributed under MIT license, see the [LICENSE file](LICENSE).Contacts
-------------------------------------------------
Report bugs or suggest features using
[issue tracker on GitHub](https://github.com/Mangopay/mangopay2-nodejs-sdk/issues).Account creation
-------------------------------------------------
You can get yourself a free sandbox account or sign up for a production account by [registering on the Mangopay site](https://www.mangopay.com/start/) (note that validation of your production account involves several steps, so think about doing it in advance of when you actually want to go live).### Creating a user
#### Using a hash of properties:
```ts
mangopay.Users.create({
"FirstName": "Victor",
"LastName": "Hugo",
"Address": "1 rue des Misérables, Paris",
"Birthday": 1300186358,
"Nationality": "FR",
"CountryOfResidence": "FR",
"Occupation": "Writer",
"IncomeRange": "6",
"ProofOfIdentity": null,
"ProofOfAddress": null,
"PersonType": "NATURAL",
"Email": "[email protected]",
"Tag": "custom tag",
}, function(model) {
// User created - using callback
}).then(function(model){
// User created - using promise
});
```#### Using Mangopay SDK pre-defined models:
```ts
var myUser = new api.models.UserLegal({
Name: 'MangoPay',
Email: '[email protected]',
LegalPersonType: 'BUSINESS',
LegalRepresentativeFirstName: 'Mango',
LegalRepresentativeLastName: 'Pay',
LegalRepresentativeEmail: '[email protected]',
HeadquartersAddress: new api.models.Address({
AddressLine1: "4101 Reservoir Rd NW",
AddressLine2: "",
City: "Washington",
Region: "District of Columbia",
PostalCode: "20007",
Country: "US"
}),
LegalRepresentativeBirthday: 1300186358,
LegalRepresentativeNationality: 'FR',
LegalRepresentativeCountryOfResidence: 'FR',
CompanyNumber: 123456789,
Tag: 'custom tag'
});api.Users.create(myUser).then(function(){
// Output the created user data to console
console.log(myUser.Name + ' user created at ' + myUser.CreationDate);
});
```#### Promise vs Callback
Mangopay Node.js SDK supports both callback and promise approach.
Here is how they can be implemented :```ts
api.Service.method(... , function(data, response, err){
// Callback method
})api.Service.method(...).then(function(data) {
// Promise function called
}, function(error) {
//exception
})
```### Pagination / Filtering
In order to [paginate or filter](https://docs.mangopay.com/guide/lists-pagination-management) results,
we can use ``options.parameters`` to specify these options:
```ts
api.Transactions.getAll({
parameters: {
// Pagination
per_page: 2,
page: 2,// Filters
BeforeDate: 1414000367,
AfterDate: 1414000367,
Nature: REGULAR,
Status: FAILED,
Type: TRANSFER
}
}
```### Reading server response headers
For [reading the server response headers](examples/readResponseHeaders.js) we can use ``options.resolveWithFullResponse: true``
```ts
api.Users.getAll(null, {
parameters: {
per_page: 1
},
resolveWithFullResponse: true
}).then(function(response){
// Read pages count
console.log(response.headers['x-number-of-pages']);// Read response body
console.log(response.body);
});
```Sample usage of Mangopay SDK installed with npm in a Node.js project
-------------------------------------------------
Don't forget to check examples folder !Contributing
-------------------------------------------------
npm start // installs dependencies and global mocha for testing and jsdox for documentation
npm test // runs the mocha tests
npm run-script documentation // update documentation using jsdox, make sure to have it installed globallyUnit Tests
-------------------------------------------------
Mocha tests are placed under ``/test/`` folder. To run the tests, make sure you have all dependencies installed.
Check Contributing section for details.