AD Code Explained: What Every Exporter Needs to Know
The AD code is a small registration with an outsized power: without it your shipping bill will not file. Here is what it is, the exact ICEGATE screen that registers it, the documents the portal asks for, and how to read the statuses when something is stuck.
What an AD code is
AD stands for Authorised Dealer: a person authorised to deal in foreign exchange under section 10(1) of the Foreign Exchange Management Act, which in practice means your bank. The AD code identifies the bank branch that will receive the money for your export. It is the link between the consignment and the account it will be paid into, which is why it appears on the export declaration alongside your IEC, your GSTIN and your PAN, and why customs and the Reserve Bank can both follow an export from the shipping bill to the payment.
Your bank issues it to you on its letterhead. Two things it is not: it is not the IFSC, which identifies a branch for payments and settlement, and it is not the IEC, which is your one DGFT export registration. You need all three, and they do different jobs. The whole vocabulary is in the exporter's DGFT glossary.
Why you cannot export without it
Customs will not accept a shipping bill at a location where your AD code is not registered. The shipping bill is what clears goods for export, so no AD code means no shipping bill, which means the consignment does not move. Downstream it matters just as much: the AD code is what ties the export to the bank that will report the inward remittance, which is what eventually underpins your eBRC and any incentive claim that rests on it.
The two bank accounts ICEGATE holds for you
This is the part most guides miss, and it is the part that decides whether you get paid. Under the Bank Account tab on ICEGATE, the portal keeps two different registrations and they are not interchangeable:
- Foreign Remittance Account (Authorized Dealer Code). The declaration of the bank used for receiving foreign remittances. Each record carries a Location Code, Bank Name, AD Code, Account Number and a Status at Customs. This is the one that lets a shipping bill file.
- Refund/Incentive Account. The account customs pays into. Each record carries a Location Code, Bank Name, IFSC Code, Account Number, a Status at Customs and a Status at PFMS, the second being the public financial management system through which the money is actually released.
An exporter whose AD code is registered but whose incentive account is not validated will file shipping bills perfectly and then wonder where the drawback went. Check both.
How to register an AD code on ICEGATE
You need an ICEGATE login registered against your IEC. The flow is short.
Step 1: Open the Bank Account tab
Sign in to ICEGATE and open the Bank Account tab in your profile. The portal offers the two account types above.
Step 2: Choose Foreign Remittance Account (Authorized Dealer Code)
Select it, and the list of AD code registrations you already hold appears, each with its location code and its status at customs. Read this list before adding anything; the record you think is missing is often there with a status you have not looked at.
Step 3: Add New Bank Account
Click Add New Bank Account, then supply the Bank Name and Branch Name from the dropdowns, the AD Code, the Bank Account Number, the Custom Location and the Doc Type of the proof you are about to attach.
Step 4: Upload the proof and click Verify
Attach the supporting document, then click Verify. The portal populates the IRN field from what you have entered.
Step 5: Submit and confirm it is you
Click Submit. ICEGATE then confirms the request against the mobile number or the email address registered on your account before it accepts it. On success the portal returns the message that the bank account was added successfully, and the record joins the list with a status at customs.
Step 6: Repeat for each customs location you ship from
Each record is held against a customs location. Add a record for every location you intend to ship from, and treat the status column, not your memory, as the answer to whether a location is ready.
The documents ICEGATE asks for
Do not improvise this. The portal's own requirement is a bank authorisation letter carrying all of the following, plus a copy of a cancelled cheque for the account, or the latest bank statement for it endorsed by the bank:
- Name of the exporter and the exporter's address.
- The IEC issued by DGFT to that exporter.
- The PAN associated with the IEC.
- The bank account number associated with that IEC.
- The name in which that bank account is held.
- Confirmation by the bank that the PAN linked to the account is the same as the PAN linked to the IEC.
- The bank AD code, or the IFSC code, as the case may be.
- The name, address, contact details and official email address of the branch where the account is held.
Most rejections are a letter missing one of those eight lines. Send the list to your bank rather than asking for "an AD code letter", and the first attempt usually lands.
Reading the statuses, and fixing what is stuck
How do I check my AD code registration status?
The Status at Customs column on the Foreign Remittance Account list is the answer, per record, per location. For a refund or incentive account, read both Status at Customs and Status at PFMS; money moves only when both are right.
I need to change the bank or the account number
Use Modify Account, which takes the same details and the same proof document. One rule catches people out: you can only modify a record whose status at customs is Accepted. A record that has not reached that status is not modified, it is worked out or added again. And you have to select the record from the list first; clicking modify with nothing selected returns an error.
A new port is holding up a consignment
The classic delay: goods ready, shipping bill blocked, because the code that works at your usual location was never registered at the new one. Add the record for that customs location before the goods are at the gate, not after.
We changed export banks
The old AD code stops being the right one. Register the new bank's code, and check every customs location you use, before the next shipment. Then check that the inward remittances are coming from the new bank too, or the certificate side will not reconcile.
DGFT is warning me that the AD code does not match
When you generate an eBRC for goods, the Shipping Bill AD Code is a mandatory field, and if it does not match the remittance AD code on the inward remittance message, the portal shows a warning asking you to change the shipping bill's AD code to your bank's. It is a warning rather than a wall: DGFT's published position is that a certificate can still be generated where the two differ, which happens legitimately when you bank with more than one AD and the payment landed at the other one. The full flow is in how to generate an eBRC on the DGFT portal.
AD code, IFSC, and the money coming back
When a foreign payment arrives, the inward remittance record your bank reports carries the AD code and the branch IFSC alongside the amount, currency and purpose code. Those fields are how the money is tied back to the right branch and, from there, to your export. Reading them correctly is most of clean realisation: see purpose codes and currency codes explained and IRM housekeeping.
Keep a plain list of every customs location you use, the AD code registered there, the status you last saw, and the date you checked it. Fold it into your DGFT compliance checklist. Once the registrations are right and the remittances are arriving, turning each one into a certificate is a short job; the eBRC exporter app does that side, free at any volume with no certificate limit.
Frequently asked questions
What is an AD code in export?
An AD code is the Authorised Dealer code of the bank branch that handles your export proceeds, issued by a bank authorised to deal in foreign exchange under section 10(1) of the Foreign Exchange Management Act. It identifies, to customs, the bank that will receive the money for your export.
Why is an AD code required?
Customs requires your AD code to be registered against the customs location before a shipping bill can be filed there. Without it the goods cannot be cleared for export at that location, and there is no link between the export and the bank that will report the payment.
Where do I register an AD code?
On ICEGATE, under the Bank Account tab, as a Foreign Remittance Account (Authorized Dealer Code). Each record is held against a customs location, so add one for every location you ship from and check the status at customs on each.
What documents does ICEGATE need for AD code registration?
A bank authorisation letter giving the exporter's name and address, the IEC, the PAN linked to the IEC, the bank account number and the name it is held in, the bank's confirmation that the PAN on the account matches the PAN on the IEC, the AD code or IFSC, and the branch's name, address, contact details and official email. Plus a cancelled cheque for that account, or the latest bank statement for it endorsed by the bank.
Is an AD code the same as an IFSC code?
No. The IFSC identifies a bank branch for payments and settlement. The AD code identifies the authorised dealer branch to customs for export purposes. Both appear on an inward remittance record, and ICEGATE holds the AD code on your foreign remittance account and the IFSC on your refund and incentive account.
How do I check my AD code registration status on ICEGATE?
Open the Bank Account tab, select Foreign Remittance Account (Authorized Dealer Code), and read the Status at Customs column against each location code. An account can only be modified once its status at customs is Accepted.
Do I need a separate registration to receive drawback or an IGST refund?
Yes. That is the Refund/Incentive Account, a separate registration on the same Bank Account tab, and it carries both a status at customs and a status at PFMS. An AD code registration alone does not tell customs where to pay you.