> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.mangopay.com/api-reference/conversions/conversion-object/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.mangopay.com/_mcp/server.
# The Conversion object (FX)
### Description
The Conversion object allows you to convert funds in the Mangopay environment from one currency to another. The transaction takes place between two wallets of different currencies with the same owner. The two wallets can be either two [Wallets](/api-reference/wallets/wallet-object) created by the platform for its users, or two [Client Wallets](/api-reference/client-wallets/client-wallet-object).
There are two types of conversion:
* **Instant (Spot FX)** – Conversion executed without a quote, at the rate returned in the call.
* **Quoted (Guaranteed FX)** – Conversion executed against an active [Quote](/api-reference/quotes/quote-object) that previously locked in the rate.
> **Warning**
>
> **Caution – Conversions can’t be refunded**
>
> A refund is not possible for a quoted or instant conversion. You must reconvert the funds by creating another conversion with the reverse currency pair.
> **Note**
>
> **Note – Activation required for feature and currencies**
>
> In Production, foreign exchange services are subject to a contract amendment.
>
> In Sandbox, both the feature and currencies require activation for your API environment.
>
> For more information or to activate contact the Support team [via the Dashboard](https://hub.mangopay.com/).
### Attributes
### Schema (`ConversionResponse`)
```yaml
components:
schemas:
Id:
type: string
description: >-
Max length: 128 characters (see [data
formats](/api-reference/overview/data-formats) for details)
The unique identifier of the object.
title: Id
TransactionType:
type: string
description: |-
**Returned values:** `PAYIN`, `TRANSFER`, `CONVERSION`, `PAYOUT`
The type of the transaction.
title: TransactionType
TransactionNature:
type: string
description: >-
**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.
title: TransactionNature
CreationDate:
type: integer
description: Unix timestamp (UTC) of the date and time the object was created.
title: CreationDate
TransactionStatus:
type: string
description: |-
**Returned values:** `CREATED`, `SUCCEEDED`, `FAILED`
The status of the transaction.
title: TransactionStatus
Currency:
type: string
description: >-
**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 amount.
title: Currency
Amount_DebitedFunds_ConversionResponse:
type: integer
description: >-
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`.
title: Amount_DebitedFunds_ConversionResponse
ConversionResponseDebitedFunds:
type: object
properties:
Currency:
$ref: '#/components/schemas/Currency'
Amount:
$ref: '#/components/schemas/Amount_DebitedFunds_ConversionResponse'
description: Information about the debited funds.
title: ConversionResponseDebitedFunds
Amount_CreditedFunds_ConversionResponse:
type: integer
description: >-
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, `CreditedFunds.Amount` = (`DebitedFunds.Amount` -
`Fees`) * `MarketRate`.
title: Amount_CreditedFunds_ConversionResponse
ConversionResponseCreditedFunds:
type: object
properties:
Currency:
$ref: '#/components/schemas/Currency'
Amount:
$ref: '#/components/schemas/Amount_CreditedFunds_ConversionResponse'
description: Information about the credited funds.
title: ConversionResponseCreditedFunds
Amount:
type: integer
description: >-
The amount of the currency in its minor unit. For example, EUR 12.60
would be represented as `1260` whereas JPY 12 would be represented as
just `12`.
title: Amount
Fees_ConversionResponse:
type: object
properties:
Currency:
$ref: '#/components/schemas/Currency'
Amount:
$ref: '#/components/schemas/Amount'
description: >-
Information about the fees taken by the platform for this transaction
(and hence transferred to the Fees Wallet).
**Note:** The fees currency must match the debited funds currency.
title: Fees_ConversionResponse
RequestedFees_Conversion:
type: object
properties:
Type:
type: string
description: |-
**Allowed values:** `PERCENTAGE`, `FIXED`
**Default value:** `FIXED`
The type of the `Value`.
Value:
type: integer
description: >-
The value to be used for the `Type`:
- `PERCENTAGE` – In quantities of 0.1% (e.g. `150` equals 1.5%), the
percentage of `DebitedFunds.Amount` deducted as fees.
- `FIXED` – The amount deducted from `DebitedFunds.Amount` as fees,
as 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`).
Currency:
type: string
description: >-
**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, which must match the debited currency.
description: Information about the `Fees` sent in the request.
title: RequestedFees_Conversion
ResultCode:
type: string
description: >-
The code indicating the result of the operation. This information is
mostly used to handle errors or for
filtering purposes.
title: ResultCode
ResultMessage:
type: string
description: The explanation of the result code.
title: ResultMessage
TransactionExecutionDate:
type: integer
description: >-
Unix timestamp (UTC) of the date and time the status changed to
`SUCCEEDED`, indicating that the transaction occurred. The statuses
`CREATED` and `FAILED` return an `ExecutionDate` of `null`.
title: TransactionExecutionDate
ConversionRateResponse:
type: object
properties:
ClientRate:
type: number
format: double
description: >-
Max. 7 decimal places
The indicative rate including Mangopay's markup, used during the
billing cycle: `ClientRate` = `MarketRate` * (1 -
`MarginsResponse.Mangopay`). The `MarginsResponse.Mangopay.Amount`
gives the amount of debited currency that will be billed by Mangopay
to your platform for the transaction.
The `ClientRate` fluctuates in line with the `MarketRate`.
MarketRate:
type: number
format: double
description: >-
Max. 7 decimal places
The rate used to convert funds during the conversion:
(`DebitedFunds.Amount` - `Fees`) * `MarketRate` =
`CreditedFunds.Amount`.
The market rate fluctuates in line with FX market dynamics and is
common to all platforms for the currency pair.
FinalRate:
type: number
format: double
description: >-
Max. 7 decimal places
The indicative rate including the `UserMargin`, if your platform
defined it in the request or the quote: `FinalRate` = `ClientRate` *
(1 - `MarginsResponse.User`). The `MarginsResponse.User.Amount`
gives the amount of debited currency that your platform could bill
to the user for the transaction.
If no `UserMargin` was included, the `FinalRate` is the same as the
`ClientRate`.
description: >-
Information about the `MarketRate` used to convert funds and other
indicative rates.
title: ConversionRateResponse
MarginsResponseMangopay:
type: object
properties:
Type:
type: string
description: |-
**Response value:** `PERCENTAGE`
The type of the `Value`, which for Mangopay is always `PERCENTAGE`.
Value:
type: number
format: double
description: >-
The value to be used for the `Type`.
Mangopay's markup is expressed as a percentage (to convert to
decimal, divide by 100).
Amount:
type: integer
description: >-
The amount of debited currency that Mangopay will charge your
platform for the transaction during the billing cycle.
description: >-
The margin used by Mangopay to bill your platform (which is defined
during contracting).
title: MarginsResponseMangopay
MarginsResponseUser:
type: object
properties:
Type:
type: string
description: |-
**Response values:** `PERCENTAGE`, `PIP`
The type of the `Value`.
Value:
type: number
format: double
description: >-
The value to be used for the `Type`:
- `PERCENTAGE` – The quantities of 1% used to calculate the user
margin.
- `PIP` – The quantities of `0.0001` (one pip) used to calculate the
user margin.
Amount:
type: integer
description: >-
The amount of debited currency that your platform could bill to the
user for the transaction.
description: >-
The margin your platform could use to bill the user, as calculated by
`UserMargin` in the request or quote (otherwise `null` if not set).
title: MarginsResponseUser
MarginsResponse:
type: object
properties:
Mangopay:
$ref: '#/components/schemas/MarginsResponseMangopay'
description: >-
The margin used by Mangopay to bill your platform (which is defined
during contracting).
User:
$ref: '#/components/schemas/MarginsResponseUser'
description: >-
The margin your platform could use to bill the user, as calculated
by `UserMargin` in the request or quote (otherwise `null` if not
set).
description: Information about the margins calculated for the transaction.
title: MarginsResponse
Tag:
type: string
description: >-
Max. length: 255 characters
Custom data that you can add to this object, such as unique identifiers
in your system. To store multiple values, you can serialize them into a
single string, for example a JSON object:
`"{\"id_1\":AB123,\"id_2\":DE456}"`.
title: Tag
ConversionResponse:
type: object
properties:
Id:
$ref: '#/components/schemas/Id'
QuoteId:
type:
- string
- 'null'
description: >-
The unique identifier of the active quote which guaranteed the rate
for the conversion.
Returned `null` in the case of an instant conversion.
Type:
$ref: '#/components/schemas/TransactionType'
Nature:
$ref: '#/components/schemas/TransactionNature'
CreationDate:
$ref: '#/components/schemas/CreationDate'
Status:
$ref: '#/components/schemas/TransactionStatus'
AuthorId:
type: string
description: >-
The unique identifier of the user at the source of the transaction.
In a conversion, both the debited and credited wallets are owned by
the author.
DebitedWalletId:
type: string
description: The unique identifier of the debited wallet (in the sell currency).
CreditedWalletId:
type: string
description: The unique identifier of the credited wallet (in the buy currency).
DebitedFunds:
$ref: '#/components/schemas/ConversionResponseDebitedFunds'
description: Information about the debited funds.
CreditedFunds:
$ref: '#/components/schemas/ConversionResponseCreditedFunds'
description: Information about the credited funds.
Fees:
$ref: '#/components/schemas/Fees_ConversionResponse'
RequestedFees:
$ref: '#/components/schemas/RequestedFees_Conversion'
ResultCode:
$ref: '#/components/schemas/ResultCode'
ResultMessage:
$ref: '#/components/schemas/ResultMessage'
ExecutionDate:
$ref: '#/components/schemas/TransactionExecutionDate'
ConversionRateResponse:
$ref: '#/components/schemas/ConversionRateResponse'
MarginsResponse:
$ref: '#/components/schemas/MarginsResponse'
Tag:
$ref: '#/components/schemas/Tag'
title: ConversionResponse
```
### Related resources
#### [Guide](/guides/fx)
Learn more about FX