https://github.com/pariola/paystack
Paystack API wrapper
https://github.com/pariola/paystack
api-wrapper nigeria paystack promise
Last synced: 10 days ago
JSON representation
Paystack API wrapper
- Host: GitHub
- URL: https://github.com/pariola/paystack
- Owner: pariola
- Created: 2018-03-23T11:19:49.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2022-11-02T07:11:51.000Z (about 3 years ago)
- Last Synced: 2025-09-29T17:14:59.619Z (4 months ago)
- Topics: api-wrapper, nigeria, paystack, promise
- Language: JavaScript
- Size: 42 KB
- Stars: 110
- Watchers: 4
- Forks: 45
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# paystack
Yet a new [Paystack](https://paystack.co/) API wrapper ๐
### Installation
For Yarn
```
yarn add paystack-api
```
For NPM
```
npm install paystack-api --save
```
### Usage
```js
// Require the library
var paystack = require("paystack-api")("secret_key");
```
#### Making calls
The resource methods promisified
Format โ `paystack.{resource}.{method}`
```js
// paystack.{resource}.{method}
paystack.customer
.list()
.then(function(body) {
console.log(body);
})
.catch(function(error) {
console.log(error);
});
```
All Resource methods parameters are provided as the only argument
```js
paystack.plan
.create({
name: "API demo",
amount: 10000,
interval: "monthly"
})
.then(function(error, body) {
console.log(error);
console.log(body);
});
```
```js
paystack.transactions.list({ perPage: 20 }).then(function(error, body) {
console.log(error);
console.log(body);
});
```
### Extras
#### I
A function to add Paystack's fee to your charging fee
```js
const helper = new paystack.FeeHelper();
console.log(helper.addFeesTo(5000));
```
Outputs โ `5077` which includes Paystack's fee upfront
OR set your desired parameters
```js
const helper = new paystack.FeeHelper({
percentage: ...,
cap: ...,
threshold: ...,
additionalCharge: ....
});
console.log(helper.addFeesTo(5000));
```
#### II
A Paystack Events helper (Express Middleware)
```js
const paystack = require("paystack-api")("secret_key");
const events = paystack.Events;
events.on("event_name", data => {
// Act
console.log("hola!");
});
// Hooks with Express
app.post("/my/webhook/url", events.middleware);
```
### Extend resources/methods
```js
const PaystackAPI = require("paystack-api")
class Paystack extends PaystackApi {
constructor(key) {
super(key);
// Update BVN match method with the new route
this.verification.matchBVN = this.extend({
method: 'post',
route: `/bvn/match`,
args: ['account_number*', 'bank_code*', 'bvn*'],
});
}
}
const paystack = new Paystack("secret_key");
```
### Resources
* customer
* create
* get
* list
* update
* validate
* setRiskAction
* deactivateAuth
* transaction
* initialize
* verify
* list
* get
* chargeAuth
* viewTimeline
* viewTimelineRef
* totals
* export
* reAuthorize
* checkAuth
* plan
* create
* get
* list
* update
* page
* create
* get
* list
* update
* slugAvailable
* charge
* tokenize
* charge
* submitPIN
* submitOTP
* submitPhone
* submitBirthday
* checkCharge
* bulk_charge
* create
* list
* get
* getCharges
* pause
* resume
* invoice
* create
* list
* get
* verify
* notify
* invoiceMetrics
* draftInvoice
* updateInvoice
* archiveInvoice
* control_panel
* getSessionTimeout
* updateSessionTimeout
* refund
* create
* list
* get
* settlement
* list
* subaccount
* create
* list
* get
* update
* subscription
* create
* disable
* enable
* get
* list
* transfer_control
* balance
* resendOTP
* enableOTP
* disableOTP
* finalizeDisableOTP
* transfer_recipient
* create
* list
* update
* remove
* transfer
* create
* list
* get
* finalize
* bulkTransfer
* verify
* verification
* resolveBVN
* matchBVN
* resolveAccount
* resolveBIN
* resolvePhone
* nuban
* create
* list
* get
* deactivate
* misc
* list_banks
* feeHelper
### Contributing
* Please do ๐งก
### TODO
* [X] Create a Paystack Events `express` middleware