> 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