START A CONVERSATION

Let’s talk about your next build.

Prepare your brief below, then review and send it in your email app to sales@nextlabsonline.com.

THE FIRST CONVERSATION

Your product idea, AI opportunity or automation challenge—and a useful first milestone.

All fields are required.

A few sentences about the problem, your users and timing are enough.

We’ll use your details to respond to your enquiry. Please don’t include patient records, passwords or confidential information. Privacy Policy · Website Terms.

Logistics & supply chain / EDI & Message Standards

EDI 315 Container Status Codes and How to Act on Each Event

By Vikasraj YadavPublished 9 min read

For edi and integration analysts, it leads at shippers, 3pls and carriers · Understand the problem

EDI 315 Container Status Codes and How to Act on Each Event — Two supply chain IT and finance staff sitting at a wooden table with two side-by-side out-of-focus monitors, two closed laptops, a blank ruled clipboard, and a plain cream folder, overlooking a warehouse floor with pallet racking and an orange forklift.

EDI 315 Container Status Codes and How to Act on Each Event: Illustrative TMS–ERP order and invoice handoff review beside a warehouse floor; not a client facility.

At a glance · Quick answer

Quick answer: edi 315 container status

An EDI 315 reports one ocean container event in the B4 segment, with the status code in B403 and its date and time in B404 and B405. Import clocks turn on AV (available for delivery), OA (out-gate) and RD (return container); export clocks on EE (empty equipment dispatched) and I (in-gate). The carrier's tariff, not the code, fixes free days.

TL;DR — what you’ll learn

  • A 315 carries one event per transaction: B403 holds the status code, B404 and B405 the date and time, B407 and B408 the container, and the R4 loop the port with its function code.
  • Treat VA and VD as vessel events, not container events: element 157 defines them as scheduled or actual, so a VA without an actual DTM 140 never starts an import clock.
  • 46 CFR 541.6(b) makes US invoices show free days, start and end dates and the container availability date, so keep the AV, OA and RD messages as evidence for at least the 30-day dispute window.
  • India's arrival and departure manifests under the 2018 manifest regulations are carrier filings on ICEGATE, not 315 events; track them through the customs broker and keep them out of the container clock.

Topics: edi 315 container status · edi 315 status codes · x12 315 b403 shipment status code · per diem clock container · free time start event

All quantities, amounts, product codes and events are illustrative teaching examples.

The import desk sees "VA" against a 40-foot box at Los Angeles on a Sunday evening, marks the container as arrived, and books a dray for Friday. The ship was at anchor. The box was discharged on Tuesday and made available that evening, but nobody watched for the AV message, and the dray turned up after the last free day. Two weeks later a detention invoice lands whose start date nobody can test, because the 315 messages were parsed into a dashboard and then discarded.

A 315 feed is only useful when each status code is tied to a clock, an owner and an action. Done well, the feed gives you the exact date a carrier must print on a US demurrage invoice, warns the dray desk before free time ends, and keeps the raw event that settles a dispute in minutes instead of weeks.

  • What this guide covers: how a 315 is laid out, the status codes that matter for each leg, which codes start or stop free-time and per-diem clocks, hold and release codes, and the India manifest events that a 315 does not carry.
  • What it adds: a sample 315 transaction, a worked per-diem clock in dollars and rupees, an hour-by-hour failure trace and an onboarding checklist for a carrier's 315 connection.

How a 315 message is built around one container event

A 315 reports one status for one or more pieces of equipment, so read it as an event record, not a shipment summary. The X12 table for release 004010 runs ST, B4, up to 30 N9 references, one Q2 vessel segment, SG shipment status, a mandatory R4 port loop with its DTM dates, optional V9 event detail and SE. The functional group identifier in GS01 is QO.

The B4 segment does most of the work. B403 holds the shipment status code from X12 data element 157, B404 the date, B405 the time, B407 and B408 the equipment initial and number, B409 the equipment status (E for empty, L for load), B410 the equipment type and B411 and B412 the location identifier and its qualifier. B413 carries the check digit.

