Skip to content
Reference

Where is my cargo?

Where is my cargo? — and which system can actually tell you

Last updated

"Where is my shipment" sounds like one question. It is three, they have different answers, and only one of them is about your filing.

The three questions, and who answers each

QuestionWho can answerWhat it tells you
Did my declaration reach customs, and was it accepted?Customs, via the acknowledgement — or its public record of accepted filingsYour CSN number, or a rejection code; presence on the record confirms acceptance
Who has filed against this master bill, and what did they declare?Customs, via the record of accepted CSNsEvery accepted filing, from the moment customs accepts it — and whether you can still amend
Has the carrier's manifest for this bill been filed?Customs, via the Sea Arrival Manifest enquiryWhether the shipping line's arrival manifest is in
Where is the container physically?The shipping line onlyGate-out, load, departure, arrival

Nothing about the first two tells you where the box is, and nothing the carrier says tells you whether your paperwork is in order. Conflating them is the usual reason people think tracking is broken.

Where do I actually go to look a bill of lading up on ICEGATE?

https://foservices.icegate.gov.in — the Public Enquiries section, which needs no login. Two enquiries answer for a master bill there, and they answer different questions: the Sea Arrival Manifest (SAM/IGM) enquiry reads the carrier's arrival manifest, which exists only once the vessel is at the port; the New SAM/IGM enquiry (Public Enquiries 2.0) reads the accepted SCMTR filings themselves — every CSN customs has accepted against the bill, from the moment it is accepted, typically days before arrival. See What customs already holds for what that record contains.

One thing catches people out on both: they are keyed on the master bill. Your house B/L will not find anything, because customs holds house detail underneath the master rather than as its own record.

This platform's tracking page queries both for you when you paste a bill of lading — the accepted filings, the manifest, and the arrival status, read together as one shipment — so in normal use you should not need ICEGATE's site at all. It is worth knowing about for the case where the platform reports nothing found and you want to confirm that with your own eyes.

Can I look a vessel's calls up on ICEGATE myself?

Yes, and it needs no login. The same Public Enquiries section of foservices.icegate.gov.in carries a VCN enquiry, which answers for a vessel rather than for a bill of lading.

What it asks for is the ship's IMO number — not its name, and not a VCN — and it answers about roughly two months either side of the day you ask. Each call it returns carries the VCN, the port, the expected arrival, the rotation number and the date that rotation was registered, and the shipping line running the call (as an MLO code, which is the line's PAN).

This is the same enquiry the platform runs on your behalf when it checks the call a filing names, so running it yourself is a way of seeing the identical answer with your own eyes. That is what you want when the app and the carrier disagree and you need something to put in front of the line — and it is the way to check a call on a filing the platform does not watch, such as a manifest you opened in the editor or a file you dropped on SCMTR JSON upload.

Two things it is not. It is not the two bill-of-lading enquiries above: those answer who has filed against this bill, which is a different question from which calls does this ship have. And an empty answer is not proof of a wrong ship on its own — a vessel whose next Indian arrival falls outside that two-month view has nothing to return.

You rarely need to run it yourself. This platform's VCN search page (scmtr.io/vessels) answers the same question from a ship's name, IMO number or VCN: signed out from the calls already on record here, and signed in by asking customs directly. See Finding the ship you are filing for and When the ship changes.

Is what customs holds the same as what I sent?

The lookup shows the record; it cannot see your file. Under any result there is a drop target — Is this what you sent? — for the CSN file the bill was filed in. Drop it and the checker lays every bill in that file beside customs' record, not only the one you searched: each value that differs, with what the code means, and whether customs holds a later version than the file (the record carries the date of the latest version it accepted, so a record dated after your file is an amendment or a re-filing you made since). Signed in, the file goes straight to the checker; signed out, it is held for you through sign-in, as the public checker's continue does. See Does customs hold this version of the file?.

Read the green line on the result carefully: all filings on record agree with each other means the filings customs holds — your CSN and the line's manifest — agree between themselves. It says nothing about your file.

Can I share a lookup with someone?

