Exchange Rate for GST Invoices in India: Which Rate to Use

Reviewed by Madhushan, Fintech Developer — October 2026

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.

Not tax advice. This is a developer's summary of the rule. Confirm the rate policy for your business with your chartered accountant.

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:

GoodsServices
Rate to useThe rate notified by the CBIC under section 14 of the Customs Act, 1962The rate determined under generally accepted accounting principles
For which dateThe time of supply of goods (section 12, CGST Act)The time of supply of services (section 13, CGST Act)
Where it comes fromCBIC customs exchange-rate notificationsYour 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:

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 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

  1. Is the supply goods or services? Goods: CBIC customs rate. Services: your accounting-standard rate.
  2. What is the time of supply? That date selects the rate, not the date you happen to run the code.
  3. 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

Related Articles