Carrier’s official API

CEVA Logistics API: integration guide

CEVA Logistics gives its US domestic ground customers three integration points: a SOAP rate service hosted on its ONEView customer portal, an XML order interface into its Matrix TMS that returns a house bill number and a BOL PDF, and a REST Track & Trace API. The services are aimed at shippers, 3PLs and TMS vendors that already have a CEVA customer profile, especially for heavyweight and white-glove home delivery freight.

This guide covers CEVA Logistics’s own API. Credentials come from CEVA Logistics, not from FreightAPIs, and we are not affiliated with them.

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

Interface SOAP/XML (SOAP 1.1, document/literal) · REST with XML request body (order) · REST/JSON (tracking)Endpoints 5Reviewed 2026-10-09Open in ChatGPT↗Open in Claude↗

At a glance

CarrierCEVA Logistics
TypeHeavyweight freight forwarder & LTL carrier
InterfaceSOAP/XML (SOAP 1.1, document/literal), REST with XML request body (order), REST/JSON (tracking)
AuthenticationSOAP credentials in the request body (rating); OAuth 2.0 client credentials bearer token (order and tracking)
CapabilitiesRate quote, Transit time, Order creation & BOL, Shipment tracking, Proof of delivery & invoices

Getting access

  • These APIs are for existing CEVA customers. The rate service documentation and the order schema are provided to customers and authorized trading partners on request; the order XSD is marked for CEVA and authorized trading partners only.
  • For rating, ask your CEVA account representative for ONEView web-service credentials: a user name, password and a customer Profile Key. The service levels you get back are driven by how that customer profile is configured.
  • For order creation, your CEVA representative also has to issue the Matrix identifiers that go in request headers (business unit, customer ID and cost center code).
  • The REST APIs sit behind CEVA's API gateway. You register on CEVA's developer portal, create an application to obtain OAuth client credentials, and subscribe to the APIs you need (for example Track & Trace).
  • The documentation does not mention pricing, rate limits or a published sandbox. Alaska, Hawaii, Puerto Rico and Canada lanes are quoted by a CEVA representative, not by the rate service.

Authentication

SOAP credentials in the request body (rating); OAuth 2.0 client credentials bearer token (order and tracking).

  • Rating: every request carries a Header element inside the RateRequest with UserName, Password and ProfileKey. UserType is optional and can be left empty. There is no token exchange for the SOAP service.
  • Order and tracking: exchange your client_id and client_secret for an access token with grant_type=client_credentials (form-encoded POST to the gateway token endpoint), then send it as Authorization: Bearer YOUR_TOKEN.
  • Bearer tokens are valid for about one hour (expires_in 3600). Cache the token, refresh it shortly before expiry, and fetch a new one on any 401.
  • Order calls also need Matrix routing headers: MX-BusinessUnitId, MX-CustomerId and MX-CostCenterCode (from CEVA), plus MX-Source (B2B_API_SYNC), MX-SourceId (your own order reference), MX-SchemaVersion (1.4) and MX-TradingPartner (CEVA_USDOM for US domestic).

Endpoints

Rate quote

Send origin and destination ZIP codes, package lines and any special services; CEVA returns one priced result per service level configured on your profile. Each service level carries an itemized charge list that ends with a Total charge.

SOAPGetCEVARateQuickRate service: returns charges and billing weight for each configured service level.
Key inputsHeader: UserName, Password, ProfileKey (UserType optional)FromZip, ToZip (required)Packages > Package: Quantity, Weight (lbs), Length, Width, Height (inches) — all requiredServiceTypes > ServiceType: ServiceTypeCode with PickUP and Delivery set to Y or NInsurance (optional declared amount), PeakSeason (Y/N)
Key outputsOrigin / Destination: Type, Code (CEVA station), City, StateServiceLevels > ServiceLevel: Code, Name, BillingWeight, BillingWeightUnit (LBS)Charges > Charge: ChargeCode (Freight, Fuel, Liftgate, Delivery Beyond, California Compliance … Total), Amount, CurrencyCodeNotes (standard CEVA terms text)

Transit time

A second operation takes exactly the same request and adds a transit-day estimate to the rate response. Use it instead of GetCEVARate when you need both price and days.

SOAPGetCEVARateTransitSame as GetCEVARate, plus TransitDays in the response.
Key outputsTransitDaysAll RateResponse fields (Origin, Destination, ServiceLevels, Notes)

Order creation & BOL

Post a B2BMatrixOrder XML document (schema version 1.4) to create a shipment in CEVA's Matrix TMS. The JSON response returns the CEVA house bill number and the BOL as a Base64-encoded PDF. The same document type cancels or replaces an order through DocumentHeader.PurposeCode.

POSTMatrix Order (B2BMatrixOrder v1.4)Create, cancel or replace an order; returns HAWB_NUMBER and BOL file.
Key inputsDocumentHeader: DocumentID, PurposeCode (00 original, 01 cancel, 05 replace), PartnerCode, WeightUOMTypeCode (Lbr | KGM), VolumeUOMTypeCode (FTQ)StartDateTime, EndDateTime, ShipDateTime (required pickup window)ScheduleType (SH), QuantityQualifier (S), ShipFromAlias / ShipToAlias (PERS_ADDR)OrderEntity with PartyQualifier SF / ST / BT, address, ContactName, ContactPhoneOrderReference: ReferenceQualifier (PO, BLN, PT, VST …) + ReferenceNumberOrderPackage: Quantity, GrossWeight, Collapsable (required), PackageMeasure (LEN / WID / HGT)OrderService > ServiceCode (e.g. NSR, IDD, ROC, WGD)
Key outputsBDIDocumentResponseContext.HAWB_NUMBER (CEVA house bill)BDIDocumentResponseFile[]: FILE_NAME, FILE_DESCRIPTION (BOL), FILE_TYPE (PDF), FILE (Base64)APIResponse.ExceptionContext (populated on errors)

