Carrier’s official API

Total Transportation & Distribution API: integration guide

Total Transportation & Distribution (TTD) is an LTL carrier that runs its operations on the FACTS freight system from Carrier Logistics Inc. (CLI). Its customer API is the standard FACTS XML set: rate quotes, transit times, bill of lading and pickup entry, tracking by PRO number with BOL and delivery-receipt images, and shipment email alerts. It is aimed at shippers, 3PLs and TMS vendors who already ship with the carrier.

This guide covers Total Transportation & Distribution’s own API. Credentials come from Total Transportation & Distribution, not from FreightAPIs, and we are not affiliated with them.

Want one API key for carrier terminals, NMFC and ports instead? FreightAPIs API docs →

Interface XML over HTTP (query-string GET or form POST)Endpoints 7Reviewed 2026-10-09Open in ChatGPT↗Open in Claude↗

At a glance

CarrierTotal Transportation & Distribution
TypeLTL carrier
InterfaceXML over HTTP (query-string GET or form POST)
AuthenticationFACTS web login (user ID and password) sent with every request
CapabilitiesRate quote, Transit time, Bill of lading & pickup request, Tracking, Documents (BOL & POD images), Shipment email alerts, Accessorial code list

Getting access

  • There is no public developer portal. The carrier gives API documentation to customers on request, so contact your Total Transportation sales or customer service representative.
  • You need a customer web login. The API authenticates with the same user ID and password you use on the carrier's FACTS web tracking site.
  • The carrier also gives you the account-specific gateway URL to call. Do not copy one from a third-party example.
  • The documentation does not mention fees, rate limits, a test environment or an approval process.

Authentication

FACTS web login (user ID and password) sent with every request.

  • Send the credentials as xmluser and xmlpass. The BOL function also accepts UserName and Password.
  • There is no token, session or expiry. Each call carries the credentials.
  • GET puts the credentials in the URL, where logs can capture them. For BOL entry the documentation strongly recommends POST, with the request sent as one XML document in a form field named xmlreq.
  • Authentication failures come back as XML with success = No and an errormessage (for example "Invalid Username/Password"), not as an HTTP error.
  • The transit time function is documented without any credential parameters.

Endpoints

Rate quote

Send origin and destination ZIPs and one or more freight lines to get an itemized quote with line charges, discount, fuel surcharge, accessorials, a total and transit days.

GETratequote.xmlReturns a priced LTL quote as XML (send xmlv=yes).
Key inputsxmluser, xmlpass, xmlv=yesvozip, vdzipwpieces[n], wpallets[n], wweight[n] (pounds), vclass[n]wlength[n], wwidth[n], wheight[n] (optional)shipdate (MM/DD/YYYY), vbterms (P or C, defaults to prepaid)codamt, declval, quotenumber=yesAccessorial codes as parameters set to yes
Key outputsratequoteline entries (chargedesc, weight, dimweight, class, rate, charge)quotetotal, totalweight, totalpieces, totalpalletsbusdaysquoteversion, quotedatetime

Transit time

Look up transit time between two ZIP or postal codes for a given pickup date. The documentation lists only the inputs; it does not describe the response fields.

GETxtransittime.xmlReturns transit time between a shipper and consignee ZIP.
Key inputsshipzipconszippudate (optional; defaults to today)

Bill of lading & pickup request

Create a BOL and book the pickup in one call, or set nopickup to Yes for a BOL only. A successful response returns the PRO and tracking numbers and links to the BOL PDF and shipping labels.

POSTtbolentry4.xmlCreates a bill of lading and, unless nopickup=Yes, a pickup request.
Key inputsxmlreq (whole <bol> document) or individual parameters with xmlv=yesShipper fields shipname, shipaddr, shipcity, shipst, shipzip, shipcont, shipphone (default to your account location)ConsID, or consname, consaddr, conscity, consst, conszip, conscont, consphonepieces1, weight1, descr1 (required) plus pallets1, class1, density1 (pcf), length1, width1, height1, hazmat1 — lines 1 to 8pucontact and closetime (HHMM) required; pudate, putime, puphone, puemail, punotes optionalbolno, pono, billref, refno1 / refnotype1, declval, codamt, spcinstrhazphone and HazPoison when a line is hazardousaccessoriallist (comma-separated codes)
Key outputssuccess (Yes/No), errors > errormessagebol > pronumber, trackingnumber, quotenumber, referencenumberbolline entriesbollink, labellinkquotetotal

