The Payout object

Description

Mangopay relies on the Payout object to transfer funds from a Wallet to an external bank account, which must be registered as a Recipient for the User. Legacy active Bank Account objects can continue to be used for payouts, as they were migrated to Recipients.

Read payouts guide

Note – Verification of Payee may impact payouts

If your platform offers User-Owned Accounts (Virtual Account or Banking Alias) to your end users, Verification of Payee (VOP) may impact their payouts. Read more

There is no impact for platforms not offering User-Owned Accounts.

Attributes

PayoutModeRequested
string

Possible values: STANDARD, INSTANT_PAYMENT, INSTANT_PAYMENT_ONLY, RTGS_PAYMENT

Default value: STANDARD

The mode defining how the payout request is sent:

  • STANDARD – Sent via the relevant route for the currency and destination account (which determine the typical funds processing times). If a request is received after the applicable cutoff, it is processed the next working day.
  • INSTANT_PAYMENT – Sent via the SEPA Instant Credit Transfer scheme (funds processed within 10 seconds) with a fallback to STANDARD mode if any of the prerequisites are not met or if another issue occurs. If the payout is above the threshold agreed with Mangopay, the payout fails rather than falling back.
  • INSTANT_PAYMENT_ONLY – Sent via the SEPA Instant Credit Transfer scheme (funds processed within 10 seconds) without a fallback. If an issue occurs, the wallet automatically refunded.
  • RTGS_PAYMENT – Sent via the Eurozone’s real-time gross settlement (RGTS) scheme T2 (funds processed same working day) without a fallback. If the request is received after the applicable cutoff (16:15 CET), it is processed the next working day (from 07:00 CET).
ModeRequested
string

Returned values: STANDARD, INSTANT_PAYMENT, INSTANT_PAYMENT_ONLY, RTGS_PAYMENT

The value set for the PayoutModeRequested parameter when making the request.

ModeApplied
string

Returned values: STANDARD, INSTANT_PAYMENT, RTGS_PAYMENT, PENDING_RESPONSE

The mode defining how the payout request is sent:

  • STANDARD – Sent via the relevant route for the currency and destination account (which determine the typical funds processing times). If a request is received after the applicable cutoff, it is processed the next working day.
  • INSTANT_PAYMENT – Sent via the SEPA Instant Credit Transfer scheme (funds processed within 10 seconds).
  • RTGS_PAYMENT – Sent via the Eurozone’s real-time gross settlement (RGTS) scheme T2 (funds processed same working day) without a fallback. If the request is received after the applicable cutoff (16:15 CET), it is processed the next working day (from 07:00 CET).
  • PENDING_RESPONSE – Temporary state to accommodate the possible latency between the creation of the request and the mode being applied in the case of instant payment and RGTS modes.
FallbackReason
object

Information regarding the reason for the refusal of the instant payout request.

ResultCode
string

The code indicating the result of the operation. This information is mostly used to handle errors or for filtering purposes.

ResultMessage
string

The explanation of the result code.

Id
string

The unique identifier of the object.

Tag
string

Custom data that can be added to this object.
In the case of the Card Registration, this parameter can be used to facilitate the link between the User object and its equivalent on your platform for instance. This value will be inherited by the Card object Tag parameter and will not be editable.

CreationDate
Unix timestamp

The date and time at which the object was created.

AuthorId
stringRequired

The unique identifier of the user at the source of the transaction.

DebitedFunds
objectRequired

Information about the debited funds. The amount must be equal to the total of all UnitAmount and TaxAmount of all LineItems.

Currency
stringRequired

Allowed values: The three-letter ISO 4217 code (EUR, GBP, etc.) of a supported currency (depends on feature, contract, and activation settings).

The currency of the funds.

Amount
integerRequired

An amount of money in the smallest sub-division of the currency (e.g., EUR 12.60 would be represented as 1260 whereas JPY 12 would be represented as just 12).

CreditedFunds
objectRequired

Information about the credited funds.

Currency
stringRequired

Allowed values: The three-letter ISO 4217 code (EUR, GBP, etc.) of a supported currency (depends on feature, contract, and activation settings).

The currency of the credited funds (the buy currency).

Amount
integer

Required if DebitedFunds.Amount is null

An amount of money in the smallest sub-division of the currency (e.g., EUR 12.60 would be represented as 1260 whereas JPY 12 would be represented as just 12).

During a conversion, (DebitedFunds.Amount - Fees) * MarketRate = CreditedFunds.Amount

Fees
objectRequired

Information about the fees.

Currency
stringRequired

Allowed values: The three-letter ISO 4217 code (EUR, GBP, etc.) of a supported currency (depends on feature, contract, and activation settings).

The currency of the fees.

Amount
integerRequired

An amount of money in the smallest sub-division of the currency (e.g., EUR 12.60 would be represented as 1260 whereas JPY 12 would be represented as just 12).

