Creates a new payment method. accountName, accountNumber and institution are required for every channel except UPI and INTERAC, which take no institution, and VIRTUAL_BANK_ACCOUNT, which takes none of the three.
Account numbers are normalised before they are stored and returned: a mobile money number is rewritten to E.164 with a leading +, and an IBAN is returned in its normalised form.
Supported channels include bank accounts, mobile money, SWIFT, UPI, Interac, WeChat, and Alipay.
Cards are not created here.CARD is a hosted-checkout channel only, available through Create Checkout Session; this endpoint does not accept it.
Please note that fields without values are not included in the response. This includes fields with empty strings, null values, and undefined values.
accountName character rules. For every channel except WE_CHAT and ALIPAY, the account holder’s name must use Latin-script letters (A-Z / a-z, including accented forms such as é, ñ, ü, ç) or Chinese (Han) characters, digits (0-9), spaces, and the characters &, (, ), +, ,, -, ., /, :, ?, and apostrophe ('). At least one letter is required. Names in other scripts (e.g. Arabic, Cyrillic) or containing other symbols are rejected. For WE_CHAT and ALIPAY payouts, submit the beneficiary’s local-script name (e.g. Chinese characters) as it appears on their wallet. For ALIPAY, and for WE_CHAT payouts in CNY, separate the first and last name with a space, for example Wei Zhang or 张 伟.
Static business API key issued from the dashboard. A business can
provision multiple API keys, each scoped to a configurable set
of permissions (e.g. read transactions, create deposits, etc).
Permissions are chosen per key at creation time in the dashboard
and may be revoked by deleting the key. Manage your keys and
their permissions under Developer → API keys in the dashboard.
A request whose key does not carry the permission the target
endpoint requires is rejected with 401 Unauthorized, the same
response an unrecognised, malformed, revoked or disabled key
returns. The API does not distinguish the two cases on the wire.
API version in ISO 8601 format. The only supported version is 2026-05-18, which is also the default when the header is omitted. Any other value is rejected with a 400 Bad Request.
The capability of this payment method. DEPOSIT means funds can be pulled from this method (e.g. charge/collect from the customer). WITHDRAW means funds can be sent to this method (e.g. pay out to the customer). If omitted, defaults to WITHDRAW.
The name of the account holder. Must use Latin-script letters (A-Z / a-z, including accented forms such as é, ñ, ü, ç) or Chinese (Han) characters, digits (0-9), spaces and the characters & ( ) + , - . / : ? and apostrophe; it must contain at least one letter. Names in other scripts (e.g. Arabic, Cyrillic) or containing other symbols are rejected. Exception: China-facing payouts on the WE_CHAT and ALIPAY channels accept the beneficiary's local-script (e.g. Chinese) name. On ALIPAY, and on WE_CHAT with currency CNY, the name must be split into first and last name with a space (e.g. "张 伟" or "Wei Zhang").
The account number. For a BANK_ACCOUNT in NG it must be exactly 10 digits. For a BANK_ACCOUNT in a country that uses IBANs (e.g. EUR) it must be a valid IBAN. For MOBILE_MONEY send digits only, with no leading + (country code plus national number); the length is checked for some countries and the number must be a valid phone number for countryCode.
The destination institution. For USD (SWIFT) payout payment methods, correspondentBankName and correspondentBankAccountNumber are mandatory. A BANK_ACCOUNT in CNY also needs institutionBranch and institutionCode. WE_CHAT and ALIPAY take no institution, because the channel names the wallet. Any institution you send for them is ignored.
On a payment method, only recipientEmail, recipientPhone, recipientAddress and recipientName are returned. The other fields are accepted when you create one but are not returned on it.
A payment method. Empty fields are omitted. Account-shaped channels (BANK_ACCOUNT, MOBILE_MONEY, SWIFT, etc.) populate accountName, accountNumber, and institution; the CARD channel instead populates last4, brand, expiration, and cardName.
Show child attributes
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Afriex Business API","colors":{"primary":"#0075FF","light":"#0075FF","dark":"#0075FF"},"logo":{"light":"https://mintcdn.com/afriex-5d97ad2e/-0c2OtRvdHYWM-P9/logo/light.svg?fit=max\u0026auto=format\u0026n=-0c2OtRvdHYWM-P9\u0026q=85\u0026s=de5afeca786c40704f98e96da7d2b1b9","dark":"https://mintcdn.com/afriex-5d97ad2e/-0c2OtRvdHYWM-P9/logo/dark.png?fit=max\u0026auto=format\u0026n=-0c2OtRvdHYWM-P9\u0026q=85\u0026s=cdc436ca4fd0df7233a6e3db67941a84"},"favicon":"https://mintcdn.com/afriex-5d97ad2e/-0c2OtRvdHYWM-P9/favicon.png?fit=max\u0026auto=format\u0026n=-0c2OtRvdHYWM-P9\u0026q=85\u0026s=48a66687297df9128bf997d1ad6f10cd","api":{"openapi":"api-reference/openapi.json"},"navbar":{"links":[{"href":"https://afriex.statuspage.io","label":"Status"},{"href":"mailto:support@afriex.com","label":"Support"},{"icon":"/images/play.svg","href":"https://god.gw.postman.com/run-collection/36243325-4caa2575-18c9-4374-892d-ea0dc5a9ec48?action=collection%2Ffork\u0026source=rip_markdown\u0026collection-url=entityId%3D36243325-4caa2575-18c9-4374-892d-ea0dc5a9ec48%26entityType%3Dcollection%26workspaceId%3D05fc21e0-e07f-4bc9-bab5-55be8ed3082d","label":"Run in Postman"}],"primary":{"type":"button","label":"Dashboard","href":"https://business.afriex.com/"}},"footer":{"socials":{"x":"https://x.com/afriexapp","github":"https://github.com/Afri-exchange","linkedin":"https://linkedin.com/company/afriex"}},"contextual":{"options":["copy","view","chatgpt","claude","mcp",{"title":"LLMs.txt","description":"Provide information to help LLMs use the full API docs site","icon":"robot","href":"https://docs.afriex.com/llms.txt"}],"display":"header"},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Status","icon":"wave-pulse","href":"https://afriex.statuspage.io"},{"anchor":"Support","icon":"envelope","href":"mailto:support@afriex.com"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"afriex-5d97ad2e","hasAudioNarration":false,"actualSubdomain":"afriex-5d97ad2e","customDomains":["docs.afriex.com"],"gitSource":{"type":"github","owner":"afri-exchange","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae59bb6acf37ed506a0f8f5","collectionId":"490feb78-2920-4995-97be-af4ea87f5aed","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae59bb6acf37ed506a0f8f5"},"entitlements":{},"buildId":"6ae59bb6acf37ed506a0f8f5","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"API reference","count":63},{"language":"default","tag":"Payment Batches","count":12},{"language":"default","tag":"Payment Methods","count":11},{"language":"default","tag":"Guides","count":8},{"language":"default","tag":"Customers","count":7},{"language":"default","tag":"Transactions","count":7},{"language":"default","tag":"Webhooks","count":6},{"language":"default","tag":"Requests and responses","count":5},{"language":"default","tag":"Overview","count":4},{"language":"default","tag":"Sandbox helpers","count":4}]},"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":"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":"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":"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":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":".navbar-link a[href^=\"https://god.gw.postman.com/\"]{padding:.375rem .75rem;border-radius:.375rem;background-color:#ff6c37;color:#fff;font-weight:600}.navbar-link a[href^=\"https://god.gw.postman.com/\"]:hover{background-color:#e85a2a;color:#fff}#navbar div.flex-1:has(>nav .navbar-link){flex:none}"}],"page":{"pagePath":"api-reference/endpoint/payment-methods/create","slug":"/api-reference/endpoint/payment-methods/create","pageMetadata":{"title":"Create Payment Method","openapi":"POST /api/v1/payment-method","description":"Creates a new payment method. `accountName`, `accountNumber` and `institution` are required for every channel except UPI and INTERAC, which take no `institution`, and VIRTUAL_BANK_ACCOUNT, which takes none of the three.\n\nAccount numbers are normalised before they are stored and returned: a mobile money number is rewritten to E.164 with a leading `+`, and an IBAN is returned in its normalised form.","href":"/api-reference/endpoint/payment-methods/create"},"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 code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Creates a new payment method. \", _jsx(_components.code, {\n children: \"accountName\"\n }), \", \", _jsx(_components.code, {\n children: \"accountNumber\"\n }), \" and \", _jsx(_components.code, {\n children: \"institution\"\n }), \" are required for every channel except UPI and INTERAC, which take no \", _jsx(_components.code, {\n children: \"institution\"\n }), \", and VIRTUAL_BANK_ACCOUNT, which takes none of the three.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Account numbers are normalised before they are stored and returned: a mobile money number is rewritten to E.164 with a leading \", _jsx(_components.code, {\n children: \"+\"\n }), \", and an IBAN is returned in its normalised form.\"]\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,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,blockquote:`blockquote`,code:`code`,p:`p`,strong:`strong`,..._provideComponents(),...props.components},{Note}=_components;if(!Note)_missingMdxReference(`Note`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Supported channels include bank accounts, mobile money, SWIFT, UPI, Interac, WeChat, and Alipay.`}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Cards are not created here.`}),` `,_jsx(_components.code,{children:`CARD`}),` is a hosted-checkout channel only, available through `,_jsx(_components.a,{href:`/api-reference/endpoint/checkout-sessions/create`,children:`Create Checkout Session`}),`; this endpoint does not accept it.`]})}),`\n`,_jsxs(_components.blockquote,{children:[`\n`,_jsx(_components.p,{children:`Please note that fields without values are not included in the response. This includes fields with empty strings, null values, and undefined values.`}),`\n`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsxs(_components.strong,{children:[_jsx(_components.code,{children:`accountName`}),` character rules.`]}),` For every channel except `,_jsx(_components.code,{children:`WE_CHAT`}),` and `,_jsx(_components.code,{children:`ALIPAY`}),`, the account holder’s name must use Latin-script letters (A-Z / a-z, including accented forms such as `,_jsx(_components.code,{children:`é`}),`, `,_jsx(_components.code,{children:`ñ`}),`, `,_jsx(_components.code,{children:`ü`}),`, `,_jsx(_components.code,{children:`ç`}),`) `,_jsx(_components.strong,{children:`or Chinese (Han) characters`}),`, digits (0-9), spaces, and the characters `,_jsx(_components.code,{children:`\u0026`}),`, `,_jsx(_components.code,{children:`(`}),`, `,_jsx(_components.code,{children:`)`}),`, `,_jsx(_components.code,{children:`+`}),`, `,_jsx(_components.code,{children:`,`}),`, `,_jsx(_components.code,{children:`-`}),`, `,_jsx(_components.code,{children:`.`}),`, `,_jsx(_components.code,{children:`/`}),`, `,_jsx(_components.code,{children:`:`}),`, `,_jsx(_components.code,{children:`?`}),`, and apostrophe (`,_jsx(_components.code,{children:`'`}),`). At least one letter is required. Names in other scripts (e.g. Arabic, Cyrillic) or containing other symbols are rejected. For `,_jsx(_components.code,{children:`WE_CHAT`}),` and `,_jsx(_components.code,{children:`ALIPAY`}),` payouts, submit the beneficiary’s local-script name (e.g. Chinese characters) as it appears on their wallet. For `,_jsx(_components.code,{children:`ALIPAY`}),`, and for `,_jsx(_components.code,{children:`WE_CHAT`}),` payouts in `,_jsx(_components.code,{children:`CNY`}),`, separate the first and last name with a space, for example `,_jsx(_components.code,{children:`Wei Zhang`}),` or `,_jsx(_components.code,{children:`张 伟`}),`.`]})})]})}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":"Create Payment Method","openapi":"POST /api/v1/payment-method","description":"Creates a new payment method. `accountName`, `accountNumber` and `institution` are required for every channel except UPI and INTERAC, which take no `institution`, and VIRTUAL_BANK_ACCOUNT, which takes none of the three.\n\nAccount numbers are normalised before they are stored and returned: a mobile money number is rewritten to E.164 with a leading `+`, and an IBAN is returned in its normalised form.","href":"/api-reference/endpoint/payment-methods/create"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"createPaymentMethod","summary":"Create a payment method","description":"Creates a new payment method. `accountName`, `accountNumber` and `institution` are required for every channel except UPI and INTERAC, which take no `institution`, and VIRTUAL_BANK_ACCOUNT, which takes none of the three.\n\nAccount numbers are normalised before they are stored and returned: a mobile money number is rewritten to E.164 with a leading `+`, and an IBAN is returned in its normalised form.","tags":["Payment Methods"],"requestBody":"4fe82c14-4515-4d98-b9b9-fa7d9a49df78","responses":{"201":"8d91add8-946e-4b5f-a5b4-20ea410dbb74","400":"4d79d3b4-9624-4761-8151-626ec12ca417","401":"6b0e0248-346e-4d57-9903-14658b74881b","404":"eccc2fca-72e8-4b72-9c5e-fddc300f82c0","422":"de1abe61-b288-45ca-b4fe-1fc2eb5072f0","500":"2be6576e-f146-45ed-80a2-a0c2b9d4285d","503":"916d01c3-ee3f-43a8-a59a-a4cf3b170a83"},"x-codeSamples":[{"lang":"TypeScript","label":"Afriex SDK","source":"const paymentMethod = await afriex.paymentMethods.create({\n channel: \"BANK_ACCOUNT\",\n customerId: \"customer-id\",\n accountName: \"John Doe\",\n accountNumber: \"1234567890\",\n countryCode: \"NG\",\n institution: {\n institutionCode: \"044\",\n institutionName: \"Access Bank\",\n },\n});\n"}],"method":"post","type":"path","servers":["3298ae0b-7333-4b60-8d1b-b6d15dc0a1b5","9fc63886-0a83-446b-9588-6621dfbf98da"],"security":["c6e6cee1-f5cd-49d4-aecb-1d77573277f3"],"path":"/api/v1/payment-method","baseUrlOptions":["https://sandbox.api.afriex.com","https://api.afriex.com"],"title":"Create a payment method","codeSamples":[{"label":"Afriex SDK","lang":"TypeScript","source":"const paymentMethod = await afriex.paymentMethods.create({\n channel: \"BANK_ACCOUNT\",\n customerId: \"customer-id\",\n accountName: \"John Doe\",\n accountNumber: \"1234567890\",\n countryCode: \"NG\",\n institution: {\n institutionCode: \"044\",\n institutionName: \"Access Bank\",\n },\n});\n"}],"requiredOnlyExamples":false,"requestExampleType":"codeSamples","responseExampleType":"generated"},"dependencies":{"parameters":{"2b72beb9-0871-4e1b-9a76-e759ffa1ab85":{"name":"x-api-signature","in":"header","required":false,"description":"Signature of the request payload, used for request authentication where payload signing is enabled for your business.","schema":{"type":"string","isRequired":false,"description":"Signature of the request payload, used for request authentication where payload signing is enabled for your business.","uniqueKey":"","typeLabel":"string"}},"3f054569-4502-40aa-b8d5-4c9b3abb31c0":{"name":"x-api-version","in":"header","required":false,"description":"API version in ISO 8601 format. The only supported version is `2026-05-18`, which is also the default when the header is omitted. Any other value is rejected with a `400 Bad Request`.","schema":{"type":"string","isRequired":false,"description":"API version in ISO 8601 format. The only supported version is `2026-05-18`, which is also the default when the header is omitted. Any other value is rejected with a `400 Bad Request`.","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["channel","countryCode"],"properties":{"channel":{"type":"string","description":"The payment method channel","enum":["BANK_ACCOUNT","MOBILE_MONEY","VIRTUAL_BANK_ACCOUNT","ACH_BANK_ACCOUNT","INTERAC","UPI","SWIFT","WE_CHAT","ALIPAY"],"isRequired":true,"uniqueKey":"channel","typeLabel":"enum\u003cstring>"},"countryCode":{"type":"string","description":"The ISO 3166-1 alpha-2 country code. This has to be one of the countries we support","isRequired":true,"uniqueKey":"countryCode","typeLabel":"string"},"customerId":{"type":"string","description":"Optional. The customer to attach this payment method to. When omitted, it is attached to the business owner.","uniqueKey":"customerId","typeLabel":"string"},"type":{"type":"string","description":"The capability of this payment method. DEPOSIT means funds can be pulled from this method (e.g. charge/collect from the customer). WITHDRAW means funds can be sent to this method (e.g. pay out to the customer). If omitted, defaults to WITHDRAW.\n","enum":["DEPOSIT","WITHDRAW"],"uniqueKey":"type","typeLabel":"enum\u003cstring>"},"accountName":{"type":"string","description":"The name of the account holder. Must use Latin-script letters (A-Z / a-z, including accented forms such as é, ñ, ü, ç) or Chinese (Han) characters, digits (0-9), spaces and the characters \u0026 ( ) + , - . / : ? and apostrophe; it must contain at least one letter. Names in other scripts (e.g. Arabic, Cyrillic) or containing other symbols are rejected. Exception: China-facing payouts on the `WE_CHAT` and `ALIPAY` channels accept the beneficiary's local-script (e.g. Chinese) name. On `ALIPAY`, and on `WE_CHAT` with `currency` CNY, the name must be split into first and last name with a space (e.g. \"张 伟\" or \"Wei Zhang\").","uniqueKey":"accountName","typeLabel":"string"},"accountNumber":{"type":"string","description":"The account number. For a BANK_ACCOUNT in NG it must be exactly 10 digits. For a BANK_ACCOUNT in a country that uses IBANs (e.g. EUR) it must be a valid IBAN. For MOBILE_MONEY send digits only, with no leading `+` (country code plus national number); the length is checked for some countries and the number must be a valid phone number for `countryCode`.","uniqueKey":"accountNumber","typeLabel":"string"},"institution":{"type":"object","description":"The destination institution. For USD (SWIFT) payout payment methods, correspondentBankName and correspondentBankAccountNumber are mandatory. A BANK_ACCOUNT in CNY also needs `institutionBranch` and `institutionCode`. `WE_CHAT` and `ALIPAY` take no institution, because the channel names the wallet. Any institution you send for them is ignored.","properties":{"institutionId":{"type":"string","description":"The unique identifier of the bank or mobile money provider if required.","uniqueKey":"institution.institutionId","typeLabel":"string"},"institutionName":{"type":"string","description":"The name of the bank or mobile money provider if required.","uniqueKey":"institution.institutionName","typeLabel":"string"},"institutionCode":{"type":"string","description":"The code of the bank or mobile money provider.","uniqueKey":"institution.institutionCode","typeLabel":"string"},"institutionAddress":{"type":"string","description":"The address of the bank or mobile money provider if required.","uniqueKey":"institution.institutionAddress","typeLabel":"string"},"institutionAddressLine1":{"type":"string","description":"Optional. First line of `institutionAddress`, for SWIFT payment methods. Used ahead of `recipientAddressLine1`.","uniqueKey":"institution.institutionAddressLine1","typeLabel":"string"},"institutionAddressCity":{"type":"string","description":"Optional. City of `institutionAddress`, for SWIFT payment methods.","uniqueKey":"institution.institutionAddressCity","typeLabel":"string"},"institutionAddressState":{"type":"string","description":"Optional. State of `institutionAddress`, for SWIFT payment methods.","uniqueKey":"institution.institutionAddressState","typeLabel":"string"},"institutionAddressZip":{"type":"string","description":"Optional. Postal or ZIP code of `institutionAddress`, for SWIFT payment methods.","uniqueKey":"institution.institutionAddressZip","typeLabel":"string"},"institutionAddressCountry":{"type":"string","description":"Optional. Country of `institutionAddress`, for SWIFT payment methods.","uniqueKey":"institution.institutionAddressCountry","typeLabel":"string"},"institutionBranch":{"type":"string","description":"The branch of the bank. Required when creating a BANK_ACCOUNT payment method in CNY. Bank lists return it too, often as an empty string.","uniqueKey":"institution.institutionBranch","typeLabel":"string"},"correspondentBankName":{"type":"string","description":"The correspondent (intermediary) bank name. Mandatory for USD (SWIFT) payout payment methods; required to produce settlement advices/invoices.","uniqueKey":"institution.correspondentBankName","typeLabel":"string"},"correspondentBankAccountNumber":{"type":"string","description":"The correspondent (intermediary) bank account number. Mandatory for USD (SWIFT) payout payment methods; required to produce settlement advices/invoices.","uniqueKey":"institution.correspondentBankAccountNumber","typeLabel":"string"}},"uniqueKey":"institution","typeLabel":"object"},"recipient":{"type":"object","description":"On a payment method, only `recipientEmail`, `recipientPhone`, `recipientAddress` and `recipientName` are returned. The other fields are accepted when you create one but are not returned on it.","properties":{"recipientEmail":{"type":"string","format":"email","description":"The email address of the recipient if needed.","uniqueKey":"recipient.recipientEmail","typeLabel":"string\u003cemail>"},"recipientPhone":{"type":"string","description":"The phone number of the recipient in E.164 format.","uniqueKey":"recipient.recipientPhone","typeLabel":"string"},"recipientAddress":{"type":"string","description":"The address of the recipient if needed.","uniqueKey":"recipient.recipientAddress","typeLabel":"string"},"recipientAddressLine1":{"type":"string","description":"Optional. First line of `recipientAddress`. Used on SWIFT payment methods when `institutionAddressLine1` is not sent.","uniqueKey":"recipient.recipientAddressLine1","typeLabel":"string"},"recipientAddressCity":{"type":"string","description":"Optional. City of `recipientAddress`.","uniqueKey":"recipient.recipientAddressCity","typeLabel":"string"},"recipientAddressState":{"type":"string","description":"Optional. State of `recipientAddress`.","uniqueKey":"recipient.recipientAddressState","typeLabel":"string"},"recipientAddressZip":{"type":"string","description":"Optional. Postal or ZIP code of `recipientAddress`.","uniqueKey":"recipient.recipientAddressZip","typeLabel":"string"},"recipientAddressCountry":{"type":"string","description":"Optional. Country of `recipientAddress`.","uniqueKey":"recipient.recipientAddressCountry","typeLabel":"string"},"recipientIdType":{"type":"string","description":"The type of the recipient's ID. Needed, with `recipientIdNumber`, for BANK_ACCOUNT payment methods in CNY, where it is recorded as the recipient's KYC.","enum":["national_id","passport","drivers_license","voters_card","residence_permit","bvn","tax_id"],"uniqueKey":"recipient.recipientIdType","typeLabel":"enum\u003cstring>"},"recipientIdNumber":{"type":"string","description":"The number of the ID named by `recipientIdType`. Needed for BANK_ACCOUNT payment methods in CNY.","uniqueKey":"recipient.recipientIdNumber","typeLabel":"string"},"recipientUpiId":{"type":"string","description":"The recipient's UPI ID. Used on UPI payment methods; when omitted, `accountNumber` is used.","uniqueKey":"recipient.recipientUpiId","typeLabel":"string"},"recipientName":{"type":"string","description":"The name of the recipient if needed.","uniqueKey":"recipient.recipientName","typeLabel":"string"}},"uniqueKey":"recipient","typeLabel":"object"},"sender":{"type":"object","description":"Optional details of the sender, stored with the payment method and not returned on it. Takes the same fields as `recipient`.","properties":{"recipientEmail":{"type":"string","format":"email","description":"The email address of the recipient if needed.","uniqueKey":"sender.recipientEmail","typeLabel":"string\u003cemail>"},"recipientPhone":{"type":"string","description":"The phone number of the recipient in E.164 format.","uniqueKey":"sender.recipientPhone","typeLabel":"string"},"recipientAddress":{"type":"string","description":"The address of the recipient if needed.","uniqueKey":"sender.recipientAddress","typeLabel":"string"},"recipientAddressLine1":{"type":"string","description":"Optional. First line of `recipientAddress`. Used on SWIFT payment methods when `institutionAddressLine1` is not sent.","uniqueKey":"sender.recipientAddressLine1","typeLabel":"string"},"recipientAddressCity":{"type":"string","description":"Optional. City of `recipientAddress`.","uniqueKey":"sender.recipientAddressCity","typeLabel":"string"},"recipientAddressState":{"type":"string","description":"Optional. State of `recipientAddress`.","uniqueKey":"sender.recipientAddressState","typeLabel":"string"},"recipientAddressZip":{"type":"string","description":"Optional. Postal or ZIP code of `recipientAddress`.","uniqueKey":"sender.recipientAddressZip","typeLabel":"string"},"recipientAddressCountry":{"type":"string","description":"Optional. Country of `recipientAddress`.","uniqueKey":"sender.recipientAddressCountry","typeLabel":"string"},"recipientIdType":{"type":"string","description":"The type of the recipient's ID. Needed, with `recipientIdNumber`, for BANK_ACCOUNT payment methods in CNY, where it is recorded as the recipient's KYC.","enum":["national_id","passport","drivers_license","voters_card","residence_permit","bvn","tax_id"],"uniqueKey":"sender.recipientIdType","typeLabel":"enum\u003cstring>"},"recipientIdNumber":{"type":"string","description":"The number of the ID named by `recipientIdType`. Needed for BANK_ACCOUNT payment methods in CNY.","uniqueKey":"sender.recipientIdNumber","typeLabel":"string"},"recipientUpiId":{"type":"string","description":"The recipient's UPI ID. Used on UPI payment methods; when omitted, `accountNumber` is used.","uniqueKey":"sender.recipientUpiId","typeLabel":"string"},"recipientName":{"type":"string","description":"The name of the recipient if needed.","uniqueKey":"sender.recipientName","typeLabel":"string"}},"uniqueKey":"sender","typeLabel":"object"},"transaction":{"type":"object","properties":{"transactionInvoice":{"type":"string","description":"The invoice filename (S3 object key) for the transaction, as returned by the media upload endpoint.","uniqueKey":"transaction.transactionInvoice","typeLabel":"string"},"transactionNarration":{"type":"string","description":"The optional reason for the transaction.","uniqueKey":"transaction.transactionNarration","typeLabel":"string"}},"uniqueKey":"transaction","typeLabel":"object"},"meta":{"type":"object","description":"Optional meta data to attach to the payment method. It is stored as sent and returned as `meta` on the payment method.","additionalProperties":true,"uniqueKey":"meta","typeLabel":"object"},"walletTag":{"type":"string","description":"Optional. Tags the payment method to one of your wallets (`DEPOSIT`, `WITHDRAW` or `FEE`). Stored as sent and not returned on the payment method.","uniqueKey":"walletTag","typeLabel":"string"},"amount":{"oneOf":[{"type":"number","description":"Optional. An amount to store with the payment method, returned as `amount`.","minimum":0,"example":"100.50","exclusiveMinimum":true,"uniqueKey":"amount.oneOf.0","typeLabel":"number"},{"type":"string","description":"Optional. An amount to store with the payment method, returned as `amount`.","pattern":"^(?=.*[1-9])\\d+(\\.\\d+)?$","example":"100.50","uniqueKey":"amount.oneOf.1","typeLabel":"string"}],"uniqueKey":"amount","typeLabel":"number | string"},"wechatId":{"type":"string","description":"Optional WeChat ID, sent alongside the phone number in `accountNumber`. Only used on the `WE_CHAT` channel; ignored on every other channel.","uniqueKey":"wechatId","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Bank Account":{"title":"Bank Account","value":{"customerId":"69528240ba52c13b669fb239","type":"WITHDRAW","channel":"BANK_ACCOUNT","accountName":"John Doe","accountNumber":"0123456789","countryCode":"NG","institution":{"institutionCode":"058","institutionName":"GTBank"}}},"SWIFT Transfer":{"title":"SWIFT Transfer","value":{"customerId":"69528240ba52c13b669fb239","type":"WITHDRAW","channel":"SWIFT","accountName":"John Doe","accountNumber":"DE89370400440532013000","countryCode":"DE","institution":{"institutionCode":"DEUTDEDB","institutionName":"Deutsche Bank","institutionAddress":"Taunusanlage 12, 60262 Frankfurt am Main, Germany","correspondentBankName":"Citibank N.A. New York","correspondentBankAccountNumber":"10991234"},"recipient":{"recipientAddress":"Musterstraße 1, 10115 Berlin, Germany"},"transaction":{"transactionNarration":"Payment for services"}}},"Mobile Money":{"title":"Mobile Money","value":{"customerId":"69528240ba52c13b669fb239","type":"WITHDRAW","channel":"MOBILE_MONEY","accountName":"John Doe","accountNumber":"0201234567","countryCode":"GH","institution":{"institutionCode":"MTN","institutionName":"MTN"}}},"Mobile Money (Deposit)":{"title":"Mobile Money (Deposit)","value":{"customerId":"69528240ba52c13b669fb239","type":"DEPOSIT","channel":"MOBILE_MONEY","accountName":"John Doe","accountNumber":"0201234567","countryCode":"GH","institution":{"institutionCode":"MTN","institutionName":"MTN"}}},"UPI":{"title":"UPI","value":{"customerId":"69528240ba52c13b669fb239","type":"WITHDRAW","channel":"UPI","accountName":"Raj Kumar","accountNumber":"rajkumar@upi","countryCode":"IN","recipient":{"recipientPhone":"+919876543210"}}},"Interac":{"title":"Interac","value":{"customerId":"69528240ba52c13b669fb239","type":"WITHDRAW","channel":"INTERAC","accountName":"John Doe","accountNumber":"john.doe@email.com","countryCode":"CA","recipient":{"recipientEmail":"john.doe@email.com"}}},"WeChat Pay":{"title":"WeChat Pay","value":{"customerId":"69528240ba52c13b669fb239","type":"WITHDRAW","channel":"WE_CHAT","accountName":"Zhang Wei","accountNumber":"+8613812345678","countryCode":"CN","recipient":{"recipientPhone":"+8613812345678"}}},"Alipay":{"title":"Alipay","value":{"customerId":"69528240ba52c13b669fb239","type":"WITHDRAW","channel":"ALIPAY","accountName":"Zhang Wei","accountNumber":"+8613812345678","countryCode":"CN","recipient":{"recipientPhone":"+8613812345678"}}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"8d91add8-946e-4b5f-a5b4-20ea410dbb74":{"description":"Payment method created successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","description":"A payment method. Empty fields are omitted. Account-shaped channels (BANK_ACCOUNT, MOBILE_MONEY, SWIFT, etc.) populate accountName, accountNumber, and institution; the CARD channel instead populates last4, brand, expiration, and cardName.","properties":{"paymentMethodId":{"type":"string","description":"The unique identifier for the payment method.","uniqueKey":"data.paymentMethodId","typeLabel":"string"},"customerId":{"type":"string","description":"The unique identifier of the customer.","uniqueKey":"data.customerId","typeLabel":"string"},"reference":{"type":"string","description":"Identifier to reconcile incoming deposits against.","uniqueKey":"data.reference","typeLabel":"string"},"institution":{"type":"object","description":"On a payment method, only `institutionId`, `institutionName`, `institutionCode`, `institutionAddress` and the correspondent bank fields are returned. The address components and `institutionBranch` are accepted when you create one but are not returned on it; `institutionBranch` is returned by the institution list.","properties":{"institutionId":{"type":"string","description":"The unique identifier of the bank or mobile money provider if required.","uniqueKey":"data.institution.institutionId","typeLabel":"string"},"institutionName":{"type":"string","description":"The name of the bank or mobile money provider if required.","uniqueKey":"data.institution.institutionName","typeLabel":"string"},"institutionCode":{"type":"string","description":"The code of the bank or mobile money provider.","uniqueKey":"data.institution.institutionCode","typeLabel":"string"},"institutionAddress":{"type":"string","description":"The address of the bank or mobile money provider if required.","uniqueKey":"data.institution.institutionAddress","typeLabel":"string"},"institutionAddressLine1":{"type":"string","description":"Optional. First line of `institutionAddress`, for SWIFT payment methods. Used ahead of `recipientAddressLine1`.","uniqueKey":"data.institution.institutionAddressLine1","typeLabel":"string"},"institutionAddressCity":{"type":"string","description":"Optional. City of `institutionAddress`, for SWIFT payment methods.","uniqueKey":"data.institution.institutionAddressCity","typeLabel":"string"},"institutionAddressState":{"type":"string","description":"Optional. State of `institutionAddress`, for SWIFT payment methods.","uniqueKey":"data.institution.institutionAddressState","typeLabel":"string"},"institutionAddressZip":{"type":"string","description":"Optional. Postal or ZIP code of `institutionAddress`, for SWIFT payment methods.","uniqueKey":"data.institution.institutionAddressZip","typeLabel":"string"},"institutionAddressCountry":{"type":"string","description":"Optional. Country of `institutionAddress`, for SWIFT payment methods.","uniqueKey":"data.institution.institutionAddressCountry","typeLabel":"string"},"institutionBranch":{"type":"string","description":"The branch of the bank. Required when creating a BANK_ACCOUNT payment method in CNY. Bank lists return it too, often as an empty string.","uniqueKey":"data.institution.institutionBranch","typeLabel":"string"},"correspondentBankName":{"type":"string","description":"The correspondent (intermediary) bank name. Mandatory for USD (SWIFT) payout payment methods; required to produce settlement advices/invoices.","uniqueKey":"data.institution.correspondentBankName","typeLabel":"string"},"correspondentBankAccountNumber":{"type":"string","description":"The correspondent (intermediary) bank account number. Mandatory for USD (SWIFT) payout payment methods; required to produce settlement advices/invoices.","uniqueKey":"data.institution.correspondentBankAccountNumber","typeLabel":"string"}},"uniqueKey":"data.institution","typeLabel":"object"},"transaction":{"type":"object","properties":{"transactionInvoice":{"type":"string","description":"The invoice filename (S3 object key) for the transaction, as returned by the media upload endpoint.","uniqueKey":"data.transaction.transactionInvoice","typeLabel":"string"},"transactionNarration":{"type":"string","description":"The optional reason for the transaction.","uniqueKey":"data.transaction.transactionNarration","typeLabel":"string"}},"uniqueKey":"data.transaction","typeLabel":"object"},"recipient":{"type":"object","description":"On a payment method, only `recipientEmail`, `recipientPhone`, `recipientAddress` and `recipientName` are returned. The other fields are accepted when you create one but are not returned on it.","properties":{"recipientEmail":{"type":"string","format":"email","description":"The email address of the recipient if needed.","uniqueKey":"data.recipient.recipientEmail","typeLabel":"string\u003cemail>"},"recipientPhone":{"type":"string","description":"The phone number of the recipient in E.164 format.","uniqueKey":"data.recipient.recipientPhone","typeLabel":"string"},"recipientAddress":{"type":"string","description":"The address of the recipient if needed.","uniqueKey":"data.recipient.recipientAddress","typeLabel":"string"},"recipientAddressLine1":{"type":"string","description":"Optional. First line of `recipientAddress`. Used on SWIFT payment methods when `institutionAddressLine1` is not sent.","uniqueKey":"data.recipient.recipientAddressLine1","typeLabel":"string"},"recipientAddressCity":{"type":"string","description":"Optional. City of `recipientAddress`.","uniqueKey":"data.recipient.recipientAddressCity","typeLabel":"string"},"recipientAddressState":{"type":"string","description":"Optional. State of `recipientAddress`.","uniqueKey":"data.recipient.recipientAddressState","typeLabel":"string"},"recipientAddressZip":{"type":"string","description":"Optional. Postal or ZIP code of `recipientAddress`.","uniqueKey":"data.recipient.recipientAddressZip","typeLabel":"string"},"recipientAddressCountry":{"type":"string","description":"Optional. Country of `recipientAddress`.","uniqueKey":"data.recipient.recipientAddressCountry","typeLabel":"string"},"recipientIdType":{"type":"string","description":"The type of the recipient's ID. Needed, with `recipientIdNumber`, for BANK_ACCOUNT payment methods in CNY, where it is recorded as the recipient's KYC.","enum":["national_id","passport","drivers_license","voters_card","residence_permit","bvn","tax_id"],"uniqueKey":"data.recipient.recipientIdType","typeLabel":"enum\u003cstring>"},"recipientIdNumber":{"type":"string","description":"The number of the ID named by `recipientIdType`. Needed for BANK_ACCOUNT payment methods in CNY.","uniqueKey":"data.recipient.recipientIdNumber","typeLabel":"string"},"recipientUpiId":{"type":"string","description":"The recipient's UPI ID. Used on UPI payment methods; when omitted, `accountNumber` is used.","uniqueKey":"data.recipient.recipientUpiId","typeLabel":"string"},"recipientName":{"type":"string","description":"The name of the recipient if needed.","uniqueKey":"data.recipient.recipientName","typeLabel":"string"}},"uniqueKey":"data.recipient","typeLabel":"object"},"channel":{"type":"string","enum":["BANK_ACCOUNT","MOBILE_MONEY","SWIFT","INTERAC","UPI","WE_CHAT","ALIPAY","CARD","CRYPTO","VIRTUAL_BANK_ACCOUNT","POOL_ACCOUNT","ACH_BANK_ACCOUNT","PAYBILL_TILL","RFP","VIRTUAL_CARD"],"description":"The payment method channel.","uniqueKey":"data.channel","typeLabel":"enum\u003cstring>"},"countryCode":{"type":"string","description":"The ISO 3166-1 alpha-2 country code.","uniqueKey":"data.countryCode","typeLabel":"string"},"currency":{"type":"string","description":"The payment method's currency (ISO 4217). Use this instead of inferring currency from countryCode, which is ambiguous (e.g. a USD account in a non-US country).","uniqueKey":"data.currency","typeLabel":"string"},"capabilities":{"type":"array","items":{"type":"string","uniqueKey":"data.capabilities.items.[INDEX]","typeLabel":"string"},"description":"The operations this payment method is enabled for (e.g. DEPOSIT, WITHDRAW). Use it to select deposit-capable vs withdraw-capable methods. Also filterable via the `capabilities` query parameter.","uniqueKey":"data.capabilities","typeLabel":"string[]"},"accountName":{"type":"string","description":"Name of the account holder. Present for account-shaped channels.","uniqueKey":"data.accountName","typeLabel":"string"},"accountNumber":{"type":"string","description":"Account number. Present for account-shaped channels, except INTERAC, which returns none. For UPI it carries the recipient phone number, not the UPI ID.","uniqueKey":"data.accountNumber","typeLabel":"string"},"routingNumber":{"type":"string","description":"Bank routing number. Present for account-shaped channels that carry one (e.g. ACH bank accounts).","uniqueKey":"data.routingNumber","typeLabel":"string"},"bankAddress":{"type":"object","description":"The issuing bank's postal address, populated per account by the provider that provisioned it. Present on virtual accounts and other account-shaped payment methods whose provider supplies it; omitted otherwise. This is the bank's address, not the account holder's.","properties":{"line1":{"type":"string","description":"First line of the bank's street address.","uniqueKey":"data.bankAddress.line1","typeLabel":"string"},"line2":{"type":"string","description":"Second line of the bank's street address, when present.","uniqueKey":"data.bankAddress.line2","typeLabel":"string"},"city":{"type":"string","description":"City.","uniqueKey":"data.bankAddress.city","typeLabel":"string"},"state":{"type":"string","description":"State or region, when present.","uniqueKey":"data.bankAddress.state","typeLabel":"string"},"zip":{"type":"string","description":"Postal or ZIP code.","uniqueKey":"data.bankAddress.zip","typeLabel":"string"},"country":{"type":"string","description":"Country, as supplied by the provider.","uniqueKey":"data.bankAddress.country","typeLabel":"string"}},"uniqueKey":"data.bankAddress","typeLabel":"object"},"status":{"type":"string","enum":["active","pending","deleted","expired","blocked"],"description":"Lifecycle status of the payment method.","uniqueKey":"data.status","typeLabel":"enum\u003cstring>"},"last4":{"type":"string","description":"Last 4 digits of the card. CARD channel only.","uniqueKey":"data.last4","typeLabel":"string"},"brand":{"type":"string","enum":["Visa","MasterCard","Discover","American Express","JCB","Diners Club","Eftpos Australia","UnionPay","Unknown"],"description":"Card brand. CARD channel only.","uniqueKey":"data.brand","typeLabel":"enum\u003cstring>"},"expiration":{"type":"object","description":"Card expiration. CARD channel only.","properties":{"month":{"type":"integer","uniqueKey":"data.expiration.month","typeLabel":"integer"},"year":{"type":"integer","uniqueKey":"data.expiration.year","typeLabel":"integer"}},"uniqueKey":"data.expiration","typeLabel":"object"},"cardName":{"type":"string","description":"Name on the card. CARD channel only.","uniqueKey":"data.cardName","typeLabel":"string"},"expiresInMinutes":{"type":"integer","description":"Minutes until a dynamic virtual account expires, when applicable.","uniqueKey":"data.expiresInMinutes","typeLabel":"integer"},"amount":{"oneOf":[{"type":"number","description":"The amount stored with the payment method, as you sent it (a number or a numeric string), or the requested amount for a dynamic virtual account, when applicable.","uniqueKey":"data.amount.oneOf.0","typeLabel":"number"},{"type":"string","description":"The amount stored with the payment method, as you sent it (a number or a numeric string), or the requested amount for a dynamic virtual account, when applicable.","uniqueKey":"data.amount.oneOf.1","typeLabel":"string"}],"uniqueKey":"data.amount","typeLabel":"number | string"},"extra":{"type":"object","description":"Additional channel-specific properties.","additionalProperties":true,"uniqueKey":"data.extra","typeLabel":"object"},"meta":{"type":"object","description":"The meta data you attached to the payment method when you created it.","uniqueKey":"data.meta","typeLabel":"object"}},"uniqueKey":"data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"bankAccount":{"title":"bankAccount","value":{"data":{"paymentMethodId":"69d6002579101baa20f63816","channel":"BANK_ACCOUNT","customerId":"69d60024ab82306f11b03325","institution":{"institutionCode":"000013","institutionName":"GTBank"},"accountName":"John Doe","accountNumber":"0123456789","countryCode":"NG","currency":"NGN","capabilities":["WITHDRAW"],"status":"active"}}}},"exampleType":"examples"}},"exampleType":"examples"},"4d79d3b4-9624-4761-8151-626ec12ca417":{"description":"Invalid request.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code.","uniqueKey":"code","typeLabel":"string"},"error":{"type":"string","description":"Human-readable error message.","uniqueKey":"error","typeLabel":"string"},"details":{"type":"object","properties":{"errorMessage":{"type":"string","description":"Detailed/technical error message.","uniqueKey":"details.errorMessage","typeLabel":"string"},"friendlyMessage":{"type":"string","description":"User-facing error message safe to display.","uniqueKey":"details.friendlyMessage","typeLabel":"string"},"data":{"type":"object","description":"Optional caller-safe context for the error. On a customer-create uniqueness conflict (EMAIL_ALREADY_EXISTS / PHONE_NUMBER_ALREADY_EXISTS) this carries the existing customer's id, so you can adopt it without a follow-up lookup.","properties":{"customerId":{"type":"string","description":"Id of the existing customer (on a create conflict).","uniqueKey":"details.data.customerId","typeLabel":"string"}},"uniqueKey":"details.data","typeLabel":"object"}},"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"missingRequiredField":{"title":"missingRequiredField","value":{"code":"INVALID_BUSINESS_PAYMENT_METHOD_REQUEST","error":"Invalid business payment method request","details":{"errorMessage":"Invalid business payment method request","friendlyMessage":"No account name provided"}}},"invalidCustomerId":{"title":"invalidCustomerId","value":{"code":"INVALID_BUSINESS_CUSTOMER_ID","error":"Invalid business customer id","details":{"errorMessage":"Invalid business customer id","friendlyMessage":""}}},"unknownCustomer":{"title":"unknownCustomer","value":{"code":"INVALID_USER_DATA","error":"Invalid user data","details":{"errorMessage":"Invalid user data","friendlyMessage":""}}}},"exampleType":"examples"}},"exampleType":"examples"},"6b0e0248-346e-4d57-9903-14658b74881b":{"description":"Unauthorized - Invalid business API key.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code.","uniqueKey":"code","typeLabel":"string"},"error":{"type":"string","description":"Human-readable error message.","uniqueKey":"error","typeLabel":"string"},"details":{"type":"object","properties":{"errorMessage":{"type":"string","description":"Detailed/technical error message.","uniqueKey":"details.errorMessage","typeLabel":"string"},"friendlyMessage":{"type":"string","description":"User-facing error message safe to display.","uniqueKey":"details.friendlyMessage","typeLabel":"string"},"data":{"type":"object","description":"Optional caller-safe context for the error. On a customer-create uniqueness conflict (EMAIL_ALREADY_EXISTS / PHONE_NUMBER_ALREADY_EXISTS) this carries the existing customer's id, so you can adopt it without a follow-up lookup.","properties":{"customerId":{"type":"string","description":"Id of the existing customer (on a create conflict).","uniqueKey":"details.data.customerId","typeLabel":"string"}},"uniqueKey":"details.data","typeLabel":"object"}},"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"missingApiKey":{"title":"missingApiKey","value":{"code":"AUTHENTICATION_ERROR","error":"Authorization header is missing","details":{}}},"invalidApiKey":{"title":"invalidApiKey","value":{"code":"AUTHENTICATION_ERROR","error":"Invalid authorization header","details":{}}}},"exampleType":"examples"}},"exampleType":"examples"},"eccc2fca-72e8-4b72-9c5e-fddc300f82c0":{"description":"The customer could not be resolved.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code.","uniqueKey":"code","typeLabel":"string"},"error":{"type":"string","description":"Human-readable error message.","uniqueKey":"error","typeLabel":"string"},"details":{"type":"object","properties":{"errorMessage":{"type":"string","description":"Detailed/technical error message.","uniqueKey":"details.errorMessage","typeLabel":"string"},"friendlyMessage":{"type":"string","description":"User-facing error message safe to display.","uniqueKey":"details.friendlyMessage","typeLabel":"string"},"data":{"type":"object","description":"Optional caller-safe context for the error. On a customer-create uniqueness conflict (EMAIL_ALREADY_EXISTS / PHONE_NUMBER_ALREADY_EXISTS) this carries the existing customer's id, so you can adopt it without a follow-up lookup.","properties":{"customerId":{"type":"string","description":"Id of the existing customer (on a create conflict).","uniqueKey":"details.data.customerId","typeLabel":"string"}},"uniqueKey":"details.data","typeLabel":"object"}},"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"customerNotFound":{"title":"customerNotFound","value":{"code":"BUSINESS_CUSTOMER_NOT_FOUND","error":"Business customer not found","details":{"errorMessage":"Business customer not found","friendlyMessage":""}}}},"exampleType":"examples"}},"exampleType":"examples"},"de1abe61-b288-45ca-b4fe-1fc2eb5072f0":{"description":"This payment method cannot be used: it is not available for the country, currency or channel you sent.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code.","uniqueKey":"code","typeLabel":"string"},"error":{"type":"string","description":"Human-readable error message.","uniqueKey":"error","typeLabel":"string"},"details":{"type":"object","properties":{"errorMessage":{"type":"string","description":"Detailed/technical error message.","uniqueKey":"details.errorMessage","typeLabel":"string"},"friendlyMessage":{"type":"string","description":"User-facing error message safe to display.","uniqueKey":"details.friendlyMessage","typeLabel":"string"},"data":{"type":"object","description":"Optional caller-safe context for the error. On a customer-create uniqueness conflict (EMAIL_ALREADY_EXISTS / PHONE_NUMBER_ALREADY_EXISTS) this carries the existing customer's id, so you can adopt it without a follow-up lookup.","properties":{"customerId":{"type":"string","description":"Id of the existing customer (on a create conflict).","uniqueKey":"details.data.customerId","typeLabel":"string"}},"uniqueKey":"details.data","typeLabel":"object"}},"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"paymentMethodNotSupported":{"title":"paymentMethodNotSupported","value":{"code":"PROCESSOR_NOT_FOUND","error":"Processor not found","details":{"errorMessage":"Processor not found","friendlyMessage":""}}}},"exampleType":"examples"}},"exampleType":"examples"},"2be6576e-f146-45ed-80a2-a0c2b9d4285d":{"description":"Server error.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code.","uniqueKey":"code","typeLabel":"string"},"error":{"type":"string","description":"Human-readable error message.","uniqueKey":"error","typeLabel":"string"},"details":{"type":"object","properties":{"errorMessage":{"type":"string","description":"Detailed/technical error message.","uniqueKey":"details.errorMessage","typeLabel":"string"},"friendlyMessage":{"type":"string","description":"User-facing error message safe to display.","uniqueKey":"details.friendlyMessage","typeLabel":"string"},"data":{"type":"object","description":"Optional caller-safe context for the error. On a customer-create uniqueness conflict (EMAIL_ALREADY_EXISTS / PHONE_NUMBER_ALREADY_EXISTS) this carries the existing customer's id, so you can adopt it without a follow-up lookup.","properties":{"customerId":{"type":"string","description":"Id of the existing customer (on a create conflict).","uniqueKey":"details.data.customerId","typeLabel":"string"}},"uniqueKey":"details.data","typeLabel":"object"}},"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"serverError":{"title":"serverError","value":{"code":"INTERNAL_SERVER_ERROR","error":"It's not you, it's us, please reach out to support","details":{}}}},"exampleType":"examples"}},"exampleType":"examples"},"916d01c3-ee3f-43a8-a59a-a4cf3b170a83":{"description":"Temporarily unavailable: an upstream service failed or timed out, or the API is momentarily offline. Retry with backoff and honour the Retry-After header when present.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code.","uniqueKey":"code","typeLabel":"string"},"error":{"type":"string","description":"Human-readable error message.","uniqueKey":"error","typeLabel":"string"},"details":{"type":"object","properties":{"errorMessage":{"type":"string","description":"Detailed/technical error message.","uniqueKey":"details.errorMessage","typeLabel":"string"},"friendlyMessage":{"type":"string","description":"User-facing error message safe to display.","uniqueKey":"details.friendlyMessage","typeLabel":"string"},"data":{"type":"object","description":"Optional caller-safe context for the error. On a customer-create uniqueness conflict (EMAIL_ALREADY_EXISTS / PHONE_NUMBER_ALREADY_EXISTS) this carries the existing customer's id, so you can adopt it without a follow-up lookup.","properties":{"customerId":{"type":"string","description":"Id of the existing customer (on a create conflict).","uniqueKey":"details.data.customerId","typeLabel":"string"}},"uniqueKey":"details.data","typeLabel":"object"}},"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"serviceUnavailable":{"title":"serviceUnavailable","value":{"code":"EXTERNAL_REQUEST_ERROR","error":"External request error","details":{}}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"c6e6cee1-f5cd-49d4-aecb-1d77573277f3":{"ApiKey":{"type":"apiKey","in":"header","name":"x-api-key","description":"Static business API key issued from the dashboard. A business can\nprovision **multiple API keys**, each scoped to a configurable set\nof **permissions** (e.g. read transactions, create deposits, etc).\nPermissions are chosen per key at creation time in the dashboard\nand may be revoked by deleting the key. Manage your keys and\ntheir permissions under **Developer → API keys** in the dashboard.\n\nA request whose key does not carry the permission the target\nendpoint requires is rejected with `401 Unauthorized`, the same\nresponse an unrecognised, malformed, revoked or disabled key\nreturns. The API does not distinguish the two cases on the wire.\n\nSee the [Permissions reference](https://docs.afriex.com/api-reference/permissions)\nfor the permission each endpoint requires.","scopes":[],"schemeName":"ApiKey"}}},"servers":{"3298ae0b-7333-4b60-8d1b-b6d15dc0a1b5":{"url":"https://sandbox.api.afriex.com","description":"Sandbox Base URL"},"9fc63886-0a83-446b-9588-6621dfbf98da":{"url":"https://api.afriex.com","description":"Production Base URL"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"x-api-key","description":"Static business API key issued from the dashboard. A business can\nprovision **multiple API keys**, each scoped to a configurable set\nof **permissions** (e.g. read transactions, create deposits, etc).\nPermissions are chosen per key at creation time in the dashboard\nand may be revoked by deleting the key. Manage your keys and\ntheir permissions under **Developer → API keys** in the dashboard.\n\nA request whose key does not carry the permission the target\nendpoint requires is rejected with `401 Unauthorized`, the same\nresponse an unrecognised, malformed, revoked or disabled key\nreturns. The API does not distinguish the two cases on the wire.\n\nSee the [Permissions reference](https://docs.afriex.com/api-reference/permissions)\nfor the permission each endpoint requires.","scopes":[],"schemeName":"ApiKey"},"schema":{"title":"x-api-key","type":"string","description":"Static business API key issued from the dashboard. A business can\nprovision **multiple API keys**, each scoped to a configurable set\nof **permissions** (e.g. read transactions, create deposits, etc).\nPermissions are chosen per key at creation time in the dashboard\nand may be revoked by deleting the key. Manage your keys and\ntheir permissions under **Developer → API keys** in the dashboard.\n\nA request whose key does not carry the permission the target\nendpoint requires is rejected with `401 Unauthorized`, the same\nresponse an unrecognised, malformed, revoked or disabled key\nreturns. The API does not distinguish the two cases on the wire.\n\nSee the [Permissions reference](https://docs.afriex.com/api-reference/permissions)\nfor the permission each endpoint requires.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKey","name":"x-api-key"}],"title":"ApiKey"}]},"originalFileLocation":"api-reference/openapi.json"},"subdomain":"afriex-5d97ad2e","siteName":"Afriex Business API","title":"Create Payment Method - Afriex Business API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-31T06:10:02.070Z","originalFileLocation":"api-reference/endpoint/payment-methods/create.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=\"Creates a new payment method. accountName, accountNumber and institution are required for every channel except UPI and INTERAC, which take no institution, and VIRTUAL_BANK_ACCOUNT, which takes none of the three. Account numbers are normalised before they are stored and returned: a mobile money number is rewritten to E.164 with a leading +, and an IBAN is returned in its normalised form.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Afriex Business API\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/afriex-5d97ad2e/ZexKAY-mYWAtBk6G/_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/afriex-5d97ad2e/ZexKAY-mYWAtBk6G/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/afriex-5d97ad2e/ZexKAY-mYWAtBk6G/_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/afriex-5d97ad2e/ZexKAY-mYWAtBk6G/_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/afriex-5d97ad2e/ZexKAY-mYWAtBk6G/_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/afriex-5d97ad2e/ZexKAY-mYWAtBk6G/_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/afriex-5d97ad2e/ZexKAY-mYWAtBk6G/_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/afriex-5d97ad2e/ZexKAY-mYWAtBk6G/_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/afriex-5d97ad2e/ZexKAY-mYWAtBk6G/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create Payment Method - Afriex Business API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Creates a new payment method. accountName, accountNumber and institution are required for every channel except UPI and INTERAC, which take no institution, and VIRTUAL_BANK_ACCOUNT, which takes none of the three. Account numbers are normalised before they are stored and returned: a mobile money number is rewritten to E.164 with a leading +, and an IBAN is returned in its normalised form.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Afriex Business API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.afriex.com/api-reference/endpoint/payment-methods/create\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://afriex-5d97ad2e.mintlify.app/_mintlify/api/og/v2?division=Payment+Methods\u0026amp;title=Create+Payment+Method\u0026amp;description=Creates+a+new+payment+method.+%60accountName%60%2C+%60accountNumber%60+and+%60institution%60+are+required+for+every+channel+except+UPI+and+INTERAC%2C+which+take+no+%60institution\u0026amp;theme=c5e7ac6707206fe4b7db0208\u0026amp;signature=b4efb4cd7fbf632ab02316ccef39342b2767370d6db2f45170583675e816c30b\">\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 Payment Method - Afriex Business API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Creates a new payment method. accountName, accountNumber and institution are required for every channel except UPI and INTERAC, which take no institution, and VIRTUAL_BANK_ACCOUNT, which takes none of the three. Account numbers are normalised before they are stored and returned: a mobile money number is rewritten to E.164 with a leading +, and an IBAN is returned in its normalised form.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://afriex-5d97ad2e.mintlify.app/_mintlify/api/og/v2?division=Payment+Methods\u0026amp;title=Create+Payment+Method\u0026amp;description=Creates+a+new+payment+method.+%60accountName%60%2C+%60accountNumber%60+and+%60institution%60+are+required+for+every+channel+except+UPI+and+INTERAC%2C+which+take+no+%60institution\u0026amp;theme=c5e7ac6707206fe4b7db0208\u0026amp;signature=b4efb4cd7fbf632ab02316ccef39342b2767370d6db2f45170583675e816c30b\">\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/afriex-5d97ad2e/ZexKAY-mYWAtBk6G/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Afriex Business API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0075FF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.afriex.com/api-reference/endpoint/payment-methods/create\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/endpoint/payment-methods/create.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.afriex.com/#organization\",\"name\":\"Afriex Business API\",\"url\":\"https://docs.afriex.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/afriex-5d97ad2e/-0c2OtRvdHYWM-P9/logo/light.svg?fit=max\u0026auto=format\u0026n=-0c2OtRvdHYWM-P9\u0026q=85\u0026s=de5afeca786c40704f98e96da7d2b1b9\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.afriex.com#website\",\"name\":\"Afriex Business API\",\"url\":\"https://docs.afriex.com\",\"publisher\":{\"@id\":\"https://docs.afriex.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.afriex.com/api-reference/endpoint/payment-methods/create#webpage\",\"url\":\"https://docs.afriex.com/api-reference/endpoint/payment-methods/create\",\"name\":\"Create Payment Method\",\"description\":\"Creates a new payment method. accountName, accountNumber and institution are required for every channel except UPI and INTERAC, which take no institution, and VIRTUAL_BANK_ACCOUNT, which takes none of the three. Account numbers are normalised before they are stored and returned: a mobile money number is rewritten to E.164 with a leading +, and an IBAN is returned in its normalised form.\",\"dateModified\":\"2026-10-31T06:10:02.070Z\",\"isPartOf\":{\"@id\":\"https://docs.afriex.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.afriex.com/api-reference/endpoint/payment-methods/create#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.afriex.com/api-reference/endpoint/payment-methods/create#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Afriex Business API\",\"item\":\"https://docs.afriex.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create Payment Method\",\"item\":\"https://docs.afriex.com/api-reference/endpoint/payment-methods/create\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.afriex.com/api-reference/endpoint/payment-methods/create#apireference\",\"headline\":\"Create Payment Method\",\"name\":\"Create Payment Method\",\"description\":\"Creates a new payment method. accountName, accountNumber and institution are required for every channel except UPI and INTERAC, which take no institution, and VIRTUAL_BANK_ACCOUNT, which takes none of the three. Account numbers are normalised before they are stored and returned: a mobile money number is rewritten to E.164 with a leading +, and an IBAN is returned in its normalised form.\",\"url\":\"https://docs.afriex.com/api-reference/endpoint/payment-methods/create\",\"mainEntityOfPage\":{\"@id\":\"https://docs.afriex.com/api-reference/endpoint/payment-methods/create#webpage\"},\"dateModified\":\"2026-10-31T06:10:02.070Z\",\"publisher\":{\"@id\":\"https://docs.afriex.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.afriex.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Afriex Business API\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Afriex Business API","nav":{"global":{"anchors":[{"anchor":"Status","icon":"wave-pulse","href":"https://afriex.statuspage.io"},{"anchor":"Support","icon":"envelope","href":"mailto:support@afriex.com"}]},"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":""}]},{"tab":"SDK","pages":[{"title":"SDK","href":"/sdk/introduction"}]},{"tab":"MCP","pages":[{"title":"MCP","href":"/mcp/introduction"}]},{"tab":"API reference","groups":[{"group":"Overview","pages":[{"title":"Introduction","href":"/api-reference/introduction"},{"title":"Authentication","href":"/api-reference/authentication"},{"title":"Permissions","href":"/api-reference/permissions"},{"title":"IP allowlisting","href":"/api-reference/ip-allowlisting"}]},{"group":"Requests and responses","pages":[{"title":"Idempotency","href":"/api-reference/idempotency"},{"title":"Errors","href":"/api-reference/errors"},{"title":"Pagination","href":"/api-reference/pagination"},{"title":"Rate limits","href":"/api-reference/rate-limits"},{"title":"Models","href":"/api-reference/models"}]},{"group":"Balance","pages":[{"title":"Get Balance","openapi":"GET /api/v1/org/balance","href":"/api-reference/endpoint/balance/get"}]},{"group":"Checkout Sessions","pages":[{"title":"Checkout Flow Guide","href":"/api-reference/endpoint/checkout-sessions/user-flow-guide"},{"title":"Create Checkout Session","openapi":"POST /api/v1/checkout-session","href":"/api-reference/endpoint/checkout-sessions/create"}]},{"group":"Rates","pages":[{"title":"Get Exchange Rates","openapi":"GET /api/v1/org/rates","href":"/api-reference/endpoint/rates/get"}]},{"group":"Customers","pages":[{"title":"Create Customer","openapi":"POST /api/v1/customer","href":"/api-reference/endpoint/customers/create"},{"title":"List Customers","openapi":"GET /api/v1/customer","href":"/api-reference/endpoint/customers/list"},{"title":"Get Customer","openapi":"GET /api/v1/customer/{customerId}","href":"/api-reference/endpoint/customers/get"},{"title":"Update Customer","openapi":"PATCH /api/v1/customer/{customerId}","href":"/api-reference/endpoint/customers/update"},{"title":"Delete Customer","openapi":"DELETE /api/v1/customer/{customerId}","href":"/api-reference/endpoint/customers/delete"},{"title":"Update Customer KYC","openapi":"PATCH /api/v1/customer/{customerId}/kyc","href":"/api-reference/endpoint/customers/update-kyc"},{"title":"Verify Customer","openapi":"POST /api/v1/customer/{customerId}/verify","description":"Runs an identity verification against a customer document. Today the only supported `docType` is `BVN` (Nigeria); `docValue` is the document number. Verification is rate limited per business. The `200` response carries the customer's stored KYC documents in `meta.kyc.data`.","href":"/api-reference/endpoint/customers/verify"}]},{"group":"Payment Methods","pages":[{"title":"Create Payment Method","openapi":"POST /api/v1/payment-method","href":"/api-reference/endpoint/payment-methods/create"},{"title":"List Payment Methods","openapi":"GET /api/v1/payment-method","description":"Retrieves a paginated list of payment methods.","href":"/api-reference/endpoint/payment-methods/list"},{"title":"Get Payment Method","openapi":"GET /api/v1/payment-method/{paymentMethodId}","href":"/api-reference/endpoint/payment-methods/get"},{"title":"Delete Payment Method","openapi":"DELETE /api/v1/payment-method/{paymentMethodId}","href":"/api-reference/endpoint/payment-methods/delete"},{"title":"List Institutions","openapi":"GET /api/v1/payment-method/institution","href":"/api-reference/endpoint/payment-methods/institution"},{"title":"Institution Codes","openapi":"GET /api/v1/payment-method/institution/codes","href":"/api-reference/endpoint/payment-methods/institution-codes"},{"title":"Resolve Payment Method","openapi":"GET /api/v1/payment-method/resolve","href":"/api-reference/endpoint/payment-methods/resolve"},{"title":"Get or Create Crypto Wallet","openapi":"GET /api/v1/payment-method/crypto-wallet","href":"/api-reference/endpoint/payment-methods/crypto-wallet"},{"title":"List Virtual Accounts","openapi":"GET /api/v1/payment-method/virtual-account","href":"/api-reference/endpoint/payment-methods/virtual-account"},{"title":"Create Virtual Account","openapi":"POST /api/v1/payment-method/virtual-account","href":"/api-reference/endpoint/payment-methods/virtual-account-create"},{"title":"Get Pool Account","openapi":"GET /api/v1/payment-method/pool-account","href":"/api-reference/endpoint/payment-methods/pool-account"}]},{"group":"Media","pages":[{"title":"Generate Upload URL","openapi":"POST /api/v1/media/url","href":"/api-reference/endpoint/media/generate-upload-url"}]},{"group":"Transactions","pages":[{"title":"Create Transaction","openapi":"POST /api/v1/transaction","href":"/api-reference/endpoint/transactions/create"},{"title":"List Transactions","openapi":"GET /api/v1/transaction","href":"/api-reference/endpoint/transactions/list"},{"title":"Quote a Withdrawal","openapi":"GET /api/v1/transaction/quote","href":"/api-reference/endpoint/transactions/quote"},{"title":"Get Transaction","openapi":"GET /api/v1/transaction/{transactionId}","href":"/api-reference/endpoint/transactions/get"},{"title":"Authorize Transaction","openapi":"POST /api/v1/transaction/{transactionId}/authorize","href":"/api-reference/endpoint/transactions/authorize"},{"title":"Get Settlement Advice","openapi":"GET /api/v1/transaction/{transactionId}/advice","href":"/api-reference/endpoint/transactions/advice"},{"title":"Submit Pool-Account Payment Proof","openapi":"POST /api/v1/transaction/pool-account","href":"/api-reference/endpoint/transactions/pool-account-proof"}]},{"group":"Payment Batches","pages":[{"title":"List Payment Batches","openapi":"GET /api/v1/payment-batch","href":"/api-reference/endpoint/payment-batches/list"},{"title":"Create Payment Batch","openapi":"POST /api/v1/payment-batch","href":"/api-reference/endpoint/payment-batches/create"},{"title":"Get Payment Batch","openapi":"GET /api/v1/payment-batch/{batchId}","href":"/api-reference/endpoint/payment-batches/get"},{"title":"Update Payment Batch","openapi":"PATCH /api/v1/payment-batch/{batchId}","href":"/api-reference/endpoint/payment-batches/update"},{"title":"Delete Payment Batch","openapi":"DELETE /api/v1/payment-batch/{batchId}","href":"/api-reference/endpoint/payment-batches/delete"},{"title":"List Batch Recipients","openapi":"GET /api/v1/payment-batch/{batchId}/recipients","href":"/api-reference/endpoint/payment-batches/list-recipients"},{"title":"Add Recipient to Batch","openapi":"POST /api/v1/payment-batch/{batchId}/recipients","href":"/api-reference/endpoint/payment-batches/add-recipient"},{"title":"Bulk Add Recipients to Batch","openapi":"POST /api/v1/payment-batch/{batchId}/recipients/bulk","href":"/api-reference/endpoint/payment-batches/add-recipients-bulk"},{"title":"Update Recipient in Batch","openapi":"PATCH /api/v1/payment-batch/{batchId}/recipients/{recipientId}","href":"/api-reference/endpoint/payment-batches/update-recipient"},{"title":"Remove Recipient from Batch","openapi":"DELETE /api/v1/payment-batch/{batchId}/recipients/{recipientId}","href":"/api-reference/endpoint/payment-batches/remove-recipient"},{"title":"Withdraw Batch","openapi":"POST /api/v1/payment-batch/{batchId}/withdraw","href":"/api-reference/endpoint/payment-batches/withdraw"},{"title":"List Batch Sessions","openapi":"GET /api/v1/payment-batch/{batchId}/sessions","href":"/api-reference/endpoint/payment-batches/list-sessions"}]},{"group":"SME Registration","pages":[{"title":"Register SME","openapi":"POST /api/v1/sme-registration","href":"/api-reference/endpoint/sme-registration/register"},{"title":"Get SME Registration Status","openapi":"GET /api/v1/sme-registration/status","href":"/api-reference/endpoint/sme-registration/status"}]},{"group":"Sandbox helpers","pages":[{"title":"Simulate Transaction Outcome","openapi":"POST /api/v1/transaction/{transactionId}/simulate","href":"/api-reference/endpoint/transactions/simulate"},{"title":"Top Up Sandbox Balance","openapi":"POST /api/v1/org/balance/topup","href":"/api-reference/endpoint/balance/topup"},{"title":"Simulate Virtual Account Transfer","openapi":"POST /api/v1/payment-method/virtual-account/simulate-transfer","href":"/api-reference/endpoint/payment-methods/virtual-account-simulate-transfer"},{"title":"Trigger Test Webhook","openapi":"POST /api/v1/webhooks/trigger","href":"/api-reference/endpoint/webhooks/trigger"}]},{"group":"Webhooks","pages":[{"title":"Introduction","href":"/api-reference/endpoint/webhooks/introduction"},{"title":"Customer Events","openapi":"webhook customer.events","href":"/api-reference/endpoint/webhooks/customer-events"},{"title":"Payment Method Events","openapi":"webhook payment_method.events","href":"/api-reference/endpoint/webhooks/payment-method-events"},{"title":"Transaction Events","openapi":"webhook transaction.events","href":"/api-reference/endpoint/webhooks/transaction-events"},{"title":"Checkout Session Events","openapi":"webhook checkout_session.events","href":"/api-reference/endpoint/webhooks/checkout-session-events"},{"title":"Pool Deposit Events","openapi":"webhook pool_deposit_request.events","href":"/api-reference/endpoint/webhooks/pool-deposit-events"}]}]}]},"basePath":"","title":"Create Payment Method - Afriex Business API","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CS552b7R.js","utils-DDTCYAF2.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-De8ttokP.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-DrwRDvAh.js","snippetPresets-DtAN0nWx.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-D5rWArI6.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-O2i12wsz.js","shallow-DV8xABTt.js","getApiPlaygroundDisplay-DBZ0B5Jx.js","CodeSnippet-BVi0tPUX.js","CodeSnippets-CqASbIwY.js","Page-m07pfKpT.js","getPastedJson-DG9vsMS8.js","icon-CXzRSCr8.js","MethodPill-BdKVtEuX.js","DuplicateIcon-CZlmBrJI.js","createIcon-biFEUKPL.js","DynamicMarkdown-B54_zNBF.js","SectionHeading-DwwHK3Pt.js","axios-vUo_bRtp.js","Markdown-DfhCTwyA.js","clsx-xpJZXxdP.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BTZUMDnx.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-DqdKa2R4.js"]}