Carrier management operations
MVMNT API (1.0.0)
The MVMNT API enables you to automate freight brokerage workflows by integrating directly with our Transportation Management System.
OAuth 2.0 client credentials flow. See Authentication Guide for details.
Headers:
Content-Type: application/x-www-form-urlencodedBody Parameters:
grant_type=client_credentials
client_id=YOUR_CLIENT_ID
client_secret=YOUR_CLIENT_SECRETcurl -X POST https://api.mvmnt.io/oauth2/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials" \
-d "client_id=YOUR_CLIENT_ID" \
-d "client_secret=YOUR_CLIENT_SECRET"- Mock serverhttps://docs.mvmnt.io/_mock/apis/openapi/loads/filter
- Productionhttps://api.mvmnt.io/v1/loads/filter
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://docs.mvmnt.io/_mock/apis/openapi/loads/filter \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"filter": {
"shipmentId": {
"equalTo": "550e8400-e29b-41d4-a716-446655440000"
}
}
}'Loads matching filter criteria
Transportation mode.
TL: Full TruckloadLTL: Less than TruckloadAIR: Air freightOCEAN: Ocean freightRAIL: Rail freightINTERMODAL: Intermodal (multiple modes)DRAYAGE: Drayage/cartage
Current status of the load.
Pre-transit:
SOURCING: Looking for carrierBOOKED: Carrier bookedDISPATCHED: Dispatched to carrier
In-transit:
LOADING: Loading at pickupPICKED_UP: Picked upIN_TRANSIT: In transitUNLOADING: Unloading at delivery
Final:
DELIVERED: DeliveredCANCELED: Canceled
Carrier assignments (flattened from LoadCarriersConnection)
{ "data": [ { … } ], "pagination": { "pageSize": 50, "hasNextPage": true, "hasPreviousPage": false, "endCursor": "eyJpZCI6IjU1MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwMCJ9" } }
Transportation mode.
TL: Full TruckloadLTL: Less than TruckloadAIR: Air freightOCEAN: Ocean freightRAIL: Rail freightINTERMODAL: Intermodal (multiple modes)DRAYAGE: Drayage/cartage
- Mock serverhttps://docs.mvmnt.io/_mock/apis/openapi/loads
- Productionhttps://api.mvmnt.io/v1/loads
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://docs.mvmnt.io/_mock/apis/openapi/loads \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"shipmentId": "550e8400-e29b-41d4-a716-446655440000",
"load": {
"mode": "TL"
}
}'Load created successfully
Transportation mode.
TL: Full TruckloadLTL: Less than TruckloadAIR: Air freightOCEAN: Ocean freightRAIL: Rail freightINTERMODAL: Intermodal (multiple modes)DRAYAGE: Drayage/cartage
Current status of the load.
Pre-transit:
SOURCING: Looking for carrierBOOKED: Carrier bookedDISPATCHED: Dispatched to carrier
In-transit:
LOADING: Loading at pickupPICKED_UP: Picked upIN_TRANSIT: In transitUNLOADING: Unloading at delivery
Final:
DELIVERED: DeliveredCANCELED: Canceled
{ "id": "550e8400-e29b-41d4-a716-446655440000", "key": "LD-12345", "shipmentId": "47efd5a2-af91-4417-950a-7f546cd1b5cf", "shipmentKey": "string", "mode": "TL", "status": "SOURCING", "stops": [ { … } ], "carriers": [ { … } ], "totalCost": 0, "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "pickedUpAt": "2019-08-24T14:15:22Z", "deliveredAt": "2019-08-24T14:15:22Z" }
- Mock serverhttps://docs.mvmnt.io/_mock/apis/openapi/loads/{id}
- Productionhttps://api.mvmnt.io/v1/loads/{id}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://docs.mvmnt.io/_mock/apis/openapi/loads/550e8400-e29b-41d4-a716-446655440000?by=key' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>'Load retrieved successfully
Transportation mode.
TL: Full TruckloadLTL: Less than TruckloadAIR: Air freightOCEAN: Ocean freightRAIL: Rail freightINTERMODAL: Intermodal (multiple modes)DRAYAGE: Drayage/cartage
Current status of the load.
Pre-transit:
SOURCING: Looking for carrierBOOKED: Carrier bookedDISPATCHED: Dispatched to carrier
In-transit:
LOADING: Loading at pickupPICKED_UP: Picked upIN_TRANSIT: In transitUNLOADING: Unloading at delivery
Final:
DELIVERED: DeliveredCANCELED: Canceled
{ "id": "550e8400-e29b-41d4-a716-446655440000", "key": "LD-12345", "shipmentId": "47efd5a2-af91-4417-950a-7f546cd1b5cf", "shipmentKey": "string", "mode": "TL", "status": "SOURCING", "stops": [ { … } ], "carriers": [ { … } ], "totalCost": 0, "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "pickedUpAt": "2019-08-24T14:15:22Z", "deliveredAt": "2019-08-24T14:15:22Z" }
- Mock serverhttps://docs.mvmnt.io/_mock/apis/openapi/loads/{id}
- Productionhttps://api.mvmnt.io/v1/loads/{id}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X PATCH \
'https://docs.mvmnt.io/_mock/apis/openapi/loads/550e8400-e29b-41d4-a716-446655440000?by=key' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"mode": "TL"
}'Load updated successfully
Transportation mode.
TL: Full TruckloadLTL: Less than TruckloadAIR: Air freightOCEAN: Ocean freightRAIL: Rail freightINTERMODAL: Intermodal (multiple modes)DRAYAGE: Drayage/cartage
Current status of the load.
Pre-transit:
SOURCING: Looking for carrierBOOKED: Carrier bookedDISPATCHED: Dispatched to carrier
In-transit:
LOADING: Loading at pickupPICKED_UP: Picked upIN_TRANSIT: In transitUNLOADING: Unloading at delivery
Final:
DELIVERED: DeliveredCANCELED: Canceled
{ "id": "550e8400-e29b-41d4-a716-446655440000", "key": "LD-12345", "shipmentId": "47efd5a2-af91-4417-950a-7f546cd1b5cf", "shipmentKey": "string", "mode": "TL", "status": "SOURCING", "stops": [ { … } ], "carriers": [ { … } ], "totalCost": 0, "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "pickedUpAt": "2019-08-24T14:15:22Z", "deliveredAt": "2019-08-24T14:15:22Z" }
- Mock serverhttps://docs.mvmnt.io/_mock/apis/openapi/loads/{id}
- Productionhttps://api.mvmnt.io/v1/loads/{id}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X DELETE \
'https://docs.mvmnt.io/_mock/apis/openapi/loads/550e8400-e29b-41d4-a716-446655440000?by=key' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>'- Mock serverhttps://docs.mvmnt.io/_mock/apis/openapi/loads/{id}/add-carrier
- Productionhttps://api.mvmnt.io/v1/loads/{id}/add-carrier
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://docs.mvmnt.io/_mock/apis/openapi/loads/550e8400-e29b-41d4-a716-446655440000/add-carrier?by=key' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"carrier": {
"id": "550e8400-e29b-41d4-a716-446655440000"
},
"contact": {
"id": "660e8400-e29b-41d4-a716-446655440001"
},
"charges": [
{
"chargeCode": {
"key": "LINEHAUL"
},
"amount": 2000
}
],
"driverName": "John Smith",
"driverPhone": "+15551234567"
}'{ "loadId": "9fa4c9ea-0db7-4bb2-8f50-086d18a90403", "loadCarrierId": "29f9f87f-f417-4003-80d8-b9d49851fa35", "loadCarrier": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "carrier": { … }, "contact": { … }, "status": "ACTIVE", "billingStatus": "AWAITING_INVOICE", "bookedAt": "2019-08-24T14:15:22Z", "dispatchedAt": "2019-08-24T14:15:22Z", "charges": [ … ], "totalCost": 0, "driverName": "string", "driverPhone": "string", "truckNumber": "string", "trailerNumber": "string", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z" } }
- Mock serverhttps://docs.mvmnt.io/_mock/apis/openapi/loads/{id}/rebook
- Productionhttps://api.mvmnt.io/v1/loads/{id}/rebook
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://docs.mvmnt.io/_mock/apis/openapi/loads/550e8400-e29b-41d4-a716-446655440000/rebook?by=key' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>'{ "originalLoadId": "550e8400-e29b-41d4-a716-446655440000", "newLoadId": "660e8400-e29b-41d4-a716-446655440001", "newLoadKey": "LD-12346" }
- Mock serverhttps://docs.mvmnt.io/_mock/apis/openapi/loads/{loadId}/carriers/{carrierId}
- Productionhttps://api.mvmnt.io/v1/loads/{loadId}/carriers/{carrierId}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://docs.mvmnt.io/_mock/apis/openapi/loads/{loadId}/carriers/{carrierId}' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>'Load carrier retrieved
Enhanced reference to a carrier resource (returned in responses). Includes full carrier details in addition to id/key.
Note: Does NOT include nested references (contacts, etc.) to prevent recursion. Maximum nesting depth: 1 level.
Status of the carrier assignment.
ACTIVE: Carrier is actively assignedTONU: Truck Ordered Not Used (carrier dispatched but cancelled)BOUNCED: Carrier bounced/rejected load
Billing status for the load (AP side).
AWAITING_INVOICE: Waiting for carrier invoiceINVOICE_IN_REVIEW: Invoice received, under reviewAPPROVED_TO_PAY: Approved for paymentPAID: Paid to carrier
{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "carrier": { "id": "550e8400-e29b-41d4-a716-446655440000", "key": "ERP-CARRIER-SWIFT", "name": "Swift Transportation", "phoneNumber": "+1-555-987-6543", "email": "dispatch@swifttrans.com", "createdAt": "2025-01-15T10:00:00Z", "updatedAt": "2025-01-15T14:30:00Z", "deletedAt": null }, "contact": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "name": "string", "phone": "string", "email": "string" }, "status": "ACTIVE", "billingStatus": "AWAITING_INVOICE", "bookedAt": "2019-08-24T14:15:22Z", "dispatchedAt": "2019-08-24T14:15:22Z", "charges": [ { … } ], "totalCost": 0, "driverName": "string", "driverPhone": "string", "truckNumber": "string", "trailerNumber": "string", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z" }
Reference to another resource by either ID or client key (used in create/update requests)
- Mock serverhttps://docs.mvmnt.io/_mock/apis/openapi/loads/{loadId}/carriers/{carrierId}
- Productionhttps://api.mvmnt.io/v1/loads/{loadId}/carriers/{carrierId}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X PATCH \
'https://docs.mvmnt.io/_mock/apis/openapi/loads/{loadId}/carriers/{carrierId}' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"driverName": "Jane Doe",
"driverPhone": "+15559876543",
"truckNumber": "TRK-123",
"trailerNumber": "TRL-456"
}'Load carrier updated
Enhanced reference to a carrier resource (returned in responses). Includes full carrier details in addition to id/key.
Note: Does NOT include nested references (contacts, etc.) to prevent recursion. Maximum nesting depth: 1 level.
Status of the carrier assignment.
ACTIVE: Carrier is actively assignedTONU: Truck Ordered Not Used (carrier dispatched but cancelled)BOUNCED: Carrier bounced/rejected load
Billing status for the load (AP side).
AWAITING_INVOICE: Waiting for carrier invoiceINVOICE_IN_REVIEW: Invoice received, under reviewAPPROVED_TO_PAY: Approved for paymentPAID: Paid to carrier
{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "carrier": { "id": "550e8400-e29b-41d4-a716-446655440000", "key": "ERP-CARRIER-SWIFT", "name": "Swift Transportation", "phoneNumber": "+1-555-987-6543", "email": "dispatch@swifttrans.com", "createdAt": "2025-01-15T10:00:00Z", "updatedAt": "2025-01-15T14:30:00Z", "deletedAt": null }, "contact": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "name": "string", "phone": "string", "email": "string" }, "status": "ACTIVE", "billingStatus": "AWAITING_INVOICE", "bookedAt": "2019-08-24T14:15:22Z", "dispatchedAt": "2019-08-24T14:15:22Z", "charges": [ { … } ], "totalCost": 0, "driverName": "string", "driverPhone": "string", "truckNumber": "string", "trailerNumber": "string", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z" }
Request
Mark carrier as bounced (rejected load without payment).
- LoadCarrier status changes to BOUNCED
- Carrier is removed from active execution
- No payment is recorded
Use bounce when carrier rejects the load before dispatch, or fails to show up without prior notice.
For carriers who were dispatched but cancelled, use TONU instead.
Reason for removing a carrier from a load
- Mock serverhttps://docs.mvmnt.io/_mock/apis/openapi/loads/{loadId}/carriers/{carrierId}/bounce
- Productionhttps://api.mvmnt.io/v1/loads/{loadId}/carriers/{carrierId}/bounce
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://docs.mvmnt.io/_mock/apis/openapi/loads/{loadId}/carriers/{carrierId}/bounce' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"reason": "DRIVER_ISSUE",
"reasonText": "Driver did not show up at scheduled time"
}'Carrier bounced successfully
Enhanced reference to a carrier resource (returned in responses). Includes full carrier details in addition to id/key.
Note: Does NOT include nested references (contacts, etc.) to prevent recursion. Maximum nesting depth: 1 level.
Status of the carrier assignment.
ACTIVE: Carrier is actively assignedTONU: Truck Ordered Not Used (carrier dispatched but cancelled)BOUNCED: Carrier bounced/rejected load
Billing status for the load (AP side).
AWAITING_INVOICE: Waiting for carrier invoiceINVOICE_IN_REVIEW: Invoice received, under reviewAPPROVED_TO_PAY: Approved for paymentPAID: Paid to carrier
{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "carrier": { "id": "550e8400-e29b-41d4-a716-446655440000", "key": "ERP-CARRIER-SWIFT", "name": "Swift Transportation", "phoneNumber": "+1-555-987-6543", "email": "dispatch@swifttrans.com", "createdAt": "2025-01-15T10:00:00Z", "updatedAt": "2025-01-15T14:30:00Z", "deletedAt": null }, "contact": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "name": "string", "phone": "string", "email": "string" }, "status": "ACTIVE", "billingStatus": "AWAITING_INVOICE", "bookedAt": "2019-08-24T14:15:22Z", "dispatchedAt": "2019-08-24T14:15:22Z", "charges": [ { … } ], "totalCost": 0, "driverName": "string", "driverPhone": "string", "truckNumber": "string", "trailerNumber": "string", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z" }
Request
Report Truck Ordered Not Used (TONU).
- LoadCarrier status changes to TONU
- TONU costs are recorded if provided
- Optionally creates a replacement load
Use TONU when:
- Carrier was dispatched but load was cancelled
- Carrier arrived but freight wasn't ready
- Carrier was turned away at shipper
TONU typically involves some payment to the carrier.
- Mock serverhttps://docs.mvmnt.io/_mock/apis/openapi/loads/{loadId}/carriers/{carrierId}/tonu
- Productionhttps://api.mvmnt.io/v1/loads/{loadId}/carriers/{carrierId}/tonu
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://docs.mvmnt.io/_mock/apis/openapi/loads/{loadId}/carriers/{carrierId}/tonu' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"reason": "Freight not ready at shipper",
"costs": [
{
"chargeCode": {
"key": "TONU"
},
"amount": 250,
"description": "TONU fee"
}
],
"createReplacementLoad": true
}'{ "loadCarrier": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "carrier": { … }, "contact": { … }, "status": "ACTIVE", "billingStatus": "AWAITING_INVOICE", "bookedAt": "2019-08-24T14:15:22Z", "dispatchedAt": "2019-08-24T14:15:22Z", "charges": [ … ], "totalCost": 0, "driverName": "string", "driverPhone": "string", "truckNumber": "string", "trailerNumber": "string", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z" }, "replacementLoadId": "08109b74-00a2-4d00-91a7-576db2a57194" }