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 310 Ocean Freight Receipt and Invoice: Auditing Carrier Charges

By Vikasraj YadavPublished 9 min read

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 — 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 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.

At a glance · Quick answer

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.

Common ocean surcharges and the 004010 special charge codes a carrier may use for them
Charge on the contractX12 004010 code and official nameUsual rate basisAudit note
Basic ocean freightOften no code; described in L1-12PA per container or WMMatch to the contract rate for the commodity and port pair
Bunker or fuel adjustmentBUA Bunker Adjustment; BU2 and BU4 for 20 and 40 foot containersPARate depends on the period table that applies on the sailing date
Currency adjustmentCUF Currency Adjustment Factor; CUA Currency AdjustmentPercent of freight or PACheck the base it is applied to
Terminal charges at either endTER Terminal Charge; CTC Container Service Charge USA/CanadaPANo 004010 code is named terminal handling charge for ocean, so map by carrier guide
Documentation and bill of lading feeDOC Documentation ChargeLS per bill of ladingOne per bill unless the contract says otherwise
Congestion surchargeCON Congestion SurchargePATest the publication and effective dates
WharfageWFG Wharfage; WCT Wharfage - ContainerPAOften 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.

  1. 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. 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.
  3. 9 Nov, 15:30 IST: accounts payable releases payment run PR-1146, including the $5,160.00 to the carrier.
  4. 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.
  5. 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.

Records behind a 310 audit, where each lives, who keeps it current and who signs off a dispute or exception
RecordWhere it livesKept current bySigns off exceptions
Service contract, amendments and rate sheetsContract repository and freight audit rate engineOcean procurementHead of ocean procurement
Tariff references for "subject to tariff" chargesCarrier's published tariff, captured by versionOcean procurement analystHead of ocean procurement
Bunker and currency tables by periodRate engine, loaded from carrier noticesFreight audit analystFreight audit lead
Booking, containers and actual sailing dateTransport management system with carrier status feedImport or export logistics teamLogistics manager
310 files, 997 results and mapping versionEDI translator and integration platformEDI analystIntegration lead
Dispute case and carrier responseFreight audit case logFreight audit analystFreight audit lead, with AP manager for payment holds
Payment hold and releaseERP accounts payableAP clerkAP 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.

Worked ocean charge audit: a US importer's 310 in dollars and an Indian exporter's origin-charge tax invoice in rupees
LineUS 310 billed ($)US expected ($)India agent invoice billed (₹)India expected (₹)
Ocean freight, 2 x 40 ft2,900.002,900.00Not on this invoice (paid by buyer)Not applicable
Bunker adjustment, 2 containers820.00760.00Not applicableNot applicable
Terminal handling, 2 containers790.00 (destination)790.0035,600 (origin, 2 x 17,800)33,000 (2 x 16,500)
Bill of lading or documentation fee150.00 (twice)75.004,5004,500
Congestion surcharge500.000.00 (inside 30-day notice)Not applicableNot applicable
GST at 18% on local chargesNot applicableNot applicable7,2186,750
Invoice total5,160.004,525.0047,31844,250
Disputed amount635.003,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.

Which 310 audit tasks run as fixed checks and which ones a person decides with software help
TaskHandled asWho actsEvidence kept
Recomputing each L1 line as rate times container countFixed checkAudit engineRate, quantity, variance
Picking the bunker table by actual sailing dateFixed checkAudit engine, using the milestone feedSailing event and table version
Flagging a second DOC line on one bill of ladingFixed checkAudit engineBoth line numbers
Testing a new surcharge against its publication dateFixed check with a stored tariff dateAudit engine; analyst loads the datePublication and sailing dates
Reading an unfamiliar L1-12 description such as "EMERG RISK SC" and proposing a charge typeSoftware suggestionFreight audit analyst confirms the mappingProposal, analyst ID, mapping version
Judging whether a carrier notice meets the contract's notice clausePersonOcean procurementNotice copy and contract clause
Accepting a partial credit to close a disputePersonFreight audit lead with AP managerSettlement 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.

