Node.js client for paycrypto.one API: signature or private-key auth, invoices, widget, user, currency rates.
- NPM: paycrypto-node-client
- GitHub: PayCryptoOne/paycrypto-node-client
npm i paycrypto-node-clientКлючи передаются в конструктор:
import { PayCryptoClient } from 'paycrypto-node-client';
const client = new PayCryptoClient({
publicKey: process.env.PAYCRYPTO_PUBLIC_KEY!,
privateKey: process.env.PAYCRYPTO_PRIVATE_KEY!,
baseUrl: process.env.PAYCRYPTO_BASE_URL ?? 'https://api.paycrypto.one/api/v1',
authMode: 'signature',
});Переменные окружения (по желанию): PAYCRYPTO_BASE_URL, PAYCRYPTO_PUBLIC_KEY, PAYCRYPTO_PRIVATE_KEY.
Поддерживаются ESM (import) и CommonJS (require), в т.ч. в NestJS и Express.
const { data } = await client.createInvoice({
amount: 10.5,
client_reference_id: `order-${Date.now()}`,
currency: 'USD',
cryptocurrency: 'USDT',
network: 'TRC-20',
metadata: 'my-order',
});
console.log(data);const { data } = await client.createWidget({
amount: 7.5,
client_reference_id: `widget-${Date.now()}`,
currency: 'USD',
lang: 'ru-RU',
widget_description: 'Оплата заказа',
});
console.log(data);const { data } = await client.getInvoice(invoiceId);
console.log(data);const { data } = await client.searchInvoices('order-123');
console.log(data);const { data } = await client.confirmInvoice(invoiceId, {
transactionId: 'tx-hash-or-id',
});
console.log(data);const { data } = await client.getUser();
console.log(data);const { data } = await client.getCurrencyRateList();
console.log(data);const { data } = await client.getCurrencyRateStatus('USD');
console.log(data);npm test
npm run smoke
npm run e2e