medusa-payment-provider
v0.0.1
Published
Universal payment provider plugin for Medusa v2 — Razorpay, Stripe, PayPal, PayU, Juspay, PhonePe, Paytm, Cashfree, HDFC.
Maintainers
Readme
medusa-payment-provider
Universal payment provider plugin for Medusa v2. Supports 9 gateways:
| Provider | Identifier | Flow |
|----------|------------|------|
| Cashfree | cashfree | Server-side order + JS SDK |
| HDFC SmartGateway | hdfc | Payment page session |
| Razorpay | razorpay | Orders API + Checkout JS |
| Stripe | stripe | PaymentIntent + Elements |
| PayPal | paypal | Checkout order + capture |
| PayU | payu | Redirect + SHA512 hash |
| Juspay | juspay | Smart-router payment page |
| PhonePe | phonepe | Redirect + checksum |
| Paytm | paytm | txnToken + payment page |
Installation
npm install medusa-payment-providerCopy .env.example to your host .env and fill provider credentials.
Registration
All providers (unified)
// medusa-config.ts
{
resolve: "medusa-payment-provider",
options: {
},
}Single provider (selective)
{
resolve: "medusa-payment-provider/providers/razorpay",
id: "razorpay",
options: {
key_id: process.env.RAZORPAY_KEY_ID,
key_secret: process.env.RAZORPAY_KEY_SECRET,
webhook_secret: process.env.RAZORPAY_WEBHOOK_SECRET,
},
}Repeat for stripe, paypal, payu, juspay, phonepe, paytm, cashfree, hdfc.
Webhooks
Plugin routes (recommended for signature verification)
Configure your gateway to POST to:
| Provider | URL |
|----------|-----|
| Razorpay | https://<host>/webhooks/razorpay |
| Stripe | https://<host>/webhooks/stripe |
| PayPal | https://<host>/webhooks/paypal |
| PayU | https://<host>/webhooks/payu |
| Juspay | https://<host>/webhooks/juspay |
| PhonePe | https://<host>/webhooks/phonepe |
| Paytm | https://<host>/webhooks/paytm |
Routes preserve req.rawBody for HMAC verification and always respond 200 (gateways retry on failure).
Medusa built-in hook
Medusa also exposes /hooks/payment/{provider} which emits a delayed event. Plugin routes call IPaymentModuleService.getWebhookActionAndData() directly.
Amount handling
| Providers | Medusa stores | API expects | |-----------|---------------|-------------| | INR gateways (Razorpay, Cashfree, PhonePe, …) | paise (minor) | paise | | Stripe | minor unit | minor unit (same) | | PayPal, Juspay | paise | major decimal string |
Development
cd medusa-payment-provider
npm install
./node_modules/.bin/medusa plugin:build
npm testCompatibility
Medusa >= 2.4.0 (tested with @medusajs/[email protected]).
