multivendor-razorpay
v0.0.1
Published
Framework-agnostic Razorpay SDK wrapper for orders, payments, webhooks, and refunds
Maintainers
Readme
multivendor-razorpay
Framework-agnostic Razorpay SDK wrapper for orders, payments, webhooks, and refunds.
Install
npm install multivendor-razorpayThe razorpay SDK is included as a dependency — you do not need to install it separately.
Usage
import { RazorpayClient } from 'multivendor-razorpay';
const client = new RazorpayClient({
keyId: process.env.RAZORPAY_KEY_ID!,
keySecret: process.env.RAZORPAY_KEY_SECRET!,
webhookSecret: process.env.RAZORPAY_WEBHOOK_SECRET,
});
// Create an order for Checkout.js
const order = await client.createOrder({
amount: 999.99,
currency: 'INR',
receipt: 'ORD-12345',
notes: {
orderId: '12345',
orderPrefixId: 'ORD-12345',
customerId: '678',
},
});
// Verify payment signature after checkout
client.verifyPaymentSignature(
{ orderId: order.id, paymentId: 'pay_xxx' },
signatureFromFrontend
);
// Capture and parse success
const payment = await client.capturePayment('pay_xxx');
const result = client.parsePaymentSuccess(payment);
// Create refund
const refund = await client.createRefund('pay_xxx', 50.0);API
| Method | Description |
|--------|-------------|
| getKeyId() | Returns configured Razorpay key ID (for Checkout.js) |
| createOrder(params) | Create a Razorpay order |
| fetchOrder(id) | Fetch order by ID |
| fetchPayment(id) | Fetch payment by ID |
| findLatestOrderByNotesOrderId(orderId) | Best-effort order lookup by notes.orderId |
| findCapturedPaymentByOrderId(razorpayOrderId) | Find captured payment for order |
| verifyPaymentSignature(params, signature) | Verify checkout payment signature |
| capturePayment(id, amount?, currency?) | Capture authorized payment |
| verifyWebhookSignature(body, signature) | Verify webhook signature |
| parsePaymentSuccess(payment) | Parse captured payment notes |
| handleSuccessfulPayment(paymentId) | Fetch and parse captured payment |
| createPaymentLink(params) | Create hosted payment link |
| createRefund(paymentId, amount?, notes?) | Create full or partial refund |
| fetchRefund(id, paymentId?) | Fetch refund |
| listRefundsForPayment(paymentId) | List refunds for payment |
| listAllRefunds(count?, skip?) | List all refunds |
Stripe vs Razorpay
| Concern | Stripe | Razorpay |
|---------|--------|----------|
| Frontend key | publishableKey | keyId |
| Checkout unit | PaymentIntent | Order + Checkout.js |
| Post-pay verify | webhook or confirm | signature verify + capture |
| Metadata field | metadata | notes |
| Cancel unpaid | explicit cancel API | orders auto-expire |
License
MIT
