The Banksy Payment SDK is a unified payment gateway solution designed to simplify the integration of multiple payment methods into applications. It offers developers a comprehensive set of tools and APIs for seamless payment processing while ensuring security, compliance, and scalability.
[[TOC]]
- Unified Integration: Easily incorporate multiple payment methods into applications using a single set of APIs and tools.
- Multi-Payment Method Support: Accept payments through various methods including credit/debit cards, PayPal, cryptocurrencies, digital wallets, and bank transfers.
- Country-Specific Configuration: Dynamically enable/disable payment methods based on the user's country to comply with regional regulations and optimize the payment experience.
- Security and Compliance: Adheres to industry-standard encryption protocols and compliance requirements (such as PCI-DSS) to ensure secure transactions and safeguard sensitive payment data.
- Developer-Friendly: Clear documentation, code samples, and resources to streamline the integration process for developers of all skill levels.
- Customization Options: Customize the payment flow, user interface, and error handling mechanisms to meet specific application requirements.
To use the SDK, you need:
- CLIENT_KEY
- CLIENT_SECRET
Follow these steps:
i. Go to the BANKSY-DASHBOARD portal to generate an API Key.
ii. Install the SDK in your frontend application:
npm install banksy-sdk --save
iii. Initialize the SDK with your CLIENT_KEY:
import { Banksy } from "banksy-sdk";
const banksy = new Banksy("YOUR_CLIENT_KEY");
export default banksy;
(Note: To prevent multiple initializations, create a separate helper file.)
The SDK provides useful methods for processing payments across multiple providers.
- The diagram below illustrates the payment flow with KYC:
- The code below demonstrate the payment flow with KYC
- Select the product/service user want to purchase with proper
amount: number
andcurrency: string
- Create a payment
const paymentPayload = { amount: 100, currency: 'USD', successCallback: 'https://your-success-url.com', failureCallback: 'https://your-failure-url.com', isKycOptional: false, externalClientId: 'client123', currencyType: "fiat" // or "crypto", crypto: { tokenName: "MATIC", blockchainSymbol: "MATIC" } }; const paymentData = await banksy.createPayment(payload: JsonObject<PAYLOAD>);
- Will return a payment link, open it to perform the payment.
- After successful payment the successCallback will be redirected automatically with
paymentId: string
on query parameter - Same thing will happen on failure.
- After receiving the
paymentId
validate the statusconst paymentData = await banksy.getPayment(paymentId);
-
amount: number
required | Amount to be charged -
currency: string
required | Currency in which the amount to be charged -
successCallback: string
required | On payment success portal will be redirected to this url -
failureCallback: string
required | On payment failure portal will be redirected to this url -
externalClientId: string
optional | External client id, you will receive this on webhook -
customerName: string
required | Customer name -
context: any
optional | Any extra context JSON data, you will receive this on webhook -
address: string
optional | Crypto wallet address -
currencyType: "crypto" | "fiat"
either | Currency type. valid fiat or crypto -
provider: string"
or | Specify payment provider -
isKycOptional: boolean
required | Indicates if KYC is optional. Must be false -
crypto: { tokenName: string, blockchainSymbol: string }
optional
- The diagram below illustrates the payment flow without KYC:
- The code below demonstrate the payment flow without KYC
- Select the product/service user want to purchase with proper
amount: number
andcurrency: string
- Create a payment
const paymentPayload = { amount: 100, currency: 'USD', successCallback: 'https://your-success-url.com', failureCallback: 'https://your-failure-url.com', isKycOptional: true, customerEmail: 'fogeri6652@givehit.com', // At least one of customerEmail or customerPhone must be provided // customerPhone: '1234567890', // Optional if customerEmail is provided externalClientId: 'client123', currencyType: "fiat" // or "crypto", crypto: { tokenName: "MATIC", blockchainSymbol: "MATIC" } }; const paymentData = await banksy.createPayment(payload: JsonObject<PAYLOAD>);
- Will return a payment link, open it to perform the payment.
- After successful payment the successCallback will be redirected automatically with
paymentId: string
on query parameter - Same thing will happen on failure.
- After receiving the
paymentId
validate the statusconst paymentData = await banksy.getPayment(paymentId);
-
amount: number
required | Amount to be charged -
currency: string
required | Currency in which the amount to be charged -
successCallback: string
required | On payment success portal will be redirected to this url -
failureCallback: string
required | On payment failure portal will be redirected to this url -
externalClientId: string
optional | External client id, you will receive this on webhook -
customerName: string
required | Customer name -
context: any
optional | Any extra context JSON data, you will receive this on webhook -
address: string
optional | Crypto wallet address -
currencyType: "crypto" | "fiat"
either | Currency type. valid fiat or crypto -
provider: string"
or | Specify payment provider -
isKycOptional: boolean
required | Indicates if KYC is optional. Must be true -
customerEmail: string
optional | Customer's email (required if isKycOptional is true). -
customerPhone: string
optional | Customer's phone number (required if isKycOptional is true). -
crypto: { tokenName: string, blockchainSymbol: string }
optional
Configure your webhook urls on the Dashboard/API keys Webhooks will be triggered automatically once any transaction happens using the API key.
Webhooks will accepts only POST
methods
And body will be
{
"paymentId": string,
"paymentRaw": JSON Object // payment object
}