Skip to content
Help

Filing a SAM or SDM when you have no software for it

Filing a SAM or SDM when you have no software for it

Last updated

Customs publishes the SACHM23 message and a door to upload it to. It publishes nothing that writes one: ICEGATE's own free data-entry utilities cover six other SCMTR messages and never the SAM or SDM. So the official path for a small agent has been to hand-write the JSON from the message guide, sign it, upload it, and read the errors one acknowledgement at a time.

Every other way into a manifest here starts with a file somebody else's software made — which is no help at all if nobody's software made one. Since 21 September 2026 you can start one from nothing. Open Shipping line filing and take the card Start one from scratch.

Who is this for?

The agent or carrier of a ship whose manifest no liner system produces: bulk, tanker, break-bulk, project cargo, a tramp call. One bill of lading, or a few. Cargo loose in the hold or in tanks, with no container numbers to quote.

A container ship is a different job, and mostly a different one for us. A container manifest's lines are the forwarders' own CSNs, already filed and already on the call. Building them by hand would be typing out other people's filings and inviting the very disagreements customs cross-checks for (164, 232, 233). So for a container call the wizard says so and points you at Add a line from a CSN in the editor, which takes everything the CSN states — the bill and its date, parties, goods, ports, packages, items, containers and route — and quotes its MCIN or PCIN, as the lines of an accepted container SAM do. Whatever the CSN leaves out is asked for in one form before the line is added.

What do I need before I start?

Five things. None of them is the manifest.

WhatWhere it comes from
The ship's IMO numberSeven digitsThe bill of lading, the agency nomination, or VCN search by name
The VCN, applied forYou do not apply for it — the terminal or port does, and customs derives the rotation number from itAsk the terminal whether the VCN is in. Until it exists, no manifest can be filed at all
Your SCMTR registrationASC if you operate the vessel, ASA if you are its agentYour ICEGATE registration. See Registering for SCMTR
The terminal operator code the port declared on the VCNPort code plus terminal, e.g. INNSA1NSI1The terminal. No list of these codes is published anywhere — not in the message guide, not on the VCN feed
The crew list, already on e-SanchitUpload it as document type 745000 and keep the Image Reference Number (IRN) it gives backe-Sanchit. Crew effects go in as 744000 and the ship's stores as 799000

The terminal operator code is worth a moment, because it is the one value here that customs checks and nobody publishes. A code that disagrees with the port's VCN is refused with error 13, Invalid Terminal Operator Code. Since there is nowhere to look it up, the app does not pretend otherwise: it asks for it plainly, and remembers the one customs accepted at that port — read from customs' reply, not from the upload, and a code a reply refused with 13 is forgotten rather than offered again — so the question is asked once per port rather than once per call. Record the reply on the send (drop the _ACK on it) and the next manifest at that port offers the right one.

The crew is one reference, not twenty-two people. ICES Advisory 30/2023 lets the crew list, the crew effects and the ship's stores each go to e-Sanchit as a PDF, and the manifest carries the IRN in place of the details. Every real manifest on record declares its crew that way, and so does this one — you are asked for the IRN, not for dates of birth. An arrival manifest asks for the crew list's reference alone; a departure manifest and an entry inward ask for all three, because every real one of each carries the crew effects and the stores too (as references, or listed by name), whatever the guide's field table says about the entry inward.

Your own filing identity — submitter type and code, representative, shipping line code (BLK for a bulk or tramp call), sea carrier code, bond — is filled in from Settings, where an Org Admin types it once on the Shipping line filing card; change it there and every later manifest follows. The ship's type, purpose of call and usual master are remembered against its IMO number, so the second call for the same hull asks almost nothing.

What order do the four filings go in?

One vessel call, four messages, in this order:

What it saysOld name
SAM Arrival manifestEverything the ship is bringing into this portthe import IGM
SEI Entry inwardThe application for entry inwards, carrying what the terminal counted — people, boxes and contracts — and the crew list, crew effects and ship's stores as e-Sanchit references. The guide has it filed around arrival; the four real SEIs on record went in five days after their SAM, the day after arrival, and — from another line — six hours after a nil SAM and ten to twelve days after the arrival customs had listed—
SDM Departure manifestEverything the ship is taking out of this portthe export EGM
SDN Departure notificationThat the ship has sailed, and the final counts for the call—

And the CSNs come before the SAM. ICES Advisory 37/2026 (18 September 2026) has the cargo summary notifications filed first and the manifest referring to them; where a house bill was never covered by a CSN, the line adds it by amending the manifest (SAA) rather than waiting for a CSN that is not coming.

When is each one actually due?

