Skip to content

smarty-pay/smartypay-node-sdk

Repository files navigation

Smarty Pay Node SDK

Simple library for creating payments on backend side

Installation

npm i smartypay-node-sdk

Usage

Create payment

See docs

import { SmartyPayAPI } from 'smartypay-node-sdk';

async function createPayment() {
  
  // call API 
  const api = new SmartyPayAPI({
    secretKey: 'YOUR_SECRET_KEY',
    publicKey: 'YOUR_API_KEY',
  });
  
  const payment = await api.payments.createPayment({
    amount: {
      value: '1',
      currency: 'bUSDT',
    },
    expiresAt: new Date(Date.now() + 1000 * 60 * 60), // optional: after 1 hour from now
    metadata: { orderId: 'YOUR_PURCHASE_ID' } // optional: any metadata
  });
  
  // result payment id
  const paymentId = payment.id;

  // additional params:
  const params = new URLSearchParams();
  // params.set('name', 'Item Name to Buy');
  // params.set('success-url', 'https://...');
  // params.set('fail-url', 'https://...');

  // final url be like "https://checkout.smartypay.io/XXXXXXX?..."
  const urlToRedirect = 'https://checkout.smartypay.io/' + paymentId + '?' + params.toString();
}
  • amount - Amount for a payment (value and currency token). See valid tokens here: https://docs.smartypay.io/general/supported-tokens
  • expiresAt - Optional: date before payment is active
  • metadata - Optional: key-value for any custom metadata (usually it's your own purchase id for success webhook)

Api common config:

Create client's recharge address

See docs

import { SmartyPayAPI } from 'smartypay-node-sdk';

async function createRechargeAddress(customerId: string) {
  
  // call API
  const api = new SmartyPayAPI({
    secretKey: 'YOUR_SECRET_KEY',
    publicKey: 'YOUR_API_KEY',
  });
  
  const resp = await api.recharges.createRechargeAddress({
    token: 'bUSDT',
    customerId: customerId,
  });
  
  // recharge address for your customerId
  const rechargeAddress = resp.address;
}

Api common config:

Check webhook signature

See docs

function isValidWebhook( resp: Respone){

  // See: https://docs.smartypay.io/api/webhooks
  const body: string = resp.body;
  const signature: string = resp.heades['x-api-digest'];
  
  return SmartyPayAPI.utils.isValidSignature(body,  signature, 'YOUR_SECRET_KEY');
}

Full API docs

Checkout our TypeDocs

Build steps

Clone repository into your dir

cd your_dir
git clone https://github.com/smarty-pay/smartypay-node-sdk

Build

npm install
npm run build

About

Simple library for creating invoices on backend side

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published