Shipment tracking

Look up a shipment by its house bill number to get a summary, the latest milestone, events grouped by location, exceptions and shipment details. Delivery is shown by a POD milestone event, which can include the signer's name.

GETTrack & Trace: shipments/{houseBill}/{houseBill}Returns status, milestone history and exceptions for one house bill.
Key inputsHouse bill number (HAWB_NUMBER from the order response), repeated in both path segments
Key outputssummary: house_bill_number, shipment_id, latest_milestone (code, progress, arrival_local_date), arrival_dates (scheduled / estimated / actual), cancelledevent_history[]: location + events[] (name, local_date, milestone_code, signature)exception_history[]: exception_description, active, creation_dateshipment_details: service_level, added_services, chargeable_weight, references[]

Proof of delivery & invoices

No separate POD image or invoice API is documented. Delivery confirmation and the signer name come from the tracking response; POD scans and invoices are obtained through your CEVA representative or the customer portal.

GETTrack & Trace: shipments/{houseBill}/{houseBill}Read the POD milestone event and its signature field.
Key outputsmilestone_code = PODsignaturesummary.latest_milestone.code = Delivered

Example request

Rate quote with transit days (GetCEVARateTransit)xml
<!-- POST to the QuickRate service with SOAPAction: http://tempuri.org/IQuickRateService/GetCEVARateTransit Content-Type: text/xml --> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/" xmlns:typ="http://www.cevalogistics.com/types"> <soapenv:Header/> <soapenv:Body> <tem:GetCEVARateTransit> <tem:request> <typ:Header> <typ:UserName>YOUR_USERNAME</typ:UserName> <typ:Password>YOUR_PASSWORD</typ:Password> <typ:UserType/> <typ:ProfileKey>YOUR_PROFILE_KEY</typ:ProfileKey> </typ:Header> <typ:FromZip>77032</typ:FromZip> <typ:ToZip>30301</typ:ToZip> <typ:ServiceTypes> <typ:ServiceType> <typ:ServiceTypeCode>LiftGate</typ:ServiceTypeCode> <typ:PickUP>N</typ:PickUP> <typ:Delivery>Y</typ:Delivery> </typ:ServiceType> <typ:ServiceType> <typ:ServiceTypeCode>Res-Mil-School</typ:ServiceTypeCode> <typ:PickUP>N</typ:PickUP> <typ:Delivery>Y</typ:Delivery> </typ:ServiceType> </typ:ServiceTypes> <typ:Packages> <typ:Package> <typ:Quantity>1</typ:Quantity> <typ:Weight>150</typ:Weight> <typ:Length>48</typ:Length> <typ:Width>40</typ:Width> <typ:Height>36</typ:Height> </typ:Package> </typ:Packages> </tem:request> </tem:GetCEVARateTransit> </soapenv:Body> </soapenv:Envelope>

Weight is in pounds and dimensions in inches. The response lists one ServiceLevel per level on your profile, each ending in a Total charge, plus TransitDays.

Integration notes

  • The rate service and the order API use different codes for the same accessorial. Rating uses ServiceTypeCode values such as Inside, Room-of-Choice and White-Glove; orders use OrderService codes such as IDD, ROC and WGD. Keep a mapping table.
  • If you send a ServiceType, both PickUP and Delivery must be set to Y or N. Every Package field (Quantity, Weight, Length, Width, Height) is required.
  • Which service levels come back depends on your customer profile, not on the request. Codes vary by profile (for example RESI, 2ND, THRE, WG, NOSI), so do not hard-code a single level.
  • Billed weight can exceed actual weight because CEVA rates on dimensional weight. Use the returned BillingWeight rather than recomputing it.
  • The house bill number (HAWB_NUMBER) is the key for tracking and support. It is only issued by the order call, so store it alongside your own PO or BOL reference.
  • The order response returns the BOL as a Base64 string inside JSON, even though the request body is XML. Decode it to get the PDF.
  • Free-text order fields such as EntityName, Address and ContactName are best wrapped in CDATA so ampersands and other XML characters do not break the document.
  • Tracking timestamps should be treated as UTC and converted for display. Events are grouped by location, so flatten and sort them yourself to build a timeline.

FAQ

Does CEVA Logistics have an API for LTL rate quotes?

Yes. CEVA offers a SOAP QuickRate service with two operations, GetCEVARate and GetCEVARateTransit. You need ONEView web-service credentials and a customer Profile Key from your CEVA representative.

How do I authenticate with the CEVA API?

The rate service takes UserName, Password and ProfileKey inside the SOAP request. The REST order and tracking APIs use an OAuth 2.0 client-credentials bearer token that lasts about one hour.

How do I track a CEVA shipment through the API?

Call the Track & Trace API with the CEVA house bill number returned by the order call. The response includes the latest milestone, event history, exceptions and, once delivered, a POD event with the signer name.

Can I download a CEVA POD or invoice through the API?

No separate POD image or invoice API is documented. Delivery confirmation comes from the tracking response; POD scans and invoices are requested from your CEVA representative or the customer portal.

On FreightAPIs

Official resources

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

Other carrier API guides