EDI 315 Container Status Codes and How to Act on Each Event
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: Illustrative TMS–ERP order and invoice handoff review beside a warehouse floor; not a client facility.
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.
| Code | X12 element 157 name | Leg | First action for the receiving team |
|---|---|---|---|
| EE | Empty Equipment Dispatched | Export origin | Open the export per-diem window if merchant haulage applies |
| I | In-Gate | Export load port, or empty return | Read B409: L closes the export dray, E may close import per diem |
| AE | Loaded on Vessel | Export load port | Confirm against the booking; flag rollovers if absent after VD |
| VD | Vessel Departure | Any port | Update ETAs; treat as vessel event only |
| VA | Vessel Arrival | Any port | Update plans; never start an import clock from it alone |
| UV | Unloaded From Vessel | Import discharge | Start demurrage free time where the tariff counts from discharge |
| CT | Customs Released | Import | Clear the customs hold flag; check carrier release separately |
| CR | Carrier Release | Import | Clear the freight and documentation hold |
| CU | Carrier and Customs Release | Import | Release both flags; confirm terminal appointment |
| AV | Available for Delivery | Import terminal | Start free time where the tariff counts from availability; book dray |
| NF | Free Time to Expire | Import terminal | Escalate if no OA is planned before the stated date |
| OA | Out-Gate | Import terminal or ramp | Stop demurrage; start per diem where B409 is L |
| RD | Return Container | Import empty return | Stop per diem; match to the open OA |
| PU | Other U.S. Agency Hold at Place of Vessel Arrival | Import | Route 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.
| Date or flag | Source in the feed | Owner of the record | Who signs off charges against it |
|---|---|---|---|
| Discharge and availability | B403 UV or AV, DTM 140 in the discharge R4 loop | Import operations analyst | Demurrage and detention controller |
| Customs and carrier release | B403 CT, CR or CU | Customs broker (US) or CHA (India) | Import compliance lead |
| Full out-gate | B403 OA with B409 L | Drayage dispatcher | Transport manager |
| Empty return | B403 RD, or I with B409 E | Drayage dispatcher or depot desk | Demurrage and detention controller |
| Free days and counting rule | Tariff or service contract, not the 315 | Ocean procurement manager | Head of logistics |
| Mitigation or refund request | Stored events plus the invoice | Accounts payable specialist | Financial 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.
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.
| Step | Los Angeles import (USD) | Nhava Sheva import (INR) |
|---|---|---|
| Vessel arrival VA (anchorage or berth) | 1 Nov 21:15 | 4 Nov 14:00 |
| Discharge UV | 3 Nov 06:40 | 5 Nov 03:20 |
| Availability AV | 3 Nov 18:00 | Not used by this line's tariff |
| Free time rule in the tariff | 4 days demurrage from day after AV; 4 days per diem from OA date | 14 days line detention from discharge date |
| Full out-gate OA | 9 Nov 10:15 | 12 Nov 11:40 (to CFS, then delivered 17 Nov) |
| Empty return RD | 16 Nov 14:00 | 22 Nov 16:05 |
| Chargeable days | Demurrage 8-9 Nov = 2; per diem 13-16 Nov = 4 | Detention 19-22 Nov = 4 |
| Rate | $175 demurrage, $125 per diem a day | ₹1,800 a day |
| Correct charge | 2 x $175 + 4 x $125 = $850 | 4 x ₹1,800 = ₹7,200 |
| Charge if VA were used as the start | Demurrage 6-9 Nov = 4 days, $1,200 in total | Detention 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.
- 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.
- 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.
- 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".
- 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.
- 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.
| Task | Fixed rule in the translator or clock engine | Software assists, a person decides |
|---|---|---|
| Checking B407 and B408 against the ISO 6346 check digit | Reject and queue on mismatch | None needed |
| Converting B405 local time using the R4 or B411 location | Apply the facility time zone table | Analyst assigns a zone to a new location code |
| Deciding whether a VA without DTM 140 is an anchorage or a berth | Never moves a container clock | Planner reads it against the terminal's berth schedule |
| Pairing an RD with the right OA when a box cycles twice in a month | Match on container, bill of lading and leg | Analyst resolves pairs with no shared bill |
| Reading a carrier's free-text hold reason in V9 or remarks | Store the text verbatim | Language model may suggest a hold category; broker confirms |
| Choosing to file a mitigation request under 46 CFR 541.8 | Compute days and the variance against the invoice | Controller 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.
| Check | How to test it | Pass condition |
|---|---|---|
| Agreed B403 code list | Compare the carrier guide with 30 days of live traffic | No unlisted codes, or each mapped to review |
| Actual versus estimated | Find VA and VD messages and their DTM qualifiers | Every clock-moving event carries DTM 140 or a written exception |
| Location coding | List B406, B411 and R4 values received | Each maps to one facility with a time zone |
| Empty versus laden | Sample I and OA events | B409 present on every gate event |
| Resends and corrections | Replay a day of traffic twice | No clock reopens; duplicates logged by control number |
| Contract free days loaded | Pick five live boxes and recompute last free day | Matches the contract, not the public tariff |
| Raw retention | Retrieve a 90-day-old 315 by container and date | Original X12 returned unchanged |
| India milestones linked | Check one INNSA box for manifest and bill of entry status | Broker 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.
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?
Is a VA status code the same as the container being available?
How do I tell an empty return from a full in-gate in a 315 feed?
Does India use the EDI 315 for container status?
References
Sources checked 13 November 2026. US and India statutory authorities and vendor documentation support platform facts; the worked examples and diagrams are original.
- X12 - Transaction set 315 Status Details (Ocean), release 004010, segment table (as published in the Stedi X12 reference)Segment order B4, N9, Q2, SG, R4 loop with DTM, V9 and functional group QO. The official X12 standard is licensed; this public reference reproduces the dictionary. Accessed 13 November 2026.
- X12 - Data element 157 Shipment Status Code (Stedi X12 reference)Code names and definitions for AE, AV, CT, CU, CR, EE, I, MT, NF, OA, PU, RD, UV, VA and VD. Accessed 13 November 2026.
- X12 - Segment B4 Beginning Segment for Inquiry or Reply, release 004010 (Stedi X12 reference)Elements B401 to B413; equipment status codes E and L checked on element 578, port function codes on element 115 and date qualifiers 139 and 140 on element 374. Accessed 13 November 2026.
- US Code of Federal Regulations - 46 CFR 541.6, Contents of invoice (Cornell LII)Identifying, timing, rate and dispute information and the two certifications. Accessed 13 November 2026.
- US Code of Federal Regulations - 46 CFR 541.7 and 541.8, issuance timing and mitigation requests (Cornell LII)30 calendar days to invoice from the last charge, at least 30 days for the billed party to request mitigation and 30 days for the billing party to resolve. Accessed 13 November 2026.
- Federal Maritime Commission - Final rule removing 46 CFR 541.4 after World Shipping Council v. FMC (FR Doc. 2025-23920)D.C. Circuit decision of 23 September 2025 set aside section 541.4; other Part 541 provisions remain in effect; published 29 December 2025. Accessed 13 November 2026.
- CBIC - Sea Cargo Manifest and Transhipment Regulations, 2018, Notification No. 38/2018-Customs (N.T.), as amendedConsolidated text hosted on a Government of India court website because the CBIC copy could not be fetched; regulations 2, 4 and 5 checked for definitions, arrival manifest content and update windows. Accessed 13 November 2026.
- CBIC - Customs Act, 1962 (consolidated), Section 48Heading of section 48 on goods not cleared, warehoused or transhipped within thirty days after unloading. Accessed 13 November 2026.
- ASC X12 — EDI Supply Chain & Transportation Transaction Sets (204/210/214/856/940/945)US standard for electronic data interchange across shippers, 3PLs, and motor carriers.
- FMCSA — 49 CFR Part 395 Hours of Service & Electronic Logging Devices (ELD)US federal motor carrier dispatch and driver duty-status compliance mandate.
- ULIP & NIC GST E-Way Bill Portal — Unified Logistics & Rule 138 ComplianceIndian statutory goods-in-transit and multi-modal logistics verification framework.