ISA*00*          *00*          *02*EXCR           *ZZ*NXSHIPPER      *261103*0702*U*00401*000004417*0*P*>~
GS*QO*EXCR*NXSHIPPER*20261103*0702*4417*X*004010~
ST*315*0001~
B4***UV*20261103*0640**NXEU*704518*L*45G1*USLAX*UN*9~
N9*BM*EXCRLAX5528017~
N9*BN*EXBK3304471~
Q2*9321483*PA*******226W****EXAMPLE STAR~
R4*L*UN*CNSHA*SHANGHAI*CN~
DTM*140*20261012*2210*LT~
R4*D*UN*USLAX*LOS ANGELES*US~
DTM*140*20261103*0640*LT~
SE*10*0001~
GE*1*4417~
IEA*1*000004417~

In this illustrative message the box NXEU 704518, check digit 9, was unloaded from the vessel (UV) at Los Angeles at 06:40 local time on 3 November, laden (L). The N9 qualifiers BM and BN carry the bill of lading and booking numbers; the two R4 loops give the port of loading (function code L) and port of discharge (D), each with an actual date under DTM qualifier 140.

For envelope numbering and acknowledgements, the 315 behaves like any other X12 set: the ISA13 and GS06 control numbers must be unique per partner, and your translator should return a 997 within the agreed window. Duplicate detection on those numbers matters here because carriers resend whole batches of 315s after an outage.

The B403 status codes that move an ocean container, leg by leg

Out of the long element 157 list, roughly fifteen codes decide almost every action on an ocean container. Group them by leg, because the same code (I for in-gate) means a full export arriving at the load port or an empty import box going back, and only the leg and B409 tell you which.

Scroll horizontally to see all columns.

Common 315 status codes in B403, what the X12 name says, and the first action each one should trigger
CodeX12 element 157 nameLegFirst action for the receiving team
EEEmpty Equipment DispatchedExport originOpen the export per-diem window if merchant haulage applies
IIn-GateExport load port, or empty returnRead B409: L closes the export dray, E may close import per diem
AELoaded on VesselExport load portConfirm against the booking; flag rollovers if absent after VD
VDVessel DepartureAny portUpdate ETAs; treat as vessel event only
VAVessel ArrivalAny portUpdate plans; never start an import clock from it alone
UVUnloaded From VesselImport dischargeStart demurrage free time where the tariff counts from discharge
CTCustoms ReleasedImportClear the customs hold flag; check carrier release separately
CRCarrier ReleaseImportClear the freight and documentation hold
CUCarrier and Customs ReleaseImportRelease both flags; confirm terminal appointment
AVAvailable for DeliveryImport terminalStart free time where the tariff counts from availability; book dray
NFFree Time to ExpireImport terminalEscalate if no OA is planned before the stated date
OAOut-GateImport terminal or rampStop demurrage; start per diem where B409 is L
RDReturn ContainerImport empty returnStop per diem; match to the open OA
PUOther U.S. Agency Hold at Place of Vessel ArrivalImportRoute to the customs broker for the agency concerned

Two further codes catch analysts out. MT is named "Empty Committed" in element 157, yet some carrier guides use it loosely for empty return. AR, UR and RL describe inland rail, so an import moving under a through bill to Chicago produces a second availability point at the ramp. Agree the code list with each carrier in writing and reject anything outside it into a review queue.

Which events start and stop the free-time and per-diem clocks

No status code starts a clock by law; the carrier's tariff or service contract names the trigger, and the 315 only proves when that trigger happened. Your mapping table must therefore be per carrier and per contract, with the code, the B409 value and the location type that count as start and stop.

For imports, terminal demurrage usually runs from discharge (UV) or availability (AV) until the full out-gate (OA). Detention or per diem then runs from OA until the empty return, reported as RD or as I with B409 = E at a depot. For exports, per diem commonly runs from the empty out-gate (EE, or OA with B409 = E) until the full in-gate (I with B409 = L), and storage before loading follows the terminal's receiving rules.

  • Start event: the code named in the tariff, stored with its B404 date, B405 time and the R4 or B411 location that proves which facility reported it.
  • Stop event: the gate code at the facility the contract names; an OA at a different terminal or a rail ramp may not stop the clock.
  • Counting rule: chargeable days = max(0, stop date - start date + 1 - free days), using calendar days at the facility's local date unless the tariff says otherwise.
  • Exclusions: days the tariff excludes, such as terminal closures or government holds, kept as dated adjustments rather than edits to the event dates.

