Official Node.js SDK for integrating with the Payvra API
npm install payvra-sdk
import { PayvraClient } from 'payvra-sdk'; const client = new PayvraClient({ apiKey: 'YOUR_API_KEY', baseUrl: 'https://payvra.com/api/v1' // Optional, defaults to production URL });
const { currencies } = await client.fetchCurrencies();
{ "currencies": [ { "symbol": "BTC", "name": "Bitcoin", "networks": [ { "network": "BTC", "name": "Bitcoin", "minConfirm": 2, "withdrawFee": 0.00001, "withdrawMin": 0.0001, "depositMin": 0.0001 } ] } ] }
const invoice = await client.createInvoice({ amount: 100, amountCurrency: 'USD', acceptedCoins: ['BTC', 'ETH'], // Optional: Defaults to merchant's settings underPaidCover: 0.1, // Optional: Accept payments up to 10% under feePaidByPayer: true, // Optional: All fees paid by customer lifeTime: 60, // Optional: Invoice expires in 60 minutes returnUrl: 'https://your-site.com/payment/callback' // Optional: Return URL after payment });
{ "id":"cm47930od4b9i11dknivo92u1", "merchantId":"cm3lww0bm000vdmukkkbrxdzu", "paymentUrl":"https://payvra.com/payment/cm47930od4b9i11dknivo92u1", "status":"PENDING", "address":null, "txHash":null, "amount":100, "amountCurrency":"USD", "rate":null, "payAmount":null, "paidAmount":null, "cryptoCurrency":null, "network":null, "feePaidByPayer":true, "underPaidCover":0, "isWhiteLabel":false, "returnUrl":"https://your-site.com/payment/callback", "paidAt":null, "expiresAt":"2024-12-02T17:34:20.076Z", "createdAt":"2024-12-02T16:34:20.078Z" }
const invoice = await client.fetchInvoice({ invoiceId: 'cm47930od4b9i11dknivo92u1' });
const payout = await client.createPayout({ currency: 'LTC', network: 'Litecoin', amount: 0.1, address: 'ltc1g67g48wvxa7fawlgvcy7u8ahrnc8w6spmsf6amhrl2ckue247v3dskceapx' });
const { pairs } = await client.fetchExchangePairs();
import type { WebhookEvent } from 'payvra-sdk'; function handleWebhook(event: WebhookEvent) { switch (event.eventType) { case 'PAYMENT_COMPLETED': console.log(`Payment completed: ${event.amount} ${event.cryptoCurrency.symbol}`); break; case 'PAYMENT_EXPIRED': console.log(`Payment expired: ${event.id}`); break; case 'PAYOUT_COMPLETED': console.log(`Payout completed: ${event.amount} ${event.currency.symbol}`); break; } }