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
All webhook events are delivered to your configured endpoint URL.
The event field in the payload determines which type of webhook was triggered. Your endpoint should handle all event types or gracefully ignore unknown events.
Event Types:
- Entity changes:
CUSTOMER_*,COMPANY_*,CARRIER_*,CUSTOMER_CONTACT_* - Shipment events:
SHIPMENT_DELIVERED,SHIPMENT_BOOKED,SHIPMENT_DISPATCHED, etc. - Financial events:
CARRIER_INVOICE_CREATED,CUSTOMER_PAYMENT_CREATED, etc.
Security: All webhook requests include an x-api-key header containing your webhook token configured in the MVMNT UI.
Best Practices:
- Return 200 OK quickly and process asynchronously
- Implement idempotency using event ID and timestamp
- Handle unknown event types gracefully for forward compatibility
ISO 8601 timestamp when the webhook was sent from MVMNT
Array of webhook events (typically contains a single event)
The type of webhook event
- CUSTOMER_CREATED
- CUSTOMER_UPDATED
- CUSTOMER_DELETED
- COMPANY_CREATED
- COMPANY_UPDATED
- COMPANY_DELETED
- CUSTOMER_CONTACT_CREATED
- CUSTOMER_CONTACT_UPDATED
- CUSTOMER_CONTACT_DELETED
- CARRIER_CONTACT_CREATED
- CARRIER_CONTACT_UPDATED
- CARRIER_CONTACT_DELETED
- CARRIER_CREATED
- CARRIER_UPDATED
- CARRIER_DELETED
- CARRIER_ACTIVATED
- CARRIER_DEACTIVATED
- CARRIER_FACTOR_CREATED
- CARRIER_FACTOR_UPDATED
- CARRIER_FACTOR_DELETED
- CARRIER_PAYMENT_METHOD_CREATED
- CARRIER_PAYMENT_METHOD_UPDATED
- CARRIER_PAYMENT_METHOD_DELETED
- VENDOR_CREATED
- VENDOR_UPDATED
- VENDOR_DELETED
- VENDOR_CONTACT_CREATED
- VENDOR_CONTACT_UPDATED
- VENDOR_CONTACT_DELETED
- VENDOR_PAYMENT_METHOD_CREATED
- VENDOR_PAYMENT_METHOD_UPDATED
- VENDOR_PAYMENT_METHOD_DELETED
- LOCATION_CREATED
- LOCATION_UPDATED
- LOCATION_DELETED
- LOCATION_CONTACT_CREATED
- LOCATION_CONTACT_UPDATED
- LOCATION_CONTACT_DELETED
- SHIPMENT_DELIVERED
ISO 8601 timestamp when the event occurred
Event-specific data. Structure varies by event type.
Unique customer identifier
Human-readable customer identifier, starts with "A"
Customer account status (includes lead stages):
NEW: New lead, not yet contactedCONTACTED: Initial contact made with leadQUALIFIED: Lead has been qualified as potential customerQUOTED: Quote has been provided to leadNURTURING: Lead being nurtured for future opportunityPENDING: Customer prospect pending activationACTIVE: Active customer accountINACTIVE: Deactivated customer accountBLOCKED: Customer account blocked from operationsCLOSED: Customer account permanently closed
Service tier level
Service tier level for the customer
Industry classification
Industry classification for the customer
Annual revenue range
Annual revenue range
Annual freight spend estimate
Annual freight spend estimate range
Customer spend type (contract vs spot pricing)
Customer spend type:
CONTRACT: Customer operates under contract pricingSPOT: Customer operates on spot market pricing
Company size by number of employees
Number of employees in the company
Preferred currency for transactions
Preferred currency for transactions
Default transportation mode. Values outside the enum are rejected with 400; customers whose internal mode isn't in the public enum return the field omitted.
Transportation mode type
Default carrier-facing notes template used when note splitting is enabled
Default external notes template
Controls whether default external notes are reused on carrier docs or split from default carrier notes
Controls whether external notes are shown on all documents or split from carrier-facing notes.
ALL: Use external notes on customer-facing and carrier-facing documentsSPLIT: Use external notes on customer-facing documents and carrier notes on carrier-facing documents
Customer group reference (minimal - id and key only)
Reference to another resource (returned in responses)
Payment term configuration reference with full details
Enhanced reference to a payment term resource (returned in responses). Includes full payment term details in addition to id/key.
Reason for deactivation if status is INACTIVE
Reason for customer deactivation:
NOT_PAYING_INVOICE: Customer is not paying invoicesACQUIRED: Customer was acquired by another companyDUPLICATE: Duplicate customer recordNOT_IN_BUSINESS: Customer is no longer in businessOTHER: Other reason (see deactivationNotes for details)
User who closed the account (full user details)
Enhanced reference to a user resource (returned in responses). Includes full user details in addition to id/key.
Note: Does NOT include nested references (teams, etc.) to prevent recursion. Maximum nesting depth: 1 level.
Corporate headquarters address (nested location data)
Physical address/location details (nested, without id).
This is an embedded object representing a Location record. The id is managed internally and not exposed in the API.
Billing address (nested location data)
Physical address/location details (nested, without id).
This is an embedded object representing a Location record. The id is managed internally and not exposed in the API.
Client-defined reference identifier for this customer
Timestamp when customer was created
Timestamp when customer was last updated
Timestamp when customer was soft-deleted (null if active)
User who deleted the customer (full user details)
Enhanced reference to a user resource (returned in responses). Includes full user details in addition to id/key.
Note: Does NOT include nested references (teams, etc.) to prevent recursion. Maximum nesting depth: 1 level.
- Productionhttps://api.mvmnt.io/v1/your-endpoint
- Demo (non-production)https://api.demo.mvmnt.io/v1/your-endpoint
{ "sentAt": "2025-01-15T14:30:05Z", "events": [ { … } ] }