Tracking

Look up a shipment by PRO number. The response covers origin and destination terminals, counts and weight, delivery status and date, receiver, a status line and history events.

GETprotracexml.htmReturns tracking detail for one PRO number (parameter pronum).
Key inputsxmluser, xmlpasspronum
Key outputspronumb, billno, pono, shipdateorigterm, destterm, pallets, pieces, weightprodelivered, deldate, deltime, receivedby, statusshiphists, images

Documents (BOL & POD images)

Document images come back inside the tracking response, not from a separate call. Each image entry has a type code (B = bill of lading, P = delivery receipt) and a URL to the file.

GETprotracexml.htmSame tracking call; read the images block for BOL and POD links.
Key outputsimagetypecodeimagetypedescimageurl

Shipment email alerts

Subscribe email addresses to status alerts for a list of PRO numbers. The alerts arrive by email.

GETxmlproalert.xmlRegisters email alerts for the given PROs and alert types.
Key inputsprostypes: SHIP, APPT, OFD, PODemailxmluser, xmlpass
Key outputssuccessproalerts > proalert (pronumber, alerttype, emailto)

Accessorial code list

Returns the accessorial keywords your account can use on quotes and BOLs. Codes are carrier-specific on FACTS, so fetch this list rather than reusing codes from another carrier.

GETkeywordlist.xmlLists valid accessorial codes and descriptions.

Example request

Bill of lading with pickup (XML POST)bash
# YOUR_GATEWAY_URL is the account-specific base URL the carrier gives you. curl -X POST "YOUR_GATEWAY_URL/tbolentry4.xml" \ --data-urlencode 'xmlreq=<bol> <UserName>YOUR_WEB_USER</UserName> <Password>YOUR_WEB_PASSWORD</Password> <consname>AAA Manufacturing</consname> <consaddr>100 Main Street</consaddr> <conscity>Crystal Lake</conscity> <consst>IL</consst> <conszip>60012</conszip> <conscont>Chris</conscont> <consphone>800-222-3333</consphone> <pieces1>1</pieces1> <pallets1>1</pallets1> <weight1>800</weight1> <class1>085</class1> <descr1>Engine block</descr1> <accessoriallist>LIFT</accessoriallist> <pucontact>Sam</pucontact> <putime>1100</putime> <closetime>1700</closetime> </bol>'

Shipper fields are omitted here, so they default to the location on your account. Check success in the <response> and save pronumber, bollink and labellink.

Integration notes

  • Always check the success element. Errors come back as normal XML with success = No and errormessage entries.
  • The quote call indexes lines with brackets (wweight[1], vclass[1]). The BOL call uses plain suffixes (weight1, class1). The BOL call allows up to 8 lines.
  • If you send one dimension for a BOL line, send all three. Lengths are in inches, weights in pounds, density in pounds per cubic foot.
  • class1 does not appear in the BOL variable table, but every example sends it. Send it anyway.
  • Pickup times are 24-hour HHMM and dates are MM/DD/YYYY. URL-encode the slashes on GET requests.
  • The BOL text names tbolnav4.xml as the function, but all examples call tbolentry4.xml. Use tbolentry4.xml.
  • Accessorial codes differ from carrier to carrier even on the same FACTS platform. Load them from keywordlist.xml.
  • Only delivered shipments carry a POD image. Check prodelivered before looking for imagetypecode P, and match images by type code, not position.

FAQ

Does Total Transportation & Distribution have an API?

Yes. It offers XML APIs for rate quotes, transit times, BOL and pickup entry, PRO tracking with document images, and shipment email alerts. Documentation is shared with customers on request.

How do I get Total Transportation API access?

Ask your Total Transportation sales or customer service rep. The API uses your customer web login and an account-specific gateway URL the carrier provides.

Can I track Total Transportation shipments by PRO number via API?

Yes. The tracking call takes a PRO number in the pronum parameter and returns status, delivery details, history events and links to BOL and delivery-receipt images.

Does the Total Transportation API return transit times?

Yes. The rate quote returns busdays, and a separate transit time call takes shipzip, conszip and an optional pickup date.

On FreightAPIs

Official resources

Written from Total Transportation & Distribution’s published API documentation and last checked 2026-10-09. FreightAPIs is not affiliated with Total Transportation & Distribution; endpoints and access rules can change, so confirm details in the carrier’s own documentation before going live.

Other carrier API guides