{"openapi":"3.0.0","paths":{"/data/countries":{"get":{"description":"Returns the list of countries where Hub2 is available","operationId":"PublicDataController_getCountries","parameters":[{"name":"method","required":false,"in":"query","description":"The payment method type","schema":{"example":"mobile_money","type":"string","enum":["mobile_money","credit_card","bank_transfer","instant_payment"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CountryDto"}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiBadRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Get countries","tags":["Data"]}},"/data/providers":{"get":{"description":"Returns the list of providers available with Hub2","operationId":"PublicDataController_getProviders","parameters":[{"name":"method","required":false,"in":"query","description":"Transactions method supproted by the provider","schema":{"example":"mobile_money","type":"string","enum":["mobile_money","bank_transfer","airtime","credit_card","cash","instant_payment"]}},{"name":"country","required":false,"in":"query","description":"Country code of the provider","schema":{"example":"CI","type":"string"}},{"name":"status","required":false,"in":"query","description":"The status of the provider","schema":{"example":"enabled","type":"string","enum":["enabled","disabled"]}},{"name":"names","required":false,"in":"query","description":"The name of the provider","schema":{"example":["mtn","orange"],"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ProviderDto"}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiBadRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Get providers","tags":["Data"]}},"/data/bank-codes":{"get":{"description":"Returns the list of bank codes available with Hub2 for bank transfers, grouped by country","operationId":"PublicDataController_getBanks","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/BankDto"}},"example":{"CI":[{"bankName":"Ecobank Cote D'Ivoire","bankCode":"ECOCCIAB","country":"CI"}],"SN":[{"bankName":"Ecobank Senegal","bankCode":"ECOCSNDA","country":"SN"}]}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Get bank codes","tags":["Data"]}},"/webhooks":{"post":{"operationId":"WebhooksController_create","parameters":[{"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"}},{"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"}},{"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"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWebhookDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookDtoAlias"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Create a webhook","tags":["Webhooks"]},"get":{"operationId":"WebhooksController_findAll","parameters":[{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WebhookDtoAlias"}}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Get all webhooks","tags":["Webhooks"]}},"/webhooks/{id}":{"get":{"operationId":"WebhooksController_find","parameters":[{"name":"id","required":true,"in":"path","description":"Unique identifier for the Webhook","schema":{"example":"wh_z1urYtVFgEebtcj8fxp4v","type":"string"}},{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookDtoAlias"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Get a webhook","tags":["Webhooks"]},"patch":{"operationId":"WebhooksController_update","parameters":[{"name":"id","required":true,"in":"path","description":"Unique identifier for the Webhook","schema":{"example":"wh_z1urYtVFgEebtcj8fxp4v","type":"string"}},{"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"}},{"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"}},{"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"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWebhookDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookDtoAlias"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Update a webhook","tags":["Webhooks"]},"delete":{"operationId":"WebhooksController_remove","parameters":[{"name":"id","required":true,"in":"path","description":"Unique identifier for the Webhook","schema":{"example":"wh_z1urYtVFgEebtcj8fxp4v","type":"string"}},{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"description":""},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Remove a webhook","tags":["Webhooks"]}},"/refunds/refund":{"post":{"description":"This endpoint allows you to create a refund","operationId":"RefundController_create","parameters":[{"name":"MerchantId","required":true,"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.","schema":{"type":"string"}},{"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"}},{"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"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefundRequestDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRefundResponseDto"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiBadRequestErrorAlias"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiForbiddenRequestErrorAlias"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"409":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInvalidRequestErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Create Refund","tags":["Refunds"]}},"/refunds":{"get":{"operationId":"RefundController_getRefunds","parameters":[{"name":"MerchantId","required":true,"in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Refunds"]},"post":{"operationId":"RefundController_createRefund","parameters":[{"name":"MerchantId","required":true,"in":"header","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefundRequestDto"}}}},"responses":{"201":{"description":""}},"tags":["Refunds"]}},"/refunds/{id}":{"get":{"operationId":"RefundController_getRefund","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"MerchantId","required":true,"in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Refunds"]}},"/payments-refund/{id}/refund":{"post":{"description":"This endpoint allows you to create a refund for a payment","operationId":"PaymentsRefundsController_create","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"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"}},{"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"}},{"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"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePaymentRefundRequestDto"}}}},"responses":{"202":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePaymentRefundResponseDto"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiBadRequestErrorAlias"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiForbiddenRequestErrorAlias"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"409":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInvalidRequestErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Create Refund for a Payment","tags":["Payments Refunds"]}},"/payments-refund/{refundId}/status":{"get":{"description":"This endpoint allows you to get the status of a payment refund","operationId":"PaymentsRefundsController_getStatus","parameters":[{"name":"refundId","required":true,"in":"path","schema":{"type":"number"}},{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetPaymentRefundStatusResponseDto"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiBadRequestErrorAlias"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiForbiddenRequestErrorAlias"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"409":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInvalidRequestErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Get the status of a Payment Refund","tags":["Payments Refunds"]}},"/balance":{"get":{"description":"Returns a summary of a merchant accounts balances (collection, transfer, transfer irt and cross-border accounts).\n      Use the `accountType` filter to restrict the response to specific accounts; omit it to get them all.","operationId":"BalanceController_getBalances","parameters":[{"name":"date","required":false,"in":"query","description":"Get balance at Datetime in UTC timezone.\n      Follows the [Datetime ISO](https://en.wikipedia.org/wiki/ISO_8601).","schema":{"example":"2020-10-15T12:16:26.128Z","type":"string"}},{"name":"currency","required":false,"in":"query","description":"Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html).","schema":{"example":"XOF","type":"string"}},{"name":"accountType","required":false,"in":"query","description":"Restrict the response to specific accounts. Repeat the parameter or pass a\n      comma-separated list, e.g. `?accountType=collection&accountType=cross-border` or\n      `?accountType=collection,cross-border`. Omit it to get every account the merchant holds.","schema":{"example":["cross-border"],"type":"array","items":{"type":"string","enum":["collection","transfer","transfer-irt","cross-border"]}}},{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BalancesDto"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Check Merchant Balance","tags":["Balance"]}},"/payment-links":{"post":{"description":"Create a new payment link","operationId":"PaymentLinksController_createPaymentLink","parameters":[{"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"}},{"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"}},{"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"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePaymentLinkDto"}}}},"responses":{"201":{"description":"Payment link created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentLinkDto"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInvalidInputErrorAlias"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiForbiddenRequestErrorAlias"}}}},"409":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInvalidRequestErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Create Payment Link","tags":["Payment Links"]},"get":{"description":"Retrieve a list of payment links with optional filtering","operationId":"PaymentLinksController_getPaymentLinks","parameters":[{"name":"fromCreatedAt","required":false,"in":"query","description":"Filter by creation date from (ISO 8601) - inclusive start date","schema":{"example":"2024-01-15T00:00:00.000Z","type":"string"}},{"name":"toCreatedAt","required":false,"in":"query","description":"Filter by creation date to (ISO 8601) - inclusive end date","schema":{"example":"2024-01-15T23:59:59.999Z","type":"string"}},{"name":"fromExpirationDate","required":false,"in":"query","description":"Filter by expiration date from (ISO 8601) - inclusive start date","schema":{"example":"2024-01-15T00:00:00.000Z","type":"string"}},{"name":"toExpirationDate","required":false,"in":"query","description":"Filter by expiration date to (ISO 8601) - inclusive end date","schema":{"example":"2024-01-15T23:59:59.999Z","type":"string"}},{"name":"status","required":false,"in":"query","description":"Filter by payment link status","schema":{"example":"active","type":"string","enum":["active","expired","closed","completed"]}},{"name":"purchaseReference","required":false,"in":"query","description":"Filter by exact purchase reference (idempotency lookups)","schema":{"example":"bp_9f8a2c1e0b3d4f5a6c7e8d9f","type":"string"}},{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PaymentLinkWithAttemptsDto"}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiBadRequestErrorAlias"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiForbiddenRequestErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"List Payment Links","tags":["Payment Links"]}},"/payment-links/{id}":{"get":{"description":"Retrieve detailed information about a payment link including payment attempts","operationId":"PaymentLinksController_getPaymentLinkWithAttempts","parameters":[{"name":"id","required":true,"in":"path","description":"Payment link ID","schema":{"example":"pl_z1urYtVFgEebtcj8fxp4v","type":"string"}},{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentLinkWithAttemptsDto"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiBadRequestErrorAlias"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiForbiddenRequestErrorAlias"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Get Payment Link with Attempts","tags":["Payment Links"]}},"/payment-links/{id}/close":{"patch":{"operationId":"PaymentLinksController_closePaymentLink","parameters":[{"name":"id","required":true,"in":"path","description":"Payment link ID","schema":{"example":"pl_z1urYtVFgEebtcj8fxp4v","type":"string"}}],"responses":{"200":{"description":"Payment link closed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentLinkDto"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiBadRequestErrorAlias"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiForbiddenRequestErrorAlias"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}}},"tags":["Payment Links"]}},"/subscription-links":{"post":{"description":"Create a new card-on-file subscription enrollment link","operationId":"SubscriptionLinkController_createSubscriptionLink","parameters":[{"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"}},{"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"}},{"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"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSubscriptionLinkDto"}}}},"responses":{"201":{"description":"Subscription link created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentLinkDto"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiBadRequestErrorAlias"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiForbiddenRequestErrorAlias"}}}},"409":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInvalidRequestErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Create Subscription Link","tags":["Subscription Links"]}},"/bill-payments/billers":{"get":{"description":"Lists the billers the merchant can pay bills to, optionally filtered by country and category.","operationId":"BillPaymentsController_listBillers","parameters":[{"name":"country","required":false,"in":"query","description":"Filter billers by ISO 3166-1 alpha-3 country code","schema":{"example":"CIV","type":"string"}},{"name":"category","required":false,"in":"query","description":"Filter billers by category","schema":{"example":"ENERGY","type":"string"}},{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BillerDto"}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiBadRequestErrorAlias"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiForbiddenRequestErrorAlias"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnprocessableEntityErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}},"502":{"description":"Invalid gateway","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiBadGatewayErrorAlias"}}}}},"summary":"List billers","tags":["Bill Payments"]}},"/bill-payments/billers/{billerId}":{"get":{"operationId":"BillPaymentsController_getBiller","parameters":[{"name":"billerId","required":true,"in":"path","schema":{"type":"string"}},{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillerDto"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiForbiddenRequestErrorAlias"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnprocessableEntityErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}},"502":{"description":"Invalid gateway","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiBadGatewayErrorAlias"}}}}},"summary":"Retrieve a biller","tags":["Bill Payments"]}},"/bill-payments/lookup":{"post":{"description":"Retrieves the bill a customer reference points to at a biller, and checks the amount to pay against it.","operationId":"BillPaymentsController_lookupBill","parameters":[{"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"}},{"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"}},{"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"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LookupBillDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillDetailDto"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiBadRequestErrorAlias"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiForbiddenRequestErrorAlias"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnprocessableEntityErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}},"502":{"description":"Invalid gateway","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiBadGatewayErrorAlias"}}}}},"summary":"Look up a bill","tags":["Bill Payments"]}},"/bill-payments":{"post":{"operationId":"BillPaymentsController_createBillPayment","parameters":[{"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"}},{"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"}},{"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"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateBillPaymentDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillPaymentDto"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiBadRequestErrorAlias"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiForbiddenRequestErrorAlias"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"409":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInvalidRequestErrorAlias"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnprocessableEntityErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}},"502":{"description":"Invalid gateway","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiBadGatewayErrorAlias"}}}}},"summary":"Pay a bill","tags":["Bill Payments"]}},"/bill-payments/self-service-link":{"post":{"operationId":"BillPaymentsController_generateSelfServiceLink","parameters":[{"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"}},{"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"}},{"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"]}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SelfServiceLinkDto"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiForbiddenRequestErrorAlias"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Generate a self-service bill payment link token","tags":["Bill Payments"]}},"/sms/count":{"get":{"description":"Retrieve number of sms sent between two date","operationId":"SmsController_getCount","parameters":[{"name":"from","required":false,"in":"query","description":"A date in UTC timezone to filters data from, inclusively.\n    Follows the [Datetime ISO](https://en.wikipedia.org/wiki/ISO_8601).\n    The default value is the first day of this month.","schema":{"example":"2020-10-15T12:09:49.355Z","type":"string"}},{"name":"to","required":false,"in":"query","description":"A date in UTC timezone to filters data to, inclusively.\n     Follows the [Datetime ISO](https://en.wikipedia.org/wiki/ISO_8601).\n     The default value is now().","schema":{"example":"2020-10-15T12:09:49.355Z","type":"string"}},{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SmsCountDto"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Retrieve number of sms sent","tags":["Sms"]}},"/sms/list":{"get":{"description":"Retrieve a list of sms sent between two date.","operationId":"SmsController_getListing","parameters":[{"name":"from","required":false,"in":"query","description":"A date in UTC timezone to filters data from, inclusively.\n    Follows the [Datetime ISO](https://en.wikipedia.org/wiki/ISO_8601).\n    The default value is the first day of this month.","schema":{"example":"2020-10-15T12:09:49.355Z","type":"string"}},{"name":"to","required":false,"in":"query","description":"A date in UTC timezone to filters data to, inclusively.\n     Follows the [Datetime ISO](https://en.wikipedia.org/wiki/ISO_8601).\n     The default value is now().","schema":{"example":"2020-10-15T12:09:49.355Z","type":"string"}},{"name":"page","required":false,"in":"query","description":"The page number in the returned data. The default value is 1.\n    Do use with 'perPage' query parameter to paginate properly.","schema":{"example":2,"type":"number"}},{"name":"perPage","required":false,"in":"query","description":"The maximum number of results that will be return. The default value is 10.\n    Do use with 'page' query parameter to paginate properly.","schema":{"example":5,"type":"number"}},{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"headers":{"Content-Range":{"description":"Indicate the response's range. Follow the format : start-end/total","example":"5-9/16","schema":{"type":"string"}}},"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SmsDto"}}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Get a list of sms sent","tags":["Sms"]}},"/sms":{"post":{"description":"Send Sms to different destinations.","operationId":"SmsController_send","parameters":[{"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"}},{"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"}},{"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"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendSmsDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SmsDto"}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiBadRequestErrorAlias"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Send Sms","tags":["Sms"]}},"/irt/transfer":{"post":{"description":"Make an IRT transfer","operationId":"TransfersIrtController_makeTransfer","parameters":[{"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"}},{"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"}},{"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"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MakeTransferIrtDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferDto"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInvalidInputErrorAlias"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Create IRT transfer","tags":["IRT"]},"get":{"description":"Return a list of IRT transfers, eventually filtered by criteria.","operationId":"TransfersIrtController_filterGet","parameters":[{"name":"reference","required":false,"in":"query","description":"The reference provided by the client during the creation of this transfer. It will most likely be the internal ID of the transaction.","schema":{"example":"ref_2020_11_10_001","type":"string"}},{"name":"isDelegated","required":false,"in":"query","description":"Only transactions matching the given delegated status","schema":{"example":true,"type":"boolean"}},{"name":"to","required":false,"in":"query","description":"A date in UTC timezone to filters data to, inclusively.\n     Follows the [Datetime ISO](https://en.wikipedia.org/wiki/ISO_8601).\n     The default value is now().","schema":{"example":"2020-10-15T12:09:49.355Z","type":"string"}},{"name":"from","required":false,"in":"query","description":"A date in UTC timezone to filters data from, inclusively.\n    Follows the [Datetime ISO](https://en.wikipedia.org/wiki/ISO_8601).\n    The default value is the first day of this month.","schema":{"example":"2020-10-15T12:09:49.355Z","type":"string"}},{"name":"page","required":false,"in":"query","description":"The page number in the returned data. The default value is 1.\n    Do use with 'perPage' query parameter to paginate properly.","schema":{"example":2,"type":"number"}},{"name":"perPage","required":false,"in":"query","description":"The maximum number of results that will be return. The default value is 10.\n    Do use with 'page' query parameter to paginate properly.","schema":{"example":5,"type":"number"}},{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"headers":{"Content-Range":{"description":"Indicate the response's range. Follow the format : start-end/total","example":"5-9/16","schema":{"type":"string"}}},"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TransferNoBalanceDtoAlias"}}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Retrieve a IRT transfers collection","tags":["IRT"]}},"/irt/transfer/verified-recipient":{"post":{"description":"Make an IRT transfer to a verified recipient","operationId":"TransfersIrtController_makeTransferVerifiedRecipient","parameters":[{"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"}},{"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"}},{"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"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitiateVerifiedTransferIrtDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferDto"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInvalidInputErrorAlias"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Create IRT transfer","tags":["IRT"]}},"/irt/v1/rates":{"get":{"description":"Returns indicative hub2_rate per active corridor. Requires fx_rates_read permission. Behind ENABLE_FX_ENGINE flag.","operationId":"TransfersIrtController_getFxRates","parameters":[{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FxRatesResponseDto"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Get indicative FX rates","tags":["IRT"]}},"/irt/v1/quote/calculate":{"post":{"description":"Returns a guaranteed FX quote valid for 30 minutes. Requires fx_quote_create permission. Behind ENABLE_FX_ENGINE flag.","operationId":"TransfersIrtController_calculateFxQuote","parameters":[{"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"}},{"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"}},{"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"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FxQuoteRequestDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FxQuoteResponseDto"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Calculate guaranteed FX quote","tags":["IRT"]}},"/irt/v1/transactions":{"post":{"description":"Initiates a cross-border payout in a single call: resolves the merchant configuration, funds the transaction against the quote identified by rateId, reserves the float and dispatches the payout asynchronously. Returns synchronously with state `pending`. Replaying the same externalId returns the original transaction instead of creating a second payout.","operationId":"TransfersIrtController_createAndFundTransaction","parameters":[{"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"}},{"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"}},{"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"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCrossBorderTransactionDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrossBorderTransactionDto"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnprocessableEntityErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Create and fund a cross-border transaction","tags":["IRT"]},"get":{"description":"Returns your own cross-border transactions, most recent first. Optionally filtered by period (from/to) or current state.","operationId":"TransfersIrtController_filterCrossBorderTransactions","parameters":[{"name":"state","required":false,"in":"query","description":"Restrict the result to transactions currently in this state.","schema":{"example":"pending","type":"string","enum":["created","pending","compliance_review","pending_manual","successful","failed","cancelled"]}},{"name":"to","required":false,"in":"query","description":"A date in UTC timezone to filters data to, inclusively.\n     Follows the [Datetime ISO](https://en.wikipedia.org/wiki/ISO_8601).\n     The default value is now().","schema":{"example":"2020-10-15T12:09:49.355Z","type":"string"}},{"name":"from","required":false,"in":"query","description":"A date in UTC timezone to filters data from, inclusively.\n    Follows the [Datetime ISO](https://en.wikipedia.org/wiki/ISO_8601).\n    The default value is the first day of this month.","schema":{"example":"2020-10-15T12:09:49.355Z","type":"string"}},{"name":"page","required":false,"in":"query","description":"The page number in the returned data. The default value is 1.\n    Do use with 'perPage' query parameter to paginate properly.","schema":{"example":2,"type":"number"}},{"name":"perPage","required":false,"in":"query","description":"The maximum number of results that will be return. The default value is 10.\n    Do use with 'page' query parameter to paginate properly.","schema":{"example":5,"type":"number"}},{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"headers":{"Content-Range":{"description":"Indicate the response's range. Follow the format : start-end/total","example":"5-9/16","schema":{"type":"string"}}},"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CrossBorderTransactionDto"}}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Retrieve a cross-border transactions collection","tags":["IRT"]}},"/irt/v1/reports":{"post":{"description":"Requests an on-demand report of your cross-border transactions for [from, to] (both inclusive), emailed to the given addresses once generated. Accepted immediately; generation and delivery happen asynchronously in the reports service.","operationId":"TransfersIrtController_requestCrossBorderReport","parameters":[{"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"}},{"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"}},{"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"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestCrossBorderReportDto"}}}},"responses":{"202":{"description":"The request was accepted; the report is generated and emailed asynchronously."},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiForbiddenRequestErrorAlias"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnprocessableEntityErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Request a cross-border transactions report","tags":["IRT"]}},"/irt/v1/transactions/{id}":{"get":{"description":"Returns one of your cross-border transactions, with its authoritative current state. Webhooks remain the primary notification channel — this is the fallback for reconciling records or investigating a notification that never arrived.","operationId":"TransfersIrtController_getCrossBorderTransaction","parameters":[{"name":"id","required":true,"in":"path","description":"Hub2 transaction identifier.","schema":{"type":"string"}},{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrossBorderTransactionDto"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"404":{"description":"No transaction matches this identifier for your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Get a cross-border transaction by id","tags":["IRT"]},"delete":{"description":"Cancels one of your cross-border transactions before its payout is dispatched — while it is `created` or held in `compliance_review` — and releases the reserved funds back to your available balance. Synchronous: no partner is contacted, since nothing has been paid out. Sends the `cross_border_transaction.cancelled` webhook. Once the transaction is `pending`, `pending_manual`, `successful` or `failed`, it can no longer be cancelled. Cancelling an already-cancelled transaction returns it unchanged. The request has no body, so it is not signed: no X-Signature header is checked.","operationId":"TransfersIrtController_cancelCrossBorderTransaction","parameters":[{"name":"id","required":true,"in":"path","description":"Hub2 transaction identifier.","schema":{"type":"string"}},{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"description":"The cancelled transaction.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrossBorderTransactionDto"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiForbiddenRequestErrorAlias"}}}},"404":{"description":"No transaction matches this identifier for your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"409":{"description":"`transaction_busy`: the transaction is being updated by another operation. Nothing was changed; retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInvalidRequestErrorAlias"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnprocessableEntityErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Cancel a cross-border transaction","tags":["IRT"]}},"/irt/v1/transactions/external-id/{externalId}":{"get":{"description":"Returns the transaction you funded under this externalId — the same object the by-id lookup returns. Resolved against your own externalId namespace: a group owner looking up an externalId one of its sub-merchants registered must use the transaction id instead, because the same externalId is a valid key for the owner and for each sub-merchant at once.","operationId":"TransfersIrtController_getCrossBorderTransactionByExternalId","parameters":[{"name":"externalId","required":true,"in":"path","description":"The idempotency key you supplied when funding the transaction, percent-encoded. Any non-empty string up to 255 characters is accepted on creation, so a key containing `/` or another reserved character must be escaped to reach this endpoint — send `MTO%2F2026%2F00123` for the key `MTO/2026/00123`.","schema":{"type":"string"}},{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrossBorderTransactionDto"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"404":{"description":"No transaction of yours carries this externalId.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Get a cross-border transaction by external id","tags":["IRT"]}},"/irt/v1/senders":{"post":{"description":"Registers a sender, or updates the one already registered under the same externalId — the pair (merchant, externalId) is unique per mode, so replaying a registration never creates a duplicate. The sender is screened against the sanctions lists on every call.","operationId":"TransfersIrtController_upsertSender","parameters":[{"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"}},{"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"}},{"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"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSenderDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SenderDto"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnprocessableEntityErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Register a sender","tags":["IRT"]},"get":{"description":"Returns your registered senders, most recent first, optionally filtered by state.","operationId":"TransfersIrtController_filterGetSenders","parameters":[{"name":"state","required":false,"in":"query","description":"Restrict the result to the senders currently in this state.","schema":{"example":"approved","type":"string","enum":["initial","approved","rejected","banned"]}},{"name":"page","required":false,"in":"query","description":"The page number in the returned data. The default value is 1.\n    Do use with 'perPage' query parameter to paginate properly.","schema":{"example":2,"type":"number"}},{"name":"perPage","required":false,"in":"query","description":"The maximum number of results that will be return. The default value is 10.\n    Do use with 'page' query parameter to paginate properly.","schema":{"example":5,"type":"number"}},{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"headers":{"Content-Range":{"description":"Indicate the response's range. Follow the format : start-end/total","example":"5-9/16","schema":{"type":"string"}}},"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SenderDto"}}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Retrieve a senders collection","tags":["IRT"]}},"/irt/v1/senders/{id}":{"get":{"description":"Returns one of your registered senders.","operationId":"TransfersIrtController_getSender","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SenderDto"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Get a sender by id","tags":["IRT"]},"patch":{"description":"Replaces the sender's identity and screens it again against the sanctions lists. A change to the identity itself sends the sender back for review; a change limited to contact details leaves an already-cleared sender cleared.","operationId":"TransfersIrtController_updateSender","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"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"}},{"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"}},{"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"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSenderDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SenderDto"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnprocessableEntityErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Resubmit a sender","tags":["IRT"]}},"/irt/v1/validate/account":{"post":{"description":"Validates a recipient mobile/bank account against the last-mile partner before a transaction is created. No transaction is created and no float is touched. Behind ENABLE_FX_ENGINE flag.","operationId":"TransfersIrtController_validateAccount","parameters":[{"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"}},{"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"}},{"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"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidateAccountRequestDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidateAccountResponseDto"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Validate a recipient account","tags":["IRT"]}},"/submerchants":{"get":{"operationId":"SubmerchantsController_listSubmerchants","parameters":[{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"description":"List of submerchants","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SubmerchantDto"}}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"List submerchants","tags":["Submerchants"]},"post":{"operationId":"SubmerchantsController_createSubmerchant","parameters":[{"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"}},{"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"}},{"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"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSubmerchantDto"}}}},"responses":{"201":{"description":"Submerchant created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmerchantDto"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInvalidInputErrorAlias"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Create a submerchant","tags":["Submerchants"]}},"/submerchants/{submerchantId}":{"patch":{"operationId":"SubmerchantsController_updateSubmerchant","parameters":[{"name":"submerchantId","required":true,"in":"path","schema":{"type":"string"}},{"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"}},{"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"}},{"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"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSubmerchantDto"}}}},"responses":{"200":{"description":"Submerchant updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmerchantDto"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiBadRequestErrorAlias"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Update a submerchant","tags":["Submerchants"]}},"/payment-intents":{"post":{"description":"This endpoint is the first entry point of the PAY-IN circuit.\n    First of all, you must create a payment intent which describes your intention to collect an amount of money in a currency.\n    Later on, you will perform payments associated with this payment intent.\n    Please do save the fields returned by this endpoint, especially the field 'id' and 'token'.\n    That will help you identity the payment intent in our platform whenever you want to retrieve it.","operationId":"PaymentIntentsController_createPayment","parameters":[{"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"}},{"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"}},{"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"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePaymentIntentDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentIntentDto"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInvalidInputErrorAlias"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiForbiddenRequestErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Create a PaymentIntent object","tags":["Payments"]},"get":{"description":"This endpoints is here to provide you an efficient way of retrieving multiple payment intents at the same time.\n    Everything is provided in the request's headers to perform a proper pagination on the results.","operationId":"PaymentIntentsController_getPaymentIntents","parameters":[{"name":"customerReference","required":false,"in":"query","description":"The reference you provided during the creation of the payment intent.\n    It is a reference to the customer for who this payment intent was created.","schema":{"example":"cust_01924059","type":"string"}},{"name":"purchaseReference","required":false,"in":"query","description":"The reference you provided during the creation of the payment intent.\n    It is a reference to the purchase made by the customer for who this payment intent was created.","schema":{"example":"ref_2020_11_10_001","type":"string"}},{"name":"to","required":false,"in":"query","description":"A date in UTC timezone to filters data to, inclusively.\n     Follows the [Datetime ISO](https://en.wikipedia.org/wiki/ISO_8601).\n     The default value is now().","schema":{"example":"2020-10-15T12:09:49.355Z","type":"string"}},{"name":"from","required":false,"in":"query","description":"A date in UTC timezone to filters data from, inclusively.\n    Follows the [Datetime ISO](https://en.wikipedia.org/wiki/ISO_8601).\n    The default value is the first day of this month.","schema":{"example":"2020-10-15T12:09:49.355Z","type":"string"}},{"name":"page","required":false,"in":"query","description":"The page number in the returned data. The default value is 1.\n    Do use with 'perPage' query parameter to paginate properly.","schema":{"example":2,"type":"number"}},{"name":"perPage","required":false,"in":"query","description":"The maximum number of results that will be return. The default value is 10.\n    Do use with 'page' query parameter to paginate properly.","schema":{"example":5,"type":"number"}},{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"headers":{"Content-Range":{"description":"Indicate the response's range. Follow the format : start-end/total","example":"5-9/16","schema":{"type":"string"}}},"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PaymentIntentDto"}}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Retrieve a PaymentIntent collection","tags":["Payments"]}},"/payment-intents/{id}":{"get":{"description":"This endpoint allows you to fetch an existing payment intent from our database.\n    You must either provide the \"id\" or the \"token\" for us to find that payment intent.\n    Retrieving using the \"token\" is the fastest way and uses a more permissive rate limit (10 requests per 5 seconds).","operationId":"PaymentIntentsController_getPayment","parameters":[{"name":"id","required":true,"in":"path","description":"Identifier of the payment intent to retrieve.","schema":{"type":"string"}},{"name":"token","required":false,"in":"query","description":"You can also use this token parameter to retrieve a payment intent.\n    This is especially useful for a client-side application when you don't want your api key to be disclosed in.","schema":{"type":"string"}},{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentIntentDto"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiForbiddenRequestErrorAlias"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Retrieve a PaymentIntent object","tags":["Payments"]}},"/payment-intents/{id}/payments":{"post":{"description":"This is the endpoint to use whenever you want to attempt a payment on a payment intent.\n    It will create a payment object associated with the intent which will contains all the informations about the payment.\n    Whenever a payment fails or don't have the appropriate amount to match the intent, other payments can be created on the same intent.","operationId":"PaymentIntentsController_pay","parameters":[{"name":"id","required":true,"in":"path","description":"Identifier of the PaymentIntent on which the Payment attempt is made.","schema":{"type":"string"}},{"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"}},{"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"}},{"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"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PayDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentIntentDto"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInvalidInputErrorAlias"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiForbiddenRequestErrorAlias"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"409":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInvalidRequestErrorAlias"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnprocessableEntityErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Attempt a payment on a PaymentIntent object","tags":["Payments"]}},"/payment-intents/{id}/payments/sync":{"post":{"description":"This is the same endpoint but the payment is handled synchronously, it means it will wait for the provider response before returning the status of the payment intent. This endpoint is not the favored way to integrate our api and is not available for all merchants and for all providers.","operationId":"PaymentIntentsController_pay_sync","parameters":[{"name":"id","required":true,"in":"path","description":"Identifier of the payment intent on which the payment attempt is made.","schema":{"type":"string"}},{"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"}},{"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"}},{"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"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PayDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentIntentDto"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInvalidInputErrorAlias"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiForbiddenRequestErrorAlias"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"409":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInvalidRequestErrorAlias"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnprocessableEntityErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Synchronously attempt a payment on a payment intent","tags":["Payments"]}},"/payment-intents/{id}/authentication":{"post":{"description":"Some circuit have authentication restrictions which requires an extra step.\n    This endpoint is here to allow you to make that extra steps. It happens after a payment has been requested and when that payment moved to the \"action_required\" state.","operationId":"PaymentIntentsController_authenticate","parameters":[{"name":"id","required":true,"in":"path","description":"Identifier of the PaymentIntent requiring authentication.","schema":{"type":"string"}},{"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"}},{"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"}},{"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"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthenticateDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentIntentDto"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Authenticate the current payment","tags":["Payments"]}},"/payment-intents/{id}/payment-fees":{"get":{"description":"This endpoint allows you to retrieve the fees associated with a payment intent.\n    Fees are applied per payment and this endpoints will group all the fees in an array.","operationId":"PaymentIntentsController_getPaymentFees","parameters":[{"name":"id","required":true,"in":"path","description":"Identifier of the PaymentIntent on which to retrieve PaymentFees.","schema":{"type":"string"}},{"name":"country","required":true,"in":"query","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. ","schema":{"example":"CI","type":"string"}},{"name":"provider","required":false,"in":"query","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). Required for every method except `instant_payment`, which has a single provider: for that method the parameter is optional and ignored, and any value (for example `PI SPI`) is accepted.","schema":{"example":"orange","type":"string"}},{"name":"paymentMethod","required":true,"in":"query","description":"The method selected by the customer to make this Payment.","schema":{"type":"string","enum":["mobile_money","credit_card","bank_transfer","instant_payment"]}},{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PaymentFeeDto"}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInvalidInputErrorAlias"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiForbiddenRequestErrorAlias"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Retrieve fees","tags":["Payments"]}},"/payment-intents/url/{token}":{"get":{"description":"This endpoint fetch the merchant's preference and return the redirection URL saved in there.\n    This is mostly used for the Hub2 modal feature.\n    You must provide the payment intent token for that.","operationId":"PaymentIntentsController_getUrl","parameters":[{"name":"token","required":true,"in":"path","description":"Provided merchant's token.","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MerchantPreferencesUrl"}}}},"401":{"description":"Invalid token provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiBadPaymentIntentTokenError"}}}},"404":{"description":"Not Found\n\nNot Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Retrieve configured URLs","tags":["Payments"]}},"/payment-intents/{id}/status":{"get":{"description":"This endpoint allows you to fetch the status of an existing payment intent from our database.\n    You must either provide the \"id\" or the \"token\" for us to find that payment intent.\n    Retrieving using the \"token\" is the fastest way and uses a more permissive rate limit (10 requests per 5 seconds).","operationId":"PaymentIntentsController_getPaymentIntentStatus","parameters":[{"name":"id","required":true,"in":"path","description":"Identifier of the payment intent to retrieve.","schema":{"type":"string"}},{"name":"token","required":false,"in":"query","description":"You can also use this token parameter to retrieve a payment intent.\n    This is especially useful for a client-side application when you don't want your api key to be disclosed in.","schema":{"type":"string"}},{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentIntentStatusDto"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiForbiddenRequestErrorAlias"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Retrieve a PaymentIntent status","tags":["Payments"]}},"/payments":{"get":{"description":"Return a list of Payments, eventually filtered by criteria.","operationId":"PaymentsController_getPaymentIntents","parameters":[{"name":"isDelegated","required":false,"in":"query","description":"Only transactions matching the given delegated status","schema":{"example":true,"type":"boolean"}},{"name":"to","required":false,"in":"query","description":"A date in UTC timezone to filters data to, inclusively.\n     Follows the [Datetime ISO](https://en.wikipedia.org/wiki/ISO_8601).\n     The default value is now().","schema":{"example":"2020-10-15T12:09:49.355Z","type":"string"}},{"name":"from","required":false,"in":"query","description":"A date in UTC timezone to filters data from, inclusively.\n    Follows the [Datetime ISO](https://en.wikipedia.org/wiki/ISO_8601).\n    The default value is the first day of this month.","schema":{"example":"2020-10-15T12:09:49.355Z","type":"string"}},{"name":"page","required":false,"in":"query","description":"The page number in the returned data. The default value is 1.\n    Do use with 'perPage' query parameter to paginate properly.","schema":{"example":2,"type":"number"}},{"name":"perPage","required":false,"in":"query","description":"The maximum number of results that will be return. The default value is 10.\n    Do use with 'page' query parameter to paginate properly.","schema":{"example":5,"type":"number"}},{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"headers":{"Content-Range":{"description":"Indicate the response's range. Follow the format : start-end/total","example":"5-9/16","schema":{"type":"string"}}},"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PaymentDto"}}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Retrieve a Payments collection","tags":["Payments"]}},"/payments/{id}/status":{"get":{"operationId":"PaymentsController_getPaymentStatus","parameters":[{"name":"id","required":true,"in":"path","description":"Identifier of the payment to retrieve.","schema":{"example":"pay_z1urYtVFgEebtcj8fxp4v","type":"string"}},{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentStatusDto"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiForbiddenRequestErrorAlias"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Retrieve the status payment object","tags":["Payments"]}},"/provisionings":{"post":{"description":"Move funds from merchant's collection account to transfer account","operationId":"ProvisioningsController_createProvisioning","parameters":[{"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"}},{"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"}},{"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"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProvisioningDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProvisioningDto"}}}},"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProvisioningDto"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"409":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInvalidRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Create a Provisioning","tags":["Provisioning"]},"get":{"operationId":"ProvisioningsController_listProvisionings","parameters":[{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ProvisioningDto"}}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"409":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInvalidRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Retrieve a Provisionings collection","tags":["Provisioning"]}},"/provisionings/{id}":{"get":{"operationId":"ProvisioningsController_getProvisioning","parameters":[{"name":"id","required":true,"in":"path","description":"Unique identifier for the Provisioning","schema":{"example":"prov_z1urYtVFgEebtcj8fxp4v","type":"string"}},{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProvisioningDto"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"409":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInvalidRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Retrieve a Provisioning from given id","tags":["Provisioning"]}},"/receipts/{id}":{"get":{"description":"Retrieve a sucessful or failed transfer or payment receipt","operationId":"ReceiptsController_getReceipt","parameters":[{"name":"id","required":true,"in":"path","description":"Identifier can be receiptId or transactionId (ex: TransferId)","schema":{"type":"string"}},{"name":"isReceiptIdentifier","required":false,"in":"query","description":"Indicate if the provided identifier is a receipt id (true) or a transfer or payment id (false).","schema":{"type":"boolean"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReceiptDto"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"409":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInvalidRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Retrieve a Receipt","tags":["Receipt"]}},"/receipts/html/{id}":{"get":{"description":"Retrieve a sucessful or failed transfer or payment receipt as HTML","operationId":"ReceiptsController_getReceiptHTMLFromTransactionId","parameters":[{"name":"id","required":true,"in":"path","description":"Identifier can be receiptId or transactionId (ex: TransferId)","schema":{"type":"string"}},{"name":"isReceiptIdentifier","required":false,"in":"query","description":"Indicate if the provided identifier is a receipt id (true) or a transfer or payment id (false).","schema":{"type":"boolean"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReceiptHtmlDto"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"409":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInvalidRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Retrieve a Receipt as an HTML representation","tags":["Receipt"]}},"/terminal/payments":{"post":{"operationId":"TerminalController_pay","parameters":[{"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"}},{"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"}},{"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"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TerminalPayDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentIntentDto"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Execute payment","tags":["Payment on Terminal"]}},"/terminal/payments/{id}":{"get":{"operationId":"TerminalController_getPayment","parameters":[{"name":"id","required":true,"in":"path","description":"Identifier of the payment intent to retrieve.","schema":{"type":"string"}},{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentIntentDto"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Retrieve a payment","tags":["Payment on Terminal"]}},"/transfers":{"post":{"description":"This endpoint allows you to make a transfer (PAY-OUT)","operationId":"TransfersController_makeTransfer","parameters":[{"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"}},{"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"}},{"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"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MakeTransferDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferDtoAlias"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInvalidInputErrorAlias"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiForbiddenRequestErrorAlias"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"409":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInvalidRequestErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Create Transfer","tags":["Transfers"]},"get":{"description":"Return a list of Transfers, eventually filtered by criteria.","operationId":"TransfersController_filterGet","parameters":[{"name":"reference","required":false,"in":"query","description":"The reference provided by the client during the creation of this transfer. It will most likely be the internal ID of the transaction.","schema":{"example":"ref_2020_11_10_001","type":"string"}},{"name":"isDelegated","required":false,"in":"query","description":"Only transactions matching the given delegated status","schema":{"example":true,"type":"boolean"}},{"name":"to","required":false,"in":"query","description":"A date in UTC timezone to filters data to, inclusively.\n     Follows the [Datetime ISO](https://en.wikipedia.org/wiki/ISO_8601).\n     The default value is now().","schema":{"example":"2020-10-15T12:09:49.355Z","type":"string"}},{"name":"from","required":false,"in":"query","description":"A date in UTC timezone to filters data from, inclusively.\n    Follows the [Datetime ISO](https://en.wikipedia.org/wiki/ISO_8601).\n    The default value is the first day of this month.","schema":{"example":"2020-10-15T12:09:49.355Z","type":"string"}},{"name":"page","required":false,"in":"query","description":"The page number in the returned data. The default value is 1.\n    Do use with 'perPage' query parameter to paginate properly.","schema":{"example":2,"type":"number"}},{"name":"perPage","required":false,"in":"query","description":"The maximum number of results that will be return. The default value is 10.\n    Do use with 'page' query parameter to paginate properly.","schema":{"example":5,"type":"number"}},{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"headers":{"Content-Range":{"description":"Indicate the response's range. Follow the format : start-end/total","example":"5-9/16","schema":{"type":"string"}}},"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TransferNoBalanceDtoAlias"}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiBadRequestErrorAlias"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Retrieve a Transfer collection","tags":["Transfers"]}},"/transfers/{id}":{"get":{"description":"This endpoint allows you to fetch an existing transfer from our database\n    by providing its 'id'","operationId":"TransfersController_getTransfer","parameters":[{"name":"id","required":true,"in":"path","description":"Unique identifier for the Transfer","schema":{"example":"tr_z1urYtVFgEebtcj8fxp4v","type":"string"}},{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferDto"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiBadRequestErrorAlias"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Retrieve a Transfer","tags":["Transfers"]}},"/transfers/{id}/balance":{"get":{"description":"Fetch balance before and after transfer","operationId":"TransfersController_getTransferBalances","parameters":[{"name":"id","required":true,"in":"path","description":"Unique identifier for the Transfer","schema":{"example":"tr_z1urYtVFgEebtcj8fxp4v","type":"string"}},{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferDtoAlias"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Retrieve a transfer's balance","tags":["Transfers"]}},"/transfers/status":{"post":{"description":"Retrieve the status for every id provided in the body array","operationId":"TransfersController_getTransferStatus","parameters":[{"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"}},{"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"}},{"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"]}}],"responses":{"201":{"description":""},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Retrieve transfer's status","tags":["Transfers"]}},"/transfers/{id}/status":{"get":{"description":"Retrieve the status for a transfer","operationId":"TransfersController_getTransferStatusById","parameters":[{"name":"id","required":true,"in":"path","description":"Unique identifier for the Transfer","schema":{"example":"tr_z1urYtVFgEebtcj8fxp4v","type":"string"}},{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferStatusDto"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiForbiddenRequestErrorAlias"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Retrieve a transfer's status","tags":["Transfers"]}},"/subscription-intents":{"post":{"description":"Starts a card-on-file enrollment and returns the enrollment payment with the action the customer must complete. Poll its outcome with GET /subscription-intents/{id}/status.","operationId":"SubscriptionIntentsController_create","parameters":[{"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"}},{"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"}},{"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"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSubscriptionIntentDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionIntentResponseDto"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiBadRequestErrorAlias"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"403":{"description":"Card-on-file is disabled, or the merchant is not eligible (not registered in Côte d'Ivoire)."},"404":{"description":"The authenticated merchant could not be resolved."},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Enroll a customer in card-on-file recurring debits","tags":["Subscription Intents"]}},"/subscription-intents/{id}/status":{"get":{"description":"Resolves how an enrollment ended, at any point after its link was issued — so \"the payer abandoned it\", \"it was refused\" and \"it broke on our side\" are distinguishable. Enrollments created before this endpoint shipped have no attempt record and still answer 404.","operationId":"SubscriptionIntentsController_getEnrollmentStatus","parameters":[{"name":"id","required":true,"in":"path","description":"Id of the enrollment payment returned by POST /subscription-intents.","schema":{"type":"string"}},{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnrollmentStatusResponseDto"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"404":{"description":"No enrollment with this id belongs to the authenticated merchant in this mode."},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Retrieve a card-on-file enrollment status","tags":["Subscription Intents"]}},"/subscriptions":{"get":{"operationId":"SubscriptionsController_list","parameters":[{"name":"page","required":false,"in":"query","description":"The page number in the returned data. The default value is 1.\n    Do use with 'perPage' query parameter to paginate properly.","schema":{"example":2,"type":"number"}},{"name":"perPage","required":false,"in":"query","description":"The maximum number of results that will be return. The default value is 10.\n    Do use with 'page' query parameter to paginate properly.","schema":{"example":5,"type":"number"}},{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"headers":{"Content-Range":{"description":"Indicate the response's range. Follow the format : start-end/total","example":"5-9/16","schema":{"type":"string"}}},"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SubscriptionResponseDto"}}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Retrieve a Subscription collection","tags":["Subscriptions"]}},"/subscriptions/{id}/cancel":{"post":{"operationId":"SubscriptionsController_cancel","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}},{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionResponseDto"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiForbiddenRequestErrorAlias"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"409":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInvalidRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Cancel a subscription (terminal, no refund/proration)","tags":["Subscriptions"]}},"/subscriptions/{id}/suspend":{"post":{"operationId":"SubscriptionsController_suspend","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}},{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionResponseDto"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiForbiddenRequestErrorAlias"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"409":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInvalidRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Suspend a subscription","tags":["Subscriptions"]}},"/compliance/kyb/{name}":{"get":{"operationId":"ComplianceController_getKyb","parameters":[{"name":"name","required":true,"in":"path","description":"Name of the aggregated merchant declared in the kyb.","schema":{"type":"string"}},{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KybDto"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Retrieve a kyb by name","tags":["Compliance"]},"put":{"operationId":"ComplianceController_updateKyb","parameters":[{"name":"name","required":true,"in":"path","description":"Name of the aggregated merchant declared in the kyb.","schema":{"type":"string"}},{"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"}},{"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"}},{"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"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateKybDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KybDto"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"409":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInvalidRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Update a kyb","tags":["Compliance"]},"delete":{"operationId":"ComplianceController_deleteKyb","parameters":[{"name":"name","required":true,"in":"path","description":"Name of the aggregated merchant declared in the kyb.","schema":{"type":"string"}},{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KybDto"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Delete a kyb","tags":["Compliance"]}},"/compliance/kyb":{"get":{"operationId":"ComplianceController_getKybList","parameters":[{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/KybDto"}}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Fetch a kyb list","tags":["Compliance"]},"post":{"operationId":"ComplianceController_createKyb","parameters":[{"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"}},{"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"}},{"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"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateKybDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KybDto"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiBadRequestErrorAlias"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"409":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInvalidRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Create a kyb","tags":["Compliance"]}},"/compliance/transaction":{"post":{"operationId":"ComplianceController_createKybTransaction","parameters":[{"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"}},{"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"}},{"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"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitiateKybTransactionDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KybTransactionDto"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiBadRequestErrorAlias"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"409":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInvalidRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Create a kyb transaction","tags":["Compliance"]},"get":{"operationId":"ComplianceController_getKybTransactionList","parameters":[{"name":"merchantId","required":false,"in":"query","description":"The id identifying the merchant","schema":{"example":"156","type":"string"}},{"name":"name","required":false,"in":"query","description":"Name of the aggregated merchant declared in a kyb","schema":{"example":"Example merchant","type":"string"}},{"name":"reference","required":false,"in":"query","description":"The reference of the kyb transaction (unique per merchantId)","schema":{"example":"ref_<merhcantId>_<name>/<anything>","type":"string"}},{"name":"from","required":false,"in":"query","description":"A date in UTC timezone to filters data from, inclusively.\n    Follows the [Datetime ISO](https://en.wikipedia.org/wiki/ISO_8601).\n    The default value is the first day of this month.","schema":{"example":"2020-10-15T12:09:49.355Z","type":"string"}},{"name":"to","required":false,"in":"query","description":"A date in UTC timezone to filters data to, inclusively.\n     Follows the [Datetime ISO](https://en.wikipedia.org/wiki/ISO_8601).\n     The default value is now().","schema":{"example":"2020-10-15T12:09:49.355Z","type":"string"}},{"name":"status","required":false,"in":"query","description":"Status of a kyb transaction. It can be eithet 'created' or 'validated'","schema":{"example":"created","type":"string","enum":["created","pending","rejected","validated"]}},{"name":"isKybDeleted","required":false,"in":"query","description":"Either the kyb transaction is related to a deleted kyb or not","schema":{"example":true,"type":"boolean"}},{"name":"perPage","required":false,"in":"query","description":"The maximum number of results that will be return. The default value is 10.\n    Do use with 'page' query parameter to paginate properly.","schema":{"example":5,"type":"number"}},{"name":"page","required":false,"in":"query","description":"The page number in the returned data. The default value is 1.\n    Do use with 'perPage' query parameter to paginate properly.","schema":{"example":2,"type":"number"}},{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/KybTransactionDto"}}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Fetch a kyb transactions list","tags":["Compliance"]}},"/compliance/transaction/{reference}":{"get":{"operationId":"ComplianceController_getKybTransaction","parameters":[{"name":"reference","required":true,"in":"path","description":"Reference of the kyb transaction to retrieve.","schema":{"type":"string"}},{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KybTransactionDto"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Retrieve a kyb transaction by reference","tags":["Compliance"]},"delete":{"operationId":"ComplianceController_deleteKybTransaction","parameters":[{"name":"reference","required":true,"in":"path","description":"Reference of the kyb transaction to retrieve.","schema":{"type":"string"}},{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"description":""},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Delete a kyb transaction","tags":["Compliance"]}},"/compliance/kyc":{"get":{"operationId":"ComplianceController_getKyc","parameters":[{"name":"transactionType","required":true,"in":"query","description":"The type of the transaction","schema":{"example":"transfer","type":"string"}},{"name":"provider","required":true,"in":"query","description":"The name of the destination provider","schema":{"example":"orange","type":"string"}},{"name":"country","required":true,"in":"query","description":"The country of the transaction","schema":{"example":"CI","type":"string"}},{"name":"method","required":true,"in":"query","description":"The destination type","schema":{"example":"mobile money","type":"string","enum":["mobile_money","bank_transfer","airtime"]}},{"name":"identifier","required":true,"in":"query","description":"The identifier of the destination, mobile number or bank account number","schema":{"example":"+22500000001","type":"string"}},{"name":"reference","required":true,"in":"path","description":"Reference of the kyb transaction to retrieve.","schema":{}},{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KycInformation"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}},"501":{"description":"Not implemented","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotImplementedErrorAlias"}}}}},"summary":"Get kyc information","tags":["Compliance"]}},"/recipient":{"get":{"operationId":"RecipientController_list","parameters":[{"name":"bankName","required":false,"in":"query","description":"Only recipients using the given bank name.","schema":{"type":"string"}},{"name":"bankCode","required":false,"in":"query","description":"Only recipients using the given bank code.","schema":{"type":"string"}},{"name":"provider","required":false,"in":"query","description":"Only recipients using the given provider.","schema":{"type":"string"}},{"name":"search","required":false,"in":"query","description":"Search string used in firstname and lastname","schema":{"type":"string"}},{"name":"firstname","required":false,"in":"query","description":"Recipient firstname","schema":{"type":"string"}},{"name":"lastname","required":false,"in":"query","description":"Recipient lastname","schema":{"type":"string"}},{"name":"company","required":false,"in":"query","description":"Recipient company","schema":{"type":"string"}},{"name":"country","required":false,"in":"query","description":"Recipient country","schema":{"type":"string"}},{"name":"type","required":false,"in":"query","description":"Recipient type","schema":{"type":"string","enum":["mobile","bank"]}},{"name":"msisdn","required":false,"in":"query","description":"Only recipients having the given msisdn","schema":{"type":"string"}},{"name":"iban","required":false,"in":"query","description":"Only recipients having the given iban.","schema":{"type":"string"}},{"name":"page","required":true,"in":"query","description":"Page number starting from 1","schema":{"example":1,"type":"number"}},{"name":"limit","required":true,"in":"query","description":"Number of items per page","schema":{"minimum":1,"maximum":100,"example":10,"type":"number"}},{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"headers":{"Link":{"description":"Contains URLs pointing to prev, next, first or last page of results.","example":"<https://api.hub2.io/api/recipient?limit=10&page=1>; rel=\"first\", <https://api.hub2.io/api/recipient?limit=10&page=2>; rel=\"prev\", <https://api.hub2.io/api/recipient?limit=10&page=4>; rel=\"next\", <https://api.hub2.io/api/recipient?limit=10&page=10>; rel=\"last\"","schema":{"type":"string"}}},"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RecipientDto"}}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Retrieve a list of recipients according to filters","tags":["Recipient"]},"post":{"operationId":"RecipientController_create","parameters":[{"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"}},{"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"}},{"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"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitiateRecipientCreationDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecipientDto"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Create a new recipient","tags":["Recipient"]}},"/recipient/{id}":{"get":{"operationId":"RecipientController_read","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecipientDto"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Get a recipient by id","tags":["Recipient"]},"delete":{"operationId":"RecipientController_delete","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"description":""},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Delete a recipient by id","tags":["Recipient"]}},"/deposits/proof-upload-uri":{"get":{"description":"Returns a pre-signed URL to upload a deposit proof file directly to the storage, and the blob name to reference when submitting the proof.","operationId":"DepositController_getProofUploadUri","parameters":[{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProofUploadUriDto"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiForbiddenRequestErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Get a proof upload URL","tags":["Deposits"]}},"/deposits/{id}":{"get":{"description":"This endpoint allows you to get a deposit by its ID.","operationId":"DepositController_getDeposit","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DepositDto"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiForbiddenRequestErrorAlias"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Get a deposit","tags":["Deposits"]}},"/deposits":{"get":{"description":"This endpoint allows you to list deposits.","operationId":"DepositController_listDeposits","parameters":[{"name":"merchantId","required":false,"in":"query","description":"Filter by merchant ID","schema":{"example":"876","type":"string"}},{"name":"currency","required":false,"in":"query","description":"Filter by currency","schema":{"example":"XOF","type":"string"}},{"name":"minAmount","required":false,"in":"query","description":"Minimum deposit amount","schema":{"example":1000,"type":"string"}},{"name":"maxAmount","required":false,"in":"query","description":"Maximum deposit amount","schema":{"example":5000,"type":"string"}},{"name":"provider","required":false,"in":"query","description":"Filter by provider name","schema":{"example":"ecobank","type":"string"}},{"name":"accountType","required":false,"in":"query","description":"Filter by account type","schema":{"type":"string","enum":["collection","transfer","transfer-irt","cross-border"]}},{"name":"from","required":false,"in":"query","description":"Start date (ISO 8601)","schema":{"example":"2024-01-01T00:00:00Z","type":"string"}},{"name":"to","required":false,"in":"query","description":"End date (ISO 8601)","schema":{"example":"2024-12-31T23:59:59Z","type":"string"}},{"name":"status","required":false,"in":"query","description":"Filter by status","schema":{"example":"failed","type":"string","enum":["created","failed","pending","successful"]}},{"name":"filterBy","required":false,"in":"query","description":"Variable that will be use for ordering and filtering. Can be updatedAt or createdAt. default is updatedAt","schema":{"example":"createdAt","type":"string"}},{"name":"matchingCode","required":false,"in":"query","description":"Only transactions matching the given matching code.","schema":{"type":"string"}},{"name":"mode","required":false,"in":"query","description":"Only transactions matching the given mode.","schema":{"default":"live","example":"live","type":"string","enum":["live","sandbox"]}},{"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"}},{"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"}},{"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"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DepositDto"}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiBadRequestErrorAlias"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiForbiddenRequestErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"List deposits","tags":["Deposits"]},"post":{"description":"This endpoint allows you to create a deposit.","operationId":"DepositController_createDeposit","parameters":[{"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"}},{"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"}},{"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"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDepositDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DepositDto"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInvalidInputErrorAlias"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiForbiddenRequestErrorAlias"}}}},"409":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInvalidRequestErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Create a deposit","tags":["Deposits"]}},"/deposits/{id}/proof":{"post":{"description":"This endpoint allows you to submit a proof for a deposit","operationId":"DepositController_submitProof","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"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"}},{"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"}},{"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"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DepositProofDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DepositDto"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiBadRequestErrorAlias"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiForbiddenRequestErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Submit a proof","tags":["Deposits"]},"get":{"description":"Retrieve and stream the deposit proof image","operationId":"DepositController_getProof","parameters":[{"name":"id","required":true,"in":"path","description":"The deposit ID","schema":{"type":"string"}}],"responses":{"200":{"description":"Proof image streamed successfully"},"404":{"description":"Deposit or proof not found"}},"summary":"Get deposit proof image","tags":["Deposits"]}},"/delegated/transfers":{"post":{"description":"This endpoint allows you to make a transfer (PAY-OUT) using your own provider credentials.","operationId":"DelegationController_createDelegatedTransfer","parameters":[{"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"}},{"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"}},{"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"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatedDelegatedTransferDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferDtoAlias"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInvalidInputErrorAlias"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiForbiddenRequestErrorAlias"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotFoundErrorAlias"}}}},"409":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInvalidRequestErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Create a delegated Transfer","tags":["Delegation"]}},"/delegated/transfers/irt":{"post":{"description":"Make an IRT transfer using your own provider credentials.","operationId":"DelegationController_createDelegatedTransferIrt","parameters":[{"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"}},{"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"}},{"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"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatedDelegatedTransferIrtDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferDto"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInvalidInputErrorAlias"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Create a delegated IRT transfer","tags":["Delegation"]}},"/delegated/payments":{"post":{"description":"This endpoint allows you to make a payment using your own provider credentials.","operationId":"DelegationController_createDelegatedPayment","parameters":[{"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"}},{"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"}},{"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"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DelegatedPaymentDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentIntentDto"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInvalidInputErrorAlias"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiForbiddenRequestErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Create a delegated payment","tags":["Delegation"]}},"/delegated/payments/sync":{"post":{"description":"This endpoint allows you to make a synchronous payment using your own provider credentials.","operationId":"DelegationController_createDelegatedSyncPayment","parameters":[{"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"}},{"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"}},{"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"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DelegatedPaymentDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentIntentDto"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInvalidInputErrorAlias"}}}},"401":{"description":"Wrong credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUnauthorizedErrorAlias"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiForbiddenRequestErrorAlias"}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTooManyRequestErrorAlias"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInternalErrorAlias"}}}}},"summary":"Create a delegated synchronous payment","tags":["Delegation"]}}},"info":{"title":"Hub2 Service · Api","description":"This is the Hub2 api reference |\n      Please check https://docs.hub2.io/ for the full documentation |\n      Rate limits of endpoints are here : https://docs.hub2.io/en/details/limits.html.","version":"2.176.0","contact":{"name":"Hub2","url":"https://www.hub2.io/","email":"contact@hub2.io"}},"tags":[{"name":"Payments","description":"Best known as the PAY-IN API, it provides endpoints for merchants to perform Hub2 PAY-IN transactions."},{"name":"Transfers","description":"Best known as the PAY-OUT API, it provides endpoints for merchants to perform Hub2 PAY-OUT transactions."},{"name":"IRT","description":"International Remittance Transfers"},{"name":"Balance","description":""},{"name":"Webhooks","description":""},{"name":"Provisioning","description":""},{"name":"Payment on Terminal","description":""},{"name":"Receipt","description":""},{"name":"Sms","description":""},{"name":"Data","description":""},{"name":"Compliance","description":""},{"name":"Recipient","description":""},{"name":"Delegation","description":""},{"name":"Deposits","description":""},{"name":"Payment Links","description":""},{"name":"Subscription Links","description":""},{"name":"Submerchants","description":""},{"name":"Bill Payments","description":""},{"name":"Subscriptions","description":""},{"name":"Subscription Intents","description":"Enrolls a customer in card-on-file recurring debits and tracks how each enrollment ended."}],"servers":[],"components":{"schemas":{"CountryDto":{"type":"object","properties":{"id":{"type":"string","description":"Id of the country","example":"co_9emDKLlFsYRNWOPiG4pnK"},"code":{"type":"string","description":"The code of the country. Follows the ISO 3166-1 alpha-2","example":"SN"},"name":{"type":"string","description":"Name of the country","example":"Sénégal"}},"required":["id","code","name"]},"InternalApiBadRequestError":{"type":"object","properties":{"statusCode":{"type":"number","description":"HTTP error code.","example":400},"message":{"description":"Detailed error message or array of messages to describe what's wrong.","example":["destination.provider must be a string"],"type":"array","items":{"type":"string"}},"error":{"type":"string","description":"The error message","example":"Bad Request"}},"required":["statusCode","message","error"]},"ApiBadRequestErrorAlias":{"type":"object","properties":{"status":{"type":"number","description":"HTTP error code.","example":400},"error":{"description":"HTTP error description.","allOf":[{"$ref":"#/components/schemas/InternalApiBadRequestError"}]}},"required":["status","error"]},"ApiInternalErrorAlias":{"type":"object","properties":{"type":{"type":"string","description":"The type of this error.","example":"internal_error"},"code":{"type":"string","description":"The error code for this error.","example":["internal_error","wrong_credentials","not_granted","live_mode_not_granted"]},"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."}},"required":["type","code","message"]},"ProviderDto":{"type":"object","properties":{"id":{"type":"string","description":"Id of the provider","example":"pr_9kENiPPutAst3eAbAbVAQ"},"name":{"type":"string","description":"Name of the provider","example":"Orange"},"country":{"type":"string","description":"Country where the provider is deployed. Follows the ISO 3166-1 alpha-2","example":"CI"},"method":{"type":"string","description":"The payment method supported by the provider","enum":["mobile_money","credit_card","bank_transfer","instant_payment"],"example":"mobile_money"},"currency":{"type":"string","description":"The currency used by the provider. Follows the ISO 4217","example":"XOF"}},"required":["id","name","country","method","currency"]},"CreateWebhookDto":{"type":"object","properties":{"url":{"type":"string","description":"Fully qualified url, starting with https://, of the webhook endpoint.","example":"https://my.webhook.target"},"events":{"type":"array","description":"The list of events to enable for this endpoint.","example":["payment.created","payment_intent.created"],"items":{"type":"string","enum":["receipt.created","sms.created","sms.sent","sms.received","sms.failed","transfer.created","transfer.processing","transfer.succeeded","transfer.failed","transfer_irt.created","transfer_irt.processing","transfer_irt.succeeded","transfer_irt.failed","deposit.created","deposit.pending","deposit.success","deposit.failed","payment_intent.created","payment_intent.processing","payment_intent.succeeded","payment_intent.action_required","payment_intent.payment_failed","payment.created","payment.pending","payment.succeeded","payment.action_required","payment.failed","provisioning.created","provisioning.succeeded","provisioning.failed","refund.created","refund.pending","refund.pending_manual","refund.failed","refund.successful","payment_refund.created","payment_refund.pending","payment_refund.pending_manual","payment_refund.failed","payment_refund.successful","transaction.payment_collected","transaction.deposit","provider.wave","payment_links.created","payment_links.expired","payment_links.completed","payment_links.closed","payment_links.paid","submerchant.created","submerchant.updated","bill_payment.collected","bill_payment.succeeded","bill_payment.settlement_failed","sender.created","sender.approved","sender.rejected","sender.review_required","cross_border_transaction.successful","cross_border_transaction.failed","cross_border_transaction.compliance_review","cross_border_transaction.created","cross_border_transaction.pending","cross_border_transaction.pending_manual","cross_border_transaction.cancelled","subscription.created","subscription.cancelled","subscription.suspended","settlement_request.submitted","settlement_request.processing","settlement_request.funds_sent","settlement_request.confirmed","settlement_request.rejected"]}},"description":{"type":"string","description":"An optional description of what the webhook is used for.","example":"This is a webhook trigger upon payment & payment_intent creation"},"metadata":{"type":"object","description":"Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.","example":{}}},"required":["url","events"]},"WebhookDtoAlias":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the Webhook","example":"wh_z1urYtVFgEebtcj8fxp4v"},"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"},"updatedAt":{"type":"string","description":"Datetime in UTC timezone at which this object was updated.\n     Follows the [Datetime ISO](https://en.wikipedia.org/wiki/ISO_8601).","example":"2020-10-15T12:09:49.355Z"},"mode":{"type":"string","description":"Mode in which this Webhook 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"]},"description":{"type":"string","description":"An optional description of what the webhook is used for.","example":"This is a webhook trigger upon payment & payment_intent creation"},"events":{"description":"The list of events to enable for this endpoint.","example":["payment.created","payment_intent.created"],"type":"array","items":{"type":"string"}},"metadata":{"type":"object","description":"Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.","example":{}},"secret":{"type":"string","description":"The endpoint’s secret, used to generate webhook signatures. Only returned at creation.","example":"5257a869e7ecebeda32affa62cd..."},"status":{"type":"string","description":"The webhook status","example":"enabled","enum":["enabled","disabled"]},"url":{"type":"string","description":"Fully qualified url of the webhook endpoint.","example":"https://my.webhook.target"}},"required":["id","createdAt","updatedAt","mode","events","metadata","status","url"]},"InternalApiUnauthorizedError":{"type":"object","properties":{"type":{"type":"string","description":"The type of this error.","example":"authorization_error"},"code":{"type":"string","description":"The internal error code describing what happened.","enum":["bad_payment_intent_token","wrong_credentials"],"example":"wrong_credentials"},"message":{"type":"string","description":"Detailed error message which describe what happened.","example":"L'ID marchand et/ou la clé d'API sont incorrects."}},"required":["type","code","message"]},"ApiUnauthorizedErrorAlias":{"type":"object","properties":{"status":{"type":"number","description":"HTTP error code.","example":401},"error":{"description":"HTTP error description.","allOf":[{"$ref":"#/components/schemas/InternalApiUnauthorizedError"}]}},"required":["status","error"]},"ApiNotFoundErrorAlias":{"type":"object","properties":{"httpStatus":{"type":"number","description":"Http status","enum":[404],"example":404},"message":{"type":"string","description":"Detailed error message which describe what happened.","example":"X not found"},"error":{"type":"string","description":"Error message","example":"Not found"}},"required":["httpStatus","message","error"]},"UpdateWebhookDto":{"type":"object","properties":{"url":{"type":"string","description":"Fully qualified url of the webhook endpoint.","example":"https://my.webhook.target"},"description":{"type":"string","description":"An optional description of what the webhook is used for.","example":"This is a webhook trigger upon payment & payment_intent creation"},"events":{"description":"The list of events to enable for this endpoint.","example":["payment.created","payment_intent.created"],"type":"array","items":{"type":"string"}},"metadata":{"type":"object","description":"Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.","example":{}},"status":{"type":"string","description":"new webhook status","example":"enabled"}},"required":["status"]},"RefundRequestDto":{"type":"object","properties":{"id":{"type":"string","description":"The ID of the transfer to refund","example":"tr_R7xkvVd5gRfBCWQCYrWEt"}},"required":["id"]},"CreateRefundResponseDto":{"type":"object","properties":{"id":{"type":"number","description":"The ID of the refund","example":1}},"required":["id"]},"ForbiddenErrorObject":{"type":"object","properties":{"statusCode":{"type":"number","description":"Http status","enum":[403],"example":403},"message":{"type":"string","description":"Detailed error message","example":"Forbidden"},"error":{"type":"string","description":"Error name"}},"required":["statusCode","message","error"]},"ApiForbiddenRequestErrorAlias":{"type":"object","properties":{"status":{"type":"number","description":"status","enum":[403],"example":403},"error":{"description":"Error object","allOf":[{"$ref":"#/components/schemas/ForbiddenErrorObject"}]}},"required":["status","error"]},"ApiInvalidRequestErrorAlias":{"type":"object","properties":{"httpStatus":{"type":"number","description":"Http status","enum":[409],"example":409},"type":{"type":"string","description":"Error type","example":"invalid_request"},"code":{"type":"string","description":"Error code","enum":["unsupported_action"],"example":"unsupported_action"},"message":{"type":"string","description":"Error message","example":"This action is not supported"}},"required":["httpStatus","type","code","message"]},"ApiTooManyRequestErrorAlias":{"type":"object","properties":{"status":{"type":"number","description":"status","enum":[429],"example":429},"error":{"type":"string","description":"Error","example":"ThrottlerException: Too Many Requests"}},"required":["status","error"]},"CreatePaymentRefundRequestDto":{"type":"object","properties":{"amount":{"type":"number","description":"The amount to refund","example":100},"reasonCode":{"type":"string","description":"The reason for the refund","example":"customer_request"},"reasonDetails":{"type":"string","description":"The details of the reason for the refund","example":"Customer requested a refund"}},"required":["amount","reasonCode","reasonDetails"]},"CreatePaymentRefundResponseDto":{"type":"object","properties":{"id":{"type":"number","description":"The payment refund record id","example":2}},"required":["id"]},"RefundFailureCauseDto":{"type":"object","properties":{}},"GetPaymentRefundStatusResponseDto":{"type":"object","properties":{"status":{"type":"string","description":"The refund status","example":"created","enum":["created","pending","pending_manual","failed","successful"]},"failureCause":{"description":"Failure details, only present when status is failed","allOf":[{"$ref":"#/components/schemas/RefundFailureCauseDto"}]}},"required":["status"]},"CollectionBalanceDtoAlias":{"type":"object","properties":{"amount":{"type":"number","description":"Deprecated. Prefer usage of \"availableBalance\".  Balance amount. A positive integer in the smallest currency unit (e.g., 100 cents represents €1.00 or 100 represents FCFA100, a zero-decimal currency).","example":100,"deprecated":true},"availableBalance":{"type":"number","description":"Balance amount. A positive integer in the smallest currency unit (e.g., 100 cents represents €1.00 or 100 represents FCFA100, a zero-decimal currency).","example":100},"currency":{"type":"string","description":"Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html).","example":"XOF"},"date":{"type":"string","description":"Datetime in UTC timezone at which the balance was successfully retrieved.\n      Follows the [Datetime ISO](https://en.wikipedia.org/wiki/ISO_8601).","example":"2020-10-15T12:16:26.128Z"}},"required":["amount","availableBalance","currency","date"]},"TransferBalanceDtoAlias":{"type":"object","properties":{"availableBalance":{"type":"number","description":"Funds immediately available on the account.\n    A positive integer in the smallest currency unit (e.g., 100 cents represents €1.00 or 100 represents FCFA100, a zero-decimal currency).","example":100},"reservedBalance":{"type":"number","description":"Funds currently reserved for processing transactions. According to the result of the transactions, a part of the reserved funds can be released and returned available.\n    A positive integer in the smallest currency unit (e.g., 100 cents represents €1.00 or 100 represents FCFA100, a zero-decimal currency).","example":100},"currency":{"type":"string","description":"Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html).","example":"XOF"},"date":{"type":"string","description":"Datetime in UTC timezone at which the balance was successfully retrieved.\n      Follows the [Datetime ISO](https://en.wikipedia.org/wiki/ISO_8601).","example":"2020-10-15T12:16:26.128Z"},"amount":{"type":"number","description":"Balance amount. A positive integer in the smallest currency unit (e.g., 100 cents represents €1.00 or 100 represents FCFA100, a zero-decimal currency).","example":100}},"required":["availableBalance","reservedBalance","currency","date","amount"]},"BalancesDto":{"type":"object","properties":{"collectionAccount":{"description":"Collection account balance(s). Absent when the merchant holds no collection account, or when `accountType` excludes it.","type":"array","items":{"$ref":"#/components/schemas/CollectionBalanceDtoAlias"}},"transferAccount":{"description":"Transfer account balance(s). Absent when the merchant holds no transfer account, or when `accountType` excludes it.","type":"array","items":{"$ref":"#/components/schemas/TransferBalanceDtoAlias"}},"transferIrtAccount":{"description":"IRT Transfer account balance(s). Absent when the merchant holds no IRT transfer account, or when `accountType` excludes it.","type":"array","items":{"$ref":"#/components/schemas/TransferBalanceDtoAlias"}},"crossBorderAccount":{"description":"Cross-border float balance(s) — the funds backing cross-border payouts.\n      Derived from the event-sourced cross-border account: `availableBalance` already excludes the float\n      reserved by transactions still in flight, which is reported separately as `reservedBalance`.\n      A currency whose balance has fallen back to zero is still returned, so a zero balance can be told\n      apart from a currency that was never funded.\n      Absent when the merchant holds no cross-border account, or when `accountType` excludes it.","type":"array","items":{"$ref":"#/components/schemas/TransferBalanceDtoAlias"}}}},"CustomerFieldDto":{"type":"object","properties":{"fieldName":{"type":"string","description":"Field identifier in snake_case","example":"national_id"},"fieldLabel":{"type":"string","description":"Human-readable label shown to the payer","example":"National ID","maxLength":100},"fieldPlaceholder":{"type":"string","description":"Optional input placeholder text","maxLength":200},"fieldType":{"type":"string","enum":["text","integer","decimal","email","date"],"description":"Expected value type for validation and input rendering"},"isRequired":{"type":"boolean","description":"Whether the payer must fill this field before proceeding"}},"required":["fieldName","fieldLabel","fieldType","isRequired"]},"CreatePaymentLinkDto":{"type":"object","properties":{"openAmount":{"type":"boolean","description":"When true, the payer decides the amount at payment time. amount must be omitted when this is true.","example":false},"amount":{"type":"number","description":"Amount intended to be charged in the smallest currency unit. Required when openAmount is false or omitted.","example":1000,"minimum":1},"minAmount":{"type":"number","description":"Minimum amount the payer can enter (only relevant when openAmount is true).","example":500,"minimum":1},"maxAmount":{"type":"number","description":"Maximum amount the payer can enter (only relevant when openAmount is true).","example":100000,"minimum":1},"currency":{"type":"string","description":"Three-letter ISO 4217 currency code","example":"XOF"},"purchaseReference":{"type":"string","description":"Merchant reference for the payment (collection ID for multi_use links)","example":"ORDER-12345"},"type":{"type":"string","description":"Defaults to single_use when omitted. multi_use allows multiple successful payments until optional maximumPayments or expiration.","enum":["single_use","multi_use","bill_payment"],"example":"multi_use"},"maximumPayments":{"type":"number","description":"Maximum successful payments for multi_use links. Omit for unlimited. Ignored for single_use (always one success).","example":50,"minimum":1},"providers":{"description":"List of supported providers","example":["orange","mtn"],"type":"array","items":{"type":"string"}},"paymentMethods":{"type":"array","description":"Payment method","example":["mobile_money"],"items":{"type":"string","enum":["mobile_money","credit_card","bank_transfer","instant_payment"]}},"country":{"type":"string","description":"Two-letter ISO 3166-1 alpha-2 country code","example":"CI"},"expirationDate":{"type":"string","description":"Expiration date for the payment link (default: 15 minutes from creation)","example":"2025-10-15T14:30:00.000Z"},"successUrl":{"type":"string","description":"URL to redirect to after successful payment","example":"https://merchant.com/success"},"failureUrl":{"type":"string","description":"URL to redirect to after failed payment","example":"https://merchant.com/failure"},"customerPhoneNumber":{"type":"string","description":"Customer phone number for the payment (optional)","example":"12345678"},"description":{"type":"string","description":"Description for the payment (optional)","example":"Payment for order 1234567890"},"customerFields":{"description":"Custom form fields shown to payer before payment method selection (max 5). Immutable after creation.","maxItems":5,"type":"array","items":{"$ref":"#/components/schemas/CustomerFieldDto"}}},"required":["currency","purchaseReference","providers","paymentMethods","country","successUrl","failureUrl"]},"PaymentLinkDto":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the payment link","example":"pl_z1urYtVFgEebtcj8fxp4v"},"url":{"type":"string","description":"URL for the payment link","example":"https://pay.hub2.com/pl_z1urYtVFgEebtcj8fxp4v"},"status":{"type":"string","description":"Current status of the payment link","enum":["active","expired","closed","completed"],"example":"active"},"purchaseReference":{"type":"string","description":"Merchant reference for the payment","example":"ORDER-12345"},"amount":{"type":"object","description":"Amount intended to be charged in the smallest currency unit. Null when openAmount is true.","example":1000,"nullable":true},"openAmount":{"type":"boolean","description":"When true, the payer decides the amount at payment time.","example":false},"minAmount":{"type":"number","description":"Minimum amount the payer can enter (only when openAmount is true).","example":500},"maxAmount":{"type":"number","description":"Maximum amount the payer can enter (only when openAmount is true).","example":100000},"currency":{"type":"string","description":"Three-letter ISO 4217 currency code","example":"XOF"},"maximumPayments":{"type":"number","description":"Maximum successful payments allowed (omitted when unlimited multi_use)","example":50},"currentSuccessCount":{"type":"number","description":"Number of successful payments recorded for this link","example":0},"maximumAttempts":{"type":"number","description":"Maximum number of failed payments allowed per user","example":3},"createdAt":{"type":"string","description":"Creation date in ISO 8601 format","example":"2024-01-15T12:00:00.000Z"},"updatedAt":{"type":"string","description":"Last update date in ISO 8601 format","example":"2024-01-15T12:30:00.000Z"},"expirationDate":{"type":"string","description":"Expiration date in ISO 8601 format","example":"2024-01-15T14:30:00.000Z"},"customerPhoneNumber":{"type":"string","description":"Restricted MSISDN","example":"123456789"},"type":{"type":"string","description":"Type of the payment link","enum":["single_use","multi_use","bill_payment"],"example":"single_use"},"customerFields":{"description":"Custom form fields defined on this payment link. Absent when the link has no customer fields.","type":"array","items":{"$ref":"#/components/schemas/CustomerFieldDto"}}},"required":["id","url","status","purchaseReference","amount","currency","currentSuccessCount","maximumAttempts","createdAt","updatedAt","expirationDate","customerPhoneNumber","type"]},"ApiInvalidInputErrorAlias":{"type":"object","properties":{"status":{"type":"number","description":"HTTP status.","enum":[400],"example":400},"code":{"type":"string","description":"The error code, e.g. `wrong_provider`, `invalid_url`, `invalid_sandbox_msisdn`, `credit_card_fees_not_supported`, `override_business_id`, `override_business_name`, `signature_error`, `merchant_not_found`, `payment_information.recipient_phone_plain_forbidden`, `transfer_information.recipient_phone_plain_forbidden`, `forbidden_special_chars`, `ci.mtn.description_too_big`. `Bad Request` for DTO validation failures and other uncoded 400s.","example":"wrong_provider"},"message":{"description":"What is wrong with the request. An array of messages when the payload fails DTO validation.","oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"example":"Provider 'unknown_provider' does not exist for country 'CI' and method 'mobile_money'."},"request_id":{"type":"string","description":"Identifier of the request, to quote when contacting the Support team."}},"required":["status","code","message","request_id"]},"PaymentFailureCauseDto":{"type":"object","properties":{"code":{"type":"string","description":"Unique code representing the failure cause for the payment.","enum":["internal_error","service_unavailable","unknown_reason","customer_account_locked","customer_insufficient_funds","authentication_failed","authentication_timeout","issuer_authentication_unavailable","timeout","bad_parameters","forbidden_by_provider","too_many_request","duplicate_request","canceled_by_customer","canceled","fraud_suspicion","unsupported_currency","payer_quota_exceeded","invalid_payment_processor","invalid_amount","blacklisted_msisdn","msisdn_invalid","card_expired","card_declined","card_stolen","card_refused","card_invalid","card_cvn_invalid","address_verification_failed","payment_limit_reached","reconciliation_failure"]},"message":{"type":"string","description":"Human readable message explaining the failure cause. This message can be displayed to the customer."},"params":{"description":"List of parameters causing the payment failure in case of invalid parameters","type":"array","items":{"type":"string"}}},"required":["code","message"]},"PaymentFeeTaxResponseDto":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the applied tax.","example":"tax_lAe5HnFpvOjwdT9vSIgPA"},"feeId":{"type":"string","description":"Identifier of the Fee this tax applies to.","example":"fee_lAe5HnFpvOjwdT9vSIgPA"},"taxType":{"type":"string","description":"Kind of tax applied.","enum":["tva"],"example":"tva"},"type":{"type":"string","description":"How the tax amount was computed: a flat amount, or a percentage included in the fee amount.","enum":["flat","percent"],"example":"percent"},"value":{"type":"number","description":"Tax amount, not rounded. For a `percent` tax it is the tax part of this fee, in the smallest currency unit, computed on a base that may differ from the one `amount` uses, so it may not match the tax contained in `amount`. For a `flat` tax it is the configured tax amount as is.","example":3.813559322033896}},"required":["id","feeId","taxType","type","value"]},"PaymentFeeDto":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the applied Fee object.","example":"fee_lAe5HnFpvOjwdT9vSIgPA"},"rate":{"type":"number","description":"A rate corresponding to the amount (flat or percentage) applied by the fees."},"rateType":{"type":"string","description":"Fees can either be a flat amount of the transaction amount or percentage of the transaction amount.","enum":["percent","flat"]},"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},"currency":{"type":"string","description":"Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html).","example":"XOF"},"label":{"type":"string","description":"An optional label giving information on the reason of this fees."},"taxes":{"description":"Taxes applied to this fee.","type":"array","items":{"$ref":"#/components/schemas/PaymentFeeTaxResponseDto"}}},"required":["id","rate","rateType","amount","currency"]},"RedirectionDataDto":{"type":"object","properties":{"url":{"type":"string","description":"A fully qualified URL where the customer must be redirected to pursue the payment."},"urls":{"type":"string","description":"An array of fully qualified URLs where the customer must be redirected to pursue the payment."},"method":{"type":"string","description":"HTTP verb to be used to redirect the customer.","example":"post"},"headers":{"type":"object","description":""},"data":{"type":"object","description":"Data that need to be used to make the redirection. It could be parameters for a GET request or a body payload for a POST."}},"required":["url","urls","method"]},"NextActionDto":{"type":"object","properties":{"type":{"type":"string","enum":["ussd","otp","redirection"]},"message":{"type":"string"},"data":{"description":"","allOf":[{"$ref":"#/components/schemas/RedirectionDataDto"}]}},"required":["type","message"]},"PaymentInformationDto":{"type":"object","properties":{"recipient_name_hashmac":{"type":"string","description":"HMAC or hashed full name of the person receiving the funds. Send only hashed or pseudonymized values; do not send raw personal data.","example":"a1b2c3d4e5f6","maxLength":50},"recipient_phone_hashmac":{"type":"string","description":"HMAC or hashed MSISDN of the recipient (natural identifier for mobile money). Send only a partner-side hash or HMAC — clear phone numbers are rejected.","example":"a1b2c3d4e5f6","maxLength":50},"customer_id_hashmac":{"type":"string","description":"Partner-side hashed customer identifier. Use when name or phone hashes are not available, to correlate transactions for fraud analysis.","example":"a1b2c3d4e5f6","maxLength":50},"transaction_purpose":{"type":"string","description":"Declared purpose of the payment for compliance and reporting.","enum":["SALARY","LOAN_DISBURSEMENT","COMMISSION","REFUND","CASHOUT","OTHER"]}}},"PaymentDto":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the Payment","example":"pay_QW2d6JnqiatcH8KhK0mD1"},"intentId":{"type":"string","description":"Unique identifier for the PaymentIntent owning this Payment","example":"pi_z1urYtVFgEebtcj8fxp4v"},"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"},"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"},"status":{"type":"string","description":"Current status of this Payment","enum":["created","failed","pending","successful"],"example":"successful"},"amount":{"type":"number","description":"Amount intended to be collected by this payment. 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},"currency":{"type":"string","description":"Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html).","example":"XOF"},"method":{"type":"string","description":"The method selected by the customer to make this Payment","example":"mobile_money","enum":["mobile_money","credit_card","bank_transfer","instant_payment"]},"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"},"failure":{"description":"In case of a Payment attempt failure, this object will describe the reason of the failure","title":"PaymentFailureCause","allOf":[{"$ref":"#/components/schemas/PaymentFailureCauseDto"}]},"fees":{"description":"Some fees may be applied on a Payment. This array provides information of the fees that could have been applied on this Payment.","title":"PaymentFee","type":"array","items":{"$ref":"#/components/schemas/PaymentFeeDto"}},"nextAction":{"description":"Action required to execute to continue the processing of this Payment. The action allows the customer to validate the Payment.\n    - A redirection action provides all the information to redirect the customer to an external page,\n    - A ussd action provides a message to display to the user for the validation of the Payment. He will receive a USSD message on his phone describing how to make the validation,\n    - A otp action requires that you display an input to the customer to collect an OTP. A message is provided to explains to the user how to get this OTP. Then, the client will have to send the authentication request.\n    ","title":"NextAction","allOf":[{"$ref":"#/components/schemas/NextActionDto"}]},"providerReference":{"type":"string","description":"provider reference that identify this payment","title":"providerReference"},"gatewayId":{"type":"string","description":"gatewayId used for this payment (Mobile Money Only)","title":"gatewayId"},"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,\n    - In case of a payment by Credit Card, it corresponds to the four last digits of the customer's credit card number."},"paymentInformation":{"description":"Optional beneficiary metadata (hashed identifiers) attached to this payment.","allOf":[{"$ref":"#/components/schemas/PaymentInformationDto"}]},"isDelegated":{"type":"boolean","description":"Indicates whether this payment is a delegated payment."}},"required":["id","intentId","createdAt","updatedAt","status","amount","currency","method","country","fees","providerReference","gatewayId","number"]},"PaymentLinkWithAttemptsDto":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the payment link","example":"pl_z1urYtVFgEebtcj8fxp4v"},"url":{"type":"string","description":"URL for the payment link","example":"https://pay.hub2.com/pl_z1urYtVFgEebtcj8fxp4v"},"status":{"type":"string","description":"Current status of the payment link","enum":["active","expired","closed","completed"],"example":"active"},"purchaseReference":{"type":"string","description":"Merchant reference for the payment","example":"ORDER-12345"},"amount":{"type":"object","description":"Amount intended to be charged in the smallest currency unit. Null when openAmount is true.","example":1000,"nullable":true},"openAmount":{"type":"boolean","description":"When true, the payer decides the amount at payment time.","example":false},"minAmount":{"type":"number","description":"Minimum amount the payer can enter (only when openAmount is true).","example":500},"maxAmount":{"type":"number","description":"Maximum amount the payer can enter (only when openAmount is true).","example":100000},"currency":{"type":"string","description":"Three-letter ISO 4217 currency code","example":"XOF"},"maximumPayments":{"type":"number","description":"Maximum successful payments allowed (omitted when unlimited multi_use)","example":50},"currentSuccessCount":{"type":"number","description":"Number of successful payments recorded for this link","example":0},"maximumAttempts":{"type":"number","description":"Maximum number of failed payments allowed per user","example":3},"createdAt":{"type":"string","description":"Creation date in ISO 8601 format","example":"2024-01-15T12:00:00.000Z"},"updatedAt":{"type":"string","description":"Last update date in ISO 8601 format","example":"2024-01-15T12:30:00.000Z"},"expirationDate":{"type":"string","description":"Expiration date in ISO 8601 format","example":"2024-01-15T14:30:00.000Z"},"customerPhoneNumber":{"type":"string","description":"Restricted MSISDN","example":"123456789"},"type":{"type":"string","description":"Type of the payment link","enum":["single_use","multi_use","bill_payment"],"example":"single_use"},"customerFields":{"description":"Custom form fields defined on this payment link. Absent when the link has no customer fields.","type":"array","items":{"$ref":"#/components/schemas/CustomerFieldDto"}},"paymentAttempts":{"description":"List of payment attempts for this payment link","type":"array","items":{"$ref":"#/components/schemas/PaymentDto"}}},"required":["id","url","status","purchaseReference","amount","currency","currentSuccessCount","maximumAttempts","createdAt","updatedAt","expirationDate","customerPhoneNumber","type","paymentAttempts"]},"CreateSubscriptionLinkDto":{"type":"object","properties":{"amount":{"type":"number","description":"Recurring debit amount charged on each occurrence.","example":5000,"minimum":1},"currency":{"type":"string","description":"Three-letter ISO 4217 currency code","example":"XOF"},"purchaseReference":{"type":"string","description":"Unique reference for this subscription","example":"SUB_2024_001","maxLength":100},"frequency":{"type":"string","description":"Recurring debit frequency.","enum":["weekly","monthly"],"example":"monthly"},"startDate":{"type":"string","description":"ISO-8601 date of the first recurring debit.","example":"2026-08-01"},"country":{"type":"string","description":"Two-letter ISO 3166-1 alpha-2 country code where the enrollment will be processed","example":"CI"},"description":{"type":"string","description":"Description of the subscription link","maxLength":300},"expirationDate":{"type":"string","description":"Expiration date for the enrollment link (ISO 8601 format)","example":"2026-12-31T23:59:59.000Z"},"successUrl":{"type":"string","description":"URL to redirect to after successful enrollment","example":"https://merchant.com/success"},"failureUrl":{"type":"string","description":"URL to redirect to after failed enrollment","example":"https://merchant.com/failure"}},"required":["amount","currency","purchaseReference","frequency","startDate","country"]},"BillerReferenceRuleDto":{"type":"object","properties":{"code":{"type":"string","example":"contract_number"},"label":{"type":"string","example":"Contract Number"},"description":{"type":"string","example":"Customer contract reference"},"regex":{"type":"string","example":"^[a-zA-Z0-9_-]+$"},"example":{"type":"string","example":"ref-accepted"}},"required":["code","label","description","regex","example"]},"BillerDto":{"type":"object","properties":{"identifier":{"type":"string","example":"22222222-2222-2222-2222-222222222222"},"name":{"type":"string","example":"SENELEC"},"country":{"type":"string","example":"SEN"},"category":{"type":"string","example":"ENERGY"},"flow":{"type":"string","enum":["INVOICE","CONTRACT"],"example":"CONTRACT"},"reference_rule":{"$ref":"#/components/schemas/BillerReferenceRuleDto"},"payment_mandatory_data":{"example":["phone"],"type":"array","items":{"type":"string"}},"logo":{"type":"string","example":""}},"required":["identifier","name","country","category","flow","reference_rule","payment_mandatory_data","logo"]},"ApiUnprocessableEntityErrorAlias":{"type":"object","properties":{"status":{"type":"number","description":"status","enum":[422],"example":422},"error":{"type":"string","description":"Unprocessable Entity","example":"Unable to process this transaction"}},"required":["status","error"]},"ApiBadGatewayErrorAlias":{"type":"object","properties":{"status":{"type":"number","description":"status","enum":[502],"example":502},"error":{"description":"Error object","allOf":[{"$ref":"#/components/schemas/ApiInternalErrorAlias"}]}},"required":["status","error"]},"LookupBillDto":{"type":"object","properties":{"billerId":{"type":"string","description":"Identifier of the biller to look up","example":"22222222-2222-2222-2222-222222222222"},"reference":{"type":"string","description":"Customer reference for the bill, validated against the biller reference_rule","example":"ref-accepted"},"amount":{"type":"number","description":"Amount to simulate fees for, when the biller allows partial payment. Defaults to the full bill amount.","example":30000}},"required":["billerId","reference"]},"BillInvoiceDto":{"type":"object","properties":{"reference":{"type":"string","example":"ref-accepted"},"amount":{"type":"number","example":50000},"invoice_display_order":{"type":"number","example":1},"invoice_payment_order":{"type":"number","example":1}},"required":["reference","amount","invoice_display_order","invoice_payment_order"]},"BillDetailDto":{"type":"object","properties":{"reference":{"type":"string","example":"ref-accepted"},"amount":{"type":"number","description":"Bill amount, excluding fees","example":50000},"niirpayFees":{"type":"number","description":"NIIRPAY fees for this bill","example":500},"hub2Margin":{"type":"number","description":"HUB2 margin on top of NIIRPAY fees, capped by max_applicable_fees. Always 0 until HUB2C-3097 ships.","example":0},"totalAmount":{"type":"number","description":"Total amount due: bill + NIIRPAY fees + HUB2 margin","example":50500},"currency":{"type":"number","description":"ISO 4217 numeric currency code","example":952},"invoices":{"description":"Invoices to pay, in order, for CONTRACT billers","type":"array","items":{"$ref":"#/components/schemas/BillInvoiceDto"}}},"required":["reference","amount","niirpayFees","hub2Margin","totalAmount","currency"]},"CreateBillPaymentDto":{"type":"object","properties":{"billerId":{"type":"string","description":"Identifier of the biller","example":"22222222-2222-2222-2222-222222222222"},"reference":{"type":"string","description":"Customer reference for the bill","example":"ref-accepted"},"amount":{"type":"number","description":"Amount to pay, must equal the bill totalAmount (bill + fees + margin) from the lookup response, in the biller currency minor unit","example":50500}},"required":["billerId","reference","amount"]},"BillPaymentDto":{"type":"object","properties":{"id":{"type":"string","example":"bp_z1urYtVFgEebtcj8fxp4v"},"status":{"type":"string","enum":["CREATED"],"example":"CREATED"},"billerId":{"type":"string","example":"22222222-2222-2222-2222-222222222222"},"reference":{"type":"string","example":"ref-accepted"},"amount":{"type":"number","example":50500},"paymentLinkUrl":{"type":"string","description":"Hosted payment link URL, expires 30 minutes after creation.","example":"https://pay.hub2.io/payment/pl_z1urYtVFgEebtcj8fxp4v"}},"required":["id","status","billerId","reference","amount","paymentLinkUrl"]},"SelfServiceLinkDto":{"type":"object","properties":{"token":{"type":"string","description":"Signed, opaque token identifying this merchant. Expires 24h after creation. Append it to the click-and-pay self-service base URL: {baseUrl}/self-service/{token}.","example":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."}},"required":["token"]},"SmsCountDto":{"type":"object","properties":{"from":{"format":"date-time","type":"string","description":"Starting Date.\n        Follows the [Datetime ISO](https://en.wikipedia.org/wiki/ISO_8601).","example":"2021-08-15T12:09:49.355Z"},"to":{"format":"date-time","type":"string","description":"Ending Date.\n        Follows the [Datetime ISO](https://en.wikipedia.org/wiki/ISO_8601).","example":"2021-08-20T12:09:49.355Z"},"count":{"type":"number","description":"Number of sms send during the period","example":"9"}},"required":["from","to","count"]},"SmsFailureCauseDto":{"type":"object","properties":{}},"SmsDto":{"type":"object","properties":{"id":{"type":"string","description":"unique identifier for the sms.","example":"sms_QIVmCKgbOAcXm4BbVt15H"},"senderId":{"type":"string","description":"Identifier of the merchant that send the sms","example":"1"},"senderName":{"type":"string","description":"name of the merchant that send the sms","example":"my_company"},"destination":{"type":"string","description":"Number of the recipient with country code (+44...) or in international format (0044 ...)","example":"+33600000000"},"smsCount":{"type":"number","description":"Number of Sms sent , depending on the message length (1 sms per 160 character)","example":"7"},"message":{"type":"string","description":"Message content","example":"My message"},"status":{"type":"string","description":"Status of the sms","example":"received"},"createdAt":{"type":"string","description":"Datetime in UTC timezone at which the sms was created.\n    Follows the[Datetime ISO](https://en.wikipedia.org/wiki/ISO_8601). ","example":"2021-08-19 11:00:31.225+00"},"sentAt":{"type":"string","description":"Datetime in UTC timezone at which the sms was sent.\n    Follows the[Datetime ISO](https://en.wikipedia.org/wiki/ISO_8601). ","example":"2021-08-19 11:00:31.229+00"},"receivedAt":{"type":"string","description":"Datetime in UTC timezone at which the sms was received.\n    Follows the[Datetime ISO](https://en.wikipedia.org/wiki/ISO_8601). ","example":"2021-08-19 11:00:32.225+00"},"failureCause":{"description":"Object describing the failure","example":"{\"FailureCause\": \"not_delivered\",\n    \"message\":\"Le message a été envoyé mais n'a pas pu être délivré.\"\n  }","allOf":[{"$ref":"#/components/schemas/SmsFailureCauseDto"}]}},"required":["id","senderId","senderName","destination","smsCount","message","status","createdAt","sentAt","receivedAt","failureCause"]},"SendSmsDto":{"type":"object","properties":{"destinations":{"description":"Array of destinations number with country code (+44...) or in international format (0044 ...)","example":"[\"+3300000000\",\"+330000001\"]","type":"array","items":{"type":"string"}},"message":{"type":"string","description":"Message content","example":"my message"},"senderName":{"type":"string","description":"Merchant name","example":"my company"},"webhookUrl":{"type":"string","description":"Webhook Url","example":"https://my.webhook.target","deprecated":true}},"required":["destinations","message","senderName"]},"TransferFailureCauseDto":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"params":{"type":"array","items":{"type":"string"}}},"required":["code","message","params"]},"IrtMobileMoneyDto":{"type":"object","properties":{"type":{"type":"string","description":"The method selected to make this Transfer","example":"mobile_money","enum":["mobile_money","bank_transfer","airtime","instant_payment"]},"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"},"msisdn":{"type":"string","description":"The Mobile Money number to which the money must be sent."},"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"}},"required":["type","country","msisdn","provider"]},"IrtBankTransferDto":{"type":"object","properties":{"type":{"type":"string","description":"The method selected to make this Transfer","example":"mobile_money","enum":["mobile_money","bank_transfer","airtime","instant_payment"]},"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"},"accountNumber":{"type":"string","description":"The Bank account number to which the money must be sent."},"accountOwner":{"type":"string","description":"The Bank account owner name to which the money must be sent."},"bankCode":{"type":"string","description":"The Bank code."},"bankName":{"type":"string","description":"The Bank name."},"beneficiaryPhone":{"type":"string","description":"The benificiary number"}},"required":["type","country","accountNumber","accountOwner","bankCode","bankName","beneficiaryPhone"]},"IdDocumentDto":{"type":"object","properties":{"expiryDate":{"format":"date-time","type":"string","description":"Expiry date of the ID document in ISO 8601 format","example":"2025-12-31"},"idNumber":{"type":"string","description":"The ID document number","example":"123456789"},"idType":{"type":"string","description":"Type of ID document","enum":["alienregistration","birthcertificate","drivinglicence","employer","healthcard","marriagecertificate","nationalidcard","nationalregistration","officialletter","othered","pancard","passport","seniorcitizenscard","socialsecurity","taxid","villageelderletter","votersid"],"example":"passport"},"issueDate":{"format":"date-time","type":"string","description":"Issue date of the ID document in ISO 8601 format","example":"2020-01-01"},"issuer":{"type":"string","description":"Issuing authority of the ID document","example":"Ministry of Interior"},"issuerCountry":{"type":"string","description":"Country that issued the ID document","enum":["AF","AX","AL","DZ","AS","AD","AO","AI","AQ","AG","AR","AM","AW","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BQ","BA","BW","BV","BR","IO","BN","BG","BF","BI","KH","CM","CA","CV","KY","CF","TD","CL","CN","CX","CC","CO","KM","CG","CD","CK","CR","CI","HR","CU","CW","CY","CZ","DK","DJ","DM","DO","EC","EG","SV","GQ","ER","EE","ET","FK","FO","FJ","FI","FR","GF","PF","TF","GA","GM","GE","DE","GH","GI","GR","GL","GD","GP","GU","GT","GG","GN","GW","GY","HT","HM","VA","HN","HK","HU","IS","IN","ID","IR","IQ","IE","IM","IL","IT","JM","JP","JE","JO","KZ","KE","KI","KR","KP","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MO","MK","MG","MW","MY","MV","ML","MT","MH","MQ","MR","MU","YT","MX","FM","MD","MC","MN","ME","MS","MA","MZ","MM","NA","NR","NP","NL","NC","NZ","NI","NE","NG","NU","NF","MP","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PN","PL","PT","PR","QA","RE","RO","RU","RW","BL","SH","KN","LC","MF","PM","VC","WS","SM","ST","SA","SN","RS","SC","SL","SG","SX","SK","SI","SB","SO","ZA","GS","SS","ES","LK","SD","SR","SJ","SZ","SE","CH","SY","TW","TJ","TZ","TH","TL","TG","TK","TO","TT","TN","TR","TM","TC","TV","UG","UA","AE","GB","US","UM","UY","UZ","VU","VE","VN","VG","VI","WF","EH","YE","ZM","ZW"],"example":"CI"},"issuerPlace":{"type":"string","description":"Place where the ID document was issued","example":"Abidjan"},"otherIdDescription":{"type":"string","description":"Description for other types of ID documents","example":"Custom identification document"}},"required":["idNumber","idType"]},"TransferInformationDto":{"type":"object","properties":{"recipient_name_hashmac":{"type":"string","description":"Full name of the person receiving the funds (hashed on the partner side).","example":"hash_xyz_789","maxLength":50},"recipient_phone_hashmac":{"type":"string","description":"Partner-side HMAC or cryptographic hash of the recipient MSISDN (not the clear number). Requests that send a plain phone number in this field are rejected.","example":"a3f2c9e1b8d7...","maxLength":50},"customer_id_hashmac":{"type":"string","description":"Partner-side hashed customer identifier. Use when name or phone cannot be sent, to correlate transactions for fraud analysis.","example":"hash_cust_abc","maxLength":50},"transaction_purpose":{"type":"string","description":"Declared purpose of the payout for compliance and monitoring.","enum":["SALARY","LOAN_DISBURSEMENT","COMMISSION","REFUND","CASHOUT","OTHER"],"example":"SALARY"}}},"SenderCustomerInformation":{"type":"object","properties":{"payoutType":{"type":"string","description":"Type of sender. Defaults to `individual` when omitted, preserving the existing C2C behaviour. Set to `business` to send business sender fields instead of individual ones.","enum":["individual","business"],"default":"individual","example":"individual"},"firstName":{"type":"string","description":"First name of the sender (individual senders only)","example":"Aminata"},"lastName":{"type":"string","description":"Last name of the sender (individual senders only)","example":"Traoré"},"contactPhone":{"type":"string","description":"Contact phone number of the sender (individual senders only)","example":"+2250747123456"},"dateOfBirth":{"type":"string","description":"Date of birth of the sender in YYYY-MM-DD format (individual senders only)","example":"1992-05-23"},"nationality":{"type":"string","description":"Nationality of the sender (individual senders only)","example":"CI","enum":["AF","AX","AL","DZ","AS","AD","AO","AI","AQ","AG","AR","AM","AW","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BQ","BA","BW","BV","BR","IO","BN","BG","BF","BI","KH","CM","CA","CV","KY","CF","TD","CL","CN","CX","CC","CO","KM","CG","CD","CK","CR","CI","HR","CU","CW","CY","CZ","DK","DJ","DM","DO","EC","EG","SV","GQ","ER","EE","ET","FK","FO","FJ","FI","FR","GF","PF","TF","GA","GM","GE","DE","GH","GI","GR","GL","GD","GP","GU","GT","GG","GN","GW","GY","HT","HM","VA","HN","HK","HU","IS","IN","ID","IR","IQ","IE","IM","IL","IT","JM","JP","JE","JO","KZ","KE","KI","KR","KP","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MO","MK","MG","MW","MY","MV","ML","MT","MH","MQ","MR","MU","YT","MX","FM","MD","MC","MN","ME","MS","MA","MZ","MM","NA","NR","NP","NL","NC","NZ","NI","NE","NG","NU","NF","MP","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PN","PL","PT","PR","QA","RE","RO","RU","RW","BL","SH","KN","LC","MF","PM","VC","WS","SM","ST","SA","SN","RS","SC","SL","SG","SX","SK","SI","SB","SO","ZA","GS","SS","ES","LK","SD","SR","SJ","SZ","SE","CH","SY","TW","TJ","TZ","TH","TL","TG","TK","TO","TT","TN","TR","TM","TC","TV","UG","UA","AE","GB","US","UM","UY","UZ","VU","VE","VN","VG","VI","WF","EH","YE","ZM","ZW"]},"idDocument":{"description":"ID document information of the sender (individual senders only)","allOf":[{"$ref":"#/components/schemas/IdDocumentDto"}]},"name":{"type":"string","description":"Registered legal name of the business sender (business senders only)","example":"TikTok Inc."},"countryOfIncorporation":{"type":"string","description":"Country of incorporation as an ISO 3166-1 alpha-2 code (business senders only)","example":"US"},"legalEntityType":{"type":"string","description":"Legal entity type of the business sender (business senders only)","enum":["sole_proprietorship","partnership","privately_owned_company","publicly_listed_company","government_entity","non_profit_organisation","trust","cooperative","other"],"example":"privately_owned_company"},"registrationDate":{"type":"string","description":"Business registration date in YYYY-MM-DD format, must be in the past (business senders only)","example":"2012-01-25"},"registrationNumber":{"type":"string","description":"Business registration number (business senders only)","example":"VAT1234567"},"tradingCountry":{"type":"string","description":"Trading address country as an ISO 3166-1 alpha-2 code (business senders only)","example":"US"},"tradingCity":{"type":"string","description":"Trading address city (business senders only)","example":"New York"},"tradingStreet":{"type":"string","description":"Trading address street (business senders only)","example":"20 W 34th St"},"tradingPostalCode":{"type":"string","description":"Trading address postal code (business senders only)","example":"10001"},"natureOfBusiness":{"type":"string","description":"Primary business activity of the sender (business senders only)","enum":["agriculture","construction","education","financial_services","healthcare","hospitality","information_technology","manufacturing","mining_and_energy","professional_services","real_estate","retail_trade","telecommunications","transportation","wholesale_trade","other"],"example":"retail_trade"},"phoneNumber":{"type":"string","description":"Business contact phone number in E.164 format (business senders only)","example":"+15555551234"},"email":{"type":"string","description":"Business contact email address (business senders only)","example":"tiktok@payments.com"}}},"RecipientCustomerInformation":{"type":"object","properties":{"firstName":{"type":"string","description":"First name of the recipient","example":"Moussa"},"lastName":{"type":"string","description":"Last name of the recipient","example":"Konaté"},"contactPhone":{"type":"string","description":"Contact phone number of the recipient","example":"+223657890123"}},"required":["firstName","lastName","contactPhone"]},"MakeTransferIrtDto":{"type":"object","properties":{"reference":{"type":"string","description":"A reference provided by the client during the creation of this Transfer","example":"REM-20240619-00123"},"srcCountry":{"type":"string","description":"Source country","example":"CI","enum":["AF","AX","AL","DZ","AS","AD","AO","AI","AQ","AG","AR","AM","AW","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BQ","BA","BW","BV","BR","IO","BN","BG","BF","BI","KH","CM","CA","CV","KY","CF","TD","CL","CN","CX","CC","CO","KM","CG","CD","CK","CR","CI","HR","CU","CW","CY","CZ","DK","DJ","DM","DO","EC","EG","SV","GQ","ER","EE","ET","FK","FO","FJ","FI","FR","GF","PF","TF","GA","GM","GE","DE","GH","GI","GR","GL","GD","GP","GU","GT","GG","GN","GW","GY","HT","HM","VA","HN","HK","HU","IS","IN","ID","IR","IQ","IE","IM","IL","IT","JM","JP","JE","JO","KZ","KE","KI","KR","KP","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MO","MK","MG","MW","MY","MV","ML","MT","MH","MQ","MR","MU","YT","MX","FM","MD","MC","MN","ME","MS","MA","MZ","MM","NA","NR","NP","NL","NC","NZ","NI","NE","NG","NU","NF","MP","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PN","PL","PT","PR","QA","RE","RO","RU","RW","BL","SH","KN","LC","MF","PM","VC","WS","SM","ST","SA","SN","RS","SC","SL","SG","SX","SK","SI","SB","SO","ZA","GS","SS","ES","LK","SD","SR","SJ","SZ","SE","CH","SY","TW","TJ","TZ","TH","TL","TG","TK","TO","TT","TN","TR","TM","TC","TV","UG","UA","AE","GB","US","UM","UY","UZ","VU","VE","VN","VG","VI","WF","EH","YE","ZM","ZW"]},"srcZone":{"type":"string","description":"Zone of the source country. If the country does not belong to a zone, set it to 'other'","example":"UEMOA","enum":["uemoa","cemac","africa","world","eur"]},"srcCurrency":{"type":"string","description":"Currency of source country","example":"XOF","enum":["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BRL","BSD","BTN","BWP","BYN","BZD","CAD","CDF","CHF","CLP","CNY","COP","CRC","CUC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRU","MUR","MVR","MWK","MXN","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLL","SOS","SRD","SSP","STN","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","UYU","UZS","VES","VND","VUV","WST","XAF","XCD","XOF","XPF","YER","ZAR","ZMW","ZWL"]},"srcAmount":{"type":"number","description":"Amount at the originating transaction","example":50000},"forexRate":{"type":"string","description":"Forex rate between corridors","example":"655.957"},"purpose":{"type":"string","description":"Purpose of the transfer","example":"Family support"},"srcOriginFunds":{"type":"string","description":"Origin of funds","example":"salary","enum":["salary","personal_savings","pension_releases","share_sales_and_dividends","property_sales","gambling_winnings","inheritances_and_gift","compensation_from_legal_rulings"]},"srcOperator":{"type":"string","description":"Source operator","example":"orange"},"destinationCurrency":{"type":"string","description":"Destination currency","example":"XOF","enum":["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BRL","BSD","BTN","BWP","BYN","BZD","CAD","CDF","CHF","CLP","CNY","COP","CRC","CUC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRU","MUR","MVR","MWK","MXN","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLL","SOS","SRD","SSP","STN","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","UYU","UZS","VES","VND","VUV","WST","XAF","XCD","XOF","XPF","YER","ZAR","ZMW","ZWL"]},"destination":{"description":"Information about the recipient of this Transfer","oneOf":[{"$ref":"#/components/schemas/IrtMobileMoneyDto"},{"$ref":"#/components/schemas/IrtBankTransferDto"}],"discriminator":{"propertyName":"type","mapping":{"bank_transfer":"#/components/schemas/IrtBankTransferDto","mobile_money":"#/components/schemas/IrtMobileMoneyDto"}},"title":"Destination"},"senderKyc":{"description":"Sender KYC information","allOf":[{"$ref":"#/components/schemas/SenderCustomerInformation"}]},"recipientKyc":{"description":"Recipient KYC information","allOf":[{"$ref":"#/components/schemas/RecipientCustomerInformation"}]},"description":{"type":"string","description":"An arbitrary string attached to the Transfer. Mostly useful for displaying to user."},"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"},"bankName":{"type":"string","description":"Bank name","example":"UBA Bank"},"transferInformation":{"description":"Optional merchant-defined payment metadata. Persisted and returned on the transfer.","example":{"recipient_name_hashmac":"hash_xyz_789","transaction_purpose":"SALARY"},"allOf":[{"$ref":"#/components/schemas/TransferInformationDto"}]}},"required":["reference","srcCountry","srcCurrency","srcAmount","purpose","srcOriginFunds","srcOperator","destinationCurrency","destination","senderKyc","recipientKyc"]},"TransferFeeDto":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the applied Fee object.","example":"lAe5HnFpvOjwdT9vSIgPA"},"rate":{"type":"number","description":"A rate corresponding to the amount (flat or percentage) applied by the fees."},"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"]},"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},"currency":{"type":"string","description":"Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html).","example":"XOF"},"label":{"type":"string","description":"An optional label giving information on the reason of this fees."},"taxes":{"description":"An array containing every taxes applied to a fee","type":"array","items":{"type":"string"}}},"required":["id","rate","type","amount","currency","taxes"]},"OriginDto":{"type":"object","properties":{"name":{"type":"string","description":"Sender's name"},"country":{"type":"string","description":"Sender's country. Two-letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)"}}},"TransferDto":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the Transfer","example":"tr_z1urYtVFgEebtcj8fxp4v"},"merchantId":{"type":"string","description":"Identifier of the merchant owning this Transfer"},"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"},"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"},"reference":{"type":"string","description":"A reference provided by the client during the creation of this Transfer","example":"ref_2020_11_10_001"},"description":{"type":"string","description":"An arbitrary string attached to the Transfer. Mostly useful for displaying to user. "},"status":{"type":"string","description":"The current status of this Transfer","example":"successful","enum":["created","successful","pending","failed"]},"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},"currency":{"type":"string","description":"Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html).","example":"XOF"},"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"]},"destination":{"description":"Information about the recipient of this Transfer","oneOf":[{"$ref":"#/components/schemas/MobileMoneyDto"},{"$ref":"#/components/schemas/BankTransferDto"},{"$ref":"#/components/schemas/AirtimeDto"},{"$ref":"#/components/schemas/InstantPaymentDto"}],"discriminator":{"propertyName":"type","mapping":{"bank_transfer":"#/components/schemas/BankTransferDto","mobile_money":"#/components/schemas/MobileMoneyDto","airtime":"#/components/schemas/AirtimeDto","instant_payment":"#/components/schemas/InstantPaymentDto"}},"title":"Destination"},"fees":{"description":"Fees applied to merchant's transfer-account uppon success","title":"TransferFee","type":"array","items":{"$ref":"#/components/schemas/TransferFeeDto"}},"failureCause":{"description":"In case of failure, this object will describe the reason of the failure","title":"TransferFailureCause","allOf":[{"$ref":"#/components/schemas/TransferFailureCauseDto"}]},"origin":{"description":"Information about the origin of this transfer","title":"Origin","allOf":[{"$ref":"#/components/schemas/OriginDto"}]},"overrideBusinessName":{"type":"string","description":"override business name for aggregator","title":"overrideBusinessName"},"overrideBusinessId":{"type":"string","description":"override business id for merchant","title":"overrideBusinessId"},"isIrt":{"type":"boolean","description":"indicate if the transfer was international","title":"isIrt"},"providerReference":{"type":"string","description":"provider reference that identify this transfer","title":"providerReference"},"gatewayId":{"type":"string","description":"The gateway ID used for this transfer","title":"gatewayId"},"isDelegated":{"type":"boolean","description":"Indicates if the transfer is delegated","title":"isDelegated"},"aggregatedMerchantId":{"type":"string","description":"Aggregated merchant id","title":"aggregatedMerchantId"},"providerData":{"type":"object","description":"Provider data","title":"providerData"},"subMerchantId":{"type":"string","description":"Submerchant ID","example":"submerchant_123"},"transferInformation":{"description":"Merchant-defined payment metadata from transfer creation.","example":{"recipient_name_hashmac":"hash_xyz_789","transaction_purpose":"SALARY"},"allOf":[{"$ref":"#/components/schemas/TransferInformationDto"}]}},"required":["id","merchantId","createdAt","updatedAt","reference","description","status","amount","currency","mode","destination","fees","isIrt","providerReference","gatewayId","isDelegated","aggregatedMerchantId"]},"InitiateVerifiedTransferIrtDto":{"type":"object","properties":{"reference":{"type":"string","description":"A reference provided by the client during the creation of this Transfer","example":"REM-20240619-00123"},"srcCountry":{"type":"string","description":"Source country","example":"CI","enum":["AF","AX","AL","DZ","AS","AD","AO","AI","AQ","AG","AR","AM","AW","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BQ","BA","BW","BV","BR","IO","BN","BG","BF","BI","KH","CM","CA","CV","KY","CF","TD","CL","CN","CX","CC","CO","KM","CG","CD","CK","CR","CI","HR","CU","CW","CY","CZ","DK","DJ","DM","DO","EC","EG","SV","GQ","ER","EE","ET","FK","FO","FJ","FI","FR","GF","PF","TF","GA","GM","GE","DE","GH","GI","GR","GL","GD","GP","GU","GT","GG","GN","GW","GY","HT","HM","VA","HN","HK","HU","IS","IN","ID","IR","IQ","IE","IM","IL","IT","JM","JP","JE","JO","KZ","KE","KI","KR","KP","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MO","MK","MG","MW","MY","MV","ML","MT","MH","MQ","MR","MU","YT","MX","FM","MD","MC","MN","ME","MS","MA","MZ","MM","NA","NR","NP","NL","NC","NZ","NI","NE","NG","NU","NF","MP","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PN","PL","PT","PR","QA","RE","RO","RU","RW","BL","SH","KN","LC","MF","PM","VC","WS","SM","ST","SA","SN","RS","SC","SL","SG","SX","SK","SI","SB","SO","ZA","GS","SS","ES","LK","SD","SR","SJ","SZ","SE","CH","SY","TW","TJ","TZ","TH","TL","TG","TK","TO","TT","TN","TR","TM","TC","TV","UG","UA","AE","GB","US","UM","UY","UZ","VU","VE","VN","VG","VI","WF","EH","YE","ZM","ZW"]},"srcZone":{"type":"string","description":"Zone of the source country. If the country does not belong to a zone, set it to 'other'","example":"UEMOA","enum":["uemoa","cemac","africa","world","eur"]},"srcCurrency":{"type":"string","description":"Currency of source country","example":"XOF","enum":["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BRL","BSD","BTN","BWP","BYN","BZD","CAD","CDF","CHF","CLP","CNY","COP","CRC","CUC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRU","MUR","MVR","MWK","MXN","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLL","SOS","SRD","SSP","STN","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","UYU","UZS","VES","VND","VUV","WST","XAF","XCD","XOF","XPF","YER","ZAR","ZMW","ZWL"]},"srcAmount":{"type":"number","description":"Amount at the originating transaction","example":50000},"forexRate":{"type":"string","description":"Forex rate between corridors","example":"655.957"},"purpose":{"type":"string","description":"Purpose of the transfer","example":"Family support"},"srcOriginFunds":{"type":"string","description":"Origin of funds","example":"salary","enum":["salary","personal_savings","pension_releases","share_sales_and_dividends","property_sales","gambling_winnings","inheritances_and_gift","compensation_from_legal_rulings"]},"srcOperator":{"type":"string","description":"Source operator","example":"orange"},"destinationCurrency":{"type":"string","description":"Destination currency","example":"XOF","enum":["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BRL","BSD","BTN","BWP","BYN","BZD","CAD","CDF","CHF","CLP","CNY","COP","CRC","CUC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRU","MUR","MVR","MWK","MXN","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLL","SOS","SRD","SSP","STN","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","UYU","UZS","VES","VND","VUV","WST","XAF","XCD","XOF","XPF","YER","ZAR","ZMW","ZWL"]},"recipientId":{"type":"string","description":"Internal id of the recipient","example":"43ebaf25-27a5-4a33-b7c9-35f743d3f677"},"senderKyc":{"description":"Sender KYC information","allOf":[{"$ref":"#/components/schemas/SenderCustomerInformation"}]},"description":{"type":"string","description":"An arbitrary string attached to the Transfer. Mostly useful for displaying to user."},"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"},"bankName":{"type":"string","description":"Bank name","example":"UBA Bank"}},"required":["reference","srcCountry","srcCurrency","srcAmount","purpose","srcOriginFunds","srcOperator","destinationCurrency","recipientId","senderKyc"]},"MobileMoneyDto":{"type":"object","properties":{"type":{"type":"string","description":"The method selected to make this Transfer","example":"mobile_money","enum":["mobile_money","bank_transfer","airtime","instant_payment"]},"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"},"recipientName":{"type":"string","description":"recipient's Name"},"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"},"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"}},"required":["type","country","number","provider"]},"BankTransferDto":{"type":"object","properties":{"type":{"type":"string","description":"The method selected to make this Transfer","example":"mobile_money","enum":["mobile_money","bank_transfer","airtime","instant_payment"]},"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"},"recipientName":{"type":"string","description":"recipient's Name"},"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"},"accountOwner":{"type":"string","description":"The Bank account owner name to which the money must be sent."},"bankCode":{"type":"string","description":"The Bank code."},"bankName":{"type":"string","description":"The Bank name."},"beneficiaryPhone":{"type":"string","description":"The Beneficiary phone"}},"required":["type","country","number","accountOwner","bankCode","bankName","beneficiaryPhone"]},"AirtimeDto":{"type":"object","properties":{"type":{"type":"string","description":"The method selected to make this Transfer","example":"mobile_money","enum":["mobile_money","bank_transfer","airtime","instant_payment"]},"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"},"recipientName":{"type":"string","description":"recipient's Name"},"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"},"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"}},"required":["type","country","number","provider"]},"TransferNoBalanceDtoAlias":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the Transfer","example":"tr_z1urYtVFgEebtcj8fxp4v"},"merchantId":{"type":"string","description":"Identifier of the merchant owning this Transfer"},"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"},"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"},"reference":{"type":"string","description":"A reference provided by the client during the creation of this Transfer","example":"ref_2020_11_10_001"},"description":{"type":"string","description":"An arbitrary string attached to the Transfer. Mostly useful for displaying to user. "},"status":{"type":"string","description":"The current status of this Transfer","example":"successful","enum":["created","successful","pending","failed"]},"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},"currency":{"type":"string","description":"Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html).","example":"XOF"},"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"]},"destination":{"description":"Information about the recipient of this Transfer","oneOf":[{"$ref":"#/components/schemas/MobileMoneyDto"},{"$ref":"#/components/schemas/BankTransferDto"},{"$ref":"#/components/schemas/AirtimeDto"},{"$ref":"#/components/schemas/InstantPaymentDto"}],"discriminator":{"propertyName":"type","mapping":{"bank_transfer":"#/components/schemas/BankTransferDto","mobile_money":"#/components/schemas/MobileMoneyDto","airtime":"#/components/schemas/AirtimeDto","instant_payment":"#/components/schemas/InstantPaymentDto"}},"title":"Destination"},"fees":{"description":"Fees applied to merchant's transfer-account uppon success","title":"TransferFee","type":"array","items":{"$ref":"#/components/schemas/TransferFeeDto"}},"failureCause":{"description":"In case of failure, this object will describe the reason of the failure","title":"TransferFailureCause","allOf":[{"$ref":"#/components/schemas/TransferFailureCauseDto"}]},"origin":{"description":"Information about the origin of this transfer","title":"Origin","allOf":[{"$ref":"#/components/schemas/OriginDto"}]},"overrideBusinessName":{"type":"string","description":"override business name for aggregator","title":"overrideBusinessName"},"overrideBusinessId":{"type":"string","description":"override business id for merchant","title":"overrideBusinessId"},"isIrt":{"type":"boolean","description":"indicate if the transfer was international","title":"isIrt"},"providerReference":{"type":"string","description":"provider reference that identify this transfer","title":"providerReference"},"gatewayId":{"type":"string","description":"The gateway ID used for this transfer","title":"gatewayId"},"isDelegated":{"type":"boolean","description":"Indicates if the transfer is delegated","title":"isDelegated"},"aggregatedMerchantId":{"type":"string","description":"Aggregated merchant id","title":"aggregatedMerchantId"},"providerData":{"type":"object","description":"Provider data","title":"providerData"},"subMerchantId":{"type":"string","description":"Submerchant ID","example":"submerchant_123"},"transferInformation":{"description":"Merchant-defined payment metadata from transfer creation.","example":{"recipient_name_hashmac":"hash_xyz_789","transaction_purpose":"SALARY"},"allOf":[{"$ref":"#/components/schemas/TransferInformationDto"}]}},"required":["id","merchantId","createdAt","updatedAt","reference","description","status","amount","currency","mode","destination","fees","isIrt","providerReference","gatewayId","isDelegated","aggregatedMerchantId"]},"FxRateDto":{"type":"object","properties":{"corridor":{"type":"string","example":"XOF_MOBILE_SENEGAL"},"inputCurrency":{"type":"string","example":"EUR"},"outputCurrency":{"type":"string","example":"XOF"},"exchangeRate":{"type":"number","example":646.12},"rateType":{"type":"string","example":"indicative"},"lastUpdated":{"type":"string","example":"2026-05-18T15:00:00.000Z"},"validUntil":{"type":"string","example":"2026-05-18T15:30:00.000Z"},"status":{"type":"string","example":"active"}},"required":["corridor","inputCurrency","outputCurrency","rateType","status"]},"FxRatesResponseDto":{"type":"object","properties":{"rates":{"type":"array","items":{"$ref":"#/components/schemas/FxRateDto"}}},"required":["rates"]},"FxQuoteRequestDto":{"type":"object","properties":{"inputCurrency":{"type":"string","description":"Input currency (send side)","example":"EUR"},"corridor":{"type":"string","description":"Corridor code","example":"XOF_MOBILE_SENEGAL"},"amount":{"type":"string","description":"Amount in the input currency as a positive decimal string (at most 2 decimals)","example":"200.00"}},"required":["inputCurrency","corridor","amount"]},"FxQuoteResponseDto":{"type":"object","properties":{"rateId":{"type":"string","example":"7e6c2c2e-2b1a-4f3c-9d7a-2c2e2b1a4f3c"},"exchangeRate":{"type":"string","example":"646.1176450000"},"outputAmount":{"type":"string","description":"Amount the recipient receives, priced on the full amount quoted. The Hub2 fee is charged on top and never reduces it.","example":"129223"},"hub2Fee":{"type":"string","description":"Hub2 fee for this transaction, charged in addition to the amount sent.","example":"3"},"quoteExpiresAt":{"type":"string","example":"2026-05-18T15:30:00.000Z"},"lastUpdated":{"type":"string","example":"2026-05-18T15:00:00.000Z"}},"required":["rateId","exchangeRate","outputAmount","hub2Fee","quoteExpiresAt","lastUpdated"]},"CrossBorderRecipientDto":{"type":"object","properties":{"rail":{"type":"string","description":"Last-mile rail the payout travels on. Decides which recipient fields are required.","enum":["mobile_wallet","bank_transfer"],"example":"mobile_wallet"},"firstName":{"type":"string","description":"Recipient first name","example":"Aminata"},"lastName":{"type":"string","description":"Recipient last name","example":"Traoré"},"countryCode":{"type":"string","description":"Two-letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) of the recipient.","example":"SN"},"provider":{"type":"string","description":"Provider handling the payout, in lowercase. Required for the mobile_wallet rail.","example":"orange"},"phone":{"type":"string","description":"Recipient mobile number in E.164 format. Required for the mobile_wallet rail.","example":"+221771234567"},"accountNumber":{"type":"string","description":"Recipient bank account number. Required for the bank_transfer rail.","example":"SN0123456789"},"bankCode":{"type":"string","description":"Hub2 bank code; the connector resolves the provider bank code from it. Required for the bank_transfer rail.","example":"SN_ECOBANK"},"middleName":{"type":"string","description":"Recipient middle name","example":"Fatou"},"address1":{"type":"string","description":"Recipient address line 1","example":"12 rue de la Corniche"},"address2":{"type":"string","description":"Recipient address line 2"},"city":{"type":"string","description":"Recipient city","example":"Dakar"},"email":{"type":"string","description":"Recipient e-mail address","example":"aminata@example.com"},"dateOfBirth":{"type":"string","description":"Recipient date of birth, YYYY-MM-DD","example":"1992-05-23"},"idType":{"type":"string","description":"Recipient identity document type","example":"passport"},"idNumber":{"type":"string","description":"Recipient identity document number"}},"required":["rail","firstName","lastName","countryCode"]},"CrossBorderMobileWalletRecipientDto":{"type":"object","properties":{"rail":{"type":"string","description":"Last-mile rail the payout travels on. Decides which recipient fields are required.","enum":["mobile_wallet","bank_transfer"],"example":"mobile_wallet"},"firstName":{"type":"string","description":"Recipient first name","example":"Aminata"},"lastName":{"type":"string","description":"Recipient last name","example":"Traoré"},"countryCode":{"type":"string","description":"Two-letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) of the recipient.","example":"SN"},"provider":{"type":"string","description":"Provider handling the payout, in lowercase","example":"orange"},"phone":{"type":"string","description":"Recipient mobile number in E.164 format","example":"+221771234567"},"accountNumber":{"type":"string","description":"Recipient bank account number. Required for the bank_transfer rail.","example":"SN0123456789"},"bankCode":{"type":"string","description":"Hub2 bank code; the connector resolves the provider bank code from it. Required for the bank_transfer rail.","example":"SN_ECOBANK"},"middleName":{"type":"string","description":"Recipient middle name","example":"Fatou"},"address1":{"type":"string","description":"Recipient address line 1","example":"12 rue de la Corniche"},"address2":{"type":"string","description":"Recipient address line 2"},"city":{"type":"string","description":"Recipient city","example":"Dakar"},"email":{"type":"string","description":"Recipient e-mail address","example":"aminata@example.com"},"dateOfBirth":{"type":"string","description":"Recipient date of birth, YYYY-MM-DD","example":"1992-05-23"},"idType":{"type":"string","description":"Recipient identity document type","example":"passport"},"idNumber":{"type":"string","description":"Recipient identity document number"}},"required":["rail","firstName","lastName","countryCode"]},"CrossBorderBankTransferRecipientDto":{"type":"object","properties":{"rail":{"type":"string","description":"Last-mile rail the payout travels on. Decides which recipient fields are required.","enum":["mobile_wallet","bank_transfer"],"example":"mobile_wallet"},"firstName":{"type":"string","description":"Recipient first name","example":"Aminata"},"lastName":{"type":"string","description":"Recipient last name","example":"Traoré"},"countryCode":{"type":"string","description":"Two-letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) of the recipient.","example":"SN"},"provider":{"type":"string","description":"Provider handling the payout, in lowercase. Required for the mobile_wallet rail.","example":"orange"},"phone":{"type":"string","description":"Recipient mobile number in E.164 format. Required for the mobile_wallet rail.","example":"+221771234567"},"accountNumber":{"type":"string","description":"Recipient bank account number","example":"SN0123456789"},"bankCode":{"type":"string","description":"Hub2 bank code","example":"SN_ECOBANK"},"middleName":{"type":"string","description":"Recipient middle name","example":"Fatou"},"address1":{"type":"string","description":"Recipient address line 1","example":"12 rue de la Corniche"},"address2":{"type":"string","description":"Recipient address line 2"},"city":{"type":"string","description":"Recipient city","example":"Dakar"},"email":{"type":"string","description":"Recipient e-mail address","example":"aminata@example.com"},"dateOfBirth":{"type":"string","description":"Recipient date of birth, YYYY-MM-DD","example":"1992-05-23"},"idType":{"type":"string","description":"Recipient identity document type","example":"passport"},"idNumber":{"type":"string","description":"Recipient identity document number"}},"required":["rail","firstName","lastName","countryCode"]},"CreateCrossBorderTransactionDto":{"type":"object","properties":{"externalId":{"type":"string","description":"Merchant-owned idempotency key. Replaying a request with the same external_id returns the original transaction instead of creating a second payout.","example":"MTO-TX-00123"},"senderId":{"type":"string","description":"Identifier of a registered sender belonging to this merchant. The sender must be approved.","example":"snd_V1StGXR8Z5jdHi6BmyT"},"rateId":{"type":"string","description":"Identifier of the quote to fund at, as returned by `POST /irt/v1/quote/calculate`. The quote must not have expired and its rate must still be current, otherwise the request is rejected with 422 rate_expired.","format":"uuid","example":"7e6c2c2e-2b1a-4f3c-9d7a-2c2e2b1a4f3c"},"amount":{"type":"string","description":"Amount to send, in the quote input currency, as an exact decimal string. Must match the amount the quote was issued for.","example":"200"},"currency":{"type":"string","description":"Input currency of the amount, ISO 4217. Must match the quote input currency.","example":"EUR"},"recipient":{"description":"Payout recipient","allOf":[{"$ref":"#/components/schemas/CrossBorderRecipientDto"}]},"description":{"type":"string","description":"Free-text description carried on the transaction","example":"Family support August"}},"required":["externalId","senderId","rateId","amount","currency","recipient"]},"CrossBorderFeeTaxDto":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the tax row","example":"tax_V1StGXR8Z5jdHi6BmyT"},"taxType":{"type":"string","description":"The kind of tax applied","enum":["tva"],"example":"tva"},"type":{"type":"string","description":"Whether the tax is a percentage of the fee or a flat amount","enum":["flat","percent"],"example":"percent"},"value":{"type":"string","description":"Tax rate or amount, per `type`, as an exact two-decimal string","example":"18.00"}},"required":["id","taxType","type","value"]},"CrossBorderFeeDto":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the applied fee","example":"fee_V1StGXR8Z5jdHi6BmyT"},"rate":{"type":"string","description":"The configured rate, as an exact two-decimal string: a percentage for `percent`, the flat amount for `flat`. On a `flat` line it normally equals `amount`. Where the configured rate is finer than the currency's minor unit the two differ by a cent, and `amount` is the one that was charged.","example":"5.00"},"type":{"type":"string","description":"How the fee is derived from the amount sent. `percent` applies the rate as a percentage of it; `flat` applies the rate as is.","enum":["flat","percent"],"example":"percent"},"amount":{"type":"string","description":"Amount charged by this line, in `currency`, as an exact two-decimal string — the same format as the `hub2Fee` total it sums into","example":"10.00"},"currency":{"type":"string","description":"Currency the fee is charged in, ISO 4217. Always the input currency.","example":"EUR"},"label":{"type":"string","description":"Optional label explaining the reason for this fee"},"taxes":{"description":"Taxes applicable to this fee line. Reported for your records — never charged.","type":"array","items":{"$ref":"#/components/schemas/CrossBorderFeeTaxDto"}}},"required":["id","rate","type","amount","currency","taxes"]},"CrossBorderTransactionFailureCauseDto":{"type":"object","properties":{"code":{"type":"string","description":"Failure cause code","enum":["unknown_reason","internal_error","service_unavailable","service_temporarily_disabled","too_many_request","timeout","insufficient_funds","hub2_insufficient_funds","forbidden_by_provider","forbidden_by_provider_maximum_limit","canceled","unsupported_currency","invalid_payment_processor","invalid_amount","fraud_suspicion","invalid_destination","bad_request","duplicate_request","authentication_failed","bad_parameters"],"example":"insufficient_funds"},"message":{"type":"string","description":"Human-readable message, when the partner provided one"}},"required":["code"]},"CrossBorderTransactionDto":{"type":"object","properties":{"id":{"type":"string","description":"Hub2 transaction identifier","example":"cbt_V1StGXR8Z5jdHi6BmyT"},"externalId":{"type":"string","description":"Merchant-owned idempotency key echoed back","example":"MTO-TX-00123"},"status":{"type":"string","description":"Current state. A successful create-and-fund returns `pending`: the float is reserved and the payout is on its way.","enum":["created","pending","compliance_review","pending_manual","successful","failed","cancelled"],"example":"pending"},"senderId":{"type":"string","description":"Registered sender the payout was initiated for","example":"snd_V1StGXR8Z5jdHi6BmyT"},"corridor":{"type":"string","description":"Corridor the payout was priced on","example":"XOF_MOBILE_SENEGAL"},"rail":{"type":"string","description":"Last-mile rail","enum":["mobile_wallet","bank_transfer"],"example":"mobile_wallet"},"inputCurrency":{"type":"string","description":"Input currency, ISO 4217","example":"EUR"},"inputAmount":{"type":"string","description":"Amount sent, exact decimal string. This is the amount converted and paid out — the Hub2 fee is charged on top of it, so the float is debited `inputAmount` plus `hub2Fee`.","example":"200"},"outputCurrency":{"type":"string","description":"Output currency, ISO 4217","example":"XOF"},"outputAmount":{"type":"string","description":"Amount the recipient receives, frozen at funding. Priced on the full `inputAmount` — the Hub2 fee is additive and never reduces it.","example":"129223"},"hub2Fee":{"type":"string","description":"Total Hub2 fee applied, frozen at funding. The sum of the `fees` lines. Charged in addition to `inputAmount`, not deducted from it.","example":"10.00"},"fees":{"description":"Itemisation behind `hub2Fee`, frozen at funding and never recomputed. Each line carries the taxes reported against it.","type":"array","items":{"$ref":"#/components/schemas/CrossBorderFeeDto"}},"hub2Rate":{"type":"string","description":"Exchange rate applied, frozen at funding and never recalculated","example":"646.1176450000"},"description":{"type":"string","description":"Free-text description carried on the transaction"},"failureCause":{"description":"Set once the transaction is failed (IRT-TX7)","allOf":[{"$ref":"#/components/schemas/CrossBorderTransactionFailureCauseDto"}]},"createdAt":{"type":"string","description":"Creation timestamp, ISO 8601"},"updatedAt":{"type":"string","description":"Timestamp of the last state change, ISO 8601. Equal to \"createdAt\" until the transaction first moves, so a lookup can tell a payout still awaiting its partner from one that\n      settled without a webhook arriving."}},"required":["id","externalId","status","senderId","corridor","rail","inputCurrency","inputAmount","outputCurrency","outputAmount","hub2Fee","fees","hub2Rate","createdAt","updatedAt"]},"RequestCrossBorderReportDto":{"type":"object","properties":{"from":{"type":"string","description":"Inclusive start of the reported period, ISO 8601 date.","example":"2026-01-01"},"to":{"type":"string","description":"Inclusive end of the reported period, ISO 8601 date.","example":"2026-03-01"},"emails":{"description":"Addresses the finished report is emailed to.","example":["auditor@example.com"],"type":"array","items":{"type":"string"}}},"required":["from","to","emails"]},"CreateSenderDto":{"type":"object","properties":{"payoutType":{"type":"string","description":"Type of sender. Defaults to `individual` when omitted, preserving the existing C2C behaviour. Set to `business` to send business sender fields instead of individual ones.","enum":["individual","business"],"default":"individual","example":"individual"},"firstName":{"type":"string","description":"First name of the sender (individual senders only)","example":"Aminata"},"lastName":{"type":"string","description":"Last name of the sender (individual senders only)","example":"Traoré"},"contactPhone":{"type":"string","description":"Contact phone number of the sender (individual senders only)","example":"+2250747123456"},"dateOfBirth":{"type":"string","description":"Date of birth of the sender in YYYY-MM-DD format (individual senders only)","example":"1992-05-23"},"nationality":{"type":"string","description":"Nationality of the sender (individual senders only)","example":"CI","enum":["AF","AX","AL","DZ","AS","AD","AO","AI","AQ","AG","AR","AM","AW","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BQ","BA","BW","BV","BR","IO","BN","BG","BF","BI","KH","CM","CA","CV","KY","CF","TD","CL","CN","CX","CC","CO","KM","CG","CD","CK","CR","CI","HR","CU","CW","CY","CZ","DK","DJ","DM","DO","EC","EG","SV","GQ","ER","EE","ET","FK","FO","FJ","FI","FR","GF","PF","TF","GA","GM","GE","DE","GH","GI","GR","GL","GD","GP","GU","GT","GG","GN","GW","GY","HT","HM","VA","HN","HK","HU","IS","IN","ID","IR","IQ","IE","IM","IL","IT","JM","JP","JE","JO","KZ","KE","KI","KR","KP","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MO","MK","MG","MW","MY","MV","ML","MT","MH","MQ","MR","MU","YT","MX","FM","MD","MC","MN","ME","MS","MA","MZ","MM","NA","NR","NP","NL","NC","NZ","NI","NE","NG","NU","NF","MP","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PN","PL","PT","PR","QA","RE","RO","RU","RW","BL","SH","KN","LC","MF","PM","VC","WS","SM","ST","SA","SN","RS","SC","SL","SG","SX","SK","SI","SB","SO","ZA","GS","SS","ES","LK","SD","SR","SJ","SZ","SE","CH","SY","TW","TJ","TZ","TH","TL","TG","TK","TO","TT","TN","TR","TM","TC","TV","UG","UA","AE","GB","US","UM","UY","UZ","VU","VE","VN","VG","VI","WF","EH","YE","ZM","ZW"]},"idDocument":{"description":"ID document information of the sender (individual senders only)","allOf":[{"$ref":"#/components/schemas/IdDocumentDto"}]},"name":{"type":"string","description":"Registered legal name of the business sender (business senders only)","example":"TikTok Inc."},"countryOfIncorporation":{"type":"string","description":"Country of incorporation as an ISO 3166-1 alpha-2 code (business senders only)","example":"US"},"legalEntityType":{"type":"string","description":"Legal entity type of the business sender (business senders only)","enum":["sole_proprietorship","partnership","privately_owned_company","publicly_listed_company","government_entity","non_profit_organisation","trust","cooperative","other"],"example":"privately_owned_company"},"registrationDate":{"type":"string","description":"Business registration date in YYYY-MM-DD format, must be in the past (business senders only)","example":"2012-01-25"},"registrationNumber":{"type":"string","description":"Business registration number (business senders only)","example":"VAT1234567"},"tradingCountry":{"type":"string","description":"Trading address country as an ISO 3166-1 alpha-2 code (business senders only)","example":"US"},"tradingCity":{"type":"string","description":"Trading address city (business senders only)","example":"New York"},"tradingStreet":{"type":"string","description":"Trading address street (business senders only)","example":"20 W 34th St"},"tradingPostalCode":{"type":"string","description":"Trading address postal code (business senders only)","example":"10001"},"natureOfBusiness":{"type":"string","description":"Primary business activity of the sender (business senders only)","enum":["agriculture","construction","education","financial_services","healthcare","hospitality","information_technology","manufacturing","mining_and_energy","professional_services","real_estate","retail_trade","telecommunications","transportation","wholesale_trade","other"],"example":"retail_trade"},"phoneNumber":{"type":"string","description":"Business contact phone number in E.164 format (business senders only)","example":"+15555551234"},"email":{"type":"string","description":"Business contact email address (business senders only)","example":"tiktok@payments.com"},"externalId":{"type":"string","description":"Your own identifier for this sender. Unique per merchant and per mode: calling this endpoint again with the same value updates the existing sender instead of creating a duplicate.","example":"MTO-SENDER-00123","maxLength":255}},"required":["externalId"]},"SenderDto":{"type":"object","properties":{"id":{"type":"string","description":"Hub2 identifier of the sender. Use it to reference the sender on a transaction.","example":"snd_V1StGXR8Z5jdHi6BmyT"},"externalId":{"type":"string","description":"Your own identifier for this sender, as supplied on creation.","example":"MTO-SENDER-00123"},"payoutType":{"type":"string","description":"Type of sender identity carried by this record.","enum":["individual","business"],"example":"individual"},"state":{"type":"string","description":"Lifecycle state of the sender. Only `approved` senders may be used to initiate a transaction.","enum":["initial","approved","rejected","banned"],"example":"approved"},"kyc":{"description":"Identity of the sender, as last submitted.","allOf":[{"$ref":"#/components/schemas/SenderCustomerInformation"}]},"screening":{"type":"object","description":"Outcome of the last sanctions screening. Absent only while no screening has completed yet.","example":{"decision":"ALLOW","reason":"NO_MATCH","screenedAt":"2026-08-07T09:15:00.000Z"}},"createdAt":{"type":"string","description":"Creation date of the sender, in ISO 8601 format.","example":"2026-08-07T09:15:00.000Z"},"updatedAt":{"type":"string","description":"Date of the last update of the sender, in ISO 8601 format.","example":"2026-08-07T09:15:00.000Z"}},"required":["id","externalId","payoutType","state","kyc","createdAt","updatedAt"]},"UpdateSenderDto":{"type":"object","properties":{"payoutType":{"type":"string","description":"Type of sender. Defaults to `individual` when omitted, preserving the existing C2C behaviour. Set to `business` to send business sender fields instead of individual ones.","enum":["individual","business"],"default":"individual","example":"individual"},"firstName":{"type":"string","description":"First name of the sender (individual senders only)","example":"Aminata"},"lastName":{"type":"string","description":"Last name of the sender (individual senders only)","example":"Traoré"},"contactPhone":{"type":"string","description":"Contact phone number of the sender (individual senders only)","example":"+2250747123456"},"dateOfBirth":{"type":"string","description":"Date of birth of the sender in YYYY-MM-DD format (individual senders only)","example":"1992-05-23"},"nationality":{"type":"string","description":"Nationality of the sender (individual senders only)","example":"CI","enum":["AF","AX","AL","DZ","AS","AD","AO","AI","AQ","AG","AR","AM","AW","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BQ","BA","BW","BV","BR","IO","BN","BG","BF","BI","KH","CM","CA","CV","KY","CF","TD","CL","CN","CX","CC","CO","KM","CG","CD","CK","CR","CI","HR","CU","CW","CY","CZ","DK","DJ","DM","DO","EC","EG","SV","GQ","ER","EE","ET","FK","FO","FJ","FI","FR","GF","PF","TF","GA","GM","GE","DE","GH","GI","GR","GL","GD","GP","GU","GT","GG","GN","GW","GY","HT","HM","VA","HN","HK","HU","IS","IN","ID","IR","IQ","IE","IM","IL","IT","JM","JP","JE","JO","KZ","KE","KI","KR","KP","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MO","MK","MG","MW","MY","MV","ML","MT","MH","MQ","MR","MU","YT","MX","FM","MD","MC","MN","ME","MS","MA","MZ","MM","NA","NR","NP","NL","NC","NZ","NI","NE","NG","NU","NF","MP","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PN","PL","PT","PR","QA","RE","RO","RU","RW","BL","SH","KN","LC","MF","PM","VC","WS","SM","ST","SA","SN","RS","SC","SL","SG","SX","SK","SI","SB","SO","ZA","GS","SS","ES","LK","SD","SR","SJ","SZ","SE","CH","SY","TW","TJ","TZ","TH","TL","TG","TK","TO","TT","TN","TR","TM","TC","TV","UG","UA","AE","GB","US","UM","UY","UZ","VU","VE","VN","VG","VI","WF","EH","YE","ZM","ZW"]},"idDocument":{"description":"ID document information of the sender (individual senders only)","allOf":[{"$ref":"#/components/schemas/IdDocumentDto"}]},"name":{"type":"string","description":"Registered legal name of the business sender (business senders only)","example":"TikTok Inc."},"countryOfIncorporation":{"type":"string","description":"Country of incorporation as an ISO 3166-1 alpha-2 code (business senders only)","example":"US"},"legalEntityType":{"type":"string","description":"Legal entity type of the business sender (business senders only)","enum":["sole_proprietorship","partnership","privately_owned_company","publicly_listed_company","government_entity","non_profit_organisation","trust","cooperative","other"],"example":"privately_owned_company"},"registrationDate":{"type":"string","description":"Business registration date in YYYY-MM-DD format, must be in the past (business senders only)","example":"2012-01-25"},"registrationNumber":{"type":"string","description":"Business registration number (business senders only)","example":"VAT1234567"},"tradingCountry":{"type":"string","description":"Trading address country as an ISO 3166-1 alpha-2 code (business senders only)","example":"US"},"tradingCity":{"type":"string","description":"Trading address city (business senders only)","example":"New York"},"tradingStreet":{"type":"string","description":"Trading address street (business senders only)","example":"20 W 34th St"},"tradingPostalCode":{"type":"string","description":"Trading address postal code (business senders only)","example":"10001"},"natureOfBusiness":{"type":"string","description":"Primary business activity of the sender (business senders only)","enum":["agriculture","construction","education","financial_services","healthcare","hospitality","information_technology","manufacturing","mining_and_energy","professional_services","real_estate","retail_trade","telecommunications","transportation","wholesale_trade","other"],"example":"retail_trade"},"phoneNumber":{"type":"string","description":"Business contact phone number in E.164 format (business senders only)","example":"+15555551234"},"email":{"type":"string","description":"Business contact email address (business senders only)","example":"tiktok@payments.com"}}},"ValidateAccountSenderDto":{"type":"object","properties":{"firstName":{"type":"string","description":"First name of the sender initiating this validation check.","example":"Aminata"},"lastName":{"type":"string","description":"Last name of the sender initiating this validation check.","example":"Traoré"}},"required":["firstName","lastName"]},"ValidateAccountRecipientDto":{"type":"object","properties":{"firstName":{"type":"string","description":"Recipient's expected first name. Used to compute a nameMatch in the response.","example":"Moussa"},"lastName":{"type":"string","description":"Recipient's expected last name. Same usage as firstName.","example":"Konaté"},"mobile":{"type":"string","description":"Recipient mobile number in E.164 format. Required for a mobile-money corridor; exclusive with accountNumber.","example":"+221771234567"},"accountNumber":{"type":"string","description":"Recipient bank account number. Required for a bank-transfer corridor; exclusive with mobile."},"bankCode":{"type":"string","description":"Bank identifier code. Required when accountNumber is provided."}},"required":["firstName","lastName"]},"ValidateAccountRequestDto":{"type":"object","properties":{"provider":{"type":"string","description":"Mobile money provider or bank identifier. Must be valid for the requested corridor.","example":"orange_money"},"corridor":{"type":"string","description":"Corridor code. Determines which last-mile partner adapter handles the check and which rail (mobile/bank) is expected.","example":"XOF_MOBILE_SENEGAL"},"sender":{"description":"Identity of the sender initiating this validation check.","allOf":[{"$ref":"#/components/schemas/ValidateAccountSenderDto"}]},"recipient":{"description":"Recipient identity and account identifier to validate.","allOf":[{"$ref":"#/components/schemas/ValidateAccountRecipientDto"}]}},"required":["provider","corridor","sender","recipient"]},"AccountHolderDto":{"type":"object","properties":{"firstName":{"type":"string","description":"First name as held by the partner, when the partner returns it.","example":"Moussa"},"lastName":{"type":"string","description":"Last name as held by the partner, when the partner returns it.","example":"Konaté"},"nameMatch":{"type":"string","description":"How the recipient identity provided in the request compares to the partner-held account. NOT_VERIFIED when the partner does not return a name-match score.","enum":["match","partial_match","no_match","not_verified"],"example":"match"}},"required":["nameMatch"]},"ValidateAccountResponseDto":{"type":"object","properties":{"status":{"type":"string","description":"Account status.","enum":["account_valid","account_not_found","account_unknown","timeout"],"example":"account_valid"},"provider":{"type":"string","description":"Provider that was checked. Echoed back from the request.","example":"orange_money"},"corridor":{"type":"string","description":"Corridor that was checked. Echoed back from the request.","example":"XOF_MOBILE_SENEGAL"},"mobile":{"type":"string","description":"Mobile number checked, masked to the last 4 digits. Present for a mobile-money corridor.","example":"+********4567"},"accountNumber":{"type":"string","description":"Bank account number checked, masked to the last 4 digits. Present for a bank-transfer corridor.","example":"******7890"},"accountHolder":{"description":"Present only when the partner returns name data; null otherwise.","nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/AccountHolderDto"}]},"validatedAt":{"type":"string","description":"UTC timestamp of the validation check.","example":"2026-08-05T13:00:00.000Z"},"advisory":{"type":"string","description":"Always present. Validation is advisory only — a valid result does not guarantee payout success.","example":"Validation is advisory only. A valid result does not guarantee payout success."}},"required":["status","provider","corridor","accountHolder","validatedAt","advisory"]},"MerchantPreferencesDto":{"type":"object","properties":{}},"SubmerchantLegalInfoDto":{"type":"object","properties":{"legalName":{"type":"string","description":"Legal name"},"headOfficeAddress":{"type":"string","description":"Legal head office address"},"businessActivity":{"type":"string","description":"Business activity"},"managerName":{"type":"string","description":"Manager name"},"websiteURL":{"type":"string","description":"Website URL"},"isBetting":{"type":"boolean","description":"Is betting"},"isCrypto":{"type":"boolean","description":"Is crypto"},"isNGO":{"type":"boolean","description":"Is NGO"}}},"SubmerchantDto":{"type":"object","properties":{"id":{"type":"string","description":"Identifier of the merchant","example":"mch_1a2b3c"},"createdAt":{"type":"string","description":"Creation date of the merchant, ISO 8601","example":"2026-08-13T09:00:00.000Z"},"name":{"type":"string","description":"Name of the merchant","example":"Submerchant Name"},"description":{"type":"string","description":"Description of the merchant"},"defaultCurrency":{"type":"string","description":"Default currency of the merchant, ISO 4217","example":"XOF"},"status":{"type":"string","description":"Status of the merchant","enum":["closed","live","sandbox","suspended","testing","initialized"]},"isActive":{"type":"boolean","description":"Whether the merchant is active"},"address":{"type":"string","description":"Address of the merchant"},"zipcode":{"type":"string","description":"Zipcode of the merchant"},"city":{"type":"string","description":"City of the merchant"},"phoneNumber":{"type":"string","description":"Phone number of the merchant"},"country":{"type":"string","description":"Country of the merchant, ISO 3166-1 alpha-2","example":"CI"},"isAggregator":{"type":"boolean","description":"Whether the merchant is an aggregator"},"members":{"description":"Identifiers of the users that are members of the merchant","type":"array","items":{"type":"string"}},"preferences":{"description":"Preferences of the merchant","allOf":[{"$ref":"#/components/schemas/MerchantPreferencesDto"}]},"internalCode":{"type":"string","description":"Internal code of the merchant"},"activity":{"type":"string","description":"Activity of the merchant","enum":["compliance","inactive_30_days","inactive_90_days","low_performer","newcomer","top_performer","watch_list"]},"merchantGroupId":{"type":"string","description":"Identifier of the group the merchant belongs to"},"details":{"type":"object","description":"Additional details of the merchant"},"enabledProducts":{"description":"Products enabled for the merchant","type":"array","items":{"type":"string"}},"legalInfo":{"description":"Legal info of the submerchant","allOf":[{"$ref":"#/components/schemas/SubmerchantLegalInfoDto"}]}},"required":["id","createdAt","name","defaultCurrency","status","isActive","isAggregator","members","activity"]},"CreateSubmerchantDto":{"type":"object","properties":{"name":{"type":"string","description":"Name of the submerchant","example":"Submerchant Name"},"description":{"type":"string","description":"Description of the submerchant","example":"Submerchant description"},"address":{"type":"string","description":"Address of the submerchant","example":"123 Main St"},"zipcode":{"type":"string","description":"Zipcode of the submerchant","example":"12345"},"city":{"type":"string","description":"City of the submerchant","example":"New York"},"phoneNumber":{"type":"string","description":"Phone number of the submerchant","example":"+1234567890"},"legalInfo":{"description":"Legal info of the submerchant","allOf":[{"$ref":"#/components/schemas/SubmerchantLegalInfoDto"}]}},"required":["name","description"]},"UpdateSubmerchantDto":{"type":"object","properties":{"name":{"type":"string","description":"Name of the submerchant","example":"Updated Submerchant Name"},"description":{"type":"string","description":"Description of the submerchant","example":"Updated submerchant description"},"address":{"type":"string","description":"Address of the submerchant","example":"456 Updated St"},"zipcode":{"type":"string","description":"Zipcode of the submerchant","example":"54321"},"city":{"type":"string","description":"City of the submerchant","example":"London"},"phoneNumber":{"type":"string","description":"Phone number of the submerchant","example":"+9876543210"},"legalInfo":{"description":"Legal info of the submerchant. Merged into the stored one, incoming winning per sub-field: a sub-field left out or set to null keeps its stored value.","allOf":[{"$ref":"#/components/schemas/SubmerchantLegalInfoDto"}]}}},"PaymentMobileMoneyDto":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the Payment","example":"pay_QW2d6JnqiatcH8KhK0mD1"},"intentId":{"type":"string","description":"Unique identifier for the PaymentIntent owning this Payment","example":"pi_z1urYtVFgEebtcj8fxp4v"},"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"},"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"},"status":{"type":"string","description":"Current status of this Payment","enum":["created","failed","pending","successful"],"example":"successful"},"amount":{"type":"number","description":"Amount intended to be collected by this payment. 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},"currency":{"type":"string","description":"Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html).","example":"XOF"},"method":{"type":"string","description":"The method selected by the customer to make this Payment","example":"mobile_money","enum":["mobile_money","credit_card","bank_transfer","instant_payment"],"title":"Mobile money"},"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"},"failure":{"description":"In case of a Payment attempt failure, this object will describe the reason of the failure","title":"PaymentFailureCause","allOf":[{"$ref":"#/components/schemas/PaymentFailureCauseDto"}]},"fees":{"description":"Some fees may be applied on a Payment. This array provides information of the fees that could have been applied on this Payment.","title":"PaymentFee","type":"array","items":{"$ref":"#/components/schemas/PaymentFeeDto"}},"nextAction":{"description":"Action required to execute to continue the processing of this Payment. The action allows the customer to validate the Payment.\n    - A redirection action provides all the information to redirect the customer to an external page,\n    - A ussd action provides a message to display to the user for the validation of the Payment. He will receive a USSD message on his phone describing how to make the validation,\n    - A otp action requires that you display an input to the customer to collect an OTP. A message is provided to explains to the user how to get this OTP. Then, the client will have to send the authentication request.\n    ","title":"NextAction","allOf":[{"$ref":"#/components/schemas/NextActionDto"}]},"providerReference":{"type":"string","description":"provider reference that identify this payment","title":"providerReference"},"gatewayId":{"type":"string","description":"gatewayId used for this payment (Mobile Money Only)","title":"gatewayId"},"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,\n    - In case of a payment by Credit Card, it corresponds to the four last digits of the customer's credit card number."},"paymentInformation":{"description":"Optional beneficiary metadata (hashed identifiers) attached to this payment.","allOf":[{"$ref":"#/components/schemas/PaymentInformationDto"}]},"isDelegated":{"type":"boolean","description":"Indicates whether this payment is a delegated payment."},"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"}},"required":["id","intentId","createdAt","updatedAt","status","amount","currency","method","country","fees","providerReference","gatewayId","number","provider"]},"PaymentCreditCardDto":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the Payment","example":"pay_QW2d6JnqiatcH8KhK0mD1"},"intentId":{"type":"string","description":"Unique identifier for the PaymentIntent owning this Payment","example":"pi_z1urYtVFgEebtcj8fxp4v"},"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"},"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"},"status":{"type":"string","description":"Current status of this Payment","enum":["created","failed","pending","successful"],"example":"successful"},"amount":{"type":"number","description":"Amount intended to be collected by this payment. 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},"currency":{"type":"string","description":"Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html).","example":"XOF"},"method":{"type":"string","description":"The method selected by the customer to make this Payment","example":"credit_card","enum":["mobile_money","credit_card","bank_transfer","instant_payment"],"title":"Credit card"},"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"},"failure":{"description":"In case of a Payment attempt failure, this object will describe the reason of the failure","title":"PaymentFailureCause","allOf":[{"$ref":"#/components/schemas/PaymentFailureCauseDto"}]},"fees":{"description":"Some fees may be applied on a Payment. This array provides information of the fees that could have been applied on this Payment.","title":"PaymentFee","type":"array","items":{"$ref":"#/components/schemas/PaymentFeeDto"}},"nextAction":{"description":"Action required to execute to continue the processing of this Payment. The action allows the customer to validate the Payment.\n    - A redirection action provides all the information to redirect the customer to an external page,\n    - A ussd action provides a message to display to the user for the validation of the Payment. He will receive a USSD message on his phone describing how to make the validation,\n    - A otp action requires that you display an input to the customer to collect an OTP. A message is provided to explains to the user how to get this OTP. Then, the client will have to send the authentication request.\n    ","title":"NextAction","allOf":[{"$ref":"#/components/schemas/NextActionDto"}]},"providerReference":{"type":"string","description":"provider reference that identify this payment","title":"providerReference"},"gatewayId":{"type":"string","description":"gatewayId used for this payment (Mobile Money Only)","title":"gatewayId"},"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,\n    - In case of a payment by Credit Card, it corresponds to the four last digits of the customer's credit card number."},"paymentInformation":{"description":"Optional beneficiary metadata (hashed identifiers) attached to this payment.","allOf":[{"$ref":"#/components/schemas/PaymentInformationDto"}]},"isDelegated":{"type":"boolean","description":"Indicates whether this payment is a delegated payment."},"onSuccessRedirectionUrl":{"type":"string","description":"The url used to redirect the user after a transaction is successful.","example":"https://my.website.com/finish"},"onFailedRedirectionUrl":{"type":"string","description":"The url used to redirect the user after a transaction fails","example":"https://my.website.com/cancel"},"billing":{"type":"object","description":"Informations about order and credit card owner"}},"required":["id","intentId","createdAt","updatedAt","status","amount","currency","method","country","fees","providerReference","gatewayId","number","onSuccessRedirectionUrl","onFailedRedirectionUrl","billing"]},"PaymentBankTransferDto":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the Payment","example":"pay_QW2d6JnqiatcH8KhK0mD1"},"intentId":{"type":"string","description":"Unique identifier for the PaymentIntent owning this Payment","example":"pi_z1urYtVFgEebtcj8fxp4v"},"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"},"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"},"status":{"type":"string","description":"Current status of this Payment","enum":["created","failed","pending","successful"],"example":"successful"},"amount":{"type":"number","description":"Amount intended to be collected by this payment. 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},"currency":{"type":"string","description":"Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html).","example":"XOF"},"method":{"type":"string","description":"The method selected by the customer to make this Payment","example":"bank_transfer","enum":["mobile_money","credit_card","bank_transfer","instant_payment"],"title":"Bank transfer"},"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"},"failure":{"description":"In case of a Payment attempt failure, this object will describe the reason of the failure","title":"PaymentFailureCause","allOf":[{"$ref":"#/components/schemas/PaymentFailureCauseDto"}]},"fees":{"description":"Some fees may be applied on a Payment. This array provides information of the fees that could have been applied on this Payment.","title":"PaymentFee","type":"array","items":{"$ref":"#/components/schemas/PaymentFeeDto"}},"nextAction":{"description":"Action required to execute to continue the processing of this Payment. The action allows the customer to validate the Payment.\n    - A redirection action provides all the information to redirect the customer to an external page,\n    - A ussd action provides a message to display to the user for the validation of the Payment. He will receive a USSD message on his phone describing how to make the validation,\n    - A otp action requires that you display an input to the customer to collect an OTP. A message is provided to explains to the user how to get this OTP. Then, the client will have to send the authentication request.\n    ","title":"NextAction","allOf":[{"$ref":"#/components/schemas/NextActionDto"}]},"providerReference":{"type":"string","description":"provider reference that identify this payment","title":"providerReference"},"gatewayId":{"type":"string","description":"gatewayId used for this payment (Mobile Money Only)","title":"gatewayId"},"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,\n    - In case of a payment by Credit Card, it corresponds to the four last digits of the customer's credit card number."},"paymentInformation":{"description":"Optional beneficiary metadata (hashed identifiers) attached to this payment.","allOf":[{"$ref":"#/components/schemas/PaymentInformationDto"}]},"isDelegated":{"type":"boolean","description":"Indicates whether this payment is a delegated payment."},"provider":{"type":"string","description":"The name of the provider (bank) selected by the customer, in lowercase. The list of supported providers can be found at [/data/providers](#operation/DataController_getProviders)","example":"Bankname"},"bankTransferReference":{"type":"string","description":"Reference that must be used to make the bank transfer","example":"102D250401Z8F2A025"},"expirationDate":{"format":"date-time","type":"string","description":"Datetime in UTC timezone at which this payment will expire. Follows the [Datetime ISO](https://en.wikipedia.org/wiki/ISO_8601).","example":"2025-04-15T12:09:49.355Z"}},"required":["id","intentId","createdAt","updatedAt","status","amount","currency","method","country","fees","providerReference","gatewayId","number","provider","bankTransferReference","expirationDate"]},"CreatePaymentIntentDto":{"type":"object","properties":{"customerReference":{"type":"string","description":"This is a custom field you can fill with any reference you have on your side matching this payment intent.\n    It can allow you to make a correspondence with this payment intent in your system.\n    This field is specifically useful for customer's references, like your customer ID.","example":"cust_01924059"},"purchaseReference":{"type":"string","description":"This is a custom field you can fill with any reference you have on your side matching this payment intent.\n    It can allow you to make a correspondence with this payment intent in your system.\n    This field is specifically useful for purchase's references, like an order your customer made.","example":"ref_2020_11_10_001"},"amount":{"type":"number","description":"Amount intended to be collected by this payment intent.\n    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},"currency":{"type":"string","description":"Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html).","example":"XOF"},"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":"My wonderful business"}},"required":["customerReference","purchaseReference","amount","currency"]},"PaymentIntentDto":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the PaymentIntent","example":"pi_z1urYtVFgEebtcj8fxp4v"},"merchantId":{"type":"string","description":"Identifier of the merchant owning this PaymentIntent"},"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"},"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"},"token":{"type":"string","description":"A unique [JSON Web Token](https://en.wikipedia.org/wiki/JSON_Web_Token) allowing to attempt a Payment on the PaymentIntent on a client-side application. It expires 30 minutes after the PaymentIntent creation: paying or authenticating with it is then refused with a 401 `bad_payment_intent_token` error, and reading the PaymentIntent with it (status, details, fees) is refused the same way 15 minutes later.","example":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtZXJjaGFudElkIjoiMTYiLCJtb2RlIjoic2FuZGJveCIsInBheW1lbnRJZCI6InBpX3oxdXJZdFZGZ0VlYnRjajhmeHA0diIsImlhdCI6MTYwMjc1OTE4M30.OZ0fDnMVWvcT-gRthyBD58PFC20gabGKt1UPRe4aNi4"},"purchaseReference":{"type":"string","description":"A reference provided by the client during the creation of this PaymentIntent","example":"ref_2020_11_10_001"},"customerReference":{"type":"string","description":"A reference provided by the client during the creation of this PaymentIntent. It is a reference to the customer for who this PaymentIntent was created.","example":"cust_01924059"},"status":{"type":"string","description":"The current status of this PaymentIntent","example":"successful","enum":["action_required","canceled","failed","payment_required","processing","successful"]},"amount":{"type":"number","description":"Amount intended to be collected by this PaymentIntent. 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},"currency":{"type":"string","description":"Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html).","example":"XOF"},"payments":{"type":"array","description":"List of Payment attempts made on this PaymentIntent, most recently updated first. The same order applies to every endpoint and webhook returning a PaymentIntent. It is an update order: the latest attempt is the one with the most recent createdAt, which is not necessarily the first element.","title":"Payment","items":{"oneOf":[{"$ref":"#/components/schemas/PaymentCreditCardDto"},{"$ref":"#/components/schemas/PaymentMobileMoneyDto"},{"$ref":"#/components/schemas/PaymentBankTransferDto"}]},"discriminator":{"propertyName":"method","mapping":{"mobile_money":"#/components/schemas/PaymentMobileMoneyDto","credit_card":"#/components/schemas/PaymentCreditCardDto","bank_transfer":"#/components/schemas/PaymentBankTransferDto"}}},"mode":{"type":"string","description":"Mode in which this PaymentIntent 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"]},"nextAction":{"description":"Action required to execute to continue the processing of the current Payment on this PaymentIntent. The action allows the customer to validate the Payment.\n    - A redirection action provides all the information to redirect the customer to an external page,\n    - A ussd action provides a message to display to the user for the validation of the Payment. He will receive a USSD message on his phone describing how to make the validation,\n    - A otp action requires that you display an input to the customer to collect an OTP. A message is provided to explains to the user how to get this OTP. Then, the client will have to send the authentication request.\n    ","title":"NextAction","allOf":[{"$ref":"#/components/schemas/NextActionDto"}]},"lastPaymentFailure":{"description":"In case of a Payment attempt failure, this object will describe the reason of the failure","title":"PaymentFailureCause","allOf":[{"$ref":"#/components/schemas/PaymentFailureCauseDto"}]},"overrideBusinessName":{"type":"string","description":"For Aggregator, name of the  merchant","example":"MyBusiness"},"subMerchantId":{"type":"string","description":"Submerchant ID","example":"submerchant_123"}},"required":["id","merchantId","createdAt","updatedAt","token","purchaseReference","customerReference","status","amount","currency","payments","mode"]},"PayMobileMoneyDto":{"type":"object","properties":{"msisdn":{"type":"string","description":"The phone number associated to the Mobile Money account used to make the transaction.","example":"15948253"},"otp":{"type":"string","description":"Some providers ask the customer to generate an OTP to allow the payment.\n    Hub2 handle this in a two-step process if the selected provider ask for an OTP.\n    But in some case, the client prefers to make a one-step process in which the payment and the authentication are done at same time.\n    Hub2 allows this by accepting an OTP to be provided during the payment attempt step."},"onSuccessRedirectionUrl":{"type":"string","description":"Only for payment using provider Wave.\n    The URL the customer will be directed to if the payment succeeds.\n    You must provide a fully-qualified address using https as the scheme.\n    You may include any information you need in the path itself or in query parameters."},"onFailedRedirectionUrl":{"type":"string","description":"Only for payment using provider Wave.\n    The URL the customer will be directed to if an error occurs on the payment attempt.\n    You must provide a fully-qualified address using https as the scheme.\n    You may include any information you need in the path itself or in query parameters."},"onCancelRedirectionUrl":{"type":"string","description":"Only for payment using provider Orange with the redirection workflow.\n    The URL the customer will be directed to if he cancels the payment.\n    You must provide a fully-qualified address using https as the scheme.\n    You may include any information you need in the path itself or in query parameters."},"onFinishRedirectionUrl":{"type":"string","description":"Only for payment using provider Orange with the redirection workflow.\n    The URL the customer will be directed to when the payment finish and the return link is clicked.\n    You must provide a fully-qualified address using https as the scheme.\n    You may include any information you need in the path itself or in query parameters."},"workflow":{"type":"string","description":"Only for payment using provider Orange.\n    If you choose to set this parameter to 'redirection', you will be provided a redirection URL.\n    Your clients must be redirected to this url for them to finalize payment.\n    Otherwise it will follow our conventional workflow with OTP."}},"required":["msisdn"]},"PayCreditCardBilling":{"type":"object","properties":{"username":{"type":"string","description":"Username of the customer"},"userId":{"type":"string","description":"User ID of the customer"},"phoneNumber":{"type":"string","description":"The phone number of the customer"},"email":{"type":"string","description":"The email of the customer"},"orderId":{"type":"string","description":"The order ID associated with the transaction"}}},"PayCreditCardDto":{"type":"object","properties":{"billing":{"description":"Informations about order and credit card owner","allOf":[{"$ref":"#/components/schemas/PayCreditCardBilling"}]},"useHub2ReceiptPage":{"type":"boolean","description":"When set to true, Hub2 receipt page is displayed after payment"},"onSuccessRedirectionUrl":{"type":"string","description":"The url used to redirect the user when the transaction is successful"},"onFailedRedirectionUrl":{"type":"string","description":"The url used to redirect the user when the transaction is failed"}}},"PayBankTransferDto":{"type":"object","properties":{"expirationDelay":{"type":"number","description":"Number of seconds until the payment expires.","example":3600,"default":1296000,"minimum":3600},"kybName":{"type":"string","description":"Name of the aggregated merchant declared in the kyb","example":"MechantName"}},"required":["kybName"]},"PayInstantPaymentDto":{"type":"object","properties":{"payerAlias":{"type":"string","description":"The alias identifying the payer — a SHID key, a merchant code, or a mobile number in E.164 form. Its existence is not checked here; the rail answers that.","example":"+2250700000001","maxLength":64},"payeeAlias":{"type":"string","description":"The alias of the collection account the funds are to reach. It must belong to the calling merchant.","example":"7c9e6679-7425-40de-944b-e07fc1f90ae7","maxLength":64}},"required":["payerAlias","payeeAlias"]},"PayDto":{"type":"object","properties":{"token":{"type":"string","description":"The token which identify a payment intent. This is a field returned at payment intent creation.","example":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpbnRlbnRJZCI6InBpXzBkeV9GZTJXQl8wNVVBdDdqMFloaSIsIm1lcmNoYW50SWQiOiIzIiwibW9kZSI6InNhbmRib3giLCJpYXQiOjE2OTUxMjY1MDJ9.8cpkja3PgSLFXiMW9BJN3ec5ndJFE2kIHvXvc834Wpo"},"paymentMethod":{"type":"string","description":"The method selected by the customer to make the payment.","enum":["mobile_money","credit_card","bank_transfer","instant_payment"]},"country":{"type":"string","description":"Two-letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). Represents the country where the selected provider is located.","example":"CI"},"provider":{"type":"string","description":"The name of the selected provider in lowercase. The list of supported providers can be found at [/data/providers](#operation/DataController_getProviders).\n    If type is 'bank_transfer', provider will be optionnal and will be a bank name"},"mobileMoney":{"title":"MobileMoney","allOf":[{"$ref":"#/components/schemas/PayMobileMoneyDto"}]},"creditCard":{"title":"CreditCard","allOf":[{"$ref":"#/components/schemas/PayCreditCardDto"}]},"bankTransfer":{"title":"BankTransfer","allOf":[{"$ref":"#/components/schemas/PayBankTransferDto"}]},"instantPayment":{"title":"InstantPayment","allOf":[{"$ref":"#/components/schemas/PayInstantPaymentDto"}]},"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"},"paymentInformation":{"description":"Optional hashed metadata about the payment beneficiary (compliance / fraud). All identifiers must be hashed or pseudonymized.","allOf":[{"$ref":"#/components/schemas/PaymentInformationDto"}]}},"required":["token","paymentMethod","country"]},"AuthenticateDto":{"type":"object","properties":{"token":{"type":"string","description":"The token which identify a payment intent. This is a field returned at payment intent creation.","example":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpbnRlbnRJZCI6InBpXzBkeV9GZTJXQl8wNVVBdDdqMFloaSIsIm1lcmNoYW50SWQiOiIzIiwibW9kZSI6InNhbmRib3giLCJpYXQiOjE2OTUxMjY1MDJ9.8cpkja3PgSLFXiMW9BJN3ec5ndJFE2kIHvXvc834Wpo"},"confirmationCode":{"type":"string","description":"The OTP code given by the provider selected by the customer."}},"required":["token","confirmationCode"]},"MerchantPreferencesUrl":{"type":"object","properties":{"onSuccessRedirectionUrl":{"type":"string","description":"Redirection url on success","title":"onSuccessRedirectionUrl"},"onFailRedirectionUrl":{"type":"string","description":"Redirection url on fail","title":"onFailRedirectionUrl"},"onCancelRedirectionUrl":{"type":"string","description":"Redirection url on cancel","title":"onCancelRedirectionUrl"}},"required":["onSuccessRedirectionUrl","onFailRedirectionUrl","onCancelRedirectionUrl"]},"ApiBadPaymentIntentTokenError":{"type":"object","properties":{"status":{"type":"number","description":"HTTP error code.","example":401},"error":{"description":"HTTP error description.","allOf":[{"$ref":"#/components/schemas/InternalApiUnauthorizedError"}]},"code":{"type":"string","description":"Error code","enum":["api_error","transaction_error","invalid_request","rate_limit_error","authorization_error","connection_error","policy_error"],"example":"bad_payment_intent_token"},"message":{"type":"string","description":"Detailed error message which describe what happened.","example":"The provided token is incorrect"}},"required":["status","error","code","message"]},"PaymentIntentStatusDto":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the Payment intent","example":"pi_QW2d6JnqiatcH8KhK0mD1"},"status":{"type":"string","description":"Current status of this Payment intent","enum":["action_required","canceled","failed","payment_required","processing","successful"],"example":"successful"}},"required":["id","status"]},"PaymentStatusDto":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the Payment","example":"pay_QW2d6JnqiatcH8KhK0mD1"},"status":{"type":"string","description":"Current status of this Payment","enum":["created","failed","pending","successful"],"example":"successful"},"isDelegated":{"type":"boolean","description":"Whether this payment was created via delegation","example":false}},"required":["id","status"]},"ProvisioningDepositDto":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the Transaction","example":"dep_z1urYtVFgEebtcj8fxp4v"},"type":{"type":"string","description":"Type of this Transaction","example":"deposit"},"date":{"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"},"amount":{"type":"number","description":"Transaction amount. 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},"currency":{"type":"string","description":"Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html).","example":"XOF"}},"required":["id","type","date","amount","currency"]},"ProvisioningWithdrawalDto":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the Transaction","example":"wtd_z1urYtVFgEebtcj8fxp4v"},"type":{"type":"string","description":"Type of this Transaction","example":"withdrawal"},"date":{"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"},"amount":{"type":"number","description":"Transaction amount. 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},"currency":{"type":"string","description":"Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html).","example":"XOF"}},"required":["id","type","date","amount","currency"]},"CreateProvisioningDto":{"type":"object","properties":{"amount":{"type":"number","description":"Amount intended to be moved from CollectionAccount to TransferAccount. 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},"currency":{"type":"string","description":"Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html).","example":"XOF"},"description":{"type":"string","description":"An arbitrary string attached to the Transfer. Mostly useful for displaying to user. "}},"required":["amount","currency","description"]},"ProvisioningFailureCauseDto":{"type":"object","properties":{}},"ProvisioningDto":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the Provisioning","example":"prov_z1urYtVFgEebtcj8fxp4v"},"status":{"type":"string","description":"Type of this Transaction","example":"pending"},"date":{"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"},"withdrawal":{"description":"Transaction executed on the merchant collectionAccount","allOf":[{"$ref":"#/components/schemas/ProvisioningWithdrawalDto"}]},"deposit":{"description":"Transaction executed on the merchant transferAccount","allOf":[{"$ref":"#/components/schemas/ProvisioningDepositDto"}]},"description":{"type":"string","description":"An arbitrary string attached to the Transfer. Mostly useful for displaying to user. "},"failureCause":{"description":"Failure cause explaining why the Provisioning failed. ","allOf":[{"$ref":"#/components/schemas/ProvisioningFailureCauseDto"}]}},"required":["id","status","date","description"]},"ReceiptDto":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the Receipt","example":"rc_z1urYtVFgEebtcj8fxp4v"},"date":{"type":"string","description":"Datetime in UTC timezone at which the associated transaction was successful.\n      Follows the [Datetime ISO](https://en.wikipedia.org/wiki/ISO_8601).","example":"2020-10-15T12:16:26.128Z"},"description":{"type":"string","description":"An arbitrary string attached to the Transfer. Mostly useful for displaying to user. "},"transactionId":{"type":"string","description":"Unique identifier for the associated transaction"},"operatorReference":{"type":"string","description":"Merchant transaction number"},"reference":{"type":"string","description":"Customer transaction number"},"customerNumber":{"type":"string","description":"Customer full identifier (aka msisdn, ..)"},"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},"currency":{"type":"string","description":"Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html).","example":"XOF"},"method":{"type":"string","description":"The method selected to make this Transfer","example":"mobile_money","enum":["mobile_money","bank_transfer","airtime","instant_payment"]},"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"},"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"},"mode":{"type":"string","description":"Mode in which this PaymentIntent 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"]}},"required":["id","date","description","transactionId","operatorReference","reference","customerNumber","amount","currency","method","country","provider","mode"]},"ReceiptHtmlView":{"type":"object","properties":{}},"ReceiptHtmlDto":{"type":"object","properties":{"view":{"description":"Receipt HTML view","example":"<html>...</html>","allOf":[{"$ref":"#/components/schemas/ReceiptHtmlView"}]}},"required":["view"]},"TerminalPayDto":{"type":"object","properties":{"customerReference":{"type":"string","description":"A reference to the customer for who this PaymentIntent exists.\n    This reference allows you to make correspondance in your system.","example":"cust_01924059"},"purchaseReference":{"type":"string","description":"A reference to the customer for who this PaymentIntent exists.\n    This reference allows you to make correspondance in your system.","example":"ref_2020_11_10_001"},"amount":{"type":"number","description":"Amount intended to be collected by this PaymentIntent. 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},"currency":{"type":"string","description":"Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html).","example":"XOF"},"paymentMethod":{"type":"string","description":"The method selected by the customer to make this Payment.","enum":["mobile_money","credit_card","bank_transfer","instant_payment"]},"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"},"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"},"mobileMoney":{"title":"MobileMoney","allOf":[{"$ref":"#/components/schemas/PayMobileMoneyDto"}]},"paymentInformation":{"description":"Optional hashed metadata about the payment beneficiary (compliance / fraud).","allOf":[{"$ref":"#/components/schemas/PaymentInformationDto"}]}},"required":["customerReference","purchaseReference","amount","currency","paymentMethod","country","provider","mobileMoney"]},"MTMobileMoneyDto":{"type":"object","properties":{"type":{"type":"string","description":"The method selected to make this Transfer","example":"mobile_money","enum":["mobile_money","bank_transfer","airtime","instant_payment"]},"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"},"recipientName":{"type":"string","description":"The name of the recipient of this transfer."},"msisdn":{"type":"string","description":"The Mobile Money number to which the money must be sent."},"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"}},"required":["type","country","msisdn","provider"]},"MTBankTransferDto":{"type":"object","properties":{"type":{"type":"string","description":"The method selected to make this Transfer","example":"mobile_money","enum":["mobile_money","bank_transfer","airtime","instant_payment"]},"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"},"recipientName":{"type":"string","description":"The name of the recipient of this transfer."},"accountNumber":{"type":"string","description":"The Bank account number to which the money must be sent."},"accountOwner":{"type":"string","description":"The Bank account owner name to which the money must be sent."},"bankCode":{"type":"string","description":"The Bank code. The list of available bank codes can be found at [/data/bank-codes](#Data/PublicDataController_getBanks)"},"bankName":{"type":"string","description":"The Bank name."},"beneficiaryPhone":{"type":"string","description":"The benificiary number"}},"required":["type","country","accountNumber","accountOwner","bankCode","beneficiaryPhone"]},"MTAirtimeDto":{"type":"object","properties":{"type":{"type":"string","description":"The method selected to make this Transfer","example":"mobile_money","enum":["mobile_money","bank_transfer","airtime","instant_payment"]},"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"},"recipientName":{"type":"string","description":"The name of the recipient of this transfer."},"msisdn":{"type":"string","description":"The Airtime number to which the money must be sent."},"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"}},"required":["type","country","msisdn","provider"]},"MTInstantPaymentDto":{"type":"object","properties":{"type":{"type":"string","description":"The method selected to make this Transfer","example":"instant_payment","enum":["mobile_money","bank_transfer","airtime","instant_payment"]},"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"},"recipientName":{"type":"string","description":"The name of the recipient of this transfer."},"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}},"required":["type","country","payeeAlias"]},"InstantPaymentDto":{"type":"object","properties":{"type":{"type":"string","description":"The method selected to make this Transfer","example":"instant_payment","enum":["mobile_money","bank_transfer","airtime","instant_payment"]},"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"},"recipientName":{"type":"string","description":"recipient's Name"},"provider":{"type":"string","description":"The provider serving this destination. Always `pispi` for instant payment.","example":"pispi"},"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"},"payeeAlias":{"type":"string","description":"The alias of the beneficiary paid, as supplied on the request.","example":"+2250700000009"}},"required":["type","country","provider"]},"MakeTransferDto":{"type":"object","properties":{"reference":{"type":"string","description":"A reference provided by the client during the creation of this Transfer","example":"ref_2020_11_10_001"},"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},"currency":{"type":"string","description":"Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html).","example":"XOF"},"description":{"type":"string","description":"An arbitrary string attached to the Transfer. Mostly useful for displaying to user. "},"origin":{"description":"Information about the sender","allOf":[{"$ref":"#/components/schemas/OriginDto"}]},"destination":{"description":"Information about the recipient of this Transfer","oneOf":[{"$ref":"#/components/schemas/MTMobileMoneyDto"},{"$ref":"#/components/schemas/MTBankTransferDto"},{"$ref":"#/components/schemas/MTAirtimeDto"},{"$ref":"#/components/schemas/MTInstantPaymentDto"}],"discriminator":{"propertyName":"type","mapping":{"bank_transfer":"#/components/schemas/MTBankTransferDto","mobile_money":"#/components/schemas/MTMobileMoneyDto","airtime":"#/components/schemas/MTAirtimeDto","instant_payment":"#/components/schemas/MTInstantPaymentDto"}},"title":"Destination"},"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"},"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"},"transferInformation":{"description":"Optional merchant-defined payment metadata. Persisted and returned on the transfer.","example":{"recipient_name_hashmac":"hash_xyz_789","transaction_purpose":"SALARY"},"allOf":[{"$ref":"#/components/schemas/TransferInformationDto"}]}},"required":["reference","amount","currency","description","destination"]},"TransferDtoAlias":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the Transfer","example":"tr_z1urYtVFgEebtcj8fxp4v"},"merchantId":{"type":"string","description":"Identifier of the merchant owning this Transfer"},"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"},"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"},"reference":{"type":"string","description":"A reference provided by the client during the creation of this Transfer","example":"ref_2020_11_10_001"},"description":{"type":"string","description":"An arbitrary string attached to the Transfer. Mostly useful for displaying to user. "},"status":{"type":"string","description":"The current status of this Transfer","example":"successful","enum":["created","successful","pending","failed"]},"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},"currency":{"type":"string","description":"Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html).","example":"XOF"},"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"]},"destination":{"description":"Information about the recipient of this Transfer","oneOf":[{"$ref":"#/components/schemas/MobileMoneyDto"},{"$ref":"#/components/schemas/BankTransferDto"},{"$ref":"#/components/schemas/AirtimeDto"},{"$ref":"#/components/schemas/InstantPaymentDto"}],"discriminator":{"propertyName":"type","mapping":{"bank_transfer":"#/components/schemas/BankTransferDto","mobile_money":"#/components/schemas/MobileMoneyDto","airtime":"#/components/schemas/AirtimeDto","instant_payment":"#/components/schemas/InstantPaymentDto"}},"title":"Destination"},"fees":{"description":"Fees applied to merchant's transfer-account uppon success","title":"TransferFee","type":"array","items":{"$ref":"#/components/schemas/TransferFeeDto"}},"failureCause":{"description":"In case of failure, this object will describe the reason of the failure","title":"TransferFailureCause","allOf":[{"$ref":"#/components/schemas/TransferFailureCauseDto"}]},"origin":{"description":"Information about the origin of this transfer","title":"Origin","allOf":[{"$ref":"#/components/schemas/OriginDto"}]},"overrideBusinessName":{"type":"string","description":"override business name for aggregator","title":"overrideBusinessName"},"overrideBusinessId":{"type":"string","description":"override business id for merchant","title":"overrideBusinessId"},"isIrt":{"type":"boolean","description":"indicate if the transfer was international","title":"isIrt"},"providerReference":{"type":"string","description":"provider reference that identify this transfer","title":"providerReference"},"gatewayId":{"type":"string","description":"The gateway ID used for this transfer","title":"gatewayId"},"isDelegated":{"type":"boolean","description":"Indicates if the transfer is delegated","title":"isDelegated"},"aggregatedMerchantId":{"type":"string","description":"Aggregated merchant id","title":"aggregatedMerchantId"},"providerData":{"type":"object","description":"Provider informations","title":"providerData"},"subMerchantId":{"type":"string","description":"Submerchant ID","example":"submerchant_123"},"transferInformation":{"description":"Merchant-defined payment metadata from transfer creation.","example":{"recipient_name_hashmac":"hash_xyz_789","transaction_purpose":"SALARY"},"allOf":[{"$ref":"#/components/schemas/TransferInformationDto"}]},"balanceBefore":{"type":"number","description":"Computed balance before the transfer is executed."},"balanceAfter":{"type":"number","description":"Real available balance right after the transfer is executed."}},"required":["id","merchantId","createdAt","updatedAt","reference","description","status","amount","currency","mode","destination","fees","isIrt","providerReference","gatewayId","isDelegated","aggregatedMerchantId"]},"TransferStatusDto":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the Transfer","example":"tr_z1urYtVFgEebtcj8fxp4v"},"status":{"type":"string","description":"The current status of this Transfer","example":"successful","enum":["created","successful","pending","failed"]}},"required":["id","status"]},"ConsentDto":{"type":"object","properties":{"given":{"type":"boolean","description":"Must be true — an absent, false, or omitted consent object causes the enrollment to be rejected.","example":true},"timestamp":{"type":"string","description":"ISO-8601 timestamp of when the customer gave consent.","example":"2026-07-03T10:00:00.000Z"},"reference":{"type":"string","description":"Your reference identifying this consent record on your side. Letters, digits and hyphens only — any other character causes the enrollment to be rejected by the recurring-billing provider, so it is refused here instead.","example":"consent-01924059","maxLength":64}},"required":["given","timestamp","reference"]},"CreateSubscriptionIntentDto":{"type":"object","properties":{"customerReference":{"type":"string","description":"Your reference for the customer being enrolled in card-on-file.","example":"cust_01924059","maxLength":255},"email":{"type":"string","description":"Customer email, to which the enrollment and recurring-debit notifications are sent.","example":"customer@example.com"},"amount":{"type":"number","description":"Recurring debit amount, in the smallest currency unit (e.g. 100 cents to charge €1.00). This is distinct from any amount charged at enrollment time.","example":5000,"maximum":9999999999},"currency":{"type":"string","description":"Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html).","example":"XOF"},"frequency":{"type":"string","description":"Recurring debit frequency.","enum":["weekly","monthly"],"example":"monthly"},"startDate":{"type":"string","description":"ISO-8601 date of the first recurring debit.","example":"2026-08-01"},"consent":{"description":"Required — per the Visa Stored Credential Framework, no card-on-file enrollment can start without an explicit, timestamped consent. Absent or invalid consent causes the enrollment to be rejected.","allOf":[{"$ref":"#/components/schemas/ConsentDto"}]},"onSuccessRedirectionUrl":{"type":"string","description":"The url used to redirect the user when the enrollment is successful. You must provide a fully-qualified address using https as the scheme.","maxLength":2084},"onFailedRedirectionUrl":{"type":"string","description":"The url used to redirect the user when the enrollment fails. You must provide a fully-qualified address using https as the scheme.","maxLength":2084}},"required":["customerReference","email","amount","currency","frequency","startDate","consent"]},"SubscriptionIntentResponseDto":{"type":"object","properties":{"paymentId":{"type":"string","description":"Id of the underlying enrollment payment."},"status":{"type":"string","enum":["successful","failed","pending","action_required"]},"action":{"description":"Present when status is \"action_required\". Same shape as a regular payment's nextAction (see PaymentDto) — build and auto-submit a form from action.data.{url, method, data} to complete card enrollment on the hosted card page.","allOf":[{"$ref":"#/components/schemas/NextActionDto"}]}},"required":["paymentId","status"]},"EnrollmentStatusResponseDto":{"type":"object","properties":{"paymentId":{"type":"string","description":"Id of the underlying enrollment payment, as returned by POST /subscription-intents."},"status":{"type":"string","enum":["successful","failed","pending","action_required"],"description":"\"pending\" while the enrollment link has been issued but nothing came back yet, \"action_required\" once the payer has been redirected to the card issuer's page, \"successful\" once the subscription has actually been recorded, and \"failed\" when the enrollment was refused or could not be recorded. A payer who never completes the page stays \"action_required\" — it is never reported as \"failed\"."},"failureCause":{"description":"Present when status is \"failed\". Same shape and same codes as a regular payment's failureCause.","allOf":[{"$ref":"#/components/schemas/PaymentFailureCauseDto"}]},"createdAt":{"format":"date-time","type":"string","description":"When the enrollment link was issued."},"updatedAt":{"format":"date-time","type":"string","description":"When the enrollment last changed state."}},"required":["paymentId","status","createdAt","updatedAt"]},"SubscriptionResponseDto":{"type":"object","properties":{"id":{"type":"number","description":"Subscription identifier — pass this into the cancel/suspend endpoints."},"cybersourceSubscriptionId":{"type":"object","nullable":true,"description":"Same value received as `subscriptionId` in the `subscription.created` webhook payload. Null for a merchant_initiated subscription — there is no RBS-side subscription."},"status":{"type":"string","enum":["created","pending","active","delinquent","suspended","cancelled","completed"]},"frequency":{"type":"string","enum":["weekly","monthly"],"nullable":true,"description":"Null for a merchant_initiated subscription — charges are on-demand, not scheduled."},"amount":{"type":"object","nullable":true,"description":"Null for a merchant_initiated subscription — charge amounts are per-call, not fixed."},"currency":{"type":"string"},"startDate":{"type":"object","nullable":true,"description":"Null for a merchant_initiated subscription."},"customerId":{"type":"string"},"createdAt":{"format":"date-time","type":"string"}},"required":["id","cybersourceSubscriptionId","status","frequency","amount","currency","startDate","customerId","createdAt"]},"KybDto":{"type":"object","properties":{"merchantId":{"type":"string","description":"The id identifying the merchant","example":"156"},"name":{"type":"string","description":"Name of the declared sub-merchant","example":"Example merchant"},"businessType":{"type":"string","description":"Type of business of the sub-merchant","example":"Fintech"},"businessRegistrationId":{"type":"string","description":"Business registration id"},"taxNumber":{"type":"string","description":"Tax number"},"directorName":{"type":"string","description":"Director name"},"websiteUrl":{"type":"string","description":"Website url of the company"},"country":{"type":"string","description":"Country where the company is located","example":"CI"},"headquarterAddress":{"type":"string","description":"Address of the headquarter of the company"},"id":{"type":"number","description":"The id identifying the kyb","example":1},"createdAt":{"format":"date-time","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"},"deletedAt":{"type":"object","description":"Datetime in UTC timezone at which this object was deleted.\n     Follows the [Datetime ISO](https://en.wikipedia.org/wiki/ISO_8601). Can be null.","example":null}},"required":["merchantId","name","businessType","businessRegistrationId","taxNumber","directorName","websiteUrl","country","headquarterAddress","id","createdAt","deletedAt"]},"CreateKybDto":{"type":"object","properties":{"merchantId":{"type":"string","description":"The id identifying the merchant","example":"156"},"name":{"type":"string","description":"Name of the declared sub-merchant","example":"Example merchant"},"businessType":{"type":"string","description":"Type of business of the sub-merchant","example":"Fintech"},"businessRegistrationId":{"type":"string","description":"Business registration id"},"taxNumber":{"type":"string","description":"Tax number"},"directorName":{"type":"string","description":"Director name"},"websiteUrl":{"type":"string","description":"Website url of the company"},"country":{"type":"string","description":"Country where the company is located","example":"CI"},"headquarterAddress":{"type":"string","description":"Address of the headquarter of the company"}},"required":["merchantId","name","businessType","businessRegistrationId","taxNumber","directorName","websiteUrl","country","headquarterAddress"]},"UpdateKybDto":{"type":"object","properties":{"name":{"type":"string","description":"Name of the declared sub-merchant","example":"Example merchant"},"businessType":{"type":"string","description":"Type of business of the sub-merchant","example":"Fintech"},"businessRegistrationId":{"type":"string","description":"Business registration id"},"taxNumber":{"type":"string","description":"Tax number"},"directorName":{"type":"string","description":"Director name"},"websiteUrl":{"type":"string","description":"Website url of the company"},"country":{"type":"string","description":"Country where the company is located","example":"CI"},"headquarterAddress":{"type":"string","description":"Address of the headquarter of the company"}}},"InitiateKybTransactionDto":{"type":"object","properties":{"name":{"type":"string","description":"The name of the aggregated merchant","example":"Example merchant"},"reference":{"type":"string","description":"Reference of the transaction","example":"<REPLACE_BY_YOUR_REFERENCE>"},"amount":{"type":"number","description":"Amount of the transaction","example":100},"currency":{"type":"string","description":"Currency in which the transaction has been done","example":"XOF"},"iban":{"type":"string","description":"International Bank Account Number (IBAN)","example":"FR7630006000011234567890189"}},"required":["name","reference","amount","currency","iban"]},"KybTransactionDto":{"type":"object","properties":{"id":{"type":"number","description":"The id identifying the transaction","example":1},"kyb":{"description":"The kyb related to the transaction","allOf":[{"$ref":"#/components/schemas/KybDto"}]},"reference":{"type":"string","description":"Reference of the transaction. Should be unique for a given merchantId","example":"<REPLACE_BY_YOUR_REFERENCE>"},"amount":{"type":"number","description":"Amount of the transaction","example":100},"currency":{"type":"string","description":"Currency in which the transaction has been done","example":"XOF"},"createdAt":{"format":"date-time","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"},"status":{"type":"string","description":"Enum indicating the status of the kyb transaction","example":"created","enum":["created","pending","rejected","validated"]},"rejectionReason":{"type":"string","description":"The reason why a kyb transaction has been rejected by Hub2 teams (i.e, the deposit hasn't been done)","example":"Your request is not compliant with our policies for the following reason: ..."},"iban":{"type":"string","description":"Iban of the bank account on which funds have been transferred","example":"CI93CI0080111301134291200589"}},"required":["id","kyb","reference","amount","currency","createdAt","status","iban"]},"KycInformation":{"type":"object","properties":{}},"ApiNotImplementedErrorAlias":{"type":"object","properties":{"status":{"type":"number","description":"status","enum":[501],"example":501},"error":{"type":"string","description":"Not implemented","example":"Method not implemented"}},"required":["status","error"]},"RecipientDto":{"type":"object","properties":{"lastname":{"type":"string","example":"Doe","description":"Last name of the recipient"},"firstname":{"type":"string","example":"John","description":"First name of the recipient"},"company":{"type":"string","example":"Acme Corp","description":"Company name of the recipient"},"country":{"type":"string","example":"USA","description":"Country of the recipient"},"type":{"type":"string","example":"bank","description":"Recipient type","enum":["mobile","bank"]},"msisdn":{"type":"string","example":"1234567890","description":"Recipient phone number (required if type is mobile)"},"provider":{"type":"string","example":"orange","description":"Provider used by the recipient (required if type is mobile)"},"bankName":{"type":"string","example":"Bank of America","description":"Name of the bank (required if type is bank)"},"bankCode":{"type":"string","example":"BOFAUS3N","description":"Bank code (required if type is bank)"},"id":{"type":"string","description":"Unique identifier of the recipient"},"createdAt":{"format":"date-time","type":"string","description":"Date of creation of the recipient"},"updatedAt":{"format":"date-time","type":"string","description":"Date of last update of the recipient"},"merchantId":{"type":"string","description":"MerchantId of the merchant who created the recipient"},"accountNumber":{"type":"string","description":"IBAN of the recipient"},"isActive":{"type":"boolean","example":true,"description":"Indicates if the recipient is active"},"metadata":{"type":"object","description":"Metadata of the recipient. Contains information like recipient kyc"},"isIrt":{"type":"boolean","example":true,"description":"Indicates if transfers are internationnal"}},"required":["lastname","firstname","company","country","type","id","createdAt","updatedAt","merchantId","accountNumber","isActive"]},"InitiateRecipientCreationDto":{"type":"object","properties":{"lastname":{"type":"string","example":"Doe","description":"Last name of the recipient"},"firstname":{"type":"string","example":"John","description":"First name of the recipient"},"company":{"type":"string","example":"Acme Corp","description":"Company name of the recipient"},"country":{"type":"string","example":"USA","description":"Country of the recipient"},"type":{"type":"string","example":"bank","description":"Recipient type","enum":["mobile","bank"]},"msisdn":{"type":"string","example":"1234567890","description":"Recipient phone number (required if type is mobile)"},"provider":{"type":"string","example":"orange","description":"Provider used by the recipient (required if type is mobile)"},"bankName":{"type":"string","example":"Bank of America","description":"Name of the bank (required if type is bank)"},"bankCode":{"type":"string","example":"BOFAUS3N","description":"Bank code (required if type is bank)"},"iban":{"type":"string","example":"DE89370400440532013000","description":"International Bank Account Number (IBAN)"}},"required":["lastname","firstname","company","country","type"]},"ProofUploadUriDto":{"type":"object","properties":{"url":{"type":"string","description":"Pre-signed URL to upload the proof file directly to the blob storage (PUT).","example":"https://account.blob.core.windows.net/deposit-proofs/proof-uuid?sv=...&sig=..."},"blobName":{"type":"string","description":"The blob name to reference when submitting the proof metadata after upload.","example":"proof-3f2504e0-4f89-41d3-9a0c-0305e82c3301"}},"required":["url","blobName"]},"DepositMethodDto":{"type":"object","properties":{"type":{"type":"string","description":"The method selected to make this Deposit","example":"bank_transfer","enum":["bank_transfer"]},"hub2Iban":{"type":"string","description":"The HUB2 IBAN to deposit funds to","example":"FR7630006000011234567890189"},"country":{"type":"string","description":"The country code derived from the IBAN","example":"FR"},"provider":{"type":"string","description":"The bank provider derived from the bank account","example":"ecobank"}},"required":["type","hub2Iban","country","provider"]},"DepositFee":{"type":"object","properties":{}},"DepositLegalDataDto":{"type":"object","properties":{"proofDocuments":{"description":"Proof documents","type":"array","items":{"type":"string"}}},"required":["proofDocuments"]},"DepositDto":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the deposit"},"merchantId":{"type":"string","description":"Merchant identifier"},"merchantName":{"type":"string","description":"Merchant display name"},"merchantAccountId":{"type":"string","description":"Merchant account identifier"},"matchingCode":{"type":"string","description":"Reference to use for the bank transfer"},"description":{"type":"string","description":"Description of the deposit","maxLength":300},"amount":{"type":"number","description":"Amount of the deposit"},"currency":{"type":"string","description":"Currency of the deposit (ISO 4217 format)"},"accountType":{"type":"string","enum":["collection","transfer","transfer-irt","delegated","cross-border"],"description":"Type of merchant account"},"method":{"description":"Method used for the deposit","allOf":[{"$ref":"#/components/schemas/DepositMethodDto"}]},"status":{"type":"string","enum":["created","failed","pending","successful"],"description":"Status of the deposit"},"statusDetails":{"type":"string","enum":["waiting_provider","waiting_proof","unverified","verified","mismatch"],"description":"Status details of the deposit"},"mode":{"type":"string","enum":["live","sandbox"],"description":"Application mode (e.g., live or sandbox)"},"fees":{"description":"List of fees associated with the deposit","type":"array","items":{"$ref":"#/components/schemas/DepositFee"}},"createdAt":{"type":"string","description":"Date and time when the deposit was created"},"createdBy":{"type":"string","description":"User id or merchant id who created the deposit"},"updatedAt":{"type":"string","description":"Date and time when the deposit was last updated"},"failureCause":{"type":"object","description":"Optional failure cause details"},"nextAction":{"type":"object","description":"Next action required, if any"},"legalData":{"description":"Legal data of the deposit","allOf":[{"$ref":"#/components/schemas/DepositLegalDataDto"}]}},"required":["id","merchantId","merchantAccountId","matchingCode","amount","currency","accountType","method","status","statusDetails","mode","fees","createdAt","createdBy","updatedAt"]},"CreateDepositMethodDto":{"type":"object","properties":{"type":{"type":"string","description":"The method selected to make this Deposit","example":"bank_transfer","enum":["bank_transfer"]},"hub2Iban":{"type":"string","description":"The HUB2 IBAN to deposit funds to","example":"FR7630006000011234567890189"}},"required":["type","hub2Iban"]},"CreateDepositDto":{"type":"object","properties":{"amount":{"type":"number","description":"The amount to deposit","example":1000},"currency":{"type":"string","description":"The currency of the deposit","example":"XOF"},"description":{"type":"string","description":"Description of the deposit","maxLength":300},"accountType":{"type":"string","description":"The account type to deposit funds on. Only TRANSFER, TRANSFER_IRT and CROSS_BORDER are allowed for deposits.","enum":["transfer","transfer-irt","cross-border"],"default":"transfer"},"method":{"description":"Informations about HUB2 account","allOf":[{"$ref":"#/components/schemas/CreateDepositMethodDto"}]}},"required":["amount","currency","accountType","method"]},"DepositProofDto":{"type":"object","properties":{"blobName":{"type":"string","description":"The blob name returned by the proof upload URI endpoint.","example":"proof-3f2504e0-4f89-41d3-9a0c-0305e82c3301"},"fileName":{"type":"string","description":"The original file name as selected by the user (used for download).","example":"bank-transfer-receipt.pdf"},"contentType":{"type":"string","description":"The MIME type of the uploaded proof file.","example":"application/pdf","enum":["image/jpeg","image/jpg","image/png","application/pdf"]}},"required":["blobName","fileName","contentType"]},"CreatedDelegatedTransferDto":{"type":"object","properties":{"reference":{"type":"string","description":"A reference provided by the client during the creation of this Transfer","example":"ref_2020_11_10_001"},"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},"currency":{"type":"string","description":"Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html).","example":"XOF"},"description":{"type":"string","description":"An arbitrary string attached to the Transfer. Mostly useful for displaying to user. "},"origin":{"description":"Information about the sender","allOf":[{"$ref":"#/components/schemas/OriginDto"}]},"destination":{"description":"Information about the recipient of this Transfer","oneOf":[{"$ref":"#/components/schemas/MTMobileMoneyDto"},{"$ref":"#/components/schemas/MTBankTransferDto"},{"$ref":"#/components/schemas/MTAirtimeDto"},{"$ref":"#/components/schemas/MTInstantPaymentDto"}],"discriminator":{"propertyName":"type","mapping":{"bank_transfer":"#/components/schemas/MTBankTransferDto","mobile_money":"#/components/schemas/MTMobileMoneyDto","airtime":"#/components/schemas/MTAirtimeDto","instant_payment":"#/components/schemas/MTInstantPaymentDto"}},"title":"Destination"},"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"},"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"},"transferInformation":{"description":"Optional merchant-defined payment metadata. Persisted and returned on the transfer.","example":{"recipient_name_hashmac":"hash_xyz_789","transaction_purpose":"SALARY"},"allOf":[{"$ref":"#/components/schemas/TransferInformationDto"}]},"aggregatedMerchantId":{"type":"string","description":"Aggregated merchant id","title":"aggregatedMerchantId"}},"required":["reference","amount","currency","description","destination","aggregatedMerchantId"]},"CreatedDelegatedTransferIrtDto":{"type":"object","properties":{"reference":{"type":"string","description":"A reference provided by the client during the creation of this Transfer","example":"REM-20240619-00123"},"srcCountry":{"type":"string","description":"Source country","example":"CI","enum":["AF","AX","AL","DZ","AS","AD","AO","AI","AQ","AG","AR","AM","AW","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BQ","BA","BW","BV","BR","IO","BN","BG","BF","BI","KH","CM","CA","CV","KY","CF","TD","CL","CN","CX","CC","CO","KM","CG","CD","CK","CR","CI","HR","CU","CW","CY","CZ","DK","DJ","DM","DO","EC","EG","SV","GQ","ER","EE","ET","FK","FO","FJ","FI","FR","GF","PF","TF","GA","GM","GE","DE","GH","GI","GR","GL","GD","GP","GU","GT","GG","GN","GW","GY","HT","HM","VA","HN","HK","HU","IS","IN","ID","IR","IQ","IE","IM","IL","IT","JM","JP","JE","JO","KZ","KE","KI","KR","KP","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MO","MK","MG","MW","MY","MV","ML","MT","MH","MQ","MR","MU","YT","MX","FM","MD","MC","MN","ME","MS","MA","MZ","MM","NA","NR","NP","NL","NC","NZ","NI","NE","NG","NU","NF","MP","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PN","PL","PT","PR","QA","RE","RO","RU","RW","BL","SH","KN","LC","MF","PM","VC","WS","SM","ST","SA","SN","RS","SC","SL","SG","SX","SK","SI","SB","SO","ZA","GS","SS","ES","LK","SD","SR","SJ","SZ","SE","CH","SY","TW","TJ","TZ","TH","TL","TG","TK","TO","TT","TN","TR","TM","TC","TV","UG","UA","AE","GB","US","UM","UY","UZ","VU","VE","VN","VG","VI","WF","EH","YE","ZM","ZW"]},"srcZone":{"type":"string","description":"Zone of the source country. If the country does not belong to a zone, set it to 'other'","example":"UEMOA","enum":["uemoa","cemac","africa","world","eur"]},"srcCurrency":{"type":"string","description":"Currency of source country","example":"XOF","enum":["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BRL","BSD","BTN","BWP","BYN","BZD","CAD","CDF","CHF","CLP","CNY","COP","CRC","CUC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRU","MUR","MVR","MWK","MXN","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLL","SOS","SRD","SSP","STN","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","UYU","UZS","VES","VND","VUV","WST","XAF","XCD","XOF","XPF","YER","ZAR","ZMW","ZWL"]},"srcAmount":{"type":"number","description":"Amount at the originating transaction","example":50000},"forexRate":{"type":"string","description":"Forex rate between corridors","example":"655.957"},"purpose":{"type":"string","description":"Purpose of the transfer","example":"Family support"},"srcOriginFunds":{"type":"string","description":"Origin of funds","example":"salary","enum":["salary","personal_savings","pension_releases","share_sales_and_dividends","property_sales","gambling_winnings","inheritances_and_gift","compensation_from_legal_rulings"]},"srcOperator":{"type":"string","description":"Source operator","example":"orange"},"destinationCurrency":{"type":"string","description":"Destination currency","example":"XOF","enum":["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BRL","BSD","BTN","BWP","BYN","BZD","CAD","CDF","CHF","CLP","CNY","COP","CRC","CUC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRU","MUR","MVR","MWK","MXN","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLL","SOS","SRD","SSP","STN","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","UYU","UZS","VES","VND","VUV","WST","XAF","XCD","XOF","XPF","YER","ZAR","ZMW","ZWL"]},"destination":{"description":"Information about the recipient of this Transfer","oneOf":[{"$ref":"#/components/schemas/IrtMobileMoneyDto"},{"$ref":"#/components/schemas/IrtBankTransferDto"}],"discriminator":{"propertyName":"type","mapping":{"bank_transfer":"#/components/schemas/IrtBankTransferDto","mobile_money":"#/components/schemas/IrtMobileMoneyDto"}},"title":"Destination"},"senderKyc":{"description":"Sender KYC information","allOf":[{"$ref":"#/components/schemas/SenderCustomerInformation"}]},"recipientKyc":{"description":"Recipient KYC information","allOf":[{"$ref":"#/components/schemas/RecipientCustomerInformation"}]},"description":{"type":"string","description":"An arbitrary string attached to the Transfer. Mostly useful for displaying to user."},"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"},"bankName":{"type":"string","description":"Bank name","example":"UBA Bank"},"transferInformation":{"description":"Optional merchant-defined payment metadata. Persisted and returned on the transfer.","example":{"recipient_name_hashmac":"hash_xyz_789","transaction_purpose":"SALARY"},"allOf":[{"$ref":"#/components/schemas/TransferInformationDto"}]},"aggregatedMerchantId":{"type":"string","description":"Aggregated merchant id","title":"aggregatedMerchantId"}},"required":["reference","srcCountry","srcCurrency","srcAmount","purpose","srcOriginFunds","srcOperator","destinationCurrency","destination","senderKyc","recipientKyc","aggregatedMerchantId"]},"DelegatedPaymentDto":{"type":"object","properties":{}}}},"x-tagGroups":[{"name":"Core resources","tags":["Transfers","IRT","Payments","Webhooks","Balance","Delegation","Deposits","Subscription Intents","Subscriptions"]},{"name":"Other products","tags":["Payment on Terminal","Provisioning","Receipt","Sms","Compliance"]},{"name":"Public","tags":["Data"]}]}