Nkwa Pay provides a robust API for integrating mobile money payments into your applications. This guide explains how to authenticate your requests and use the API effectively.
When you create an account with Nkwa Pay, you first gain access to the sandbox environment, which is isolated from the production environment. This allows you to test your integration thoroughly before going live.The base URL differs for each environment. You can call specific operations by appending the endpoint to the appropriate base URL.
Nkwa Pay uses API key authentication for all requests. You can generate an API key from the Nkwa Pay portal, and each request must include this key in the X-API-KEY header.
You can configure a list of allowed IP addresses from which Nkwa Pay will accept API requests. This prevents unauthorized use of your API key even if it becomes compromised.To set up IP whitelisting:
Log in to the Nkwa Pay portal
Navigate to API Settings
Add the IP addresses that should be allowed to make API calls
The API provides an extra layer of security by returning a signature in the X-Sig response header. This allows you to verify that responses are genuinely from Nkwa Pay.
The signature is generated using the request body, timestamp, and URL, and is encrypted using the RS256 algorithm
You can find the public key for signature verification in the Nkwa Pay portal
We recommend validating this signature for sensitive operations
To ensure system stability, the API implements rate limiting. If you exceed the rate limits, you’ll receive a 429 Too Many Requests response.The current limits are:
100 requests per minute for sandbox environment
300 requests per minute for production environment
Use SDKs When Possible: Our language-specific SDKs handle much of the authentication and request formatting for you
Implement Proper Error Handling: Account for all possible API response codes in your application
Use Webhooks: Instead of polling for status updates, configure webhooks to receive real-time notifications
Test Thoroughly: Use the sandbox environment to test all aspects of your integration before going to production
Monitor Your Integration: Regularly check your API usage and payment success rates to identify potential issues
{"docsConfig":{"$schema":"https://mintlify.com/docs.json","theme":"mint","name":"Nkwa","colors":{"primary":"#09090b","light":"#EAE6E0","dark":"#18181b"},"favicon":"/logo/nkwa.png","logo":{"light":"https://mintcdn.com/nkwa/ABPvyqKx9GPzooC-/logo/nkwa.png?fit=max\u0026auto=format\u0026n=ABPvyqKx9GPzooC-\u0026q=85\u0026s=b00a6f8ae5684647aaabb2a74ef90e7f","dark":"https://mintcdn.com/nkwa/ABPvyqKx9GPzooC-/logo/nkwa.png?fit=max\u0026auto=format\u0026n=ABPvyqKx9GPzooC-\u0026q=85\u0026s=b00a6f8ae5684647aaabb2a74ef90e7f"},"background":{"decoration":null,"color":{"light":"#fafaf9","dark":"#0c0a09"}},"navbar":{"links":[{"label":"Support","href":"mailto:info@nkwa.com"}],"primary":{"type":"button","label":"Dashboard","href":"https://mynkwa.com"}},"footer":{"socials":{"x":"https://x.com/mynkwa","github":"https://github.com/nkwa","linkedin":"https://www.linkedin.com/company/nkwa-app"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"nkwa","hasAudioNarration":false,"actualSubdomain":"nkwa","customDomains":["docs.mynkwa.com"],"gitSource":{"type":"github","owner":"nkwa","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6a21a6a43d3709865082e4b8","collectionId":"e80ae8c6-b6de-4b87-a59f-89defeb3448b","schemaVersion":"v2"},"feedback":{"thumbs":false},"entitlements":{},"buildId":"6a21a6a43d3709865082e4b8:success","clientVersion":"0.0.3965","searchFilterCounts":[{"language":"default","tag":"Documentation","count":24},{"language":"default","tag":"Nkwa Pay","count":14},{"language":"default","tag":"Get Started","count":10},{"language":"default","tag":"API Reference","count":6},{"language":"default","tag":"API Documentation","count":1},{"language":"default","tag":"Home","count":1}]},"assistantConfig":{},"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}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"nkwapay/using-the-api","slug":"/nkwapay/using-the-api","pageMetadata":{"title":"Using the API","description":"Learn how to authenticate and use the Nkwa Pay API, including environment endpoints, API key management, and additional security features.","href":"/nkwapay/using-the-api","hidden":false},"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: \"Learn how to authenticate and use the Nkwa Pay API, including environment endpoints, API key management, and additional security features.\"\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`,ol:`ol`,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:[_jsx(Heading,{level:`1`,id:`using-the-nkwa-pay-api`,children:`Using the Nkwa Pay API`}),`\n`,_jsx(_components.p,{children:`Nkwa Pay provides a robust API for integrating mobile money payments into your applications. This guide explains how to authenticate your requests and use the API effectively.`}),`\n`,_jsx(Heading,{level:`2`,id:`api-environments`,children:`API Environments`}),`\n`,_jsx(_components.p,{children:`When you create an account with Nkwa Pay, you first gain access to the sandbox environment, which is isolated from the production environment. This allows you to test your integration thoroughly before going live.`}),`\n`,_jsx(_components.p,{children:`The base URL differs for each environment. You can call specific operations by appending the endpoint to the appropriate base URL.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Environment`}),_jsx(_components.th,{children:`Base URL`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Sandbox`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`https://api.pay.staging.mynkwa.com/`,children:`https://api.pay.staging.mynkwa.com/`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Production`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`https://api.pay.mynkwa.com/`,children:`https://api.pay.mynkwa.com/`})})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`authentication`,children:`Authentication`}),`\n`,_jsxs(_components.p,{children:[`Nkwa Pay uses API key authentication for all requests. You can generate an API key from the Nkwa Pay portal, and each request must include this key in the `,_jsx(_components.code,{children:`X-API-KEY`}),` header.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,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:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://api.pay.staging.mynkwa.com/payments/:id`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"X-API-KEY: your_api_key\"`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`If the API key is revoked or invalid, the request will return a `,_jsx(_components.code,{children:`401 Unauthorized`}),` response.`]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Never share your API keys or embed them directly in client-side code. Always store API keys securely and use server-side code to make API requests.`})}),`\n`,_jsx(Heading,{level:`2`,id:`additional-security-layers`,children:`Additional Security Layers`}),`\n`,_jsx(_components.p,{children:`Nkwa Pay offers several additional security features to protect your integration:`}),`\n`,_jsx(Heading,{level:`3`,id:`1-ip-whitelisting`,children:`1. IP Whitelisting`}),`\n`,_jsx(_components.p,{children:`You can configure a list of allowed IP addresses from which Nkwa Pay will accept API requests. This prevents unauthorized use of your API key even if it becomes compromised.`}),`\n`,_jsx(_components.p,{children:`To set up IP whitelisting:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Log in to the Nkwa Pay portal`}),`\n`,_jsx(_components.li,{children:`Navigate to API Settings`}),`\n`,_jsx(_components.li,{children:`Add the IP addresses that should be allowed to make API calls`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`2-request-signatures`,children:`2. Request Signatures`}),`\n`,_jsxs(_components.p,{children:[`The API provides an extra layer of security by returning a signature in the `,_jsx(_components.code,{children:`X-Sig`}),` response header. This allows you to verify that responses are genuinely from Nkwa Pay.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`The signature is generated using the request body, timestamp, and URL, and is encrypted using the `,_jsx(_components.code,{children:`RS256`}),` algorithm`]}),`\n`,_jsx(_components.li,{children:`You can find the public key for signature verification in the Nkwa Pay portal`}),`\n`,_jsx(_components.li,{children:`We recommend validating this signature for sensitive operations`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`3-request-encryption`,children:`3. Request Encryption`}),`\n`,_jsx(_components.p,{children:`For maximum security, you can enable request encryption:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`If enabled, you will need to include a signature in the `,_jsx(_components.code,{children:`X-Sig`}),` request header, generated using the `,_jsx(_components.code,{children:`RS256`}),` algorithm and signed with your private key`]}),`\n`,_jsx(_components.li,{children:`You’ll need to upload your public key to the Nkwa Pay portal so we can verify your requests`}),`\n`,_jsx(_components.li,{children:`This ensures that even if your API communication is intercepted, the contents remain secure`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`api-request-flow`,children:`API Request Flow`}),`\n`,_jsx(_components.p,{children:`A typical API request flow follows these steps:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Prepare Request`}),`: Construct your API request with the required parameters`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Add Authentication`}),`: Include your API key in the `,_jsx(_components.code,{children:`X-API-KEY`}),` header`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Send Request`}),`: Send the request to the appropriate endpoint`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Process Response`}),`: Handle the API response in your application`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Verify Signature`}),`: For sensitive operations, verify the signature in the `,_jsx(_components.code,{children:`X-Sig`}),` header`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`api-response-codes`,children:`API Response Codes`}),`\n`,_jsx(_components.p,{children:`The API uses standard HTTP response codes to indicate success or failure:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`2xx`}),`: Success (e.g., `,_jsx(_components.code,{children:`200 OK`}),`, `,_jsx(_components.code,{children:`201 Created`}),`)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`4xx`}),`: Client error (e.g., `,_jsx(_components.code,{children:`400 Bad Request`}),`, `,_jsx(_components.code,{children:`401 Unauthorized`}),`, `,_jsx(_components.code,{children:`403 Forbidden`}),`, `,_jsx(_components.code,{children:`404 Not Found`}),`)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`5xx`}),`: Server error (e.g., `,_jsx(_components.code,{children:`500 Internal Server Error`}),`)`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`rate-limiting`,children:`Rate Limiting`}),`\n`,_jsxs(_components.p,{children:[`To ensure system stability, the API implements rate limiting. If you exceed the rate limits, you’ll receive a `,_jsx(_components.code,{children:`429 Too Many Requests`}),` response.`]}),`\n`,_jsx(_components.p,{children:`The current limits are:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`100 requests per minute for sandbox environment`}),`\n`,_jsx(_components.li,{children:`300 requests per minute for production environment`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`best-practices`,children:`Best Practices`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Use SDKs When Possible`}),`: Our `,_jsx(_components.a,{href:`/nkwapay/sdk`,children:`language-specific SDKs`}),` handle much of the authentication and request formatting for you`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Implement Proper Error Handling`}),`: Account for all possible API response codes in your application`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Use Webhooks`}),`: Instead of polling for status updates, configure webhooks to receive real-time notifications`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Test Thoroughly`}),`: Use the sandbox environment to test all aspects of your integration before going to production`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Monitor Your Integration`}),`: Regularly check your API usage and payment success rates to identify potential issues`]}),`\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":"Using the API","description":"Learn how to authenticate and use the Nkwa Pay API, including environment endpoints, API key management, and additional security features.","href":"/nkwapay/using-the-api","hidden":false}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Using the Nkwa Pay API","slug":"using-the-nkwa-pay-api","depth":1,"children":[]},{"title":"API Environments","slug":"api-environments","depth":2,"children":[]},{"title":"Authentication","slug":"authentication","depth":2,"children":[]},{"title":"Additional Security Layers","slug":"additional-security-layers","depth":2,"children":[{"title":"1. IP Whitelisting","slug":"1-ip-whitelisting","depth":3,"children":[]},{"title":"2. Request Signatures","slug":"2-request-signatures","depth":3,"children":[]},{"title":"3. Request Encryption","slug":"3-request-encryption","depth":3,"children":[]}]},{"title":"API Request Flow","slug":"api-request-flow","depth":2,"children":[]},{"title":"API Response Codes","slug":"api-response-codes","depth":2,"children":[]},{"title":"Rate Limiting","slug":"rate-limiting","depth":2,"children":[]},{"title":"Best Practices","slug":"best-practices","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"nkwa","siteName":"Nkwa","title":"Using the API - Nkwa","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-01-07T02:46:38.745Z","originalFileLocation":"nkwapay/using-the-api.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=\"Learn how to authenticate and use the Nkwa Pay API, including environment endpoints, API key management, and additional security features.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Nkwa\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/nkwa/BY3tx4Sf0Dj6R37z/_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/nkwa/BY3tx4Sf0Dj6R37z/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/nkwa/BY3tx4Sf0Dj6R37z/_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/nkwa/BY3tx4Sf0Dj6R37z/_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/nkwa/BY3tx4Sf0Dj6R37z/_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/nkwa/BY3tx4Sf0Dj6R37z/_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/nkwa/BY3tx4Sf0Dj6R37z/_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/nkwa/BY3tx4Sf0Dj6R37z/_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/nkwa/BY3tx4Sf0Dj6R37z/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Using the API - Nkwa\">\u003cmeta data-mint-head property=\"og:description\" content=\"Learn how to authenticate and use the Nkwa Pay API, including environment endpoints, API key management, and additional security features.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Nkwa\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.mynkwa.com/nkwapay/using-the-api\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://nkwa.mintlify.app/_mintlify/api/og/v2?division=Nkwa+Pay\u0026amp;title=Using+the+API\u0026amp;description=Learn+how+to+authenticate+and+use+the+Nkwa+Pay+API%2C+including+environment+endpoints%2C+API+key+management%2C+and+additional+security+features.\u0026amp;theme=f73ca055bfbd6e3dfe46e38a\u0026amp;signature=2cbfedf1d7a943fe069e59410e0423dd5f13bad910790877559aac223ae05ecf\">\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=\"Using the API - Nkwa\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Learn how to authenticate and use the Nkwa Pay API, including environment endpoints, API key management, and additional security features.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://nkwa.mintlify.app/_mintlify/api/og/v2?division=Nkwa+Pay\u0026amp;title=Using+the+API\u0026amp;description=Learn+how+to+authenticate+and+use+the+Nkwa+Pay+API%2C+including+environment+endpoints%2C+API+key+management%2C+and+additional+security+features.\u0026amp;theme=f73ca055bfbd6e3dfe46e38a\u0026amp;signature=2cbfedf1d7a943fe069e59410e0423dd5f13bad910790877559aac223ae05ecf\">\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/nkwa/BY3tx4Sf0Dj6R37z/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Nkwa\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#09090b\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.mynkwa.com/nkwapay/using-the-api\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/nkwapay/using-the-api.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.mynkwa.com/#organization\",\"name\":\"Nkwa\",\"url\":\"https://docs.mynkwa.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/nkwa/ABPvyqKx9GPzooC-/logo/nkwa.png?fit=max\u0026auto=format\u0026n=ABPvyqKx9GPzooC-\u0026q=85\u0026s=b00a6f8ae5684647aaabb2a74ef90e7f\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.mynkwa.com#website\",\"name\":\"Nkwa\",\"url\":\"https://docs.mynkwa.com\",\"publisher\":{\"@id\":\"https://docs.mynkwa.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.mynkwa.com/nkwapay/using-the-api#webpage\",\"url\":\"https://docs.mynkwa.com/nkwapay/using-the-api\",\"name\":\"Using the API\",\"description\":\"Learn how to authenticate and use the Nkwa Pay API, including environment endpoints, API key management, and additional security features.\",\"dateModified\":\"2026-01-07T02:46:38.745Z\",\"isPartOf\":{\"@id\":\"https://docs.mynkwa.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.mynkwa.com/nkwapay/using-the-api#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.mynkwa.com/nkwapay/using-the-api#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Get Started\",\"item\":\"https://docs.mynkwa.com/nkwapay/introduction\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Nkwa Pay\",\"item\":\"https://docs.mynkwa.com/nkwapay/introduction\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Using the API\",\"item\":\"https://docs.mynkwa.com/nkwapay/using-the-api\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.mynkwa.com/nkwapay/using-the-api#article\",\"headline\":\"Using the API\",\"name\":\"Using the API\",\"description\":\"Learn how to authenticate and use the Nkwa Pay API, including environment endpoints, API key management, and additional security features.\",\"url\":\"https://docs.mynkwa.com/nkwapay/using-the-api\",\"mainEntityOfPage\":{\"@id\":\"https://docs.mynkwa.com/nkwapay/using-the-api#webpage\"},\"dateModified\":\"2026-01-07T02:46:38.745Z\",\"publisher\":{\"@id\":\"https://docs.mynkwa.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.mynkwa.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Nkwa\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Nkwa","nav":{"global":null,"anchors":[{"anchor":"Documentation","icon":"book-open","tabs":[{"tab":"Documentation","groups":[{"group":"Get Started","pages":[{"group":"Nkwa Pay","pages":[{"title":"Introduction","href":"/nkwapay/introduction"},{"title":"Implementation Guide","description":"Learn how to integrate Nkwa Pay's mobile money payment infrastructure with our asynchronous API design, webhook system, and MNO stability features.","href":"/nkwapay/implementation"},{"title":"Using the API","href":"/nkwapay/using-the-api"},{"title":"Collection","description":"Accept mobile money payments from your customers with Nkwa Pay's collection API, supporting both MTN and Orange mobile networks in Cameroon.","href":"/nkwapay/collection"},{"title":"Disbursement","href":"/nkwapay/disbursement"},{"title":"Refunds","href":"/nkwapay/refund"},{"title":"SDK","href":"/nkwapay/sdk"},{"title":"Example Integrations","href":"/nkwapay/examples"},{"title":"FAQ","href":"/nkwapay/faq"}]}]}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/introduction"}]}]},{"anchor":"Home","icon":"book-open-cover","pages":[{"title":"Home","href":"/introduction"}]},{"anchor":"Blog \u0026 Tutorials","href":"https://mynkwa.medium.com","icon":"newspaper"},{"anchor":"GitHub","href":"https://github.com/nkwa","icon":"github"}]},"title":"Using the API - Nkwa","buildId":"dpl_849ArpqvBiCczQiT1Y1stNGpbqHT","deploymentId":"dpl_849ArpqvBiCczQiT1Y1stNGpbqHT","dynamics":[],"chunks":[]}