Skip to main content
POST
Create a delegated Transfer

Headers

ApiKey
string
required

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.

MerchantId
string
required

Your merchant ID. This information is available in our dashboard. If you don't have access to it, please reach the Support team.

Environment
enum<string>
required

Allow you to choose between the sandbox mode to perform some tests or the live mode for real world transactions.

Available options:
live,
sandbox

Body

application/json
reference
string
required

A reference provided by the client during the creation of this Transfer, at most 255 characters

Maximum string length: 255
Example:

"ref_2020_11_10_001"

amount
number
required

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
string
required

Three-letter ISO currency code.

Example:

"XOF"

description
string
required

An arbitrary string attached to the Transfer. Mostly useful for displaying to user.

destination
Destination · object
required

Information about the recipient of this Transfer

aggregatedMerchantId
string
required

Aggregated merchant id

rejectionId
string

Confirms a payout refused with 409 possible_duplicate: the rejection_id of that response. Resend the refused payout unchanged, to the same endpoint and with the same reference (the externalId, for a cross-border transaction), before the response's expires_at. A rejection confirms one payout only: resending the confirmed payout again gets the idempotent replay, while an unknown or expired rejection, one replaced by a later refusal of its confirmation, one already used by another payout, or one that refused a different payout is answered 422 invalid_duplicate_confirmation. Ignored unless duplicate protection and near-duplicate protection are both enforced for your account.

Pattern: ^ndr_[A-Za-z0-9_-]{21}$
Example:

"ndr_V1StGXR8_Z5jdHi6B-myT"

origin
object

Information about the sender

overrideBusinessName
string

This field is mandatory for aggregators and allows you to override the business name displayed to the end users. This is useful if you don't want your clients to see "Hub2" as the target of their payment but your company name instead.

Example:

"MyBusiness"

overrideBusinessId
string

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
object

Optional merchant-defined payment metadata. Persisted and returned on the transfer.

Example:

Response

Idempotent replay. Duplicate protection is enforced for your account, and a payout with this reference and the same payout details already exists: it is returned as it is now, and nothing is created or charged. Only ever sent with the X-Idempotent-Replay: true header and the body field idempotentReplay: true, which is absent from a normal creation. The payout details compared are the destination type, country, beneficiary, operator, requested amount and currency; on IRT and cross-border routes, also the sender identity and, on cross-border, the rateId, unless the reference was recorded by an earlier version of this check, which compared neither; other names (recipient, bank, display name), descriptions and metadata are ignored.

id
string
required

Unique identifier for the Transfer

Example:

"tr_z1urYtVFgEebtcj8fxp4v"

merchantId
string
required

Identifier of the merchant owning this Transfer

createdAt
string
required

Datetime in UTC timezone at which this object was created. Follows the Datetime ISO.

Example:

"2020-10-15T12:09:49.355Z"

updatedAt
string
required

Datetime in UTC timezone at which this object was updated for the last time . Follows the Datetime ISO.

Example:

"2020-10-15T12:16:26.128Z"

reference
string
required

A reference provided by the client during the creation of this Transfer

Example:

"ref_2020_11_10_001"

description
string
required

An arbitrary string attached to the Transfer. Mostly useful for displaying to user.

status
enum<string>
required

The current status of this Transfer

Available options:
created,
successful,
pending,
failed
Example:

"successful"

amount
number
required

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
string
required

Three-letter ISO currency code.

Example:

"XOF"

mode
enum<string>
required

Mode in which this transfer exists. The sandbox mode can be used during the integration phase and is available as soon as the merchant account is created. No real transactions are made in this mode. The live mode has to be used to make real transactions.

Available options:
live,
sandbox
Example:

"live"

destination
Destination · object
required

Information about the recipient of this Transfer

fees
TransferFee · object[]
required

Fees applied to merchant's transfer-account uppon success

isIrt
boolean
required

indicate if the transfer was international

providerReference
string
required

provider reference that identify this transfer

isDelegated
boolean
required

Indicates if the transfer is delegated

aggregatedMerchantId
string
required

Aggregated merchant id

failureCause
TransferFailureCause · object

In case of failure, this object will describe the reason of the failure

origin
Origin · object

Information about the origin of this transfer

overrideBusinessName
string

override business name for aggregator

overrideBusinessId
string

override business id for merchant

subMerchantId
string

Submerchant ID

Example:

"submerchant_123"

transferInformation
object

Merchant-defined payment metadata from transfer creation.

Example:
idempotentReplay
enum<boolean>

Present, and true, only when the response replays an existing payout (idempotent replay, HTTP 200 with the X-Idempotent-Replay: true header). Absent when the transfer has just been created.

Available options:
true
Example:

true

balanceBefore
number

Computed balance before the transfer is executed.

balanceAfter
number

Real available balance right after the transfer is executed.