Transhippers, CFSs and bond numbers
Transhippers, CFSs and bond numbers
When cargo does not clear at the port it arrives at — it moves inland to an ICD, or into a container freight station for de-stuffing — the CSN has to say who moves it and under which bond. Two small fields, and between them they cause a surprising share of rejections, because neither value is on any document in the filer's hand.
This page covers who counts as the transhipper, where the numbers come from, why the same company has a different bond at every port, and the other bond number filers meet: the one on ICEGATE's tracking page, which is not a transhipment bond at all. (A checklist drafted from e-mailed bills asks you which CFS the boxes go to and fills the transhipper and its bond from that answer — Bills by e-mail.)
Do I need this block at all?
The MIG has an answer, in the same table that validates the cargo codes: it lists the
transhipper block as required on every consignment being reported for the first time that moves
onward under bond — cargo movement TI for any cargo type, and TC or FT for export and
transhipment cargo — and lists it for no LC or DT movement, and for none where the
prior-declaration flag is Y, because the earlier filing already named the transhipper.
That is where the block is expected. It is not a rule customs enforces in both directions:
trnshpr is optional as a block for SCE in the MIG's own field table, accepted filings on
record carry it on LC consignments the table does not ask for it on, and nothing has been
refused for leaving it out — customs' record holds a forwarder's IM + TI house bill to an ICD,
accepted at Nhava Sheva in September 2026, with no transhipper on it at all. So take it as the
answer to "does this movement normally carry a transhipper", fill it in when the movement really is
bonded, and do not read a blank block as a fault. See
Cargo type, movement and the combination customs checks.
Cargo going into an SEZ is the exception to all of this. It moves onward as TI, and it
still carries no transhipper, as the next section explains.
Is a TG bond mandatory for a CSN filing?
It depends on where the cargo goes after the gateway port. The TG bond (customs also calls it the TP bond, the transhipment bond) is the second half of the transhipper block. A CSN never needs it alone: the bond and the transhipper's PAN are filled in together, or both are left blank.
| Where the cargo goes | TG bond on the CSN? | What goes in the transhipper block |
|---|---|---|
An ICD (TI) — Patparganj INPPG6, Sabarmati INSBI6 and the like | Yes | The PAN of the operator moving the box from the gateway, and that operator's bond at the gateway port |
| A CFS at Chennai or Kolkata | Yes, by local practice | The CFS operator's own PAN and bond |
| A CFS at Nhava Sheva, Mundra or Kattupalli | No | Both halves blank |
An SEZ or FTWZ (TI) | No | Both halves blank |
| Picked up at the port itself (DPD) | No | Both halves blank |
For an ICD, treat it as required. The MIG lists the transhipper block for every consignment
reported for the first time that moves on under bond as TI, and every accepted filing to an ICD
on record fills both halves. How firm that is: we have not seen customs refuse a filing for leaving
the whole block blank, so "required" here is the MIG's expectation and universal practice, not a
refusal on record. The published codes say what getting half of it wrong costs (published in ICEGATE's list; none of the three has yet come back on a reply kept here):
- A PAN with no bond:
95, Bond Number is Blank.A wrong bond, or the operator's bond for a different port: 147.A CFS code typed where the PAN goes: 36.On a consolidation the block goes on each house bill, not the master (see below). For the whole shape of an LCL house bill going to an ICD, see LCL cargo for an ICD.
My cargo is going to an SEZ. Which transhipper PAN and bond do I use?
None. Leave the transhipper block blank: no transhipper code (PAN), and no bond. This
applies at every gateway port, and to every SEZ or FTWZ. Say the destination port is INBRS6,
the Aspen Park Infra SEZ at Waghodia near Vadodara: the house bill is IM + TI, with INBRS6
as its destination and next port of unlading. Its onward leg goes to INBRS6, usually by road
(mode 3), and the transhipper block stays empty. It stays empty whether that leg is by road or rail.
Which transhipper block that is. If your master B/L has house bills, the transhipper is on each house bill, so that is the block to leave blank on every house bill going to the SEZ. In the guided steps it is step 2, "Your house bill", under "Where it is cleared". In the full form it is Master consignments → Master consignment 1 → House consignments → House bill N → Transhipper. The master consignment's own Transhipper block is empty on a consolidation anyway (see the next section). Only a master filed on its own, with no house bills, carries the transhipper on the master: Master consignments → Master consignment 1 → Transhipper, or step 2, "What is on the bill", in the guided steps.
It is easy to expect otherwise, because an SEZ move looks exactly like an ICD move on the form.
Both are cargo movement TI, and both leave the gateway port for another Indian station. But an
ICD move by rail is filed with the train operator's PAN and that operator's bond at your
gateway, and an SEZ move is filed with neither. The MIG's trade-scenarios table does not tell
the two apart, which is why a checklist driven by that table alone would ask you for a PAN and
bond that do not exist.
What this rests on:
- Five CSNs that customs accepted. Twelve house bills from Chennai, all
IM + TI with a
road leg, go into three SEZs: NDR Infra SEZ at Nandiambakkam (INNPK6, job 2975), the
J. Matadee FTWZ at Mannur (INCJJ6, job 30151, five house bills) and the Cochin SEZ
(INCOK6, jobs 3025, 3101 and 3149). None of them names a transhipper, and customs accepted
every one. On one of the Mannur house bills the software filled both halves with 00, and
customs accepted that too, so the field is not being checked against a party there. Every
accepted TI filing going to an ICD names the rail or road operator's PAN and bond.A working filer's scenario sheet (2026-08-30, corrected 2026-09-03) gives SEZ its own row
for every gateway port: TI, road, and the transhipper block not filled. On the same sheet,
a move to an ICD is filled with the operator's bond and PAN. The filer adds that they have
never filed an SEZ move themselves.The shipping line's own CSN at Visakhapatnam does exactly that, though customs never held
that filing, so it shows practice and not acceptance. Its two IM + TI
consignments into the Visakhapatnam SEZ (INVTZ6) carry an empty transhipper block. The
two TI consignments on the same filing going by rail to ICD Jajpur (INJJK6) carry the
operator's PAN and bond, and every consignment clearing into a Vizag CFS carries that CFS's pair.
A house bill on the same filing going to the Divi's Laboratories SEZ (INCTY6) carries no
transhipper block at all.A steamer agent's arrival manifest at Nhava Sheva shows the same thing at a second port,
from a second filer. Its five IM + TI consignments into the JNPT SEZ (INPJN6) name no
transhipper, and each one has a complete itinerary. On the same manifest, 34 of the 38 TI
consignments going to ICDs name the rail operator. The other four, to ICD Ludhiana, carry no
itinerary either, so they are incomplete records rather than a counter-example. The JNPT SEZ
leg is filed as rail (mode 2), not road. So the blank block comes from the SEZ
destination, not from how the box gets there. This is a manifest (SACHM23), not a CSN, so it
shows what filers do and nothing about what customs accepts.No acknowledgement on record refuses a filing for a blank transhipper block, SEZ or
otherwise. A PAN or bond that customs does not hold for your port does get refused, with
36 or 147 (see Which rejections point at these fields?).
Leaving it blank is not a gamble, and guessing a pair is.How sure we are: customs accepted a blank transhipper block into three different SEZs, on five filings, so a blank block is proven to go through. What we do not hold is an SEZ filing from a gateway other than Chennai that customs accepted, or any customs text that says "leave it blank" in those words. If your SEZ's customs officer or your CFS tells you otherwise for your movement, follow them.
Two things this does not settle:
- SEZ cargo routed through a CFS first. CBIC's SCMTR clarifications (Q29) accept a three-leg
itinerary for that case: origin → gateway, gateway → CFS, CFS → SEZ. We have no filing of that
shape, so we cannot say whether the CFS appears as the transhipper there. Ask the CFS.Which code is an SEZ. The code's last digit,
6, only tells you it is an inland station;
an ICD has the same digit. The port picker shows the name, and an SEZ says so in it.The form follows this. When the destination is an SEZ, the checklist does not ask for the transhipper, and the Transhipper field says to leave it blank. If you fill it in anyway, nothing stops you.
On a consolidation, does the transhipper go on the master or the house bill?
On the house bill. Every accepted filing on record that carries house bills carries
trnshpr on each house and leaves the master's own block empty — a master under house bills
carries four things and nothing else: its reference, its packages and measures, its container
list, and the house bills themselves. The guided steps do the same thing: answer "yes, I have a
house bill" and the transhipper moves down onto it along with the parties, the goods and the
ports, because those are facts about the bill rather than about the wrapper over it.
The master's Transhipper block still exists, and it is still yours to fill if your case needs it — the field table marks it optional there. But an empty one on a consolidation is the normal shape, not missing data.
This matters most when you open an accepted filing to amend it. The master's block comes up blank because it was blank in the filing customs accepted, and it is easy to read that as something the amendment lost — then type the transhipper in on the master, where the accepted filing never had one. That does not correct anything: the house bills still name whoever they named, the amendment asks customs to add a transhipper block the CSN never carried, and the filing now says two different things about who moves the cargo. The form says so where you are standing — the master's block names what the house bills carry, with a link to each — and the checklist raises it if the two disagree. If the transhipper has changed, change it on every house bill that names the old one.
That is a real trap rather than a hypothetical: a CFS re-registering under a new entity issues a new PAN and new bonds and the old ones go inactive, with nothing in ICEGATE to say so, so "correct the transhipper on this filing" is an amendment filers do make. See How current are these numbers? below.
Who is the transhipper?
The party responsible for moving the cargo onward from the port of arrival under customs bond. In practice that is one of two kinds of company:
- A rail operator running the inland container train — CONCOR, CWC, Hind Terminals, Adani,
Boxtrans and the like.A CFS or ICD taking the cargo into its own bonded facility.
Both file the same way, and the CSN does not distinguish them. If your cargo clears at the port of arrival and moves nowhere under bond, the transhipper block does not apply to you at all — except, by local practice, at Chennai and Kolkata. Every accepted filing on record that delivers to a CFS under Chennai (24) or Kolkata (5) names the CFS operator's own PAN and bond as the transhipper, cargo cleared at the port included; none at Nhava Sheva, Mundra or Kattupalli does, and none does for delivery to the bare port. So at those two ports the guided steps offer the destination CFS's PAN and bond as the transhipper, marked as a suggestion; elsewhere they leave the block alone.
What exactly are the two fields?
| On screen | In the message | What it holds |
|---|---|---|
| Transhipper code | trnshpr.trnshprCd | The transhipper's PAN, written bare — no PAN: prefix |
| Transhipper bond | trnshpr.trnshprBond | That transhipper's transhipment bond number at this port |
There is no field called "transhipper PAN", which is why searching the field list for one comes up empty. The code is the PAN.
Bond numbers are ten digits. If yours is shorter, look again — a dropped digit is the single most common transcription error in this pair.
Why does the same operator have a different bond at each port?
Because the bond is registered per customs station, not per company. This is how customs describes its own process: JNCH Public Notice 76/2018 says a continuous bond and bank guarantee "by the carrier/custodian needs to be submitted and registered in ICES as Transhipment (TP) Bond at JNCH", and calls the party providing it the transhipper. The bond is an arrangement between one company and one custom house, so a company working five ports holds five of them.
CONCOR is AAACC1205A everywhere in India. But it files under a different transhipment bond at
Nhava Sheva than at Mundra, and a different one again at Chennai. So:
- The PAN identifies the company. It does not change.The bond depends on the pair — company and port. It changes constantly.
This is the trap. A filer who copies both fields from a previous filing at a different port gets a PAN that is perfectly correct and a bond that belongs somewhere else, and the filing looks completely filled in. Copy the pair from a filing at this port, or take the bond from your own paperwork.
The platform fills both from one choice for the ports it holds lists for, scoped to the port you are filing at, precisely so the pair cannot be mismatched by hand.
Where the list has a CFS's bond but not its PAN, the row says PAN not on file, and picking it
fills the bond and leaves the transhipper code empty for you to type the PAN. It never puts the
CFS's own code (INMAA1BNL1 and the like) in its place: that is a destination code, and on every
accepted filing we hold the transhipper code is a PAN or nothing. A CFS we know only as a
destination — no PAN and no bond on record, like the Nhava Sheva and Mundra CFS codes — is not
offered as a transhipper at all.
What is the BOND NO on the ICEGATE tracking page? It is not the transhipment bond
It is the container agent's container bond — customs calls it the CG bond — and it belongs to
the box, not to your cargo. Look a master bill of lading up in ICEGATE's New SAM/IGM enquiry
and open the container details, and every container row ends with two columns side by side:
Agent Code and BOND NO. The agent code is the PAN of the container agent, usually the
shipping line or its Indian agency (AACCO5653N, for example, is Ocean Network Express). The
bond number beside it is that company's container bond. It is not a random number, and it has
nothing to do with how your cargo moves inland.
The bond exists because a container arriving in India is itself a foreign good, and would owe duty like any other import unless someone guarantees it will leave again. The line or its agent signs one bond with customs covering all its boxes, and the carrier's manifests keep a running account against it:
- Each container that arrives is debited to it. The carrier's SAM carries a
Container Bond Debit Flag on every container —
D debit, C credit, H hold, N not
applicable — and ICEGATE's manifest guide defines the container agent code as "the code
registered for Debit/Credit of Container Bond for this Container". Empty containers are
debited as well as full ones. Anything that is not a container, such as break-bulk cargo, is
flagged N.It is credited back when the container is re-exported. In CBIC's SCMTR clarifications:
"As and when the containers are re-exported, it will get credited". A container still in India
after 180 days needs an extension, which the port where the bond is registered grants, and the
line follows its debits and credits in a bond ledger in its own ICEGATE login.One bond per company, for all of India. Asked by an agency that had been giving a separate
bond for each line and each port, CBIC answered "one entity, one bond for pan India ops", and
that one CG bond "would suffice for all the container operations of the entity". That is the
opposite of a transhipment bond, which changes at every port.So on the tracking page the same agent code shows the same bond number whatever the bill. On ICEGATE's record in September 2026, Evergreen's agent code carried one bond number on two unrelated bills at Nhava Sheva, and no container bond we looked at matched the transhipment bond on the same filing. That the number is the same at every port rests on CBIC's statement; we have seen each company at one port, not compared ports.
What it means for you:
- There is nothing to file. No field on a CSN takes this number, and a CSN has no bond flag;
the debit and credit happen from the carrier's manifest. It is not the transhipper bond, not a
CFS or custodian bond, and not the Shipping Line Bond No. a manifest carries only when the
vessel sails between two Indian ports through Sri Lankan or Bangladeshi waters (movement
RI).It explains one rejection — since ICES Advisory 38/2026, customs says, on the line's manifest
rather than your CSN. 82 — Container
Bond Not Found For the Agent — means the PAN in a container's agent code has no container bond
registered with customs. Since ICES Advisory 38/2026 (21 September 2026) customs says the container
agent PAN is "validated solely at the SAM (Vessel Operator/Line) level" — so the line's manifest
would draw the refusal and a CSN no longer be checked for it; whether 82 is that check is our
reading, the advisory names no codes. 82 is still in the CSN message guide's
error table — a code list, which says nothing about where a code fires — and no refusal on record
here carries it. Still give the agent who actually holds the bond for that box, because that is
what the line's filing is checked against: see
the container agent code is not the shipping line's PAN.A blank BOND NO is not a fault in your filing. We have seen the column empty for every
container of one agent on a filing customs had accepted. We do not know why, and it did not
stop the filing from being accepted.Shipper-owned containers are debited to their owner. CBIC's clarifications have the SOC or
tank operator's PAN declared at container level for the debit and credit, and where an
importer pays duty on the container itself, customs officers can re-credit the bond.Where do I find my CFS code?
A CFS is identified by a ten-character code: the six-character customs port, then a four-character suffix for the facility inside it. The length is ICEGATE's own — its ICES 1.5 custodian message specification says that where "the cargo is discharged through CFSs, 10-character CFS Code shall be given".
INMAA1SHC1
└─┬──┘└─┬─┘
│ └── the facility: Sattva Hi-Tech and Conware
└──────── the customs station: INMAA1, ChennaiYou will meet this code in two places on a filing — as the destination port when the cargo is destined for that facility rather than the port generally, and as the transhipper when the CFS is the one moving it.
The destination port field accepts either form: a plain six-character port when the cargo is destined for the port, or the ten-character code when it is destined for a named facility inside it. Both are correct; they answer different questions.
You can search that field by CFS name rather than code — the facilities at the port you are filing at are offered first, and the rest are reachable by searching, since transhipment cargo is destined somewhere else by definition.
One correction to the folklore that there is no published source at all: customs
commissionerates do publish CFS codes in per-port facility circulars as facilities are
approved — Chennai Customs' Facility Circular 20/2018, for instance, assigns INKAT1AWC1
(Apollo World Connect) and INKAT1LNT1 (L&T Ship Building) under Kattupalli Port. There is
still no central directory, so the circulars have to be found port by port on each
commissionerate's site.
The bond depends on where the cargo landed, not only on the CFS
A Chennai CFS holds one bond for cargo landed at Chennai and moved to it, and a different bond for cargo landed at Kattupalli or Ennore and moved to it — five CFSs, fourteen accepted filings, no exceptions (Allcargo, Calyx, Balmer Lawrie, Triway and Kailash). The bond follows the customs station the CSN is reported at, which is the station the box came off the ship at.
So the picker looks the bond up for your filing's port of reporting, not for the code alone: file at Kattupalli with a Chennai CFS as the destination and the list opens with that CFS under The CFS the cargo is going to, carrying its Kattupalli bond where we hold one and saying no bond on file for cargo landed at INKAT1 where we do not. Never take a CFS's Chennai bond onto a filing reported at Kattupalli because it is the only one you know.
The bond can change under you, and customs will not say so
Three measured cases from September 2026, all on filings customs accepted:
- A CFS re-registers. Allcargo's Chennai terminals moved to a new company PAN and new bonds
from 1 September. A filing on the 9th still carrying the old PAN was accepted — and had to be
amended afterwards; customs' record now shows the new PAN on that bill. The old number was not
refused, it was silently wrong.A bond is replaced. Triway's bond for cargo landed at Ennore was one number on 25 August and
another from 7 September.An operator holds two live bonds at one port. GRFL filed two different Mundra bonds on the
same day, both accepted, one of them the bond it also files from Pipavav.
So the bond is decided by the operator and the port the box landed at, at the time you file — which is why the picker fills for confirmation and never silently, why a disagreement with our list only ever advises, and why the operator's or CFS's own arrival notice beats any list, ours included. If a bond you know has changed, tell us through Feedback with the circular.
What if my CFS has more than one bond?
Some operators run facilities at several customs stations under one code, with a different
bond registered at each. Smart SICAL's INMAA1SMR1 is the clearest case: one code, and separate
bonds for its Chennai, Kattupalli and Ennore facilities.
Where that happens the code alone cannot tell you the bond, and the platform will not guess — it says how many bonds are on file and asks you to enter the one for your station. A bond from the wrong station is the failure that looks correctly filled in.
Can I look a transhipper's bond up on ICEGATE?
Yes, if you have an ICEGATE login. Signed in as a sea agent, ICEGATE's Bond Number Enquiry takes a transhipper's (or a CFS's) PAN and answers with the transhipment (TG) bond customs' register holds for it: the bond number, the customs location it is registered at, and its expiry date. The Bond Ledger Enquiry beside it shows a bond's ledger. Neither is on the public enquiry page — you have to be signed in.
What that register told us, read for 59 transhipper and CFS PANs on 25 September 2026:
- 39 PANs have a bond on it, 20 had none ("No details found"), including operators whose bonds
appear on accepted filings every week. An empty answer is not proof that a bond is invalid.It lists one current bond per PAN, usually registered at one location — often not the port you
file at (a rail operator's bond registered at an inland depot, for example). It is not a per-port
table.Its numbers are mostly newer than the ones in circulation. Customs accepts both. Across every
accepted CSN we could read, the bond filed matched the operator's older, per-port bond 144 times and
the register's bond 28 times — the same operators, both accepted.
So the register is the best check you have that a bond exists and has not expired, and the right thing to read before a filing when a bond is in doubt — but a bond that differs from it is not, by that alone, a wrong bond. Use the one on the paperwork for this movement, and if the shipping line's filing names a different bond, align with theirs.
The app shows the register for you. Beside the bond field, once a transhipper's PAN and a bond are in, it says what customs' register lists for that PAN — the bond, where it is registered and until when — whenever the bond you typed is a different one. If the register shows the very bond you typed as expired, that line turns into a warning. Neither ever stops the filing. The register was read on 25 September 2026 and is refreshed from time to time; a bond renewed since then can be newer than what it shows, and your bond paper is still the last word.
What if my transhipper is not in the list?
Type the PAN and the bond straight in. The fields are ordinary text and nothing is rejected for being absent from the platform's list.
That list is a working reference, not customs' register. It covers the ports it covers, and where it has nothing for your port it says so rather than offering you another port's bonds.
What happens if I file a wrong or expired bond?
Two different things, and the second is the trap — this is a working filer's direct account:
- An invalid bond or PAN is rejected outright. The number fails against what customs
holds, the rejection names the field, you correct it and re-file.An expired bond that is still registered can be accepted. If the operator holds two
bonds — one expired, one active — and you file the expired one, the system may accept it,
because the number is still valid in its records. The filing then disagrees with what the
shipping line filed for the same movement, and an amendment is required to bring the
two filings back into line.
So a filing that went through is not proof the bond was the right one. Check the bond against the paperwork for this movement, and if the shipping line's filing names a different bond, align with theirs.
One more piece of CBIC context worth knowing: for movement to a CFS, CBIC's clarifications say the TG bond "will be given at the time of CIM-DP filed while exiting gateway port" — the custodian's own message, not yours. We once read that as a reason a CSN might leave the bond out on an own-CFS movement; the filer's corrected scenario sheet (2026-09-03) withdrew that: every CFS scenario that fills the transhipper block fills both fields — the CFS's PAN as the code and the CFS's bond as the bond. The rows that leave the block empty (Nhava Sheva's CFSs, the Mundra/Pipavav/Hazira/Marmagao group, SEZ moves) leave both halves empty. Fill the pair or neither.
Which PAN and which bond depends on who is doing the moving — the same filer's rule, in their words: "either the operator PAN/bond or the CFS PAN/bond may be provided, depending on the applicable scenario." An ICD movement by rail carries the train operator's PAN and that operator's bond at your gateway; a CFS movement carries the CFS's own PAN and its bond for the station the cargo entered at.
How current are these numbers?
Bonds get renewed and renumbered, and a stale bond costs you a rejection — or worse, an accepted filing that needs amending (see above). There is no notice and no published feed when a bond changes: in the filer's own words, this data is "collected from our customers over the period — generally this data comes from the Shipping lines". A changed number propagates by word of mouth through the trade, which is why the platform's list carries no expiry dates and is offered for confirmation rather than treated as authoritative. If a number you enter disagrees with the one on file, the platform says what it holds and leaves your value alone — if yours is newer, yours is right.
Some CFSs are also named here by their PAN: when a CFS moves its own cargo, filings name the CFS's PAN as transhipper, and where accepted filings show that pairing the list carries the PAN — Phonex in Kolkata, GDKL and MIV Logistics in Cochin, Supply Chain Logistics in Chennai, Visakha Container Terminal, and a Tuticorin CFS whose operator is not yet named — so picking the CFS fills both halves.
The list is also usage-based, not exhaustive: it covers the ports its source actually routed CFS cargo through. Nhava Sheva and Mundra came late: their CFS codes are on the list because customs accepted filings naming them, and their operators' names are not yet on record, so the list shows the code and says so. A CFS missing from it means no filing we have seen named it, not that it does not exist. The platform now also learns each CFS code from every filing customs accepts, so the list grows where filers actually work.
Customs does keep a register of the bonds themselves — see Can I look a transhipper's bond up on ICEGATE?.
Treat the suggestion as a memory aid and your own paperwork as the source of truth.
Does the transhipper code have to be filled in?
The MIG marks it mandatory within the transhipper block. In practice ICEGATE has accepted a filing that left the code blank while carrying a real transhipment bond number — every error code returned successful, and a PCIN was issued for the house bill in question.
That is one observed filing, not a rule, and it is not advice to leave the field blank. It is worth knowing only when you are hunting a rejection: the transhipper code is unlikely to be your cause.
I put the CFS code in the transhipper code — is that right?
No. The transhipper code is a PAN. When a CFS is the one moving the cargo, the field carries the
CFS operator's PAN, and the CFS's ten-character code (INMAA1ECC1, say) goes in the destination
port instead. Of 129 filings we have seen with a CFS code in the transhipper field, none was accepted.
The app warns when it sees one, and names the CFS's PAN where it knows it.
Which rejections point at these fields?
| Code | Message | Usually means |
|---|---|---|
36 | Invalid Transhipper Code | The PAN is malformed, is not registered as a transhipper, or a CFS or port code was put where the PAN goes |
147 | Invalid Transhipper Bond Number-TP/TG | Wrong bond, or the right bond for the wrong port |
95 | Bond Number is Blank | The block is present and the bond is missing |
100 | Invalid Shipping Line Bond Number | A different bond entirely — the line's, not the transhipper's |
Code 147 is the one worth checking against the port. If the PAN is right and the bond was
copied from an earlier filing, compare it against a filing made at this customs station.
Those four answer a CSN. The transhipper's own departure message (DP) is answered from a
different list, with alphanumeric codes, and its bond checks are these:
| Code | What ICEGATE says |
|---|---|
LCB05 | Invalid Bond details |
LCB06 | Invalid Bond number |
LCB07 | Invalid Bond Type |
LCB08 | Insufficient Bond Balance |
LCB09 | Internal Error - Bond amt cannot be calculated |
LCB08 is the one a transhipper meets in practice — the bond exists and is the right one, and
its balance will not cover the movement. Every code of that family is in Which error list does
my code come from?.
A note on where these numbers come from
There is no central directory of either — though CFS codes are not unpublished: customs commissionerates assign them in per-port facility circulars (Chennai Customs' circular 20/2018 assigns the Kattupalli codes, for instance), so a code can be verified one circular at a time. What ICEGATE itself provides for CFS codes is only the format: its location service returns 586 customs stations to the public and 590 to a signed-in user, every one of them the short six-character kind, and its code-lookup application has been answering errors for some time. Bonds are different: customs does keep a register, and a signed-in user can read a PAN's current TG bond, its location and its expiry from the Bond Number Enquiry (above). It is one bond per PAN rather than every bond in use, so customs still asks the filer to supply the number — the register is how to check it. The one bond ICEGATE does show publicly is the container bond on its tracking page, and that belongs to the container agent, so it can never stand in for a transhipment bond (see above).
Filers therefore keep their own lists, built from filings that were accepted.
That is worth saying plainly because it explains the shape of everything above: the platform can offer you a value and tell you where it came from, but the number that is finally correct is the one on the paperwork for the movement you are actually filing.
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.