Added

New Public API Endpoints for Trips and Carriers

We've added Public API support for assigning carriers to trips, dispatching trips, searching trips by assigned equipment, updating carrier status, and reading carrier contacts — so partners can run more of the dispatch and carrier workflow programmatically.

What's New

  • Assign a carrier to a trip — assign a carrier, and optionally a driver, truck, and trailer, to a trip.
  • Dispatch a trip — dispatch a covered trip so dispatch can be triggered from your own workflow.
  • Filter trips by driver, truck, or trailer — narrow trip search to a specific driver or piece of equipment.
  • Update a carrier's status — set a carrier's status (e.g. Active, Do Not Load) to keep records in sync with your compliance and vetting systems.
  • Carrier contacts in the carrier response — read carrier contact details without extra calls.

What Changes

  • All changes are additive and backward compatible.
  • The new trip filters (driverId, truckId, trailerId) are optional. Each is valid on its own or alongside existing search parameters; driverId matches primary, secondary, and owner-operator assignments.
  • Carrier responses now include a Contacts collection (name, email, phone, mobile, title, and a primary-contact flag) on both the get-by-id and search responses.
  • Assigning a carrier requires carrierId and dispatcherId; driver2Id cannot be sent without driver1Id. Assets are referenced by id — resolve them via their search endpoints first.
  • Dispatch requires the trip to be Covered (carrier and assets assigned); otherwise the request is rejected.
  • Updating carrier status supports optimistic concurrency via the If-Match header and returns a fresh ETag for the next update.

Endpoints Affected

  • POST /p/v1.0/trips/{tripId}/assign (new) — assign a carrier and optional assets; returns the updated trip.
  • POST /p/v1.0/trips/{tripId}/dispatch (new) — dispatch a covered trip; returns the updated trip.
  • POST /p/v1.0/trips/search (updated) — now accepts driverId, truckId, and trailerId filters.
  • PATCH /p/v1.0/carriers/{carrierId}/status (new) — update a carrier's status; returns 204 No Content with a fresh ETag.
  • GET /p/v1.0/carriers/{id} and POST /p/v1.0/carriers/search (updated) — responses now include Contacts.