JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 29
  • Score
    100M100P100Q57317F
  • 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 using the built-in helper:

import PayCoinPro, { WebhookVerificationError } from 'paycoinpro';

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

app.post('/webhooks', (req, res) => {
  try {
    const event = client.webhooks.verify(
      req.body,
      req.headers['x-payload-hash'],
      process.env.WEBHOOK_SECRET
    );

    switch (event.event) {
      case 'invoice.paid':
        // Handle paid invoice
        break;
      case 'deposit.received':
        // Handle deposit
        break;
    }

    res.status(200).send('OK');
  } catch (error) {
    if (error instanceof WebhookVerificationError) {
      res.status(400).send('Invalid signature');
    }
  }
});

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