Status
string

Returned values: CREATED, SUCCEEDED, FAILED

The status of the transaction.

ResultCode
string

The code indicating the result of the operation. This information is mostly used to handle errors or for filtering purposes.

ResultMessage
string

The explanation of the result code.

ExecutionDate
Unix timestamp

The date and time at which the status changed to SUCCEEDED, indicating that the transaction occurred. The statuses CREATED and FAILED return an ExecutionDate of null.

Type
string

Returned values: PAYIN, TRANSFER, CONVERSION, PAYOUT

The type of the transaction.

Nature
array

Allowed values: REGULAR, REPUDIATION, REFUND, SETTLEMENT

The transaction natures to be taken into account.

  • REGULAR – Relative to most of the transactions (pay-ins, payouts, and transfers) in a usual workflow.
  • REPUDIATION – Automatic withdrawal of funds from the platform’s repudiation wallet as part of the dispute process (when the user has requested a chargeback).
  • REFUND – Reimbursement of a transaction to the user (pay-in refund), to a wallet (transfer refund), or of a payout (payout refund, only initiated by Mangopay).
  • SETTLEMENT – Transfer made to the repudiation wallet by the platform to settle a lost dispute.
CreditedWalletId
stringRequired

The unique identifier of the credited wallet.

DebitedWalletId
stringRequired

The unique identifier of the debited wallet.

PaymentType
string

Returned values: CARD, DIRECT_DEBIT, PREAUTHORIZED, BANK_WIRE

The type of pay-in.

BankAccountId
string

The unique identifier of the Bank Account. This property should not be used by platforms integrating for the first time – send the RecipientId instead.

BankWireRef
string

Max. length: 255 characters (< 12 recommended)
Custom description to appear on the user’s bank statement along with the platform name. The recommended length is 12 characters – strings longer than this may be truncated depending on the bank.

For the full structure of the string, see the Customizing bank statement references article.

object

Information about the payment reference provided for the payout.

This object must be used to provide the reference of a bank wire pay-in or a pay-in to virtual IBAN, if the payout is being used to refund it.

string

Allowed values: PAYIN_REFUND

The reason for the reference being provided:

  • PAYIN_REFUND – The payout serves to reimburse a pay-in.
string

Allowed values: The valid Id of a successful pay-in.

The unique identifier associated with the reference, whose value corresponds to the ReasonType:

  • PAYIN_REFUND – The ReferenceId value provided is the same as the Id of the initial pay-in being refunded.
RecipientVerificationOfPayee
object

Information about the Verification of Payee (VOP) check performed on the Recipient. Because VOP only applies to SEPA local schemes, this object is returned null if the Recipient’s Currency is not EUR or its PayoutMethod is not LocalBankTransfer.

RecipientVerificationId
string

The unique identifier of the VOP check. This value may be null if the check could not be performed.

RecipientVerificationCheck
string

Possible values: MATCH, CLOSE_MATCH, NO_MATCH, MATCH_NOT_POSSIBLE

The result of the VOP check:

  • MATCH – The account is valid and the account name matches the IBAN.
  • CLOSE_MATCH – The account is valid but the name doesn’t match exactly.
  • NO_MATCH – This account likely belongs to a different owner.
  • MATCH_NOT_POSSIBLE – The check could not be completed.
RecipientVerificationMessage
string

The explanation of the RecipientVerificationCheck:

  • If MATCH, then Account name fully matches account identifier.
  • If CLOSE_MATCH, then Account name partially matches account identifier. Name returned by check: {Name}. Payment made to this account may not reach its intended counterparty.
  • If NO_MATCH, then Account name does not matches account identifier. Payment made to this account may not reach its intended counterparty.
  • If MATCH_NOT_POSSIBLE, then Account name does not matches account identifier. Payment made to this account may not reach its intended counterparty.
RecipientId
string

The unique identifier of the Recipient object to which the payout is being requested. This property should be used by platforms integrating for the first time (and not the BankAccountId).

ChargeBearer
string | null

Possible values: SHA, OUR

Default value: SHA

The allocation of processing fees for an international SWIFT payout:

  • SHA - SWIFT fees are shared between the remitter and beneficiary. The beneficiary’s share is deducted from the payout, meaning that the amount arriving on the recipient’s bank account may be less than the Payout’s CreditedFunds.Amount.
  • OUR - All SWIFT fees are paid by the remitter. The recipient receives the full CreditedFunds.Amount of the Payout, and Mangopay recovers the fees from the platform during the billing cycle. A 400 HTTP error is returned if Mangopay’s network of partners does not support OUR fees for the given currency and recipient country, or if this feature is not activated.

For non-SWIFT requests, the ChargeBearer is ignored and SHA or null is displayed by default in the response.