Import a full container load by sea

Guide information

Audience: Operations, Documentation, Accounting
Time required: about 25 minutes for the first shipment
Outcome: An FCL import shipment from Confirmed to Empty Returned, with the Arrival Notice sent, the D/O recorded, and demurrage/detention tracked

Requirements

This tutorial requires the installation of the following applications/modules:

For an import shipment, Hai Long Logistics acts as the destination agent: it receives the nomination and pre-alert from the origin agent, tells the consignee the cargo has arrived, and exchanges the Delivery Order (D/O) that lets the container leave the port. Every day the Arrival Notice or the D/O is delayed eats into the container’s free time, and once free time runs out the carrier starts billing demurrage and detention by the day. If a term below is new to you, see the Freight forwarding glossary.

Running scenario: Hai Long Logistics receives an FCL import shipment for Minh Phat Engineering: 1 x Container 40FT HC CSNU8123450 of CNC machining equipment (HS 8457.10) from Port of Shanghai to Hai Phong Port, carrier COSCO SHIPPING LINES (Vietnam) Company Limited, vessel COSCO SHIPPING LEO voyage 015N, Incoterm FOB (Shanghai), and 7 days of free time counted from the actual arrival date (ATA).

Before you start

  • The origin agent, Shanghai Oriental Forwarding Co., Ltd., has already issued the HBL and sent the pre-alert with the MBL copy.

  • The carrier, the consignee and both ports exist as records - ask your freight Administrator to create the required carrier, agent and port or CFS records before starting.

  • You are in the User: All Shipments group. User: Own Shipments can only view a shipment, not click its buttons - ask your freight Administrator to grant this access before starting.

Step 1: Create and confirm the shipment

Owner: Operations creates the shipment and confirms its route, parties, and shipment type.

The direction and the route are set once, at creation, and they decide which buttons appear in the header and which group of import-only fields unlocks after you confirm. Correcting the route or the shipment type later means re-checking every field that depends on it.

Go to Freight Forwarding ‣ Operations ‣ Direction ‣ Import and click New. Fill in:

  • Customer: Minh Phat Engineering - the party Hai Long invoices; every charge line takes its customer from this field.

  • Consignee: Minh Phat Engineering.

  • Shipper: Shanghai Oriental Forwarding Co., Ltd..

  • Shipment Type: FCL.

  • POL: search for Port of Shanghai and select China - SHA (CN).

  • POD: search for Hai Phong Port and select Vietnam - HPH (VN).

  • Carrier: COSCO SHIPPING LINES (Vietnam) Company Limited.

  • Incoterm: [FOB] FREE ON BOARD.

Draft FCL import shipment for Minh Phat Engineering, shipper Shanghai Oriental Forwarding, POL China - SHA (CN), POD Vietnam - HPH (VN), COSCO carrier and FOB Incoterm; before cargo, containers, booking or charges.

Click Confirm.

After you click Confirm, the status bar moves to Confirmed, the Bill of Lading and Import Operations groups and the Notify Party field appear, and the Send Arrival Notice button appears in the header.

Tip

Step 1 is done when:

  • Customer and Consignee read Minh Phat Engineering and the route reads Port of Shanghai to Hai Phong Port (shown as China - SHA (CN) to Vietnam - HPH (VN)).

  • The status bar shows Confirmed.

  • The Send Arrival Notice button is visible in the header.

Step 2: Record the bill of lading, vessel and notify party

Owner: Documentation records the carrier’s bill of lading and vessel details from the pre-alert.

Enter the Bill of Lading numbers, the vessel and the Notify Party as soon as the pre-alert lands, so the Arrival Notice in Step 3 goes out with the right references to the right recipient.

Fill in:

  • HBL No.: SOFHBL2611-0456.

  • MBL No.: COSU115234890.

  • Notify Party: Minh Phat Engineering (same company as Consignee for this shipment).

  • Vessel Name: COSCO SHIPPING LEO.

  • Voyage No.: 015N.

In the shipment schedule, enter ETD/ETA: 10/11/2026 20:00 to 17/11/2026 08:00 (ICT, UTC+7). These are planned times from the pre-alert; record the actual times separately after departure and arrival are confirmed.

On the Cargo & Packages tab, add the container to the Containers list: Container Type Container 40FT HC, Container Number CSNU8123450, Seal Number CS1178342. The cargo line (CNC machining center, HS 8457.10, 9,500 kg, 28 m³) is declared the same way as on record cargo allocation, actual container numbers and seals on the Cargo & Packages tab.

Declaring cargo does not assign it to the container. Until loading items or packages are recorded, the container totals can show the container type’s empty weight and capacity. Use Load Cargo to Containers when recording the actual loading; check the assigned cargo weight and volume before using those totals.

Confirmed FCL import shipment: HBL SOFHBL2611-0456, MBL COSU115234890, vessel COSCO SHIPPING LEO voyage 015N and Notify Party Minh Phat Engineering; Import Operations D/O and Arrival Notice Sent fields still blank.

Note

