This operation registers a payment request for the authenticated account and returns the references to keep. It only supports Ipay-Payment-Type: mobile (mobile money); other payment methods go through payment by link. The list of methods is in Payouts and fees.
The status returned at creation is not final. Always check the final status on the server side, with Retrieve a transaction or through webhooks, before delivering an order.
Validated account. The account must be validated for the target environment, otherwise the API responds 403 without creating a transaction.
Environments. Sandbox and Live are two separate accounts, with separate keys: a Sandbox key used with Ipay-Target-Environment: live is refused, and vice versa. See Authentication.
transaction_id. This is your own order reference, unique for your account. You will find it under the name external_reference, and it is accepted as an identifier by Retrieve a transaction.
Minimum amount.25 XOF in Live for mobile. The minimum is different in Sandbox: see Sandbox and testing.
References to keep.reference is the iMoney Encaissement identifier of the transaction, accepted by the retrieval operations. public_reference is the reference you can show to your customer.
There is no idempotency key header. Creation applies duplicate detection at the application level on external_reference, that is, on the transaction_id you send. In Live, a second call with the same value receives 422 ({"status": "failed", "message": "External Reference Not Valid"}) and does not create a second transaction. In Sandbox, the shape of the response to a duplicate is not guaranteed to match the Live one: to be confirmed with support before using it as an automated test assertion.
This detection is not guaranteed under concurrent calls: two requests sent at the same moment with the same transaction_id may both succeed. Generate a unique transaction_id for each attempt, and check the status with Retrieve a transaction before retrying a transaction for which you did not receive a response.
No rate limit is documented for this operation: to be confirmed with support before bulk sending. The error messages common to all operations are gathered in Errors.
Payment method. POST /payments only supports mobile (mobile money). Other payment methods (bank card and other channels) are not used here: they are available through payment links (POST /external_payments). Full list: payment methods.
Allowed value: "mobile"
Example:
"mobile"
Body
application/json
Body required to create a mobile money payment (Ipay-Payment-Type: mobile). The minimum amount is 25 XOF (50 XOF in Sandbox). Below that, the API responds 400 Bad Request: Amount Not Valid. For other payment methods, use payment links.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"iMoney Encaissement","description":"Documentation développeur officielle iMoney Encaissement","colors":{"primary":"#aac32e","light":"#c7df54","dark":"#7f941e"},"logo":{"light":"https://mintcdn.com/i-futur/BHX1WwpwbqNqmKjO/logo.png?fit=max\u0026auto=format\u0026n=BHX1WwpwbqNqmKjO\u0026q=85\u0026s=b87349c125edeba3ed435b9f0921be9b","dark":"https://mintcdn.com/i-futur/BHX1WwpwbqNqmKjO/logo.png?fit=max\u0026auto=format\u0026n=BHX1WwpwbqNqmKjO\u0026q=85\u0026s=b87349c125edeba3ed435b9f0921be9b"},"favicon":"https://mintcdn.com/i-futur/B4pwgot3NJ9hWojt/favicon.png?fit=max\u0026auto=format\u0026n=B4pwgot3NJ9hWojt\u0026q=85\u0026s=449e5a54e45513db6da435c93e052311","api":{"openapi":["openapi.yaml","en/openapi.yaml"],"playground":{"display":"interactive"},"examples":{"defaults":"required","languages":["bash","javascript","python","php","ruby","java"],"prefill":true}},"background":{"color":{"light":"#ffffff","dark":"#0e1110"}},"navbar":{"links":[{"href":"https://i-pay.money","label":"Site iMoney Encaissement"}],"primary":{"type":"button","label":"Se connecter","href":"https://i-pay.money/dashboard"}},"footer":{"socials":{"website":"https://i-pay.money"}},"fonts":{"heading":{"family":"Open Sans","weight":700},"body":{"family":"Open Sans","weight":400}},"styling":{"eyebrows":"breadcrumbs","codeblocks":{"theme":{"light":"github-light","dark":"github-dark"}},"latex":false},"navigation":{"languages":[{"language":"fr","default":true,"href":""},{"language":"en","navbar":{"links":[{"href":"https://i-pay.money","label":"iMoney Encaissement website"}],"primary":{"type":"button","label":"Log in","href":"https://i-pay.money/dashboard"}},"href":"en"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"i-futur","hasAudioNarration":false,"actualSubdomain":"i-futur","customDomains":["docs.i-pay.money"],"gitSource":{"type":"github","owner":"ifuturteam","repo":"ipay-money-documentation","deployBranch":"main","contentDirectory":"docs/mintlify","isPrivate":true,"mountPath":"","label":""},"chroma":{"collectionId":"e5c6e1b2-6f21-4adc-876d-3cd3c85ddc57","liveDeploymentHistoryId":"6ae39784e26a02b8d44a54be","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae39784e26a02b8d44a54be"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ae39784e26a02b8d44a54be","clientVersion":"0.0.4021","searchFilterCounts":[{"language":"fr","tag":"Référence API","count":7},{"language":"fr","tag":"Documentation","count":7},{"language":"en","tag":"API reference","count":7},{"language":"en","tag":"Documentation","count":7},{"language":"fr","tag":"SDKs","count":4},{"language":"fr","tag":"SDKs et plugins","count":4},{"language":"en","tag":"SDKs","count":4},{"language":"en","tag":"SDKs and plugins","count":4},{"language":"fr","tag":"Transactions","count":3},{"language":"fr","tag":"Guides","count":3},{"language":"en","tag":"Transactions","count":3},{"language":"en","tag":"Guides","count":3},{"language":"fr","tag":"Introduction","count":2},{"language":"fr","tag":"Liens de paiement","count":2},{"language":"fr","tag":"Démarrer","count":2},{"language":"fr","tag":"Ressources","count":2},{"language":"en","tag":"Introduction","count":2},{"language":"en","tag":"Payment by link","count":2},{"language":"en","tag":"Get started","count":2},{"language":"en","tag":"Resources","count":2}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","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":"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":"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":"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":"billing-updated-9-15","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":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":":root{--ipay-line:#ecece7;--ipay-line-strong:#ddddd6;--ipay-panel:#fafaf8;--ipay-primary:#bbcb44;--ipay-primary-hover:#a3b339;--ipay-primary-soft:#f2f6d6;--ipay-primary-ink:#5e6a1a}.dark{--ipay-line:#2d302b;--ipay-line-strong:#525249;--ipay-panel:#1a1d1f;--ipay-primary-soft:#2d331c;--ipay-primary-ink:#e4ecaa}#search-bar-entry{background:var(--ipay-panel);border:1px solid var(--ipay-line-strong);border-radius:999px;transition:border-color .15s ease,box-shadow .15s ease}#search-bar-entry:hover{border-color:var(--ipay-primary-hover)}#search-bar-entry:focus-within{border-color:var(--ipay-primary-hover);box-shadow:0 0 0 4px var(--ipay-primary-soft)}.prose a:not([class*=card]){color:var(--ipay-primary-ink);font-weight:600;text-underline-offset:3px}.prose table{border:1px solid var(--ipay-line);border-collapse:separate;border-radius:10px;border-spacing:0;overflow:hidden}.prose thead th{background:var(--ipay-panel);font-size:12px;letter-spacing:.04em;text-transform:uppercase}.prose td,.prose th{border-bottom:1px solid var(--ipay-line)}.prose pre,code-block{border:1px solid var(--ipay-line);border-radius:14px}#sidebar a[data-active=true],#sidebar li[data-active=true]>a{background:var(--ipay-primary-soft);border-radius:8px;color:var(--ipay-primary-ink)}"}],"page":{"pagePath":"en/api-reference/transactions/create-a-payment","slug":"/en/api-reference/transactions/create-a-payment","pageMetadata":{"title":"Create a transaction","description":"Register a mobile money payment request and get the references to keep.","openapi":"en/openapi.yaml POST /payments","href":"/en/api-reference/transactions/create-a-payment"},"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: \"Register a mobile money payment request and get the references to keep.\"\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`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`This operation registers a payment request for the authenticated account and returns the references to keep. It only supports `,_jsx(_components.code,{children:`Ipay-Payment-Type: mobile`}),` (mobile money); other payment methods go through `,_jsx(_components.a,{href:`/en/api-reference/payment-by-link/create-a-payment-link`,children:`payment by link`}),`. The list of methods is in `,_jsx(_components.a,{href:`/en/guides/payouts-and-fees#fees-by-payment-method`,children:`Payouts and fees`}),`.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`The status returned at creation is not final. Always check the final status on the server side, with `,_jsx(_components.a,{href:`/en/api-reference/transactions/retrieve-a-payment`,children:`Retrieve a transaction`}),` or through `,_jsx(_components.a,{href:`/en/guides/webhooks`,children:`webhooks`}),`, before delivering an order.`]})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Validated account.`}),` The account must be validated for the target environment, otherwise the API responds `,_jsx(_components.code,{children:`403`}),` without creating a transaction.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Environments.`}),` Sandbox and Live are two separate accounts, with separate keys: a Sandbox key used with `,_jsx(_components.code,{children:`Ipay-Target-Environment: live`}),` is refused, and vice versa. See `,_jsx(_components.a,{href:`/en/api-reference/authentication`,children:`Authentication`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[_jsx(_components.code,{children:`transaction_id`}),`.`]}),` This is your own order reference, unique for your account. You will find it under the name `,_jsx(_components.code,{children:`external_reference`}),`, and it is accepted as an identifier by `,_jsx(_components.a,{href:`/en/api-reference/transactions/retrieve-a-payment`,children:`Retrieve a transaction`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Minimum amount.`}),` `,_jsx(_components.code,{children:`25`}),` XOF in Live for `,_jsx(_components.code,{children:`mobile`}),`. The minimum is different in Sandbox: see `,_jsx(_components.a,{href:`/en/guides/sandbox-and-testing`,children:`Sandbox and testing`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`References to keep.`}),` `,_jsx(_components.code,{children:`reference`}),` is the iMoney Encaissement identifier of the transaction, accepted by the retrieval operations. `,_jsx(_components.code,{children:`public_reference`}),` is the reference you can show to your customer.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`duplicates-and-idempotency`,children:`Duplicates and idempotency`}),`\n`,_jsxs(_components.p,{children:[`There is no idempotency key header. Creation applies duplicate detection `,_jsx(_components.strong,{children:`at the application level`}),` on `,_jsx(_components.code,{children:`external_reference`}),`, that is, on the `,_jsx(_components.code,{children:`transaction_id`}),` you send. `,_jsx(_components.strong,{children:`In Live`}),`, a second call with the same value receives `,_jsx(_components.code,{children:`422`}),` (`,_jsx(_components.code,{children:`{\"status\": \"failed\", \"message\": \"External Reference Not Valid\"}`}),`) and does not create a second transaction. `,_jsx(_components.strong,{children:`In Sandbox, the shape of the response to a duplicate is not guaranteed to match`}),` the Live one: to be confirmed with support before using it as an automated test assertion.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`This detection is not guaranteed under concurrent calls: two requests sent at the same moment with the same `,_jsx(_components.code,{children:`transaction_id`}),` may both succeed. Generate a unique `,_jsx(_components.code,{children:`transaction_id`}),` for each attempt, and check the status with `,_jsx(_components.a,{href:`/en/api-reference/transactions/retrieve-a-payment`,children:`Retrieve a transaction`}),` before retrying a transaction for which you did not receive a response.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`limits`,children:`Limits`}),`\n`,_jsxs(_components.p,{children:[`No rate limit is documented for this operation: to be confirmed with support before bulk sending. The error messages common to all operations are gathered in `,_jsx(_components.a,{href:`/en/api-reference/errors`,children:`Errors`}),`.`]})]})}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":{"codeStyling":{"theme":{"light":"github-light","dark":"github-dark"}},"config":{},"pageMetadata":{"title":"Create a transaction","description":"Register a mobile money payment request and get the references to keep.","openapi":"en/openapi.yaml POST /payments","href":"/en/api-reference/transactions/create-a-payment"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Duplicates and idempotency","slug":"duplicates-and-idempotency","depth":2,"children":[]},{"title":"Limits","slug":"limits","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Payments"],"summary":"Create a transaction","security":["13506a76-adb1-495b-937a-4b26e58c0dad"],"parameters":["c8115868-e322-4f0c-aca0-547d9321021b","06b60927-d1cc-418d-a6c3-8b0ccf82d5ff"],"requestBody":"2d3e32b2-2991-4d45-abe0-5ea03d6715ad","responses":{"200":"11d17fb7-7105-4b5b-b1ea-9f02272c6ae5","400":"c861f13e-e71b-48b6-965a-9364856ac61a","401":"74eae035-58ed-41b9-889c-73646c55864b","403":"44bbb31a-7d0c-466d-8ecb-a55e79884022","406":"e5080ada-dbc1-4919-8f79-11b446bf52af","422":"8b6ccc4f-6727-4365-ad3a-292f9dcd0ec1"},"method":"post","type":"path","servers":["820a75b7-831d-4f45-b1c4-53eb207fe3fc"],"path":"/payments","baseUrlOptions":["https://i-pay.money/api/v1"],"title":"Create a transaction","description":"Register a mobile money payment request and get the references to keep.","codeSamples":[],"requestExampleLanguages":["bash","javascript","python","php","ruby","java"],"requiredOnlyExamples":true,"requestExampleType":"generated","responseExampleType":"generated","prefillPlaygroundWithExample":true,"prefillPlaygroundExamples":[{"body.amount":1000,"body.country":"NE","body.currency":"XOF","body.msisdn":"40410000000","body.transaction_id":"ORDER-SANDBOX-001","body.customer_name":"Client Test"}]},"dependencies":{"parameters":{"c8115868-e322-4f0c-aca0-547d9321021b":{"name":"Ipay-Target-Environment","in":"header","required":true,"schema":{"type":"string","enum":["sandbox","live"],"isRequired":true,"uniqueKey":"","typeLabel":"enum\u003cstring>"}},"06b60927-d1cc-418d-a6c3-8b0ccf82d5ff":{"name":"Ipay-Payment-Type","in":"header","required":true,"description":"Payment method. `POST /payments` only supports `mobile` (mobile money). Other payment methods (bank card and other channels) are not used here: they are available through payment links (`POST /external_payments`). Full list: [payment methods](/en/guides/payouts-and-fees#fees-by-payment-method).","x-verified":"Internal verification note (not intended for the public documentation). Scope decision: only the `mobile` value is documented for `POST /payments`; the other values handled by `Live::PaymentService` are still accepted by the API but belong to the \"payment link\" flow. `external_payment` is reserved for `POST /external_payments` (dedicated parameter of that operation).","schema":{"type":"string","const":"mobile","example":"mobile","isRequired":true,"description":"Payment method. `POST /payments` only supports `mobile` (mobile money). Other payment methods (bank card and other channels) are not used here: they are available through payment links (`POST /external_payments`). Full list: [payment methods](/en/guides/payouts-and-fees#fees-by-payment-method).","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Body required to create a mobile money payment (`Ipay-Payment-Type: mobile`). The minimum amount is 25 XOF (50 XOF in Sandbox). Below that, the API responds 400 `Bad Request: Amount Not Valid`. For other payment methods, use payment links.","x-verified":"Internal verification note (not intended for the public documentation). Body required by `Live::PaymentService#request_payment` (app/services/live/payment_service.rb). `mobile` threshold ≥ 25 verified on 2026-09-16 (`verify_mobile_amount_value`). The thresholds of the other types are no longer documented here (scope reduced to `mobile`).","required":["amount","country","currency","msisdn","transaction_id","customer_name"],"properties":{"amount":{"type":"integer","minimum":25,"example":1000,"description":"Amount to debit, in XOF (integer). Minimum: 25 XOF in Live, 50 XOF in Sandbox.","isRequired":true,"uniqueKey":"amount","typeLabel":"integer"},"country":{"type":"string","enum":["NE","BJ"],"example":"NE","isRequired":true,"uniqueKey":"country","typeLabel":"enum\u003cstring>"},"currency":{"type":"string","const":"XOF","isRequired":true,"uniqueKey":"currency","typeLabel":"string"},"msisdn":{"type":"string","example":"40410000000","isRequired":true,"uniqueKey":"msisdn","typeLabel":"string"},"transaction_id":{"type":"string","description":"Unique reference within the account","isRequired":true,"uniqueKey":"transaction_id","typeLabel":"string"},"customer_name":{"type":"string","isRequired":true,"uniqueKey":"customer_name","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"sandboxMobile":{"title":"sandboxMobile","value":{"amount":1000,"country":"NE","currency":"XOF","msisdn":"40410000000","transaction_id":"ORDER-SANDBOX-001","customer_name":"Client Test"}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"11d17fb7-7105-4b5b-b1ea-9f02272c6ae5":{"description":"Transaction registered. The final status must be checked separately.","content":{"application/json":{"schema":{"type":"object","required":["status","reference","public_reference"],"properties":{"status":{"type":"string","example":"succeeded","isRequired":true,"uniqueKey":"status","typeLabel":"string"},"reference":{"type":"string","isRequired":true,"uniqueKey":"reference","typeLabel":"string"},"public_reference":{"type":"string","isRequired":true,"uniqueKey":"public_reference","typeLabel":"string"},"meta_data":{"type":"object","additionalProperties":true,"uniqueKey":"meta_data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"status":"succeeded","reference":"\u003cstring>","public_reference":"\u003cstring>","meta_data":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"c861f13e-e71b-48b6-965a-9364856ac61a":{"description":"Invalid header or authentication parameter, or invalid request body (missing field or value outside the constraints).","x-verified":"Internal verification note (not intended for the public documentation). Detected by `ApiAuthService#authenticate` (app/services/api_auth_service.rb:20-26) or `Live::PaymentService#request_payment` (app/services/live/payment_service.rb). Exact messages verified on 2026-09-16.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","uniqueKey":"message","typeLabel":"string"},"status":{"type":"string","description":"Only present on some application failures, e.g. a duplicate payment on `POST /payments`, where `status` is always `failed`. Absent from the other errors of this contract (e.g. 404 `Payment Not Found`, header/authentication errors).","x-verified":"Internal verification note (not intended for the public documentation). See `Live::PaymentService#error_response` (app/services/live/payment_service.rb:994-1005).","example":"failed","uniqueKey":"status","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"missingHeaderParams":{"title":"missingHeaderParams","value":{"message":"Bad Request: Missing params"}},"notAllowedEnvironment":{"title":"notAllowedEnvironment","value":{"message":"Bad Request: Not Allowed Environment"}},"notAllowedPaymentType":{"title":"notAllowedPaymentType","value":{"message":"Bad Request: Not Allowed Payment Type"}},"missingAuthenticationKey":{"title":"missingAuthenticationKey","value":{"message":"Bad Request: Missing Authentication Key"}},"missingBodyParams":{"title":"missingBodyParams","value":{"message":"Bad Request: Missing Body Params"}},"countryNotAllowed":{"title":"countryNotAllowed","value":{"message":"Bad Request: Country Not Allowed"}},"currencyNotAllowed":{"title":"currencyNotAllowed","value":{"message":"Bad Request: Currency Not Allowed"}},"amountNotValid":{"title":"amountNotValid","value":{"message":"Bad Request: Amount Not Valid"}},"incorrectMsisdn":{"title":"incorrectMsisdn","value":{"message":"Bad Request: Incorrect MSISDN"}}},"exampleType":"examples"}},"exampleType":"examples"},"74eae035-58ed-41b9-889c-73646c55864b":{"description":"Invalid key","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","uniqueKey":"message","typeLabel":"string"},"status":{"type":"string","description":"Only present on some application failures, e.g. a duplicate payment on `POST /payments`, where `status` is always `failed`. Absent from the other errors of this contract (e.g. 404 `Payment Not Found`, header/authentication errors).","x-verified":"Internal verification note (not intended for the public documentation). See `Live::PaymentService#error_response` (app/services/live/payment_service.rb:994-1005).","example":"failed","uniqueKey":"status","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"message":"\u003cstring>","status":"failed"}}},"exampleType":"generated"}},"exampleType":"generated"},"44bbb31a-7d0c-466d-8ecb-a55e79884022":{"description":"Account or environment not available","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","uniqueKey":"message","typeLabel":"string"},"status":{"type":"string","description":"Only present on some application failures, e.g. a duplicate payment on `POST /payments`, where `status` is always `failed`. Absent from the other errors of this contract (e.g. 404 `Payment Not Found`, header/authentication errors).","x-verified":"Internal verification note (not intended for the public documentation). See `Live::PaymentService#error_response` (app/services/live/payment_service.rb:994-1005).","example":"failed","uniqueKey":"status","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"message":"\u003cstring>","status":"failed"}}},"exampleType":"generated"}},"exampleType":"generated"},"e5080ada-dbc1-4919-8f79-11b446bf52af":{"description":"Content-Type other than application/json","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","uniqueKey":"message","typeLabel":"string"},"status":{"type":"string","description":"Only present on some application failures, e.g. a duplicate payment on `POST /payments`, where `status` is always `failed`. Absent from the other errors of this contract (e.g. 404 `Payment Not Found`, header/authentication errors).","x-verified":"Internal verification note (not intended for the public documentation). See `Live::PaymentService#error_response` (app/services/live/payment_service.rb:994-1005).","example":"failed","uniqueKey":"status","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"message":"\u003cstring>","status":"failed"}}},"exampleType":"generated"}},"exampleType":"generated"},"8b6ccc4f-6727-4365-ad3a-292f9dcd0ec1":{"description":"External reference (`transaction_id`) already used for this account: duplicate detection applied at the application level, not guaranteed under concurrent calls — the API does not expose any idempotency key. This code also covers a payment that is invalid for another validation reason.","x-verified":"Internal verification note (not intended for the public documentation). See `Live::PaymentService#error_response`, app/services/live/payment_service.rb:994-1005.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","uniqueKey":"message","typeLabel":"string"},"status":{"type":"string","description":"Only present on some application failures, e.g. a duplicate payment on `POST /payments`, where `status` is always `failed`. Absent from the other errors of this contract (e.g. 404 `Payment Not Found`, header/authentication errors).","x-verified":"Internal verification note (not intended for the public documentation). See `Live::PaymentService#error_response` (app/services/live/payment_service.rb:994-1005).","example":"failed","uniqueKey":"status","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"duplicateExternalReference":{"title":"duplicateExternalReference","value":{"status":"failed","message":"External Reference Not Valid"}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"13506a76-adb1-495b-937a-4b26e58c0dad":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Secret key of the Sandbox or Live account","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"820a75b7-831d-4f45-b1c4-53eb207fe3fc":{"url":"https://i-pay.money/api/v1","description":"Sandbox or Live depending on the headers and the key used"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Secret key of the Sandbox or Live account","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Secret key of the Sandbox or Live account","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"en/openapi.yaml"},"subdomain":"i-futur","siteName":"iMoney Encaissement","title":"Create a transaction - iMoney Encaissement","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"fr":{"href":"/","matchLevel":4},"en":{"href":"/en/api-reference/transactions/create-a-payment","matchLevel":0}}},"lastModified":"2026-10-29T18:59:23.310Z","originalFileLocation":"en/api-reference/transactions/create-a-payment.mdx","locale":"en"},"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=\"Register a mobile money payment request and get the references to keep.\">\u003cmeta data-mint-head name=\"application-name\" content=\"iMoney Encaissement\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/i-futur/kyXVeG45fkp622Ap/_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/i-futur/kyXVeG45fkp622Ap/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/i-futur/kyXVeG45fkp622Ap/_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/i-futur/kyXVeG45fkp622Ap/_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/i-futur/kyXVeG45fkp622Ap/_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/i-futur/kyXVeG45fkp622Ap/_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/i-futur/kyXVeG45fkp622Ap/_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/i-futur/kyXVeG45fkp622Ap/_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/i-futur/kyXVeG45fkp622Ap/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create a transaction - iMoney Encaissement\">\u003cmeta data-mint-head property=\"og:description\" content=\"Register a mobile money payment request and get the references to keep.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"iMoney Encaissement\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.i-pay.money/en/api-reference/transactions/create-a-payment\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://i-futur.mintlify.app/_mintlify/api/og/v2?division=Transactions\u0026amp;title=Create+a+transaction\u0026amp;description=Register+a+mobile+money+payment+request+and+get+the+references+to+keep.\u0026amp;theme=4af5335503ff29411be4ba64\u0026amp;signature=c20ec5cb217240ca42ae5812543ac140333d2ce42e5c520f13b4dc14b35e8858\">\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 transaction - iMoney Encaissement\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Register a mobile money payment request and get the references to keep.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://i-futur.mintlify.app/_mintlify/api/og/v2?division=Transactions\u0026amp;title=Create+a+transaction\u0026amp;description=Register+a+mobile+money+payment+request+and+get+the+references+to+keep.\u0026amp;theme=4af5335503ff29411be4ba64\u0026amp;signature=c20ec5cb217240ca42ae5812543ac140333d2ce42e5c520f13b4dc14b35e8858\">\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/i-futur/kyXVeG45fkp622Ap/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"iMoney Encaissement\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#aac32e\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.i-pay.money/en/api-reference/transactions/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=\"/en/api-reference/transactions/create-a-payment.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.i-pay.money/#organization\",\"name\":\"iMoney Encaissement\",\"url\":\"https://docs.i-pay.money\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/i-futur/BHX1WwpwbqNqmKjO/logo.png?fit=max\u0026auto=format\u0026n=BHX1WwpwbqNqmKjO\u0026q=85\u0026s=b87349c125edeba3ed435b9f0921be9b\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.i-pay.money#website\",\"name\":\"iMoney Encaissement\",\"url\":\"https://docs.i-pay.money\",\"publisher\":{\"@id\":\"https://docs.i-pay.money/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.i-pay.money/en/api-reference/transactions/create-a-payment#webpage\",\"url\":\"https://docs.i-pay.money/en/api-reference/transactions/create-a-payment\",\"name\":\"Create a transaction\",\"description\":\"Register a mobile money payment request and get the references to keep.\",\"dateModified\":\"2026-10-29T18:59:23.310Z\",\"isPartOf\":{\"@id\":\"https://docs.i-pay.money#website\"},\"breadcrumb\":{\"@id\":\"https://docs.i-pay.money/en/api-reference/transactions/create-a-payment#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.i-pay.money/en/api-reference/transactions/create-a-payment#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"iMoney Encaissement\",\"item\":\"https://docs.i-pay.money\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create a transaction\",\"item\":\"https://docs.i-pay.money/en/api-reference/transactions/create-a-payment\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.i-pay.money/en/api-reference/transactions/create-a-payment#apireference\",\"headline\":\"Create a transaction\",\"name\":\"Create a transaction\",\"description\":\"Register a mobile money payment request and get the references to keep.\",\"url\":\"https://docs.i-pay.money/en/api-reference/transactions/create-a-payment\",\"mainEntityOfPage\":{\"@id\":\"https://docs.i-pay.money/en/api-reference/transactions/create-a-payment#webpage\"},\"dateModified\":\"2026-10-29T18:59:23.310Z\",\"publisher\":{\"@id\":\"https://docs.i-pay.money/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.i-pay.money#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"iMoney Encaissement\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"iMoney Encaissement","nav":{"global":null,"languages":[{"language":"fr","default":true,"pages":[{"title":"fr","href":"/"}]},{"language":"en","navbar":{"links":[{"href":"https://i-pay.money","label":"iMoney Encaissement website"}],"primary":{"type":"button","label":"Log in","href":"https://i-pay.money/dashboard"}},"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/en"}]},{"tab":"SDKs","pages":[{"title":"SDKs","href":"/en/sdks"}]},{"tab":"API reference","groups":[{"group":"Introduction","pages":[{"title":"Authentication","href":"/en/api-reference/authentication"},{"title":"Errors","description":"Diagnose authentication and payment responses.","href":"/en/api-reference/errors"}]},{"group":"Transactions","pages":[{"title":"Create a transaction","openapi":"en/openapi.yaml POST /payments","href":"/en/api-reference/transactions/create-a-payment"},{"title":"Retrieve a transaction","description":"Check the actual status of a transaction with its iMoney Encaissement reference or your transaction_id.","openapi":"en/openapi.yaml GET /payments/{reference}","href":"/en/api-reference/transactions/retrieve-a-payment"},{"title":"List transactions","openapi":"en/openapi.yaml GET /payments","href":"/en/api-reference/transactions/list-payments"}]},{"group":"Payment by link","pages":[{"title":"Create a hosted payment link","openapi":"en/openapi.yaml POST /external_payments","href":"/en/api-reference/payment-by-link/create-a-payment-link"},{"title":"Retrieve a payment link","openapi":"en/openapi.yaml GET /external_payments/{reference}","href":"/en/api-reference/payment-by-link/retrieve-a-payment-link"}]}]}]}]},"title":"Create a transaction - iMoney Encaissement","buildId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","deploymentId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-26-lDe7V.js","utils-CWQmgYtH.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-4-Aw3rSD.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-C2zjXYA5.js","snippetPresets-DFmpFA7C.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-FJpQavWq.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-D_GvPF7k.js","shallow-Bs2ZB0NO.js","getApiPlaygroundDisplay-DCcqJJk-.js","CodeSnippet-DzDxawVe.js","CodeSnippets-aUr7fU-7.js","Page-CT9uE8Ip.js","getPastedJson-Y1fKsj_I.js","icon-DI4zTsDr.js","MethodPill-C0nDlmSQ.js","DuplicateIcon-NUXbx2nQ.js","createIcon-BdTHrPAi.js","DynamicMarkdown-CtpgKJwj.js","SectionHeading-B3x35tOt.js","axios-vUo_bRtp.js","Markdown-3OmurJMP.js","clsx-DMKzROTp.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-1ms6tsT-.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-Ke9xIMFx.js"]}