SDK & Libraries

Official SDKs for popular programming languages

Node.js

v2.1.0

@davspay/node-sdk

🐍

Python

v2.0.5

davspay

🐘

PHP

v1.8.3

davspay/sdk

Java

v1.7.2

com.davspay:sdk

💎

Ruby

v1.5.1

davspay

🐹

Go

v1.4.0

github.com/davspay/go-sdk

Installation

Install the Davspay Node.js SDK using npm or yarn:

bash
npm install @davspay/node-sdk
# or
yarn add @davspay/node-sdk

Quick Start

Initialize the SDK and create your first payment:

javascript
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 Payment

Create a new payment request with customer details:

javascript
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;
  }
}

Retrieve Payment Status

Check the status of an existing payment:

javascript
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);
  }
}

Process Refunds

Issue full or partial refunds to customers:

javascript
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);
  }
}

Webhook Integration

Verify and process webhook events securely:

javascript
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'));