Yes — the result header carries a Share control: the link itself, a QR code, and a share button that hands the link to your phone's own share sheet where the browser has one. The link encodes only the port and the bill number — nothing private, no sign-in — so it can go to a customer, a CHA, or a colleague's phone, and opens the same public lookup for them. Once a lookup has answered, the browser's address carries it too (scmtr.io/track?location=…&masterBlNo=…), and that address previews in WhatsApp the same way as the Share link: as a card naming the bill, its line where the bill's own letters name one, and the port where the link's port is a known port code. The printed filing checklist carries the same QR, so the one question the paper cannot answer — "is this on customs' record now?" — is a scan away.

What the manifest enquiry does and does not mean

ICEGATE's Sea Arrival Manifest (SAM/IGM) enquiry takes a master bill of lading and a port. It answers whether the carrier's arrival manifest for that bill has been filed with customs.

Two things follow that are easy to get backwards:

    It is not your CSN's status. Your filing's own outcome comes from its acknowledgement, not from here.A "not found" early on is normal, not an error. The IGM number is minted at or near the vessel's arrival, while a CSN is filed in advance. For the whole period between filing and arrival there is simply nothing on the manifest to find — though the record of accepted CSNs answers during exactly that period, which is why the platform's tracking page asks it too.

And the consequential one: finding the manifest changes what you can still do to your CSN. Since ICES Advisory 37/2026 (18 September 2026) you can still amend it — then give the line the amended CSN and MCIN/PCIN for its own manifest amendment (SAA) — but a deletion is now the jurisdictional customs officer's, and a fresh CSN on that bill is not the route. (Until 19 September 2026 this said finding the manifest meant your amendment window had closed; that was an inference the advisory has replaced.) What may still close it is another party's CSN on the bill — customs' error list has 320 for that, not yet seen on a reply. See Two companies, one master bill of lading for the detail.

It shows in the New SAM/IGM enquiry but not the old one — is something wrong?

No. They read two different databases, and that is the whole explanation.

The older Sea Arrival Manifest enquiry reads the carrier's Import General Manifest, which is raised at the Indian port around the vessel's call. The New SAM/IGM enquiry reads the SCMTR filings themselves, which customs accepts days or weeks earlier. Between those two moments a shipment is legitimately on one and not the other, and the new enquiry answering first is the point of it.

Where this bites is downstream: a Bill of Entry is checked against the IGM, so a broker can be refused with "THIS IS NOT A VALID IGM" on a shipment both you and the carrier have filed for and can see on ICEGATE. That is the same fact, not a second problem — see When the Bill of Entry cannot find the manifest for how to tell which side is waiting on what.

When the rest of the vessel's bills show on the older enquiry and one does not, the IGM exists and the timing explanation does not fit. The usual reason is that every house bill under that master is transhipment (TC, onward to a foreign port): transhipment is never mapped onto an IGM line, so the older enquiry has nothing to list and answers "No details found" for a bill the SAM holds. BL tracking here says so on the bill's house bills. See Every other bill on the vessel shows, and one does not.

When will it arrive?

Put the master bill of lading number into BL tracking and press Find the arrival — the port is optional for this — or open the CSN on this platform: the Arrival card shows the day the ship is due at the Indian port, how many days away that is, and the route (departure, transhipments, arrival in India, final delivery inland).

    For SITC, HMM, ONE, MSC, COSCO, Evergreen, Yang Ming, KMTC, Sinokor and Cordelia, the date comes from the shipping line's own tracking, read for you: the ship and voyage carrying the cargo into India, whether the date is an estimate or has happened, and when it was last checked. A line's answer is kept for a few hours and shared; Check again asks the line afresh, at most once every ten minutes.For other lines — Maersk, Hapag-Lloyd, Wan Hai, Interasia, OOCL and more — their sites do not let the platform read them automatically. The card opens the line's tracking (with your bill already searched where the line allows it, or copied ready to paste), and you can add the ETA you see. Your team sees it on the bill, marked as entered by you — never as the line's word.Customs' day for the call is shown beside the line's date whenever customs has the call on record. It is the day the line's agent declared when registering the call, and in the hundreds of calls watched so far customs has not moved it for a ship running late, so the line's own date is the one to plan on when they differ.

The countdown. The card counts down to the day it leads with — "in 5 days", "tomorrow", "due today", "arrived yesterday" — in India's days, whatever time zone your computer is in. When the line gives a time and the ship is under three days away, it counts hours and minutes ("1 day 22 h"); a day given without a time is never counted in hours. The same countdown sits beside the job's name at the top of the CSN page and in the Arrival column of your CSN list (beside the status on a phone) — for imports, and not once an arrival is more than a week old or an estimate more than two weeks past. The list and the top of the page use what is already on record — the line's last answer, your team's entry or customs' day — and never ask a line themselves.

