Exchange Rate for GST Invoices in India: Which Rate to Use
If your billing system raises invoices in dollars, euros or dirhams, GST is still calculated on a rupee value. So the code has to pick an exchange rate, and the right rate depends on whether you are supplying goods or services. This guide explains the rule in plain terms for developers building invoicing, ERP or e-commerce systems, and shows how to automate the part that can be automated.
The rule: CGST Rule 34
Rule 34 of the CGST Rules, 2017 sets the exchange rate for valuing a supply priced in a foreign currency. It splits by type of supply:
| Goods | Services | |
|---|---|---|
| Rate to use | The rate notified by the CBIC under section 14 of the Customs Act, 1962 | The rate determined under generally accepted accounting principles |
| For which date | The time of supply of goods (section 12, CGST Act) | The time of supply of services (section 13, CGST Act) |
| Where it comes from | CBIC customs exchange-rate notifications | Your accounting policy, e.g. a published spot rate under Ind AS 21 |
The very first version of Rule 34, in July 2017, referred to the RBI reference rate for both. It was replaced within weeks by the split above, which is why older articles still say “GST uses the RBI rate”.
Goods: the CBIC customs rate
The CBIC notifies customs exchange rates for 22 currencies twice a month, on the 1st and 3rd Thursday. Each notification takes effect from midnight of the following day. If a due Thursday is a holiday, the rates are notified on the previous working day. And if a currency moves more than 5% in between, the CBIC can re-notify that currency early. The rates are based on daily rates the CBIC obtains from the State Bank of India.
For your code, that means:
- Store the customs rates as validity periods (from-date, to-date, currency, rate), not as daily values.
- For each invoice, pick the notification in force on the time-of-supply date.
- Allow for an early re-notification of a single currency in the middle of a period.
AllRatesToday does not publish the CBIC customs rates. Load them from the CBIC notifications on cbic.gov.in.
Services: the accounting-standard rate (automatable)
For services, Rule 34 defers to generally accepted accounting principles. Under Ind AS 21 (or AS 11), a foreign-currency transaction is recorded at the spot rate on the transaction date. Most businesses meet that with a published daily rate. The RBI reference rate, computed by FBIL every Mumbai business day, is the common choice because it is official, public and easy to evidence in an audit. Whatever you choose, apply it consistently and write it into your accounting policy.
This part is easy to automate. Fetch the RBI rate for the time-of-supply date and keep it on the invoice:
import os, requests
from decimal import Decimal, ROUND_HALF_UP
API = "https://allratestoday.com/api/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['ALLRATESTODAY_API_KEY']}"}
def rbi_rate(currency: str, supply_date: str) -> dict:
"""RBI reference rate for the time-of-supply date (last published day on weekends/holidays)."""
r = requests.get(
f"{API}/central-bank/rbi/{supply_date}",
params={"source": currency, "target": "INR"},
headers=HEADERS, timeout=10,
)
r.raise_for_status()
return r.json()
fx = rbi_rate("USD", "2026-09-30")
amount_usd = Decimal("2500.00")
taxable_inr = (amount_usd * Decimal(str(fx["rate"]))).quantize(Decimal("0.01"), ROUND_HALF_UP)
igst = (taxable_inr * Decimal("0.18")).quantize(Decimal("0.01"), ROUND_HALF_UP)
print(fx["rate_date"], fx["rate"], taxable_inr, igst)
# 2026-09-30 95.9832 239958.00 43192.44 The 18% IGST above is only an example; use the rate that applies to your service. Exports of services are generally zero-rated, but they still need a rupee value on the invoice and in your returns.
Keep the audit trail on the invoice
Store four fields with every foreign-currency invoice line, so anyone can trace the rupee value later:
- the rate used, as published (
95.9832), before any rounding; - its publication date (
rate_date), which can be earlier than the invoice date on weekends and holidays; - the source (“RBI/FBIL reference rate”, or “CBIC notification no. …” for goods);
- the rupee taxable value, rounded once, at the end.
The API response gives you the first two directly, and published_on_requested_date tells you when a weekend or holiday fallback was applied.
Quick decision guide
- Is the supply goods or services? Goods: CBIC customs rate. Services: your accounting-standard rate.
- What is the time of supply? That date selects the rate, not the date you happen to run the code.
- Is the rate traceable? Store the rate, its date and its source with the invoice.
FAQ
Which exchange rate does GST use for goods?
For goods, Rule 34 of the CGST Rules points to the rate the CBIC notifies under section 14 of the Customs Act, for the date of the time of supply. These customs rates are notified twice a month for 22 currencies. AllRatesToday does not publish the CBIC customs rates; take them from the CBIC notifications.
Which exchange rate does GST use for services?
For services, Rule 34 says the rate is determined under generally accepted accounting principles for the date of the time of supply. In practice that means the rate your accounting policy uses under Ind AS 21 or AS 11, typically a published spot rate for the transaction date such as the RBI/FBIL reference rate. Agree the choice with your chartered accountant and apply it consistently.
Is the RBI reference rate mandatory for GST?
Not as such. The first version of Rule 34 in 2017 referred to the RBI reference rate, but it was replaced within weeks by the current wording: CBIC customs rates for goods and accounting-standard rates for services. The RBI/FBIL rate remains a common, easy-to-evidence choice for the services side.
What if the time of supply falls on a weekend?
The RBI publishes no rate on Saturdays, Sundays or Mumbai bank holidays. The API returns the last published rate before that date and labels it with its real publication date, which is the usual way to handle non-business days under accounting standards. Document the approach in your accounting policy.
Automate the services side
The RBI reference rate for any date back to 2003, as JSON, CSV or Excel. 300 free requests, no credit card.
Get your free API key