{"_id":"@codenik/payload-razorpay","_rev":"3-2083579c44409e11f7b5e0b7e27bd1f3","name":"@codenik/payload-razorpay","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"@codenik/payload-razorpay","version":"1.0.0","keywords":["payloadcms","payload","razorpay","ecommerce","payment"],"_id":"@codenik/payload-razorpay@1.0.0","maintainers":[{"name":"codenik","email":"codenikin@gmail.com"}],"dist":{"shasum":"bc09db5f4689e34fdbdf5383c1b76d75f70b7445","tarball":"https://registry.npmjs.org/@codenik/payload-razorpay/-/payload-razorpay-1.0.0.tgz","fileCount":6,"integrity":"sha512-j+6aLxHuc7hmsxtPZTBMGnaGWLEBl5cFf+s66M7c7z1cSuxR76f4uegJT6Balcb2y6gTbTybzPJgkizfx3luVQ==","signatures":[{"sig":"MEQCIGulz7BdsPGDaiPp/ifZ727Iw7vbCYVcseWMqL9exS63AiA/fODlBbBtfIXt2CNFfNqjvQmWbTepX6Uga8S3TUn1Lw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29044},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"d07f497a42cc4f70360dd1e3aab98f45804f0dc6","scripts":{"dev":"tsup --watch","build":"tsup","clean":"rimraf dist"},"_npmUser":{"name":"codenik","email":"codenikin@gmail.com"},"_npmVersion":"10.9.8","description":"Razorpay adapter for Payload Ecommerce","directories":{},"_nodeVersion":"22.23.1","dependencies":{"razorpay":"^2.9.6"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8","rimraf":"^6.1.3","typescript":"^5","@types/node":"^24"},"peerDependencies":{"react":"^19.0.0","payload":"^3.85.1","@payloadcms/plugin-ecommerce":"^3.85.1"},"_npmOperationalInternal":{"tmp":"tmp/payload-razorpay_1.0.0_1785183330601_0.6942612676859392","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@codenik/payload-razorpay","version":"1.0.1","keywords":["payloadcms","payload","razorpay","ecommerce","payment"],"_id":"@codenik/payload-razorpay@1.0.1","maintainers":[{"name":"codenik","email":"codenikin@gmail.com"}],"homepage":"https://github.com/codenikin/payload-razorpay#readme","bugs":{"url":"https://github.com/codenikin/payload-razorpay/issues"},"dist":{"shasum":"56e639b60b714e3166d06e3e5c37b42d741c2cdf","tarball":"https://registry.npmjs.org/@codenik/payload-razorpay/-/payload-razorpay-1.0.1.tgz","fileCount":6,"integrity":"sha512-H9PRRaEWqNODjMVOH4B9MPB9pGptEmKCppOKiAJXj0kXwhKXHqCtN8clxdU7utJMthVQC8XQrZ8b+5VrVtoQlQ==","signatures":[{"sig":"MEQCIBZMdjPyPZs7q4/NogXarrFRd+ZRzJiZOv7ggyQaN7/GAiALoMAuDgAtxVfG/BBKe+XQ8OV0rkJpHLyWFCmktRecOQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35339},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"0905a28868452c38e277bdbc83ca45fb9724113e","scripts":{"dev":"tsup --watch","build":"tsup","clean":"rimraf dist"},"_npmUser":{"name":"codenik","email":"codenikin@gmail.com"},"repository":{"url":"git+https://github.com/codenikin/payload-razorpay.git","type":"git"},"_npmVersion":"10.9.8","description":"Razorpay adapter for Payload Ecommerce","directories":{},"_nodeVersion":"22.23.1","dependencies":{"razorpay":"^2.9.6"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8","rimraf":"^6.1.3","typescript":"^5","@types/node":"^24"},"peerDependencies":{"react":"^19.0.0","payload":"^3.85.1","@payloadcms/plugin-ecommerce":"^3.85.1"},"_npmOperationalInternal":{"tmp":"tmp/payload-razorpay_1.0.1_1785184297953_0.3757392620649114","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@codenik/payload-razorpay","version":"1.0.2","description":"Razorpay adapter for Payload Ecommerce","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","repository":{"type":"git","url":"git+https://github.com/codenikin/payload-razorpay.git"},"homepage":"https://github.com/codenikin/payload-razorpay#readme","bugs":{"url":"https://github.com/codenikin/payload-razorpay/issues"},"keywords":["payloadcms","payload","razorpay","ecommerce","payment"],"scripts":{"build":"tsup","dev":"tsup --watch","clean":"rimraf dist"},"peerDependencies":{"payload":"^3.85.1","@payloadcms/plugin-ecommerce":"^3.85.1","react":"^19.0.0"},"dependencies":{"razorpay":"^2.9.6","@codenik/payload-razorpay":"file:C:/payload-razorpay"},"devDependencies":{"@types/node":"^24","rimraf":"^6.1.3","tsup":"^8","typescript":"^5"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"_id":"@codenik/payload-razorpay@1.0.2","gitHead":"e1a39396ec24dbaa9916e1b9a68ded3acd3f9229","_nodeVersion":"22.23.1","_npmVersion":"10.9.8","dist":{"integrity":"sha512-0C4Qj+2okHNO3i2CkE1DvSPF2ltfw9dzokjBCYAHHa9wWkTm5ErLuEmW5FPyjWzOKz6dhN8l3fF9bx6HxoSNnA==","shasum":"25d0f2dcf8bbb4803f87db45024c0aa566b22c8b","tarball":"https://registry.npmjs.org/@codenik/payload-razorpay/-/payload-razorpay-1.0.2.tgz","fileCount":6,"unpackedSize":35403,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICyOer5V37aqPfxJXQ1BR6KdQTbMmrkSI76zPiOOUu+0AiEAxROfUSA96o9FfZ92sZOA0wBi47g6qU5Vo4bGDwjngQo="}]},"_npmUser":{"name":"codenik","email":"codenikin@gmail.com"},"directories":{},"maintainers":[{"name":"codenik","email":"codenikin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/payload-razorpay_1.0.2_1785986213797_0.36154789602171267"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-27T20:15:30.420Z","modified":"2026-08-06T03:16:54.120Z","1.0.0":"2026-07-27T20:15:30.735Z","1.0.1":"2026-07-27T20:31:38.095Z","1.0.2":"2026-08-06T03:16:53.960Z"},"bugs":{"url":"https://github.com/codenikin/payload-razorpay/issues"},"homepage":"https://github.com/codenikin/payload-razorpay#readme","keywords":["payloadcms","payload","razorpay","ecommerce","payment"],"repository":{"type":"git","url":"git+https://github.com/codenikin/payload-razorpay.git"},"description":"Razorpay adapter for Payload Ecommerce","maintainers":[{"name":"codenik","email":"codenikin@gmail.com"}],"readme":"# @codenik/payload-razorpay\r\n\r\nA production-ready **Razorpay payment adapter** for the **Payload CMS Ecommerce Plugin**.\r\n\r\nIntegrate Razorpay into your Payload CMS storefront with minimal configuration. This adapter provides seamless payment processing, secure payment verification, and native integration with the Payload Ecommerce payment system.\r\n\r\n> Built for **Payload CMS 3.x**, **TypeScript**, **ESM**, and **Next.js**.\r\n\r\n---\r\n\r\n## ✨ Features\r\n\r\n* 💳 Native Razorpay Checkout integration\r\n* 🛒 Razorpay Orders API support\r\n* 🔒 Secure payment signature verification\r\n* 📦 Automatic transaction creation\r\n* ⚡ Fully typed with TypeScript\r\n* 🚀 ESM compatible\r\n* 🎯 Payload CMS 3.x compatible\r\n* 🌐 Next.js compatible\r\n* 🔧 Customisable payment labels\r\n* 🧩 Seamless integration with Payload Ecommerce\r\n* 🇮🇳 Optimised for India and all Razorpay-supported regions\r\n\r\n---\r\n\r\n## Requirements\r\n\r\nBefore installing the adapter, ensure your project meets the following requirements.\r\n\r\n| Requirement                  | Version  |\r\n| ---------------------------- | -------- |\r\n| Payload CMS                  | 3.x      |\r\n| @payloadcms/plugin-ecommerce | Latest   |\r\n| Node.js                      | 20+      |\r\n| Razorpay Account             | Required |\r\n\r\n---\r\n\r\n# Installation\r\n\r\nInstall the package using your preferred package manager.\r\n\r\n### pnpm\r\n\r\n```bash\r\npnpm add @codenik/payload-razorpay\r\n```\r\n\r\n### npm\r\n\r\n```bash\r\nnpm install @codenik/payload-razorpay\r\n```\r\n\r\n### yarn\r\n\r\n```bash\r\nyarn add @codenik/payload-razorpay\r\n```\r\n\r\n---\r\n\r\n# Environment Variables\r\n\r\nAdd the following variables to your `.env` file.\r\n\r\n```env\r\nRAZORPAY_SECRET=your_secret_key\r\nNEXT_PUBLIC_RAZORPAY_KEY_ID=your_publishable_key\r\n```\r\n\r\n> **Note**\r\n>\r\n> Use **Test Keys** during development and **Live Keys** in production.\r\n\r\n---\r\n\r\n# Backend Configuration\r\n\r\nRegister the Razorpay adapter with the Payload Ecommerce plugin.\r\n\r\n```ts\r\nimport { ecommercePlugin } from '@payloadcms/plugin-ecommerce'\r\nimport { razorpayAdapter } from '@codenik/payload-razorpay'\r\n\r\nplugins: [\r\n  ecommercePlugin({\r\n    payments: {\r\n      paymentMethods: [\r\n        razorpayAdapter({\r\n          publishableKey: process.env.NEXT_PUBLIC_RAZORPAY_KEY_ID!,\r\n          secretKey: process.env.RAZORPAY_SECRET!,\r\n        }),\r\n      ],\r\n    },\r\n  }),\r\n]\r\n```\r\n\r\n---\r\n\r\n# Frontend Configuration\r\n\r\nImport the client adapter into your frontend application.\r\n\r\n```ts\r\nimport { razorpayAdapterClient } from '@codenik/payload-razorpay'\r\n```\r\n\r\nInitialise the adapter.\r\n\r\n```ts\r\nconst adapter = razorpayAdapterClient({\r\n  publishableKey: process.env.NEXT_PUBLIC_RAZORPAY_KEY_ID!,\r\n})\r\n```\r\n\r\n---\r\n\r\n# Checkout Integration\r\n\r\nThis package provides the Payload CMS payment adapter. To open the Razorpay Checkout on the frontend, install the official **react-razorpay** package.\r\n\r\n## Step 1 — Install React Razorpay\r\n\r\n### pnpm\r\n\r\n```bash\r\npnpm add react-razorpay\r\n```\r\n\r\n### npm\r\n\r\n```bash\r\nnpm install react-razorpay\r\n```\r\n\r\n### yarn\r\n\r\n```bash\r\nyarn add react-razorpay\r\n```\r\n\r\n---\r\n\r\n## Step 2 — Import Razorpay\r\n\r\nImport the required hook and types into your checkout component.\r\n\r\n```ts\r\nimport { RazorpayOrderOptions, useRazorpay } from 'react-razorpay'\r\n```\r\n\r\n---\r\n\r\n## Step 3 — Initialise Razorpay\r\n\r\n```ts\r\nconst { Razorpay } = useRazorpay()\r\n```\r\n\r\n---\r\n\r\n## Step 4 — Open Razorpay Checkout\r\n\r\nAfter calling `initiatePayment()`, launch the Razorpay Checkout using the returned payment details.\r\n\r\n```ts\r\nconst options: RazorpayOrderOptions = {\r\n  key: process.env.NEXT_PUBLIC_RAZORPAY_KEY_ID!,\r\n  amount: (paymentData.amount as number) * 100,\r\n  currency: 'INR',\r\n  name: 'Your Store',\r\n  description: 'Order Payment',\r\n  order_id: paymentData.paymentIntentID,\r\n\r\n  handler: async (response) => {\r\n    await confirmOrder('razorpay', {\r\n      additionalData: {\r\n        paymentIntentID: paymentData.paymentIntentID,\r\n        razorpay_payment_id: response.razorpay_payment_id,\r\n        razorpay_signature: response.razorpay_signature,\r\n      },\r\n    })\r\n  },\r\n}\r\n\r\nconst razorpay = new Razorpay(options)\r\nrazorpay.open()\r\n```\r\n\r\n> **Important**\r\n>\r\n> This package only provides the Payload CMS payment adapter. You are responsible for implementing the checkout UI and calling `initiatePayment()` and `confirmOrder()` from your frontend application.\r\n\r\n---\r\n\r\n# Payment Flow\r\n\r\n```text\r\nCustomer clicks Pay\r\n        │\r\n        ▼\r\ninitiatePayment()\r\n        │\r\n        ▼\r\nPayload creates a Razorpay Order\r\n        │\r\n        ▼\r\nOpen Razorpay Checkout\r\n        │\r\n        ▼\r\nCustomer completes payment\r\n        │\r\n        ▼\r\nconfirmOrder()\r\n        │\r\n        ▼\r\nPayment verified\r\n        │\r\n        ▼\r\nPayload creates the Order\r\n        │\r\n        ▼\r\nRedirect to Order Confirmation Page\r\n```\r\n\r\n---\r\n\r\n# Supported Features\r\n\r\n| Feature                       | Status |\r\n| ----------------------------- | :----: |\r\n| Razorpay Checkout             |    ✅   |\r\n| Razorpay Orders API           |    ✅   |\r\n| Payment Verification          |    ✅   |\r\n| Transaction Creation          |    ✅   |\r\n| Payload Ecommerce Integration |    ✅   |\r\n| TypeScript                    |    ✅   |\r\n| ESM                           |    ✅   |\r\n| Next.js                       |    ✅   |\r\n\r\n---\r\n\r\n# Security\r\n\r\n* Never expose your **Razorpay Secret Key** to the frontend.\r\n* Always verify the Razorpay payment signature.\r\n* Use HTTPS in production.\r\n* Use Test Keys for development and Live Keys for production.\r\n\r\n---\r\n\r\n# Compatibility\r\n\r\n| Package     | Version |\r\n| ----------- | ------- |\r\n| Payload CMS | 3.x     |\r\n| Node.js     | 20+     |\r\n| Next.js     | 15+     |\r\n\r\n---\r\n\r\n# Contributing\r\n\r\nContributions are welcome!\r\n\r\nIf you'd like to improve this project, feel free to open an issue or submit a pull request.\r\n\r\n---\r\n\r\n# License\r\n\r\nMIT License\r\n\r\n---\r\n\r\n# Support\r\n\r\nIf you encounter an issue, please include the following information when creating a GitHub issue:\r\n\r\n* Payload CMS version\r\n* Plugin version\r\n* Node.js version\r\n* Error logs\r\n* Steps to reproduce the issue\r\n\r\n---\r\n\r\n\r\n","readmeFilename":"README.md"}