banksy-sdk
TypeScript icon, indicating that this package has built-in type declarations

1.0.54 • Public • Published

BANKSY PAYMENT SDK

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]]

FEATURES

  1. Unified Integration: Easily incorporate multiple payment methods into applications using a single set of APIs and tools.
  2. Multi-Payment Method Support: Accept payments through various methods including credit/debit cards, PayPal, cryptocurrencies, digital wallets, and bank transfers.
  3. Country-Specific Configuration: Dynamically enable/disable payment methods based on the user's country to comply with regional regulations and optimize the payment experience.
  4. 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.
  5. Developer-Friendly: Clear documentation, code samples, and resources to streamline the integration process for developers of all skill levels.
  6. Customization Options: Customize the payment flow, user interface, and error handling mechanisms to meet specific application requirements.

CONFIGURATION

To use the SDK, you need:

  1. CLIENT_KEY
  2. 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.)

DATA FLOW

The SDK provides useful methods for processing payments across multiple providers.

Create Payment with KYC

  • The diagram below illustrates the payment flow with KYC:

5 Alt Text

  • The code below demonstrate the payment flow with KYC
  1. Select the product/service user want to purchase with proper amount: number and currency: string
  2. 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>);
  3. Will return a payment link, open it to perform the payment.
  4. After successful payment the successCallback will be redirected automatically with paymentId: string on query parameter
  5. Same thing will happen on failure.
  6. After receiving the paymentId validate the status
    const paymentData = await banksy.getPayment(paymentId);

PAYLOAD

  1. amount: number required | Amount to be charged
  2. currency: string required | Currency in which the amount to be charged
  3. successCallback: string required | On payment success portal will be redirected to this url
  4. failureCallback: string required | On payment failure portal will be redirected to this url
  5. externalClientId: string optional | External client id, you will receive this on webhook
  6. customerName: string required | Customer name
  7. context: any optional | Any extra context JSON data, you will receive this on webhook
  8. address: string optional | Crypto wallet address
  9. currencyType: "crypto" | "fiat" either | Currency type. valid fiat or crypto
  10. provider: string" or | Specify payment provider
  11. isKycOptional: boolean required | Indicates if KYC is optional. Must be false
  12. crypto: { tokenName: string, blockchainSymbol: string } optional

Create Payment without KYC

  • The diagram below illustrates the payment flow without KYC:

Alt Text

  • The code below demonstrate the payment flow without KYC
  1. Select the product/service user want to purchase with proper amount: number and currency: string
  2. 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>);
  3. Will return a payment link, open it to perform the payment.
  4. After successful payment the successCallback will be redirected automatically with paymentId: string on query parameter
  5. Same thing will happen on failure.
  6. After receiving the paymentId validate the status
    const paymentData = await banksy.getPayment(paymentId);

PAYLOAD

  1. amount: number required | Amount to be charged
  2. currency: string required | Currency in which the amount to be charged
  3. successCallback: string required | On payment success portal will be redirected to this url
  4. failureCallback: string required | On payment failure portal will be redirected to this url
  5. externalClientId: string optional | External client id, you will receive this on webhook
  6. customerName: string required | Customer name
  7. context: any optional | Any extra context JSON data, you will receive this on webhook
  8. address: string optional | Crypto wallet address
  9. currencyType: "crypto" | "fiat" either | Currency type. valid fiat or crypto
  10. provider: string" or | Specify payment provider
  11. isKycOptional: boolean required | Indicates if KYC is optional. Must be true
  12. customerEmail: string optional | Customer's email (required if isKycOptional is true).
  13. customerPhone: string optional | Customer's phone number (required if isKycOptional is true).
  14. crypto: { tokenName: string, blockchainSymbol: string } optional

WEBHOOK

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
}

Readme

Keywords

none

Package Sidebar

Install

npm i banksy-sdk

Weekly Downloads

34

Version

1.0.54

License

ISC

Unpacked Size

11.6 MB

Total Files

38

Last publish

Collaborators

  • banksy_id