JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 29
  • Score
    100M100P100Q57370F
  • License MIT

Official TypeScript SDK for PayCoinPro payment gateway

Package Exports

  • paycoinpro

Readme

PayCoinPro Node.js SDK

TypeScript SDK for PayCoinPro cryptocurrency payment gateway.

Installation

npm install paycoinpro

Quick Start

import PayCoinPro from 'paycoinpro';

const client = new PayCoinPro({
  apiKey: 'pk_live_...',
});

// Create an invoice
const invoice = await client.invoices.create({
  amount: 99.99,
  currency: 'USDT',
  network: 'bsc',
  orderId: 'ORD-123',
  webhookUrl: 'https://store.com/webhooks',
});

console.log(`Payment address: ${invoice.paymentAddress}`);

API Reference

Invoices

// Create
const invoice = await client.invoices.create({
  amount: 99.99,
  currency: 'USDT',
  network: 'bsc',
});

// Get
const invoice = await client.invoices.retrieve('inv_abc123');

// List
const invoices = await client.invoices.list({ limit: 10 });

Deposit Addresses

// Create
const address = await client.depositAddresses.create({
  asset: 'USDT',
  network: 'bsc',
});

// List
const addresses = await client.depositAddresses.list();

Deposits

const deposits = await client.deposits.list();

Assets

// List available assets
const { assets } = await client.assets.list();

// Example response:
// [
//   { symbol: 'USDT', name: 'Tether USD', iconUrl: '...', networks: [{ code: 'ethereum', name: 'Ethereum' }, ...] },
//   { symbol: 'BTC', name: 'Bitcoin', iconUrl: '...', networks: [{ code: 'bitcoin', name: 'Bitcoin' }] },
// ]

Webhook Verification

Verify webhooks on your server using HMAC-SHA512:

import { createHmac } from 'crypto';

app.post('/webhooks', (req, res) => {
  const signature = req.headers['x-payload-hash'];
  const payload = JSON.stringify(req.body);
  const expected = createHmac('sha512', WEBHOOK_SECRET).update(payload).digest('hex');

  if (signature === expected) {
    // Valid webhook
    const { type, data } = req.body;
    // Handle event...
  }
});

Error Handling

import { AuthenticationError, NotFoundError, RateLimitError } from 'paycoinpro';

try {
  const invoice = await client.invoices.retrieve('inv_123');
} catch (error) {
  if (error instanceof AuthenticationError) {
    console.error('Invalid API key');
  } else if (error instanceof NotFoundError) {
    console.error('Invoice not found');
  }
}

License

MIT