> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mangopay.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 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](/api-reference/recipients/recipient-object) for the User. Legacy active Bank Account objects can continue to be used for payouts, as they were [migrated to Recipients](/guides/payouts#migration-of-legacy-bank-accounts).

[Read payouts guide](/guides/payouts) **→**

<Note>
  **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](/guides/vop) **→**

  There is no impact for platforms not offering User-Owned Accounts.
</Note>

### Attributes

<ParamField body="PayoutModeRequested" type="string">
  **Possible values:** `STANDARD`, `INSTANT_PAYMENT`, `INSTANT_PAYMENT_ONLY`, `RTGS_PAYMENT`

  **Default value:** `STANDARD`

  The mode defining how the payout request is sent:

  * `STANDARD` – **Non-EUR:** Sent via the relevant local rail if the Recipient's destination country corresponds, or otherwise sent via SWIFT. Mangopay automatically routes funds via the [available rails](/guides/payouts#all-rails-by-currency), which also determines [delivery times](/guides/payouts#delivery-times). Requests received after the applicable cutoff are processed the next working day. **EUR:** Sent via the SEPA Credit Transfer scheme or SWIFT (if non-domestic).
  * `INSTANT_PAYMENT` – Sent via the SEPA Instant Credit Transfer scheme (funds processed within 10 seconds) with a fallback to `STANDARD` mode if an issue occurs. If the payout is above the threshold agreed with Mangopay, the payout fails and there is no fallback.
  * `INSTANT_PAYMENT_ONLY` – **EUR 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` – **EUR only:** sent via the Eurozone’s [real-time gross settlement (RGTS)](/guides/payouts#real-time-gross-settlement-rtgs) 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).
</ParamField>

<ParamField body="ModeRequested" type="string">
  **Returned values:** `STANDARD`, `INSTANT_PAYMENT`, `INSTANT_PAYMENT_ONLY`, `RTGS_PAYMENT`

  The value set for the `PayoutModeRequested` parameter when making the request.
</ParamField>

<ParamField body="ModeApplied" type="string">
  **Returned values:** `STANDARD`, `INSTANT_PAYMENT`, `RTGS_PAYMENT`, `PENDING_RESPONSE`

  The mode defining how the payout request is sent:

  * `STANDARD` – **Non-EUR:** Sent via the relevant local rail if the Recipient's destination country corresponds, or otherwise sent via SWIFT. Mangopay automatically routes funds via the [available rails](/guides/payouts#all-rails-by-currency), which also determines [delivery times](/guides/payouts#delivery-times). Requests received after the applicable cutoff are processed the next working day. **EUR:** Sent via the SEPA Credit Transfer scheme or SWIFT (if non-domestic).
  * `INSTANT_PAYMENT` – **EUR only:** Sent via the SEPA Instant Credit Transfer scheme (funds processed within 10 seconds).
  * `RTGS_PAYMENT` – **EUR only:** Sent via the Eurozone’s [real-time gross settlement (RGTS)](/guides/payouts#real-time-gross-settlement-rtgs) 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.
</ParamField>

<ParamField body="FallbackReason" type="object">
  Information regarding the reason for the refusal of the instant payout request.

  <Expandable title="properties">
    <ParamField body="ResultCode" type="string">
      The code indicating the result of the operation. This information is mostly used to <a href="/errors/codes">handle errors</a> or for filtering purposes.
    </ParamField>

    <ParamField body="ResultMessage" type="string">
      The explanation of the result code.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="Id" type="string">
  The unique identifier of the object.
</ParamField>

<ParamField body="Tag" type="string">
  Max. length: 255 characters

  Custom data that you can add to this object.
</ParamField>

<ParamField body="CreationDate" type="Unix timestamp">
  The date and time at which the object was created.
</ParamField>

<ParamField body="AuthorId" type="string">
  The unique identifier of the user at the source of the transaction.\
  Best practice: When the payout author is different from the bank account owner, the Payout `AuthorId` value must be different from the Bank Account `UserId` value as well. Otherwise, Mangopay’s Compliance team will reject the payout.
</ParamField>

<ParamField body="DebitedFunds" type="object">
  Information about the debited funds.

  <Expandable title="properties">
    <ParamField body="Currency" type="string">
      **Returned values:** The three-letter <a href="/api-reference/overview/data-formats" target="_blank">ISO 4217 code</a> (EUR, GBP, etc.) of a <a href="/guides/currencies" target="_blank">supported currency</a> (depends on feature, contract, and activation settings).

      The currency of the debited funds.
    </ParamField>

    <ParamField body="Amount" type="integer">
      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`).
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="CreditedFunds" type="object">
  Information about the funds being credited to the target of the transaction (`CreditedFunds` = `DebitedFunds` - `Fees`).

  <Expandable title="properties">
    <ParamField body="Currency" type="string">
      **Returned values:** The three-letter <a href="/api-reference/overview/data-formats" target="_blank">ISO 4217 code</a> (EUR, GBP, etc.) of a <a href="/guides/currencies" target="_blank">supported currency</a> (depends on feature, contract, and activation settings).

      The currency of the debited funds.
    </ParamField>

    <ParamField body="Amount" type="integer">
      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`).
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="Fees" type="object">
  Information about the fees taken by the platform for this transaction (and hence transferred to the Fees Wallet).

  <Expandable title="properties">
    <ParamField body="Currency" type="string">
      **Returned values:** The three-letter <a href="/api-reference/overview/data-formats" target="_blank">ISO 4217 code</a> (EUR, GBP, etc.) of a <a href="/guides/currencies" target="_blank">supported currency</a> (depends on feature, contract, and activation settings).

      The currency of the debited funds.
    </ParamField>

    <ParamField body="Amount" type="integer">
      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`).
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="Status" type="string">
  **Returned values:** `CREATED`, `SUCCEEDED`, `FAILED`

  The status of the transaction.
