Official SDKs for popular programming languages
v2.1.0
@davspay/node-sdk
v2.0.5
davspay
v1.8.3
davspay/sdk
v1.7.2
com.davspay:sdk
v1.5.1
davspay
v1.4.0
github.com/davspay/go-sdk
Install the Davspay Node.js SDK using npm or yarn:
npm install @davspay/node-sdk
# or
yarn add @davspay/node-sdkInitialize the SDK and create your first payment:
const Davspay = require('@davspay/node-sdk'); // Initialize the client with your API key const davspay = new Davspay({ apiKey: 'your_api_key_here', environment: 'production' // or 'sandbox' for testing });
Create a new payment request with customer details:
async function createPayment() { try { const payment = await davspay.payments.create({ amount: 100000, // Amount in paise (₹1000.00) currency: 'INR', customer: { email: 'customer@example.com', phone: '+919876543210', name: 'John Doe' }, description: 'Payment for Order #12345', callback_url: 'https://yoursite.com/payment/callback', metadata: { order_id: '12345', source: 'web' } }); console.log('Payment ID:', payment.id); console.log('Payment URL:', payment.payment_url); return payment; } catch (error) { console.error('Error:', error.message); throw error; } }
Check the status of an existing payment:
async function getPaymentStatus(paymentId) { try { const payment = await davspay.payments.retrieve(paymentId); console.log('Status:', payment.status); console.log('Amount:', payment.amount); console.log('Created:', new Date(payment.created_at)); return payment; } catch (error) { console.error('Error:', error.message); } }
Issue full or partial refunds to customers:
async function processRefund(paymentId, amount) { try { const refund = await davspay.refunds.create({ payment_id: paymentId, amount: amount, // Amount in paise (omit for full refund) reason: 'Customer requested refund', notes: { refund_type: 'partial' } }); console.log('Refund ID:', refund.id); console.log('Refund Status:', refund.status); return refund; } catch (error) { console.error('Refund Error:', error.message); } }
Verify and process webhook events securely:
const express = require('express'); const app = express(); app.post('/webhooks/davspay', express.json(), (req, res) => { const signature = req.headers['x-davspay-signature']; const payload = req.body; // Verify webhook authenticity const isValid = davspay.webhooks.verify( payload, signature, process.env.DAVSPAY_WEBHOOK_SECRET ); if (!isValid) { return res.status(400).json({ error: 'Invalid signature' }); } // Handle different event types switch (payload.event) { case 'payment.success': console.log('Payment successful:', payload.data.id); // Update order status, send confirmation email, etc. break; case 'payment.failed': console.log('Payment failed:', payload.data.id); // Notify customer, retry payment, etc. break; case 'refund.processed': console.log('Refund processed:', payload.data.id); // Update accounting records break; } res.status(200).json({ received: true }); }); app.listen(3000, () => console.log('Server running on port 3000'));