A client called me last week. "We filed everything correctly," he said. His export refund had been sitting for 4 months.
I asked to see the application.
10 minutes in, we found it. One digit in the shipping bill number didn't match the export data in GSTR-1. That's it. That's what stalled the refund.
He'd assumed the refund was automatic once the goods left India. It isn't, and understanding why changes how you file the next one.
Export refunds run on two different tracks
GST gives you two ways to get your money back on a zero-rated export, and most of the confusion starts from not knowing which one you're on.
Rule 96, the IGST-paid route. You pay IGST on the export invoice like a normal domestic sale, then claim it back. Under Rule 96 of the CGST Rules, 2017, the shipping bill you file with customs is deemed to be your refund application. There's no separate RFD-01 for goods on this route. No officer manually reviews your case unless something flags it. The system matches your shipping bill against your GSTR-1 and your GSTR-3B, and if everything lines up, the refund moves without you doing anything beyond filing your returns correctly.
Rule 89 with an LUT, the no-tax route. You export without paying IGST by furnishing a Letter of Undertaking under Rule 96A, then claim a refund of the accumulated input tax credit through FORM GST RFD-01. This one is manual. A GST officer at your jurisdiction processes it, using the formula in Rule 89(4): (zero-rated turnover x net ITC) / adjusted total turnover. You can get 90% of it provisionally within days under Rule 91, with the balance after verification.
Most exporters with genuine ITC accumulation prefer the LUT route for the cash flow. But the mismatch problem I'm describing here belongs to the Rule 96 route, because that's the one where a machine, not a person, decides whether your shipping bill counts as a valid application at all.
The shipping bill is the application. Not a supporting document
This is the part that trips people up.
Under Rule 96, your refund isn't "supported by" the shipping bill. The shipping bill IS the application. And the rule is specific about when that application is even treated as filed: it's deemed filed only once your GSTR-3B for the relevant tax period is furnished, the export manifest (EGM) has been filed by your carrier, and the invoice details you declared match between the shipping bill and your GSTR-1.
Read that last condition again. If there's a mismatch, the deeming provision doesn't kick in at all. Your refund application, in the eyes of the system, doesn't exist yet. There's nothing sitting in a queue waiting on an officer. There's nothing to escalate. The clock the exporter thinks is running was never started.
That's why "we filed everything correctly" is the wrong frame. You filed a shipping bill and a GSTR-1. Whether those two documents talk to each other is the actual test.
What actually happens when they don't match: SB005
The specific error my client's case threw is called SB005, and it's the most common reason IGST refunds on exports get stuck.
SB005 fires when the invoice number or date on the shipping bill doesn't match what's declared in GSTR-1 Table 6A, or when the same shipping bill number has already been used against another claim. In my client's case, it was a single transposed digit in the shipping bill number carried into the GST return.
There's a related error, SB006, that catches a different problem: the shipping line hasn't filed the Export General Manifest (EGM) for that shipping bill, or the cargo details in the EGM don't match. That one usually isn't your mistake at all. It's your freight forwarder or shipping line sitting on a filing, and no amount of correcting your own GST return will fix it.
Both errors sound like they should be quick fixes. They're not, because of an asymmetry in how the two systems handle corrections.
Why you can fix the GST side but not the customs side
Your GSTR-1 is amendable. If you catch a wrong invoice number after filing, you correct it in Table 9A of a subsequent month's return. That's routine.
Your shipping bill isn't amendable in the same way, certainly not once the EGM has been filed against it. Customs treats the shipping bill as a closed document tied to a specific consignment that has already left the country. You can't just go back and edit it the way you'd fix a GST return.
So when the mismatch is on the GST side, an EGM Table 9A correction plus a wait for the systems to resync usually clears it. When the mismatch sits on the shipping bill itself, or when the two sides genuinely used different invoice numbering (a common problem for exporters who run one number series for domestic sales and a separate one for exports), you're into a customs officer interface process. You submit what's effectively a concordance table: a reconciliation mapping your GST invoice numbers to your shipping bill invoice numbers, invoice-by-invoice, with the taxable value and IGST amount tied to each. A customs officer reviews it and manually enters the corrected figures before the refund can move.
That process exists and it works, but it's slower than the automatic route by design. It was built to plug a data problem, not to be anyone's first choice.
8 checks I run before filing an export refund application
Most of this is preventable. Here's what I go through before an export invoice gets filed, not after the refund stalls.
1. GSTIN and invoice number match, character for character, between the tax invoice and the shipping bill. Not "close enough." The systems match strings, not amounts. If you run a separate invoice series for exports, double-check it's the one that reached the shipping bill, not your domestic series.
2. Shipping bill number, date, and port code in GSTR-1 Table 6A are copied from the shipping bill itself, not retyped from memory or an internal tracker. Most SB005 errors I've seen started as a transposition during data entry, exactly like my client's case.
3. The carrier has actually filed the EGM for that shipping bill. This one's easy to skip because it's not your document. Ask your freight forwarder to confirm EGM filing status before you assume the refund clock has started. An unfiled EGM throws SB006, and chasing a shipping line after the fact takes longer than asking upfront.
4. IGST reported in GSTR-3B for the month is at least equal to the IGST shown against exports in GSTR-1 Table 6A for the same month. If your 3B figure is lower, even for reasons unrelated to exports, the system won't transmit the export data to customs for that period.
5. The FOB value on the shipping bill and the invoice value in your GST return are reasonably consistent. A shipping bill FOB value that's significantly lower than the invoice value invites scrutiny on the refund amount, since the lower of the two is generally what gets sanctioned.
6. GSTIN is active for the relevant period, with no suspension or cancellation sitting against it. A refund application from a suspended GSTIN doesn't move, whatever the shipping bill says.
7. Aadhaar authentication under Rule 10B is complete for the authorised signatory. This has been mandatory for refund applications since 1 January 2022, and I still see applications stall because it was never done at registration or was never revisited when signatories changed.
8. LUT is live for the financial year, if you're on the no-tax-payment route. LUTs under Rule 96A run financial year to financial year. A lapsed LUT doesn't stop your export. It converts it into a transaction where you should have paid IGST and didn't, which is a different and worse problem than a delayed refund.
Run these 8 before you file, and most exporters never see an SB005 error at all.
A relief worth knowing about if you use Advance Authorisation or EPCG
If your business imports on concessional duty under schemes like Advance Authorisation, EPCG, or EOU status, there's a change worth flagging.
Rule 96(10) used to bar exporters who'd availed the benefit of specified concessional import notifications (48/2017-Central Tax, 40/2017-Central Tax (Rate), and 41/2017-Integrated Tax (Rate)) from claiming IGST refund on their exports through the Rule 96 route at all. It pushed a lot of Advance Authorisation and EPCG holders onto the LUT route by default, whether or not that suited their cash flow.
Notification No. 20/2024-Central Tax, dated 8 October 2024, omitted Rule 96(10) entirely. The corresponding ITC exclusions in Rule 89(4A) and 89(4B), which fed into the LUT-route refund formula, were removed too. If this restriction shaped how your business structured its export invoicing, it's worth revisiting whether the Rule 96 route now makes more sense for you.
If your refund is already stuck
Check the ICEGATE status against your shipping bill number for the specific error code. SB005 and SB006 point to different fixes, and treating them the same wastes weeks.
For an SB005 caused by a GST-side error, correct it through Table 9A in your next GSTR-1 and allow a few days for the systems to resync. For a shipping-bill-side error or a genuine dual-numbering mismatch, prepare the concordance table and take it to your jurisdictional customs officer through the ICES interface.
For an SB006, the fix isn't yours to make. Get your carrier to file or correct the EGM, and don't keep re-checking your own GST data in the meantime.
And don't lose sight of the clock. Section 54(1) of the CGST Act gives you 2 years from the relevant date, generally the date the vessel or aircraft carrying your export left India, to file a refund claim. A shipping bill stuck in SB005 for months is still inside that window in most cases, but it's not infinite. If a deficiency memo in FORM RFD-03 is issued against any refund application you've filed on the LUT route, the application is treated as not filed at all, and you refile fresh within whatever's left of the 2 years.
Before your next export invoice goes out
Pull your last 3 months of export shipping bills and cross-check the invoice numbers against what's in your GSTR-1 Table 6A. If you're running separate invoice series for domestic and export sales, that's the first place a mismatch hides.
We help exporters set up invoice-to-shipping-bill reconciliation before filing, and resolve stuck IGST refunds where SB005 or SB006 has already hit. If you've got a refund sitting for months with no clear reason, write to us.
TaxTMI