US import demurrage and detention control depends on three dated 315 events: availability (AV) or discharge (UV), full out-gate (OA) and empty return (RD). 46 CFR 541.6(b) requires every US invoice to show free days, the start and end of free time and the container availability date, so those events become direct invoice evidence.

Once Part 541 applies, the stored events become audit evidence. The billing party must issue an invoice within 30 calendar days of the date the charge was last incurred under 541.7(a), the billed party gets at least 30 days to request mitigation, refund or waiver under 541.8(a), and the billing party then has 30 days to try to resolve it. Our last free day control guide covers the planning side of the same deadline.

Hold and release codes that decide whether a box can leave

A container that is available but not released cannot out-gate, so release codes decide whether the dray booking is real. Track the customs hold and the carrier hold as two separate flags, because CT clears only the first, CR only the second and CU both.

  • CT customs released: customs has released the cargo; the carrier may still be holding for unpaid freight or a missing original bill.
  • CR carrier release: freight and documents are settled with the carrier; customs may still have the box on hold.
  • CU both released: the cleanest signal for booking a terminal appointment, provided AV has also arrived.
  • PU other agency hold: a US agency other than CBP or USDA has placed a hold at the place of vessel arrival; route it to the broker with the agency named.

Holds also shape disputes. If a box sat on a carrier hold that the carrier itself caused, the 541.6(e) certification that the billing party's performance did not cause or contribute to the charges becomes the point to challenge. Keep the hold and release timestamps next to the clock so the reviewer can see whether free days ran while the container could not legally leave.

X12 315 release handling needs two independent flags per container: customs release (CT) and carrier release (CR), with CU setting both at once. A dray appointment booked on availability (AV) alone fails whenever either flag is open, and the stored release timestamps support a 46 CFR 541.8 mitigation request within 30 days.

Estimated or actual: reading B404, B405 and the DTM qualifiers

A 315 can describe something that has not happened yet, so never accept a date without knowing whether it is planned or actual. X12 defines VA as "vessel scheduled to arrive or has arrived" and VD in the same way, which means the code alone does not settle the question.

Look for the DTM qualifier in the matching R4 loop: 140 means actual and 139 means estimated, while 371 and 372 are the estimated and actual arrival dates. If a carrier sends B404 and B405 without any DTM, write down in the partner profile whether its B4 date is always actual. Without that agreement, a projected berth time at 23:00 will look exactly like an arrival.

Time zones cause the second class of error. B405 is a local time without an offset, so resolve it from the R4 or B411 location before converting to UTC. A Nhava Sheva out-gate at 01:30 on 9 November is 20:00 UTC on 8 November; stored without the zone, the count of chargeable days moves by one. Keep the original local value beside the normalised one so that a dispute can quote both.

Corrections are the third issue. Some carriers resend a status with the same code and a changed time, others cancel and replace, and a few send nothing when an event is withdrawn. Keep every version, mark which one is current, and record which message superseded which. The container tracking API events guide covers the same planned-versus-actual problem for JSON event feeds; this article stays with X12 field positions and clock consequences.

India legs: arrival manifests, entry inwards and the CFS clock

For containers discharged in India, the customs milestones do not come from a 315 at all. Under the Sea Cargo Manifest and Transhipment Regulations, 2018 (Notification 38/2018-Customs (N.T.) of 11 May 2018), which superseded the 1971 import and 1976 export manifest regulations, the carrier files an arrival manifest and a departure manifest electronically on ICEGATE. Trade still calls them IGM and EGM.

