A paystack client SDK for the javascript runtime.
- Built in typescript
- Implements methods matching all of paystack's public API.
- Automatic case transformation of payload and response data keys for a more optimal JS/TS experience
npm i @gray-adeyi/paystack-sdk
yarn add @gray-adeyi/paystack-sdk
pnpm i @gray-adeyi/paystack-sdk
bun add @gray-adeyi/paystack-sdk
deno add @gray-adeyi/paystack-sdk
You may experience issues installing this package in node
and bun
runtimes, please create a .npmrc
file in
your project root and add @jsr:registry=https://npm.jsr.io
to it or run before installing this package.
echo '@jsr:registry=https://npm.jsr.io' >> .npmrc
PaystackClient
from the @gray-adeyi/paystack-sdk
package provides all that
you need to interface with paystack in your JS/TS project. it provides
properties to other clients that models how the official
paystack api reference is structured. i.e.
PaystackClient.miscellaneous
provides methods to match all endpoints in
https://paystack.com/docs/api/miscellaneous/.
so PaystackClient.miscellaneous.getBanks
mirrors the
List Banks endpoint. All
client methods return a promise containing a PaystackResponse
which is
essentially an object containing the following as it's properties.
statusCode
,status
, message
and data
. The keys of the data are
transformed internally from snake case to camelCase for a more friendly
experience.
import {
type ChargePayload,
Country,
PaystackClient,
type PaystackResponse,
} from "@gray-adeyi/paystack-sdk";
// assumes your PAYSTACK_SECRET_KEY is set in your environmental
// variables. Your secret key can be passed in explicitly on the
// instantiation with overrides the secret key set in the environmental
// variables.
const client = new PaystackClient();
client.miscellaneous.getBanks({ country: Country.NIGERIA }).then(
(response: PaystackResponse) => {
console.log(`The response status code is ${response.statusCode}`);
console.log(`The response status is ${response.status}`);
console.log(`The response message is ${response.message}`);
console.log(`The response data is ${JSON.stringify(response.data)}`);
},
);
const payload: ChargePayload = {
email: "johndoe@example.com",
amount: 1_000_000,
};
client.charge.charge(payload).then((response: PaystackResponse) => {
console.log(`The response status code is ${response.statusCode}`);
console.log(`The response status is ${response.status}`);
console.log(`The response message is ${response.message}`);
console.log(`The response data is ${JSON.stringify(response.data)}`);
});
See the Project's Documentation for more
This project is an open-source client library for Paystack. It is not officially endorsed or affiliated with Paystack. All trademarks and company names belong to their respective owners.
- Currently, @gray-adeyi/paystack-sdk does not perform any form of validation on the data passed in as method parameters but sends them as is to paystack servers.
- Limited documentation
Every little donation goes a long way. You can also give this project a star in
its Github repository it helps
You might encounter bugs while using this project or have feature enhancements you'd like to share with the project. Create an issue on the project's github page.