> 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/create-quoted-conversion-client-wallets/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.mangopay.com/_mcp/server. # Create a Quoted Conversion between Client Wallets POST https://api.sandbox.mangopay.com/v2.01/{ClientId}/clients/conversions/quoted-conversion Content-Type: application/json This call triggers a conversion at the rate defined in its quote. The debited funds (sell currency), credited funds (buy currency), and amounts are defined in the quote. The [Client Wallets](/api-reference/client-wallets/client-wallet-object) to debit and credit are defined in the conversion. Each quoted conversion requires a dedicated [Quote](/api-reference/quotes/quote-object) object, linked in the `QuoteId`. Quoted conversions between client wallets: - Can't include `Fees` – the conversion attempt will return a 400 error if its `QuoteId` includes fees - Shouldn't include `UserMargin` – the conversion attempt will not be blocked, but `UserMargin` is disregarded – in the `ConversionRateResponse` (the user's `FinalRate` is the same as the platform's `ClientRate`). Reference: https://docs.mangopay.com/api-reference/conversions/create-quoted-conversion-client-wallets ## Authentication - `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer `, where token is your auth token. If your platform is using a [proxy](/guides/sca/proxy-management) to take SCA-triggering action on behalf of users, you also need to integrate [mTLS authentication](/guides/sca/platform) and use the `api-mtls` base URL. ## Servers - `https://api.sandbox.mangopay.com` (Sandbox, default) - `https://api.mangopay.com` (Production) - `https://api-mtls.sandbox.mangopay.com` (mTLS Sandbox) - `https://api-mtls.mangopay.com` (mTLS Production) ## Request ### Path parameters - `ClientId` (string, required) — Platform's API account identifier, associated with the API key. ### Body (application/json) This endpoint expects a CreateAQuotedConversionBetweenClientWalletsRequest. - `QuoteId` (string, required) — The unique identifier of the active quote which guaranteed the rate for the conversion. - `DebitedWalletType` (string, required) — **Allowed values:** `FEES`, `CREDIT` The type of the client wallet to be debited: - `FEES` – Fees Wallet, for fees collected by the platform. - `CREDIT` – Repudiation Wallet, for funds related to dispute management. The amount and currency of the debited funds are defined by the quote. - `CreditedWalletType` (string, required) — **Allowed values:** `FEES`, `CREDIT` The type of the client wallet to be credited: - `FEES` – Fees Wallet, for fees collected by the platform. - `CREDIT` – Repudiation Wallet, for funds related to dispute management. The amount and currency of the credited funds are defined by the quote. - `Tag` (string, optional) — 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}"`. ## Response ### 200 Success - `Id` (string, optional) — Max length: 128 characters (see [data formats](/api-reference/overview/data-formats) for details) The unique identifier of the object. - `QuoteId` (string, optional, nullable) — The unique identifier of the active quote which guaranteed the rate for the conversion. Returned `null` in the case of an instant conversion. - `Type` (string, optional) — **Returned values:** `PAYIN`, `TRANSFER`, `CONVERSION`, `PAYOUT` The type of the transaction. - `Nature` (string, optional) — **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. - `CreationDate` (integer, optional) — Unix timestamp (UTC) of the date and time the object was created. - `Status` (string, optional) — **Returned values:** `CREATED`, `SUCCEEDED`, `FAILED` The status of the transaction. - `AuthorId` (string, optional) — 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` (string, optional) — The unique identifier of the debited wallet (in the sell currency). - `CreditedWalletId` (string, optional) — The unique identifier of the credited wallet (in the buy currency). - `DebitedFunds` (QuotedConversionClientWalletsResponseDebitedFunds, optional) — Information about the debited funds. - `CreditedFunds` (QuotedConversionClientWalletsResponseCreditedFunds, optional) — Information about the credited funds. - `ResultCode` (string, optional) — The code indicating the result of the operation. This information is mostly used to handle errors or for filtering purposes. - `ResultMessage` (string, optional) — The explanation of the result code. - `ExecutionDate` (integer, optional) — 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`. - `ConversionRateResponse` (ConversionRateResponse, optional) — Information about the `MarketRate` used to convert funds and other indicative rates. - `Tag` (string, optional) — 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}"`. ## Errors ### 400 Bad Request Error Bad Request - `Message` (string, optional) — Description of the error. - `Type` (string, optional) — The category of the error. - `Id` (string, optional) — Unique identifier of the error instance, useful when contacting Mangopay for support. - `Date` (double, optional) — Unix timestamp (UTC) of the date and time the error was triggered. - `errors` (map from string to string, optional, nullable) — Object containing one or more field-level errors. ## Types ### QuotedConversionClientWalletsResponseDebitedFunds Information about the debited funds. - `Currency` (string, optional) — **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. - `Amount` (integer, optional) — 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`. ### QuotedConversionClientWalletsResponseCreditedFunds Information about the credited funds. - `Currency` (string, optional) — **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. - `Amount` (integer, optional) — 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`. ### ConversionRateResponse Information about the `MarketRate` used to convert funds and other indicative rates. - `ClientRate` (double, optional) — 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` (double, optional) — 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` (double, optional) — 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`. ## Examples **Request** ```json { "body": { "CreditedWalletType": "CREDIT", "DebitedWalletType": "FEES", "QuoteId": "cvrquote_01J475ZRENK67V9A62JCQ6PYVW", "Tag": "Created using Mangopay API Collection Postman" } } ``` **Response** ```json { "Id": "cvr_01J475ZYZ6WBZK3JK3HSZFXHVN", "QuoteId": "cvrquote_01J475ZRENK67V9A62JCQ6PYVW", "Type": "CONVERSION", "Nature": "REGULAR", "CreationDate": 1722523057, "Status": "SUCCEEDED", "AuthorId": "your-client-id", "DebitedWalletId": "FEES_EUR", "CreditedWalletId": "CREDIT_GBP", "DebitedFunds": { "Currency": "EUR", "Amount": 10 }, "CreditedFunds": { "Currency": "GBP", "Amount": 8 }, "ResultCode": "000000", "ResultMessage": "Success", "ExecutionDate": 1722523057, "ConversionRateResponse": { "ClientRate": 0.8352637, "MarketRate": 0.84336 }, "Tag": "Created using Mangopay API Collection Postman" } ```