EDI 310 Ocean Freight Receipt and Invoice: Auditing Carrier Charges
For edi and integration analysts, it leads at shippers, 3pls and carriers · Understand the problem

EDI 310 Ocean Freight Receipt and Invoice: Auditing Carrier Charges: Illustrative TMS–ERP order and invoice handoff review beside a warehouse floor; not a client facility.
Quick answer: edi 310 freight receipt invoice
An EDI 310 is the ocean carrier's Freight Receipt and Invoice: bill of lading data plus charges. Audit it line by line, not by total: read the invoice and bill of lading numbers in B3, the contract number in N9 and each L1 charge, then recompute every L1 amount from the contract or tariff rate on the actual sailing date.
TL;DR — what you’ll learn
- The 004010 X12 310 serves as receipt, bill of lading copy, manifest data or invoice, so agree with each carrier which flags mark the invoice before auditing.
- Recompute each L1 line as the contract rate on the actual sailing date times the N7 container count, and auto-approve only within $5 or 0.5%.
- Under 46 CFR 520.8, a new or increased tariff charge cannot take effect earlier than 30 calendar days after publication; decreases may apply on publication.
- In India, credit follows the agent's GST tax invoice shown in GSTR-2B under CGST Rule 36(4), not the 310; container handling under SAC 996711 is taxed at 18%.
Topics: edi 310 freight receipt invoice · 310 charge codes vs contract · BAF and THC lines · ocean freight three-way match · x12 310 L1 segment
All quantities, amounts, product codes and events are illustrative teaching examples.
The ocean carrier's invoice arrived as an X12 310 at six in the morning, the translator returned a clean 997, and accounts payable paid it within the week. A month later an analyst noticed that the bunker line used November's table for a vessel that sailed on 28 October, that the bill-of-lading fee appeared twice, and that a congestion surcharge had been charged on a booking made before the carrier published it.
None of that was visible in the 310's total, which was within the usual range for the lane. All of it was visible in the L1 lines, provided someone compared each line with the contract rate, the tariff and the shipment facts. A 310 audit that keys on the right segments catches these errors before payment and turns each dispute into a line-level record the carrier can check.
- What this guide covers: the 310's purpose and segments, the identifiers in B3, N9 and R4, the L1 charge line, the three-way match against contract and shipment, and the bunker, currency and terminal lines that cause most variances.
- What it adds: an annotated sample 310 with an expected-charge formula, a timestamped overpayment, a worked audit in dollars and rupees, and an onboarding checklist for a new carrier feed.
What an X12 310 carries beyond the freight bill itself
The 310, Freight Receipt and Invoice (Ocean), is the carrier's bill of lading data in electronic form, and the invoice is only one of its uses. The X12 purpose statement for version 004010 lists shipment receipt, substitute for a paper bill of lading, verification copy, manifest data for terminal operators and freight invoice.
That breadth explains a common integration surprise: the same carrier may send several 310s for one shipment, first as a bill of lading verification copy and later as the freight invoice, each with different content. An audit engine that treats every 310 as a bill will double-count; one that treats every 310 as a document copy will never audit anything. Agree with the carrier, in its implementation guide, which flags distinguish the invoice.
- Heading area: B3 opens the invoice; N9 carries references; V1 identifies the vessel and voyage; C3 sets the currency; the N1 loop names the parties; the R4 loop lists ports and places.
- Detail area: the LX loop holds N7 equipment details, with optional L1 rate lines per container, and the L0 loop holds line items, quantities and weights with their own L1 lines.
- Summary area: L3 gives total weight and charges and is mandatory; an optional L1 loop carries shipment-level charges, followed by SE.
Our comparison of EDI 214 status and 210 freight invoice architecture covers motor carrier billing, where the 210 is the invoice and a bill of lading is a separate paper. The ocean 310 merges the two, so the audit has to begin by deciding which version of the bill of lading data the invoice belongs to. More EDI and freight audit guides sit in the Logistics and Supply Chain hub.
Reading B3, N9 and R4: the identifiers an ocean audit keys on
Four values tie a 310 to everything else: the invoice number and bill of lading number in B3, the contract reference in N9 and the load and discharge ports in R4. If any of them is missing or mapped to the wrong field, the audit cannot find the rate it needs and should stop rather than guess.
In the 004010 B3 segment, the invoice number (B3-02), shipment method of payment (B3-04), billing date (B3-06), net amount due (B3-07) and the carrier's Standard Carrier Alpha Code (B3-11) are mandatory. The shipment identification number in B3-03 usually holds the bill of lading number. B3-14 can carry the transportation terms code, which is where an Incoterm such as FOB appears when the carrier sends one.
ST*310*0001~
B3**INV7781204*BL55120931*PP*K*20261102*516000****XMPL~ B3-07 net due = 5,160.00
N9*BM*BL55120931~ BM = bill of lading number
N9*CT*SC-2026-0412~ CT = contract number
V1*9876543*EXAMPLE STAR**041E~ vessel code, name, voyage
C3*USD~
N1*SH*EXAMPLE EXPORTS PVT LTD~
N1*CN*EXAMPLE IMPORTS INC~
R4*L*UN*INNSA*NHAVA SHEVA~ L = port of loading
R4*D*UN*USSAV*SAVANNAH~ D = port of discharge
LX*1~
N7*XMPU*4410023~
N7*XMPU*4410351~
L3*24000*G***516000~ total charge 5,160.00
L1*1*1450*PA*290000********OCEAN FREIGHT~ PA = per container
L1*2*410*PA*82000****BUA****BUNKER ADJ~ BUA = bunker adjustment
L1*3*395*PA*79000****TER****DEST TERMINAL~ TER = terminal charge
L1*4*75*LS*7500****DOC****BL FEE~ DOC = documentation
L1*5*75*LS*7500****DOC****BL FEE~ same fee, second line
L1*6*250*PA*50000****CON****CONGESTION~ CON = congestion surcharge
SE*21*0001~
Expected charge per L1 line
E_i = r(c_i, k, t_s) * q_i
V_i = B_i - E_i
auto-approve line i only if |V_i| <= max(5.00, 0.005 * E_i)
where
B_i = billed amount, L1-04 / 100 (charge is implied two decimals)
r() = agreed rate for charge type c_i under contract k (N9*CT) at sailing date t_s
c_i = charge type mapped from L1-08 or, if blank, from the L1-12 description
q_i = billed quantity: count of N7 containers for PA lines, 1 for LS lines
t_s = actual sailing date from the carrier's milestone feed, not the invoice date
The sample is illustrative: the carrier code XMPL, vessel and containers are invented. Two details trip up mappers. The L1-04 charge and the B3-07 and L3-05 totals carry implied decimals, so 516000 means 5,160.00. And the X12 syntax note for L1 requires the freight rate and its qualifier to appear together, while at least one of charge, advances or prepaid amount must be present on every L1.
L1 charge lines: rate basis, special charge codes and descriptions
Each L1 line answers three questions: how much per what, for which charge type and in which currency. The rate qualifier says "per what", the special charge code says "which charge", and both must map to your contract's charge list before a single line can be audited automatically.
The 004010 code list for the rate qualifier includes PA for per container, PU for per unit, CM for per cubic metre, MM for per metric ton, WM for weight or measurement, FR for flat rate and LS for lump sum. The special charge code in L1-08 is a three-character value from a list of more than a thousand codes, and the free-text description in L1-12 allows up to 25 characters.
Scroll horizontally to see all columns.
| Charge on the contract | X12 004010 code and official name | Usual rate basis | Audit note |
|---|---|---|---|
| Basic ocean freight | Often no code; described in L1-12 | PA per container or WM | Match to the contract rate for the commodity and port pair |
| Bunker or fuel adjustment | BUA Bunker Adjustment; BU2 and BU4 for 20 and 40 foot containers | PA | Rate depends on the period table that applies on the sailing date |
| Currency adjustment | CUF Currency Adjustment Factor; CUA Currency Adjustment | Percent of freight or PA | Check the base it is applied to |
| Terminal charges at either end | TER Terminal Charge; CTC Container Service Charge USA/Canada | PA | No 004010 code is named terminal handling charge for ocean, so map by carrier guide |
| Documentation and bill of lading fee | DOC Documentation Charge | LS per bill of lading | One per bill unless the contract says otherwise |
| Congestion surcharge | CON Congestion Surcharge | PA | Test the publication and effective dates |
| Wharfage | WFG Wharfage; WCT Wharfage - Container | PA | Often a pass-through of a terminal tariff |
Build the mapping per carrier, from the carrier's own 310 implementation guide and three months of real files. Key it on the combination of L1-08 and a normalised L1-12 description, store the rate basis you expect for each mapped charge, and route any line whose qualifier disagrees with that basis to review. A lump-sum documentation fee arriving as PA, for example, usually means it is being charged per container.
Contract, tariff and shipment facts: the three-way match for ocean bills
An ocean line is correct only when three sources agree: the 310 line, the rate agreed in the service contract or published in the tariff, and the shipment facts of containers, sizes, ports and sailing date. Any two agreeing while the third disagrees is a dispute, not an approval.
In US trades the rate side has a regulatory frame. Under 46 CFR 520.3, common carriers must keep tariffs showing all rates, charges, rules and practices open for public inspection, and 520.4(a)(4) requires each terminal or other charge under the carrier's control to be stated separately. Service contracts sit beside the tariff: 46 CFR 530.8(a) requires each contract and amendment to be filed with the Federal Maritime Commission within 30 days after its effective date.
- Rate source: the N9 contract number points to the contract and amendment in force on the sailing date; charges the contract leaves "subject to tariff" come from the tariff version in force on that date.
- Quantity source: container counts and sizes come from the N7 segments and should match the booking and the gate-in and load events from the carrier's 315 status feed.
- Date source: the sailing date governs bunker, currency and surcharge tables. Take it from milestone data, not from the 310 billing date in B3-06.
- Party source: the N1 bill-to party and the method of payment in B3-04 tell you whether this invoice is yours at all under the sale terms.
An X12 310 ocean freight audit should approve a charge line only when the L1 amount equals the service contract or tariff rate in force on the actual sailing date times the N7 container count, within $5 or 0.5%; 46 CFR 520.8 delays tariff increases for 30 calendar days after publication.
The effective-date rule matters for new surcharges. Under 46 CFR 520.8(a)(1), a new or increased tariff rate or charge cannot take effect earlier than 30 calendar days after publication, while decreases may take effect on publication. Section 520.8(b)(4) lets changes in charges outside the carrier's control, such as some terminal charges it only collects, take effect on publication, and says carriers must not mark those up above cost.
The statute behind the rule is 46 U.S.C. 41104(a)(2)(A), which bars common carriers from providing service that is not in accordance with the rates and charges in their published tariff or a filed service contract. Our guide to NAC, FAK and direct ocean contracts explains how those rate sources differ; the audit only needs to know which one governs each line.
Bunker, currency and terminal lines where most overbilling hides
Base ocean freight is rarely wrong because everyone checks it. The lines that drift are the ones whose rate changes by period or port: bunker tables, currency factors, terminal charges and late-published surcharges. Audit those first and audit them on the sailing date.
Bunker and currency adjustments change monthly or quarterly under most contracts, and the carrier's billing system often picks the table by invoice date or booking date rather than sailing date. Terminal charges differ by port and sometimes by terminal within a port. Congestion and similar emergency surcharges appear at short notice, which is where the 30-day tariff rule and your contract's own notice clause decide whether they apply to a booking already made.
Ocean freight audit of bunker lines coded BUA, BU2 or BU4 under X12 004010 element 150 should select the contract's bunker table by the vessel's actual sailing date from the carrier status feed; billing by the November table overcharged $30 per container on a 28 October sailing.
Here is how the sample invoice was paid without challenge. The times and document numbers are illustrative; the sequence is common.
- 2 Nov, 06:10 UTC: 310 invoice INV7781204 for bill of lading BL55120931 arrives over AS2; the translator validates syntax and returns a 997 with acceptance code A.
- 2 Nov, 06:12 UTC: the audit engine compares B3-07, $5,160.00, with the booking quote of $4,600.00. The total is within its 15% tolerance, so it approves the whole invoice without reading the L1 lines.
- 9 Nov, 15:30 IST: accounts payable releases payment run PR-1146, including the $5,160.00 to the carrier.
- 3 Dec, 11:00 IST: a monthly sample review finds BUA billed at $410 per container from the November table, although the vessel sailed on 28 October when the table showed $380; the second DOC line and a CON surcharge published 18 days before sailing are also found.
- 4 Dec, 10:20 IST: the dispute goes in for $635.00, but the example contract's 30-day dispute clause expired on 2 December, so recovery depends on the carrier's goodwill. A line-level check at 06:12 on 2 November would have held $635.00 and paid $4,525.00.
Detention and demurrage sometimes arrive on a 310 as DEM or detention lines. For US shipments these charges carry their own billing rules: 46 CFR 541.6 sets the minimum invoice contents, including free time, its start and end dates and the rule or contract section behind the daily rate, and 541.7 requires the invoice within 30 calendar days of the date the charge was last incurred.
Who owns the rate, the shipment record and the dispute decision
Ocean invoice audit fails most often at hand-offs: procurement loads a contract amendment late, logistics never records the actual sailing date, or accounts payable pays while a dispute is open. Give each record one owner and make the dispute decision a separate, logged approval.
Scroll horizontally to see all columns.
| Record | Where it lives | Kept current by | Signs off exceptions |
|---|---|---|---|
| Service contract, amendments and rate sheets | Contract repository and freight audit rate engine | Ocean procurement | Head of ocean procurement |
| Tariff references for "subject to tariff" charges | Carrier's published tariff, captured by version | Ocean procurement analyst | Head of ocean procurement |
| Bunker and currency tables by period | Rate engine, loaded from carrier notices | Freight audit analyst | Freight audit lead |
| Booking, containers and actual sailing date | Transport management system with carrier status feed | Import or export logistics team | Logistics manager |
| 310 files, 997 results and mapping version | EDI translator and integration platform | EDI analyst | Integration lead |
| Dispute case and carrier response | Freight audit case log | Freight audit analyst | Freight audit lead, with AP manager for payment holds |
| Payment hold and release | ERP accounts payable | AP clerk | AP manager |
The EDI analyst owns more than syntax. A 997 acceptance only confirms that the file parsed; it says nothing about whether the charges are right, as our 997 functional acknowledgment guide explains. Keep the mapping version on every audited invoice so a later dispute can show exactly how each L1 line was read.
Indian local charges, GST tax invoices and what a 310 cannot replace
For a US importer the 310 can be the invoice of record. For an Indian shipper it is at most a data feed: input tax credit depends on a GST tax invoice from the carrier's Indian entity or agent and on that invoice appearing in GSTR-2B, so the audit must run on the tax invoice too.
Rule 36(4) of the CGST Rules allows credit on supplier invoices only when the supplier has reported them in its outward supply statement and they are communicated in GSTR-2B. A carrier's global billing system can send a perfect 310 while its Indian agent issues a separate rupee tax invoice for origin charges; the two must be matched, and the credit follows the tax invoice, not the EDI file. Few Indian agents send X12 at all, so most Indian audits read tax invoice data instead.
- Freight line: transport of goods in a vessel sits in SAC heading 9965, and Notification No. 11/2017-Central Tax (Rate) lists it at 2.5% central tax, 5% with the state or integrated share. Whether a given freight line is taxable in India turns on place of supply, so let the tax team set its code.
- Import freight on CIF terms: the Supreme Court's May 2022 judgment in Union of India v. Mohit Minerals ended the separate reverse-charge IGST that Indian importers had paid on ocean freight in CIF contracts.
- Local charges: container handling at the port falls under SAC 996711 in heading 9967, which the same notification's residual entry taxes at 18% in total.
Scroll horizontally to see all columns.
| Line | US 310 billed ($) | US expected ($) | India agent invoice billed (₹) | India expected (₹) |
|---|---|---|---|---|
| Ocean freight, 2 x 40 ft | 2,900.00 | 2,900.00 | Not on this invoice (paid by buyer) | Not applicable |
| Bunker adjustment, 2 containers | 820.00 | 760.00 | Not applicable | Not applicable |
| Terminal handling, 2 containers | 790.00 (destination) | 790.00 | 35,600 (origin, 2 x 17,800) | 33,000 (2 x 16,500) |
| Bill of lading or documentation fee | 150.00 (twice) | 75.00 | 4,500 | 4,500 |
| Congestion surcharge | 500.00 | 0.00 (inside 30-day notice) | Not applicable | Not applicable |
| GST at 18% on local charges | Not applicable | Not applicable | 7,218 | 6,750 |
| Invoice total | 5,160.00 | 4,525.00 | 47,318 | 44,250 |
| Disputed amount | 635.00 | 3,068 (2,600 charge plus 468 GST) | ||
Figures are illustrative. In the Indian case the right fix is a credit note or a revised tax invoice from the agent, not a short payment, because the credit in GSTR-2B follows the invoice as reported. Our guide to SAC codes for logistics services covers how to classify each local charge line.
An Indian shipper's ocean charge audit must match the carrier's 310 or rate confirmation to the Indian agent's GST tax invoice, because Rule 36(4) of the CGST Rules allows credit only on invoices reported by the supplier and shown in GSTR-2B; container handling under SAC 996711 is taxed at 18%.
Checks an audit engine runs alone and charges a person must judge
Rate arithmetic, duplicate detection, date selection and currency conversion are fixed checks a freight audit engine should run on every L1 line. Interpreting a new carrier description, deciding whether a surcharge notice was valid, and agreeing a goodwill settlement need a person, with software at most proposing the answer.
Scroll horizontally to see all columns.
| Task | Handled as | Who acts | Evidence kept |
|---|---|---|---|
| Recomputing each L1 line as rate times container count | Fixed check | Audit engine | Rate, quantity, variance |
| Picking the bunker table by actual sailing date | Fixed check | Audit engine, using the milestone feed | Sailing event and table version |
| Flagging a second DOC line on one bill of lading | Fixed check | Audit engine | Both line numbers |
| Testing a new surcharge against its publication date | Fixed check with a stored tariff date | Audit engine; analyst loads the date | Publication and sailing dates |
| Reading an unfamiliar L1-12 description such as "EMERG RISK SC" and proposing a charge type | Software suggestion | Freight audit analyst confirms the mapping | Proposal, analyst ID, mapping version |
| Judging whether a carrier notice meets the contract's notice clause | Person | Ocean procurement | Notice copy and contract clause |
| Accepting a partial credit to close a dispute | Person | Freight audit lead with AP manager | Settlement note |
Keep the tolerances narrow and line-based. A total-level tolerance, such as approving any invoice within 15% of the booking quote, hides line errors that offset each other, and a quote is not a contract rate. Line-level tolerances of a few dollars absorb rounding while stopping every real rate error.
Setting up 310 freight audit with a carrier: an onboarding checklist
Onboard each carrier's 310 as its own project: collect its implementation guide, map its charge codes and descriptions, run a parallel audit against paper or PDF invoices for one month, and only then let the 310 drive payment. The first month always reveals codes nobody mapped.
During the parallel month, compare every 310 total with the PDF invoice for the same bill of lading, and log each line that maps to no charge type. Expect a handful of carrier-specific descriptions per trade lane; each one needs a decision from procurement on whether the contract allows it.
Scroll horizontally to see all columns.
| Step | What to agree or build | Owner | Proof before go-live |
|---|---|---|---|
| Purpose flags | How the carrier marks an invoice 310 versus a bill of lading copy | EDI analyst | Written in the carrier guide; tested on samples |
| Identifier mapping | Invoice, bill of lading and contract numbers to B3 and N9 fields | EDI analyst | Every test file links to a booking |
| Charge mapping | L1-08 and L1-12 pairs to contract charge types and bases | Freight audit analyst | No unmapped lines in the last two weeks |
| Rate loading | Contract, amendments, bunker and currency tables with dates | Ocean procurement | Rates reproduce three past invoices exactly |
| Sailing date feed | Actual departure from status messages tied to each booking | Logistics systems | Sailing date present on 99% of test bookings |
| Tolerances and holds | Line tolerance, payment hold on any open dispute | Freight audit lead with AP manager | Hold tested in the ERP |
| India tax invoice match | Agent tax invoice to 310 or booking; GSTR-2B check | Indirect tax team | Credit taken only on matched invoices |
| Dispute route | Carrier contact, dispute window and evidence format | Ocean procurement | First dispute closed inside the window |
When you evaluate a freight audit platform for ocean, ask it to load one real 310, show the expected amount for each L1 line with its rate source and sailing date, and explain where an unmapped description goes. If you need help turning these checks into scored requirements, our RFP support team can help build the evaluation.
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 310 freight receipt invoice in logistics & supply chain.
What is the difference between an EDI 310 and an EDI 210?
Which 310 fields does a freight audit need first?
How should bunker adjustment lines on a 310 be checked?
Can an Indian importer claim GST credit from a carrier's 310 file?
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 310 Freight Receipt and Invoice (Ocean), version 004010, purpose and segment table (via the Stedi X12 reference)X12 publishes its standards under licence; structure, purpose statement, B3, L1 and L3 element positions, and code lists for elements 122, 128, 115 and 150 read from this reproduction of the 004010 standard. Accessed 13 November 2026.
- X12 - 310 Freight Receipt and Invoice (Ocean) exampleOfficial example of B3, N9, R4, L1 and L3 usage; its own totals are internally inconsistent, so it was used only for segment usage. Accessed 13 November 2026.
- eCFR - 46 CFR Part 520, Carrier Automated Tariffs (sections 520.3, 520.4 and 520.8)Publication duty, separate statement of terminal charges, 30-calendar-day rule for increases and the no-markup rule for pass-through charges read. Accessed 13 November 2026.
- eCFR - 46 CFR Part 530, Service Contracts (section 530.8)Filing within 30 days after the effective date and required terms read. Accessed 13 November 2026.
- eCFR - 46 CFR Part 541, Demurrage and Detention billing requirements (sections 541.5 to 541.8)Minimum invoice contents, consequence of missing information and 30-day issuance rule read. Accessed 13 November 2026.
- 46 U.S.C. 41104(a)(2), common carrier prohibited acts (Cornell LII copy)Subparagraph (A) on service not in accordance with published tariff or filed service contract rates read from the LII reproduction of the US Code. Accessed 13 November 2026.
- CBIC - Central Goods and Services Tax Rules, 2017, rule 36Sub-rule (4) on credit only for supplier-reported invoices shown in GSTR-2B read. Accessed 13 November 2026.
- GST Council - Notification No. 11/2017-Central Tax (Rate) dated 28 June 2017, and its Scheme of Classification of Services annexureHeading 9965 item (ii) transport of goods in a vessel at 2.5% central tax and Heading 9967 residual entry at 9%; code 996711 container handling read from the annexure. Accessed 13 November 2026.
- Supreme Court of India - Union of India v. Mohit Minerals Pvt. Ltd., Civil Appeal No. 1390 of 2022, judgment of 19 May 2022Court server unreachable when checked; holding on reverse-charge IGST on ocean freight in CIF imports confirmed through published BDO and KPMG summaries of the judgment. Accessed 13 November 2026.
- U.S. Customs and Border Protection (CBP) — Automated Commercial Environment (ACE)US federal system of record for import entries, ISF 10+2, and Form 7501.
- Federal Maritime Commission (FMC) — OSRA 2022 Demurrage & Detention Billing RulesUS statutory requirements for ocean carrier and MTO demurrage invoicing.
- CBIC ICEGATE — Indian Customs Electronic GatewayIndian customs filing portal for Bill of Entry, Shipping Bill, and duty ledger reconciliation.