Regulation 4 says the arrival manifest includes an application for entry inwards in Form II, a general declaration and the cargo declaration, and the general and cargo declarations go in before the vessel leaves the last port of call. Form VIA can be updated until 48, 24 or 6 hours before expected arrival for voyages of more than 96 hours, 48 to 96 hours, and under 48 hours. Regulation 5 makes the departure manifest due before sailing, with updates allowed for 24 hours afterwards.

  • What the 315 still gives you: VA, UV, OA and RD for the box at Nhava Sheva (INNSA), Mundra (INMUN) or Chennai (INMAA), including the move from the terminal to a container freight station.
  • What it does not give you: manifest filing, entry inwards, bill of entry assessment or out-of-charge; those reach you through the customs broker or ICEGATE.
  • Which clock it feeds: the shipping line's detention, which in India normally runs on the line's own free days until the empty is returned.

The station charges ground rent under its own tariff, and goods left uncleared for more than thirty days after unloading fall under Section 48 of the Customs Act, 1962. We found no Indian billing rule that mirrors Part 541's invoice-content list, so the clock evidence in India rests on the line's tariff, the delivery order and your stored 315 or terminal events. Our ocean arrival notice guide covers advance bill of entry timing on the same leg.

Who owns each 315 record and who signs off a disputed clock

Each clock has three owners: whoever generates the event, whoever acts on it and whoever approves money against it. Write this down per lane, because the integration team that parses the 315 is rarely the team that pays the per diem.

Scroll horizontally to see all columns.

Ownership of the dates a 315 feed supplies and the person who approves each charge or dispute
Date or flagSource in the feedOwner of the recordWho signs off charges against it
Discharge and availabilityB403 UV or AV, DTM 140 in the discharge R4 loopImport operations analystDemurrage and detention controller
Customs and carrier releaseB403 CT, CR or CUCustoms broker (US) or CHA (India)Import compliance lead
Full out-gateB403 OA with B409 LDrayage dispatcherTransport manager
Empty returnB403 RD, or I with B409 EDrayage dispatcher or depot deskDemurrage and detention controller
Free days and counting ruleTariff or service contract, not the 315Ocean procurement managerHead of logistics
Mitigation or refund requestStored events plus the invoiceAccounts payable specialistFinancial controller

The contract owner is the one most often missing. When procurement negotiates seven free days but the parser still uses the carrier's public tariff of four, every alert fires early and the team learns to ignore them. Load contract free days into the same table that the clock reads, with an effective date.

From a 315 status message to a dated clock decision Step 1, Receive: 315 arrives in a QO group. 997 returned to the carrier; Raw X12 stored unchanged; Control numbers logged. Step 2, Validate: Container, code and time checked. ISO 6346 check digit on B408; B403 code on the agreed list; B405 time zoned by R4 port. Step 3, Place on a clock: Start, stop or hold. AV or UV per tariff starts; OA ends demurrage; RD or empty I ends per diem. Step 4, Act and keep: Task, alert and dispute file. Dray booked before last free day; Hold codes routed to broker; Events kept for 541.8 requests. From a 315 status message to a dated clock decision Each event is checked, placed on the right clock and stored as evidence before anyone acts on it 1 · RECEIVE 315 arrives in a QO group • 997 returned to the carrier • Raw X12 stored unchanged • Control numbers logged 2 · VALIDATE Container, code and time checked • ISO 6346 check digit on B408 • B403 code on the agreed list • B405 time zoned by R4 port 3 · PLACE ON A CLOCK Start, stop or hold • AV or UV per tariff starts • OA ends demurrage • RD or empty I ends per diem 4 · ACT AND KEEP Task, alert and dispute file • Dray booked before last free day • Hold codes routed to broker • Events kept for 541.8 requests

A worked per-diem clock in dollars and rupees from stored events

The same three events produce the charge in both markets; only the tariff and the currency change. The figures below are illustrative tariffs and rates, before any tax, chosen to show how the wrong start event changes the bill.

Scroll horizontally to see all columns.

