Simple library for creating payments on backend side
npm i smartypay-node-sdk
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:
- secretKey - You can get it here: https://dashboard.smartypay.io/
- publicKey - You can get it here: https://dashboard.smartypay.io/
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;
}
- token - See valid tokens here: https://docs.smartypay.io/general/supported-tokens
- customerId - Customer's id from your own system
Api common config:
- secretKey - You can get it here: https://dashboard.smartypay.io/
- publicKey - You can get it here: https://dashboard.smartypay.io/
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');
}
Checkout our TypeDocs
cd your_dir
git clone https://github.com/smarty-pay/smartypay-node-sdk
npm install
npm run build