{
"error": {
"code": "insufficient_funds",
"message": "Not enough available balance for MWK 25,000.00.",
"field": "<string>"
}
}
Payments
Create a payment
Collects money from a customer’s mobile money account into the account that owns the API key. The customer approves it on their phone, so the final result arrives later by webhook.
A new value for every new payment (a UUID is ideal), 8 to 255 characters. If your request times out, send it again with the same key to get the first result back instead of a second payment. The same key with a different body is refused.
Sends this payment's webhooks here as well as to your endpoints. Must be HTTPS, on one of your webhook or allowed callback hosts. Required if you have no webhook endpoint.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"PrimePay","colors":{"primary":"#09000D","light":"#EBCC00","dark":"#09000D"},"logo":{"light":"https://mintcdn.com/prosystems-tech/rcMYSU1YPPUUcDzf/logo/primepay-v3-light.png?fit=max\u0026auto=format\u0026n=rcMYSU1YPPUUcDzf\u0026q=85\u0026s=eb5592018cf5323277a3135853fc9d6d","dark":"https://mintcdn.com/prosystems-tech/rcMYSU1YPPUUcDzf/logo/primepay-v3-dark.png?fit=max\u0026auto=format\u0026n=rcMYSU1YPPUUcDzf\u0026q=85\u0026s=ef373fc158fa9e283a01388a72fdf696"},"favicon":"https://mintcdn.com/prosystems-tech/b52CKE3uGy6vUOXL/logo/primepay-yellow.png?fit=max\u0026auto=format\u0026n=b52CKE3uGy6vUOXL\u0026q=85\u0026s=2780e0e1e5910c8dd14e61055baf15e5","background":{"color":{"dark":"#000000"}},"navbar":{"links":[{"href":"https://primepay.mw/help","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://dashboard.primepay.mw/"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"prosystems-tech","hasAudioNarration":false,"actualSubdomain":"prosystems-tech","customDomains":["docs.primepay.mw"],"gitSource":{"type":"github","owner":"prosystemstechltd-company","repo":"primepay-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":"","_id":"6af44b9d566700d04ef4b621"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af5eaf304140d5ce9d767c7","clientVersion":"0.0.4111","searchFilterCounts":[{"language":"default","tag":"API Reference","count":30},{"language":"default","tag":"Docs","count":10},{"language":"default","tag":"Get started","count":7},{"language":"default","tag":"Payouts","count":7},{"language":"default","tag":"Payment links","count":6},{"language":"default","tag":"Transfers","count":6},{"language":"default","tag":"Recipes","count":6},{"language":"default","tag":"Payments","count":5},{"language":"default","tag":"Checkout sessions","count":3},{"language":"default","tag":"Refunds","count":3}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","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":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","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":"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":"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":"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":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","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":"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":"workos-sso-scim","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},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/payments/create-a-payment","slug":"/api-reference/payments/create-a-payment","pageMetadata":{"title":"Create a payment","description":"Collects money from a customer's mobile money account into the account that owns the API key. The customer approves it on their phone, so the final result arrives later by webhook.\n\nGuide: [how a payment runs](/api-reference/payments-overview#how-a-payment-runs) and [payment errors](/api-reference/payments-overview#payment-errors).\n","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/payments/mobile-money","href":"/api-reference/payments/create-a-payment","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Collects money from a customer’s mobile money account into the account that owns the API key. The customer approves it on their phone, so the final result arrives later by webhook.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Guide: \", _jsx(_components.a, {\n href: \"/api-reference/payments-overview#how-a-payment-runs\",\n children: \"how a payment runs\"\n }), \" and \", _jsx(_components.a, {\n href: \"/api-reference/payments-overview#payment-errors\",\n children: \"payment errors\"\n }), \".\"]\n })]\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}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Create a payment","description":"Collects money from a customer's mobile money account into the account that owns the API key. The customer approves it on their phone, so the final result arrives later by webhook.\n\nGuide: [how a payment runs](/api-reference/payments-overview#how-a-payment-runs) and [payment errors](/api-reference/payments-overview#payment-errors).\n","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/payments/mobile-money","href":"/api-reference/payments/create-a-payment","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Payments"],"summary":"Create a payment","operationId":"createPayment","description":"Collects money from a customer's mobile money account into the account that owns the API key. The customer approves it on their phone, so the final result arrives later by webhook.\n\nGuide: [how a payment runs](/api-reference/payments-overview#how-a-payment-runs) and [payment errors](/api-reference/payments-overview#payment-errors).\n","parameters":["6cc4fda7-ddf6-4efe-9522-3ae93f3d4f16"],"requestBody":"a288ddf4-100b-45d3-9b1e-299268b13f12","responses":{"202":"2b08b262-1f93-4740-9862-dbb0a0db660c","400":"5837db2d-c187-4893-87da-8fc23061079a","402":"f24524e2-44b7-4181-b6e7-f5ab4feb82b6","409":"79e0caaa-8a8e-4de3-8bf3-da59d725fcd9"},"method":"post","type":"path","servers":["d911aee0-b44b-48be-9f3a-fd7b00e1e819","405140b9-f90a-47e4-aeaa-9946817b93f4"],"security":["f2d79d5d-613e-429d-be97-e78e77778c27"],"path":"/v1/payments/mobile-money","baseUrlOptions":["https://api.primepay.mw","https://sandbox-api.primepay.mw"],"title":"Create a payment","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"6cc4fda7-ddf6-4efe-9522-3ae93f3d4f16":{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":255,"example":"6f1c2b9e8a6d4c1f9b0e3a7d5c2f8e10","isRequired":true,"description":"A new value for every new payment (a UUID is ideal), 8 to 255 characters. If your request times out, send it again with the same key to get the first result back instead of a second payment. The same key with a different body is refused.\n","uniqueKey":"","typeLabel":"string"},"description":"A new value for every new payment (a UUID is ideal), 8 to 255 characters. If your request times out, send it again with the same key to get the first result back instead of a second payment. The same key with a different body is refused.\n"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["amount","currency","customerPhone","provider","merchantOrderId"],"properties":{"amount":{"type":"number","description":"What your customer owes. Depending on your fee setting, the customer may pay PrimePay's fee on top.","example":25000,"isRequired":true,"uniqueKey":"amount","typeLabel":"number"},"currency":{"type":"string","enum":["MWK"],"isRequired":true,"uniqueKey":"currency","typeLabel":"enum\u003cstring>"},"customerPhone":{"type":"string","description":"International format, `+265` and 9 digits. Must belong to the operator.","example":"+265991234567","isRequired":true,"uniqueKey":"customerPhone","typeLabel":"string"},"provider":{"type":"string","description":"An operator `refId` from [List mobile money operators](/api-reference/operators/list-mobile-money-operators).","example":"7d51b653-3c6d-46eb-b3d9-7852dfee5b26","isRequired":true,"uniqueKey":"provider","typeLabel":"string"},"merchantOrderId":{"type":"string","maxLength":64,"description":"Your order or invoice number (letters, digits, `- _ . /`). One active or paid payment per order.","example":"ORDER-5531","isRequired":true,"uniqueKey":"merchantOrderId","typeLabel":"string"},"description":{"type":"string","maxLength":140,"example":"2 x School shoes","uniqueKey":"description","typeLabel":"string"},"email":{"type":"string","description":"The customer's email, for receipts and your records.","example":"customer@example.com","uniqueKey":"email","typeLabel":"string"},"firstName":{"type":"string","example":"Chikondi","uniqueKey":"firstName","typeLabel":"string"},"lastName":{"type":"string","example":"Banda","uniqueKey":"lastName","typeLabel":"string"},"callbackUrl":{"type":"string","description":"Sends this payment's webhooks here as well as to your endpoints. Must be HTTPS, on one of your webhook or allowed callback hosts. Required if you have no webhook endpoint.","example":"https://api.yourshop.mw/webhooks/primepay","uniqueKey":"callbackUrl","typeLabel":"string"},"metadata":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"metadata.additionalProperties","typeLabel":"string"},"description":"Your own key/value pairs, echoed back in webhooks.","example":{"cart":"88412"},"uniqueKey":"metadata","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"amount":25000,"currency":"MWK","customerPhone":"+265991234567","provider":"7d51b653-3c6d-46eb-b3d9-7852dfee5b26","merchantOrderId":"ORDER-5531","description":"2 x School shoes","email":"customer@example.com","firstName":"Chikondi","lastName":"Banda","callbackUrl":"https://api.yourshop.mw/webhooks/primepay","metadata":{"cart":"88412"}}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"2b08b262-1f93-4740-9862-dbb0a0db660c":{"description":"Accepted while the customer approves the payment.","content":{"application/json":{"schema":{"type":"object","properties":{"reference":{"type":"string","example":"TXN-WRYF6S2W3DQW","uniqueKey":"reference","typeLabel":"string"},"status":{"type":"string","enum":["pending","processing","success","failed","expired","cancelled","reversed"],"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"amount":{"type":"number","uniqueKey":"amount","typeLabel":"number"},"fee":{"type":"number","uniqueKey":"fee","typeLabel":"number"},"currency":{"type":"string","example":"MWK","uniqueKey":"currency","typeLabel":"string"},"merchantOrderId":{"type":"string","uniqueKey":"merchantOrderId","typeLabel":"string"},"failureCode":{"oneOf":[{"type":"string","uniqueKey":"failureCode.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"failureCode.oneOf.1","typeLabel":"null"}],"uniqueKey":"failureCode","typeLabel":"string | null"},"createdAt":{"type":"string","format":"date-time","uniqueKey":"createdAt","typeLabel":"string\u003cdate-time>"},"completedAt":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"completedAt.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"completedAt.oneOf.1","typeLabel":"null"}],"uniqueKey":"completedAt","typeLabel":"string\u003cdate-time> | null"},"subMerchantAccountCode":{"oneOf":[{"type":"string","description":"Set when the payment was collected for a sub-merchant.","uniqueKey":"subMerchantAccountCode.oneOf.0","typeLabel":"string"},{"type":"null","description":"Set when the payment was collected for a sub-merchant.","uniqueKey":"subMerchantAccountCode.oneOf.1","typeLabel":"null"}],"uniqueKey":"subMerchantAccountCode","typeLabel":"string | null"},"subMerchantName":{"oneOf":[{"type":"string","uniqueKey":"subMerchantName.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"subMerchantName.oneOf.1","typeLabel":"null"}],"uniqueKey":"subMerchantName","typeLabel":"string | null"},"aggregatorFee":{"oneOf":[{"type":"number","description":"The fee you keep as the aggregator.","uniqueKey":"aggregatorFee.oneOf.0","typeLabel":"number"},{"type":"null","description":"The fee you keep as the aggregator.","uniqueKey":"aggregatorFee.oneOf.1","typeLabel":"null"}],"uniqueKey":"aggregatorFee","typeLabel":"number | null"}},"uniqueKey":"","typeLabel":"object"},"example":{"reference":"TXN-WRYF6S2W3DQW","status":"processing","amount":25000,"currency":"MWK","merchantOrderId":"ORDER-5531","failureCode":null,"createdAt":"2026-11-09T10:15:02Z","subMerchantAccountCode":null,"subMerchantName":null,"aggregatorFee":null},"examples":{"Example":{"title":"Example","value":{"reference":"TXN-WRYF6S2W3DQW","status":"processing","amount":25000,"currency":"MWK","merchantOrderId":"ORDER-5531","failureCode":null,"createdAt":"2026-11-09T10:15:02Z","subMerchantAccountCode":null,"subMerchantName":null,"aggregatorFee":null}}},"exampleType":"examples"}},"exampleType":"examples"},"5837db2d-c187-4893-87da-8fc23061079a":{"description":"An error. Use `code` in your code; show `message` to people.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","example":"insufficient_funds","uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"Not enough available balance for MWK 25,000.00.","uniqueKey":"error.message","typeLabel":"string"},"field":{"type":"string","description":"Payment links only. The field that is missing or wrong, for example `items[1].unitAmount`.","uniqueKey":"error.field","typeLabel":"string"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"insufficient_funds","message":"Not enough available balance for MWK 25,000.00.","field":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"f24524e2-44b7-4181-b6e7-f5ab4feb82b6":{"description":"The operator refused the request straight away. `status` is `failed` and `failureCode` says why.","content":{"application/json":{"schema":{"type":"object","properties":{"reference":{"type":"string","example":"TXN-WRYF6S2W3DQW","uniqueKey":"reference","typeLabel":"string"},"status":{"type":"string","enum":["pending","processing","success","failed","expired","cancelled","reversed"],"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"amount":{"type":"number","uniqueKey":"amount","typeLabel":"number"},"fee":{"type":"number","uniqueKey":"fee","typeLabel":"number"},"currency":{"type":"string","example":"MWK","uniqueKey":"currency","typeLabel":"string"},"merchantOrderId":{"type":"string","uniqueKey":"merchantOrderId","typeLabel":"string"},"failureCode":{"oneOf":[{"type":"string","uniqueKey":"failureCode.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"failureCode.oneOf.1","typeLabel":"null"}],"uniqueKey":"failureCode","typeLabel":"string | null"},"createdAt":{"type":"string","format":"date-time","uniqueKey":"createdAt","typeLabel":"string\u003cdate-time>"},"completedAt":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"completedAt.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"completedAt.oneOf.1","typeLabel":"null"}],"uniqueKey":"completedAt","typeLabel":"string\u003cdate-time> | null"},"subMerchantAccountCode":{"oneOf":[{"type":"string","description":"Set when the payment was collected for a sub-merchant.","uniqueKey":"subMerchantAccountCode.oneOf.0","typeLabel":"string"},{"type":"null","description":"Set when the payment was collected for a sub-merchant.","uniqueKey":"subMerchantAccountCode.oneOf.1","typeLabel":"null"}],"uniqueKey":"subMerchantAccountCode","typeLabel":"string | null"},"subMerchantName":{"oneOf":[{"type":"string","uniqueKey":"subMerchantName.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"subMerchantName.oneOf.1","typeLabel":"null"}],"uniqueKey":"subMerchantName","typeLabel":"string | null"},"aggregatorFee":{"oneOf":[{"type":"number","description":"The fee you keep as the aggregator.","uniqueKey":"aggregatorFee.oneOf.0","typeLabel":"number"},{"type":"null","description":"The fee you keep as the aggregator.","uniqueKey":"aggregatorFee.oneOf.1","typeLabel":"null"}],"uniqueKey":"aggregatorFee","typeLabel":"number | null"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"reference":"TXN-WRYF6S2W3DQW","status":"pending","amount":123,"fee":123,"currency":"MWK","merchantOrderId":"\u003cstring>","failureCode":"\u003cstring>","createdAt":"2023-11-07T05:31:56Z","completedAt":"2023-11-07T05:31:56Z","subMerchantAccountCode":"\u003cstring>","subMerchantName":"\u003cstring>","aggregatorFee":123}}},"exampleType":"generated"}},"exampleType":"generated"},"79e0caaa-8a8e-4de3-8bf3-da59d725fcd9":{"description":"An error. Use `code` in your code; show `message` to people.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","example":"insufficient_funds","uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"Not enough available balance for MWK 25,000.00.","uniqueKey":"error.message","typeLabel":"string"},"field":{"type":"string","description":"Payment links only. The field that is missing or wrong, for example `items[1].unitAmount`.","uniqueKey":"error.field","typeLabel":"string"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"insufficient_funds","message":"Not enough available balance for MWK 25,000.00.","field":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"f2d79d5d-613e-429d-be97-e78e77778c27":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Your API key: `sk_live_…` / `sk_test_…` (secret), `pk_live_…` / `pk_test_…` (publishable, read-only reference data) or `rk_live_…` / `rk_test_…` (payments only).\n","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"d911aee0-b44b-48be-9f3a-fd7b00e1e819":{"url":"https://api.primepay.mw","description":"Live API (live keys, `sk_live_…`)"},"405140b9-f90a-47e4-aeaa-9946817b93f4":{"url":"https://sandbox-api.primepay.mw","description":"Sandbox API (test keys, `sk_test_…`)"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Your API key: `sk_live_…` / `sk_test_…` (secret), `pk_live_…` / `pk_test_…` (publishable, read-only reference data) or `rk_live_…` / `rk_test_…` (payments only).\n","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Your API key: `sk_live_…` / `sk_test_…` (secret), `pk_live_…` / `pk_test_…` (publishable, read-only reference data) or `rk_live_…` / `rk_test_…` (payments only).\n","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"api-reference/openapi.yaml"},"subdomain":"prosystems-tech","siteName":"PrimePay","title":"Create a payment - PrimePay","navMaps":{"firstHrefInVersion":{"v1":{"href":"/api-reference/payments/create-a-payment","matchLevel":0}},"firstHrefInLanguage":{}},"lastModified":"2026-11-12T16:36:07.018Z","originalFileLocation":"api-reference/payments/create-a-payment.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=\"Collects money from a customer\u0026#x27;s mobile money account into the account that owns the API key. The customer approves it on their phone, so the final result arrives later by webhook. Guide: how a payment runs and payment errors.\">\u003cmeta data-mint-head name=\"application-name\" content=\"PrimePay\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/prosystems-tech/bgyknVzzbWNYws3_/_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/prosystems-tech/bgyknVzzbWNYws3_/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/prosystems-tech/bgyknVzzbWNYws3_/_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/prosystems-tech/bgyknVzzbWNYws3_/_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/prosystems-tech/bgyknVzzbWNYws3_/_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/prosystems-tech/bgyknVzzbWNYws3_/_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/prosystems-tech/bgyknVzzbWNYws3_/_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/prosystems-tech/bgyknVzzbWNYws3_/_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/prosystems-tech/bgyknVzzbWNYws3_/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create a payment - PrimePay\">\u003cmeta data-mint-head property=\"og:description\" content=\"Collects money from a customer\u0026#x27;s mobile money account into the account that owns the API key. The customer approves it on their phone, so the final result arrives later by webhook. Guide: how a payment runs and payment errors.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"PrimePay\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.primepay.mw/api-reference/payments/create-a-payment\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://prosystems-tech.mintlify.site/_mintlify/api/og/v2?division=Payments\u0026amp;title=Create+a+payment\u0026amp;description=Collects+money+from+a+customer%27s+mobile+money+account+into+the+account+that+owns+the+API+key.+The+customer+approves+it+on+their+phone%2C+so+the+final+result+arriv\u0026amp;theme=b265b6de14d9582a003885b7\u0026amp;signature=0b0e64c9e43394d181cbf18060d8fee698a99bf29cacd31e39d066ac10b0e92e\">\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=\"Create a payment - PrimePay\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Collects money from a customer\u0026#x27;s mobile money account into the account that owns the API key. The customer approves it on their phone, so the final result arrives later by webhook. Guide: how a payment runs and payment errors.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://prosystems-tech.mintlify.site/_mintlify/api/og/v2?division=Payments\u0026amp;title=Create+a+payment\u0026amp;description=Collects+money+from+a+customer%27s+mobile+money+account+into+the+account+that+owns+the+API+key.+The+customer+approves+it+on+their+phone%2C+so+the+final+result+arriv\u0026amp;theme=b265b6de14d9582a003885b7\u0026amp;signature=0b0e64c9e43394d181cbf18060d8fee698a99bf29cacd31e39d066ac10b0e92e\">\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/prosystems-tech/bgyknVzzbWNYws3_/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"PrimePay\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#09000D\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.primepay.mw/api-reference/payments/create-a-payment\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/payments/create-a-payment.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.primepay.mw/#organization\",\"name\":\"PrimePay\",\"url\":\"https://docs.primepay.mw\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/prosystems-tech/rcMYSU1YPPUUcDzf/logo/primepay-v3-light.png?fit=max\u0026auto=format\u0026n=rcMYSU1YPPUUcDzf\u0026q=85\u0026s=eb5592018cf5323277a3135853fc9d6d\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.primepay.mw#website\",\"name\":\"PrimePay\",\"url\":\"https://docs.primepay.mw\",\"publisher\":{\"@id\":\"https://docs.primepay.mw/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.primepay.mw/api-reference/payments/create-a-payment#webpage\",\"url\":\"https://docs.primepay.mw/api-reference/payments/create-a-payment\",\"name\":\"Create a payment\",\"description\":\"Collects money from a customer's mobile money account into the account that owns the API key. The customer approves it on their phone, so the final result arrives later by webhook. Guide: how a payment runs and payment errors.\",\"dateModified\":\"2026-11-12T16:36:07.018Z\",\"isPartOf\":{\"@id\":\"https://docs.primepay.mw#website\"},\"breadcrumb\":{\"@id\":\"https://docs.primepay.mw/api-reference/payments/create-a-payment#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.primepay.mw/api-reference/payments/create-a-payment#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"PrimePay\",\"item\":\"https://docs.primepay.mw\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create a payment\",\"item\":\"https://docs.primepay.mw/api-reference/payments/create-a-payment\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.primepay.mw/api-reference/payments/create-a-payment#apireference\",\"headline\":\"Create a payment\",\"name\":\"Create a payment\",\"description\":\"Collects money from a customer's mobile money account into the account that owns the API key. The customer approves it on their phone, so the final result arrives later by webhook. Guide: how a payment runs and payment errors.\",\"url\":\"https://docs.primepay.mw/api-reference/payments/create-a-payment\",\"mainEntityOfPage\":{\"@id\":\"https://docs.primepay.mw/api-reference/payments/create-a-payment#webpage\"},\"dateModified\":\"2026-11-12T16:36:07.018Z\",\"publisher\":{\"@id\":\"https://docs.primepay.mw/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.primepay.mw#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"PrimePay\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"PrimePay\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/payments/create-a-payment.md","siteName":"PrimePay","nav":{"global":null,"versions":[{"version":"v1","tabs":[{"tab":"Docs","pages":[{"title":"Docs","href":""}]},{"tab":"API Reference","groups":[{"group":"Get started","pages":[{"title":"PrimePay API v1","sidebarTitle":"Introduction","href":"/api-reference/introduction"},{"title":"Idempotency","href":"/api-reference/idempotency"},{"title":"Errors","href":"/api-reference/errors"}]},{"group":"Operators","pages":[{"title":"List mobile money operators","description":"The operators you can collect from. Use an operator's `refId` as `provider` when you create a payment. A publishable key is enough.\n","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /mobile-money/operators","href":"/api-reference/operators/list-mobile-money-operators"}]},{"group":"Payments","pages":[{"title":"Create a payment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/payments/mobile-money","href":"/api-reference/payments/create-a-payment"},{"title":"Collect for a sub-merchant","description":"Aggregator accounts only. Collects for a sub-merchant linked to your account. The body is the same as [Create a payment](/api-reference/payments/create-a-payment), and the agreed fee always applies.\n\nGuide: [collecting for a sub-merchant](/api-reference/payments-overview#collecting-for-a-sub-merchant-aggregators) and [payment errors](/api-reference/payments-overview#payment-errors).\n","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/sub-merchants/{subMerchantCode}/payments/mobile-money","href":"/api-reference/payments/collect-for-a-sub-merchant"},{"title":"Get a payment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/payments/{reference}","href":"/api-reference/payments/get-a-payment"},{"title":"Find a payment by order","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/payments","href":"/api-reference/payments/find-a-payment-by-order"}]},{"group":"Refunds","pages":[{"title":"Refund a payment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/payments/{reference}/refunds","href":"/api-reference/refunds/refund-a-payment"},{"title":"List a payment's refunds","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/payments/{reference}/refunds","href":"/api-reference/refunds/list-a-payments-refunds"},{"title":"Get a refund","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/refunds/{reference}","href":"/api-reference/refunds/get-a-refund"}]},{"group":"Transfers","pages":[{"title":"Look up a merchant account","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/transfers/merchant-account/recipient","href":"/api-reference/transfers/look-up-a-merchant-account"},{"title":"Look up a PrimePay wallet","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/transfers/wallet/recipient","href":"/api-reference/transfers/look-up-a-primepay-wallet"},{"title":"Transfer to a merchant account","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/transfers/merchant-account","href":"/api-reference/transfers/transfer-to-a-merchant-account"},{"title":"Transfer to a PrimePay wallet","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/transfers/wallet","href":"/api-reference/transfers/transfer-to-a-primepay-wallet"},{"title":"Get a transfer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/transfers/{reference}","href":"/api-reference/transfers/get-a-transfer"}]},{"group":"Payouts","pages":[{"title":"Look up a mobile money number","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/payouts/mobile-money/recipient","href":"/api-reference/payouts/look-up-a-mobile-money-number"},{"title":"Look up a bank account","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/payouts/bank/recipient","href":"/api-reference/payouts/look-up-a-bank-account"},{"title":"List banks","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/payouts/banks","href":"/api-reference/payouts/list-banks"},{"title":"Pay a mobile money number","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/payouts/mobile-money","href":"/api-reference/payouts/pay-a-mobile-money-number"},{"title":"Pay a bank account","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/payouts/bank","href":"/api-reference/payouts/pay-a-bank-account"},{"title":"Get a payout","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/payouts/{reference}","href":"/api-reference/payouts/get-a-payout"}]},{"group":"Payment links","pages":[{"title":"Create a payment link","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/payment-links","href":"/api-reference/payment-links/create-a-payment-link"},{"title":"Create a payment link for a sub-merchant","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/sub-merchants/{subMerchantCode}/payment-links","href":"/api-reference/payment-links/create-a-payment-link-for-a-sub-merchant"},{"title":"Get a payment link","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/payment-links/{id}","href":"/api-reference/payment-links/get-a-payment-link"},{"title":"Deactivate a payment link","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/payment-links/{id}/deactivate","href":"/api-reference/payment-links/deactivate-a-payment-link"},{"title":"Reactivate a payment link","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/payment-links/{id}/reactivate","href":"/api-reference/payment-links/reactivate-a-payment-link"}]},{"group":"Checkout sessions","pages":[{"title":"Create a checkout session","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/checkout/sessions","href":"/api-reference/checkout-sessions/create-a-checkout-session"},{"title":"Check a checkout session","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/checkout/sessions/{id}","href":"/api-reference/checkout-sessions/check-a-checkout-session"},{"title":"Cancel a checkout session","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/checkout/sessions/{id}/expire","href":"/api-reference/checkout-sessions/cancel-a-checkout-session"}]}]},{"tab":"SDKs","pages":[{"title":"SDKs","href":"/sdks/overview"}]},{"tab":"Recipes","pages":[{"title":"Recipes","href":"/recipes/overview"}]},{"tab":"Changelogs","pages":[{"title":"Changelogs","href":"/changelog"}]}]}]},"basePath":"","title":"Create a payment - PrimePay","buildId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","deploymentId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CybtLBIt.js","utils-BMLj2fvV.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-B6In562Y.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Dr8Mfhp9.js","snippetPresets-2rmQvMVl.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-WMqJYdZj.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CJ-MlPHu.js","shallow-dY3TMRCk.js","getApiPlaygroundDisplay-v-1B2bKm.js","CodeSnippet-BDhiTB7U.js","CodeSnippets-D9hnzQcS.js","Page-C4GwDT3_.js","getPastedJson-Th2V45jI.js","icon-BQXch1W9.js","MethodPill-BCqUneP3.js","DuplicateIcon-Q_-bhurZ.js","createIcon-DUjLHRqp.js","DynamicMarkdown-B-f2cqXQ.js","SectionHeading-Da5NsV4v.js","axios-vUo_bRtp.js","Markdown-D13FWkIM.js","clsx-D3Isdib3.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-C-XZBk9h.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink--qIqmmVG.js"]}