Never expose your secret key in client-side code, browser JavaScript, mobile app bundles, or public repositories. Rotate your keys immediately if you suspect they’ve been compromised.
This is what the JavaScript widget and mobile SDKs use, since it’s safe to ship in code a customer’s device can inspect — it can’t be used to list your transactions, create virtual accounts, or do anything beyond starting a single checkout.Any other endpoint called with a public key returns:
{ "status": false, "message": "Public key authentication is only permitted for checkout initialization." }
Every key comes in a live and test pair. Payracle detects which mode you’re in automatically from which literal key you send — there’s no separate mode flag to set. Test mode calls never move real money:
Virtual accounts and checkouts created with sk_test_... / pk_test_... generate fake sandbox account numbers instead of calling SafeHaven/Paga/PalmPay.
Sandbox checkouts can be marked paid via POST /v1/checkout/sandbox/simulate — see Checkout & Dynamic Accounts.
Optionally restrict a secret key to specific IPs from Developer › API Keys. Requests from any other IP get:
{ "status": false, "message": "Request IP is not whitelisted." }
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Payracle","colors":{"primary":"#1463F3","light":"#84A9FF","dark":"#0A40B7"},"favicon":"https://mintcdn.com/payracle/JcWPI3iPMytQi_ux/favicon.png?fit=max\u0026auto=format\u0026n=JcWPI3iPMytQi_ux\u0026q=85\u0026s=d17e8c7305a154c8120835f8ebe03daf","navbar":{"links":[{"href":"https://payracle.com","label":"Dashboard"}],"primary":{"type":"button","label":"Sign Up","href":"https://payracle.com/sign-up"}},"footer":{"socials":{}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"payracle","hasAudioNarration":false,"actualSubdomain":"payracle","customDomains":["docs.payracle.com"],"gitSource":{"type":"github","owner":"nece-dev","repo":"payracledocs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6a91d8fe241521b6fce85bb9","collectionId":"7173ead4-fa7a-40eb-a593-0251e306b3fd","liveDeploymentHistoryId":"6a91d8fe241521b6fce85bb9","schemaVersion":"v3"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6a91d8fe241521b6fce85bb9","clientVersion":"0.0.3966","searchFilterCounts":[{"language":"default","tag":"API Reference","count":11},{"language":"default","tag":"Virtual Accounts","count":5},{"language":"default","tag":"Checkout \u0026 Dynamic Accounts","count":4},{"language":"default","tag":"Get Started","count":3},{"language":"default","tag":"SDKs \u0026 Libraries","count":3},{"language":"default","tag":"Webhooks","count":2},{"language":"default","tag":"Changelog","count":1}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"privacy":{"consentBanner":{"enabled":true}},"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"authentication","slug":"/authentication","pageMetadata":{"title":"Authentication","description":"How to authenticate requests to the Payracle API","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: \"How to authenticate requests to the Payracle API\"\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={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Table,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Payracle uses two kinds of API keys, each with a live and test variant. Find both in your dashboard under `,_jsx(_components.strong,{children:`Developer › API Keys`}),`.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Key`}),_jsx(_components.th,{children:`Prefix`}),_jsx(_components.th,{children:`Where it’s used`}),_jsx(_components.th,{children:`Can call`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Secret key`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`sk_live_...`}),` / `,_jsx(_components.code,{children:`sk_test_...`})]}),_jsx(_components.td,{children:`Your own backend, server-side only`}),_jsx(_components.td,{children:`Every endpoint below`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Public key`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`pk_live_...`}),` / `,_jsx(_components.code,{children:`pk_test_...`})]}),_jsx(_components.td,{children:`Client-side (browser, mobile app)`}),_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`Only`}),` checkout initialization`]})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`secret-key`,children:`Secret key`}),`\n`,_jsx(_components.p,{children:`Pass it as a Bearer token on every request:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,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:`1`,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_live_YOUR_SECRET_KEY`})]}),`\n`]})})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`shellscript`,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:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` GET`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://api.payracle.com/api/v1/virtual-accounts\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer sk_live_YOUR_SECRET_KEY\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`})]}),`\n`]})})}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Never expose your secret key in client-side code, browser JavaScript, mobile app bundles, or public repositories. Rotate your keys immediately if you suspect they’ve been compromised.`})}),`\n`,_jsx(Heading,{level:`2`,id:`public-key`,children:`Public key`}),`\n`,_jsxs(_components.p,{children:[`The public key is deliberately restricted — it can `,_jsx(_components.strong,{children:`only`}),` call `,_jsx(_components.code,{children:`POST /v1/checkout/initialize`}),`, and requires an extra header identifying your business:`]}),`\n`,_jsx(CodeBlock,{filename:``,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 pk_live_YOUR_PUBLIC_KEY`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`X-Business-ID`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` biz_your_business_id`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`This is what the `,_jsx(_components.a,{href:`/sdks/javascript`,children:`JavaScript widget`}),` and mobile SDKs use, since it’s safe to ship in code a customer’s device can inspect — it can’t be used to list your transactions, create virtual accounts, or do anything beyond starting a single checkout.`]}),`\n`,_jsx(_components.p,{children:`Any other endpoint called with a public key returns:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`json`,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:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{ `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"status\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"message\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Public key authentication is only permitted for checkout initialization.\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`live-vs-test-mode`,children:`Live vs test mode`}),`\n`,_jsx(_components.p,{children:`Every key comes in a live and test pair. Payracle detects which mode you’re in automatically from which literal key you send — there’s no separate mode flag to set. Test mode calls never move real money:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Virtual accounts and checkouts created with `,_jsx(_components.code,{children:`sk_test_...`}),` / `,_jsx(_components.code,{children:`pk_test_...`}),` generate fake sandbox account numbers instead of calling SafeHaven/Paga/PalmPay.`]}),`\n`,_jsxs(_components.li,{children:[`Sandbox checkouts can be marked paid via `,_jsx(_components.code,{children:`POST /v1/checkout/sandbox/simulate`}),` — see `,_jsx(_components.a,{href:`/checkout/overview`,children:`Checkout \u0026 Dynamic Accounts`}),`.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`ip-whitelisting`,children:`IP whitelisting`}),`\n`,_jsxs(_components.p,{children:[`Optionally restrict a secret key to specific IPs from `,_jsx(_components.strong,{children:`Developer › API Keys`}),`. Requests from any other IP get:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`json`,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:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{ `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"status\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"message\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Request IP is not whitelisted.\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`]})})})]})}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":"How to authenticate requests to the Payracle API","href":"/authentication"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Secret key","slug":"secret-key","depth":2,"children":[]},{"title":"Public key","slug":"public-key","depth":2,"children":[]},{"title":"Live vs test mode","slug":"live-vs-test-mode","depth":2,"children":[]},{"title":"IP whitelisting","slug":"ip-whitelisting","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"payracle","siteName":"Payracle","title":"Authentication - Payracle","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-28T14:03:56.384Z","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=\"system\"}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=\"How to authenticate requests to the Payracle API\">\u003cmeta data-mint-head name=\"application-name\" content=\"Payracle\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/payracle/51MXASPFDRpErZIY/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/payracle/51MXASPFDRpErZIY/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/payracle/51MXASPFDRpErZIY/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/payracle/51MXASPFDRpErZIY/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/payracle/51MXASPFDRpErZIY/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/payracle/51MXASPFDRpErZIY/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/payracle/51MXASPFDRpErZIY/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/payracle/51MXASPFDRpErZIY/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/payracle/51MXASPFDRpErZIY/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Authentication - Payracle\">\u003cmeta data-mint-head property=\"og:description\" content=\"How to authenticate requests to the Payracle API\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Payracle\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.payracle.com/authentication\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://payracle.mintlify.app/_mintlify/api/og/v2?division=Get+Started\u0026amp;title=Authentication\u0026amp;description=How+to+authenticate+requests+to+the+Payracle+API\u0026amp;theme=a1bd25809065c6590e396cbe\u0026amp;signature=0f883e41efe602be3a7f8da36c10bea4c6343781be5e62f644b80828b1c6b914\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Authentication - Payracle\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"How to authenticate requests to the Payracle API\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://payracle.mintlify.app/_mintlify/api/og/v2?division=Get+Started\u0026amp;title=Authentication\u0026amp;description=How+to+authenticate+requests+to+the+Payracle+API\u0026amp;theme=a1bd25809065c6590e396cbe\u0026amp;signature=0f883e41efe602be3a7f8da36c10bea4c6343781be5e62f644b80828b1c6b914\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/payracle/51MXASPFDRpErZIY/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Payracle\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1463F3\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.payracle.com/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\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.payracle.com/#organization\",\"name\":\"Payracle\",\"url\":\"https://docs.payracle.com\"},{\"@type\":\"WebSite\",\"@id\":\"https://docs.payracle.com#website\",\"name\":\"Payracle\",\"url\":\"https://docs.payracle.com\",\"publisher\":{\"@id\":\"https://docs.payracle.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.payracle.com/authentication#webpage\",\"url\":\"https://docs.payracle.com/authentication\",\"name\":\"Authentication\",\"description\":\"How to authenticate requests to the Payracle API\",\"dateModified\":\"2026-08-28T14:03:56.384Z\",\"isPartOf\":{\"@id\":\"https://docs.payracle.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.payracle.com/authentication#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.payracle.com/authentication#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Get Started\",\"item\":\"https://docs.payracle.com/getting-started\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Authentication\",\"item\":\"https://docs.payracle.com/authentication\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.payracle.com/authentication#article\",\"headline\":\"Authentication\",\"name\":\"Authentication\",\"description\":\"How to authenticate requests to the Payracle API\",\"url\":\"https://docs.payracle.com/authentication\",\"mainEntityOfPage\":{\"@id\":\"https://docs.payracle.com/authentication#webpage\"},\"dateModified\":\"2026-08-28T14:03:56.384Z\",\"publisher\":{\"@id\":\"https://docs.payracle.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.payracle.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Payracle\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Payracle","nav":{"global":null,"groups":[{"group":"Get Started","pages":[{"title":"Getting Started","description":"Overview of the Payracle API","href":"/getting-started"},{"title":"Authentication","href":"/authentication"},{"title":"Error Codes","description":"HTTP status codes and error response formats","href":"/error-codes"}]},{"group":"SDKs \u0026 Libraries","pages":[{"title":"Flutter SDK","href":"/sdks/flutter"},{"title":"React Native SDK","href":"/sdks/react-native"},{"title":"JavaScript (Inline Widget)","href":"/sdks/javascript"}]},{"group":"API Reference","pages":[{"group":"Virtual Accounts","pages":[{"title":"Create a Virtual Account","openapi":"openapi.json POST /virtual-accounts","href":"/virtual-accounts/create"},{"title":"Multi-Provider Requests","openapi":"openapi.json POST /virtual-accounts","href":"/virtual-accounts/multi-provider"},{"title":"List Virtual Accounts","openapi":"openapi.json GET /virtual-accounts","href":"/virtual-accounts/list"},{"title":"Retrieve a Virtual Account","openapi":"openapi.json GET /virtual-accounts/{id}","href":"/virtual-accounts/retrieve"},{"title":"Delete a Virtual Account","openapi":"openapi.json DELETE /virtual-accounts/{id}","href":"/virtual-accounts/delete"}]},{"group":"Checkout \u0026 Dynamic Accounts","pages":[{"title":"Overview","href":"/checkout/overview"},{"title":"Initialize a Checkout","openapi":"openapi.json POST /checkout/initialize","href":"/checkout/initialize"},{"title":"Verify a Checkout","openapi":"openapi.json GET /checkout/verify/{reference}","href":"/checkout/verify"},{"title":"Sandbox Simulate","openapi":"openapi.json POST /checkout/sandbox/simulate","href":"/checkout/simulate"}]},{"group":"Webhooks","pages":[{"title":"Overview","href":"/webhooks/overview"},{"title":"Verifying Signatures","href":"/webhooks/signatures"}]}]},{"group":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]}]},"title":"Authentication - Payracle","buildId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","deploymentId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","dynamics":[],"chunks":[]}