Auditing an X12 310 ocean invoice from receipt to payment or dispute Step 1, Receive: Invoice 310 identified and linked. 997 confirms syntax only; B3 and N9 link the booking; Copy or invoice flag checked. Step 2, Map charges: L1 codes and text to charge types. L1-08 plus L1-12 key; Rate basis must agree; Unmapped lines held. Step 3, Rate and match: Contract rate on sailing date. Containers from N7; Bunker table by sailing; Tariff 30-day test. Step 4, Pay or dispute: Line-level approval and holds. Tolerance $5 or 0.5%; Hold while disputed; India: match tax invoice. Auditing an X12 310 ocean invoice from receipt to payment or dispute Each L1 line is mapped, rated on the sailing date and matched to shipment facts before AP pays 1 · RECEIVE Invoice 310 identified and linked • 997 confirms syntax only • B3 and N9 link the booking • Copy or invoice flag checked 2 · MAP CHARGES L1 codes and text to charge types • L1-08 plus L1-12 key • Rate basis must agree • Unmapped lines held 3 · RATE AND MATCH Contract rate on sailing date • Containers from N7 • Bunker table by sailing • Tariff 30-day test 4 · PAY OR DISPUTE Line-level approval and holds • Tolerance $5 or 0.5% • Hold while disputed • India: match tax invoice

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.

Carrier 310 onboarding checklist for freight audit and EDI teams, with the proof each step should leave
StepWhat to agree or buildOwnerProof before go-live
Purpose flagsHow the carrier marks an invoice 310 versus a bill of lading copyEDI analystWritten in the carrier guide; tested on samples
Identifier mappingInvoice, bill of lading and contract numbers to B3 and N9 fieldsEDI analystEvery test file links to a booking
Charge mappingL1-08 and L1-12 pairs to contract charge types and basesFreight audit analystNo unmapped lines in the last two weeks
Rate loadingContract, amendments, bunker and currency tables with datesOcean procurementRates reproduce three past invoices exactly
Sailing date feedActual departure from status messages tied to each bookingLogistics systemsSailing date present on 99% of test bookings
Tolerances and holdsLine tolerance, payment hold on any open disputeFreight audit lead with AP managerHold tested in the ERP
India tax invoice matchAgent tax invoice to 310 or booking; GSTR-2B checkIndirect tax teamCredit taken only on matched invoices
Dispute routeCarrier contact, dispute window and evidence formatOcean procurementFirst 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.

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 310 Ocean Freight Receipt and Invoice: Auditing Carrier Charges · 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 310 freight receipt invoice in logistics & supply chain.

What is the difference between an EDI 310 and an EDI 210?
The 210 is the motor carrier freight invoice, sent separately from the bill of lading. The 310 is the ocean equivalent, but it also carries the carrier's bill of lading data and can be sent as a receipt, a verification copy, manifest information or an invoice, so the same shipment may produce several 310 files.
Which 310 fields does a freight audit need first?
Start with B3-02 invoice number, B3-03 shipment identification, usually the bill of lading number, B3-07 net amount due and B3-11 carrier code, then the N9 contract reference, the R4 ports, the N7 containers and every L1 line's rate, rate qualifier, charge, special charge code and description.
How should bunker adjustment lines on a 310 be checked?
Map the line, often coded BUA, BU2 or BU4, to the contract's bunker clause, pick the table that applies on the vessel's actual sailing date rather than the billing date, and multiply by the container count from the N7 segments. A table chosen by invoice date is the most common bunker error.
Can an Indian importer claim GST credit from a carrier's 310 file?
No. Input tax credit needs a GST tax invoice from the supplier's Indian registration, reported by the supplier and shown in the recipient's GSTR-2B as CGST Rule 36(4) requires. The 310 is useful for checking rates and quantities, but the credit follows the tax invoice and any credit note issued against it.

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.