USD – US Dollar
GBP – British Pound
EUR – Euro
CAD – Canadian Dollar
AUD – Australian Dollar
SGD – Singapore Dollar
INR – Indian Rupee
INR – Indian Rupee
USD – US Dollar
GBP – British Pound
EUR – Euro
CAD – Canadian Dollar
AUD – Australian Dollar
Estimated Total Receivable
*Disclaimer: Rates are indicative and include simulated ICICI Bank margins. Actual rates fluctuate based on market conditions and GST applications.
Understanding ICICI Bank Exchange Rates
When transferring money internationally through ICICI Bank, whether using Money2India or the iMobile app, the exchange rate you receive is not just the mid-market interbank rate. It includes a bank margin (spread) and is subject to statutory taxes like GST.
Key Factors Influencing Your Rate
Service Channel: Money2India often provides preferential rates compared to over-the-counter cash exchanges.
Transfer Volume: High-value transactions may qualify for better negotiated rates or "fixed" rates rather than indicative ones.
GST on Currency Conversion: In India, GST is applicable on the gross amount of currency exchanged, calculated on a slab basis (e.g., 18% of the service portion).
Market Hours: Rates during IST business hours (9:00 AM – 4:00 PM) are typically more stable than off-market hour rates.
Example Calculation
If you are sending 1,000 USD to India:
Component
Details
Base USD/INR Rate
83.45
ICICI Margin (Simulated)
-0.65 per USD
Applied Rate
82.80
Total INR Received
₹ 82,800.00
ICICI Money2India vs. Wire Transfer
For NRIs (Non-Resident Indians), the Money2India platform is generally more cost-effective. While a standard Wire Transfer (SWIFT) might incur intermediary bank charges ranging from $15 to $40, Money2India often provides a "Fixed Rate" option where the exchange rate is locked at the time of transaction initiation, providing certainty on the final Rupee amount delivered.
function calculateExchange() {
var amount = parseFloat(document.getElementById('exchangeAmount').value);
var fromCurr = document.getElementById('fromCurrency').value;
var toCurr = document.getElementById('toCurrency').value;
var service = document.getElementById('serviceType').value;
var resultDiv = document.getElementById('exchangeResult');
var amountDisplay = document.getElementById('finalAmountDisplay');
var breakdown = document.getElementById('rateBreakdown');
if (isNaN(amount) || amount <= 0) {
alert("Please enter a valid amount.");
return;
}
// Base rates relative to 1 INR (indicative data)
var ratesToInr = {
"USD": 83.48,
"GBP": 106.22,
"EUR": 90.75,
"CAD": 61.35,
"AUD": 55.42,
"SGD": 62.15,
"INR": 1
};
// Simulated ICICI Margins (Bank profit/spread)
var margin = 0.008; // 0.8% default margin
if (service === "money2india") {
margin = 0.0065; // Lower margin for remittance
} else if (service === "cash") {
margin = 0.025; // Higher margin for physical cash
}
// Step 1: Convert source currency to INR (mid-market simulation)
var sourceMidRate = ratesToInr[fromCurr];
var targetMidRate = ratesToInr[toCurr];
// Calculate cross-rate
var crossRate = sourceMidRate / targetMidRate;
// Apply margin (deducted from user for buying INR, or added for buying foreign currency)
// If selling foreign currency to bank (common case), rate is lower
var appliedRate = crossRate * (1 – margin);
var finalValue = amount * appliedRate;
// Simple GST Estimation for India (very basic slab simulation)
var gst = 0;
if (toCurr === "INR") {
var taxableValue = 0;
if (finalValue <= 100000) {
taxableValue = Math.max(finalValue * 0.01, 250);
} else if (finalValue <= 1000000) {
taxableValue = 1000 + (finalValue – 100000) * 0.005;
} else {
taxableValue = 5500 + (finalValue – 1000000) * 0.001;
}
gst = taxableValue * 0.18;
}
var finalAfterGst = finalValue – gst;
// Display Results
resultDiv.style.display = 'block';
amountDisplay.innerHTML = toCurr + " " + finalAfterGst.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
breakdown.innerHTML = "Exchange Details:" +
"Indicative Rate: 1 " + fromCurr + " = " + appliedRate.toFixed(4) + " " + toCurr + "" +
"Service Tax (GST): " + toCurr + " " + gst.toFixed(2) + "" +
"Channel: " + (service.charAt(0).toUpperCase() + service.slice(1));
}