Confirm that merchant’s checkout. It cannot list or refund.
Base URL
Sandbox and production use the same base URL, https://api.parupay.com/v1. The key decides the mode: sk_test_ works in sandbox and sk_live_ in production.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"ONE9PAY Docs","colors":{"primary":"#f8bd49","light":"#ffc21a","dark":"#bd9022"},"logo":{"light":"/images/logo.png","dark":"/images/logo.png"},"favicon":"/images/favicon.svg","appearance":{"default":"dark"},"footer":{"socials":{"website":"https://one9pay.com"}},"integrations":{"telemetry":{"enabled":false}},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"hasAudioNarration":false,"customDomains":[],"gitSource":{"type":"github","owner":"local","repo":"local","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":"local","isBase":true},"buildId":"local","clientVersion":"0.0.4143"},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"googleFontsInlined":false,"isLoggedInCli":false,"mintExport":{}},"customCss":[],"page":{"pagePath":"authentication","slug":"/authentication","pageMetadata":{"title":"Authentication","description":"Every server call sends the secret key. Sandbox and live are different keys, and a key only sees payments created in that mode.","href":"/authentication"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Every server call sends the secret key. Sandbox and live are different keys, and a key only sees payments created in that mode.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={code:`code`,p:`p`,pre:`pre`,span:`span`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{CodeBlock,Heading,Table}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Every server call sends the secret key. Sandbox and live are different keys, and a key only sees payments created in that mode.`}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`http`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`http`,children:_jsxs(_components.code,{language:`http`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`Authorization`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` Bearer sk_test_…`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`Content-Type`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` application/json`})]}),`\n`]})})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Key`}),_jsx(_components.th,{children:`Where it lives`}),_jsx(_components.th,{children:`What it can do`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`sk_test_`})}),_jsx(_components.td,{children:`Your server`}),_jsx(_components.td,{children:`Sandbox payment links, payments, and webhooks.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`sk_live_`})}),_jsx(_components.td,{children:`Your server`}),_jsx(_components.td,{children:`Production payment links, payments, and webhooks.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`pk_`})}),_jsx(_components.td,{children:`Hosted checkout`}),_jsx(_components.td,{children:`Confirm that merchant’s checkout. It cannot list or refund.`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`base-url`,children:`Base URL`}),`\n`,_jsxs(_components.p,{children:[`Sandbox and production use the same base URL, `,_jsx(_components.code,{children:`https://api.parupay.com/v1`}),`. The key decides the mode: `,_jsx(_components.code,{children:`sk_test_`}),` works in sandbox and `,_jsx(_components.code,{children:`sk_live_`}),` in production.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Authentication","description":"Every server call sends the secret key. Sandbox and live are different keys, and a key only sees payments created in that mode.","href":"/authentication"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Base URL","slug":"base-url","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"localhost","siteName":"ONE9PAY Docs","title":"Authentication - ONE9PAY Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"originalFileLocation":"authentication.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"dark\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Every server call sends the secret key. Sandbox and live are different keys, and a key only sees payments created in that mode.\">\u003cmeta data-mint-head name=\"application-name\" content=\"ONE9PAY Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/favicons/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/favicons/favicon-32x32.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/favicons/favicon-16x16.png\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/favicons/favicon.ico\">\u003cmeta data-mint-head property=\"og:title\" content=\"Authentication - ONE9PAY Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Every server call sends the secret key. Sandbox and live are different keys, and a key only sees payments created in that mode.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"ONE9PAY Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://local./authentication\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Authentication - ONE9PAY Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Every server call sends the secret key. Sandbox and live are different keys, and a key only sees payments created in that mode.\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/favicons/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"ONE9PAY Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#f8bd49\">\u003clink data-mint-head rel=\"canonical\" href=\"https://local./authentication\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/authentication.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"ONE9PAY Docs\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"ONE9PAY Docs\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/authentication.md","siteName":"ONE9PAY Docs","nav":{"groups":[{"group":"Start","pages":[{"title":"Overview","href":"/index"},{"title":"Getting started","href":"/getting-started"}]},{"group":"Accept payments","pages":[{"title":"Pay by link","href":"/pay-by-link"},{"title":"Pay by bank","href":"/pay-by-bank"},{"title":"Pay by onramp","href":"/pay-by-onramp"},{"title":"Server-to-server payments","description":"Your PCI server creates the charge. Never put the card or secret key in a browser.","sidebarTitle":"Server-to-server","href":"/s2s"}]},{"group":"Developers","pages":[{"title":"Authentication","href":"/authentication"},{"title":"API reference","description":"Every endpoint your server uses, with the key it needs. All requests send Authorization: Bearer sk_test_… or sk_live_…, and only see data from that key's mode.","href":"/api-reference"},{"title":"Payment statuses","sidebarTitle":"Payment statuses","href":"/statuses"},{"title":"Webhooks","href":"/webhooks"},{"title":"Testing cards","href":"/testing-cards"},{"title":"Try the API","href":"/try"}]}]},"basePath":"","title":"Authentication - ONE9PAY Docs","buildId":"dpl_3Thaq6jB6L9VEQXwbJq8AYPLqKST","deploymentId":"dpl_3Thaq6jB6L9VEQXwbJq8AYPLqKST","dynamics":[],"chunks":[]}