Supply chain & logisticsSOC 2 · GDPR

The universal translator for a global supply chain.

Bills of lading, rate confirmations, customs forms, packing lists, proofs of delivery. From PDFs and faxes, to email attachments, to EDI. Bem turns the chaos of every forwarder and carrier into rigid, standardized data your TMS and ERP can act on. Multilingual by default.

Shipping with Fleetio and Alvys. First 100 function calls every month, free.

Documents we handle

Every paper artifact in a freight lane, structured.

Your supply chain runs on PDFs, scans, and emails from thousands of different forwarders and carriers. Bem is the translation layer that ingests any format and outputs the rigid EDI or JSON your downstream systems expect.

01 / 06
Bills of lading

Carrier BOLs, scans, faxes. Shipper, consignee, container ID, seal, weight, line items.

02 / 06
Rate confirmations

Rate cons from email, PDF, or attached image. Pickup, delivery, lanes, line-item pricing.

03 / 06
Customs forms

Commercial invoices, certificates of origin, HS codes, country of origin, declared values.

04 / 06
Packing lists

SKU-level visibility at point of origin. Quantities, weights, dimensions, container assignment.

05 / 06
Booking confirmations

Carrier bookings, vessel name, ETA, container counts. Match against your TMS booking request.

06 / 06
Proofs of delivery

Signed PODs, exception notes, OS&D reports. Hydrate against shipment IDs.

The workflow

Inbound packet to TMS-ready JSON.

Forward emails or upload massive PDF packets. Bem splits, classifies, extracts, enriches, and posts the structured result to your TMS, WMS, or ERP. Triggers events downstream for shipment created and customs ready.

BOL reconciliation
SPOTLIGHT

Match carrier BOLs against the booking request.

Bem reads the carrier BOL, matches it against the original booking confirmation in your TMS, and flags container counts, weights, or seal numbers that disagree. The exception lands in your queue with the confidence score and the source line.

Containers
Counts, IDs, seal numbers
Weights
Gross, net, declared
Lane
POL, POD, vessel, ETA
A worked example

A BOL, hydrated with codes.

POST /v3/workflows/bol.run200 OK · 2.7s
{
  "shipment_id": "SHP-8892",
  "shipper": "Yantian Logistics",
  "port_of_loading": {
    "name": "Yantian",
    "locode": "CNYTN"
  },
  "vessel": "MV EVER GIVEN",
  "containers": [
    { "id": "MSCU-771823", "seal": "S-104488" }
  ],
  "confidence": 0.961
}
Port name resolved to UN/LOCODE. Posts straight to CargoWise.
01
Classify

Identify document type and language. Routes Chinese commercial invoices to the APAC workflow, Spanish BOLs to LATAM.

02
Split

A 50-page packet usually contains a BOL, an invoice, a certificate of origin, and a packing list. Bem decomposes it automatically.

03
Extract

Layout-aware models pull tabular data (SKUs, weights) and key-value pairs (vessel, ETA, port codes) into your TMS schema.

04
Enrich

Fuzzy text becomes structured codes. Elec Parts becomes HS 8542.31. Yantian Port becomes UN/LOCODE CNYTN.

05
Payload Shaping

Push clean JSON or EDI to your TMS, WMS, or ERP. Wisetech CargoWise, SAP, Oracle, or a custom platform.

Customer · Fleetio

“Doesn't matter how much we send, it's going to come back in chunks that are easy to process. That's a lot of engineering time saved by us not having to develop that, not having to maintain that.”

65%
faster paper-invoice processing at Fleetio, accuracy held. Alvys uses the same workflow for rate confirmations.
SHIPPING WITH FLEETIO & ALVYS
Build in minutes

Build in minutes. Start for free.

Whether it's our no-code builder or APIs, ship your first workflow in minutes, not days. Get the first 100 function calls for free, then pay-as-you-go with graduated pricing.

bem for Supply Chain | BOLs, rate confirmations, customs | bem