{
"status": 400,
"code": "wrong_provider",
"message": "Provider 'unknown_provider' does not exist for country 'CI' and method 'mobile_money'.",
"request_id": "<string>"
}
{
"status": 401,
"error": {
"type": "authorization_error",
"code": "wrong_credentials",
"message": "L'ID marchand et/ou la clé d'API sont incorrects."
}
}
{
"status": 409,
"code": "duplicate_reference",
"message": "This refusal does not mean that a payout failed. A payout with this reference already exists. When original_transaction_id is present, fetch that payout to know its status. Do not reuse a reference for a different payout.",
"request_id": "<string>",
"rejection_id": "ndr_V1StGXR8_Z5jdHi6B-myT",
"expires_at": "2026-10-19T14:20:00.000Z",
"original_transaction_id": "trf_V1StGXR8_Z5jdHi6B",
"matching_transfers": [
{
"id": "trf_V1StGXR8_Z5jdHi6B",
"reference": "payout-2026-10-19-0042",
"status": "pending",
"created_at": "2026-10-19T14:05:00.000Z",
"operator": "orange",
"amount": 50000,
"currency": "XOF"
}
],
"end_user_message": {
"en": "A transfer of 50,000 XOF to this number was already made at 10:00 UTC and is in progress.",
"fr": "Un transfert de 50 000 XOF vers ce numéro a déjà été effectué à 10:00 UTC et est en cours."
}
}
{
"status": 422,
"code": "invalid_duplicate_confirmation",
"message": "This rejectionId cannot confirm this payout; reason says why. Resend the payout without rejectionId: it is created if it is no longer a possible duplicate, or refused with a new rejection_id.",
"request_id": "<string>",
"reason": "expired"
}
{
"status": 429,
"error": "ThrottlerException: Too Many Requests"
}
{
"status": 503,
"code": "merchant_group_unavailable",
"message": "Your merchant group could not be verified. Please retry in a few moments.",
"request_id": "<string>"
}
Processing Only
Create a delegated Transfer
This endpoint allows you to make a transfer (PAY-OUT) using your own provider credentials.
{
"status": 400,
"code": "wrong_provider",
"message": "Provider 'unknown_provider' does not exist for country 'CI' and method 'mobile_money'.",
"request_id": "<string>"
}
{
"status": 401,
"error": {
"type": "authorization_error",
"code": "wrong_credentials",
"message": "L'ID marchand et/ou la clé d'API sont incorrects."
}
}
{
"status": 409,
"code": "duplicate_reference",
"message": "This refusal does not mean that a payout failed. A payout with this reference already exists. When original_transaction_id is present, fetch that payout to know its status. Do not reuse a reference for a different payout.",
"request_id": "<string>",
"rejection_id": "ndr_V1StGXR8_Z5jdHi6B-myT",
"expires_at": "2026-10-19T14:20:00.000Z",
"original_transaction_id": "trf_V1StGXR8_Z5jdHi6B",
"matching_transfers": [
{
"id": "trf_V1StGXR8_Z5jdHi6B",
"reference": "payout-2026-10-19-0042",
"status": "pending",
"created_at": "2026-10-19T14:05:00.000Z",
"operator": "orange",
"amount": 50000,
"currency": "XOF"
}
],
"end_user_message": {
"en": "A transfer of 50,000 XOF to this number was already made at 10:00 UTC and is in progress.",
"fr": "Un transfert de 50 000 XOF vers ce numéro a déjà été effectué à 10:00 UTC et est en cours."
}
}
{
"status": 422,
"code": "invalid_duplicate_confirmation",
"message": "This rejectionId cannot confirm this payout; reason says why. Resend the payout without rejectionId: it is created if it is no longer a possible duplicate, or refused with a new rejection_id.",
"request_id": "<string>",
"reason": "expired"
}
{
"status": 429,
"error": "ThrottlerException: Too Many Requests"
}
{
"status": 503,
"code": "merchant_group_unavailable",
"message": "Your merchant group could not be verified. Please retry in a few moments.",
"request_id": "<string>"
}
Amount intended to be sent to the recipient. A positive integer representing how much to charge in the smallest currency unit (e.g., 100 cents to charge €1.00 or 100 to charge FCFA100, a zero-decimal currency).
Confirms a payout refused with 409 possible_duplicate: the rejection_id of that response. Resend the refused payout unchanged, to the same endpoint and with the same reference (the externalId, for a cross-border transaction), before the response's expires_at. A rejection confirms one payout only: resending the confirmed payout again gets the idempotent replay, while an unknown or expired rejection, one replaced by a later refusal of its confirmation, one already used by another payout, or one that refused a different payout is answered 422 invalid_duplicate_confirmation. Ignored unless duplicate protection and near-duplicate protection are both enforced for your account.
This field is mandatory for aggregators and allows you to override the business name displayed to the end users.
This is useful if you don't want your clients to see "Hub2" as the target of their payment but your company name instead.
Idempotent replay. Duplicate protection is enforced for your account, and a payout with this reference and the same payout details already exists: it is returned as it is now, and nothing is created or charged. Only ever sent with the X-Idempotent-Replay: true header and the body field idempotentReplay: true, which is absent from a normal creation. The payout details compared are the destination type, country, beneficiary, operator, requested amount and currency; on IRT and cross-border routes, also the sender identity and, on cross-border, the rateId, unless the reference was recorded by an earlier version of this check, which compared neither; other names (recipient, bank, display name), descriptions and metadata are ignored.
Amount intended to be sent to the recipient. A positive integer representing how much to charge in the smallest currency unit (e.g., 100 cents to charge €1.00 or 100 to charge FCFA100, a zero-decimal currency).
Mode in which this transfer exists.
The sandbox mode can be used during the integration phase and is available as soon as the merchant account is created. No real transactions are made in this mode.
The live mode has to be used to make real transactions.
Present, and true, only when the response replays an existing payout (idempotent replay, HTTP 200 with the X-Idempotent-Replay: true header). Absent when the transfer has just been created.
Real available balance right after the transfer is executed.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"HUB2 Documentation","colors":{"primary":"#0D9373","light":"#07C983","dark":"#0D9373"},"logo":{"light":"https://mintcdn.com/hub2-83/aPkTvmVeXN9HXpuW/assets/logo/hub2.png?fit=max\u0026auto=format\u0026n=aPkTvmVeXN9HXpuW\u0026q=85\u0026s=18f9f70abbe4d6234bad47152927237a","dark":"https://mintcdn.com/hub2-83/aPkTvmVeXN9HXpuW/assets/logo/hub2.png?fit=max\u0026auto=format\u0026n=aPkTvmVeXN9HXpuW\u0026q=85\u0026s=18f9f70abbe4d6234bad47152927237a"},"favicon":"https://mintcdn.com/hub2-83/aPkTvmVeXN9HXpuW/assets/favicon.png?fit=max\u0026auto=format\u0026n=aPkTvmVeXN9HXpuW\u0026q=85\u0026s=d71426a9f8f85b6c6ccce6d36247bf39","api":{"openapi":"https://api.hub2.io/docs-json"},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/hub2","website":"https://www.hub2.io"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"hub2-83","hasAudioNarration":false,"actualSubdomain":"hub2-83","customDomains":["docs.hub2.io"],"gitSource":{"type":"github","owner":"technohub2","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae16defdd9644647b4200dd","collectionId":"57fb640c-62d6-4c13-a1f8-78fc452635ea","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae16defdd9644647b4200dd"},"entitlements":{},"buildId":"6ae16defdd9644647b4200dd","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"Référence de l'API","count":86},{"language":"default","tag":"Integration","count":44},{"language":"default","tag":"Intégration","count":44},{"language":"default","tag":"Payments","count":18},{"language":"default","tag":"Webhooks","count":17},{"language":"default","tag":"Documentation","count":16},{"language":"default","tag":"Transfers","count":11},{"language":"default","tag":"Compliance","count":10},{"language":"default","tag":"Payment Links","count":10},{"language":"default","tag":"Processing Only","count":10}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"googleFontsInlined":false},"customCss":[{"filePath":"assets/style.css","content":"table{display:table!important}.table-scroll{overflow:scroll}table tbody tr:nth-child(odd){background:#fafafa}html.dark table tbody tr:nth-child(odd){background:#1a1a1a}"}],"page":{"pagePath":"api-reference/processing-only/make-a-delegated-transfer","slug":"/api-reference/processing-only/make-a-delegated-transfer","pageMetadata":{"openapi":"post /delegated/transfers","title":"Create a delegated Transfer","description":"This endpoint allows you to make a transfer (PAY-OUT) using your own provider credentials.","href":"/api-reference/processing-only/make-a-delegated-transfer"},"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: \"This endpoint allows you to make a transfer (PAY-OUT) using your own provider credentials.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"openapi":"post /delegated/transfers","title":"Create a delegated Transfer","description":"This endpoint allows you to make a transfer (PAY-OUT) using your own provider credentials.","href":"/api-reference/processing-only/make-a-delegated-transfer"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/hub2-83/0ef60d836fa10d10/assets/mermaid.js"],"openApiReferenceData":{"operation":{"description":"This endpoint allows you to make a transfer (PAY-OUT) using your own provider credentials.","operationId":"DelegationController_createDelegatedTransfer","parameters":["717ee4ea-e71c-41e6-9320-f307a9d174e3","163c850d-96b8-4f7a-86a9-e301aa068ebb","bb906d79-38f8-419f-a61a-3e163aafe555"],"requestBody":"9d218828-32a9-4a54-a08a-94094db9dc40","responses":{"200":"b00eca76-0d31-4a29-a821-4f0486a19335","201":"f12ec6ec-1bc3-4e6d-962d-5b7e8895f331","400":"6cc80d10-7bfb-43bc-82c7-c7b741f7a1e2","401":"5d1be162-4d2c-4285-888c-2f2019487f00","403":"bad7195a-80fd-41a5-a7f6-d9b128bfb1d2","404":"fac47d0b-01b7-4e95-97fe-1a542aa1b0f2","409":"178604bc-bdd7-4dcf-bfde-c953e0c12b3f","422":"4efa8d2f-3b6e-48a3-a1ef-73d873e45ebc","429":"86b7a2e7-da92-42d1-97ff-5481bfbe91f8","500":"633de171-e4eb-4dfb-aa5a-687de22c2b3e","503":"121a3acd-7f1b-42a8-bbbd-87cb14fa0e93"},"summary":"Create a delegated Transfer","tags":["Delegation"],"method":"post","type":"path","servers":[],"security":[],"path":"/delegated/transfers","baseUrlOptions":[],"title":"Create a delegated Transfer","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"717ee4ea-e71c-41e6-9320-f307a9d174e3":{"name":"ApiKey","in":"header","description":"Your api key. To create a key, please get into our dashboard. If you don't have access to it, please reach the Support team.","required":true,"schema":{"type":"string","isRequired":true,"description":"Your api key. To create a key, please get into our dashboard. If you don't have access to it, please reach the Support team.","uniqueKey":"","typeLabel":"string"}},"163c850d-96b8-4f7a-86a9-e301aa068ebb":{"name":"MerchantId","in":"header","description":"Your merchant ID. This information is available in our dashboard. If you don't have access to it, please reach the Support team.","required":true,"schema":{"type":"string","isRequired":true,"description":"Your merchant ID. This information is available in our dashboard. If you don't have access to it, please reach the Support team.","uniqueKey":"","typeLabel":"string"}},"bb906d79-38f8-419f-a61a-3e163aafe555":{"name":"Environment","in":"header","description":"Allow you to choose between the sandbox mode to perform some tests or the live mode for real world transactions.","required":true,"schema":{"type":"string","enum":["live","sandbox"],"isRequired":true,"description":"Allow you to choose between the sandbox mode to perform some tests or the live mode for real world transactions.","uniqueKey":"","typeLabel":"enum\u003cstring>"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"reference":{"type":"string","description":"A reference provided by the client during the creation of this Transfer, at most 255 characters","example":"ref_2020_11_10_001","maxLength":255,"isRequired":true,"uniqueKey":"reference","typeLabel":"string"},"amount":{"type":"number","description":"Amount intended to be sent to the recipient. A positive integer representing how much to charge in the smallest currency unit (e.g., 100 cents to charge €1.00 or 100 to charge FCFA100, a zero-decimal currency).","example":100,"isRequired":true,"uniqueKey":"amount","typeLabel":"number"},"currency":{"type":"string","description":"Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html).","example":"XOF","isRequired":true,"uniqueKey":"currency","typeLabel":"string"},"description":{"type":"string","description":"An arbitrary string attached to the Transfer. Mostly useful for displaying to user. ","isRequired":true,"uniqueKey":"description","typeLabel":"string"},"destination":{"oneOf":[{"type":"object","title":"Destination","description":"Information about the recipient of this Transfer","required":["type","country","msisdn","provider"],"properties":{"type":{"type":"string","description":"The method selected to make this Transfer","example":"mobile_money","enum":["mobile_money","bank_transfer","airtime","instant_payment"],"isRequired":true,"uniqueKey":"destination.oneOf.0.type","typeLabel":"enum\u003cstring>"},"country":{"type":"string","description":"Two-letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). Represents the country where the provider selected by the customer is localized. ","example":"CI","isRequired":true,"uniqueKey":"destination.oneOf.0.country","typeLabel":"string"},"msisdn":{"type":"string","description":"The Mobile Money number to which the money must be sent.","isRequired":true,"uniqueKey":"destination.oneOf.0.msisdn","typeLabel":"string"},"provider":{"type":"string","description":"The name of the provider selected by the customer, in lowercase. The list of supported providers can be found at [/data/providers](#operation/DataController_getProviders)","example":"orange","isRequired":true,"uniqueKey":"destination.oneOf.0.provider","typeLabel":"string"},"recipientName":{"type":"string","description":"The name of the recipient of this transfer.","uniqueKey":"destination.oneOf.0.recipientName","typeLabel":"string"}},"isRequired":true,"uniqueKey":"destination.oneOf.0","typeLabel":"Destination · object"},{"type":"object","title":"Destination","description":"Information about the recipient of this Transfer","required":["type","country","accountNumber","accountOwner","bankCode","beneficiaryPhone"],"properties":{"type":{"type":"string","description":"The method selected to make this Transfer","example":"mobile_money","enum":["mobile_money","bank_transfer","airtime","instant_payment"],"isRequired":true,"uniqueKey":"destination.oneOf.1.type","typeLabel":"enum\u003cstring>"},"country":{"type":"string","description":"Two-letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). Represents the country where the provider selected by the customer is localized. ","example":"CI","isRequired":true,"uniqueKey":"destination.oneOf.1.country","typeLabel":"string"},"accountNumber":{"type":"string","description":"The Bank account number to which the money must be sent.","isRequired":true,"uniqueKey":"destination.oneOf.1.accountNumber","typeLabel":"string"},"accountOwner":{"type":"string","description":"The Bank account owner name to which the money must be sent.","isRequired":true,"uniqueKey":"destination.oneOf.1.accountOwner","typeLabel":"string"},"bankCode":{"type":"string","description":"The Bank code. The list of available bank codes can be found at [/data/bank-codes](#Data/PublicDataController_getBanks)","isRequired":true,"uniqueKey":"destination.oneOf.1.bankCode","typeLabel":"string"},"beneficiaryPhone":{"type":"string","description":"The benificiary number","isRequired":true,"uniqueKey":"destination.oneOf.1.beneficiaryPhone","typeLabel":"string"},"recipientName":{"type":"string","description":"The name of the recipient of this transfer.","uniqueKey":"destination.oneOf.1.recipientName","typeLabel":"string"},"bankName":{"type":"string","description":"The Bank name.","uniqueKey":"destination.oneOf.1.bankName","typeLabel":"string"}},"isRequired":true,"uniqueKey":"destination.oneOf.1","typeLabel":"Destination · object"},{"type":"object","title":"Destination","description":"Information about the recipient of this Transfer","required":["type","country","msisdn","provider"],"properties":{"type":{"type":"string","description":"The method selected to make this Transfer","example":"mobile_money","enum":["mobile_money","bank_transfer","airtime","instant_payment"],"isRequired":true,"uniqueKey":"destination.oneOf.2.type","typeLabel":"enum\u003cstring>"},"country":{"type":"string","description":"Two-letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). Represents the country where the provider selected by the customer is localized. ","example":"CI","isRequired":true,"uniqueKey":"destination.oneOf.2.country","typeLabel":"string"},"msisdn":{"type":"string","description":"The Airtime number to which the money must be sent.","isRequired":true,"uniqueKey":"destination.oneOf.2.msisdn","typeLabel":"string"},"provider":{"type":"string","description":"The name of the provider selected by the customer, in lowercase. The list of supported providers can be found at [/data/providers](#operation/DataController_getProviders)","example":"orange","isRequired":true,"uniqueKey":"destination.oneOf.2.provider","typeLabel":"string"},"recipientName":{"type":"string","description":"The name of the recipient of this transfer.","uniqueKey":"destination.oneOf.2.recipientName","typeLabel":"string"}},"isRequired":true,"uniqueKey":"destination.oneOf.2","typeLabel":"Destination · object"},{"type":"object","title":"Destination","description":"Information about the recipient of this Transfer","required":["type","country","payeeAlias"],"properties":{"type":{"type":"string","description":"The method selected to make this Transfer","example":"instant_payment","enum":["mobile_money","bank_transfer","airtime","instant_payment"],"isRequired":true,"uniqueKey":"destination.oneOf.3.type","typeLabel":"enum\u003cstring>"},"country":{"type":"string","description":"Two-letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). Represents the country where the provider selected by the customer is localized. ","example":"CI","isRequired":true,"uniqueKey":"destination.oneOf.3.country","typeLabel":"string"},"payeeAlias":{"type":"string","description":"The alias of the beneficiary to pay — a SHID key, a merchant code, or a mobile number in E.164 form. Its existence is not checked here; the rail answers that. The account debited is your own transfer account, chosen by HUB2 from your registered aliases; there is no payer alias on this request.","example":"+2250700000001","maxLength":64,"isRequired":true,"uniqueKey":"destination.oneOf.3.payeeAlias","typeLabel":"string"},"recipientName":{"type":"string","description":"The name of the recipient of this transfer.","uniqueKey":"destination.oneOf.3.recipientName","typeLabel":"string"}},"isRequired":true,"uniqueKey":"destination.oneOf.3","typeLabel":"Destination · object"}],"isRequired":true,"uniqueKey":"destination","typeLabel":"Destination · object"},"aggregatedMerchantId":{"type":"string","description":"Aggregated merchant id","title":"aggregatedMerchantId","isRequired":true,"uniqueKey":"aggregatedMerchantId","typeLabel":"string"},"rejectionId":{"type":"string","description":"Confirms a payout refused with `409 possible_duplicate`: the `rejection_id` of that response. Resend the refused payout unchanged, to the same endpoint and with the same reference (the `externalId`, for a cross-border transaction), before the response's `expires_at`. A rejection confirms one payout only: resending the confirmed payout again gets the idempotent replay, while an unknown or expired rejection, one replaced by a later refusal of its confirmation, one already used by another payout, or one that refused a different payout is answered `422 invalid_duplicate_confirmation`. Ignored unless duplicate protection and near-duplicate protection are both enforced for your account.","example":"ndr_V1StGXR8_Z5jdHi6B-myT","pattern":"^ndr_[A-Za-z0-9_-]{21}$","uniqueKey":"rejectionId","typeLabel":"string"},"origin":{"type":"object","description":"Information about the sender","properties":{"name":{"type":"string","description":"Sender's name","uniqueKey":"origin.name","typeLabel":"string"},"country":{"type":"string","description":"Sender's country. Two-letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)","uniqueKey":"origin.country","typeLabel":"string"}},"uniqueKey":"origin","typeLabel":"object"},"overrideBusinessName":{"type":"string","description":"This field is mandatory for aggregators and allows you to override the business name displayed to the end users.\n This is useful if you don't want your clients to see \"Hub2\" as the target of their payment but your company name instead.","example":"MyBusiness","uniqueKey":"overrideBusinessName","typeLabel":"string"},"overrideBusinessId":{"type":"string","description":"This field is mandatory for merchants that have the corresponding setting enabled, It allows to send a custom name","example":"e9bb247c-6e3f-4a39-a539-78e3bf115994","uniqueKey":"overrideBusinessId","typeLabel":"string"},"transferInformation":{"type":"object","description":"Optional merchant-defined payment metadata. Persisted and returned on the transfer.","example":{"recipient_name_hashmac":"9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08","transaction_purpose":"SALARY"},"properties":{"recipient_name_hashmac":{"type":"string","description":"HMAC-SHA256 of the full name of the person receiving the funds, computed on the partner side and hex-encoded (64 characters). Case-insensitive on input, returned in lower case.","example":"9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08","pattern":"^[0-9a-fA-F]{64}$","maxLength":64,"uniqueKey":"transferInformation.recipient_name_hashmac","typeLabel":"string"},"customer_id_hashmac":{"type":"string","description":"HMAC-SHA256, hex-encoded (64 characters), of your identifier for the end user receiving the funds: your customer id, or the end-user phone number when you have no customer id. Expected from every merchant on a payout: currently monitored, it will become mandatory on a date announced in advance. Case-insensitive on input, returned in lower case.","example":"9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08","pattern":"^[0-9a-fA-F]{64}$","maxLength":64,"uniqueKey":"transferInformation.customer_id_hashmac","typeLabel":"string"},"transaction_purpose":{"type":"string","description":"Declared purpose of the payout for compliance and monitoring. Expected from every merchant on a payout (map it from the note or comment you already attach to the payout): currently monitored, it will become mandatory on a date announced in advance.","enum":["SALARY","LOAN_DISBURSEMENT","COMMISSION","REFUND","CASHOUT","OTHER"],"example":"SALARY","uniqueKey":"transferInformation.transaction_purpose","typeLabel":"enum\u003cstring>"}},"uniqueKey":"transferInformation","typeLabel":"object"}},"required":["reference","amount","currency","description","destination","aggregatedMerchantId"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"reference":"ref_2020_11_10_001","amount":100,"currency":"XOF","description":"\u003cstring>","destination":{"type":"mobile_money","country":"CI","msisdn":"\u003cstring>","provider":"orange","recipientName":"\u003cstring>"},"aggregatedMerchantId":"\u003cstring>","rejectionId":"ndr_V1StGXR8_Z5jdHi6B-myT","origin":{"name":"\u003cstring>","country":"\u003cstring>"},"overrideBusinessName":"MyBusiness","overrideBusinessId":"e9bb247c-6e3f-4a39-a539-78e3bf115994","transferInformation":{"recipient_name_hashmac":"9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08","transaction_purpose":"SALARY"}}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"b00eca76-0d31-4a29-a821-4f0486a19335":{"description":"Idempotent replay. Duplicate protection is enforced for your account, and a payout with this reference and the same payout details already exists: it is returned as it is now, and nothing is created or charged. Only ever sent with the `X-Idempotent-Replay: true` header and the body field `idempotentReplay: true`, which is absent from a normal creation. The payout details compared are the destination type, country, beneficiary, operator, requested amount and currency; on IRT and cross-border routes, also the sender identity and, on cross-border, the `rateId`, unless the reference was recorded by an earlier version of this check, which compared neither; other names (recipient, bank, display name), descriptions and metadata are ignored.","headers":{"X-Idempotent-Replay":{"description":"Present, with the value `true`, only when the body is an existing payout returned for a retry. The body then carries `idempotentReplay: true` too.","schema":{"type":"string","enum":["true"]}}},"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the Transfer","example":"tr_z1urYtVFgEebtcj8fxp4v","isRequired":true,"uniqueKey":"id","typeLabel":"string"},"merchantId":{"type":"string","description":"Identifier of the merchant owning this Transfer","isRequired":true,"uniqueKey":"merchantId","typeLabel":"string"},"createdAt":{"type":"string","description":"Datetime in UTC timezone at which this object was created.\n Follows the [Datetime ISO](https://en.wikipedia.org/wiki/ISO_8601).","example":"2020-10-15T12:09:49.355Z","isRequired":true,"uniqueKey":"createdAt","typeLabel":"string"},"updatedAt":{"type":"string","description":"Datetime in UTC timezone at which this object was updated for the last time .\n Follows the [Datetime ISO](https://en.wikipedia.org/wiki/ISO_8601).","example":"2020-10-15T12:16:26.128Z","isRequired":true,"uniqueKey":"updatedAt","typeLabel":"string"},"reference":{"type":"string","description":"A reference provided by the client during the creation of this Transfer","example":"ref_2020_11_10_001","isRequired":true,"uniqueKey":"reference","typeLabel":"string"},"description":{"type":"string","description":"An arbitrary string attached to the Transfer. Mostly useful for displaying to user. ","isRequired":true,"uniqueKey":"description","typeLabel":"string"},"status":{"type":"string","description":"The current status of this Transfer","example":"successful","enum":["created","successful","pending","failed"],"isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"amount":{"type":"number","description":"Amount intended to be sent to the recipient. A positive integer representing how much to charge in the smallest currency unit (e.g., 100 cents to charge €1.00 or 100 to charge FCFA100, a zero-decimal currency).","example":100,"isRequired":true,"uniqueKey":"amount","typeLabel":"number"},"currency":{"type":"string","description":"Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html).","example":"XOF","isRequired":true,"uniqueKey":"currency","typeLabel":"string"},"mode":{"type":"string","description":"Mode in which this transfer exists.\n The sandbox mode can be used during the integration phase and is available as soon as the merchant account is created. No real transactions are made in this mode.\n The live mode has to be used to make real transactions.","example":"live","enum":["live","sandbox"],"isRequired":true,"uniqueKey":"mode","typeLabel":"enum\u003cstring>"},"destination":{"oneOf":[{"type":"object","title":"Destination","description":"Information about the recipient of this Transfer","required":["type","country","number","provider"],"properties":{"type":{"type":"string","description":"The method selected to make this Transfer","example":"mobile_money","enum":["mobile_money","bank_transfer","airtime","instant_payment"],"isRequired":true,"uniqueKey":"destination.oneOf.0.type","typeLabel":"enum\u003cstring>"},"country":{"type":"string","description":"Two-letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). Represents the country where the provider selected by the customer is localized. ","example":"CI","isRequired":true,"uniqueKey":"destination.oneOf.0.country","typeLabel":"string"},"number":{"type":"string","description":"The identifier referencing the payment method of the customer.\n - In case of a payment by Mobile Money, it corresponds to the customer phone number corresponding to his Mobile Money account","isRequired":true,"uniqueKey":"destination.oneOf.0.number","typeLabel":"string"},"provider":{"type":"string","description":"The name of the provider selected by the customer, in lowercase. The list of supported providers can be found at [/data/providers](#operation/DataController_getProviders)","example":"orange","isRequired":true,"uniqueKey":"destination.oneOf.0.provider","typeLabel":"string"},"recipientName":{"type":"string","description":"recipient's Name","uniqueKey":"destination.oneOf.0.recipientName","typeLabel":"string"}},"isRequired":true,"uniqueKey":"destination.oneOf.0","typeLabel":"Destination · object"},{"type":"object","title":"Destination","description":"Information about the recipient of this Transfer","required":["type","country","number","accountOwner","bankCode","bankName","beneficiaryPhone"],"properties":{"type":{"type":"string","description":"The method selected to make this Transfer","example":"mobile_money","enum":["mobile_money","bank_transfer","airtime","instant_payment"],"isRequired":true,"uniqueKey":"destination.oneOf.1.type","typeLabel":"enum\u003cstring>"},"country":{"type":"string","description":"Two-letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). Represents the country where the provider selected by the customer is localized. ","example":"CI","isRequired":true,"uniqueKey":"destination.oneOf.1.country","typeLabel":"string"},"number":{"type":"string","description":"The identifier referencing the payment method of the customer.\n - In case of a payment by Bank Transfer, it corresponds to the customer bank account number","isRequired":true,"uniqueKey":"destination.oneOf.1.number","typeLabel":"string"},"accountOwner":{"type":"string","description":"The Bank account owner name to which the money must be sent.","isRequired":true,"uniqueKey":"destination.oneOf.1.accountOwner","typeLabel":"string"},"bankCode":{"type":"string","description":"The Bank code.","isRequired":true,"uniqueKey":"destination.oneOf.1.bankCode","typeLabel":"string"},"bankName":{"type":"string","description":"The Bank name.","isRequired":true,"uniqueKey":"destination.oneOf.1.bankName","typeLabel":"string"},"beneficiaryPhone":{"type":"string","description":"The Beneficiary phone","isRequired":true,"uniqueKey":"destination.oneOf.1.beneficiaryPhone","typeLabel":"string"},"recipientName":{"type":"string","description":"recipient's Name","uniqueKey":"destination.oneOf.1.recipientName","typeLabel":"string"}},"isRequired":true,"uniqueKey":"destination.oneOf.1","typeLabel":"Destination · object"},{"type":"object","title":"Destination","description":"Information about the recipient of this Transfer","required":["type","country","number","provider"],"properties":{"type":{"type":"string","description":"The method selected to make this Transfer","example":"mobile_money","enum":["mobile_money","bank_transfer","airtime","instant_payment"],"isRequired":true,"uniqueKey":"destination.oneOf.2.type","typeLabel":"enum\u003cstring>"},"country":{"type":"string","description":"Two-letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). Represents the country where the provider selected by the customer is localized. ","example":"CI","isRequired":true,"uniqueKey":"destination.oneOf.2.country","typeLabel":"string"},"number":{"type":"string","description":"The identifier referencing the payment method of the customer.\n - In case of a payment by Airtime, it corresponds to the customer phone number corresponding to his Airtime account","isRequired":true,"uniqueKey":"destination.oneOf.2.number","typeLabel":"string"},"provider":{"type":"string","description":"The name of the provider selected by the customer, in lowercase. The list of supported providers can be found at [/data/providers](#operation/DataController_getProviders)","example":"orange","isRequired":true,"uniqueKey":"destination.oneOf.2.provider","typeLabel":"string"},"recipientName":{"type":"string","description":"recipient's Name","uniqueKey":"destination.oneOf.2.recipientName","typeLabel":"string"}},"isRequired":true,"uniqueKey":"destination.oneOf.2","typeLabel":"Destination · object"},{"type":"object","title":"Destination","description":"Information about the recipient of this Transfer","required":["type","country","provider"],"properties":{"type":{"type":"string","description":"The method selected to make this Transfer","example":"instant_payment","enum":["mobile_money","bank_transfer","airtime","instant_payment"],"isRequired":true,"uniqueKey":"destination.oneOf.3.type","typeLabel":"enum\u003cstring>"},"country":{"type":"string","description":"Two-letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). Represents the country where the provider selected by the customer is localized. ","example":"CI","isRequired":true,"uniqueKey":"destination.oneOf.3.country","typeLabel":"string"},"provider":{"type":"string","description":"The provider serving this destination. Always `pispi` for instant payment.","example":"pispi","isRequired":true,"uniqueKey":"destination.oneOf.3.provider","typeLabel":"string"},"recipientName":{"type":"string","description":"recipient's Name","uniqueKey":"destination.oneOf.3.recipientName","typeLabel":"string"},"payerAlias":{"type":"string","description":"The alias of the account debited — the merchant's own transfer account. On `POST /transfers` it is chosen by HUB2 from the merchant's registered aliases rather than taken from the request.","example":"7c9e6679-7425-40de-944b-e07fc1f90ae7","uniqueKey":"destination.oneOf.3.payerAlias","typeLabel":"string"},"payeeAlias":{"type":"string","description":"The alias of the beneficiary paid, as supplied on the request.","example":"+2250700000009","uniqueKey":"destination.oneOf.3.payeeAlias","typeLabel":"string"}},"isRequired":true,"uniqueKey":"destination.oneOf.3","typeLabel":"Destination · object"}],"isRequired":true,"uniqueKey":"destination","typeLabel":"Destination · object"},"fees":{"description":"Fees applied to merchant's transfer-account uppon success","title":"TransferFee","type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the applied Fee object.","example":"lAe5HnFpvOjwdT9vSIgPA","isRequired":true,"uniqueKey":"fees.items.[INDEX].id","typeLabel":"string"},"rate":{"type":"number","description":"A rate corresponding to the amount (flat or percentage) applied by the fees.","isRequired":true,"uniqueKey":"fees.items.[INDEX].rate","typeLabel":"number"},"type":{"type":"string","description":"The type of fee applied to the transfer's amount\n \n - flat: A fixed amount applied as is to the amount.\n \n - percent: A rate applied to the amount as a percentage of the latter.","enum":["flat","percent"],"isRequired":true,"uniqueKey":"fees.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"amount":{"type":"number","description":"Amount applied by this Fees. A positive integer representing how much to charge in the smallest currency unit (e.g., 100 cents to charge €1.00 or 100 to charge FCFA100, a zero-decimal currency).","example":5,"isRequired":true,"uniqueKey":"fees.items.[INDEX].amount","typeLabel":"number"},"currency":{"type":"string","description":"Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html).","example":"XOF","isRequired":true,"uniqueKey":"fees.items.[INDEX].currency","typeLabel":"string"},"taxes":{"description":"An array containing every taxes applied to a fee","type":"array","items":{"type":"string","uniqueKey":"fees.items.[INDEX].taxes.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"fees.items.[INDEX].taxes","typeLabel":"string[]"},"label":{"type":"string","description":"An optional label giving information on the reason of this fees.","uniqueKey":"fees.items.[INDEX].label","typeLabel":"string"}},"required":["id","rate","type","amount","currency","taxes"],"uniqueKey":"fees.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"fees","typeLabel":"TransferFee · object[]"},"isIrt":{"type":"boolean","description":"indicate if the transfer was international","title":"isIrt","isRequired":true,"uniqueKey":"isIrt","typeLabel":"boolean"},"providerReference":{"type":"string","description":"provider reference that identify this transfer","title":"providerReference","isRequired":true,"uniqueKey":"providerReference","typeLabel":"string"},"isDelegated":{"type":"boolean","description":"Indicates if the transfer is delegated","title":"isDelegated","isRequired":true,"uniqueKey":"isDelegated","typeLabel":"boolean"},"aggregatedMerchantId":{"type":"string","description":"Aggregated merchant id","title":"aggregatedMerchantId","isRequired":true,"uniqueKey":"aggregatedMerchantId","typeLabel":"string"},"failureCause":{"type":"object","title":"TransferFailureCause","description":"In case of failure, this object will describe the reason of the failure","required":["code","message","params"],"properties":{"code":{"type":"string","isRequired":true,"uniqueKey":"failureCause.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"failureCause.message","typeLabel":"string"},"params":{"type":"array","items":{"type":"string","uniqueKey":"failureCause.params.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"failureCause.params","typeLabel":"string[]"}},"uniqueKey":"failureCause","typeLabel":"TransferFailureCause · object"},"origin":{"type":"object","title":"Origin","description":"Information about the origin of this transfer","properties":{"name":{"type":"string","description":"Sender's name","uniqueKey":"origin.name","typeLabel":"string"},"country":{"type":"string","description":"Sender's country. Two-letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)","uniqueKey":"origin.country","typeLabel":"string"}},"uniqueKey":"origin","typeLabel":"Origin · object"},"overrideBusinessName":{"type":"string","description":"override business name for aggregator","title":"overrideBusinessName","uniqueKey":"overrideBusinessName","typeLabel":"string"},"overrideBusinessId":{"type":"string","description":"override business id for merchant","title":"overrideBusinessId","uniqueKey":"overrideBusinessId","typeLabel":"string"},"subMerchantId":{"type":"string","description":"Submerchant ID","example":"submerchant_123","uniqueKey":"subMerchantId","typeLabel":"string"},"transferInformation":{"type":"object","description":"Merchant-defined payment metadata from transfer creation.","example":{"recipient_name_hashmac":"9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08","transaction_purpose":"SALARY"},"properties":{"recipient_name_hashmac":{"type":"string","description":"HMAC-SHA256 of the full name of the person receiving the funds, computed on the partner side and hex-encoded (64 characters). Case-insensitive on input, returned in lower case.","example":"9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08","pattern":"^[0-9a-fA-F]{64}$","maxLength":64,"uniqueKey":"transferInformation.recipient_name_hashmac","typeLabel":"string"},"customer_id_hashmac":{"type":"string","description":"HMAC-SHA256, hex-encoded (64 characters), of your identifier for the end user receiving the funds: your customer id, or the end-user phone number when you have no customer id. Expected from every merchant on a payout: currently monitored, it will become mandatory on a date announced in advance. Case-insensitive on input, returned in lower case.","example":"9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08","pattern":"^[0-9a-fA-F]{64}$","maxLength":64,"uniqueKey":"transferInformation.customer_id_hashmac","typeLabel":"string"},"transaction_purpose":{"type":"string","description":"Declared purpose of the payout for compliance and monitoring. Expected from every merchant on a payout (map it from the note or comment you already attach to the payout): currently monitored, it will become mandatory on a date announced in advance.","enum":["SALARY","LOAN_DISBURSEMENT","COMMISSION","REFUND","CASHOUT","OTHER"],"example":"SALARY","uniqueKey":"transferInformation.transaction_purpose","typeLabel":"enum\u003cstring>"}},"uniqueKey":"transferInformation","typeLabel":"object"},"idempotentReplay":{"type":"boolean","description":"Present, and `true`, only when the response replays an existing payout (idempotent replay, HTTP 200 with the `X-Idempotent-Replay: true` header). Absent when the transfer has just been created.","enum":[true],"example":true,"uniqueKey":"idempotentReplay","typeLabel":"enum\u003cboolean>"},"balanceBefore":{"type":"number","description":"Computed balance before the transfer is executed.","uniqueKey":"balanceBefore","typeLabel":"number"},"balanceAfter":{"type":"number","description":"Real available balance right after the transfer is executed.","uniqueKey":"balanceAfter","typeLabel":"number"}},"required":["id","merchantId","createdAt","updatedAt","reference","description","status","amount","currency","mode","destination","fees","isIrt","providerReference","isDelegated","aggregatedMerchantId"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"id":"tr_z1urYtVFgEebtcj8fxp4v","merchantId":"\u003cstring>","createdAt":"2020-10-15T12:09:49.355Z","updatedAt":"2020-10-15T12:16:26.128Z","reference":"ref_2020_11_10_001","description":"\u003cstring>","status":"successful","amount":100,"currency":"XOF","mode":"live","destination":{"type":"mobile_money","country":"CI","number":"\u003cstring>","provider":"orange","recipientName":"\u003cstring>"},"fees":[{"id":"lAe5HnFpvOjwdT9vSIgPA","rate":123,"type":"flat","amount":5,"currency":"XOF","taxes":["\u003cstring>"],"label":"\u003cstring>"}],"isIrt":true,"providerReference":"\u003cstring>","isDelegated":true,"aggregatedMerchantId":"\u003cstring>","failureCause":{"code":"\u003cstring>","message":"\u003cstring>","params":["\u003cstring>"]},"origin":{"name":"\u003cstring>","country":"\u003cstring>"},"overrideBusinessName":"\u003cstring>","overrideBusinessId":"\u003cstring>","subMerchantId":"submerchant_123","transferInformation":{"recipient_name_hashmac":"9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08","transaction_purpose":"SALARY"},"idempotentReplay":true,"balanceBefore":123,"balanceAfter":123}}},"exampleType":"generated"}},"exampleType":"generated"},"f12ec6ec-1bc3-4e6d-962d-5b7e8895f331":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the Transfer","example":"tr_z1urYtVFgEebtcj8fxp4v","isRequired":true,"uniqueKey":"id","typeLabel":"string"},"merchantId":{"type":"string","description":"Identifier of the merchant owning this Transfer","isRequired":true,"uniqueKey":"merchantId","typeLabel":"string"},"createdAt":{"type":"string","description":"Datetime in UTC timezone at which this object was created.\n Follows the [Datetime ISO](https://en.wikipedia.org/wiki/ISO_8601).","example":"2020-10-15T12:09:49.355Z","isRequired":true,"uniqueKey":"createdAt","typeLabel":"string"},"updatedAt":{"type":"string","description":"Datetime in UTC timezone at which this object was updated for the last time .\n Follows the [Datetime ISO](https://en.wikipedia.org/wiki/ISO_8601).","example":"2020-10-15T12:16:26.128Z","isRequired":true,"uniqueKey":"updatedAt","typeLabel":"string"},"reference":{"type":"string","description":"A reference provided by the client during the creation of this Transfer","example":"ref_2020_11_10_001","isRequired":true,"uniqueKey":"reference","typeLabel":"string"},"description":{"type":"string","description":"An arbitrary string attached to the Transfer. Mostly useful for displaying to user. ","isRequired":true,"uniqueKey":"description","typeLabel":"string"},"status":{"type":"string","description":"The current status of this Transfer","example":"successful","enum":["created","successful","pending","failed"],"isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"amount":{"type":"number","description":"Amount intended to be sent to the recipient. A positive integer representing how much to charge in the smallest currency unit (e.g., 100 cents to charge €1.00 or 100 to charge FCFA100, a zero-decimal currency).","example":100,"isRequired":true,"uniqueKey":"amount","typeLabel":"number"},"currency":{"type":"string","description":"Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html).","example":"XOF","isRequired":true,"uniqueKey":"currency","typeLabel":"string"},"mode":{"type":"string","description":"Mode in which this transfer exists.\n The sandbox mode can be used during the integration phase and is available as soon as the merchant account is created. No real transactions are made in this mode.\n The live mode has to be used to make real transactions.","example":"live","enum":["live","sandbox"],"isRequired":true,"uniqueKey":"mode","typeLabel":"enum\u003cstring>"},"destination":{"oneOf":[{"type":"object","title":"Destination","description":"Information about the recipient of this Transfer","required":["type","country","number","provider"],"properties":{"type":{"type":"string","description":"The method selected to make this Transfer","example":"mobile_money","enum":["mobile_money","bank_transfer","airtime","instant_payment"],"isRequired":true,"uniqueKey":"destination.oneOf.0.type","typeLabel":"enum\u003cstring>"},"country":{"type":"string","description":"Two-letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). Represents the country where the provider selected by the customer is localized. ","example":"CI","isRequired":true,"uniqueKey":"destination.oneOf.0.country","typeLabel":"string"},"number":{"type":"string","description":"The identifier referencing the payment method of the customer.\n - In case of a payment by Mobile Money, it corresponds to the customer phone number corresponding to his Mobile Money account","isRequired":true,"uniqueKey":"destination.oneOf.0.number","typeLabel":"string"},"provider":{"type":"string","description":"The name of the provider selected by the customer, in lowercase. The list of supported providers can be found at [/data/providers](#operation/DataController_getProviders)","example":"orange","isRequired":true,"uniqueKey":"destination.oneOf.0.provider","typeLabel":"string"},"recipientName":{"type":"string","description":"recipient's Name","uniqueKey":"destination.oneOf.0.recipientName","typeLabel":"string"}},"isRequired":true,"uniqueKey":"destination.oneOf.0","typeLabel":"Destination · object"},{"type":"object","title":"Destination","description":"Information about the recipient of this Transfer","required":["type","country","number","accountOwner","bankCode","bankName","beneficiaryPhone"],"properties":{"type":{"type":"string","description":"The method selected to make this Transfer","example":"mobile_money","enum":["mobile_money","bank_transfer","airtime","instant_payment"],"isRequired":true,"uniqueKey":"destination.oneOf.1.type","typeLabel":"enum\u003cstring>"},"country":{"type":"string","description":"Two-letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). Represents the country where the provider selected by the customer is localized. ","example":"CI","isRequired":true,"uniqueKey":"destination.oneOf.1.country","typeLabel":"string"},"number":{"type":"string","description":"The identifier referencing the payment method of the customer.\n - In case of a payment by Bank Transfer, it corresponds to the customer bank account number","isRequired":true,"uniqueKey":"destination.oneOf.1.number","typeLabel":"string"},"accountOwner":{"type":"string","description":"The Bank account owner name to which the money must be sent.","isRequired":true,"uniqueKey":"destination.oneOf.1.accountOwner","typeLabel":"string"},"bankCode":{"type":"string","description":"The Bank code.","isRequired":true,"uniqueKey":"destination.oneOf.1.bankCode","typeLabel":"string"},"bankName":{"type":"string","description":"The Bank name.","isRequired":true,"uniqueKey":"destination.oneOf.1.bankName","typeLabel":"string"},"beneficiaryPhone":{"type":"string","description":"The Beneficiary phone","isRequired":true,"uniqueKey":"destination.oneOf.1.beneficiaryPhone","typeLabel":"string"},"recipientName":{"type":"string","description":"recipient's Name","uniqueKey":"destination.oneOf.1.recipientName","typeLabel":"string"}},"isRequired":true,"uniqueKey":"destination.oneOf.1","typeLabel":"Destination · object"},{"type":"object","title":"Destination","description":"Information about the recipient of this Transfer","required":["type","country","number","provider"],"properties":{"type":{"type":"string","description":"The method selected to make this Transfer","example":"mobile_money","enum":["mobile_money","bank_transfer","airtime","instant_payment"],"isRequired":true,"uniqueKey":"destination.oneOf.2.type","typeLabel":"enum\u003cstring>"},"country":{"type":"string","description":"Two-letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). Represents the country where the provider selected by the customer is localized. ","example":"CI","isRequired":true,"uniqueKey":"destination.oneOf.2.country","typeLabel":"string"},"number":{"type":"string","description":"The identifier referencing the payment method of the customer.\n - In case of a payment by Airtime, it corresponds to the customer phone number corresponding to his Airtime account","isRequired":true,"uniqueKey":"destination.oneOf.2.number","typeLabel":"string"},"provider":{"type":"string","description":"The name of the provider selected by the customer, in lowercase. The list of supported providers can be found at [/data/providers](#operation/DataController_getProviders)","example":"orange","isRequired":true,"uniqueKey":"destination.oneOf.2.provider","typeLabel":"string"},"recipientName":{"type":"string","description":"recipient's Name","uniqueKey":"destination.oneOf.2.recipientName","typeLabel":"string"}},"isRequired":true,"uniqueKey":"destination.oneOf.2","typeLabel":"Destination · object"},{"type":"object","title":"Destination","description":"Information about the recipient of this Transfer","required":["type","country","provider"],"properties":{"type":{"type":"string","description":"The method selected to make this Transfer","example":"instant_payment","enum":["mobile_money","bank_transfer","airtime","instant_payment"],"isRequired":true,"uniqueKey":"destination.oneOf.3.type","typeLabel":"enum\u003cstring>"},"country":{"type":"string","description":"Two-letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). Represents the country where the provider selected by the customer is localized. ","example":"CI","isRequired":true,"uniqueKey":"destination.oneOf.3.country","typeLabel":"string"},"provider":{"type":"string","description":"The provider serving this destination. Always `pispi` for instant payment.","example":"pispi","isRequired":true,"uniqueKey":"destination.oneOf.3.provider","typeLabel":"string"},"recipientName":{"type":"string","description":"recipient's Name","uniqueKey":"destination.oneOf.3.recipientName","typeLabel":"string"},"payerAlias":{"type":"string","description":"The alias of the account debited — the merchant's own transfer account. On `POST /transfers` it is chosen by HUB2 from the merchant's registered aliases rather than taken from the request.","example":"7c9e6679-7425-40de-944b-e07fc1f90ae7","uniqueKey":"destination.oneOf.3.payerAlias","typeLabel":"string"},"payeeAlias":{"type":"string","description":"The alias of the beneficiary paid, as supplied on the request.","example":"+2250700000009","uniqueKey":"destination.oneOf.3.payeeAlias","typeLabel":"string"}},"isRequired":true,"uniqueKey":"destination.oneOf.3","typeLabel":"Destination · object"}],"isRequired":true,"uniqueKey":"destination","typeLabel":"Destination · object"},"fees":{"description":"Fees applied to merchant's transfer-account uppon success","title":"TransferFee","type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the applied Fee object.","example":"lAe5HnFpvOjwdT9vSIgPA","isRequired":true,"uniqueKey":"fees.items.[INDEX].id","typeLabel":"string"},"rate":{"type":"number","description":"A rate corresponding to the amount (flat or percentage) applied by the fees.","isRequired":true,"uniqueKey":"fees.items.[INDEX].rate","typeLabel":"number"},"type":{"type":"string","description":"The type of fee applied to the transfer's amount\n \n - flat: A fixed amount applied as is to the amount.\n \n - percent: A rate applied to the amount as a percentage of the latter.","enum":["flat","percent"],"isRequired":true,"uniqueKey":"fees.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"amount":{"type":"number","description":"Amount applied by this Fees. A positive integer representing how much to charge in the smallest currency unit (e.g., 100 cents to charge €1.00 or 100 to charge FCFA100, a zero-decimal currency).","example":5,"isRequired":true,"uniqueKey":"fees.items.[INDEX].amount","typeLabel":"number"},"currency":{"type":"string","description":"Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html).","example":"XOF","isRequired":true,"uniqueKey":"fees.items.[INDEX].currency","typeLabel":"string"},"taxes":{"description":"An array containing every taxes applied to a fee","type":"array","items":{"type":"string","uniqueKey":"fees.items.[INDEX].taxes.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"fees.items.[INDEX].taxes","typeLabel":"string[]"},"label":{"type":"string","description":"An optional label giving information on the reason of this fees.","uniqueKey":"fees.items.[INDEX].label","typeLabel":"string"}},"required":["id","rate","type","amount","currency","taxes"],"uniqueKey":"fees.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"fees","typeLabel":"TransferFee · object[]"},"isIrt":{"type":"boolean","description":"indicate if the transfer was international","title":"isIrt","isRequired":true,"uniqueKey":"isIrt","typeLabel":"boolean"},"providerReference":{"type":"string","description":"provider reference that identify this transfer","title":"providerReference","isRequired":true,"uniqueKey":"providerReference","typeLabel":"string"},"isDelegated":{"type":"boolean","description":"Indicates if the transfer is delegated","title":"isDelegated","isRequired":true,"uniqueKey":"isDelegated","typeLabel":"boolean"},"aggregatedMerchantId":{"type":"string","description":"Aggregated merchant id","title":"aggregatedMerchantId","isRequired":true,"uniqueKey":"aggregatedMerchantId","typeLabel":"string"},"failureCause":{"type":"object","title":"TransferFailureCause","description":"In case of failure, this object will describe the reason of the failure","required":["code","message","params"],"properties":{"code":{"type":"string","isRequired":true,"uniqueKey":"failureCause.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"failureCause.message","typeLabel":"string"},"params":{"type":"array","items":{"type":"string","uniqueKey":"failureCause.params.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"failureCause.params","typeLabel":"string[]"}},"uniqueKey":"failureCause","typeLabel":"TransferFailureCause · object"},"origin":{"type":"object","title":"Origin","description":"Information about the origin of this transfer","properties":{"name":{"type":"string","description":"Sender's name","uniqueKey":"origin.name","typeLabel":"string"},"country":{"type":"string","description":"Sender's country. Two-letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)","uniqueKey":"origin.country","typeLabel":"string"}},"uniqueKey":"origin","typeLabel":"Origin · object"},"overrideBusinessName":{"type":"string","description":"override business name for aggregator","title":"overrideBusinessName","uniqueKey":"overrideBusinessName","typeLabel":"string"},"overrideBusinessId":{"type":"string","description":"override business id for merchant","title":"overrideBusinessId","uniqueKey":"overrideBusinessId","typeLabel":"string"},"subMerchantId":{"type":"string","description":"Submerchant ID","example":"submerchant_123","uniqueKey":"subMerchantId","typeLabel":"string"},"transferInformation":{"type":"object","description":"Merchant-defined payment metadata from transfer creation.","example":{"recipient_name_hashmac":"9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08","transaction_purpose":"SALARY"},"properties":{"recipient_name_hashmac":{"type":"string","description":"HMAC-SHA256 of the full name of the person receiving the funds, computed on the partner side and hex-encoded (64 characters). Case-insensitive on input, returned in lower case.","example":"9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08","pattern":"^[0-9a-fA-F]{64}$","maxLength":64,"uniqueKey":"transferInformation.recipient_name_hashmac","typeLabel":"string"},"customer_id_hashmac":{"type":"string","description":"HMAC-SHA256, hex-encoded (64 characters), of your identifier for the end user receiving the funds: your customer id, or the end-user phone number when you have no customer id. Expected from every merchant on a payout: currently monitored, it will become mandatory on a date announced in advance. Case-insensitive on input, returned in lower case.","example":"9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08","pattern":"^[0-9a-fA-F]{64}$","maxLength":64,"uniqueKey":"transferInformation.customer_id_hashmac","typeLabel":"string"},"transaction_purpose":{"type":"string","description":"Declared purpose of the payout for compliance and monitoring. Expected from every merchant on a payout (map it from the note or comment you already attach to the payout): currently monitored, it will become mandatory on a date announced in advance.","enum":["SALARY","LOAN_DISBURSEMENT","COMMISSION","REFUND","CASHOUT","OTHER"],"example":"SALARY","uniqueKey":"transferInformation.transaction_purpose","typeLabel":"enum\u003cstring>"}},"uniqueKey":"transferInformation","typeLabel":"object"},"idempotentReplay":{"type":"boolean","description":"Present, and `true`, only when the response replays an existing payout (idempotent replay, HTTP 200 with the `X-Idempotent-Replay: true` header). Absent when the transfer has just been created.","enum":[true],"example":true,"uniqueKey":"idempotentReplay","typeLabel":"enum\u003cboolean>"},"balanceBefore":{"type":"number","description":"Computed balance before the transfer is executed.","uniqueKey":"balanceBefore","typeLabel":"number"},"balanceAfter":{"type":"number","description":"Real available balance right after the transfer is executed.","uniqueKey":"balanceAfter","typeLabel":"number"}},"required":["id","merchantId","createdAt","updatedAt","reference","description","status","amount","currency","mode","destination","fees","isIrt","providerReference","isDelegated","aggregatedMerchantId"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"id":"tr_z1urYtVFgEebtcj8fxp4v","merchantId":"\u003cstring>","createdAt":"2020-10-15T12:09:49.355Z","updatedAt":"2020-10-15T12:16:26.128Z","reference":"ref_2020_11_10_001","description":"\u003cstring>","status":"successful","amount":100,"currency":"XOF","mode":"live","destination":{"type":"mobile_money","country":"CI","number":"\u003cstring>","provider":"orange","recipientName":"\u003cstring>"},"fees":[{"id":"lAe5HnFpvOjwdT9vSIgPA","rate":123,"type":"flat","amount":5,"currency":"XOF","taxes":["\u003cstring>"],"label":"\u003cstring>"}],"isIrt":true,"providerReference":"\u003cstring>","isDelegated":true,"aggregatedMerchantId":"\u003cstring>","failureCause":{"code":"\u003cstring>","message":"\u003cstring>","params":["\u003cstring>"]},"origin":{"name":"\u003cstring>","country":"\u003cstring>"},"overrideBusinessName":"\u003cstring>","overrideBusinessId":"\u003cstring>","subMerchantId":"submerchant_123","transferInformation":{"recipient_name_hashmac":"9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08","transaction_purpose":"SALARY"},"idempotentReplay":true,"balanceBefore":123,"balanceAfter":123}}},"exampleType":"generated"}},"exampleType":"generated"},"6cc80d10-7bfb-43bc-82c7-c7b741f7a1e2":{"description":"Bad Request\n\nBad Request: DTO validation failure, or, with duplicate protection enforced, code `reference_required` when the reference (`externalId` on cross-border) is blank — empty or only whitespace. Where the route's validation already refuses an empty value (`/irt/*`, cross-border), only a whitespace-only value reaches `reference_required`.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"number","description":"HTTP status.","enum":[400],"example":400,"isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cnumber>"},"code":{"type":"string","description":"The error code, e.g. `wrong_provider`, `provider_required`, `provider_not_allowed`, `invalid_url`, `invalid_sandbox_msisdn`, `credit_card_fees_not_supported`, `credit_card_provider_not_configured`, `credit_card_provider_unavailable`, `payment_method_not_supported`, `override_business_id`, `override_business_name`, `signature_error`, `merchant_not_found`, `forbidden_special_chars`, `ci.mtn.description_too_big`, `reference_required`. `Bad Request` for DTO validation failures and other uncoded 400s.","example":"wrong_provider","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"oneOf":[{"type":"string","description":"What is wrong with the request. An array of messages when the payload fails DTO validation.","example":"Provider 'unknown_provider' does not exist for country 'CI' and method 'mobile_money'.","isRequired":true,"uniqueKey":"message.oneOf.0","typeLabel":"string"},{"type":"array","items":{"type":"string","uniqueKey":"message.oneOf.1.items.[INDEX]","typeLabel":"string"},"description":"What is wrong with the request. An array of messages when the payload fails DTO validation.","example":"Provider 'unknown_provider' does not exist for country 'CI' and method 'mobile_money'.","isRequired":true,"uniqueKey":"message.oneOf.1","typeLabel":"string[]"}],"isRequired":true,"uniqueKey":"message","typeLabel":"string | string[]"},"request_id":{"type":"string","description":"Identifier of the request, to quote when contacting the Support team.","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"}},"required":["status","code","message","request_id"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"status":400,"code":"wrong_provider","message":"Provider 'unknown_provider' does not exist for country 'CI' and method 'mobile_money'.","request_id":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"5d1be162-4d2c-4285-888c-2f2019487f00":{"description":"Wrong credentials","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"number","description":"HTTP error code.","example":401,"isRequired":true,"uniqueKey":"status","typeLabel":"number"},"error":{"type":"object","description":"HTTP error description.","required":["type","code","message"],"properties":{"type":{"type":"string","description":"The type of this error.","example":"authorization_error","isRequired":true,"uniqueKey":"error.type","typeLabel":"string"},"code":{"type":"string","description":"The internal error code describing what happened.","enum":["bad_payment_intent_token","wrong_credentials"],"example":"wrong_credentials","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Detailed error message which describe what happened.","example":"L'ID marchand et/ou la clé d'API sont incorrects.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["status","error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"status":401,"error":{"type":"authorization_error","code":"wrong_credentials","message":"L'ID marchand et/ou la clé d'API sont incorrects."}}}},"exampleType":"generated"}},"exampleType":"generated"},"bad7195a-80fd-41a5-a7f6-d9b128bfb1d2":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"number","description":"status","enum":[403],"example":403,"isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cnumber>"},"error":{"type":"object","description":"Error object","required":["statusCode","message","error"],"properties":{"statusCode":{"type":"number","description":"Http status","enum":[403],"example":403,"isRequired":true,"uniqueKey":"error.statusCode","typeLabel":"enum\u003cnumber>"},"message":{"type":"string","description":"Detailed error message","example":"Forbidden","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"error":{"type":"string","description":"Error name","isRequired":true,"uniqueKey":"error.error","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["status","error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"status":403,"error":{"statusCode":403,"message":"Forbidden","error":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"fac47d0b-01b7-4e95-97fe-1a542aa1b0f2":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"httpStatus":{"type":"number","description":"Http status","enum":[404],"example":404,"isRequired":true,"uniqueKey":"httpStatus","typeLabel":"enum\u003cnumber>"},"message":{"type":"string","description":"Detailed error message which describe what happened.","example":"X not found","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error":{"type":"string","description":"Error message","example":"Not found","isRequired":true,"uniqueKey":"error","typeLabel":"string"}},"required":["httpStatus","message","error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"httpStatus":404,"message":"X not found","error":"Not found"}}},"exampleType":"generated"}},"exampleType":"generated"},"178604bc-bdd7-4dcf-bfde-c953e0c12b3f":{"description":"Invalid request\n\nConflict. With code `duplicate_reference` (duplicate protection enforced): the reference is already used by a payout with different details, or by a payout of another kind. The refusal does not mean that a payout failed: the body carries `original_transaction_id`, the id of the payout that already holds the reference, to fetch its status. It is absent in two cases, when there is no payout id to give: the payout holding the reference does not belong to your merchant scope and environment, or it cannot be read. With code `possible_duplicate` (near-duplicate protection enforced): a payout with the same details was created under another reference in the last 15 minutes, on this or another duplicate-protected payout endpoint, whatever its status — a failed or cancelled payout counts too; the reference stays free. The body then also carries `matching_transfers` (the earlier payouts: `id`, `reference`, `status`, `created_at`, `operator`, `amount`, `currency`; an internal `awaiting_confirmation` status is shown as `pending`), `end_user_message` (a text in `en` and `fr` that a merchant can show its end user, depending on whether the most advanced of the earlier payouts is sent, in progress or reported as failed), `rejection_id` and `expires_at`: resend the payout unchanged, to the same endpoint and with the same reference (the `externalId`, for a cross-border transaction), with `rejectionId` set to `rejection_id` before `expires_at` to confirm it. A confirmation is refused again, with a new `rejection_id`, when it finds such a payout the refusal had not seen — typically one created since; only that new `rejection_id` can then confirm it, and the one sent is answered `422` with reason `expired`. It is checked last, so a request that another check refuses or replays — validation, `reference_required`, `duplicate_reference`, the idempotent replay, the testing-merchant limit, on cross-border the quote and float checks, or an invalid `rejectionId`'s 422 — gets that answer instead. Nothing is created. The route's other conflicts keep their own code.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"number","description":"HTTP status.","enum":[409],"example":409,"isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cnumber>"},"code":{"type":"string","description":"The error code. `duplicate_reference`: duplicate protection is enforced and the reference is already used by a payout with different significant details, or by a payout of another kind. `possible_duplicate`: near-duplicate protection is enforced and a payout with the same details, whatever its status (failed and cancelled included), was created under another reference in the last 15 minutes. Other conflicts of the route keep their own code, e.g. `Conflict`.","example":"duplicate_reference","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"What went wrong, and how to proceed.","example":"This refusal does not mean that a payout failed. A payout with this reference already exists. When original_transaction_id is present, fetch that payout to know its status. Do not reuse a reference for a different payout.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"request_id":{"type":"string","description":"Identifier of the request, to quote when contacting the Support team.","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"rejection_id":{"type":"string","description":"With code `possible_duplicate` only: send it back as `rejectionId`, with the payout unchanged, to the same endpoint and with the same reference (the `externalId`, for a cross-border transaction), to confirm that this payout is intended.","example":"ndr_V1StGXR8_Z5jdHi6B-myT","uniqueKey":"rejection_id","typeLabel":"string"},"expires_at":{"type":"string","description":"With code `possible_duplicate` only: until when `rejection_id` can confirm the payout (ISO 8601), 15 minutes after the refusal.","example":"2026-10-19T14:20:00.000Z","uniqueKey":"expires_at","typeLabel":"string"},"original_transaction_id":{"type":"string","description":"With code `duplicate_reference` only: the id of the payout that already holds the reference. Fetch it to know its status. Absent in two cases, when there is no payout id to give: the payout holding the reference does not belong to your merchant scope and environment, or it cannot be read.","example":"trf_V1StGXR8_Z5jdHi6B","uniqueKey":"original_transaction_id","typeLabel":"string"},"matching_transfers":{"description":"With code `possible_duplicate` only: the earlier payouts matched, whatever their status.","type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Identifier of the earlier payout. Fetch it to follow it up.","example":"trf_V1StGXR8_Z5jdHi6B","isRequired":true,"uniqueKey":"matching_transfers.items.[INDEX].id","typeLabel":"string"},"reference":{"type":"string","description":"Reference of the earlier payout (the `externalId`, for a cross-border transaction).","example":"payout-2026-10-19-0042","isRequired":true,"uniqueKey":"matching_transfers.items.[INDEX].reference","typeLabel":"string"},"status":{"type":"string","description":"Public status of the earlier payout. An internal `awaiting_confirmation` status is shown as `pending`. A failed or cancelled payout is listed too.","example":"pending","isRequired":true,"uniqueKey":"matching_transfers.items.[INDEX].status","typeLabel":"string"},"created_at":{"type":"string","description":"When the earlier payout was created (ISO 8601).","example":"2026-10-19T14:05:00.000Z","isRequired":true,"uniqueKey":"matching_transfers.items.[INDEX].created_at","typeLabel":"string"},"operator":{"type":"string","description":"Operator of the earlier payout: the same as this request, which the earlier payout matched.","example":"orange","uniqueKey":"matching_transfers.items.[INDEX].operator","typeLabel":"string"},"amount":{"oneOf":[{"type":"number","description":"Amount of the earlier payout: the same as this request, in the same unit as this route's `amount`. A number on `/transfers` and IRT routes; the exact decimal string on cross-border routes, like their `amount`.","example":50000,"uniqueKey":"matching_transfers.items.[INDEX].amount.oneOf.0","typeLabel":"number"},{"type":"string","description":"Amount of the earlier payout: the same as this request, in the same unit as this route's `amount`. A number on `/transfers` and IRT routes; the exact decimal string on cross-border routes, like their `amount`.","example":50000,"uniqueKey":"matching_transfers.items.[INDEX].amount.oneOf.1","typeLabel":"string"}],"uniqueKey":"matching_transfers.items.[INDEX].amount","typeLabel":"number | string"},"currency":{"type":"string","description":"Currency of the earlier payout: the same as this request.","example":"XOF","uniqueKey":"matching_transfers.items.[INDEX].currency","typeLabel":"string"}},"required":["id","reference","status","created_at"],"uniqueKey":"matching_transfers.items.[INDEX]","typeLabel":"object"},"uniqueKey":"matching_transfers","typeLabel":"object[]"},"end_user_message":{"type":"object","description":"With code `possible_duplicate` only: a text a merchant can show its end user, in English and in French. It depends on the most advanced status among the earlier payouts in `matching_transfers`: sent, then in progress, then reported as failed, and on their destination: this number or this account.","required":["en","fr"],"properties":{"en":{"type":"string","description":"English text.","example":"A transfer of 50,000 XOF to this number was already made at 10:00 UTC and is in progress.","isRequired":true,"uniqueKey":"end_user_message.en","typeLabel":"string"},"fr":{"type":"string","description":"French text.","example":"Un transfert de 50 000 XOF vers ce numéro a déjà été effectué à 10:00 UTC et est en cours.","isRequired":true,"uniqueKey":"end_user_message.fr","typeLabel":"string"}},"uniqueKey":"end_user_message","typeLabel":"object"}},"required":["status","code","message","request_id"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"status":409,"code":"duplicate_reference","message":"This refusal does not mean that a payout failed. A payout with this reference already exists. When original_transaction_id is present, fetch that payout to know its status. Do not reuse a reference for a different payout.","request_id":"\u003cstring>","rejection_id":"ndr_V1StGXR8_Z5jdHi6B-myT","expires_at":"2026-10-19T14:20:00.000Z","original_transaction_id":"trf_V1StGXR8_Z5jdHi6B","matching_transfers":[{"id":"trf_V1StGXR8_Z5jdHi6B","reference":"payout-2026-10-19-0042","status":"pending","created_at":"2026-10-19T14:05:00.000Z","operator":"orange","amount":50000,"currency":"XOF"}],"end_user_message":{"en":"A transfer of 50,000 XOF to this number was already made at 10:00 UTC and is in progress.","fr":"Un transfert de 50 000 XOF vers ce numéro a déjà été effectué à 10:00 UTC et est en cours."}}}},"exampleType":"generated"}},"exampleType":"generated"},"4efa8d2f-3b6e-48a3-a1ef-73d873e45ebc":{"description":"Unprocessable Entity. With code `invalid_duplicate_confirmation` (near-duplicate protection enforced): the `rejectionId` sent cannot confirm this payout — it is expired, replaced by a later refusal of its confirmation, or already used, the payout or its reference, or its flow, differs from the one it refused, or it is unknown — including one that belongs to another merchant, scope or mode. A flow is one of: transfers, delegated transfers, IRT transfers, delegated IRT transfers, cross-border transactions. The `reason` field says which: `expired`, `used`, `content_changed` or `unknown`. Nothing is created; resend the payout without `rejectionId` to get a new one if it is still a possible duplicate. A retry of a confirmation that already created its payout gets the idempotent replay, not this error. The route's other unprocessable requests keep their own code — on cross-border, `Unprocessable Entity` with the reason in `message` (`quote_not_found`, `rate_expired`, `transaction_not_created`, …).","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"number","description":"HTTP status.","enum":[422],"example":422,"isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cnumber>"},"code":{"type":"string","description":"The error code. `invalid_duplicate_confirmation`: the `rejectionId` sent cannot confirm this payout. The route's other unprocessable requests keep their own code — on cross-border, `Unprocessable Entity` with the reason in `message`, e.g. `quote_not_found`, `rate_expired`, `transaction_not_created`.","example":"invalid_duplicate_confirmation","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"What went wrong, and how to proceed.","example":"This rejectionId cannot confirm this payout; reason says why. Resend the payout without rejectionId: it is created if it is no longer a possible duplicate, or refused with a new rejection_id.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"request_id":{"type":"string","description":"Identifier of the request, to quote when contacting the Support team.","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"reason":{"type":"string","description":"With code `invalid_duplicate_confirmation` only: why the `rejectionId` cannot confirm the payout. `expired`: its 15 minutes have passed, or a later `possible_duplicate` refusing its confirmation replaced it with a new `rejection_id`. `used`: it already confirmed a payout. `content_changed`: the payout or its reference differs from the one it refused, or it is sent to another flow or as another payout kind. `unknown`: no such rejection for your account, scope and mode — including a rejection that belongs to another merchant, which is indistinguishable.","enum":["expired","used","content_changed","unknown"],"example":"expired","uniqueKey":"reason","typeLabel":"enum\u003cstring>"}},"required":["status","code","message","request_id"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"status":422,"code":"invalid_duplicate_confirmation","message":"This rejectionId cannot confirm this payout; reason says why. Resend the payout without rejectionId: it is created if it is no longer a possible duplicate, or refused with a new rejection_id.","request_id":"\u003cstring>","reason":"expired"}}},"exampleType":"generated"}},"exampleType":"generated"},"86b7a2e7-da92-42d1-97ff-5481bfbe91f8":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"number","description":"status","enum":[429],"example":429,"isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cnumber>"},"error":{"type":"string","description":"Error","example":"ThrottlerException: Too Many Requests","isRequired":true,"uniqueKey":"error","typeLabel":"string"}},"required":["status","error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"status":429,"error":"ThrottlerException: Too Many Requests"}}},"exampleType":"generated"}},"exampleType":"generated"},"633de171-e4eb-4dfb-aa5a-687de22c2b3e":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","description":"The type of this error.","example":"internal_error","isRequired":true,"uniqueKey":"type","typeLabel":"string"},"code":{"type":"string","description":"The error code for this error.","example":["internal_error","wrong_credentials","not_granted","live_mode_not_granted"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"The error message describing what happens to throw this error.","example":"An error occurred on our system. Please try again later.","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"required":["type","code","message"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"internal_error","code":["internal_error","wrong_credentials","not_granted","live_mode_not_granted"],"message":"An error occurred on our system. Please try again later."}}},"exampleType":"generated"}},"exampleType":"generated"},"121a3acd-7f1b-42a8-bbbd-87cb14fa0e93":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"number","description":"HTTP status.","enum":[502,503],"example":503,"isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cnumber>"},"code":{"type":"string","description":"The error code. 503: `instant_payment_alias_rail_unavailable`, `merchant_group_unavailable` (the merchant group of the caller could not be verified, so money movement is refused). 502: `instant_payment_alias_not_recorded`, `instant_payment_alias_deletion_not_recorded`, `instant_payment_alias_divergence`.","example":"merchant_group_unavailable","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"What went wrong, and whether the call is safe to retry.","example":"Your merchant group could not be verified. Please retry in a few moments.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"request_id":{"type":"string","description":"Identifier of the request, to quote when contacting the Support team.","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"}},"required":["status","code","message","request_id"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"status":503,"code":"merchant_group_unavailable","message":"Your merchant group could not be verified. Please retry in a few moments.","request_id":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{},"servers":{}},"originalFileLocation":"https://api.hub2.io/docs-json"},"subdomain":"hub2-83","siteName":"HUB2 Documentation","title":"Create a delegated Transfer - HUB2 Documentation","navMaps":{"firstHrefInVersion":{"English":{"href":"/api-reference/processing-only/make-a-delegated-transfer","matchLevel":0},"Français":{"href":"/api-reference/processing-only/make-a-delegated-transfer","matchLevel":0}},"firstHrefInLanguage":{}},"lastModified":"2025-08-08T09:14:38.841Z","originalFileLocation":"api-reference/processing-only/make-a-delegated-transfer.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=\"This endpoint allows you to make a transfer (PAY-OUT) using your own provider credentials.\">\u003cmeta data-mint-head name=\"application-name\" content=\"HUB2 Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/hub2-83/2cSAgZof76cJIDy-/_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/hub2-83/2cSAgZof76cJIDy-/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/hub2-83/2cSAgZof76cJIDy-/_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/hub2-83/2cSAgZof76cJIDy-/_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/hub2-83/2cSAgZof76cJIDy-/_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/hub2-83/2cSAgZof76cJIDy-/_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/hub2-83/2cSAgZof76cJIDy-/_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/hub2-83/2cSAgZof76cJIDy-/_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/hub2-83/2cSAgZof76cJIDy-/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create a delegated Transfer - HUB2 Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"This endpoint allows you to make a transfer (PAY-OUT) using your own provider credentials.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"HUB2 Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.hub2.io/api-reference/processing-only/make-a-delegated-transfer\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://hub2-83.mintlify.app/_mintlify/api/og/v2?division=Processing+Only\u0026amp;title=Create+a+delegated+Transfer\u0026amp;description=This+endpoint+allows+you+to+make+a+transfer+%28PAY-OUT%29+using+your+own+provider+credentials.\u0026amp;theme=92cb3d561e9d2318e8ed5cd1\u0026amp;signature=2187a9a3896493ccb648c19a98070967b8e5e9904e6faa99f56302bd6a6b939a\">\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 delegated Transfer - HUB2 Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"This endpoint allows you to make a transfer (PAY-OUT) using your own provider credentials.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://hub2-83.mintlify.app/_mintlify/api/og/v2?division=Processing+Only\u0026amp;title=Create+a+delegated+Transfer\u0026amp;description=This+endpoint+allows+you+to+make+a+transfer+%28PAY-OUT%29+using+your+own+provider+credentials.\u0026amp;theme=92cb3d561e9d2318e8ed5cd1\u0026amp;signature=2187a9a3896493ccb648c19a98070967b8e5e9904e6faa99f56302bd6a6b939a\">\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/hub2-83/2cSAgZof76cJIDy-/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"HUB2 Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0D9373\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.hub2.io/api-reference/processing-only/make-a-delegated-transfer\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/processing-only/make-a-delegated-transfer.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.hub2.io/#organization\",\"name\":\"HUB2 Documentation\",\"url\":\"https://docs.hub2.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/hub2-83/aPkTvmVeXN9HXpuW/assets/logo/hub2.png?fit=max\u0026auto=format\u0026n=aPkTvmVeXN9HXpuW\u0026q=85\u0026s=18f9f70abbe4d6234bad47152927237a\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.hub2.io#website\",\"name\":\"HUB2 Documentation\",\"url\":\"https://docs.hub2.io\",\"publisher\":{\"@id\":\"https://docs.hub2.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.hub2.io/api-reference/processing-only/make-a-delegated-transfer#webpage\",\"url\":\"https://docs.hub2.io/api-reference/processing-only/make-a-delegated-transfer\",\"name\":\"Create a delegated Transfer\",\"description\":\"This endpoint allows you to make a transfer (PAY-OUT) using your own provider credentials.\",\"dateModified\":\"2025-08-08T09:14:38.841Z\",\"isPartOf\":{\"@id\":\"https://docs.hub2.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.hub2.io/api-reference/processing-only/make-a-delegated-transfer#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.hub2.io/api-reference/processing-only/make-a-delegated-transfer#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Processing Only\",\"item\":\"https://docs.hub2.io/api-reference/processing-only/make-a-delegated-payment\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create a delegated Transfer\",\"item\":\"https://docs.hub2.io/api-reference/processing-only/make-a-delegated-transfer\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.hub2.io/api-reference/processing-only/make-a-delegated-transfer#apireference\",\"headline\":\"Create a delegated Transfer\",\"name\":\"Create a delegated Transfer\",\"description\":\"This endpoint allows you to make a transfer (PAY-OUT) using your own provider credentials.\",\"url\":\"https://docs.hub2.io/api-reference/processing-only/make-a-delegated-transfer\",\"mainEntityOfPage\":{\"@id\":\"https://docs.hub2.io/api-reference/processing-only/make-a-delegated-transfer#webpage\"},\"dateModified\":\"2025-08-08T09:14:38.841Z\",\"publisher\":{\"@id\":\"https://docs.hub2.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.hub2.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"HUB2 Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"HUB2 Documentation","nav":{"global":null,"versions":[{"version":"English","tabs":[{"tab":"HUB2"},{"tab":"Integration","pages":[{"title":"Integration","href":"/integration/en/getting_started/introduction"}]},{"tab":"Documentation","pages":[{"title":"Documentation","href":"/documentation/en/glossary"}]},{"tab":"API Reference","groups":[{"group":"Data","pages":[{"openapi":"get /data/countries","title":"Get countries","href":"/api-reference/data/get-countries"},{"openapi":"get /data/providers","title":"Get providers","href":"/api-reference/data/get-providers"},{"openapi":"get /data/bank-codes","title":"Get bank codes","href":"/api-reference/data/get-bank-codes"}]},{"group":"Balance","pages":[{"openapi":"get /balance","title":"Check Merchant Balance","href":"/api-reference/balance/check-merchant-balance"}]},{"group":"Webhooks","pages":[{"openapi":"get /webhooks","title":"Get all webhooks","href":"/api-reference/webhooks/get-all-webhooks"},{"openapi":"post /webhooks","title":"Create a webhook","href":"/api-reference/webhooks/create-a-webhook"},{"openapi":"get /webhooks/{id}","title":"Get a webhook","href":"/api-reference/webhooks/get-a-webhook"},{"openapi":"delete /webhooks/{id}","title":"Remove a webhook","href":"/api-reference/webhooks/remove-a-webhook"},{"openapi":"patch /webhooks/{id}","title":"Update a webhook","href":"/api-reference/webhooks/update-a-webhook"}]},{"group":"Sms","pages":[{"openapi":"get /sms/count","title":"Retrieve number of sms sent","href":"/api-reference/sms/retrieve-number-of-sms-sent"},{"openapi":"get /sms/list","title":"Get a list of sms sent","href":"/api-reference/sms/get-a-list-of-sms-sent"},{"openapi":"post /sms","title":"Send Sms","href":"/api-reference/sms/send-sms"}]},{"group":"Payments","pages":[{"openapi":"get /payment-intents","title":"Retrieve a PaymentIntent collection","href":"/api-reference/payments/retrieve-a-paymentintent-collection"},{"openapi":"post /payment-intents","title":"Create a PaymentIntent object","href":"/api-reference/payments/create-a-paymentintent-object"},{"openapi":"get /payment-intents/{id}","title":"Retrieve a PaymentIntent object","href":"/api-reference/payments/retrieve-a-paymentintent-object"},{"openapi":"post /payment-intents/{id}/payments","title":"Attempt a payment on a PaymentIntent object","href":"/api-reference/payments/attempt-a-payment-on-a-paymentintent-object"},{"openapi":"post /payment-intents/{id}/payments/sync","title":"Synchronously attempt a payment on a payment intent","href":"/api-reference/payments/synchronously-attempt-a-payment-on-a-payment-intent"},{"openapi":"post /payment-intents/{id}/authentication","title":"Authenticate the current payment","href":"/api-reference/payments/authenticate-the-current-payment"},{"openapi":"get /payment-intents/{id}/payment-fees","title":"Retrieve fees","href":"/api-reference/payments/retrieve-fees"},{"openapi":"get /payment-intents/url/{token}","title":"Retrieve configured URLs","href":"/api-reference/payments/retrieve-configured-urls"},{"openapi":"get /payment-intents/{id}/status","title":"Retrieve a PaymentIntent status","href":"/api-reference/payments/retrieve-a-paymentintent-status"},{"openapi":"get /payments","title":"Retrieve a Payments collection","href":"/api-reference/payments/retrieve-a-payments-collection"},{"openapi":"get /payments/{id}/status","title":"Retrieve the status payment object","href":"/api-reference/payments/retrieve-the-status-payment-object"}]},{"group":"Provisioning","pages":[{"openapi":"get /provisionings","title":"Retrieve a Provisionings collection","href":"/api-reference/provisioning/retrieve-a-provisionings-collection"},{"openapi":"post /provisionings","title":"Create a Provisioning","href":"/api-reference/provisioning/create-a-provisioning"},{"openapi":"get /provisionings/{id}","title":"Retrieve a Provisioning from given id","href":"/api-reference/provisioning/retrieve-a-provisioning-from-given-id"}]},{"group":"Receipt","pages":[{"openapi":"get /receipts/{id}","title":"Retrieve a Receipt","href":"/api-reference/receipt/retrieve-a-receipt"},{"openapi":"get /receipts/html/{id}","title":"Retrieve a Receipt as an HTML representation","href":"/api-reference/receipt/retrieve-a-receipt-as-an-html-representation"}]},{"group":"Payment on Terminal","pages":[{"openapi":"post /terminal/payments","title":"Execute payment","href":"/api-reference/payment-on-terminal/execute-payment"},{"openapi":"get /terminal/payments/{id}","title":"Retrieve a payment","href":"/api-reference/payment-on-terminal/retrieve-a-payment"}]},{"group":"IRT","pages":[{"openapi":"get /irt/transfer","title":"Retrieve a IRT transfers collection","href":"/api-reference/irt/retrieve-a-irt-transfers-collection"},{"openapi":"post /irt/transfer","title":"Create IRT transfer","href":"/api-reference/irt/create-irt-transfer"},{"openapi":"post /irt/transfer/verified-recipient","title":"Create an IRT transfer to a verified recipient","href":"/api-reference/irt/create-irt-transfer-verified-recipient"}]},{"group":"Transfers","pages":[{"openapi":"get /transfers","title":"Retrieve a Transfer collection","href":"/api-reference/transfers/retrieve-a-transfer-collection"},{"openapi":"post /transfers","title":"Create Transfer","href":"/api-reference/transfers/create-transfer"},{"openapi":"get /transfers/{id}","title":"Retrieve a Transfer","href":"/api-reference/transfers/retrieve-a-transfer"},{"openapi":"get /transfers/{id}/balance","title":"Retrieve a transfer's balance","href":"/api-reference/transfers/retrieve-a-transfers-balance"},{"openapi":"get /transfers/{id}/status","title":"Retrieve a transfer's status","href":"/api-reference/transfers/retrieve-a-transfers-status"},{"openapi":"post /transfers/status","title":"Retrieve the status of several transfers","href":"/api-reference/transfers/retrieve-transfers-status"}]},{"group":"Refunds","pages":[{"title":"Retrieve refunds collection","api":"GET https://api.hub2.io/refunds","href":"/api-reference/refunds/retrieve-refunds-collection"},{"openapi":"post /refunds/refund","title":"Create Refund","href":"/api-reference/refunds/create-refund"},{"title":"Retrieve a refund","api":"GET https://api.hub2.io/refunds/{id}","href":"/api-reference/refunds/retrieve-a-refund"}]},{"group":"Payment Refunds","pages":[{"openapi":"post /payments-refund/{id}/refund","title":"Create Refund for a Payment","href":"/api-reference/payments-refunds/create-refund-for-a-payment"},{"openapi":"get /payments-refund/{refundId}/status","title":"Get the status of a Payment Refund","href":"/api-reference/payments-refunds/get-the-status-of-a-payment-refund"}]},{"group":"Deposits","pages":[{"openapi":"get /deposits","title":"List deposits","href":"/api-reference/deposits/list-deposits"},{"openapi":"post /deposits","title":"Create a deposit","href":"/api-reference/deposits/create-a-deposit"},{"openapi":"get /deposits/{id}","title":"Get a deposit","href":"/api-reference/deposits/get-a-deposit"},{"openapi":"get /deposits/proof-upload-uri","title":"Get a proof upload URL","href":"/api-reference/deposits/get-a-proof-upload-url"},{"openapi":"post /deposits/{id}/proof","title":"Submit a proof","href":"/api-reference/deposits/submit-a-proof"},{"openapi":"get /deposits/{id}/proof","title":"Get deposit proof image","href":"/api-reference/deposits/get-deposit-proof-image"}]},{"group":"Compliance","pages":[{"openapi":"get /compliance/kyb/{name}","title":"Retrieve a kyb by name","href":"/api-reference/compliance/retrieve-a-kyb-by-name"},{"openapi":"put /compliance/kyb/{name}","title":"Update a kyb","href":"/api-reference/compliance/update-a-kyb"},{"openapi":"delete /compliance/kyb/{name}","title":"Delete a kyb","href":"/api-reference/compliance/delete-a-kyb"},{"openapi":"get /compliance/kyb","title":"Fetch a kyb list","href":"/api-reference/compliance/fetch-a-kyb-list"},{"openapi":"post /compliance/kyb","title":"Create a kyb","href":"/api-reference/compliance/create-a-kyb"},{"openapi":"get /compliance/transaction","title":"Fetch a kyb transactions list","href":"/api-reference/compliance/fetch-a-kyb-transactions-list"},{"openapi":"post /compliance/transaction","title":"Create a kyb transaction","href":"/api-reference/compliance/create-a-kyb-transaction"},{"openapi":"get /compliance/transaction/{reference}","title":"Retrieve a kyb transaction by reference","href":"/api-reference/compliance/retrieve-a-kyb-transaction-by-reference"},{"openapi":"delete /compliance/transaction/{reference}","title":"Delete a kyb transaction","href":"/api-reference/compliance/delete-a-kyb-transaction"},{"openapi":"get /compliance/kyc","title":"Get kyc information","href":"/api-reference/compliance/get-kyc-information"}]},{"group":"Recipients","pages":[{"openapi":"post /recipient","title":"Create a new recipient","href":"/api-reference/recipients/create-recipient"},{"openapi":"get /recipient/{id}","title":"Get a recipient by id","href":"/api-reference/recipients/find-recipient"},{"openapi":"get /recipient","title":"Retrieve a list of recipients according to filters","href":"/api-reference/recipients/list-recipients"},{"openapi":"delete /recipient/{id}","title":"Delete a recipient by id","href":"/api-reference/recipients/delete-recipient"}]},{"group":"Processing Only","pages":[{"openapi":"post /delegated/payments","title":"Create a delegated payment","href":"/api-reference/processing-only/make-a-delegated-payment"},{"openapi":"post /delegated/payments/sync","title":"Create a delegated synchronous payment","description":"This endpoint allows you to make a synchronous payment using your own provider credentials.","href":"/api-reference/processing-only/make-a-synchronous-delegated-payment"},{"openapi":"post /delegated/transfers","title":"Create a delegated Transfer","href":"/api-reference/processing-only/make-a-delegated-transfer"},{"openapi":"post /delegated/transfers/irt","title":"Create a delegated IRT transfer","description":"Make an IRT transfer using your own provider credentials.","href":"/api-reference/processing-only/make-a-delegated-transfer-irt"}]},{"group":"Payment Links","pages":[{"title":"Create a payment link","api":"POST https://api.hub2.io/payment-links","href":"/api-reference/payment_links/create_payment_links"},{"openapi":"get /payment-links","title":"List Payment Links","href":"/api-reference/payment_links/list_payment_links"},{"openapi":"get /payment-links/{id}","title":"Get Payment Link with Attempts","href":"/api-reference/payment_links/list_payment_links_with_attempts"},{"openapi":"patch /payment-links/{id}/close","title":"Close Payment Link","href":"/api-reference/payment_links/close_payment_links"}]},{"group":"Submerchants","pages":[{"openapi":"post /submerchants","title":"Create a submerchant","href":"/api-reference/submerchants/create-a-submerchant"},{"openapi":"get /submerchants","title":"List submerchants","href":"/api-reference/submerchants/list_submerchants"},{"openapi":"patch /submerchants/{submerchantId}","title":"Update a submerchant","href":"/api-reference/submerchants/update-a-submerchant"}]},{"group":"Subscriptions","pages":[{"openapi":"post /subscription-links","title":"Create Subscription Link","href":"/api-reference/subscriptions/create-a-subscription-link"},{"openapi":"post /subscription-intents","title":"Enroll a customer in card-on-file recurring debits","href":"/api-reference/subscriptions/enroll-a-customer"},{"openapi":"get /subscription-intents/{id}/status","title":"Retrieve a card-on-file enrollment status","href":"/api-reference/subscriptions/retrieve-an-enrollment-status"},{"openapi":"get /subscriptions","title":"Retrieve a Subscription collection","href":"/api-reference/subscriptions/retrieve-a-subscription-collection"},{"openapi":"post /subscriptions/{id}/charge","title":"Charge a merchant-initiated subscription on demand","href":"/api-reference/subscriptions/charge-a-subscription"},{"openapi":"post /subscriptions/{id}/suspend","title":"Suspend a subscription","href":"/api-reference/subscriptions/suspend-a-subscription"},{"openapi":"post /subscriptions/{id}/cancel","title":"Cancel a subscription","href":"/api-reference/subscriptions/cancel-a-subscription"},{"openapi":"get /subscriptions/{id}/transactions","title":"Retrieve a subscription's charge history","href":"/api-reference/subscriptions/retrieve-a-subscription-charge-history"}]},{"group":"Instant Payment","pages":[{"openapi":"get /instant-payment/accounts/{accountType}/aliases","title":"List the instant payment aliases of an account","href":"/api-reference/instant-payment/list-aliases"},{"openapi":"post /instant-payment/accounts/{accountType}/aliases","title":"Create an instant payment alias","href":"/api-reference/instant-payment/create-an-alias"},{"openapi":"delete /instant-payment/accounts/{accountType}/aliases/{aliasKey}","title":"Delete an instant payment alias","href":"/api-reference/instant-payment/delete-an-alias"}]}]}]},{"version":"Français","tabs":[{"tab":"HUB2"},{"tab":"Intégration","pages":[{"title":"Intégration","href":"/integration/fr/getting_started/introduction"}]},{"tab":"Documentation","pages":[{"title":"Documentation","href":"/documentation/fr/glossary"}]},{"tab":"Référence de l'API","groups":[{"group":"Data","pages":[{"openapi":"get /data/countries","title":"Get countries","href":"/api-reference/data/get-countries"},{"openapi":"get /data/providers","title":"Get providers","href":"/api-reference/data/get-providers"},{"openapi":"get /data/bank-codes","title":"Get bank codes","href":"/api-reference/data/get-bank-codes"}]},{"group":"Balance","pages":[{"openapi":"get /balance","title":"Check Merchant Balance","href":"/api-reference/balance/check-merchant-balance"}]},{"group":"Webhooks","pages":[{"openapi":"get /webhooks","title":"Get all webhooks","href":"/api-reference/webhooks/get-all-webhooks"},{"openapi":"post /webhooks","title":"Create a webhook","href":"/api-reference/webhooks/create-a-webhook"},{"openapi":"get /webhooks/{id}","title":"Get a webhook","href":"/api-reference/webhooks/get-a-webhook"},{"openapi":"delete /webhooks/{id}","title":"Remove a webhook","href":"/api-reference/webhooks/remove-a-webhook"},{"openapi":"patch /webhooks/{id}","title":"Update a webhook","href":"/api-reference/webhooks/update-a-webhook"}]},{"group":"Sms","pages":[{"openapi":"get /sms/count","title":"Retrieve number of sms sent","href":"/api-reference/sms/retrieve-number-of-sms-sent"},{"openapi":"get /sms/list","title":"Get a list of sms sent","href":"/api-reference/sms/get-a-list-of-sms-sent"},{"openapi":"post /sms","title":"Send Sms","href":"/api-reference/sms/send-sms"}]},{"group":"Payments","pages":[{"openapi":"get /payment-intents","title":"Retrieve a PaymentIntent collection","href":"/api-reference/payments/retrieve-a-paymentintent-collection"},{"openapi":"post /payment-intents","title":"Create a PaymentIntent object","href":"/api-reference/payments/create-a-paymentintent-object"},{"openapi":"get /payment-intents/{id}","title":"Retrieve a PaymentIntent object","href":"/api-reference/payments/retrieve-a-paymentintent-object"},{"openapi":"post /payment-intents/{id}/payments","title":"Attempt a payment on a PaymentIntent object","href":"/api-reference/payments/attempt-a-payment-on-a-paymentintent-object"},{"openapi":"post /payment-intents/{id}/payments/sync","title":"Synchronously attempt a payment on a payment intent","href":"/api-reference/payments/synchronously-attempt-a-payment-on-a-payment-intent"},{"openapi":"post /payment-intents/{id}/authentication","title":"Authenticate the current payment","href":"/api-reference/payments/authenticate-the-current-payment"},{"openapi":"get /payment-intents/{id}/payment-fees","title":"Retrieve fees","href":"/api-reference/payments/retrieve-fees"},{"openapi":"get /payment-intents/url/{token}","title":"Retrieve configured URLs","href":"/api-reference/payments/retrieve-configured-urls"},{"openapi":"get /payment-intents/{id}/status","title":"Retrieve a PaymentIntent status","href":"/api-reference/payments/retrieve-a-paymentintent-status"},{"openapi":"get /payments","title":"Retrieve a Payments collection","href":"/api-reference/payments/retrieve-a-payments-collection"},{"openapi":"get /payments/{id}/status","title":"Retrieve the status payment object","href":"/api-reference/payments/retrieve-the-status-payment-object"}]},{"group":"Provisioning","pages":[{"openapi":"get /provisionings","title":"Retrieve a Provisionings collection","href":"/api-reference/provisioning/retrieve-a-provisionings-collection"},{"openapi":"post /provisionings","title":"Create a Provisioning","href":"/api-reference/provisioning/create-a-provisioning"},{"openapi":"get /provisionings/{id}","title":"Retrieve a Provisioning from given id","href":"/api-reference/provisioning/retrieve-a-provisioning-from-given-id"}]},{"group":"Receipt","pages":[{"openapi":"get /receipts/{id}","title":"Retrieve a Receipt","href":"/api-reference/receipt/retrieve-a-receipt"},{"openapi":"get /receipts/html/{id}","title":"Retrieve a Receipt as an HTML representation","href":"/api-reference/receipt/retrieve-a-receipt-as-an-html-representation"}]},{"group":"Payment on Terminal","pages":[{"openapi":"post /terminal/payments","title":"Execute payment","href":"/api-reference/payment-on-terminal/execute-payment"},{"openapi":"get /terminal/payments/{id}","title":"Retrieve a payment","href":"/api-reference/payment-on-terminal/retrieve-a-payment"}]},{"group":"IRT","pages":[{"openapi":"get /irt/transfer","title":"Retrieve a IRT transfers collection","href":"/api-reference/irt/retrieve-a-irt-transfers-collection"},{"openapi":"post /irt/transfer","title":"Create IRT transfer","href":"/api-reference/irt/create-irt-transfer"},{"openapi":"post /irt/transfer/verified-recipient","title":"Create an IRT transfer to a verified recipient","href":"/api-reference/irt/create-irt-transfer-verified-recipient"}]},{"group":"Transfers","pages":[{"openapi":"get /transfers","title":"Retrieve a Transfer collection","href":"/api-reference/transfers/retrieve-a-transfer-collection"},{"openapi":"post /transfers","title":"Create Transfer","href":"/api-reference/transfers/create-transfer"},{"openapi":"get /transfers/{id}","title":"Retrieve a Transfer","href":"/api-reference/transfers/retrieve-a-transfer"},{"openapi":"get /transfers/{id}/balance","title":"Retrieve a transfer's balance","href":"/api-reference/transfers/retrieve-a-transfers-balance"},{"openapi":"get /transfers/{id}/status","title":"Retrieve a transfer's status","href":"/api-reference/transfers/retrieve-a-transfers-status"},{"openapi":"post /transfers/status","title":"Retrieve the status of several transfers","href":"/api-reference/transfers/retrieve-transfers-status"}]},{"group":"Refunds","pages":[{"title":"Retrieve refunds collection","api":"GET https://api.hub2.io/refunds","href":"/api-reference/refunds/retrieve-refunds-collection"},{"openapi":"post /refunds/refund","title":"Create Refund","href":"/api-reference/refunds/create-refund"},{"title":"Retrieve a refund","api":"GET https://api.hub2.io/refunds/{id}","href":"/api-reference/refunds/retrieve-a-refund"}]},{"group":"Payment Refunds","pages":[{"openapi":"post /payments-refund/{id}/refund","title":"Create Refund for a Payment","href":"/api-reference/payments-refunds/create-refund-for-a-payment"},{"openapi":"get /payments-refund/{refundId}/status","title":"Get the status of a Payment Refund","href":"/api-reference/payments-refunds/get-the-status-of-a-payment-refund"}]},{"group":"Deposits","pages":[{"openapi":"get /deposits","title":"List deposits","href":"/api-reference/deposits/list-deposits"},{"openapi":"post /deposits","title":"Create a deposit","href":"/api-reference/deposits/create-a-deposit"},{"openapi":"get /deposits/{id}","title":"Get a deposit","href":"/api-reference/deposits/get-a-deposit"},{"openapi":"get /deposits/proof-upload-uri","title":"Get a proof upload URL","href":"/api-reference/deposits/get-a-proof-upload-url"},{"openapi":"post /deposits/{id}/proof","title":"Submit a proof","href":"/api-reference/deposits/submit-a-proof"},{"openapi":"get /deposits/{id}/proof","title":"Get deposit proof image","href":"/api-reference/deposits/get-deposit-proof-image"}]},{"group":"Compliance","pages":[{"openapi":"get /compliance/kyb/{name}","title":"Retrieve a kyb by name","href":"/api-reference/compliance/retrieve-a-kyb-by-name"},{"openapi":"put /compliance/kyb/{name}","title":"Update a kyb","href":"/api-reference/compliance/update-a-kyb"},{"openapi":"delete /compliance/kyb/{name}","title":"Delete a kyb","href":"/api-reference/compliance/delete-a-kyb"},{"openapi":"get /compliance/kyb","title":"Fetch a kyb list","href":"/api-reference/compliance/fetch-a-kyb-list"},{"openapi":"post /compliance/kyb","title":"Create a kyb","href":"/api-reference/compliance/create-a-kyb"},{"openapi":"get /compliance/transaction","title":"Fetch a kyb transactions list","href":"/api-reference/compliance/fetch-a-kyb-transactions-list"},{"openapi":"post /compliance/transaction","title":"Create a kyb transaction","href":"/api-reference/compliance/create-a-kyb-transaction"},{"openapi":"get /compliance/transaction/{reference}","title":"Retrieve a kyb transaction by reference","href":"/api-reference/compliance/retrieve-a-kyb-transaction-by-reference"},{"openapi":"delete /compliance/transaction/{reference}","title":"Delete a kyb transaction","href":"/api-reference/compliance/delete-a-kyb-transaction"},{"openapi":"get /compliance/kyc","title":"Get kyc information","href":"/api-reference/compliance/get-kyc-information"}]},{"group":"Recipients","pages":[{"openapi":"post /recipient","title":"Create a new recipient","href":"/api-reference/recipients/create-recipient"},{"openapi":"get /recipient/{id}","title":"Get a recipient by id","href":"/api-reference/recipients/find-recipient"},{"openapi":"get /recipient","title":"Retrieve a list of recipients according to filters","href":"/api-reference/recipients/list-recipients"},{"openapi":"delete /recipient/{id}","title":"Delete a recipient by id","href":"/api-reference/recipients/delete-recipient"}]},{"group":"Processing Only","pages":[{"openapi":"post /delegated/payments","title":"Create a delegated payment","href":"/api-reference/processing-only/make-a-delegated-payment"},{"openapi":"post /delegated/payments/sync","title":"Create a delegated synchronous payment","description":"This endpoint allows you to make a synchronous payment using your own provider credentials.","href":"/api-reference/processing-only/make-a-synchronous-delegated-payment"},{"openapi":"post /delegated/transfers","title":"Create a delegated Transfer","href":"/api-reference/processing-only/make-a-delegated-transfer"},{"openapi":"post /delegated/transfers/irt","title":"Create a delegated IRT transfer","description":"Make an IRT transfer using your own provider credentials.","href":"/api-reference/processing-only/make-a-delegated-transfer-irt"}]},{"group":"Payment Links","pages":[{"title":"Create a payment link","api":"POST https://api.hub2.io/payment-links","href":"/api-reference/payment_links/create_payment_links"},{"openapi":"get /payment-links","title":"List Payment Links","href":"/api-reference/payment_links/list_payment_links"},{"openapi":"get /payment-links/{id}","title":"Get Payment Link with Attempts","href":"/api-reference/payment_links/list_payment_links_with_attempts"},{"openapi":"patch /payment-links/{id}/close","title":"Close Payment Link","href":"/api-reference/payment_links/close_payment_links"}]},{"group":"Submerchants","pages":[{"openapi":"post /submerchants","title":"Create a submerchant","href":"/api-reference/submerchants/create-a-submerchant"},{"openapi":"get /submerchants","title":"List submerchants","href":"/api-reference/submerchants/list_submerchants"},{"openapi":"patch /submerchants/{submerchantId}","title":"Update a submerchant","href":"/api-reference/submerchants/update-a-submerchant"}]},{"group":"Subscriptions","pages":[{"openapi":"post /subscription-links","title":"Create Subscription Link","href":"/api-reference/subscriptions/create-a-subscription-link"},{"openapi":"post /subscription-intents","title":"Enroll a customer in card-on-file recurring debits","href":"/api-reference/subscriptions/enroll-a-customer"},{"openapi":"get /subscription-intents/{id}/status","title":"Retrieve a card-on-file enrollment status","href":"/api-reference/subscriptions/retrieve-an-enrollment-status"},{"openapi":"get /subscriptions","title":"Retrieve a Subscription collection","href":"/api-reference/subscriptions/retrieve-a-subscription-collection"},{"openapi":"post /subscriptions/{id}/charge","title":"Charge a merchant-initiated subscription on demand","href":"/api-reference/subscriptions/charge-a-subscription"},{"openapi":"post /subscriptions/{id}/suspend","title":"Suspend a subscription","href":"/api-reference/subscriptions/suspend-a-subscription"},{"openapi":"post /subscriptions/{id}/cancel","title":"Cancel a subscription","href":"/api-reference/subscriptions/cancel-a-subscription"},{"openapi":"get /subscriptions/{id}/transactions","title":"Retrieve a subscription's charge history","href":"/api-reference/subscriptions/retrieve-a-subscription-charge-history"}]},{"group":"Instant Payment","pages":[{"openapi":"get /instant-payment/accounts/{accountType}/aliases","title":"List the instant payment aliases of an account","href":"/api-reference/instant-payment/list-aliases"},{"openapi":"post /instant-payment/accounts/{accountType}/aliases","title":"Create an instant payment alias","href":"/api-reference/instant-payment/create-an-alias"},{"openapi":"delete /instant-payment/accounts/{accountType}/aliases/{aliasKey}","title":"Delete an instant payment alias","href":"/api-reference/instant-payment/delete-an-alias"}]}]}]}]},"basePath":"","title":"Create a delegated Transfer - HUB2 Documentation","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"]}