FX Rates
How to handle FX Rate
Overview
The Quote API will generate an FX Rate for cross-currency transactions and are only estimated at this point. The FX rate will be guaranteed for 30 minutes starting at the time of the quote to the commit of the transaction. If the transaction is not committed within the 30 minutes, the FX rate may change.
For some destination countries the regulatory or market environment requires the fx rate to be estimated. When the country is indicative, the quote API gives a response of transactions.recieveAmount.fxRateEstimated: "true"
and the Fx Rate will not be guaranteed on the transaction. These destination countries are referred to as "indicative countries" and are as follows:
- Aruba
- Brazil
- Ethiopia
- Haiti
- Libya
- Namibia
- Venezuela
- South Africa
Case Study: Haiti
If the exchange rate for USD to HTG (Haitian Gourde) is 1 USD to 134.00 HTG, and you are transferring 100 USD to Haiti, at the time of committing the transaction, the receive amount will be an estimate of 13,400.00 HTG based on the current exchange rate.
When the recipient picks up the funds or when the funds are deposited, the receive amount will be calculated based on the exchange rate at this time so if the exchange rate for USD to HTI has changed to 1 USD to 130.00 HTG the receiver will receive 13,000.00 HTG.
How to implement
- The Quote API Response will return the
transactions.recieveAmount.fxRateEstimated: true
to indicate the country is indicative and the transaction quote is estimated. - The
receiveAmount.Amount
andreceiveAmount.Fx
must be displayed as "Estimated" in the user interface. - The following disclaimer must be placed on the User Interface
Not all currencies are available at all locations.
The above exchange rate is only an approximation. The actual exchange rate
will be the rate that is in effect at the time the transfer is received.
API Request & Response Examples
curl --request POST \
--url https://sandboxapi.moneygram.com/transfer/v1/transactions/quote \
--header 'X-MG-ClientRequestId: 957908758' \
--header 'accept: application/json' \
--header 'authorization: Bearer NG46z9GEpNQlh0P5X9ISIHHX4GO3' \
--header 'content-type: application/json' \
--data '
{
"targetAudience": "CONSUMER_FACING",
"agentPartnerId": 43688984,
"destinationCountryCode": "IND",
"destinationCountrySubdivisionCode": "IN-DL",
"serviceOptionCode": "WILL_CALL",
"sendAmount": {
"value": 100,
"currencyCode": "USD"
},
"sendAmountIncludingFee": true
"receiveCurrencyCode": "INR",
}
'
"receiveAmount": {
"amount": {
"value": 1000.00,
"currencyCode": "BRL"
},
"fees": {
"value": 0.00,
"currencyCode": "BRL"
},
"taxes": {
"value": 0.00,
"currencyCode": "BRL"
},
"total": {
"value": 992.84,
"currencyCode": "BRL"
},
"fxRate": 0.2014,
"fxRateEstimated": true
UI Best Practice
We have provided the following wire frames as a basic guide to how Quote API response is typically handled by application UI:
Quote Summary



Updated 3 months ago