> ## 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 Refund object

### Description

Mangopay relies on the Refund object to manage the reimbursement of a past transaction. A Refund object has the value `REFUND` as its `Nature` and is linked to the transaction being reimbursed by its `InitialTransactionId` property.

Two types of refund are initiated by the platform (see the [Refunds](/guides/refunds) guide for details):

* **Pay-in refund** – Platform request to reimburse a pay-in.
* **Transfer refund** – Platform request to reimburse a transfer.

There are two other cases generated automatically by Mangopay:

* **Payout return** – Return of funds created when, for instance, the end user's bank account is closed or if the acquiring bank refuses the funds. This transaction re-credits the wallet from which the payout was sent. See the [Payouts](/guides/payouts/rejects-returns) guide for more details.
* **Repudiation return** – Return of funds created when a dispute is won in favor of the platform. This transaction re-credits the Repudiation Wallet, from which the repudiation was debited. See the [Disputes](/guides/disputes) guide for more details.

<Note>
  **Note – Transaction data retained for 13 months**

  The API retains all transaction objects for 13 months from `CreationDate`. This applies to refunds and the initial transaction linked to a refund.

  A call to retrieve the initial transaction of a refund, based on the refund’s `InitialTransactionId`, may return a 404 Not Found if it occurred more than 13 months ago.

  For more information, see the <a href="/api-reference/overview/data-availability-periods">Data availability periods</a> article.
</Note>

### Attributes

<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 initial transaction.
</ParamField>

<ParamField body="CreditedUserId" type="string">
  **Default value:** The unique identifier of the owner of the credited wallet.

  The unique identifier of the user whose wallet is credited.
</ParamField>

<ParamField body="DebitedFunds" type="object">
  **Default value:** The amount and currency values of the debited funds of the initial transaction.

  Information about the debited funds. Debited funds:

  * Takes by default the amount and currency values of the initial transaction when left empty.
  * Must be entered manually to perform a partial refund.
  * Cannot exceed the initial transaction `CreditedFunds` value when entered manually. This also applies to the sum of debited funds when making multiple partial refunds.

  <Expandable title="properties">
    <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>

    <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>
  </Expandable>
</ParamField>

<ParamField body="CreditedFunds" type="object">
  Information about the credited funds (`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 credited 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">
  **Default value:** The amount and currency values of the fees of the initial transaction.

  Information about the fees. This value:

  * Should be preceded by a minus sign (-) to refund the fees, otherwise more fees will be taken.
  * Takes by default the amount and currency values of the fees of the initial transaction when left empty (preceded by a -).
  * Cannot exceed the initial transaction fees amount when entered manually. This also applies to the sum of the amount of the fees when making multiple partial refunds.

  <Expandable title="properties">
    <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>

    <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>
  </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="InitialTransactionId" type="string">
  The unique identifier of the initial transaction being refunded.
</ParamField>

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

  The type of the initial transaction being refunded.
</ParamField>

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

  The nature of the initial transaction being refunded, 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 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 the credit from a repudiation following a lost dispute.
</ParamField>

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

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

<ParamField body="RefundReason" type="object">
  Information about the reasons for the refund.

  <Expandable title="properties">
    <ParamField body="RefundReasonMessage" type="string">
      Max. length: 255 characters

      Message explaining the reason for the refusal.
    </ParamField>

    <ParamField body="RefundReasonType" type="string">
      **Returned values:** `INITIALIZED_BY_CLIENT`, `BANKACCOUNT_INCORRECT`, `OWNER_DO_NOT_MATCH_BANKACCOUNT`, `BANKACCOUNT_HAS_BEEN_CLOSED`, `WITHDRAWAL_IMPOSSIBLE_ON_SAVINGS_ACCOUNTS`, `OTHER`

      The type of reason for the refund.
    </ParamField>
  </Expandable>
</ParamField>

### Related resources

<CardGroup cols={2}>
  <Card title="Refunds" href="/guides/refunds">
    Learn more about pay-in and transfer refunds
  </Card>

  <Card title="Payouts" href="/guides/payouts">
    Learn more about payout returns
  </Card>

  <Card title="Disputes" href="/guides/disputes">
    Learn more about disputes and repudiations
  </Card>
</CardGroup>