There is no field to enter the number of free days. Viindoo can calculate the end of free time, but no form, list or wizard lets you enter the free days themselves, so Free Time End and Detention Start on the container stay blank. Write COSCO’s 7-day free time from ATA in the Chatter now and work out the last free day by hand. See Known limitations.

Tip

Step 2 is done when:

  • HBL No. reads SOFHBL2611-0456 and MBL No. reads COSU115234890.

  • Notify Party reads Minh Phat Engineering.

  • The Containers list shows CSNU8123450, Container 40FT HC, seal CS1178342.

  • The Chatter has a note recording the 7-day free time from COSCO.

Decide: Original HBL or Telex Release

There is no field for the release instruction on the shipment - record the decision in the Chatter, not on a form field.

Option

Use when

What changes

Original HBL

Payment is by L/C, or the shipper insists on a full set of originals

The consignee must bring the complete original set to Hai Long before the D/O is issued

Telex Release

Payment is by T/T and both sides trust each other

An electronic release confirmation from the origin agent is enough - no courier wait

If you are not sure, ask the origin agent or Shanghai Oriental Forwarding Co., Ltd. before promising the consignee a pickup date.

Step 3: Send the Arrival Notice

Owner: Documentation or Customer Service reviews the carrier’s notice and sends the message.

Send the notice promptly after receiving the carrier’s arrival details so the consignee can prepare its paperwork and collection. Confirm free-time dates separately against the carrier’s notice.

When COSCO’s Arrival Notice (on the MBL) reaches Hai Long, click Send Arrival Notice in the header.

  • Recipient: automatically Consignee - Minh Phat Engineering. Minh Phat Engineering is also set as Notify Party, so it appears once in the recipient list, not twice.

  • Review the message before sending. For this pre-arrival notice, replace the template’s has arrived wording with the expected arrival on 17/11/2026. Replace cargo pickup at the CFS with container pickup at the container terminal for this FCL shipment. Confirm the collection instructions with the carrier.

  • Add the confirmed Last Free Day: 24/11/2026, THC: VND 3,200,000 and CIC: USD 100, then click Send. These amounts come from the carrier’s notice and agreed customer prices; final charge entry follows in Step 5.

Standard Arrival Notice composer for Minh Phat Engineering, appearing once although also Notify Party, with HBL SOFHBL2611-0456, MBL COSU115234890, Shanghai to Hai Phong and Arrival Date from ETA; default text says the shipment has arrived and pickup is at CFS. Unedited preview before Discard and message correction.

Warning

The button only works once. Once the message is sent, Arrival Notice Sent is stamped and the button disappears. Log any later resend, made by email, in the Chatter.

Tip

Step 3 is done when: Arrival Notice Sent on the shipment shows a date/time, and the Chatter has a matching log entry.

Step 4: Move the container from Arrived to Empty Returned

Owner: Operations updates each milestone after receiving confirmation from the carrier, broker, or trucker.

The container’s import milestones track when it arrives, clears customs, leaves the port, and returns empty. They do not replace customs or carrier confirmation. In the Cargo & Packages tab, on the line for container CSNU8123450:

  1. When COSCO’s vessel berths and the actual arrival is confirmed (17/11/2026 14:00), click Arrived, then also enter that same date and time as the arrival (end) date of the shipment’s ATD/ATA field, in the Main Transport group.

  2. When COSCO’s Delivery Order reaches Hai Long, enter its D/O Number and the D/O Received date. Before releasing it to the consignee, verify the applicable payment or credit approval and, for Original HBL, receipt of the required original set (see Decide above). Recording these fields does not check payment or authorize release.

  3. Once the customs broker confirms clearance outside Viindoo (18/11/2026), click Customs Cleared.

  4. Once Phuong Nam Transport Co., Ltd. pulls the container out of the port (20/11/2026), click Gate Out.

  5. Once the cargo is unloaded at Minh Phat Engineering’s factory and the empty container is returned (22/11/2026), click Empty Returned on the container’s row in the Containers list. FCL direct delivery can go straight from Gated Out to Empty Returned. Use the inline row button: the container popup only offers that action after Unstuffed.

Arrived import container CSNU8123450: Free Time Start 2026-11-17, Free Time End and Detention Start empty because free days cannot be entered on the UI. Container CSNU8123450 row in green at Gated Out, with Import State visible and both legal inline Unstuffed and Empty Returned actions; no Unstuffed or return milestone has been recorded yet. Container CSNU8123450 at Empty Returned after direct delivery, with Import State shown and no remaining milestone buttons; Unstuffed was skipped.

Tip

Step 4 is done when:

  • The container’s status reads Empty Returned.

  • The shipment’s ATD/ATA shows the arrival 17/11/2026 14:00 and the container’s Free Time Start reads 17/11/2026.

  • D/O Number and D/O Received both have values.

  • Gate Out (20/11/2026) came before the last free day worked out by hand, 24/11/2026.

See also

Track every container milestone in more detail, including exceptions and rollovers: Track container milestones from empty pickup to return.

