Carrier management operations
MVMNT API (1.1.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.
- Productionhttps://api.mvmnt.io/v1/credit-memos/filter
- Demo (non-production)https://api.demo.mvmnt.io/v1/credit-memos/filter
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://api.mvmnt.io/v1/credit-memos/filter \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"filter": {
"customerId": {
"equalTo": "550e8400-e29b-41d4-a716-446655440000"
}
}
}'Credit memos matching filter criteria
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.
Current status of the credit memo (derived from remaining balance).
OPEN: No applications, full balance availablePARTIALLY_APPLIED: Some amount applied, balance remainsAPPLIED: Fully applied to invoicesVOIDED: Credit memo cancelled
{ "data": [ { … } ], "pagination": { "pageSize": 50, "hasNextPage": true, "hasPreviousPage": false, "endCursor": "eyJpZCI6IjU1MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwMCJ9" }, "errors": [ { … } ] }
- Productionhttps://api.mvmnt.io/v1/credit-memos
- Demo (non-production)https://api.demo.mvmnt.io/v1/credit-memos
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://api.mvmnt.io/v1/credit-memos \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"customerId": "550e8400-e29b-41d4-a716-446655440000",
"amount": 500,
"currency": "USD",
"memoDate": "2025-01-15",
"reference": "CM-00001",
"notes": "Refund for damaged goods"
}'Credit memo created successfully
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.
Current status of the credit memo (derived from remaining balance).
OPEN: No applications, full balance availablePARTIALLY_APPLIED: Some amount applied, balance remainsAPPLIED: Fully applied to invoicesVOIDED: Credit memo cancelled
{ "id": "550e8400-e29b-41d4-a716-446655440000", "key": "string", "reference": "CM-00001", "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 }, "amount": 0, "appliedAmount": 0, "remainingBalance": 0, "currency": "USD", "status": "OPEN", "memoDate": "2019-08-24", "notes": "string", "sourcePaymentGroupId": "88f8a750-5184-4109-bb35-e2e1ef4ac566", "sourcePaymentKey": "string", "applications": [ { … } ], "qboId": "string", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "voidedAt": "2019-08-24T14:15:22Z", "voidReason": "string", "createdBy": { "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 } }
- Productionhttps://api.mvmnt.io/v1/credit-memos/{id}
- Demo (non-production)https://api.demo.mvmnt.io/v1/credit-memos/{id}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://api.mvmnt.io/v1/credit-memos/550e8400-e29b-41d4-a716-446655440000?by=key' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>'Credit memo retrieved successfully
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.
Current status of the credit memo (derived from remaining balance).
OPEN: No applications, full balance availablePARTIALLY_APPLIED: Some amount applied, balance remainsAPPLIED: Fully applied to invoicesVOIDED: Credit memo cancelled
{ "id": "550e8400-e29b-41d4-a716-446655440000", "key": "string", "reference": "CM-00001", "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 }, "amount": 0, "appliedAmount": 0, "remainingBalance": 0, "currency": "USD", "status": "OPEN", "memoDate": "2019-08-24", "notes": "string", "sourcePaymentGroupId": "88f8a750-5184-4109-bb35-e2e1ef4ac566", "sourcePaymentKey": "string", "applications": [ { … } ], "qboId": "string", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "voidedAt": "2019-08-24T14:15:22Z", "voidReason": "string", "createdBy": { "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 } }
- Productionhttps://api.mvmnt.io/v1/credit-memos/{id}
- Demo (non-production)https://api.demo.mvmnt.io/v1/credit-memos/{id}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X PATCH \
'https://api.mvmnt.io/v1/credit-memos/550e8400-e29b-41d4-a716-446655440000?by=key' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"reference": "CM-00001-REV"
}'Credit memo updated successfully
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.
Current status of the credit memo (derived from remaining balance).
OPEN: No applications, full balance availablePARTIALLY_APPLIED: Some amount applied, balance remainsAPPLIED: Fully applied to invoicesVOIDED: Credit memo cancelled
{ "id": "550e8400-e29b-41d4-a716-446655440000", "key": "string", "reference": "CM-00001", "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 }, "amount": 0, "appliedAmount": 0, "remainingBalance": 0, "currency": "USD", "status": "OPEN", "memoDate": "2019-08-24", "notes": "string", "sourcePaymentGroupId": "88f8a750-5184-4109-bb35-e2e1ef4ac566", "sourcePaymentKey": "string", "applications": [ { … } ], "qboId": "string", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "voidedAt": "2019-08-24T14:15:22Z", "voidReason": "string", "createdBy": { "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 } }
- Productionhttps://api.mvmnt.io/v1/credit-memos/{id}/void
- Demo (non-production)https://api.demo.mvmnt.io/v1/credit-memos/{id}/void
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://api.mvmnt.io/v1/credit-memos/550e8400-e29b-41d4-a716-446655440000/void?by=key' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"reason": "Credit issued in error"
}'Credit memo voided successfully
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.
Current status of the credit memo (derived from remaining balance).
OPEN: No applications, full balance availablePARTIALLY_APPLIED: Some amount applied, balance remainsAPPLIED: Fully applied to invoicesVOIDED: Credit memo cancelled
{ "id": "550e8400-e29b-41d4-a716-446655440000", "key": "string", "reference": "CM-00001", "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 }, "amount": 0, "appliedAmount": 0, "remainingBalance": 0, "currency": "USD", "status": "OPEN", "memoDate": "2019-08-24", "notes": "string", "sourcePaymentGroupId": "88f8a750-5184-4109-bb35-e2e1ef4ac566", "sourcePaymentKey": "string", "applications": [ { … } ], "qboId": "string", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "voidedAt": "2019-08-24T14:15:22Z", "voidReason": "string", "createdBy": { "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 } }
Request
Not available as a standalone operation; returns 501.
A credit memo is applied as part of a payment, the same way the TMS applies it: send it in creditApplications on POST /payments, together with the invoices in applications. The credit is spread over those invoices in order, each absorbing up to its own applied amount. The total credit cannot exceed the total applied to invoices.
- Productionhttps://api.mvmnt.io/v1/credit-memos/{id}/apply
- Demo (non-production)https://api.demo.mvmnt.io/v1/credit-memos/{id}/apply
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://api.mvmnt.io/v1/credit-memos/550e8400-e29b-41d4-a716-446655440000/apply?by=key' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"invoiceId": "660e8400-e29b-41d4-a716-446655440001",
"amount": 200
}'Credit applied successfully
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.
Current status of the credit memo (derived from remaining balance).
OPEN: No applications, full balance availablePARTIALLY_APPLIED: Some amount applied, balance remainsAPPLIED: Fully applied to invoicesVOIDED: Credit memo cancelled
{ "application": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "invoiceId": "4f163819-178d-470c-a246-d6768476a6ec", "invoiceFriendlyId": "string", "paymentId": "472e651e-5a1e-424d-8098-23858bf03ad7", "paymentKey": "string", "amount": 0, "appliedAt": "2019-08-24T14:15:22Z" }, "creditMemo": { "id": "550e8400-e29b-41d4-a716-446655440000", "key": "string", "reference": "CM-00001", "customer": { … }, "amount": 0, "appliedAmount": 0, "remainingBalance": 0, "currency": "USD", "status": "OPEN", "memoDate": "2019-08-24", "notes": "string", "sourcePaymentGroupId": "88f8a750-5184-4109-bb35-e2e1ef4ac566", "sourcePaymentKey": "string", "applications": [ … ], "qboId": "string", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "voidedAt": "2019-08-24T14:15:22Z", "voidReason": "string", "createdBy": { … } } }
- Productionhttps://api.mvmnt.io/v1/credit-memos/{id}/applications
- Demo (non-production)https://api.demo.mvmnt.io/v1/credit-memos/{id}/applications
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://api.mvmnt.io/v1/credit-memos/550e8400-e29b-41d4-a716-446655440000/applications?by=key' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>'{ "data": [ { … } ], "totalApplied": 0, "remainingBalance": 0 }
- Productionhttps://api.mvmnt.io/v1/credit-memos/{creditMemoId}/applications/{applicationId}
- Demo (non-production)https://api.demo.mvmnt.io/v1/credit-memos/{creditMemoId}/applications/{applicationId}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X DELETE \
'https://api.mvmnt.io/v1/credit-memos/{creditMemoId}/applications/{applicationId}' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>'Credit unapplied successfully
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.
Current status of the credit memo (derived from remaining balance).
OPEN: No applications, full balance availablePARTIALLY_APPLIED: Some amount applied, balance remainsAPPLIED: Fully applied to invoicesVOIDED: Credit memo cancelled
{ "id": "550e8400-e29b-41d4-a716-446655440000", "key": "string", "reference": "CM-00001", "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 }, "amount": 0, "appliedAmount": 0, "remainingBalance": 0, "currency": "USD", "status": "OPEN", "memoDate": "2019-08-24", "notes": "string", "sourcePaymentGroupId": "88f8a750-5184-4109-bb35-e2e1ef4ac566", "sourcePaymentKey": "string", "applications": [ { … } ], "qboId": "string", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "voidedAt": "2019-08-24T14:15:22Z", "voidReason": "string", "createdBy": { "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 } }
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.