</ParamField>

<ParamField body="ResultCode" type="string">
  The code indicating the result of the operation. This information is mostly used to <a href="/errors/codes">handle errors</a> or for filtering purposes.
</ParamField>

<ParamField body="ResultMessage" type="string">
  The explanation of the result code.
</ParamField>

<ParamField body="ExecutionDate" type="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`.
</ParamField>

<ParamField body="Type" type="string">
  **Returned values:** `PAYIN`, `TRANSFER`, `CONVERSION`, `PAYOUT`

  The type of the transaction.
</ParamField>

<ParamField body="Nature" type="string">
  **Returned values:** `REGULAR`, `REPUDIATION`, `REFUND`, `SETTLEMENT`

  The nature of the transaction, providing more information about the context in which the transaction occurred:

  * `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.
</ParamField>

<ParamField body="CreditedWalletId" type="string">
  The unique identifier of the credited wallet.\
  In the specific case of the Payout object, this value is always `null` since there is no credited wallet.
</ParamField>

<ParamField body="DebitedWalletId" type="string">
  The unique identifier of the debited wallet.
</ParamField>

<ParamField body="PaymentType" type="string">
  **Returned values:** `CARD`, `DIRECT_DEBIT`, `PREAUTHORIZED`, `BANK_WIRE`

  The type of pay-in.
</ParamField>

<ParamField body="BankAccountId" type="string">
  The unique identifier of the bank account.
</ParamField>

<ParamField body="BankWireRef" type="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 <a href="/bank-statements">Customizing bank statement references</a> article.
</ParamField>

<ResponseField name="PaymentRef" type="object">
  Information about the payment reference provided for the payout. This object is returned `null` if not provided.

  This object must be used to provide the reference of a [bank wire pay-in](/api-reference/bank-wire-payins/bank-wire-payin-object) or a [pay-in to virtual IBAN](/api-reference/virtual-accounts/external-instruction-bank-wire-payin-object), if the payout is being used to refund it.

  <Expandable title="properties">
    <ResponseField name="ReasonType" type="string">
      **Allowed values:** `PAYIN_REFUND`

      The reason for the reference being provided:

      * `PAYIN_REFUND` – The payout serves to reimburse a pay-in.
    </ResponseField>

    <ResponseField name="ReferenceId" type="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.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="RecipientVerificationOfPayee" type="object" nullable>
  Information about the [Verification of Payee (VOP)](/guides/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`.

  <Expandable>
    <ResponseField name="RecipientVerificationId" type="string" nullable>
      The unique identifier of the VOP check. This value may be `null` if the check could not be performed.
    </ResponseField>

    <ResponseField name="RecipientVerificationCheck" type="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.
    </ResponseField>

    <ResponseField name="RecipientVerificationMessage" type="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.`
    </ResponseField>

    <ResponseField name="RecipientVerificationPayeeSuggestedName" type="string">
      The name returned by the check in case of a `CLOSE_MATCH` result, which can be used to re-register the Recipient. This property is not returned on the check performed on a Payout request, even if the result is `CLOSE_MATCH`.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="RecipientId" type="string">
  The unique identifier of the [Recipient](/api-reference/recipients/recipient-object) object to which the payout is being requested. This property should be used by platforms integrating for the first time (and not the `BankAccountId`).
</ResponseField>

<ResponseField name="ChargeBearer" type="string | null">
  Possible values: `SHA`, `OUR`

  Default value: `SHA`

  The allocation of [processing fees](/guides/payouts#fees-for-international-payouts) 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.
</ResponseField>

### Related resources

<Card title="Guide" href="/guides/payouts">
  Read more about payouts
</Card>

<Card title="Testing" href="/testing/payouts">
  Read about testing payouts
</Card>
