An AD code is your bank's code on the shipping bill. It tells customs, and through customs the Reserve Bank, which bank will receive the money for that export, so the bank can follow up until your buyer pays. Every shipping bill carries one, unless no foreign exchange is involved, and customs accepts only an AD code that's registered against your IEC on ICEGATE.

Many guides on the subject still say the AD code has to be registered separately at every port you export from: once for Chennai sea, again for Chennai air cargo, again for Bengaluru. That stopped in June 2022. Since then, one registration at one port has been enough for every customs location in India. What's still registered location by location is a different account, the one customs pays your IGST refund and drawback into. That's the one that now catches exporters out on the first shipment through a new port.

This guide covers what the AD code does, the one-port rule and how it works, the refund account, the steps on ICEGATE as of October 2026, the two documents, and where things still go wrong.

What the AD code does

AD stands for Authorised Dealer. An Authorised Dealer Category-I bank is one that the RBI has licensed to deal in foreign exchange for all current and capital account transactions (RBI). The code belongs to the specific branch that handles your export proceeds, so ask that branch for it.

The code exists for one reason: to tie each shipping bill to a bank. Customs shipping bill data flows into the RBI's Export Data Processing and Monitoring System (EDPMS) (CBIC Circular 55/2016). Under the RBI's export regulations in force since 1 October 2026, the shipping bill counts as your export declaration at EDI ports, and your AD bank marks the entry off in EDPMS once the money has arrived (FEMA 23(R)/2026-RB). The bank named by the AD code is the bank that will chase you if your buyer doesn't pay within the nine months the rules now allow.

Two practical points follow. The AD code has to be the code of the branch authorised to handle foreign exchange for your account, which may not be your home branch (ICEGATE advisory, 1 October 2026). And it's a short code that your bank gives you on a letter. Many guides call it a 14-digit number, but the examples in ICEGATE's own manual are seven characters.

One registration, every port

Until June 2022, an AD code had to be registered at every port where you filed documents, and an officer at each port approved it. On 14 June 2022, DG Systems changed that (ICES Advisory 10/2022, as circulated by Chennai Customs):

  • Register once. An AD code registered against your IEC at any one port is available at all customs locations. There's no need to register it again elsewhere.
  • The port you choose becomes the port of registration. Any later change to that AD code's account details has to be made at that port.
  • More than one AD code is fine. You can register several, for different banks, each with its own port of registration.
  • Old registrations were mapped automatically. For AD codes registered before the change, the port where you last filed a shipping bill with that code was taken as its port of registration. ICEGATE shows the port of registration against each code.

Requests have been made online since July 2020 (CBIC Circular 32/2020), and since the June 2022 change, customs officers can no longer add or modify AD codes in their own system, so ICEGATE is the only route. Both Bengaluru commissionerates issued public notices on the change in June 2022 (Bengaluru City Customs PN 16/2022).

So pick the port you ship from most often as your port of registration, because that's where you'll go back for changes. For a Chennai manufacturer shipping containers that's usually Chennai sea port. For a Bengaluru electronics exporter it's usually the air cargo complex.

Two maps of Chennai and Bengaluru customs locations side by side. On the left, before 14 June 2022, each of six ports gets its own approval stamp one at a time. On the right, since 14 June 2022, one AD code registration at Chennai sea port lights up all six ports at once. A strip below shows the refund account, which is still registered location by location, now with an All option.
The AD code is registered once. The refund account still goes location by location, though ICEGATE can now do all of them in one request.

The account that's still per port

ICEGATE keeps two kinds of bank registration side by side, and they do different jobs (CBIC Circular 32/2020):

AD code account Refund (incentive) account
ICEGATE calls it Foreign Remittance Account (Authorised Dealer Code) Refund/Incentive Account
Identified by AD code IFSC
What it's for Linking each shipping bill to the bank receiving the export proceeds Receiving IGST refunds and duty drawback
Validated by Customs, and your bank Customs, then PFMS before any payment
Per port? No. Register once, valid everywhere Yes, per customs location

The refund account is checked by PFMS, the government's payment system, before any money goes out. Drawback has been credited through PFMS since June 2024 (CBIC Instruction 15/2024), and ICEGATE's own refund FAQ lists an account that isn't validated with PFMS as a reason refunds get stuck (ICEGATE IGST refund FAQ).

Two recent changes make the per-port part easier:

  • Since 7 October 2025, once an account and IFSC are approved for your IEC at one customs location, the same account is approved automatically at other locations, without an officer. It still goes to PFMS for validation (CBIC Circular 24/2025).
  • Since 1 October 2026, the location dropdown for the refund account has an "All" option, so you can register it for every customs location in one request (ICEGATE advisory, 1 October 2026).

If your refund account was registered years ago at one port, log in now and add the other locations. Doing it before the first Bengaluru air shipment is a lot better than finding out from a refund that never arrives.

Two bank accounts with two jobs. In the top lane, a shipping bill carries the AD code to the AD bank, the buyer's foreign currency payment arrives at the same bank, and the bank ticks off the shipping bill in the RBI's EDPMS. In the bottom lane, customs sends an IGST refund and drawback coin through PFMS validation into the refund account registered for that customs location.
The AD code tells the RBI who to ask about the buyer's money. The refund account is where customs pays you.

Registering the AD code on ICEGATE