Illustrative import clocks for one 40-foot box at Los Angeles and one at Nhava Sheva, built only from 315 events
StepLos Angeles import (USD)Nhava Sheva import (INR)
Vessel arrival VA (anchorage or berth)1 Nov 21:154 Nov 14:00
Discharge UV3 Nov 06:405 Nov 03:20
Availability AV3 Nov 18:00Not used by this line's tariff
Free time rule in the tariff4 days demurrage from day after AV; 4 days per diem from OA date14 days line detention from discharge date
Full out-gate OA9 Nov 10:1512 Nov 11:40 (to CFS, then delivered 17 Nov)
Empty return RD16 Nov 14:0022 Nov 16:05
Chargeable daysDemurrage 8-9 Nov = 2; per diem 13-16 Nov = 4Detention 19-22 Nov = 4
Rate$175 demurrage, $125 per diem a day₹1,800 a day
Correct charge2 x $175 + 4 x $125 = $8504 x ₹1,800 = ₹7,200
Charge if VA were used as the startDemurrage 6-9 Nov = 4 days, $1,200 in totalDetention 18-22 Nov = 5 days, ₹9,000
Over-billing caught by stored events$350₹1,800

The difference looks small per box. Across 600 import containers a year with one in five starting from the wrong event, the Los Angeles pattern alone is 120 x $350 = $42,000 that no one can dispute without the raw AV message. In India the counting starts from discharge, so the error is narrower, but the out-gate to a CFS is not the end of the line's clock; only the empty return is.

A VA status read as availability: the trace hour by hour

Most 315 failures are not parser crashes; they are correct messages read with the wrong meaning. This illustrative trace follows the Los Angeles box from the worked example through one such misreading.

  1. Sun 1 Nov 21:15: 315 control number 4398 arrives with B403 = VA for vessel 226W and no DTM. The visibility screen shows "Arrived". The import coordinator books dray order DR-55120 for Fri 6 Nov.
  2. Tue 3 Nov 06:40 and 18:00: 315s 4417 (UV) and 4431 (AV) arrive. The screen already says "Arrived", so the status column does not change and no alert fires. Last free day under the tariff is 7 Nov.
  3. Fri 6 Nov 07:30: the drayage carrier cancels DR-55120 for a chassis shortage. The coordinator rebooks for Mon 9 Nov, believing two free days remain because the screen counts from "arrival".
  4. Mon 9 Nov 10:15: 315 control number 4502, B403 = OA, B409 = L. Two demurrage days have been incurred. Per diem then runs to the RD on Mon 16 Nov.
  5. Fri 4 Dec: the carrier invoice starts demurrage on 6 Nov, using arrival. Because messages 4417 and 4431 were stored raw, AP files a 541.8 request with the AV date and recovers $350. The chassis-related days stay payable.

The fix was cheap: an alert keyed to AV rather than VA, a last-free-day field computed from the contract, and a rule that no screen status changes on VA. The recovery happened only because the raw 315s were kept, which is why storage of the original message is a control, not an IT preference.

Parser rules versus analyst judgement on each 315 event

Most 315 handling can be fixed rules; the judgement sits in tariff interpretation and disputes. Let software suggest where a carrier's free-text remark or an unusual code sequence needs reading, and keep the decision to dispute or pay with a named person.

Scroll horizontally to see all columns.

Which 315 handling steps run as fixed translator rules and where software only prepares a decision for an analyst
TaskFixed rule in the translator or clock engineSoftware assists, a person decides
Checking B407 and B408 against the ISO 6346 check digitReject and queue on mismatchNone needed
Converting B405 local time using the R4 or B411 locationApply the facility time zone tableAnalyst assigns a zone to a new location code
Deciding whether a VA without DTM 140 is an anchorage or a berthNever moves a container clockPlanner reads it against the terminal's berth schedule
Pairing an RD with the right OA when a box cycles twice in a monthMatch on container, bill of lading and legAnalyst resolves pairs with no shared bill
Reading a carrier's free-text hold reason in V9 or remarksStore the text verbatimLanguage model may suggest a hold category; broker confirms
Choosing to file a mitigation request under 46 CFR 541.8Compute days and the variance against the invoiceController decides to dispute, accept or settle

EDI 315 container clocks should run on fixed translator rules: ISO 6346 check-digit validation, time-zone resolution from the R4 port and code mapping per carrier contract. Analysts keep three judgements: tariff interpretation, pairing ambiguous gate moves and the decision to file a 46 CFR 541.8 request within its 30-day window.

