CLI FACTS XML — Mock API Test Panel

Build and validate tbolentry4.xml requests against a mock that mirrors CLI's wire shape, plus exercise the other published XML endpoint request shapes. BOL and rate-quote hard errors cite CLI's published catalog where one is available; every accessorial code is checked against a snapshot of the live ldtn keywordlist.xml captured 2026-04-17.

What this mock checks — and what it cannot

Hard errors (mock returns success=No; the live CLI tenant rejects the same request with the same wire string):

Authentication & required fields

  • Missing UserName / PasswordInvalid Username/Password
  • Missing required consignee fields when ConsID is not supplied (consname, consaddr, conscity, consst, conszip, conscont, consphone)
  • Missing required shipper fields when any partial shipper field is supplied (no ShipID default)
  • Missing pucontact or closetime

Format validation

  • Email format on shipemail, consemail, puemail, email1, email2
  • Phone format on shipphone, consphone, conssecphone, puphone, hazphone
  • 2-letter US state code on shipst, consst
  • 5-digit or 5+4 ZIP on shipzip, conszip
  • HHMM 4-digit time on putime, closetime (with hour 00-23, minute 00-59)
  • MM/DD/YYYY date on pudate, plus past-date rejection (Invalid pickup date)
  • putime must precede closetime (The pickup ready time must be before the cutoff time for this location)
  • Numeric format on declval, codamt; integer on pieces / pallets; positive number on dimensions
  • NMFC freight class — values must be in the published class set (50, 55, 60, 65, 70, 77.5, 85, 92.5, 100, 110, 125, 150, 175, 200, 250, 300, 400, 500); zero-padded forms accepted
  • Weight max 99,999 lbs (Invalid weight entry! The maximum value is 99,999)
  • Pallets count must not exceed pieces count per line (Handling units may not exceed pieces (Line N))

Billref — validated against the live LDT customer code list (snapshot 2026-04-27, 1,113 codes)

  • billref equal to pono or any refnoN — the highest-confidence "PO in the wrong field" error
  • billref not in the live customer list — Invalid Line Drive Account Number!

Accessorials

  • Code not in the live ldtn keywordlist.xml snapshot (LGPU, LGDEL, RESIPU, RESIDEL, APPOINT, OVR20FT) — Invalid extra service code

Other XML endpoints

  • ratequote.xml required fields, ZIP/date/money/class/dimension formats, line maximums, account code, and accessorial codes against CLI's rate-quote catalog
  • freightcharges.xml, xmlproalert.xml, xtransittime.xml, and protracexml.htm documented parameter presence and format checks; these docs do not publish endpoint-specific error catalogs, so their mock errors cite the endpoint docs instead

Per-line

  • Missing pieces or pallets, weight, descr, class
  • Non-integer pieces / pallets; non-numeric weight / dimensions; non-NMFC class
  • Incomplete dimension triplet (any one of length/width/height without all three)
  • More than 8 freight lines (CLI documents lines 1 through 8)

Hazmat & references

  • hazmatN=Yes requires hazphone + HazPoison
  • refnoN supplied without matching refnotypeNBlank reference number type

Warnings (mock returns success=Yes; cosmetic / non-CLI-cataloged):

  • Mail flags (bolmails, delmailc, etc.) with non-Yes/No values — CLI silently coerces; we surface for cleanliness
  • nopickup / codcert with non-Yes/No values
  • Nonblank refnotypeN values — CLI publishes an invalid-reference-type error, but the supplied docs do not publish the allowed type list
  • Request body was raw XML rather than form-urlencoded with xmlreq=

What the mock CANNOT validate (CLI's server runs these checks against tenant state we cannot replicate):

  • Account standing (suspended / past-due debtors)
  • Lane serviceability, service-type availability, accessorial geography, and weight/dim caps per lane
  • Tariff effective dates, discounts, terminal/SCAC assignment, and rated quote or freight-charge totals
  • Pickup time-of-day cutoffs ("It is too late to request a same day pickup")
  • Pickup advance-notice window ("You have not given us enough advance notice")
  • Time-window-too-narrow ("The time window between the ready time and close time is insufficient")
  • Hazmat classification rules / poison-of-inhalation determination
  • COD min / max thresholds and declared-value min / max thresholds
  • BOL number duplicate / pre-numbered conflicts
  • ZIP-vs-state cross-check ("The shipper zip doesn't matches the shipper state" — we don't ship a full US ZIP database)
  • Whether a pro number, BOL number, tracking link, freight-charge lookup, transit lane, or shipment-alert subscription actually exists in CLI tenant state

Bottom line: If this mock returns success=No, the live CLI tenant will also reject the request — and it will emit the same wire bytes for the error. If this mock returns success=Yes, the request has cleared every documented rule we can verify, but the tenant-state checks above can still cause the live request to fail. Always coordinate any final live validation against tbolentry4.xml with Line Drive (tallen@, jloughridge@, mallen@linedrivetrucking.com) so test shipments can be identified and disposed of on our side.

Run against textarea body:
Load example into textarea:

Request body

Edit the textarea, then click any "Run" button above. POSTed as form-urlencoded.

CLI-shape response

Run a request to see the mock CLI response here.

Lint report

JSON breakdown of every rule we checked against your payload
No request submitted yet.