This is the question a bulk filer asks first, and the published answer is kinder to you than to a container line.

    The arrival manifest. For containerised cargo it must be delivered before the vessel leaves its last port of call. For non-containerised cargo it may be filed at any point in time, before the vessel arrives at the Indian port — CBIC Circular 43/2020 §6.1, repeated word for word in ICEGATE's SCMTR FAQ 2.0 at Q20.The departure notification. After departure: within 24 hours for containerised cargo and 72 hours for other cargo, "which otherwise may attract late filing penalty" (Circular 43/2020 §7.1). The departure manifest itself may be updated within the same 24 and 72 hours after departure — Regulation 5(3), as amended by Notification 54/2019.The departure manifest is due before the vessel departs the port, and Circular 43/2020 says it "can be updated any time before SDN is filed without the approval of the officer".

These are the published rules, and they are not your customs station's word. Ports differ in what they will take late and what they ask for first; confirm the timings for your call with the customs station you are filing at. The amendment windows, what changes at entry inward and the ₹50,000 penalty are in SCMTR at your port.

What does it ask me, and what does it fill in?

It starts with the ship, because everything else follows from it. Give the IMO number and one lookup against customs' own record answers the VCN, the rotation number, the rotation date, the port and the expected arrival. Those are five values otherwise copied off an e-mail, and five chances to file against the wrong voyage. You pick which call at which port, and which of the four filings this is — named as a steamer agent names them, not by reporting event.

Then the steps, which are the questions in the order you can answer them: the ship, who is filing, where it came from, the cargo, who is on board, then check and file. An entry inward or a departure notification carries no cargo at all, so those two skip straight from who is filing to the call's own counts.

The route numbers itself. Stops are numbered backwards from this port, which is always 0 — that is what the message means by the sequence, and getting it wrong is what customs refuses as errors 101 and 102. You add the port before this one; you never type a number.

So does the job number. ICEGATE builds the file's name out of six parts and the job number is one of them, so a manifest without one cannot be named at all — and that is discovered at the very end, after the file has been signed. It is your organisation's own counter, so the wizard suggests one past the highest you have used for this sender id, the same way the amendment builder does. It is only a suggestion: your own system numbers its jobs too, and anything it has sent since is invisible here, so check it on the last step before you file.

The ten questions per bill of lading

On an arrival manifest (SAM), for a bulk, tanker or break-bulk line you are asked ten things, all of them off the bill:

the bill of lading number and its date, the shipper, the consignee, what the cargo is, its HS code, how many units, the gross weight, where it loaded, and whether it is dry bulk, liquid bulk or packaged/break-bulk.

A departure manifest (SDM) is not built from these questions. Its lines are export lines: the one real departure manifest on record declares every line as export cargo moving to a foreign port of discharge, accepted at this port, with each house bill quoting the PCIN customs gave its shipping bill — and the ten questions write an arrival line, which customs' own table of combinations calls impossible when stamped as an export. So on a departure manifest the wizard builds everything else and says so on the cargo step; you add the lines in the editor, with Add a line or Add a line from a CSN (which offers your accepted export CSNs and quotes the CSN — compare the result with what your own system files before relying on it).

A manifest line has about forty fields. The other thirty are conventions, and asking for them is why this job is done in spreadsheets and by bureaus. They are written for you:

What is writtenValueWhy it is not a guess
The "container" of break-bulk cargoequipment type BB, with the bill of lading number as the equipment idAll five lines of the two real bulk arrival manifests on record (a real break-bulk departure manifest numbers each coil instead); and customs' own SCMTR clarifications say a berth or tank number may stand in as an equipment id for bulk
Package typeBLK, at both document and item levelAll five
Weight unitMTS — metric tonnesAll five
Nature of cargoDB dry bulk / LB liquid bulkDB on all five; LB is its published counterpart
Consolidation and prior declarationS straight bill, N nothing declared beforeAll five
Dangerous goodsZZZZZ UN number, ZZZ IMDG class — the guide's "not applicable" valuesAll five
Marks and numbersNAAll five
Split indicatorN — the bill is filed wholeAll five
ItineraryOne leg: loaded abroad → this port, by seaAll five

Measured, not assumed. Those are the two real bulk arrival manifests in our sample corpus — five lines between them, filed by a real steamer agent — agreeing with each other on every one. A liquid bulk parcel also carries a gross volume, because the guide makes it mandatory for liquid bulk and only then.

Everything above is editable afterwards. The manifest opens in the editor when the wizard finishes, and every one of these values can be changed there. A value the app chose is shown with the reason it chose it and is never locked.

What can I get wrong here, and what can I not?