Keeping these rules in the clock engine also gives finance a stable base. The accrual for still-running clocks and the accounting for the eventual charge are covered in our guide to demurrage accounting treatment; that article starts from the invoice, while this one ends where the dated evidence is ready.

Onboarding checklist for a carrier's 315 status feed

Onboard each carrier with a written code list, a test file covering every leg and a signed note of which events start and stop each clock. The checklist below is the minimum before a feed drives alerts or disputes.

Scroll horizontally to see all columns.

Checks to complete before a carrier's 315 feed is allowed to drive dray alerts and invoice disputes
CheckHow to test itPass condition
Agreed B403 code listCompare the carrier guide with 30 days of live trafficNo unlisted codes, or each mapped to review
Actual versus estimatedFind VA and VD messages and their DTM qualifiersEvery clock-moving event carries DTM 140 or a written exception
Location codingList B406, B411 and R4 values receivedEach maps to one facility with a time zone
Empty versus ladenSample I and OA eventsB409 present on every gate event
Resends and correctionsReplay a day of traffic twiceNo clock reopens; duplicates logged by control number
Contract free days loadedPick five live boxes and recompute last free dayMatches the contract, not the public tariff
Raw retentionRetrieve a 90-day-old 315 by container and dateOriginal X12 returned unchanged
India milestones linkedCheck one INNSA box for manifest and bill of entry statusBroker milestones shown beside, not inside, the clock

If you are comparing visibility or EDI platforms that claim to manage these clocks, test them against your own trace: give them a VA without DTM, a resent OA and an India box moving to a CFS, and see what each screen says. When you are ready to put that comparison in writing, our RFP builder turns the checklist above into vendor questions. More guides for import and export teams are on the logistics and supply chain hub.

Discuss this workflow

Describe your current systems, the recurring exception and the outcome you need. Keep shipment, customer and financial records out of the initial message.

START A CONVERSATION

Let’s talk about your next build.

Prepare your brief below, then review and send it in your email app to sales@nextlabsonline.com.

SELECTED INDUSTRYLogistics & supply chain

Article: EDI 315 Container Status Codes and How to Act on Each Event · EDI & Message Standards

THE FIRST CONVERSATION

Your product idea, AI opportunity or automation challenge—and a useful first milestone.

All fields are required.

A few sentences about the problem, your users and timing are enough.

We’ll use your details to respond to your enquiry. Please don’t include patient records, passwords or confidential information. Privacy Policy · Website Terms.

Common operational questions

Practical answers for operations, engineering, and finance teams working on edi 315 container status in logistics & supply chain.

Which EDI 315 status code starts the demurrage clock on an import container?
No code starts it by itself. The carrier's tariff or service contract says whether free time runs from discharge (UV), availability (AV) or release (CU). Map the code your contract names, keep the B404 date and B405 time with the R4 location, and test the invoice's stated start date against that stored event.
Is a VA status code the same as the container being available?
No. X12 element 157 defines VA as vessel scheduled to arrive or has arrived, so it describes the ship, not the box, and may be an estimate. Availability is AV, and many tariffs also require customs and carrier release. Never derive a last free day from VA alone.
How do I tell an empty return from a full in-gate in a 315 feed?
Read B409, the equipment status code, alongside B403. Element 578 uses E for empty and L for load. An I (in-gate) with B409 = E at a depot or terminal usually closes import per diem, while I with B409 = L at the load port records an export full gate-in.
Does India use the EDI 315 for container status?
Carriers often send 315s for India lanes to US-based shippers, but Indian customs events come from ICEGATE filings. Under the Sea Cargo Manifest and Transhipment Regulations, 2018, the carrier files arrival and departure manifests there. Treat those filings and bill of entry clearance as separate milestones from container moves.

References

Sources checked 13 November 2026. US and India statutory authorities and vendor documentation support platform facts; the worked examples and diagrams are original.

About the author

Vikasraj Yadav writes about operational decisions, software and automation for NextEdge Labs.