The lines are checked for you every few hours. For each import made in the last 60 days and since uploaded, accepted or recorded as filed elsewhere, SCMTR asks the shipping line about its first master bill about every six hours — only where the bill's own letters name a line whose tracking can be read (or that line already answered for the bill), and not once the ship has arrived. Drafts are not checked until you open them. When the same line moves its date, the person who made the filing gets a The line moved the arrival alert (e-mail and phone by default; change it under Settings → Alerts).

Why did I get an alert that the shipping line moved the arrival? Because the line's own tracking now gives another day for the master bill than when it was last checked — a delay, a roll to another sailing, or a faster transhipment. It is the line's word, not customs': customs' own day for the call has its own e-mail (see When the ship changes). Nothing needs amending for the move alone — a CSN carries no arrival date — but if it moved a week or more, open the CSN: the arrival card says whether the filing's VCN still fits the cargo's new day.

Does the VCN fit the cargo's arrival? On a CSN, or a file checked under Check an ICEGATE file once you have pressed Check the VCN with ICEGATE, the card also holds the file's VCN against the cargo's own day — the line's, or your team's entry, never customs' own day for the call:

    Fits (green): customs' day for the VCN's call is within three days of the cargo's.Looks like another voyage (amber): the VCN's call is a week or more from the cargo's day, and customs lists another call of the same ship at the same port within three days of it — the card names that call.Two weeks or more apart (amber): a ship runs a few days off customs' day, not a fortnight, so the VCN is likely another voyage's; the nearest call within a week is named, or the card says customs has not listed one near that day yet.A few days apart (neutral): customs declares its day once and rarely moves it, so with no other call near the cargo's day this reads as a late or early ship, not a wrong VCN; where customs lists another call of the ship nearer that day, the card names it and asks you to confirm which.On another ship (amber): the line names another IMO on the leg into India than the file's — or, said as a possibility, another ship's name — and if the cargo was moved or transhipped onto a feeder, the CSN must name the ship that arrives, with its VCN.The call that fits (neutral): the file's VCN is not a call customs lists at your port, and one it does list is within three days of the cargo's day — the card names it; confirm with the line.

None of these is red. Customs has not been seen to refuse a CSN over its VCN — no reply held names a CSN's voyage details, and a filer reported a CSN on last voyage's VCN being accepted — so a wrong call is a risk to the match with the line's manifest, not a refusal. Confirm with the line or its agent.

Which line is asked. The letters a bill starts with name its line (MEDU is MSC, HDMU is HMM). A bill of digits only is tried at the line whose numbers look like it, and its answer is used only if that ship is discharging in India — and, when you gave a port, at that port — with a note asking you to check it is your shipment. If the card cannot tell, it asks Which shipping line issued this bill?: choose the line printed at the top of the master bill and press Check this line.

Telling someone. Send on WhatsApp (or Copy update) writes a short message with the date, the ship and a link; in WhatsApp the link shows a preview card naming the bill. The card carries the arrival date only when it is certain: the bill's own letters name the line, that line's answer is already on record here and fresh (an estimate is kept three hours, an actual arrival three days), and it is for the port the link names — matched by the port's own code or name, so a link to an inland depot, or to a neighbouring port, gets no date: the line's date is the ship's, at the port the line names. It is then a date, never "in 3 days", with the line's name and the day its tracking was read, because WhatsApp keeps the picture; opening the link asks afresh. A bill whose line is only a guess from its number shows no date on the card, and customs' status is never on it — that is asked of ICEGATE when the page opens. Share beside the bill gives the same link and a QR code.

A consolidator's or NVOCC's own master bill is not in any shipping line's tracker under its number. Search it with its port instead: customs' record for the call names the ship and the day. A house bill is never tracked by a line — use the master bill it sits under — and a container number is not a bill: BL tracking says so if one is typed in.

Following the container itself

