{"_id":"better-auth-razorpay","_rev":"29-e280794a73cada9db45b5ca7f3675608","name":"better-auth-razorpay","dist-tags":{"beta":"1.0.0-beta.9","latest":"2.0.9"},"versions":{"1.0.0-beta.0":{"name":"better-auth-razorpay","version":"1.0.0-beta.0","keywords":["razorpay","better-auth","auth","payment","subscription"],"author":{"name":"Jason Richard Kendrick"},"license":"MIT","_id":"better-auth-razorpay@1.0.0-beta.0","maintainers":[{"name":"jasonkendrick","email":"dev.jasonkendrick@gmail.com"}],"homepage":"https://github.com/iamjasonkendrick/better-auth-razorpay#readme","bugs":{"url":"https://github.com/iamjasonkendrick/better-auth-razorpay/issues"},"dist":{"shasum":"f7d50c9bc8f9ee61f634cb1a8e2faba53b53636d","tarball":"https://registry.npmjs.org/better-auth-razorpay/-/better-auth-razorpay-1.0.0-beta.0.tgz","fileCount":12,"integrity":"sha512-7GiLnxPMaWbHibTtP+ubMkgI9rka00580wMFy/CViDWkdisy0j3t/qkFDM+Q8TnXAxDobGXbod9QiIvdZ5ywPA==","signatures":[{"sig":"MEUCIQC3gBhWLaqMM0Ws+tacTjqlunECp9ftVFn9w9AUSjy3EgIgUduIAUH7cdnuSrUqDWBt5tB99SjWxXM/mVpeyH0PAEg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":178170},"main":"dist/index.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.cjs"}},"gitHead":"d3f811dc2218b243d68d29bb856f88c586bf6442","scripts":{"dev":"unbuild --watch","test":"vitest","build":"unbuild","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jasonkendrick","actor":{"name":"jasonkendrick","type":"user","email":"dev.jasonkendrick@gmail.com"},"email":"dev.jasonkendrick@gmail.com"},"repository":{"url":"git+https://github.com/iamjasonkendrick/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.9.2","description":"A Razorpay plugin for Better Auth, enabling seamless subscription and payment integration.","directories":{},"_nodeVersion":"23.11.1","dependencies":{"zod":"^3.25.62","better-auth":"^1.2.9"},"typesVersions":{"*":{"*":["./dist/index.d.ts"],"client":["./dist/client.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.3","unbuild":"^3.5.0","razorpay":"^2.9.6","typescript":"^5.8.3","better-call":"^1.0.9","better-sqlite3":"^11.10.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_1.0.0-beta.0_1750680861040_0.1293583783136638","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.1":{"name":"better-auth-razorpay","version":"1.0.0-beta.1","keywords":["razorpay","better-auth","auth","payment","subscription"],"author":{"name":"Jason Richard Kendrick"},"license":"MIT","_id":"better-auth-razorpay@1.0.0-beta.1","maintainers":[{"name":"jasonkendrick","email":"dev.jasonkendrick@gmail.com"}],"homepage":"https://github.com/iamjasonkendrick/better-auth-razorpay#readme","bugs":{"url":"https://github.com/iamjasonkendrick/better-auth-razorpay/issues"},"dist":{"shasum":"3720ba8fbd26b3dc21792db2a3ab6a31edfe69a8","tarball":"https://registry.npmjs.org/better-auth-razorpay/-/better-auth-razorpay-1.0.0-beta.1.tgz","fileCount":12,"integrity":"sha512-nt6GbCOssFvtCFeotq+W8PiyQPgOHLCSuxmMgrSsrmL2dwfkV2bZt3rq2d8qNioEBsTzGrdi4GsFWMDXgGI0zA==","signatures":[{"sig":"MEUCIQDLKCpNhVYMUJK9ynKRv4MAobmCKsfamP1u2nUEPoPFOwIgCMTSactxb7TtdEKjZ7HiRvn0Xbt51brHoCSZBQvxbQU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":178170},"main":"dist/index.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.cjs"}},"gitHead":"7c66581167afcf6c187c5db5321bfe2bf0cff50e","scripts":{"dev":"unbuild --watch","test":"vitest","build":"unbuild","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jasonkendrick","actor":{"name":"jasonkendrick","type":"user","email":"dev.jasonkendrick@gmail.com"},"email":"dev.jasonkendrick@gmail.com"},"repository":{"url":"git+https://github.com/iamjasonkendrick/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.9.2","description":"A Razorpay plugin for Better Auth, enabling seamless subscription and payment integration.","directories":{},"_nodeVersion":"23.11.1","dependencies":{"zod":"^3.25.62","better-auth":"^1.2.9"},"typesVersions":{"*":{"*":["./dist/index.d.ts"],"client":["./dist/client.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^3.2.3","unbuild":"^3.5.0","razorpay":"^2.9.6","typescript":"^5.8.3","better-call":"^1.0.9","better-sqlite3":"^11.10.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_1.0.0-beta.1_1750681279172_0.9382287068404032","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.2":{"name":"better-auth-razorpay","version":"1.0.0-beta.2","keywords":["razorpay","better-auth","auth","payment","subscription"],"author":{"name":"Jason Richard Kendrick"},"license":"MIT","_id":"better-auth-razorpay@1.0.0-beta.2","maintainers":[{"name":"jasonkendrick","email":"dev.jasonkendrick@gmail.com"}],"homepage":"https://github.com/iamjasonkendrick/better-auth-razorpay#readme","bugs":{"url":"https://github.com/iamjasonkendrick/better-auth-razorpay/issues"},"dist":{"shasum":"b750d4fee3767c1a6ab396b860d9516a4e928bcc","tarball":"https://registry.npmjs.org/better-auth-razorpay/-/better-auth-razorpay-1.0.0-beta.2.tgz","fileCount":12,"integrity":"sha512-SyNBMb7eJ+Jo4rAEBocuZSIQkAunHZkDxXh9nFXwLtwJmXxVlKLwqTZSWpA9SMOQEepHlHCddCgrwhADkgmRFg==","signatures":[{"sig":"MEUCIFQVlHrAA9t89bOnLejnxPA4lCYa09SleopU1vsgEtXnAiEAkJpooM5jbkbSi0hhvK6FE3nQ5qZ8tqbFE83ndsCxaNw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":179594},"main":"dist/index.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.cjs"}},"gitHead":"21574c9fb5fdf33d84a06c4b1353b0a218a2486f","scripts":{"dev":"unbuild --watch","test":"vitest","build":"unbuild","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jasonkendrick","email":"dev.jasonkendrick@gmail.com"},"repository":{"url":"git+https://github.com/iamjasonkendrick/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.9.2","description":"A Razorpay plugin for Better Auth, enabling seamless subscription and payment integration.","directories":{},"_nodeVersion":"23.11.1","dependencies":{"zod":"^3.25.62","better-auth":"^1.2.9"},"typesVersions":{"*":{"*":["./dist/index.d.ts"],"client":["./dist/client.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^3.2.3","unbuild":"^3.5.0","razorpay":"^2.9.6","typescript":"^5.8.3","better-call":"^1.0.9","better-sqlite3":"^11.10.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_1.0.0-beta.2_1752580293552_0.3978658147905767","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.3":{"name":"better-auth-razorpay","version":"1.0.0-beta.3","keywords":["razorpay","better-auth","auth","payment","subscription"],"author":{"name":"Jason Richard Kendrick"},"license":"MIT","_id":"better-auth-razorpay@1.0.0-beta.3","maintainers":[{"name":"jasonkendrick","email":"dev.jasonkendrick@gmail.com"}],"homepage":"https://github.com/iamjasonkendrick/better-auth-razorpay#readme","bugs":{"url":"https://github.com/iamjasonkendrick/better-auth-razorpay/issues"},"dist":{"shasum":"447d77b8f0298844b52ab77b69c6ca2e98737603","tarball":"https://registry.npmjs.org/better-auth-razorpay/-/better-auth-razorpay-1.0.0-beta.3.tgz","fileCount":12,"integrity":"sha512-3DOfAuK5fLqFzvmfCJzzeC2FTEKlP4CLVCanPCuPn53fgsZrefuR2tongWkkviP9bmLwRg5O8xQAzQ2ISNhW+w==","signatures":[{"sig":"MEUCIQDtri287Y6D6tOIujYWD9XadDkSjoZwB+Xe3L/HDYWWKwIgD8WqiO77VxEpbPb391Uy2XBwOYH2c5EdQDW8lURs43k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":201278},"main":"dist/index.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.cjs"}},"gitHead":"2b2e11cb06aa898594ca5b6468d74f1c1cd39ff1","scripts":{"dev":"unbuild --watch","test":"vitest","build":"unbuild","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jasonkendrick","email":"dev.jasonkendrick@gmail.com"},"repository":{"url":"git+https://github.com/iamjasonkendrick/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.9.2","description":"A Razorpay plugin for Better Auth, enabling seamless subscription and payment integration.","directories":{},"_nodeVersion":"23.11.1","dependencies":{"zod":"^3.25.62","better-auth":"^1.2.9"},"typesVersions":{"*":{"*":["./dist/index.d.ts"],"client":["./dist/client.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^3.2.3","unbuild":"^3.5.0","razorpay":"^2.9.6","typescript":"^5.8.3","better-call":"^1.0.9","better-sqlite3":"^11.10.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_1.0.0-beta.3_1752651390479_0.818709984902517","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.4":{"name":"better-auth-razorpay","version":"1.0.0-beta.4","keywords":["razorpay","better-auth","auth","payment","subscription"],"author":{"name":"Jason Richard Kendrick"},"license":"MIT","_id":"better-auth-razorpay@1.0.0-beta.4","maintainers":[{"name":"jasonkendrick","email":"dev.jasonkendrick@gmail.com"}],"homepage":"https://github.com/iamjasonkendrick/better-auth-razorpay#readme","bugs":{"url":"https://github.com/iamjasonkendrick/better-auth-razorpay/issues"},"dist":{"shasum":"46f7043557f36c07ff41cfd3a3d719242e3ed33e","tarball":"https://registry.npmjs.org/better-auth-razorpay/-/better-auth-razorpay-1.0.0-beta.4.tgz","fileCount":12,"integrity":"sha512-O5ZGcNh0gQGGcNRDpHGzBKf25LCYaPjTqsftYJ68DZvrsrLxrRPpD/8KD0kUfStOkkiVRZjQOCZktGCcPMagHw==","signatures":[{"sig":"MEYCIQCaWJwpr9+pk2SiBVBLNoRXoZQjEHJBZVhVdDgvem8GsQIhAMY/Ie3/GVMrhpZQPhYW8E6LROzMBtyWUOIBX9ZkeT/W","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":200560},"main":"dist/index.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.cjs"}},"gitHead":"777e64f75185189cd6d2d64722e1e38dbbebd680","scripts":{"dev":"unbuild --watch","test":"vitest","build":"unbuild","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jasonkendrick","email":"dev.jasonkendrick@gmail.com"},"repository":{"url":"git+https://github.com/iamjasonkendrick/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.9.2","description":"A Razorpay plugin for Better Auth, enabling seamless subscription and payment integration.","directories":{},"_nodeVersion":"23.11.1","dependencies":{"zod":"^3.25.62","better-auth":"^1.2.9"},"typesVersions":{"*":{"*":["./dist/index.d.ts"],"client":["./dist/client.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^3.2.3","unbuild":"^3.5.0","razorpay":"^2.9.6","typescript":"^5.8.3","better-call":"^1.0.9","better-sqlite3":"^11.10.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_1.0.0-beta.4_1752659093636_0.8852589602018417","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.5":{"name":"better-auth-razorpay","version":"1.0.0-beta.5","keywords":["razorpay","better-auth","auth","payment","subscription"],"author":{"name":"Jason Richard Kendrick"},"license":"MIT","_id":"better-auth-razorpay@1.0.0-beta.5","maintainers":[{"name":"jasonkendrick","email":"dev.jasonkendrick@gmail.com"}],"homepage":"https://github.com/iamjasonkendrick/better-auth-razorpay#readme","bugs":{"url":"https://github.com/iamjasonkendrick/better-auth-razorpay/issues"},"dist":{"shasum":"dc822dd980723c130bc96c7d059cc73186f8efdf","tarball":"https://registry.npmjs.org/better-auth-razorpay/-/better-auth-razorpay-1.0.0-beta.5.tgz","fileCount":12,"integrity":"sha512-Uxfu56mBSfkHXRQd/SE56mSfWubXZctsdovx9Jt2+5rmfFQB8PQsHpGHZepqCgt90QnfpwoxFKrmOcreIPQHNQ==","signatures":[{"sig":"MEUCIAVo+hd0tEbddS8zGQ+cItTQ3Nw4111U9hVEsRouUE4gAiEAu5Ojnm9JEGKE/3sCzNkx9xyU/QkuFTI+uJbTqxgfnoo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":179594},"main":"dist/index.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.cjs"}},"gitHead":"201f124b4c3db38a5946df2fd0821786e19bcdb2","scripts":{"dev":"unbuild --watch","test":"vitest","build":"unbuild","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jasonkendrick","email":"dev.jasonkendrick@gmail.com"},"repository":{"url":"git+https://github.com/iamjasonkendrick/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.9.2","description":"A Razorpay plugin for Better Auth, enabling seamless subscription and payment integration.","directories":{},"_nodeVersion":"23.11.1","dependencies":{"zod":"^3.25.62","better-auth":"^1.2.9"},"typesVersions":{"*":{"*":["./dist/index.d.ts"],"client":["./dist/client.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^3.2.3","unbuild":"^3.5.0","razorpay":"^2.9.6","typescript":"^5.8.3","better-call":"^1.0.9","better-sqlite3":"^11.10.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_1.0.0-beta.5_1752660951384_0.04841546623460502","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.6":{"name":"better-auth-razorpay","version":"1.0.0-beta.6","keywords":["razorpay","better-auth","auth","payment","subscription"],"author":{"name":"Jason Richard Kendrick"},"license":"MIT","_id":"better-auth-razorpay@1.0.0-beta.6","maintainers":[{"name":"jasonkendrick","email":"dev.jasonkendrick@gmail.com"}],"homepage":"https://github.com/iamjasonkendrick/better-auth-razorpay#readme","bugs":{"url":"https://github.com/iamjasonkendrick/better-auth-razorpay/issues"},"dist":{"shasum":"0846f60237374c604e37453f4e3184d0a1d5035a","tarball":"https://registry.npmjs.org/better-auth-razorpay/-/better-auth-razorpay-1.0.0-beta.6.tgz","fileCount":12,"integrity":"sha512-I/kWOufQ07qsA3gEXY3mlwYEcPxHNIxaa5RcokCJF7k6oZz7bzUxMApTl0HpNBvg0c8WQ5m+YTPX8VtM5GZHgA==","signatures":[{"sig":"MEYCIQD+16TsiroI9dpCC3cdh4V71q1hCrsWIZMYAFvXqYF+uAIhAPX1pCOAtv+uXH7Br82uA+aqZ3FTwJ6NKKH/SVAmz6bz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":430006},"main":"dist/index.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.cjs"}},"gitHead":"53bc873e8a66aa8e52c1a1a0d6d7cddd79e245fb","scripts":{"dev":"unbuild --watch","test":"vitest","build":"unbuild","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jasonkendrick","email":"dev.jasonkendrick@gmail.com"},"repository":{"url":"git+https://github.com/iamjasonkendrick/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.9.2","description":"A Razorpay plugin for Better Auth, enabling seamless subscription and payment integration.","directories":{},"_nodeVersion":"23.11.1","dependencies":{"zod":"^3.25.62","better-auth":"^1.2.9"},"typesVersions":{"*":{"*":["./dist/index.d.ts"],"client":["./dist/client.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^3.2.3","unbuild":"^3.5.0","razorpay":"^2.9.6","typescript":"^5.8.3","better-call":"^1.0.9","better-sqlite3":"^11.10.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_1.0.0-beta.6_1752732661413_0.6746446016196925","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.7":{"name":"better-auth-razorpay","version":"1.0.0-beta.7","keywords":["razorpay","better-auth","auth","payment","subscription"],"author":{"name":"Jason Richard Kendrick"},"license":"MIT","_id":"better-auth-razorpay@1.0.0-beta.7","maintainers":[{"name":"jasonkendrick","email":"dev.jasonkendrick@gmail.com"}],"homepage":"https://github.com/iamjasonkendrick/better-auth-razorpay#readme","bugs":{"url":"https://github.com/iamjasonkendrick/better-auth-razorpay/issues"},"dist":{"shasum":"edb16f01e9b0292be7ec0051b08a434b89341d2c","tarball":"https://registry.npmjs.org/better-auth-razorpay/-/better-auth-razorpay-1.0.0-beta.7.tgz","fileCount":12,"integrity":"sha512-eGSPBSZGrm7jfIeQS406iPS6IKKReMK5btgHttORr8pQQI/NybrO/VfVF4cmsh8g5QHmDpE+PkTuBf5QZqcAwA==","signatures":[{"sig":"MEQCIFRL4ebhu51f2Mu7F+h5g01c6mkDFf7kqAkHuT6udABAAiB1Zro1SgNa8qvIiddupzxpidFAAn8z6/xQ4Jm74Om/UQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":431798},"main":"dist/index.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.cjs"}},"gitHead":"4e1019838cea398b203c3d8cb3cf17e90e008848","scripts":{"dev":"unbuild --watch","test":"vitest","build":"unbuild","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jasonkendrick","email":"dev.jasonkendrick@gmail.com"},"repository":{"url":"git+https://github.com/iamjasonkendrick/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.9.2","description":"A Razorpay plugin for Better Auth, enabling seamless subscription and payment integration.","directories":{},"_nodeVersion":"23.11.1","dependencies":{"zod":"^3.25.62","better-auth":"^1.2.9"},"typesVersions":{"*":{"*":["./dist/index.d.ts"],"client":["./dist/client.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^3.2.3","unbuild":"^3.5.0","razorpay":"^2.9.6","typescript":"^5.8.3","better-call":"^1.0.9","better-sqlite3":"^11.10.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_1.0.0-beta.7_1752733563350_0.6379542060763908","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.8":{"name":"better-auth-razorpay","version":"1.0.0-beta.8","keywords":["razorpay","better-auth","auth","payment","subscription"],"author":{"name":"Jason Richard Kendrick"},"license":"MIT","_id":"better-auth-razorpay@1.0.0-beta.8","maintainers":[{"name":"jasonkendrick","email":"dev.jasonkendrick@gmail.com"}],"homepage":"https://github.com/iamjasonkendrick/better-auth-razorpay#readme","bugs":{"url":"https://github.com/iamjasonkendrick/better-auth-razorpay/issues"},"dist":{"shasum":"9fed81a3c98f1e98ae52bff79deb1c1cb5455537","tarball":"https://registry.npmjs.org/better-auth-razorpay/-/better-auth-razorpay-1.0.0-beta.8.tgz","fileCount":12,"integrity":"sha512-WnJc5kNqJNXAmnfBwHaO+V83PWQmfkXTwTc56eFyowjFbZE46Ya2FCrNt06gBN3qszPFszpf334nCC9bZVwdSA==","signatures":[{"sig":"MEUCIQCrg0QdEweypTNTC2qIDEcNIQdl4KkqBAPJ5G67RuaaUwIgRVb0ubxj62ef062fiti8+tTAT58yvUN1TEMO1KUDxdo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":181889},"main":"dist/index.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.cjs"}},"gitHead":"201f124b4c3db38a5946df2fd0821786e19bcdb2","scripts":{"dev":"unbuild --watch","test":"vitest","build":"unbuild","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jasonkendrick","email":"dev.jasonkendrick@gmail.com"},"repository":{"url":"git+https://github.com/iamjasonkendrick/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.9.2","description":"A Razorpay plugin for Better Auth, enabling seamless subscription and payment integration.","directories":{},"_nodeVersion":"23.11.1","dependencies":{"zod":"^3.25.62","better-auth":"^1.2.9"},"typesVersions":{"*":{"*":["./dist/index.d.ts"],"client":["./dist/client.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^3.2.3","unbuild":"^3.5.0","razorpay":"^2.9.6","typescript":"^5.8.3","better-call":"^1.0.9","better-sqlite3":"^11.10.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_1.0.0-beta.8_1752735065125_0.6241617032177476","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.9":{"name":"better-auth-razorpay","version":"1.0.0-beta.9","keywords":["razorpay","better-auth","auth","payment","subscription"],"author":{"name":"Jason Richard Kendrick"},"license":"MIT","_id":"better-auth-razorpay@1.0.0-beta.9","maintainers":[{"name":"jasonkendrick","email":"dev.jasonkendrick@gmail.com"}],"homepage":"https://github.com/iamjasonkendrick/better-auth-razorpay#readme","bugs":{"url":"https://github.com/iamjasonkendrick/better-auth-razorpay/issues"},"dist":{"shasum":"b65995602038e3193984d762e968973fd20a2f71","tarball":"https://registry.npmjs.org/better-auth-razorpay/-/better-auth-razorpay-1.0.0-beta.9.tgz","fileCount":12,"integrity":"sha512-z8FfkEGHw8mtqvjYKG5drg3wE43DXpUvVc0gP3Om3C5ADJ568/XvaGD+i1JEUtywhVrlpzV+EsTu9xmUrnf1FQ==","signatures":[{"sig":"MEUCIQDQ0vGqyV0a/C3rZ7IuT6R19iqZRkwa7/zKvv3DvCnbCAIgUG9YGwFpmbyAiDgTmcoNcahF3gtwJt05ETaWjvmTa8w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":194616},"main":"dist/index.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.cjs"}},"gitHead":"ba8c6277452f5ec0960caa8f36b6f2a7792c971e","scripts":{"dev":"unbuild --watch","test":"vitest","build":"unbuild","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jasonkendrick","email":"dev.jasonkendrick@gmail.com"},"repository":{"url":"git+https://github.com/iamjasonkendrick/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.9.2","description":"A Razorpay plugin for Better Auth, enabling seamless subscription and payment integration.","directories":{},"_nodeVersion":"23.11.1","dependencies":{"zod":"^3.25.62","better-auth":"^1.2.9"},"typesVersions":{"*":{"*":["./dist/index.d.ts"],"client":["./dist/client.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^3.2.3","unbuild":"^3.5.0","razorpay":"^2.9.6","typescript":"^5.8.3","better-call":"^1.0.9","better-sqlite3":"^11.10.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_1.0.0-beta.9_1754978471814_0.5979394831226987","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"better-auth-razorpay","version":"2.0.0","keywords":["razorpay","auth","subscription","better-auth"],"author":"","license":"MIT","_id":"better-auth-razorpay@2.0.0","maintainers":[{"name":"jasonkendrick","email":"dev.jasonkendrick@gmail.com"}],"homepage":"https://github.com/iamjasonkendrick/better-auth-razorpay#readme","bugs":{"url":"https://github.com/iamjasonkendrick/better-auth-razorpay/issues"},"dist":{"shasum":"4d2ec4d28f16a50be876b2731b1522005b60681a","tarball":"https://registry.npmjs.org/better-auth-razorpay/-/better-auth-razorpay-2.0.0.tgz","fileCount":37,"integrity":"sha512-U6CRMAj74amRRIyAeSn4OgXJJh4tfyTNh8WuyvWYbZ7UPN+Vrpl/OuVoTd7lnaj8sPdOMtMYemVo8H+Us3+sdg==","signatures":[{"sig":"MEYCIQDS3Ez5PJlDEqEzBz/UKFlKdB43Pp4ZyCd7CbQ0InY1mQIhANge27B3uc7NaxhZ7ul+GPXfPROxpCh0IRgAXzy/XoCd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":474863},"main":"dist/index.mjs","type":"module","types":"dist/index.d.mts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs","dev-source":"./src/index.ts"},"./client":{"types":"./dist/client.d.mts","default":"./dist/client.mjs","dev-source":"./src/client.ts"}},"gitHead":"d27da43ed7e2f976e24cc1ce0aa70bd7ac8187f2","scripts":{"dev":"tsdown --watch","test":"vitest","build":"tsdown","coverage":"vitest run --coverage --coverage.provider=istanbul","typecheck":"tsc --project tsconfig.json","lint:types":"attw --profile esm-only --pack .","lint:package":"publint run --strict"},"_npmUser":{"name":"jasonkendrick","email":"dev.jasonkendrick@gmail.com"},"repository":{"url":"git+https://github.com/iamjasonkendrick/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.9.3","description":"Razorpay plugin for Better Auth","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.3.6","defu":"^6.1.4"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"*":["./dist/index.d.mts"],"client":["./dist/client.d.mts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.12.4","vitest":"^4.0.18","razorpay":"^2.9.6","typescript":"^5.8.3","@types/node":"^25.2.3","better-auth":"^1.2.10","better-call":"^1.0.10"},"peerDependencies":{"razorpay":"^2.9.0","better-auth":"*"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_2.0.0_1771916780285_0.030714274213569093","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"better-auth-razorpay","version":"2.0.1","keywords":["razorpay","auth","subscription","better-auth"],"author":"","license":"MIT","_id":"better-auth-razorpay@2.0.1","maintainers":[{"name":"jasonkendrick","email":"dev.jasonkendrick@gmail.com"}],"homepage":"https://github.com/iamjasonkendrick/better-auth-razorpay#readme","bugs":{"url":"https://github.com/iamjasonkendrick/better-auth-razorpay/issues"},"dist":{"shasum":"75bce9058e57f844590a669b60bc22f1f57c2f83","tarball":"https://registry.npmjs.org/better-auth-razorpay/-/better-auth-razorpay-2.0.1.tgz","fileCount":37,"integrity":"sha512-Q0et5JbeCytmSnRKGA6hiK7oyam49gCIjE2JVhU+HPOQ1TTDYwyOQUpA50187456ZKfJtI8ReWdgx2zYymNf2A==","signatures":[{"sig":"MEYCIQCeryMSDFHawOZJLRr2viAFJifWt0pne7s36i2/G7H5KgIhAMzvGjHGe9WgR+PDbRIaMfpEE8ATHrVAefHagN7lg+kC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":474880},"main":"dist/index.mjs","type":"module","types":"dist/index.d.mts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs","dev-source":"./src/index.ts"},"./client":{"types":"./dist/client.d.mts","default":"./dist/client.mjs","dev-source":"./src/client.ts"}},"gitHead":"908ab4b05de733ff1d64e89dc7fdfdd5898c66d3","scripts":{"dev":"tsdown --watch","test":"vitest","build":"tsdown","coverage":"vitest run --coverage --coverage.provider=istanbul","typecheck":"tsc --project tsconfig.json","lint:types":"attw --profile esm-only --pack .","lint:package":"publint run --strict"},"_npmUser":{"name":"jasonkendrick","email":"dev.jasonkendrick@gmail.com"},"repository":{"url":"git+https://github.com/iamjasonkendrick/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.9.3","description":"Razorpay plugin for Better Auth","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.3.6","defu":"^6.1.4"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"*":["./dist/index.d.mts"],"client":["./dist/client.d.mts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.12.4","vitest":"^4.0.18","razorpay":"^2.9.6","typescript":"^5.8.3","@types/node":"^25.2.3","better-auth":"^1.2.10","better-call":"^1.0.10"},"peerDependencies":{"razorpay":"^2.9.0","better-auth":"*"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_2.0.1_1771916884156_0.685450018620078","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"better-auth-razorpay","version":"2.0.2","keywords":["razorpay","auth","subscription","better-auth"],"author":"","license":"MIT","_id":"better-auth-razorpay@2.0.2","maintainers":[{"name":"jasonkendrick","email":"dev.jasonkendrick@gmail.com"}],"homepage":"https://github.com/iamjasonkendrick/better-auth-razorpay#readme","bugs":{"url":"https://github.com/iamjasonkendrick/better-auth-razorpay/issues"},"dist":{"shasum":"d4956b5d716d09c68addd0308b8aa80f451c8fd8","tarball":"https://registry.npmjs.org/better-auth-razorpay/-/better-auth-razorpay-2.0.2.tgz","fileCount":32,"integrity":"sha512-XnZiGxZcDKaA3JhQZLMT6/3CdnrDkkK2Ec519C3p+KWXWbR3wLO0p2Gj/W8GCpBKP1VPETco5MSQ9mVqInbMWQ==","signatures":[{"sig":"MEUCIHi6h7hYoPVcpapgDIcDkXDa4r01LwxR5nI9Ttf9wBQRAiEA3bKpIdY9EoFGEZYRCGmgvoJceXQMQnHaoewcx2OLlUU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":434533},"main":"dist/index.mjs","type":"module","types":"dist/index.d.mts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs","dev-source":"./src/index.ts"},"./client":{"types":"./dist/client.d.mts","default":"./dist/client.mjs","dev-source":"./src/client.ts"}},"gitHead":"e0eb210ba6082ae41881974bf6ba4608c26f47f9","scripts":{"dev":"tsdown --watch","test":"vitest","build":"tsdown","coverage":"vitest run --coverage --coverage.provider=istanbul","typecheck":"tsc --project tsconfig.json","lint:types":"attw --profile esm-only --pack .","lint:package":"publint run --strict"},"_npmUser":{"name":"jasonkendrick","email":"dev.jasonkendrick@gmail.com"},"repository":{"url":"git+https://github.com/iamjasonkendrick/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.9.3","description":"Razorpay plugin for Better Auth","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.3.6","defu":"^6.1.4"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"*":["./dist/index.d.mts"],"client":["./dist/client.d.mts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.12.4","vitest":"^4.0.18","razorpay":"^2.9.6","typescript":"^5.8.3","@types/node":"^25.2.3","better-auth":"^1.2.10","better-call":"^1.0.10"},"peerDependencies":{"razorpay":"^2.9.0","better-auth":"*"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_2.0.2_1771955780842_0.3655836990387087","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"better-auth-razorpay","version":"2.0.3","keywords":["razorpay","auth","subscription","better-auth"],"author":"","license":"MIT","_id":"better-auth-razorpay@2.0.3","maintainers":[{"name":"jasonkendrick","email":"dev.jasonkendrick@gmail.com"}],"homepage":"https://github.com/iamjasonkendrick/better-auth-razorpay#readme","bugs":{"url":"https://github.com/iamjasonkendrick/better-auth-razorpay/issues"},"dist":{"shasum":"6a1af4feda7ed394f082e269c0407982e6e36874","tarball":"https://registry.npmjs.org/better-auth-razorpay/-/better-auth-razorpay-2.0.3.tgz","fileCount":29,"integrity":"sha512-VtwDLCB5niJg4ya/0yQXw5BkSyOcxQsrGUh9550uUx/qLK1BmpbStZ9FCCaHL9zySv4LKK99wCG3tErogHdD4g==","signatures":[{"sig":"MEUCIQDAYHDrpjyFj5qCYrEMma+6ljCyB2rn6UVQYql6ItN+mQIgTiTpaw6CLjUbg5Mf290Vo0obpGrOMpqS2DxhswCq4gE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":461943},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","dev-source":"./src/index.ts"},"./client":{"types":"./dist/client.d.ts","default":"./dist/client.js","dev-source":"./src/client.ts"}},"gitHead":"e0eb210ba6082ae41881974bf6ba4608c26f47f9","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","coverage":"vitest run --coverage --coverage.provider=istanbul","typecheck":"tsc --project tsconfig.json","lint:types":"npx --yes @arethetypeswrong/cli --profile esm-only --pack .","lint:package":"npx --yes publint run --strict"},"_npmUser":{"name":"jasonkendrick","email":"dev.jasonkendrick@gmail.com"},"repository":{"url":"git+https://github.com/iamjasonkendrick/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.9.3","description":"Razorpay plugin for Better Auth","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.3.6","defu":"^6.1.4"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"*":["./dist/index.d.ts"],"client":["./dist/client.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.0.18","razorpay":"^2.9.6","typescript":"^5.8.3","@types/node":"^25.2.3","better-auth":"^1.2.10","better-call":"^1.0.10"},"peerDependencies":{"razorpay":"^2.9.0","better-auth":"*"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_2.0.3_1771997162972_0.9919860468308055","host":"s3://npm-registry-packages-npm-production"}},"2.0.4":{"name":"better-auth-razorpay","version":"2.0.4","keywords":["razorpay","auth","subscription","better-auth"],"author":"","license":"MIT","_id":"better-auth-razorpay@2.0.4","maintainers":[{"name":"jasonkendrick","email":"dev.jasonkendrick@gmail.com"}],"homepage":"https://github.com/iamjasonkendrick/better-auth-razorpay#readme","bugs":{"url":"https://github.com/iamjasonkendrick/better-auth-razorpay/issues"},"dist":{"shasum":"cecc8c8eaa2b70941a1b78de90ae61415c54364f","tarball":"https://registry.npmjs.org/better-auth-razorpay/-/better-auth-razorpay-2.0.4.tgz","fileCount":29,"integrity":"sha512-ndSm1pLm/+LHPOvtOPMlFCW+NcleAk3iDNkw/U1ly3dIIJ6IlFISi/rUR+LWNlmyLoa4yEKHgWdxeto54m/wqw==","signatures":[{"sig":"MEYCIQCJ3LVDY2wfQJA8nyEtFFlaKJRrbWyOcYEDiwpoof8RGQIhAJaS6VcM173KRvW035Bkcd2VQWIOZwp6IViXYxuB3GU2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":461943},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","dev-source":"./src/index.ts"},"./client":{"types":"./dist/client.d.ts","default":"./dist/client.js","dev-source":"./src/client.ts"}},"gitHead":"da375a54d505cd0fbb08094a930d1102c88fd403","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","coverage":"vitest run --coverage --coverage.provider=istanbul","typecheck":"tsc --project tsconfig.json","lint:types":"npx --yes @arethetypeswrong/cli --profile esm-only --pack .","lint:package":"npx --yes publint run --strict"},"_npmUser":{"name":"jasonkendrick","email":"dev.jasonkendrick@gmail.com"},"repository":{"url":"git+https://github.com/iamjasonkendrick/better-auth-razorpay.git","type":"git"},"_npmVersion":"10.9.3","description":"Razorpay plugin for Better Auth","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.3.6","defu":"^6.1.4"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"*":["./dist/index.d.ts"],"client":["./dist/client.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.0.18","razorpay":"^2.9.6","typescript":"^5.8.3","@types/node":"^25.2.3","better-auth":"^1.2.10","better-call":"^1.0.10"},"peerDependencies":{"razorpay":"^2.9.0","better-auth":"*"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_2.0.4_1772251072212_0.9724901716203445","host":"s3://npm-registry-packages-npm-production"}},"2.0.5":{"name":"better-auth-razorpay","version":"2.0.5","keywords":["razorpay","auth","subscription","better-auth"],"author":"","license":"MIT","_id":"better-auth-razorpay@2.0.5","maintainers":[{"name":"jasonkendrick","email":"dev.jasonkendrick@gmail.com"}],"homepage":"https://github.com/iamjasonkendrick/better-auth-razorpay#readme","bugs":{"url":"https://github.com/iamjasonkendrick/better-auth-razorpay/issues"},"dist":{"shasum":"a4538033ebfabb6f573fe4d5e859bab300e8cb57","tarball":"https://registry.npmjs.org/better-auth-razorpay/-/better-auth-razorpay-2.0.5.tgz","fileCount":35,"integrity":"sha512-YE5P2Zx8c5DsNRPXuRiP1yACKYpWGSZbHKSTAaMtEY/fNJKZV1/GU1CgNxk64HnHFuM3aCikLNJi4CM7H/GhlQ==","signatures":[{"sig":"MEUCIAVM53iwR2JVpy+4AJHD5O3GSUcJ5+7nr753Lp/Lne95AiEA50xJHEl61nvDVx1ru3ULZNmI0fDEZ9mAMJvgvede0tE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":599411},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","dev-source":"./src/index.ts"},"./react":{"types":"./dist/react.d.ts","default":"./dist/react.js","dev-source":"./src/react.ts"},"./client":{"types":"./dist/client.d.ts","default":"./dist/client.js","dev-source":"./src/client.ts"}},"gitHead":"c43341c0aed4b0b0b2c9388423c58cbab1f562f5","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","coverage":"vitest run --coverage --coverage.provider=istanbul","typecheck":"tsc --project tsconfig.json","lint:types":"npx --yes @arethetypeswrong/cli --profile esm-only --pack .","lint:package":"npx --yes publint run --strict"},"_npmUser":{"name":"jasonkendrick","email":"dev.jasonkendrick@gmail.com"},"repository":{"url":"git+https://github.com/iamjasonkendrick/better-auth-razorpay.git","type":"git"},"_npmVersion":"11.11.0","description":"Razorpay plugin for Better Auth","directories":{},"_nodeVersion":"25.8.0","dependencies":{"zod":"^4.3.6","defu":"^6.1.4"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"*":["./dist/index.d.ts"],"react":["./dist/react.d.ts"],"client":["./dist/client.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.0.18","razorpay":"^2.9.6","typescript":"^5.8.3","@types/node":"^25.2.3","better-auth":"^1.2.10","better-call":"^1.0.10","@types/react":"^19.2.14","@tanstack/react-query":"^5.80.7"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","razorpay":"^2.9.0","better-auth":"*","@tanstack/react-query":"^5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_2.0.5_1772696466591_0.30090397656018597","host":"s3://npm-registry-packages-npm-production"}},"2.0.6":{"name":"better-auth-razorpay","version":"2.0.6","keywords":["better-auth","razorpay","auth","subscription","payments","billing","saas","nextjs","typescript","plugin","authentication","payment-gateway","india","inr","webhook","plans","trial"],"author":"","license":"MIT","_id":"better-auth-razorpay@2.0.6","maintainers":[{"name":"jasonkendrick","email":"dev.jasonkendrick@gmail.com"}],"homepage":"https://github.com/iamjasonkendrick/better-auth-razorpay#readme","bugs":{"url":"https://github.com/iamjasonkendrick/better-auth-razorpay/issues"},"dist":{"shasum":"c86b045dda9d5c0d6f5f7ec34db9b8b847243ace","tarball":"https://registry.npmjs.org/better-auth-razorpay/-/better-auth-razorpay-2.0.6.tgz","fileCount":35,"integrity":"sha512-5wBWQQM85/Zu/ODy755nt0iujF8GdapYy49uCqHFT2IonyvqGWyg61cSiTDXsjEyYob7FoI20Xd9HJMM9veGPA==","signatures":[{"sig":"MEYCIQDU0mlM13tg3NLSjTvilDEZ8t4keVUEND3hMi4DNmoJagIhALoyLOigY+Z9ZEHGZu7engigBPo0lgW4HFveSp/ohifu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":599610},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","dev-source":"./src/index.ts"},"./react":{"types":"./dist/react.d.ts","default":"./dist/react.js","dev-source":"./src/react.ts"},"./client":{"types":"./dist/client.d.ts","default":"./dist/client.js","dev-source":"./src/client.ts"}},"gitHead":"07eea52be0f595d8ee87455db32eae87cde7c838","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","coverage":"vitest run --coverage --coverage.provider=istanbul","typecheck":"tsc --project tsconfig.json","lint:types":"npx --yes @arethetypeswrong/cli --profile esm-only --pack .","lint:package":"npx --yes publint run --strict"},"_npmUser":{"name":"jasonkendrick","email":"dev.jasonkendrick@gmail.com"},"repository":{"url":"git+https://github.com/iamjasonkendrick/better-auth-razorpay.git","type":"git"},"_npmVersion":"11.11.0","description":"Razorpay plugin for Better Auth","directories":{},"_nodeVersion":"25.8.0","dependencies":{"zod":"^4.3.6","defu":"^6.1.4"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"*":["./dist/index.d.ts"],"react":["./dist/react.d.ts"],"client":["./dist/client.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.0.18","razorpay":"^2.9.6","typescript":"^5.8.3","@types/node":"^25.2.3","better-auth":"^1.2.10","better-call":"^1.0.10","@types/react":"^19.2.14","@tanstack/react-query":"^5.80.7"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","razorpay":"^2.9.0","better-auth":"*","@tanstack/react-query":"^5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_2.0.6_1774757946013_0.4694670251041597","host":"s3://npm-registry-packages-npm-production"}},"2.0.7":{"name":"better-auth-razorpay","version":"2.0.7","keywords":["better-auth","razorpay","payments","billing","subscription","authentication","plugin","typescript"],"author":"","license":"MIT","_id":"better-auth-razorpay@2.0.7","maintainers":[{"name":"jasonkendrick","email":"dev.jasonkendrick@gmail.com"}],"homepage":"https://github.com/iamjasonkendrick/better-auth-razorpay#readme","bugs":{"url":"https://github.com/iamjasonkendrick/better-auth-razorpay/issues"},"dist":{"shasum":"116fc9c543a678d5141403bee97b711db852b19e","tarball":"https://registry.npmjs.org/better-auth-razorpay/-/better-auth-razorpay-2.0.7.tgz","fileCount":35,"integrity":"sha512-pknBkx/8eGtxxRH3ldZ0RTpqr8HOhUeMU/2yuzU3y/r4g2vdZivt+8IRM+t9UQcGn7Q7DzDyA4dsf62cgGAz7w==","signatures":[{"sig":"MEQCIFO3PuL2lyUtAX9hd+MGWUW7MVRf8BAO10XrKnAYAd8cAiB56UWFOinx6TJzj5BmAA33NQMY4ptinJqXwKWJD+i2Jg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":599484},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","dev-source":"./src/index.ts"},"./react":{"types":"./dist/react.d.ts","default":"./dist/react.js","dev-source":"./src/react.ts"},"./client":{"types":"./dist/client.d.ts","default":"./dist/client.js","dev-source":"./src/client.ts"}},"gitHead":"2f0d6bf06177105126739902a18327402a12a0a1","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","coverage":"vitest run --coverage --coverage.provider=istanbul","typecheck":"tsc --project tsconfig.json","lint:types":"npx --yes @arethetypeswrong/cli --profile esm-only --pack .","lint:package":"npx --yes publint run --strict"},"_npmUser":{"name":"jasonkendrick","email":"dev.jasonkendrick@gmail.com"},"repository":{"url":"git+https://github.com/iamjasonkendrick/better-auth-razorpay.git","type":"git"},"_npmVersion":"11.11.0","description":"Razorpay plugin for Better Auth","directories":{},"_nodeVersion":"25.8.0","dependencies":{"zod":"^4.3.6","defu":"^6.1.4"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"*":["./dist/index.d.ts"],"react":["./dist/react.d.ts"],"client":["./dist/client.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.0.18","razorpay":"^2.9.6","typescript":"^5.8.3","@types/node":"^25.2.3","better-auth":"^1.2.10","better-call":"^1.0.10","@types/react":"^19.2.14","@tanstack/react-query":"^5.80.7"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","razorpay":"^2.9.0","better-auth":"*","@tanstack/react-query":"^5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_2.0.7_1774758135469_0.32820309954824456","host":"s3://npm-registry-packages-npm-production"}},"2.0.8":{"name":"better-auth-razorpay","version":"2.0.8","keywords":["better-auth","razorpay","payments","billing","subscription","authentication","plugin","typescript","better-auth-plugin","razorpay-subscriptions","recurring-billing","organization-billing","team-billing","seat-based-billing","webhooks","react-query"],"author":{"name":"Jason Richard Kendrick"},"license":"MIT","_id":"better-auth-razorpay@2.0.8","maintainers":[{"name":"jasonkendrick","email":"dev.jasonkendrick@gmail.com"}],"homepage":"https://github.com/iamjasonkendrick/better-auth-razorpay#readme","bugs":{"url":"https://github.com/iamjasonkendrick/better-auth-razorpay/issues"},"dist":{"shasum":"eea7022ec15e49a726baf36f7d94c86cab624241","tarball":"https://registry.npmjs.org/better-auth-razorpay/-/better-auth-razorpay-2.0.8.tgz","fileCount":14,"integrity":"sha512-0WNIDzSPx2QTgViK7Mzg7rzH6sn4Zis5hfqUPIvWRbAVl7UDV4N+mUa3T7+x69jrIIE9cLoJa154fGo7ub6qgA==","signatures":[{"sig":"MEYCIQDNfnyyamqnVZMsjLW3nQYg+CzgWSHE28yGTPs28M56oAIhAIU2GIhvepwiWcTGIAhFYlhMTqZjSX2p6EG8GBbhLpNm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":536181},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","dev-source":"./src/index.ts"},"./react":{"types":"./dist/react.d.ts","default":"./dist/react.js","dev-source":"./src/react.ts"},"./client":{"types":"./dist/client.d.ts","default":"./dist/client.js","dev-source":"./src/client.ts"}},"gitHead":"2f0d6bf06177105126739902a18327402a12a0a1","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","coverage":"vitest run --coverage --coverage.provider=istanbul","typecheck":"tsc --project tsconfig.json","lint:types":"npx --yes @arethetypeswrong/cli --profile esm-only --pack .","lint:package":"npx --yes publint run --strict"},"_npmUser":{"name":"jasonkendrick","email":"dev.jasonkendrick@gmail.com"},"overrides":{"rollup":"^4.62.4","esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/iamjasonkendrick/better-auth-razorpay.git","type":"git"},"_npmVersion":"11.16.0","description":"Razorpay plugin for Better Auth","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.3.6"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"*":["./dist/index.d.ts"],"react":["./dist/react.d.ts"],"client":["./dist/client.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^8.2.1","vitest":"^4.1.10","razorpay":"^2.9.8","typescript":"^5.8.3","@types/node":"^25.2.3","better-auth":"^1.7.0","@types/react":"^19.2.14","@tanstack/react-query":"^5.80.7"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","razorpay":"^2.9.0","better-auth":">=1.7.0 <2","@tanstack/react-query":"^5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/better-auth-razorpay_2.0.8_1787025226460_0.584259722995091","host":"s3://npm-registry-packages-npm-production"}},"2.0.9":{"name":"better-auth-razorpay","author":{"name":"Jason Richard Kendrick"},"version":"2.0.9","type":"module","main":"dist/index.js","types":"dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/iamjasonkendrick/better-auth-razorpay.git"},"keywords":["better-auth","razorpay","payments","billing","subscription","authentication","plugin","typescript","better-auth-plugin","razorpay-subscriptions","recurring-billing","organization-billing","team-billing","seat-based-billing","webhooks","react-query"],"module":"dist/index.js","description":"Razorpay plugin for Better Auth","sideEffects":false,"scripts":{"test":"vitest","coverage":"vitest run --coverage --coverage.provider=istanbul","lint:package":"npx --yes publint run --strict","lint:types":"npx --yes @arethetypeswrong/cli --profile esm-only --pack .","build":"tsup","dev":"tsup --watch","typecheck":"tsc --project tsconfig.json"},"publishConfig":{"access":"public"},"exports":{".":{"dev-source":"./src/index.ts","types":"./dist/index.d.ts","default":"./dist/index.js"},"./client":{"dev-source":"./src/client.ts","types":"./dist/client.d.ts","default":"./dist/client.js"},"./react":{"dev-source":"./src/react.ts","types":"./dist/react.d.ts","default":"./dist/react.js"}},"typesVersions":{"*":{"*":["./dist/index.d.ts"],"client":["./dist/client.d.ts"],"react":["./dist/react.d.ts"]}},"dependencies":{"zod":"^4.3.6"},"peerDependencies":{"@tanstack/react-query":"^5.0.0","better-auth":">=1.7.0 <2","razorpay":"^2.9.0","react":"^18.0.0 || ^19.0.0"},"peerDependenciesMeta":{"@tanstack/react-query":{"optional":true},"react":{"optional":true}},"overrides":{"esbuild":"^0.28.2","rollup":"^4.62.4"},"devDependencies":{"@tanstack/react-query":"^5.80.7","@types/node":"^25.2.3","@types/react":"^19.2.14","better-auth":"^1.7.0","razorpay":"^2.9.8","tsup":"^8.5.1","typescript":"^5.8.3","vite":"^8.2.1","vitest":"^4.1.10"},"gitHead":"ae752b30d20faa6cd5f2efd0b870aa14dc29bdb3","_id":"better-auth-razorpay@2.0.9","bugs":{"url":"https://github.com/iamjasonkendrick/better-auth-razorpay/issues"},"homepage":"https://github.com/iamjasonkendrick/better-auth-razorpay#readme","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-S7aCHjKkKiJWBHe/nvI0oK2eREhTcfMnDmpFPLvSvhWzsiUISra7tepX3ghZOyMonMqZmTHgH52dwlBo2+wCZw==","shasum":"9d31df57da7b76a9fe08aac8d8618536721b394d","tarball":"https://registry.npmjs.org/better-auth-razorpay/-/better-auth-razorpay-2.0.9.tgz","fileCount":14,"unpackedSize":538785,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHtW8TXO96z+tYx1zMEJlqU+8ECelkhDvJ7PsiYLuj8xAiAxZJf10N08z706OA1juaGjwpVt51UiML7xtcJ9dzkbOQ=="}]},"_npmUser":{"name":"jasonkendrick","email":"dev.jasonkendrick@gmail.com"},"directories":{},"maintainers":[{"name":"jasonkendrick","email":"dev.jasonkendrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/better-auth-razorpay_2.0.9_1787031040539_0.2723297639009712"},"_hasShrinkwrap":false}},"time":{"created":"2025-06-23T12:14:21.038Z","modified":"2026-08-18T05:30:40.869Z","1.0.0-beta.0":"2025-06-23T12:14:21.196Z","1.0.0-beta.1":"2025-06-23T12:21:19.354Z","1.0.0-beta.2":"2025-07-15T11:51:33.714Z","1.0.0-beta.3":"2025-07-16T07:36:30.653Z","1.0.0-beta.4":"2025-07-16T09:44:53.813Z","1.0.0-beta.5":"2025-07-16T10:15:51.633Z","1.0.0-beta.6":"2025-07-17T06:11:01.695Z","1.0.0-beta.7":"2025-07-17T06:26:03.519Z","1.0.0-beta.8":"2025-07-17T06:51:05.319Z","1.0.0-beta.9":"2025-08-12T06:01:12.003Z","2.0.0":"2026-02-24T07:06:20.437Z","2.0.1":"2026-02-24T07:08:04.306Z","2.0.2":"2026-02-24T17:56:20.998Z","2.0.3":"2026-02-25T05:26:03.145Z","2.0.4":"2026-02-28T03:57:52.369Z","2.0.5":"2026-03-05T07:41:06.757Z","2.0.6":"2026-03-29T04:19:06.206Z","2.0.7":"2026-03-29T04:22:15.644Z","2.0.8":"2026-08-18T03:53:46.599Z","2.0.9":"2026-08-18T05:30:40.721Z"},"bugs":{"url":"https://github.com/iamjasonkendrick/better-auth-razorpay/issues"},"author":{"name":"Jason Richard Kendrick"},"license":"MIT","homepage":"https://github.com/iamjasonkendrick/better-auth-razorpay#readme","keywords":["better-auth","razorpay","payments","billing","subscription","authentication","plugin","typescript","better-auth-plugin","razorpay-subscriptions","recurring-billing","organization-billing","team-billing","seat-based-billing","webhooks","react-query"],"repository":{"type":"git","url":"git+https://github.com/iamjasonkendrick/better-auth-razorpay.git"},"description":"Razorpay plugin for Better Auth","maintainers":[{"name":"jasonkendrick","email":"dev.jasonkendrick@gmail.com"}],"readme":"# better-auth-razorpay(Community Plugin)\n\nA comprehensive [Razorpay](https://razorpay.com) plugin for [Better Auth](https://better-auth.com) — subscriptions, customers, plans, webhooks, and organization billing out of the box.\n\n---\n\n## Features\n\n- 🔄 **Full Subscription Lifecycle** — Create, upgrade, cancel (immediate or end-of-cycle), pause, resume, restore, and query subscriptions with a single API\n- 🛡️ **Trial Abuse Prevention** — Automatically tracks trial history per user and blocks repeat free trials across plan changes\n- 👤 **Automatic Customer Sync** — Razorpay customers are created on sign-up and kept in sync whenever user details change\n- 🏢 **Organization & Seat-Based Billing** — Per-organization subscriptions with automatic seat quantity sync as members join or leave\n- 🔔 **Secure Webhook Processing** — HMAC-SHA256 verified handlers for every Razorpay subscription event with granular lifecycle callbacks\n- 📋 **Plan & Invoice Management** — Create, list, and fetch plans; retrieve invoices; link and manage promotional offers\n- ⚛️ **Pre-Built React Hooks** — Drop-in TanStack Query hooks with automatic cache invalidation for instant UI integration\n- 🧩 **Line Items & Scheduling** — Usage-based add-ons via line items and deferred plan changes with `scheduleAtPeriodEnd`\n- 🔒 **End-to-End Type Safety** — Full TypeScript coverage with typed error codes, status helpers, and IntelliSense-friendly APIs\n\n---\n\n## Installation\n\n```bash\nnpm install better-auth-razorpay razorpay\n```\n\n## Quick Start\n\n### 1. Server Setup\n\n```ts\nimport { betterAuth } from \"better-auth\";\nimport { razorpay } from \"better-auth-razorpay\";\nimport Razorpay from \"razorpay\";\n\nconst razorpayClient = new Razorpay({\n  key_id: process.env.RAZORPAY_KEY_ID!,\n  key_secret: process.env.RAZORPAY_KEY_SECRET!,\n});\n\nexport const auth = betterAuth({\n  plugins: [\n    razorpay({\n      razorpayClient,\n      razorpayWebhookSecret: process.env.RAZORPAY_WEBHOOK_SECRET!,\n      createCustomerOnSignUp: true,\n\n      subscription: {\n        enabled: true,\n        plans: [\n          {\n            planId: \"plan_XXXXXXXXXX\",\n            name: \"pro\",\n            totalCount: 12,\n          },\n          {\n            planId: \"plan_YYYYYYYYYY\",\n            annualPlanId: \"plan_ZZZZZZZZZZ\",\n            name: \"enterprise\",\n            totalCount: 1,\n            quantity: 1, // seat-based\n          },\n        ],\n\n        onSubscriptionActivated: async ({ subscription, plan, event }) => {\n          console.log(`Subscription activated: ${subscription.id}`);\n        },\n      },\n    }),\n  ],\n});\n```\n\n### 2. Client Setup\n\n```ts\nimport { createAuthClient } from \"better-auth/client\";\nimport { razorpayClient } from \"better-auth-razorpay/client\";\n\nexport const client = createAuthClient({\n  plugins: [\n    razorpayClient({\n      subscription: true,\n    }),\n  ],\n});\n```\n\n### 3. Webhook Endpoint\n\nRegister your webhook URL in the [Razorpay Dashboard](https://dashboard.razorpay.com/app/webhooks):\n\n```\nhttps://your-domain.com/api/auth/razorpay/webhook\n```\n\nSelect the following events:\n\n- `subscription.authenticated`\n- `subscription.activated`\n- `subscription.charged`\n- `subscription.pending`\n- `subscription.halted`\n- `subscription.cancelled`\n- `subscription.completed`\n- `subscription.paused`\n- `subscription.resumed`\n- `subscription.updated`\n\n---\n\n## Configuration\n\n### `RazorpayOptions`\n\n| Option                    | Type                  | Required | Description                                         |\n| ------------------------- | --------------------- | -------- | --------------------------------------------------- |\n| `razorpayClient`          | `Razorpay`            | ✅       | Razorpay SDK instance                               |\n| `razorpayWebhookSecret`   | `string`              | ✅       | Webhook secret for HMAC-SHA256 verification         |\n| `createCustomerOnSignUp`  | `boolean`             | ❌       | Auto-create Razorpay customer when a user registers |\n| `onCustomerCreate`        | `function`            | ❌       | Callback after customer creation                    |\n| `getCustomerCreateParams` | `function`            | ❌       | Customize Razorpay customer creation params         |\n| `subscription`            | `SubscriptionOptions` | ❌       | Subscription configuration (see below)              |\n| `organization`            | `OrganizationOptions` | ❌       | Organization billing configuration (see below)      |\n| `onEvent`                 | `function`            | ❌       | Callback for all incoming webhook events            |\n| `schema`                  | `object`              | ❌       | Custom schema overrides                             |\n\n### `SubscriptionOptions`\n\nEnable subscriptions by setting `subscription.enabled: true`:\n\n```ts\nsubscription: {\n  enabled: true,\n  plans: [...],\n\n  // Optional settings\n  requireEmailVerification: false,\n  authorizeReference: async ({ user, referenceId, action }) => true,\n  getSubscriptionCreateParams: async ({ user, plan }) => ({}),\n\n  // Lifecycle callbacks\n  onSubscriptionActivated: async ({ event, razorpaySubscription, subscription, plan }) => {},\n  onSubscriptionRenewed: async ({ event, razorpaySubscription, subscription }) => {},\n  onSubscriptionAuthenticated: async ({ event, razorpaySubscription, subscription }) => {},\n  onSubscriptionCharged: async ({ event, razorpaySubscription, subscription }) => {},\n  onSubscriptionCancelled: async ({ event, razorpaySubscription, subscription }) => {},\n  onSubscriptionPaused: async ({ event, razorpaySubscription, subscription }) => {},\n  onSubscriptionResumed: async ({ event, razorpaySubscription, subscription }) => {},\n  onSubscriptionHalted: async ({ event, razorpaySubscription, subscription }) => {},\n  onSubscriptionPending: async ({ event, razorpaySubscription, subscription }) => {},\n  onSubscriptionCompleted: async ({ event, razorpaySubscription, subscription }) => {},\n  onSubscriptionUpdated: async ({ event, razorpaySubscription, subscription }) => {},\n}\n```\n\n### Plan Configuration\n\n```ts\ntype RazorpayPlan = {\n  planId: string; // Razorpay plan ID (e.g., \"plan_XXXXXXXXXX\")\n  name: string; // Plan name used internally\n  annualPlanId?: string; // Optional annual plan ID for yearly billing\n  totalCount?: number; // Number of billing cycles\n  quantity?: number; // Seat-based billing quantity\n  group?: string; // Group name for multi-plan subscriptions\n  limits?: Record<string, unknown>; // Plan-specific metadata\n  freeTrial?: {\n    days: number; // Free trial duration in days\n    onTrialStart?: (subscription) => Promise<void>;\n    onTrialEnd?: ({ subscription }, ctx) => Promise<void>;\n  };\n};\n```\n\n---\n\n## API Endpoints\n\n### Subscription Endpoints\n\n> These endpoints are only available when `subscription.enabled` is `true`.\n\n| Method | Path                    | Description                           |\n| ------ | ----------------------- | ------------------------------------- |\n| `POST` | `/subscription/upgrade` | Create or upgrade a subscription      |\n| `POST` | `/subscription/cancel`  | Cancel an active subscription         |\n| `POST` | `/subscription/pause`   | Pause an active subscription          |\n| `POST` | `/subscription/resume`  | Resume a paused subscription          |\n| `GET`  | `/subscription/list`    | List subscriptions for user/reference |\n| `POST` | `/subscription/update`  | Update subscription (plan, quantity)  |\n| `POST` | `/subscription/restore` | Restore pending-cancellation sub      |\n| `GET`  | `/subscription/get`     | Get a subscription by local DB ID     |\n\n### Razorpay-Specific Endpoints\n\n| Method | Path                                    | Description                         |\n| ------ | --------------------------------------- | ----------------------------------- |\n| `GET`  | `/razorpay/subscription/get`            | Fetch subscription by Razorpay ID   |\n| `POST` | `/razorpay/subscription-link`           | Create a subscription link          |\n| `GET`  | `/razorpay/subscription/pending-update` | Get pending update details          |\n| `POST` | `/razorpay/subscription/cancel-update`  | Cancel a pending update             |\n| `GET`  | `/razorpay/subscription/invoices`       | Fetch subscription invoices         |\n| `POST` | `/razorpay/subscription/link-offer`     | Link an offer to a subscription     |\n| `POST` | `/razorpay/subscription/delete-offer`   | Unlink an offer from a subscription |\n\n### Plan Endpoints\n\n| Method | Path                    | Description                |\n| ------ | ----------------------- | -------------------------- |\n| `POST` | `/razorpay/plan/create` | Create a new Razorpay plan |\n| `GET`  | `/razorpay/plan/list`   | List all Razorpay plans    |\n| `GET`  | `/razorpay/plan/get`    | Fetch a plan by ID         |\n\n### Customer Endpoints\n\n| Method | Path                        | Description                |\n| ------ | --------------------------- | -------------------------- |\n| `POST` | `/razorpay/customer/create` | Create a Razorpay customer |\n| `POST` | `/razorpay/customer/edit`   | Edit customer details      |\n| `GET`  | `/razorpay/customer/list`   | List all customers         |\n| `GET`  | `/razorpay/customer/get`    | Fetch a customer by ID     |\n\n### Webhook\n\n| Method | Path                | Description               |\n| ------ | ------------------- | ------------------------- |\n| `POST` | `/razorpay/webhook` | Razorpay webhook receiver |\n\n---\n\n## Usage Examples\n\n### Upgrade Subscription\n\n```ts\n// Client-side\nconst { data } = await client.subscription.upgrade({\n  plan: \"pro\",\n});\n\n// Annual plan\nconst { data } = await client.subscription.upgrade({\n  plan: \"pro\",\n  annual: true,\n});\n\n// With add-on line items (usage-based billing)\nconst { data } = await client.subscription.upgrade({\n  plan: \"pro\",\n  lineItems: [\n    { item_id: \"item_XXXXXXX\", quantity: 5 },\n  ],\n});\n\n// Schedule plan change at end of billing period (avoid mid-cycle proration)\nconst { data } = await client.subscription.upgrade({\n  plan: \"enterprise\",\n  scheduleAtPeriodEnd: true,\n});\n```\n\n### Cancel Subscription\n\n```ts\n// Cancel immediately\nawait client.subscription.cancel({});\n\n// Cancel at end of billing cycle\nawait client.subscription.cancel({\n  cancelAtCycleEnd: true,\n});\n```\n\n### Pause / Resume\n\n```ts\nawait client.subscription.pause({});\nawait client.subscription.resume({});\n```\n\n### List & Get Subscriptions\n\n```ts\n// List all subscriptions\nconst { data: subscriptions } = await client.subscription.list({});\n\n// Get specific subscription by its local DB ID\nconst { data: sub } = await client.subscription.get({\n  query: { subscriptionId: \"local_sub_id\" }\n});\n```\n\n### Organization Subscription\n\n```ts\n// Subscribe on behalf of an organization\nconst { data } = await client.subscription.upgrade({\n  plan: \"enterprise\",\n  referenceId: \"org_123\",\n  customerType: \"organization\",\n});\n```\n\n### React Hooks (TanStack Query)\n\nThe plugin exports a full suite of TanStack query/mutation hooks under `better-auth-razorpay/react`. Simply install `@tanstack/react-query` and import them:\n\n```tsx\nimport { \n  useSubscription, \n  useSubscriptionList, \n  useUpgradeSubscription, \n  useSubscriptionStatus \n} from \"better-auth-razorpay/react\";\n\nfunction Billing() {\n  const { data: subscriptions, isLoading } = useSubscriptionList(authClient);\n  const { mutate: upgrade } = useUpgradeSubscription(authClient);\n  \n  const status = useSubscriptionStatus(subscriptions?.[0]);\n\n  if (status.isTrialing) return <p>You are on a free trial!</p>;\n  \n  return <button onClick={() => upgrade({ plan: \"pro\" })}>Upgrade</button>\n}\n```\n\n---\n\n## Organization Integration\n\nEnable organization-level billing by adding the `organization` option. This requires the Better Auth [Organization plugin](https://www.better-auth.com/docs/plugins/organization).\n\n```ts\nrazorpay({\n  razorpayClient,\n  razorpayWebhookSecret: \"...\",\n\n  organization: {\n    enabled: true,\n    getCustomerCreateParams: async (organization, ctx) => ({\n      name: organization.name,\n      email: `billing@${organization.slug}.com`,\n    }),\n    onCustomerCreate: async ({ razorpayCustomer, organization }) => {\n      console.log(`Org customer created: ${razorpayCustomer.id}`);\n    },\n  },\n\n  subscription: {\n    enabled: true,\n    plans: [\n      {\n        planId: \"plan_TEAM\",\n        name: \"team\",\n        quantity: 1, // seat-based\n      },\n    ],\n    authorizeReference: async ({ user, referenceId, action }) => {\n      // Check if user has permission to manage org subscriptions\n      return true;\n    },\n  },\n});\n```\n\n### What the organization integration does automatically:\n\n- **Syncs organization name** to Razorpay customer when the org is updated\n- **Creates the organization customer lazily** on its first subscription and persists the Razorpay customer ID\n- **Blocks deletion** of organizations with active subscriptions\n- **Syncs seat count** when members are added/removed/accept invitations\n- Adds `razorpayCustomerId` field to the `organization` table\n\n---\n\n## Database Schema\n\nThe plugin automatically extends your database with the following tables/fields:\n\n### `user` table (extended)\n\n| Field                | Type      | Description          |\n| -------------------- | --------- | -------------------- |\n| `razorpayCustomerId` | `string?` | Razorpay customer ID |\n\n### `subscription` table (new)\n\n| Field                    | Type       | Description                                |\n| ------------------------ | ---------- | ------------------------------------------ |\n| `id`                     | `string`   | Primary key                                |\n| `plan`                   | `string`   | Plan name                                  |\n| `referenceId`            | `string`   | User ID or organization ID                 |\n| `razorpayCustomerId`     | `string?`  | Razorpay customer ID                       |\n| `razorpaySubscriptionId` | `string?`  | Razorpay subscription ID                   |\n| `razorpayPlanId`         | `string?`  | Razorpay plan ID                           |\n| `status`                 | `string`   | Subscription status (default: `\"created\"`) |\n| `currentStart`           | `date?`    | Current billing cycle start                |\n| `currentEnd`             | `date?`    | Current billing cycle end                  |\n| `endedAt`                | `date?`    | When subscription ended                    |\n| `quantity`               | `number?`  | Seat quantity (default: `1`)               |\n| `totalCount`             | `number?`  | Total billing cycles                       |\n| `paidCount`              | `number?`  | Completed billing cycles (default: `0`)    |\n| `remainingCount`         | `number?`  | Remaining billing cycles                   |\n| `cancelledAt`            | `date?`    | Cancellation timestamp                     |\n| `pausedAt`               | `date?`    | Pause timestamp                            |\n| `shortUrl`               | `string?`  | Payment authorization URL                  |\n| `cancelAtCycleEnd`       | `boolean?` | Scheduled cancellation flag                |\n| `billingPeriod`          | `string?`  | Billing period                             |\n| `trialStart`             | `date?`    | Trial period start date                    |\n| `trialEnd`               | `date?`    | Trial period end date                      |\n| `metadata`               | `string?`  | Custom JSON stringified metadata           |\n| `renewedAt`              | `date?`    | Last renewal timestamp                     |\n\n### `organization` table (extended, when enabled)\n\n| Field                | Type      | Description          |\n| -------------------- | --------- | -------------------- |\n| `razorpayCustomerId` | `string?` | Razorpay customer ID |\n\n---\n\n## Subscription Status Lifecycle\n\n```mermaid\nstateDiagram-v2\n    [*] --> created\n    created --> authenticated : Customer authorizes\n    authenticated --> active : First payment success\n    active --> paused : Pause requested\n    paused --> active : Resume requested\n    active --> pending : Payment retry in progress\n    pending --> active : Retry succeeds\n    pending --> halted : All retries exhausted\n    halted --> active : Manual resolution\n    active --> cancelled : Cancellation\n    active --> completed : All cycles done\n    cancelled --> [*]\n    completed --> [*]\n    expired --> [*]\n```\n\n| Status          | Description                                  |\n| --------------- | -------------------------------------------- |\n| `created`       | Subscription created, awaiting authorization |\n| `authenticated` | Customer authorized, awaiting first charge   |\n| `active`        | Active and charging normally                 |\n| `pending`       | Payment retry in progress                    |\n| `halted`        | All payment retries exhausted                |\n| `paused`        | Temporarily paused                           |\n| `cancelled`     | Cancelled (immediate or end-of-cycle)        |\n| `completed`     | All billing cycles completed                 |\n| `expired`       | Subscription expired                         |\n\n---\n\n## Utility Functions\n\nImport these helpers for subscription status checks:\n\n```ts\nimport {\n  isActive,\n  isAuthenticated,\n  isPaused,\n  isCancelled,\n  isTerminal,\n  isUsable,\n  hasPaymentIssue,\n  toSubscriptionStatus,\n  timestampToDate,\n} from \"better-auth-razorpay\";\n```\n\n| Function                    | Description                                              |\n| --------------------------- | -------------------------------------------------------- |\n| `isActive(sub)`             | Status is `\"active\"`                                     |\n| `isAuthenticated(sub)`      | Status is `\"authenticated\"`                              |\n| `isPaused(sub)`             | Status is `\"paused\"`                                     |\n| `isCancelled(sub)`          | Status is `\"cancelled\"`                                  |\n| `isTerminal(sub)`           | Status is `\"cancelled\"`, `\"completed\"`, or `\"expired\"`   |\n| `isUsable(sub)`             | Status is `\"active\"` or `\"authenticated\"`                |\n| `hasPaymentIssue(sub)`      | Status is `\"pending\"` or `\"halted\"`                      |\n| `toSubscriptionStatus(str)` | Convert a string to a typed `RazorpaySubscriptionStatus` |\n| `timestampToDate(ts)`       | Convert Unix timestamp (seconds) to `Date`               |\n\n---\n\n## Error Codes\n\nAll error codes are exported and can be used for client-side matching:\n\n```ts\nimport { RAZORPAY_ERROR_CODES } from \"better-auth-razorpay/client\";\n\nif (error?.code === RAZORPAY_ERROR_CODES.CUSTOMER_NOT_FOUND.code) {\n  // Handle the missing billing customer.\n}\n```\n\n| Code                                   | Message                                        |\n| -------------------------------------- | ---------------------------------------------- |\n| `UNAUTHORIZED`                         | Unauthorized access                            |\n| `SUBSCRIPTION_NOT_FOUND`               | Subscription not found                         |\n| `SUBSCRIPTION_PLAN_NOT_FOUND`          | Subscription plan not found                    |\n| `ALREADY_SUBSCRIBED_PLAN`              | Already subscribed to this plan                |\n| `CUSTOMER_NOT_FOUND`                   | Razorpay customer not found                    |\n| `EMAIL_VERIFICATION_REQUIRED`          | Email verification required before subscribing |\n| `SUBSCRIPTION_NOT_ACTIVE`              | Subscription is not active                     |\n| `SUBSCRIPTION_ALREADY_CANCELLED`       | Subscription is already cancelled              |\n| `SUBSCRIPTION_ALREADY_PAUSED`          | Subscription is already paused                 |\n| `SUBSCRIPTION_NOT_PAUSED`              | Subscription is not paused                     |\n| `ORGANIZATION_HAS_ACTIVE_SUBSCRIPTION` | Cannot delete org with active subscription     |\n| `FAILED_TO_VERIFY_WEBHOOK`             | Webhook signature verification failed          |\n\n<details>\n<summary>All error codes</summary>\n\n| Code                                    | Message                                       |\n| --------------------------------------- | --------------------------------------------- |\n| `UNAUTHORIZED`                          | Unauthorized access                           |\n| `INVALID_REQUEST_BODY`                  | Invalid request body                          |\n| `SUBSCRIPTION_NOT_FOUND`                | Subscription not found                        |\n| `SUBSCRIPTION_PLAN_NOT_FOUND`           | Subscription plan not found                   |\n| `ALREADY_SUBSCRIBED_PLAN`               | You're already subscribed to this plan        |\n| `REFERENCE_ID_NOT_ALLOWED`              | Reference id is not allowed                   |\n| `CUSTOMER_NOT_FOUND`                    | Razorpay customer not found for the billing reference |\n| `UNABLE_TO_CREATE_CUSTOMER`             | Unable to create Razorpay customer            |\n| `WEBHOOK_SIGNATURE_NOT_FOUND`           | Razorpay webhook signature not found          |\n| `WEBHOOK_SECRET_NOT_FOUND`              | Razorpay webhook secret not found             |\n| `WEBHOOK_ERROR`                         | Razorpay webhook error                        |\n| `FAILED_TO_VERIFY_WEBHOOK`              | Failed to verify Razorpay webhook signature   |\n| `FAILED_TO_FETCH_PLANS`                 | Failed to fetch plans                         |\n| `EMAIL_VERIFICATION_REQUIRED`           | Email verification required                   |\n| `SUBSCRIPTION_NOT_ACTIVE`               | Subscription is not active                    |\n| `SUBSCRIPTION_ALREADY_CANCELLED`        | Subscription is already cancelled             |\n| `SUBSCRIPTION_ALREADY_PAUSED`           | Subscription is already paused                |\n| `SUBSCRIPTION_NOT_PAUSED`               | Subscription is not paused                    |\n| `ORGANIZATION_NOT_FOUND`                | Organization not found                        |\n| `ORGANIZATION_SUBSCRIPTION_NOT_ENABLED` | Organization subscription not enabled         |\n| `AUTHORIZE_REFERENCE_REQUIRED`          | authorizeReference callback required          |\n| `ORGANIZATION_HAS_ACTIVE_SUBSCRIPTION`  | Cannot delete org with active subscription    |\n| `ORGANIZATION_REFERENCE_ID_REQUIRED`    | Reference ID or activeOrganizationId required |\n| `PLAN_NOT_FOUND`                        | Razorpay plan not found                       |\n| `PLAN_CREATE_FAILED`                    | Failed to create Razorpay plan                |\n| `SUBSCRIPTION_CANCEL_FAILED`            | Failed to cancel subscription                 |\n| `SUBSCRIPTION_PAUSE_FAILED`             | Failed to pause subscription                  |\n| `SUBSCRIPTION_RESUME_FAILED`            | Failed to resume subscription                 |\n| `SUBSCRIPTION_UPDATE_FAILED`            | Failed to update subscription                 |\n| `SUBSCRIPTION_LINK_CREATE_FAILED`       | Failed to create subscription link            |\n| `INVOICE_FETCH_FAILED`                  | Failed to fetch invoices                      |\n| `OFFER_LINK_FAILED`                     | Failed to link offer                          |\n| `OFFER_DELETE_FAILED`                   | Failed to delete offer                        |\n| `CUSTOMER_EDIT_FAILED`                  | Failed to edit customer                       |\n| `PENDING_UPDATE_NOT_FOUND`              | No pending update found                       |\n| `PENDING_UPDATE_CANCEL_FAILED`          | Failed to cancel pending update               |\n\n</details>\n\n---\n\n## Webhook Events\n\nThe plugin automatically handles these Razorpay webhook events:\n\n| Event                        | Internal Handler              | Description                                   |\n| ---------------------------- | ----------------------------- | --------------------------------------------- |\n| `subscription.authenticated` | `onSubscriptionAuthenticated` | Customer authorized the subscription          |\n| `subscription.activated`     | `onSubscriptionActivated`     | First payment successful, subscription active |\n| `subscription.charged`       | `onSubscriptionCharged`       | Recurring payment charged successfully        |\n| `subscription.pending`       | `onSubscriptionPending`       | Payment retry in progress                     |\n| `subscription.halted`        | `onSubscriptionHalted`        | All payment retries exhausted                 |\n| `subscription.cancelled`     | `onSubscriptionCancelled`     | Subscription cancelled                        |\n| `subscription.completed`     | `onSubscriptionCompleted`     | All billing cycles completed                  |\n| `subscription.paused`        | `onSubscriptionPaused`        | Subscription paused                           |\n| `subscription.resumed`       | `onSubscriptionResumed`       | Subscription resumed                          |\n| `subscription.updated`       | `onSubscriptionUpdated`       | Plan/quantity updated                         |\n\nEach handler automatically:\n\n1. Verifies the webhook signature (HMAC-SHA256)\n2. Finds the corresponding local subscription record\n3. Updates the subscription status in your database\n4. Calls your optional lifecycle callback\n\n---\n\n## Free Trials\n\nConfigure free trials per plan:\n\n```ts\nplans: [\n  {\n    planId: \"plan_PRO\",\n    name: \"pro\",\n    totalCount: 12,\n    freeTrial: {\n      days: 14,\n      onTrialStart: async (subscription) => {\n        // Grant trial access\n      },\n      onTrialEnd: async ({ subscription }, ctx) => {\n        // Trial ended, first payment charged\n      },\n    },\n  },\n],\n```\n\nThe plugin sets Razorpay's `start_at` parameter to defer the first charge by the configured number of trial days.\n\n**Trial Abuse Prevention:** The plugin automatically tracks `trialStart` in the local database. If a user has *ever* had a trial on any subscription, they are permanently blocked from receiving another free trial if they upgrade or resubscribe. They will be charged immediately.\n\n---\n\n## Seat-Based Billing\n\nFor per-seat pricing with organizations:\n\n```ts\nplans: [\n  {\n    planId: \"plan_TEAM\",\n    name: \"team\",\n    quantity: 1, // enables seat-based billing\n  },\n],\n```\n\nWhen `quantity` is set and the organization plugin is enabled, the plugin automatically syncs the seat count with Razorpay whenever:\n\n- A member is **added** to the organization\n- A member is **removed** from the organization\n- An invitation is **accepted**\n\n---\n\n## Environment Variables\n\n```env\nRAZORPAY_KEY_ID=rzp_test_XXXXXXXXXX\nRAZORPAY_KEY_SECRET=YYYYYYYYYYYYYYYY\nRAZORPAY_WEBHOOK_SECRET=ZZZZZZZZZZZZZZZZ\n```\n\n---\n\n## License\n\nMIT\n","readmeFilename":"README.md"}