Extract data from freight invoices
A freight invoice is the carrier's bill for moving a shipment, and it is the document a logistics team audits line by line before it pays, because freight bills are wrong often enough that freight-audit is its own industry. Less-than-truckload carriers such as Old Dominion Freight Line and Estes Express invoice against a PRO number and a SCAC that identify the shipment and the carrier; parcel carriers bill weekly across hundreds of tracking numbers; an international forwarder issues a bill that follows the EN 16931 semantic invoice terms line for line. The charge that shows up is rarely a single number: a base freight charge sits beside a fuel surcharge that moves with a published index, an accessorial for a liftgate or a residential delivery, and a dimensional-weight adjustment that reprices the shipment on volume rather than scale weight.
Auditing that bill means catching the discrepancies. Billed weight has to match the bill of lading, accessorials have to correspond to services that were actually performed, the rate has to reflect the negotiated tariff, and the PO reference has to tie the charge back to a shipment the shipper authorized. When a carrier bills 1,240 pounds against a BOL that reads 980, it has overcharged, and a fuel surcharge computed off the wrong week's index compounds across thousands of shipments. Payment terms, the carrier's tax ID, and the remittance details govern how and when the bill settles.
Talonic reads the freight invoice and returns the carrier and payer, the SCAC and PRO number, the pickup and delivery dates, the billed weight and unit, and a charges array that separates base freight from fuel surcharge and accessorials, alongside the net, tax, and total. A freight bill of $3,180 in USD against PRO 771-4482, pickup 2026-04-16 and delivery 2026-04-18, lands as structured fields a freight-audit process can check against the rate agreement, so an overcharge is caught before the invoice is paid.
What gets extracted from freight invoices
How extraction works for freight invoices
Freight bills arrive from carrier billing systems, third-party freight-audit platforms, and forwarder TMS exports, so a US LTL bill built around a SCAC and a PRO number looks nothing like a European forwarder invoice keyed to EN 16931 business terms. Talonic classifies the invoice and maps it to the freight-invoice model in the Field Registry, which holds the carrier, payer, shipper, and consignee identity next to the shipment references and the charges breakdown. Base freight, fuel surcharge, and each accessorial are kept as their own rows in a charges array rather than collapsed into one total, because a freight-audit process has to test each one against the rate agreement. Billed weight and its unit are captured so the bill can be checked against the bill of lading, the SCAC and PRO number tie the charge to the shipment, and the net, tax, and total are reconciled so a bill that does not add up is flagged. Every value returns with a confidence score and a region pointer back into the source PDF under DIN SPEC 91491, so a freight auditor can verify a surcharge or the billed weight against the document before releasing payment.
Sample extraction
A US LTL freight invoice in USD with a fuel surcharge and one accessorial
{
"document_number": "FB-2026-55021",
"document_date": "2026-04-20",
"due_date": "2026-05-20",
"currency": "USD",
"purchase_order_reference": "PO-88231",
"supplier.name": "Old Dominion Freight Line",
"supplier.tax_id": "US54-0743217",
"buyer.name": "Meridian Retail Inc.",
"shipper.name": "Cascade Components LLC",
"consignee.name": "Meridian DC 3",
"carrier.scac_code": "ODFL",
"pro_number": "771-4482",
"pickup_date": "2026-04-16",
"delivery_date": "2026-04-18",
"weight_actual": 1240,
"weight_unit": "LB",
"freight_charge": 2410,
"charges": [
{
"charge_type": "Base freight",
"charge_amount": 2410
},
{
"charge_type": "Fuel surcharge",
"charge_amount": 470
},
{
"charge_type": "Liftgate delivery",
"charge_amount": 100
},
{
"charge_type": "Dimensional-weight adjustment",
"charge_amount": 200
}
],
"total_amount_without_vat": 3180,
"tax_amount": 0,
"total_amount": 3180,
"amount_due": 3180,
"payment_terms": "Net 30"
}Frequently asked
What are accessorial charges on a freight invoice?
Accessorials are the charges beyond the line haul for work the carrier did on top of moving the freight: a liftgate at a site with no dock, a residential delivery, a reweigh, a dimensional-weight adjustment. Each comes back as its own row in a charges array rather than inside one lump total, so every one can be tested against the rate agreement before payment.
How is a fuel surcharge calculated, and how do you check it?
A fuel surcharge is a percentage or per-mile amount tied to a published diesel index, reset weekly, so the same lane bills a different surcharge month to month. It is captured as its own value beside the base freight, which is what makes an overcharge visible: a surcharge struck off the wrong index week reconciles against neither the rate agreement nor the stated total.
How does it support freight-audit against the rate agreement?
Billed weight and its unit are captured for comparison against the bill of lading, the SCAC and PRO number tie the charge to a specific shipment, and each charge row is exposed individually, so an overcharge (a weight that does not match the BOL, or a surcharge off the wrong index) is visible before payment.
Does it handle both US LTL bills and EN 16931 e-invoices?
Both are classified and mapped to the same freight-invoice model. A US LTL bill leans on SCAC, PRO, and accessorials; a European forwarder invoice carries the EN 16931 business terms and a VAT breakdown, which are captured when present.
What fields are extracted from freight invoices?
Talonic returns freight invoices as schema-validated, typed fields. Common fields include Invoice Number, Invoice Date, Carrier, SCAC, and more, each normalized (dates to ISO 8601, amounts as numbers) and mapped to a stable key so the output shape stays the same across layouts.
How accurate is extraction from freight invoices, and how is confidence reported?
Every extracted cell carries a confidence score from 0.0 to 1.0 and a provenance pointer back to the source page and region, so low-confidence values can be reviewed against the original before the data is trusted downstream. There is no single accuracy number: confidence is reported per field so you can gate on it.
Can I use freight invoices extraction in production?
Yes. The same engine behind this guide is available as a production REST API and Node SDK with sync, async, and streaming modes, schema versioning, signed webhooks, and EU-resident processing. Start free with an API key, then scale on usage-based pricing.
What does it cost to extract data from freight invoices?
There is a free tier for prototyping and agent evaluation with no credit card. Paid usage is credit-based at 1,000 credits per euro: page ingestion is 100 credits per page and registry-resolved queries are free. See talonic.com/pricing for current rates.
Ready to extract from your own freight invoices?
- GDPR
- HIPAA
- ISO 27001 / 42001 aligned
- DIN SPEC 91491 co-author
- EU-resident infrastructure
Author note
Reviewed by Talonic engineering · last reviewed 2026-07-06