Only the shipping line knows where the box is, so this is always a trip to their system. On a CSN page, Where this shipment is → The carrier's own tracking names the line, says how it knows, and lists your master bill and every container, each one click from the line's own tracking:

    Open — the line's tracking opens in a new tab already searched for that number (MSC, ONE, COSCO, Maersk, Hapag-Lloyd, Sinokor, Cordelia, Unifeeder, Emirates and PIL for a bill; MSC, ONE, COSCO, Maersk, Hapag-Lloyd and Unifeeder for a container).Copy & open — the line's site cannot take a number in a link (HMM, Evergreen, Wan Hai and others), so the number is put on your clipboard as the page opens: paste it into their search box.Not this line? — pick the right one from the list. The choice is remembered for that bill in your browser, and Let SCMTR work it out undoes it.

If nothing in the numbers names the line, the card asks Which shipping line carries it? instead of guessing. Only for a line that is not on the list does it offer a general tracking site.

When the master bill is a consolidator's or NVOCC's own number, track the containers. No line's tracker knows that bill, but the boxes are on the line's booking, so the card leaves the bill out and lists the containers, saying why.

How the line is identified

Strongest evidence first, and the card always says which it used:

    The line you picked for this bill.The bill's own letters — MEDU is MSC's, ONEY ONE's. A bill that is only digits is read by its shape (twelve digits looks like Evergreen's), which is a guess, and said to be one.The containers' owner codes — the first four letters of a box name its owner, and a line's own boxes (MRSU Maersk, WHSU Wan Hai, CAAU CMA CGM) are on that line's booking. A leased box (CAIU, TEMU, TCNU …) names the leasing company, never the line, so it says nothing. Only when the bill names no line does each container go to its own owner's line, a leased one with the rest; when the bill (or you) names the line, every container is tracked there, since the boxes are on that line's booking whoever owns them.Customs' record of who runs the vessel call — its MLO code, the line's customs identity. That is the ship's operator: on a shared ship your boxes may travel on another line's booking, so the card says "the ship's operator" rather than "your line".

The same ship can report different operators on different voyages — the code is recorded per call, not per hull.

Why can't I see the acknowledgement for a filing I made on the ICEGATE portal?

Because the portal and the filing API are separate channels, and they do not share history.

If a declaration was submitted directly on the ICEGATE portal — rather than filed from here — its acknowledgement can only be read on the portal. Asking the API for it returns "The provided Unique ID is not allowed for API Filing", which is a permanent property of how that filing was lodged, not a stage it will grow out of. Waiting longer changes nothing.

This is not an error and it does not affect the filing. Customs has it, it is valid, and the reference the portal gave you is still how you find it there.

What you will see here is the filing marked Filed — check on ICEGATE, with that reference shown beside it, instead of sitting on "awaiting acknowledgement" indefinitely. Look the filing up on the portal, then use Record outcome to enter what customs actually said. A recorded outcome behaves exactly like a real acknowledgement afterwards — it can only move the filing the way a genuine one would have, so the record can never be walked backwards into saying something untrue.

Filings submitted from here as a fresh filing are resolved without any of that: since 22 September 2026 the platform reads customs' own record for every waiting filing about every fifteen minutes, and when it names the transmission and agrees with what was sent, the CSN number and date land on the declaration on their own. A rejection never appears on that record, so a refusal still reaches you only in the acknowledgement ICEGATE emails — keep that file and drop it on the filing either way; it is customs' own answer, and the only one that carries a rejection's reasons.

What no integration can give you

Carriers' own tracking APIs return container and vessel events — milestones, ports, estimated arrivals. That is roughly the same ground the customs enquiry already covers.

What they do not return, and cannot, is your house-level detail. On a consolidated shipment the carrier's master bill names the consolidator as shipper and the destination agent as consignee; the individual shippers and consignees underneath are on your own house bills and have never been visible to the line. So no carrier system can hand back your consignor, consignee, HS code or goods description however well anyone authenticates to it.

That is why the app's answer to "stop making me retype this" is your own documents and your own history — pasting the bill of lading, and the address book learning your parties — rather than an integration that could not carry them.

    The deadline that a found manifest signals: Two companies, one master bill of ladingWhen a Bill of Entry cannot find the IGM: "This is not a valid IGM"Which identifier is which: Every reference number, who issues it, and whenUsing the tracking surfaces in the app: Using SCMTR

Still stuck on this?

The assistant answers from this exact page and the rest of our reference material, and names the documents behind every answer.

Have the file? Check it free — no sign-in

General information only — not legal or customs-compliance advice, and it may not reflect the most current ICEGATE/CBIC requirements. Verify against the official sources, or a licensed customs broker, before filing.