Step 5: Invoice the customer and check gross profit

Owner: Accounting checks the approved charges, prepares the customer invoice, and reviews the shipment’s gross profit.

Accounting checks the agreed sell prices and the carrier’s buy charges before billing Minh Phat Engineering. This example records charges directly on the shipment; no sales order is linked at this checkpoint. The ocean freight is billed in VND, converted from the agreed USD rate at 1 USD = 26,000 VND. Keep any on-behalf disbursement separate from these freight charges and confirm its billing route before recording it.

This shipment was created by hand and has no booking, so no charge line is created for you. In the Charges tab, add the three lines (how to add a line is in Charges and Profitability):

  • Ocean Freight - FCL: Currency VND, Qty 1, Unit Price 29,900,000 (USD 1,150 x 26,000), Cost Price 24,700,000 (USD 950 x 26,000).

  • THC at Hai Phong Port: Currency VND, Qty 1, Unit Price 3,200,000, Cost Price 2,800,000.

  • Container Imbalance Charge (CIC): Currency USD, Qty 1, Unit Price 100, Cost Price 80.

Read the totals, then click Create Customer Invoice. Viindoo groups the charges by customer and currency, so this example creates two Draft invoices: one in VND for ocean freight and THC, and one in USD for CIC. Review them before posting; creating them does not post them or record payment.

FCL import Charges after creating separate Draft VND and USD invoices: Ocean Freight VND29,900,000 sell/24,700,000 cost, THC VND3,200,000/2,800,000 and CIC USD100/80; Total Revenue35,700,000, Total Cost29,580,000 and Gross Profit6,120,000 VND. No SO or booking is linked.

Tip

Step 5 is done when: Total Revenue reads 35,700,000 VND, Total Cost reads 29,580,000 VND and Gross Profit reads 6,120,000 VND (Ocean Freight, THC and CIC at the buy and sell rates on file, converted at 1 USD = 26,000 VND) - not counting the customs duty and quarantine fee paid on the consignee’s behalf, which is a separate collection, not a charge line.

See also

Full charge and invoicing detail: Charges and Profitability. The customs duty and quarantine fee paid on Minh Phat Engineering’s behalf (78,000,000 VND): On-Behalf Payments.

Known limitations

Step

What Viindoo does today

What you do instead

Step 2 - free time

Container Free Time (Days) has no field on the shipment form, the container form, or the Booking wizard

Log the carrier’s free time (7 days from ATA) in the Chatter and work out the last free day by hand (here, 24/11/2026)

Step 4 - arrival date

Arrived (on the container) and ATD/ATA (on the shipment) are two separate, unsynced fields; only the shipment’s ATA feeds Free Time End / Detention Start

After clicking Arrived, also enter the same date/time in the shipment’s ATD/ATA field

Step 4 - D/O

Only one pair of fields (D/O Number, D/O Received) exists for the whole shipment - no way to record the carrier’s D/O separately from a forwarder-issued D/O to the consignee

Note in the Chatter which D/O (carrier or forwarder) each entry refers to

Step 4 - customs

No field for the customs declaration number, the clearance channel (Green/Yellow/Red) or the Port D/O - only a Customs Cleared milestone flag

Track the VNACCS/VCIS declaration in your customs system; use Customs Cleared purely as a done/not-done flag

Step 4 - DEM/DET

Detention Start is a single combined clock (Free Time End + 1 day); demurrage (at the port) and detention (after Gate Out) are not tracked separately, and no field computes the surcharge amount

Read Detention Start as the day surcharges start overall; if the carrier bills demurrage and detention separately, track the split and the amount by hand, then add a charge line

Troubleshooting

The Send Arrival Notice button is missing, or clicking it fails

Symptom: No Send Arrival Notice button in the header although the shipment is Confirmed, or clicking it raises one of these messages (status and shipment name filled in):

Arrival Notice is only applicable to import shipments.
Arrival Notice can only be sent while the shipment is Confirmed, In Transit, or Done (current status: <status>).
Arrival Notice has already been sent for shipment "<shipment>".

Cause: The button and the action share one guard: Direction must be Import, status must be Confirmed/In Transit/Done, and arrival_notice_sent_at must still be empty.

Fix: Check Direction = Import and the shipment’s status. If it was already sent, there is nothing to resend from the system - check the Chatter for when it went out.

The container will not move to Customs Cleared

Symptom: clicking Customs Cleared shows (names filled in):

Cannot move container "<container>" from <current> to <target>.

Cause: The container has not been marked Arrived yet; each import milestone can only be reached from the one immediately before it.

Fix: Click Arrived first, then Customs Cleared.

Free Time End and Detention Start stay blank

Symptom: After clicking Arrived, Free Time Start shows a date but Free Time End and Detention Start stay empty.

Cause: Container Free Time (Days) was never recorded anywhere in the system for this shipment - see Known limitations.

Fix: There is no field to fill in after the fact either. Calculate the last free day by hand from the Chatter note made in Step 2 (ATA + free days) and track it outside the shipment.