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.
Postman setup guide: API Clients.
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"Status: 200 OK
{
"access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
"token_type": "Bearer",
"expires_in": 3600
}Response Fields:
access_token: JWT Bearer token to use for API requeststoken_type: AlwaysBearerexpires_in: Token lifetime in seconds (3600 = 1 hour)
Mutating requests (POST, PATCH, DELETE) accept an optional Idempotency-Key header (up to 255 characters). Retrying a request with the same key and the same body returns the original result instead of repeating the operation; reusing a key with a different body fails. Keys are scoped to your organization — keys chosen by other tenants can never collide with yours. Use a stable identifier from your system (for example your own record id plus the action) rather than a random value per attempt.
Reference Data
Read-only catalogs (equipment, charge codes, special requirements) referenced by id from other resources.
Every catalog also answers on its short top-level path, so GET /v1/charge-codes and GET /v1/reference-data/charge-codes are the same endpoint. The documented /reference-data/* form is canonical — it keeps the catalogs grouped here as more are added (port codes, cities, zip codes) — and the short form is a convenience alias.
Request
Search for shipments by reference field values (BOL #, PRO #, MAWB #, etc.) and return tracking information.
- Provide an array of search queries in the
searchesfield - Optionally filter which reference field types to search using
referenceFields - Results are returned in the same order as input searches
- If no match is found, the result contains only the original
query(other fields are null)
- Searches are case-insensitive
- If multiple shipments match a query, the most recently created shipment is returned
- If
referenceFieldsis omitted, all reference field types are searched
- Customer portal: Look up shipment status by BOL or PRO number
- EDI integration: Validate shipment references before sending updates
- Bulk status check: Query multiple shipments in a single request
- Maximum 100 searches per request
- Standard API rate limits apply (see Rate Limiting documentation)
Array of search queries. Results are returned in the same order as the input searches. Maximum 100 searches per request.
Optional filter for reference field types to search. If omitted, searches all reference field types.
Common use: limit search to specific field types for faster results or to avoid false matches across different reference types.
- Productionhttps://api.mvmnt.io/v1/shipments/track
- Demo (non-production)https://api.demo.mvmnt.io/v1/shipments/track
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://api.mvmnt.io/v1/shipments/track \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"searches": [
{
"query": "MAWB123456"
}
]
}'Track results returned successfully
Array of tracking results in the same order as input searches.
Each result contains the original query plus matching shipment data. If no match is found, only the query field is populated (all other fields are null).
If multiple shipments match a query, the most recently created shipment is returned.
Original search query (always present, even when no match found)
Shipment UUID (null if not found)
Client-defined key (null if not found or not set)
Current shipment status (null if not found)
Current status of the shipment.
Lifecycle stages:
DRAFT: Shipment is being created, not yet ready for processingTENDER_PENDING: Awaiting carrier tender acceptanceTENDER_REJECTED: Carrier rejected the tenderON_HOLD: Shipment is temporarily pausedPLANNING: Shipment is being planned/scheduledSELECTED: Carrier has been selectedBOOKED: Carrier has confirmed the bookingDISPATCHED: Shipment has been dispatched to carrier
In-transit stages:
LOADING: Freight is being loaded at pickupPICKED_UP: Freight has been picked upIN_TRANSIT: Shipment is in transitUNLOADING: Freight is being unloaded at deliveryARRIVED_AT_DELIVERY_TERMINAL: Arrived at delivery terminal (LTL)OUT_FOR_DELIVERY: Out for final deliveryRECOVERED: Shipment has been recovered
Final stages:
DELIVERED: Shipment has been deliveredCANCELED: Shipment has been canceledCONSOLIDATED: Merged into a consolidated shipment
Reference field type that matched the query (null if not found)
Reference field types for shipment tracking.
Common field types:
BOL_NUMBER: Bill of Lading NumberPRO_NUMBER: PRO Number (carrier tracking number)PURCHASE_ORDER_NUMBER: Purchase Order NumberCUSTOMER_REFERENCE_NUMBER: Customer Reference NumberCONTAINER_NUMBER: Container NumberMASTER_BILL_OF_LADING_NUMBER: Master Bill of Lading NumberHOUSE_BILL_OF_LADING_NUMBER: House Bill of Lading NumberMASTER_AIRWAYBILL_NUMBER: Master Airway Bill NumberHOUSE_AIRWAYBILL_NUMBER: House Airway Bill Number
Additional field types:
PICKUP_NUMBER: Pickup NumberDELIVERY_NUMBER: Delivery NumberGENERAL_LEDGER_CODE: GL CodeITEM_IDENTIFICATION: Item IDPART_NUMBER: Part NumberACCOUNT_NUMBER: Account NumberCONSIGNEE_ACCOUNT_NUMBER: Consignee Account NumberPICKUP_LOCATION_IDENTIFICATION: Pickup Location IDDELIVER_LOCATION_IDENTIFICATION: Delivery Location IDPRODUCT_IDENTIFICATION: Product IDOTHER_IDENTIFICATION: Other IDMACROPOINT_REFERENCE_NUMBER: MacroPoint Reference NumberDROP_TRAILER_NUMBER: Drop Trailer NumberAPPOINTMENT_NUMBER: Appointment NumberLOCATION_IDENTIFICATION: Location IDTENDER_METHOD: Tender MethodROUTE_NUMBER: Route NumberSHOW_DECORATOR_NAME: Show Decorator NameSHOW_BOOTH_NUMBER: Show Booth NumberCARE_OF: Care OfTENDER_ID: EDI Tender IDORDER_NUMBER: Order NumberSHOW_NAME: Show NameAES_ITN: AES ITN (Automated Export System Internal Transaction Number)FIRMS_CODE: FIRMS Code (Facility Information and Resources Management System)IT_NUMBER: IT Number (Immediate Transportation)JOB_NUMBER: Job NumberTMS_ID: TMS IDAMS_HOUSE_BILL_OF_LADING_NUMBER: AMS House Bill of Lading NumberQUOTE_NUMBER: Quote NumberBOOKING_NUMBER: Booking NumberPAPS_NUMBER: PAPS NumberPARS_NUMBER: PARS NumberINTERNAL_ID: Internal IDLOT_NUMBER: Lot Number
The actual value stored in the matched reference field (null if not found)
Origin city, state/region, and zip code (null if not found). Format: "City, ST" or "City, ST ZIP" if zip code is available.
Destination city, state/region, and zip code (null if not found). Format: "City, ST" or "City, ST ZIP" if zip code is available.
Scheduled or actual pickup date in ISO 8601 date format (YYYY-MM-DD). Null if not found or not set.
Scheduled or actual delivery date in ISO 8601 date format (YYYY-MM-DD). Null if not found or not set.
Direct URL to view shipment details in MVMNT (null if not found). Uses the organization's configured domain or defaults to app.mvmnt.io.
{ "results": [ { … }, { … } ] }
Request
Search shipments using OpenSearch-powered full-text and field-specific search.
This endpoint provides fast, indexed search across shipment data with support for:
- Full-text search across multiple fields (references, locations, parties)
- Field-specific filtering with various operators
- Sorting and pagination
- Saved search preferences
Note: Only active (non-deleted) shipments are searchable. Soft-deleted records are automatically excluded from all search results.
Response Formats:
flat(default): Returns indexed fields only for faster performancefull: Returns complete shipment objects with all relationships
Sort options for the search results
- Productionhttps://api.mvmnt.io/v1/shipments/search
- Demo (non-production)https://api.demo.mvmnt.io/v1/shipments/search
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://api.mvmnt.io/v1/shipments/search \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"criteria": {
"shipperName": {
"operator": "INCLUDES",
"values": [
"Acme"
]
}
},
"pagination": {
"pageNumber": 1,
"pageSize": 50
}
}'{ "data": [ { … } ], "pagination": { "pageNumber": 1, "pageSize": 50, "totalPages": 25 }, "totalResults": 0 }
Request
Search for shipments using filter criteria.
Each row in the response carries the fully nested shipment payload (orders with stops, freight, references, charges; loads with carriers). With a large pageSize, responses can be sizable — use a smaller page size if you only need scalar fields.
- Active shipments:
{ "filter": { "status": { "notIn": ["DELIVERED", "CANCELED"] } } } - Delivered today:
{ "filter": { "deliveredAt": { "greaterThanOrEqualTo": "2025-01-15T00:00:00Z" } } } - By customer:
{ "filter": { "customerId": { "equalTo": "uuid" } } }
- Productionhttps://api.mvmnt.io/v1/shipments/filter
- Demo (non-production)https://api.demo.mvmnt.io/v1/shipments/filter
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://api.mvmnt.io/v1/shipments/filter \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"filter": {
"status": {
"notIn": [
"DELIVERED",
"CANCELED"
]
}
},
"pageSize": 50
}'Shipments matching filter criteria
Current status of the shipment lifecycle.
Pre-transit:
DRAFT: Shipment being createdTENDER_PENDING: Awaiting carrier tender acceptanceTENDER_REJECTED: Carrier rejected the tenderON_HOLD: Shipment temporarily pausedPLANNING: Being planned/scheduledSELECTED: Carrier selectedBOOKED: Carrier confirmed bookingDISPATCHED: Dispatched to carrier
In-transit:
LOADING: Loading at pickupPICKED_UP: Picked upIN_TRANSIT: In transitUNLOADING: Unloading at deliveryARRIVED_AT_DELIVERY_TERMINAL: At delivery terminal (LTL)OUT_FOR_DELIVERY: Out for final deliveryRECOVERED: Shipment has been recovered
Final:
DELIVERED: DeliveredCANCELED: CanceledCONSOLIDATED: Merged into a consolidated shipment
Enhanced reference to a customer resource (returned in responses). Includes full customer details in addition to id/key.
Note: Does NOT include nested references (paymentTerm, contacts, etc.) to prevent recursion. Maximum nesting depth: 1 level.
{ "data": [ { … } ], "pagination": { "pageSize": 50, "hasNextPage": true, "hasPreviousPage": false, "endCursor": "eyJpZCI6IjU1MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwMCJ9" } }
Request
Create a new shipment with orders, loads, and services.
customer: Reference to the customerorders: At least one order with stops and mode
- Shipment record
- Order(s) with stops, freight, and charges
- Optionally: Load(s) and Service(s)
If you have a Quote, use POST /quotes/{id}/convert-to-shipment instead. Direct shipment creation is for cases without a quote.
Orders to create (at least one required)
Transportation mode. Optional on write — a shipment or load created without one is stored with no mode, the same as one created in the TMS.
FTL: Full Truckload — the value the TMS stores and always returnsTL: legacy spelling ofFTL, still accepted on write, never returnedLTL: Less than TruckloadPTL: Partial TruckloadRLTL: Retail LTLAUTO: Auto transportEXPEDITED_AIR: Expedited airEXPEDITED_GROUND: Expedited groundAIR: Air freightOCEAN: Ocean freightRAIL: Rail freightINTERMODAL: Intermodal (multiple modes)DRAYAGE: Drayage/cartage
At least origin and destination stops
- Productionhttps://api.mvmnt.io/v1/shipments
- Demo (non-production)https://api.demo.mvmnt.io/v1/shipments
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://api.mvmnt.io/v1/shipments \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"customer": {
"id": "550e8400-e29b-41d4-a716-446655440000"
},
"orders": [
{
"mode": "FTL",
"stops": [
{
"type": "PICKUP",
"location": {
"id": "660e8400-e29b-41d4-a716-446655440001"
},
"requestedStartDate": "2025-01-20"
},
{
"type": "DELIVERY",
"location": {
"id": "770e8400-e29b-41d4-a716-446655440002"
},
"requestedStartDate": "2025-01-25"
}
],
"freight": {
"handlingUnitQuantity": 10,
"handlingUnitType": "PALLET",
"weight": 15000
}
}
]
}'Shipment created successfully
Current status of the shipment lifecycle.
Pre-transit:
DRAFT: Shipment being createdTENDER_PENDING: Awaiting carrier tender acceptanceTENDER_REJECTED: Carrier rejected the tenderON_HOLD: Shipment temporarily pausedPLANNING: Being planned/scheduledSELECTED: Carrier selectedBOOKED: Carrier confirmed bookingDISPATCHED: Dispatched to carrier
In-transit:
LOADING: Loading at pickupPICKED_UP: Picked upIN_TRANSIT: In transitUNLOADING: Unloading at deliveryARRIVED_AT_DELIVERY_TERMINAL: At delivery terminal (LTL)OUT_FOR_DELIVERY: Out for final deliveryRECOVERED: Shipment has been recovered
Final:
DELIVERED: DeliveredCANCELED: CanceledCONSOLIDATED: Merged into a consolidated shipment
Enhanced reference to a customer resource (returned in responses). Includes full customer details in addition to id/key.
Note: Does NOT include nested references (paymentTerm, contacts, etc.) to prevent recursion. Maximum nesting depth: 1 level.
{ "id": "550e8400-e29b-41d4-a716-446655440000", "friendlyId": "SHP-12345", "key": "my-shipment-001", "status": "DRAFT", "customer": { "id": "550e8400-e29b-41d4-a716-446655440000", "key": "ERP-CUSTOMER-ACME", "name": "Acme Manufacturing Corp", "friendlyId": "A123456", "status": "ACTIVE", "phoneNumber": "+1-555-123-4567", "website": "https://acme-manufacturing.com", "createdAt": "2025-01-15T10:00:00Z", "updatedAt": "2025-01-15T14:30:00Z", "deletedAt": null }, "customerRep": { "id": "550e8400-e29b-41d4-a716-446655440000", "key": "ERP-USER-12345", "email": "john.doe@example.com", "name": "John Doe", "phone": "+1-555-123-4567", "phoneExt": "123", "status": "ACTIVE", "avatarId": "7c9e6679-7425-40de-944b-e07fc1f90ae7", "createdAt": "2025-01-15T10:00:00Z", "updatedAt": "2025-01-15T14:30:00Z", "deletedAt": null }, "orders": [ { … } ], "loads": [ { … } ], "services": [ { … } ], "totalRevenue": 0, "totalCost": 0, "margin": 0, "marginPercent": 0, "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "deliveredAt": "2019-08-24T14:15:22Z" }
- Productionhttps://api.mvmnt.io/v1/shipments/{id}
- Demo (non-production)https://api.demo.mvmnt.io/v1/shipments/{id}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://api.mvmnt.io/v1/shipments/550e8400-e29b-41d4-a716-446655440000?by=key' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>'Shipment retrieved successfully
Current status of the shipment lifecycle.
Pre-transit:
DRAFT: Shipment being createdTENDER_PENDING: Awaiting carrier tender acceptanceTENDER_REJECTED: Carrier rejected the tenderON_HOLD: Shipment temporarily pausedPLANNING: Being planned/scheduledSELECTED: Carrier selectedBOOKED: Carrier confirmed bookingDISPATCHED: Dispatched to carrier
In-transit:
LOADING: Loading at pickupPICKED_UP: Picked upIN_TRANSIT: In transitUNLOADING: Unloading at deliveryARRIVED_AT_DELIVERY_TERMINAL: At delivery terminal (LTL)OUT_FOR_DELIVERY: Out for final deliveryRECOVERED: Shipment has been recovered
Final:
DELIVERED: DeliveredCANCELED: CanceledCONSOLIDATED: Merged into a consolidated shipment
Enhanced reference to a customer resource (returned in responses). Includes full customer details in addition to id/key.
Note: Does NOT include nested references (paymentTerm, contacts, etc.) to prevent recursion. Maximum nesting depth: 1 level.
{ "id": "550e8400-e29b-41d4-a716-446655440000", "friendlyId": "SHP-12345", "key": "my-shipment-001", "status": "DRAFT", "customer": { "id": "550e8400-e29b-41d4-a716-446655440000", "key": "ERP-CUSTOMER-ACME", "name": "Acme Manufacturing Corp", "friendlyId": "A123456", "status": "ACTIVE", "phoneNumber": "+1-555-123-4567", "website": "https://acme-manufacturing.com", "createdAt": "2025-01-15T10:00:00Z", "updatedAt": "2025-01-15T14:30:00Z", "deletedAt": null }, "customerRep": { "id": "550e8400-e29b-41d4-a716-446655440000", "key": "ERP-USER-12345", "email": "john.doe@example.com", "name": "John Doe", "phone": "+1-555-123-4567", "phoneExt": "123", "status": "ACTIVE", "avatarId": "7c9e6679-7425-40de-944b-e07fc1f90ae7", "createdAt": "2025-01-15T10:00:00Z", "updatedAt": "2025-01-15T14:30:00Z", "deletedAt": null }, "orders": [ { … } ], "loads": [ { … } ], "services": [ { … } ], "totalRevenue": 0, "totalCost": 0, "margin": 0, "marginPercent": 0, "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "deliveredAt": "2019-08-24T14:15:22Z" }
Reference to another resource by either ID or client key (used in create/update requests)
- Productionhttps://api.mvmnt.io/v1/shipments/{id}
- Demo (non-production)https://api.demo.mvmnt.io/v1/shipments/{id}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X PATCH \
'https://api.mvmnt.io/v1/shipments/550e8400-e29b-41d4-a716-446655440000?by=key' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"customerRep": {
"id": "550e8400-e29b-41d4-a716-446655440001"
}
}'Shipment updated successfully
Current status of the shipment lifecycle.
Pre-transit:
DRAFT: Shipment being createdTENDER_PENDING: Awaiting carrier tender acceptanceTENDER_REJECTED: Carrier rejected the tenderON_HOLD: Shipment temporarily pausedPLANNING: Being planned/scheduledSELECTED: Carrier selectedBOOKED: Carrier confirmed bookingDISPATCHED: Dispatched to carrier
In-transit:
LOADING: Loading at pickupPICKED_UP: Picked upIN_TRANSIT: In transitUNLOADING: Unloading at deliveryARRIVED_AT_DELIVERY_TERMINAL: At delivery terminal (LTL)OUT_FOR_DELIVERY: Out for final deliveryRECOVERED: Shipment has been recovered
Final:
DELIVERED: DeliveredCANCELED: CanceledCONSOLIDATED: Merged into a consolidated shipment
Enhanced reference to a customer resource (returned in responses). Includes full customer details in addition to id/key.
Note: Does NOT include nested references (paymentTerm, contacts, etc.) to prevent recursion. Maximum nesting depth: 1 level.
{ "id": "550e8400-e29b-41d4-a716-446655440000", "friendlyId": "SHP-12345", "key": "my-shipment-001", "status": "DRAFT", "customer": { "id": "550e8400-e29b-41d4-a716-446655440000", "key": "ERP-CUSTOMER-ACME", "name": "Acme Manufacturing Corp", "friendlyId": "A123456", "status": "ACTIVE", "phoneNumber": "+1-555-123-4567", "website": "https://acme-manufacturing.com", "createdAt": "2025-01-15T10:00:00Z", "updatedAt": "2025-01-15T14:30:00Z", "deletedAt": null }, "customerRep": { "id": "550e8400-e29b-41d4-a716-446655440000", "key": "ERP-USER-12345", "email": "john.doe@example.com", "name": "John Doe", "phone": "+1-555-123-4567", "phoneExt": "123", "status": "ACTIVE", "avatarId": "7c9e6679-7425-40de-944b-e07fc1f90ae7", "createdAt": "2025-01-15T10:00:00Z", "updatedAt": "2025-01-15T14:30:00Z", "deletedAt": null }, "orders": [ { … } ], "loads": [ { … } ], "services": [ { … } ], "totalRevenue": 0, "totalCost": 0, "margin": 0, "marginPercent": 0, "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "deliveredAt": "2019-08-24T14:15:22Z" }
- Productionhttps://api.mvmnt.io/v1/shipments/{id}
- Demo (non-production)https://api.demo.mvmnt.io/v1/shipments/{id}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X DELETE \
'https://api.mvmnt.io/v1/shipments/550e8400-e29b-41d4-a716-446655440000?by=key' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>'- Productionhttps://api.mvmnt.io/v1/shipments/{id}/cancel
- Demo (non-production)https://api.demo.mvmnt.io/v1/shipments/{id}/cancel
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://api.mvmnt.io/v1/shipments/550e8400-e29b-41d4-a716-446655440000/cancel?by=key' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"reason": "Customer requested cancellation due to production delay"
}'Shipment canceled successfully
Current status of the shipment lifecycle.
Pre-transit:
DRAFT: Shipment being createdTENDER_PENDING: Awaiting carrier tender acceptanceTENDER_REJECTED: Carrier rejected the tenderON_HOLD: Shipment temporarily pausedPLANNING: Being planned/scheduledSELECTED: Carrier selectedBOOKED: Carrier confirmed bookingDISPATCHED: Dispatched to carrier
In-transit:
LOADING: Loading at pickupPICKED_UP: Picked upIN_TRANSIT: In transitUNLOADING: Unloading at deliveryARRIVED_AT_DELIVERY_TERMINAL: At delivery terminal (LTL)OUT_FOR_DELIVERY: Out for final deliveryRECOVERED: Shipment has been recovered
Final:
DELIVERED: DeliveredCANCELED: CanceledCONSOLIDATED: Merged into a consolidated shipment
Enhanced reference to a customer resource (returned in responses). Includes full customer details in addition to id/key.
Note: Does NOT include nested references (paymentTerm, contacts, etc.) to prevent recursion. Maximum nesting depth: 1 level.
{ "id": "550e8400-e29b-41d4-a716-446655440000", "friendlyId": "SHP-12345", "key": "my-shipment-001", "status": "DRAFT", "customer": { "id": "550e8400-e29b-41d4-a716-446655440000", "key": "ERP-CUSTOMER-ACME", "name": "Acme Manufacturing Corp", "friendlyId": "A123456", "status": "ACTIVE", "phoneNumber": "+1-555-123-4567", "website": "https://acme-manufacturing.com", "createdAt": "2025-01-15T10:00:00Z", "updatedAt": "2025-01-15T14:30:00Z", "deletedAt": null }, "customerRep": { "id": "550e8400-e29b-41d4-a716-446655440000", "key": "ERP-USER-12345", "email": "john.doe@example.com", "name": "John Doe", "phone": "+1-555-123-4567", "phoneExt": "123", "status": "ACTIVE", "avatarId": "7c9e6679-7425-40de-944b-e07fc1f90ae7", "createdAt": "2025-01-15T10:00:00Z", "updatedAt": "2025-01-15T14:30:00Z", "deletedAt": null }, "orders": [ { … } ], "loads": [ { … } ], "services": [ { … } ], "totalRevenue": 0, "totalCost": 0, "margin": 0, "marginPercent": 0, "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "deliveredAt": "2019-08-24T14:15:22Z" }
- Productionhttps://api.mvmnt.io/v1/shipments/{id}/uncancel
- Demo (non-production)https://api.demo.mvmnt.io/v1/shipments/{id}/uncancel
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://api.mvmnt.io/v1/shipments/550e8400-e29b-41d4-a716-446655440000/uncancel?by=key' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>'Shipment un-canceled successfully
Current status of the shipment lifecycle.
Pre-transit:
DRAFT: Shipment being createdTENDER_PENDING: Awaiting carrier tender acceptanceTENDER_REJECTED: Carrier rejected the tenderON_HOLD: Shipment temporarily pausedPLANNING: Being planned/scheduledSELECTED: Carrier selectedBOOKED: Carrier confirmed bookingDISPATCHED: Dispatched to carrier
In-transit:
LOADING: Loading at pickupPICKED_UP: Picked upIN_TRANSIT: In transitUNLOADING: Unloading at deliveryARRIVED_AT_DELIVERY_TERMINAL: At delivery terminal (LTL)OUT_FOR_DELIVERY: Out for final deliveryRECOVERED: Shipment has been recovered
Final:
DELIVERED: DeliveredCANCELED: CanceledCONSOLIDATED: Merged into a consolidated shipment
Enhanced reference to a customer resource (returned in responses). Includes full customer details in addition to id/key.
Note: Does NOT include nested references (paymentTerm, contacts, etc.) to prevent recursion. Maximum nesting depth: 1 level.
{ "id": "550e8400-e29b-41d4-a716-446655440000", "friendlyId": "SHP-12345", "key": "my-shipment-001", "status": "DRAFT", "customer": { "id": "550e8400-e29b-41d4-a716-446655440000", "key": "ERP-CUSTOMER-ACME", "name": "Acme Manufacturing Corp", "friendlyId": "A123456", "status": "ACTIVE", "phoneNumber": "+1-555-123-4567", "website": "https://acme-manufacturing.com", "createdAt": "2025-01-15T10:00:00Z", "updatedAt": "2025-01-15T14:30:00Z", "deletedAt": null }, "customerRep": { "id": "550e8400-e29b-41d4-a716-446655440000", "key": "ERP-USER-12345", "email": "john.doe@example.com", "name": "John Doe", "phone": "+1-555-123-4567", "phoneExt": "123", "status": "ACTIVE", "avatarId": "7c9e6679-7425-40de-944b-e07fc1f90ae7", "createdAt": "2025-01-15T10:00:00Z", "updatedAt": "2025-01-15T14:30:00Z", "deletedAt": null }, "orders": [ { … } ], "loads": [ { … } ], "services": [ { … } ], "totalRevenue": 0, "totalCost": 0, "margin": 0, "marginPercent": 0, "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "deliveredAt": "2019-08-24T14:15:22Z" }
- Productionhttps://api.mvmnt.io/v1/shipments/{id}/duplicate
- Demo (non-production)https://api.demo.mvmnt.io/v1/shipments/{id}/duplicate
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://api.mvmnt.io/v1/shipments/550e8400-e29b-41d4-a716-446655440000/duplicate?by=key' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"pickUpDate": "2025-02-01",
"deliveryDate": "2025-02-05"
}'{ "originalShipmentId": "550e8400-e29b-41d4-a716-446655440000", "newShipmentId": "660e8400-e29b-41d4-a716-446655440001", "newShipmentKey": "SHP-12346" }
- Productionhttps://api.mvmnt.io/v1/shipments/{id}/ready-to-invoice
- Demo (non-production)https://api.demo.mvmnt.io/v1/shipments/{id}/ready-to-invoice
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://api.mvmnt.io/v1/shipments/550e8400-e29b-41d4-a716-446655440000/ready-to-invoice?by=key' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>'Shipment marked ready to invoice
Current status of the shipment lifecycle.
Pre-transit:
DRAFT: Shipment being createdTENDER_PENDING: Awaiting carrier tender acceptanceTENDER_REJECTED: Carrier rejected the tenderON_HOLD: Shipment temporarily pausedPLANNING: Being planned/scheduledSELECTED: Carrier selectedBOOKED: Carrier confirmed bookingDISPATCHED: Dispatched to carrier
In-transit:
LOADING: Loading at pickupPICKED_UP: Picked upIN_TRANSIT: In transitUNLOADING: Unloading at deliveryARRIVED_AT_DELIVERY_TERMINAL: At delivery terminal (LTL)OUT_FOR_DELIVERY: Out for final deliveryRECOVERED: Shipment has been recovered
Final:
DELIVERED: DeliveredCANCELED: CanceledCONSOLIDATED: Merged into a consolidated shipment
Enhanced reference to a customer resource (returned in responses). Includes full customer details in addition to id/key.
Note: Does NOT include nested references (paymentTerm, contacts, etc.) to prevent recursion. Maximum nesting depth: 1 level.
{ "id": "550e8400-e29b-41d4-a716-446655440000", "friendlyId": "SHP-12345", "key": "my-shipment-001", "status": "DRAFT", "customer": { "id": "550e8400-e29b-41d4-a716-446655440000", "key": "ERP-CUSTOMER-ACME", "name": "Acme Manufacturing Corp", "friendlyId": "A123456", "status": "ACTIVE", "phoneNumber": "+1-555-123-4567", "website": "https://acme-manufacturing.com", "createdAt": "2025-01-15T10:00:00Z", "updatedAt": "2025-01-15T14:30:00Z", "deletedAt": null }, "customerRep": { "id": "550e8400-e29b-41d4-a716-446655440000", "key": "ERP-USER-12345", "email": "john.doe@example.com", "name": "John Doe", "phone": "+1-555-123-4567", "phoneExt": "123", "status": "ACTIVE", "avatarId": "7c9e6679-7425-40de-944b-e07fc1f90ae7", "createdAt": "2025-01-15T10:00:00Z", "updatedAt": "2025-01-15T14:30:00Z", "deletedAt": null }, "orders": [ { … } ], "loads": [ { … } ], "services": [ { … } ], "totalRevenue": 0, "totalCost": 0, "margin": 0, "marginPercent": 0, "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "deliveredAt": "2019-08-24T14:15:22Z" }
- Productionhttps://api.mvmnt.io/v1/shipments/{id}/not-ready-to-invoice
- Demo (non-production)https://api.demo.mvmnt.io/v1/shipments/{id}/not-ready-to-invoice
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://api.mvmnt.io/v1/shipments/550e8400-e29b-41d4-a716-446655440000/not-ready-to-invoice?by=key' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>'Shipment reverted to not ready
Current status of the shipment lifecycle.
Pre-transit:
DRAFT: Shipment being createdTENDER_PENDING: Awaiting carrier tender acceptanceTENDER_REJECTED: Carrier rejected the tenderON_HOLD: Shipment temporarily pausedPLANNING: Being planned/scheduledSELECTED: Carrier selectedBOOKED: Carrier confirmed bookingDISPATCHED: Dispatched to carrier
In-transit:
LOADING: Loading at pickupPICKED_UP: Picked upIN_TRANSIT: In transitUNLOADING: Unloading at deliveryARRIVED_AT_DELIVERY_TERMINAL: At delivery terminal (LTL)OUT_FOR_DELIVERY: Out for final deliveryRECOVERED: Shipment has been recovered
Final:
DELIVERED: DeliveredCANCELED: CanceledCONSOLIDATED: Merged into a consolidated shipment
Enhanced reference to a customer resource (returned in responses). Includes full customer details in addition to id/key.
Note: Does NOT include nested references (paymentTerm, contacts, etc.) to prevent recursion. Maximum nesting depth: 1 level.
{ "id": "550e8400-e29b-41d4-a716-446655440000", "friendlyId": "SHP-12345", "key": "my-shipment-001", "status": "DRAFT", "customer": { "id": "550e8400-e29b-41d4-a716-446655440000", "key": "ERP-CUSTOMER-ACME", "name": "Acme Manufacturing Corp", "friendlyId": "A123456", "status": "ACTIVE", "phoneNumber": "+1-555-123-4567", "website": "https://acme-manufacturing.com", "createdAt": "2025-01-15T10:00:00Z", "updatedAt": "2025-01-15T14:30:00Z", "deletedAt": null }, "customerRep": { "id": "550e8400-e29b-41d4-a716-446655440000", "key": "ERP-USER-12345", "email": "john.doe@example.com", "name": "John Doe", "phone": "+1-555-123-4567", "phoneExt": "123", "status": "ACTIVE", "avatarId": "7c9e6679-7425-40de-944b-e07fc1f90ae7", "createdAt": "2025-01-15T10:00:00Z", "updatedAt": "2025-01-15T14:30:00Z", "deletedAt": null }, "orders": [ { … } ], "loads": [ { … } ], "services": [ { … } ], "totalRevenue": 0, "totalCost": 0, "margin": 0, "marginPercent": 0, "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "deliveredAt": "2019-08-24T14:15:22Z" }
- Productionhttps://api.mvmnt.io/v1/shipments/{id}/invoice/generate
- Demo (non-production)https://api.demo.mvmnt.io/v1/shipments/{id}/invoice/generate
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://api.mvmnt.io/v1/shipments/550e8400-e29b-41d4-a716-446655440000/invoice/generate?by=key' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>'{ "shipmentId": "47efd5a2-af91-4417-950a-7f546cd1b5cf", "invoiceId": "4f163819-178d-470c-a246-d6768476a6ec", "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052", "downloadUrl": "http://example.com" }