Three of the things customs refuses a manifest for are made unreachable by construction, because the file counts itself rather than asking you:

    Error 279 — Total Lines and Equipment Not Found in SAM/SDM — is customs comparing the declared totals against what the file actually holds. Both totals, every sequence number, and the vessel's whole container list are worked out from the cargo lines you entered. The vessel list is the boxes your lines name, listed once — measured that way across every real manifest on record that carries cargo, 812 of 812 boxes on a 238-line arrival manifest, 750 of 750 on a 559-line Kolkata one customs accepted, 397 of 397 on a 284-line departure manifest, and every one of the smaller ones. A box no line claims — an empty being repositioned — is legitimate and is kept. A box two bills share (two shipping bills stuffed in one container, or two consignments under one line each) is listed once with the two lines' packages and weights added up — the accepted Kolkata manifest does that on all nineteen of its shared boxes, and the departure manifest on its one. Its load status is the lines' own when they all agree, LCL otherwise (customs accepted a departure manifest with a shared box FCL on both lines and on the list); the rest of the row is taken from the first line that names it.Error 350 — CB Flag Should be N for Non Containerized Equipment. A break-bulk parcel cannot move under a container bond, so a non-container box gets bond flag N. A flag you set yourself is left alone: this fills, it does not correct.Errors 101 and 102 — the itinerary numbering, above.

What you can still get wrong is what only you know: the bill, the parties, the cargo, the weights, the terminal operator code. The last step lists what the app can see before you go on, and the editor checks it again.

The last step holds you to the same floor as the rest. You can jump between steps in any order from the row of step names, so it is possible to reach the end without having passed through the middle. "Check it and file it" is therefore gated on every step's required fields, not just the last one's — and where something is outstanding it names the fields and gives you a button straight to the step that asks for each.

Continue is blocked only for a question the message itself requires. The wizard holds you to the fields ICEGATE's own per-event message schema marks required, and says which they are rather than greying a button. Everything else the guide's field table marks mandatory is a warning, in amber — because no customs refusal of a SACHM23 for a field-table rule has ever been read here, and red is kept for what a refusal proves. What the checks mean sets out the two tiers.

Can I list the crew and passengers one by one instead?

Yes, in the Shipping line filing editor, on the Voyage tab under Persons on board. The e-Sanchit reference above is how every real manifest on record declares its people, and it is what the wizard asks for. But the manifest also allows each person as their own entry — one line names its master, chief officer and cook that way on every entry inward, beside the crew list's IRN — and since 25 September 2026 the editor has every field ICEGATE's own schemas define for one:

    The person: what the entry is (FM a crew member, FL a passenger, DEE a stowaway — the guide's own list), name, gender (1 male, 2 female, 0 not known, 9 not applicable), date and place of birth, nationality, a crew member's rank (in words and as the guide's code — MASTER, CHIEFOFF, COOK on the real filings; CAPTAIN, CHIEFENG, ABLESEAM and a hundred more), and a passenger's ports of embarkation and disembarkation.The identity document, with the guide's document types (passport, seaman's book, identity card…).The visa, with its number and the booking (PNR) reference. Both are needed once a visa is given.Crew effects, as before — or item by item, coded 099 (miscellaneous) with the thing in words and a quantity in PCS or KGS, which is how the same line lists a phone and charger or a pen drive. The guide publishes no list of units for crew effects or stores; customs refuses one it does not know (198, 203), so the field offers the units real filings use and takes what you type.

Documents and statements about the manifest as a whole have their own lists at the end of the Voyage tab (Supporting documents and Additional declarations for the manifest). On an amendment (SAA or SDA) the vessel section also takes the ship's registry details: vessel code, flag, port and date of registry, registry number, and gross and net tonnage. ICEGATE's schemas carry those on amendments only.

No manifest we have seen lists people one by one, so these fields are built to ICEGATE's schemas rather than proven against an accepted filing.

What does the wizard not do?

It creates the manifest. It does not check it, sign it or send it. Those three have lived in the Shipping line filing editor since 12 September 2026, behind the gate that stops the same file going to customs twice — and a second answer to "is this sendable" would be a worse answer. So the last step hands the finished manifest to the editor, where the Checks tab runs over it, you can ask ICEGATE about the bills it quotes, and you sign it with your own DSC and upload it. Nothing reaches customs until you sign.

And no manifest built here has been accepted by customs yet, because none has been sent. The checks on the review screen are this app's, over the file: they say the manifest does not contradict itself. Customs is the authority on whether a manifest is accepted, and we will say so on the screen where you are about to file rather than imply otherwise. The conventions above are drawn from real bulk filings a real agent made; that is the strongest evidence available short of our own acceptance, and it is not the same thing.

It also does not build amendments. A manifest customs has already accepted is corrected with an SAA or an SDA, built from the accepted file rather than re-answered — see How do I amend a shipping line filing?.

Where to go next

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.