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/Password—Invalid Username/Password - Missing required consignee fields when
ConsIDis not supplied (consname, consaddr, conscity, consst, conszip, conscont, consphone) - Missing required shipper fields when any partial shipper field is supplied (no
ShipIDdefault) - Missing
pucontactorclosetime
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) putimemust precedeclosetime(The pickup ready time must be before the cutoff time for this location)- Numeric format on
declval,codamt; integer onpieces/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)
billrefequal toponoor anyrefnoN— the highest-confidence "PO in the wrong field" errorbillrefnot in the live customer list —Invalid Line Drive Account Number!
Accessorials
- Code not in the live ldtn
keywordlist.xmlsnapshot (LGPU, LGDEL, RESIPU, RESIDEL, APPOINT, OVR20FT) —Invalid extra service code
Other XML endpoints
ratequote.xmlrequired fields, ZIP/date/money/class/dimension formats, line maximums, account code, and accessorial codes against CLI's rate-quote catalogfreightcharges.xml,xmlproalert.xml,xtransittime.xml, andprotracexml.htmdocumented 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=Yesrequireshazphone+HazPoisonrefnoNsupplied without matchingrefnotypeN—Blank 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/codcertwith non-Yes/No values- Nonblank
refnotypeNvalues — 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.
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 payloadNo request submitted yet.