The request is made from the exporter's own ICEGATE login. As set out in ICEGATE's bank account management manual (version 1.02, 1 October 2026):

  1. Log in to ICEGATE. A mobile OTP has been compulsory at login since 16 January 2026.
  2. Open your profile. Click the Profile status widget, then the Bank Account tab.
  3. Choose the account type. Select "Foreign Remittance Account (Authorized Dealer Code)", then Add New Bank Account.
  4. Enter the AD code and click Get Details. ICEGATE fills in the bank and branch. If several branches share the code, pick yours from the list.
  5. Enter the account details. If your bank is integrated with ICEGATE, enter the account number, choose one customs location (your port of registration) and click Verify. The bank confirms the details electronically and no documents are needed. If your bank isn't integrated, choose the bank and branch, enter the account number and location, select the document type, and upload the two documents below through e-Sanchit with your digital signature.
  6. Submit, then track it under "Status at Customs" on the dashboard.

As of 13 October 2026, 31 banks are live on the electronic check, including SBI, Indian Bank, Indian Overseas Bank, Canara Bank, ICICI, HDFC, Axis, City Union Bank, Karur Vysya Bank, Tamilnad Mercantile Bank and Karnataka Bank (ICEGATE bank list). Several foreign and smaller banks are listed as not yet active, so check the list for yours.

For the document route, the Board's instruction is that a request made before 2 PM is dealt with the same day, and anything later by 2 PM on the next working day (CBIC Instruction 25/2023). Chennai Customs repeated that in a December 2024 public notice, which says requests are approved by the EDI section without any need to visit the office (Chennai Customs PN 63/2024).

The electronic check depends on your bank's records. ICEGATE's October 2026 advisory lists the usual reasons it fails: a wrong account number or IFSC, an AD code that isn't mapped to your account, a PAN or IEC that doesn't match the bank's records, outdated KYC, or a dormant, frozen or closed account. ICEGATE doesn't override the bank's answer, so the fix is at the bank, before you try again.

The two documents

If your bank isn't integrated with ICEGATE, customs relies on exactly two documents, uploaded on e-Sanchit with a digital signature (CBIC Instruction 25/2023):

A letter of authorisation from your bank, which must show:

  • the exporter's name and address;
  • the IEC;
  • the PAN;
  • the account number and the account holder's name;
  • the bank's confirmation that the PAN on the account matches the PAN of the IEC;
  • the AD code (or the IFSC, for a refund account);
  • the branch's name, address, contact details and official email.

A cancelled cheque, or the latest bank statement endorsed by the bank.

Get the letter from the branch that handles your foreign exchange, not the one nearest your office. ICEGATE lists an invalid or unmapped AD code, and the wrong branch, among the usual reasons verification fails.

Where first shipments still get stuck

The one-port rule fixed the old problem of re-registering at every port. These are the problems that are left.

No AD code registered at all. The AD code field is mandatory on the shipping bill. A new exporter who hasn't registered one can't have the shipping bill filed. Register as soon as the current account is open and the IEC is issued, not on the day the cargo reaches the gate.

A new bank. Changing banks means a new AD code, and that's a new registration. Edits to an existing AD code have to be made at its port of registration, which may not be the port you're shipping from this week.

The bank's records don't match. For integrated banks, the bank's own system decides. If the IEC isn't updated with the bank, or the PAN and the account sit under different customer IDs, verification fails until the bank fixes its side.

The refund account isn't registered where you're shipping. The shipping bill goes through, the cargo sails, and the IGST refund or drawback stalls because there's no validated refund account for that customs location. With the "All" option this takes one request to fix.

The IEC or bank account changed. If the bank account on your IEC changed, update the IEC with DGFT and the registrations on ICEGATE together. Our IEC guide covers the DGFT side.

Customs locations in Chennai and Bengaluru

When ICEGATE asks for a customs location, these are the codes you'll see for our part of the country (ICEGATE location list):

Location Code
Chennai sea port INMAA1
Chennai air cargo complex INMAA4
Kamarajar Port (Ennore) INENR1
Kattupalli Port INKAT1
ICD Tondiarpet, Chennai INTVT6
ICD Irungattukottai (Sriperumbudur) INILP6
Bengaluru air cargo complex INBLR4
ICD Whitefield, Bengaluru INWFD6

For the AD code, one of these is enough. For the refund account, choose "All", or at least every location you expect to ship from.

Frequently asked questions

What is an AD code in export?

The Authorised Dealer code of the bank branch that will receive your export proceeds. It goes on every shipping bill involving foreign exchange, and it links the export to the RBI's EDPMS so the bank can track whether the buyer paid.

Do I need to register my AD code at every port?

No. Since 14 June 2022, an AD code registered at one port is available at every customs location. Changes to it have to be made at the port where it was registered.

How long does AD code registration take?

With a bank that's integrated with ICEGATE, the bank verifies the details electronically. Otherwise, customs is meant to approve a request filed before 2 PM the same day, and later requests by 2 PM on the next working day.

What documents are needed for AD code registration?

A letter of authorisation from your bank with the details listed above, and a cancelled cheque or a bank-endorsed statement. Neither is needed if your bank verifies through ICEGATE's integration.

Is the AD code the same as the IFSC?

No. The AD code identifies the bank branch handling your foreign exchange and goes on the shipping bill. The IFSC identifies the account customs pays refunds into, registered separately as your refund account.

Can I change my AD bank?

Yes. Register the new bank's AD code on ICEGATE, with the new bank's letter if it isn't integrated. Use it on shipping bills from then on, and tell both banks if export proceeds are moving between them.

The short version

The AD code is your bank's code on the shipping bill, and it's how the RBI knows which bank to ask about your buyer's payment. Register it once on ICEGATE, at the port you use most, and it works at every port in India. The account that still needs registering location by location is the refund account for IGST refunds and drawback. Since October 2026 that's one request with the "All" option, and it's worth doing before your first shipment through a new port, not after a refund goes missing.


Trinity Freight Services handles export clearance at every Chennai port and ICD, and at Bengaluru air cargo and ICD Whitefield. Before your first shipping bill we check the AD code, the refund account and the IEC behind them. If you're shipping from Chennai or Bengaluru for the first time, talk to us.