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"Request
Search for AR invoices using filter criteria.
- By customer:
{ "filter": { "customerId": { "equalTo": "uuid" } } } - Unpaid:
{ "filter": { "status": { "in": ["AWAITING_PAYMENT", "PARTIALLY_PAID"] } } } - Overdue:
{ "filter": { "overdue": true } } - By shipment:
{ "filter": { "shipmentId": { "equalTo": "uuid" } } }
- Mock serverhttps://docs.mvmnt.io/_mock/apis/openapi/invoices/filter
- Productionhttps://api.mvmnt.io/v1/invoices/filter
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://docs.mvmnt.io/_mock/apis/openapi/invoices/filter \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"filter": {
"status": {
"in": [
"AWAITING_PAYMENT",
"PARTIALLY_PAID"
]
}
}
}'Invoices 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 invoice.
DRAFT: Invoice record exists but not finalizedAWAITING_PAYMENT: Invoice finalized, awaiting paymentPARTIALLY_PAID: Some payments received, balance remainsPAID: Fully paidVOIDED: Invoice cancelled/voided
Enhanced reference to a payment term resource (returned in responses). Includes full payment term details in addition to id/key.
Factoring provider for invoice financing.
DENIM: Denim factoringHAULPAY: HaulPay factoring
{ "data": [ { … } ], "pagination": { "pageSize": 50, "hasNextPage": true, "hasPreviousPage": false, "endCursor": "eyJpZCI6IjU1MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwMCJ9" } }
Request
Create a new invoice for an order.
- Invoice record is created for the order
- Order status updates to
DELIVERED_UNPAID - Due date calculated from payment term if not provided
Each shipment can have only one AR invoice. Use POST /shipments/{id}/invoice/generate to generate the invoice PDF document.
- Mock serverhttps://docs.mvmnt.io/_mock/apis/openapi/invoices
- Productionhttps://api.mvmnt.io/v1/invoices
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://docs.mvmnt.io/_mock/apis/openapi/invoices \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"orderId": "550e8400-e29b-41d4-a716-446655440000",
"invoiceDate": "2025-01-15",
"dueDate": "2025-02-14",
"amount": 2500,
"currency": "USD"
}'Invoice 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 invoice.
DRAFT: Invoice record exists but not finalizedAWAITING_PAYMENT: Invoice finalized, awaiting paymentPARTIALLY_PAID: Some payments received, balance remainsPAID: Fully paidVOIDED: Invoice cancelled/voided
Enhanced reference to a payment term resource (returned in responses). Includes full payment term details in addition to id/key.
Factoring provider for invoice financing.
DENIM: Denim factoringHAULPAY: HaulPay factoring
{ "id": "550e8400-e29b-41d4-a716-446655440000", "friendlyId": "INV-00001", "key": "string", "orderId": "b3e1eced-f2bd-4d8c-9765-fbc9d1d222d5", "orderKey": "string", "shipmentId": "47efd5a2-af91-4417-950a-7f546cd1b5cf", "shipmentKey": "string", "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 }, "status": "DRAFT", "invoiceDate": "2019-08-24", "dueDate": "2019-08-24", "amount": 0, "currency": "USD", "reference": "string", "amountPaid": 0, "amountOwed": 0, "creditsApplied": 0, "paymentTerm": { "id": "550e8400-e29b-41d4-a716-446655440000", "key": "ERP-PAYTERM-NET30", "name": "Net 30", "description": "Payment due 30 days from invoice date", "days": 30, "quickPayFee": 0.05, "apOnly": false, "doNotUse": false, "createdAt": "2025-01-15T10:00:00Z", "updatedAt": "2025-01-15T14:30:00Z", "deletedAt": null }, "payments": [ { … } ], "credits": [ { … } ], "factorName": "DENIM", "factorJobId": "string", "factorStatus": "string", "qboId": "string", "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052", "documentUrl": "string", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z" }
- Mock serverhttps://docs.mvmnt.io/_mock/apis/openapi/invoices/{id}
- Productionhttps://api.mvmnt.io/v1/invoices/{id}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://docs.mvmnt.io/_mock/apis/openapi/invoices/550e8400-e29b-41d4-a716-446655440000?by=key' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>'Invoice 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 invoice.
DRAFT: Invoice record exists but not finalizedAWAITING_PAYMENT: Invoice finalized, awaiting paymentPARTIALLY_PAID: Some payments received, balance remainsPAID: Fully paidVOIDED: Invoice cancelled/voided
Enhanced reference to a payment term resource (returned in responses). Includes full payment term details in addition to id/key.
Factoring provider for invoice financing.
DENIM: Denim factoringHAULPAY: HaulPay factoring
{ "id": "550e8400-e29b-41d4-a716-446655440000", "friendlyId": "INV-00001", "key": "string", "orderId": "b3e1eced-f2bd-4d8c-9765-fbc9d1d222d5", "orderKey": "string", "shipmentId": "47efd5a2-af91-4417-950a-7f546cd1b5cf", "shipmentKey": "string", "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 }, "status": "DRAFT", "invoiceDate": "2019-08-24", "dueDate": "2019-08-24", "amount": 0, "currency": "USD", "reference": "string", "amountPaid": 0, "amountOwed": 0, "creditsApplied": 0, "paymentTerm": { "id": "550e8400-e29b-41d4-a716-446655440000", "key": "ERP-PAYTERM-NET30", "name": "Net 30", "description": "Payment due 30 days from invoice date", "days": 30, "quickPayFee": 0.05, "apOnly": false, "doNotUse": false, "createdAt": "2025-01-15T10:00:00Z", "updatedAt": "2025-01-15T14:30:00Z", "deletedAt": null }, "payments": [ { … } ], "credits": [ { … } ], "factorName": "DENIM", "factorJobId": "string", "factorStatus": "string", "qboId": "string", "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052", "documentUrl": "string", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z" }
- Mock serverhttps://docs.mvmnt.io/_mock/apis/openapi/invoices/{id}
- Productionhttps://api.mvmnt.io/v1/invoices/{id}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X PATCH \
'https://docs.mvmnt.io/_mock/apis/openapi/invoices/550e8400-e29b-41d4-a716-446655440000?by=key' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"dueDate": "2025-02-28"
}'Invoice 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 invoice.
DRAFT: Invoice record exists but not finalizedAWAITING_PAYMENT: Invoice finalized, awaiting paymentPARTIALLY_PAID: Some payments received, balance remainsPAID: Fully paidVOIDED: Invoice cancelled/voided
Enhanced reference to a payment term resource (returned in responses). Includes full payment term details in addition to id/key.
Factoring provider for invoice financing.
DENIM: Denim factoringHAULPAY: HaulPay factoring
{ "id": "550e8400-e29b-41d4-a716-446655440000", "friendlyId": "INV-00001", "key": "string", "orderId": "b3e1eced-f2bd-4d8c-9765-fbc9d1d222d5", "orderKey": "string", "shipmentId": "47efd5a2-af91-4417-950a-7f546cd1b5cf", "shipmentKey": "string", "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 }, "status": "DRAFT", "invoiceDate": "2019-08-24", "dueDate": "2019-08-24", "amount": 0, "currency": "USD", "reference": "string", "amountPaid": 0, "amountOwed": 0, "creditsApplied": 0, "paymentTerm": { "id": "550e8400-e29b-41d4-a716-446655440000", "key": "ERP-PAYTERM-NET30", "name": "Net 30", "description": "Payment due 30 days from invoice date", "days": 30, "quickPayFee": 0.05, "apOnly": false, "doNotUse": false, "createdAt": "2025-01-15T10:00:00Z", "updatedAt": "2025-01-15T14:30:00Z", "deletedAt": null }, "payments": [ { … } ], "credits": [ { … } ], "factorName": "DENIM", "factorJobId": "string", "factorStatus": "string", "qboId": "string", "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052", "documentUrl": "string", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z" }
- Mock serverhttps://docs.mvmnt.io/_mock/apis/openapi/invoices/{id}
- Productionhttps://api.mvmnt.io/v1/invoices/{id}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X DELETE \
'https://docs.mvmnt.io/_mock/apis/openapi/invoices/550e8400-e29b-41d4-a716-446655440000?by=key' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>'- Mock serverhttps://docs.mvmnt.io/_mock/apis/openapi/invoices/{id}/mark-awaiting
- Productionhttps://api.mvmnt.io/v1/invoices/{id}/mark-awaiting
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://docs.mvmnt.io/_mock/apis/openapi/invoices/550e8400-e29b-41d4-a716-446655440000/mark-awaiting?by=key' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"invoiceDate": "2025-01-15",
"dueDate": "2025-02-14"
}'Invoice marked as awaiting payment
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 invoice.
DRAFT: Invoice record exists but not finalizedAWAITING_PAYMENT: Invoice finalized, awaiting paymentPARTIALLY_PAID: Some payments received, balance remainsPAID: Fully paidVOIDED: Invoice cancelled/voided
Enhanced reference to a payment term resource (returned in responses). Includes full payment term details in addition to id/key.
Factoring provider for invoice financing.
DENIM: Denim factoringHAULPAY: HaulPay factoring
{ "id": "550e8400-e29b-41d4-a716-446655440000", "friendlyId": "INV-00001", "key": "string", "orderId": "b3e1eced-f2bd-4d8c-9765-fbc9d1d222d5", "orderKey": "string", "shipmentId": "47efd5a2-af91-4417-950a-7f546cd1b5cf", "shipmentKey": "string", "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 }, "status": "DRAFT", "invoiceDate": "2019-08-24", "dueDate": "2019-08-24", "amount": 0, "currency": "USD", "reference": "string", "amountPaid": 0, "amountOwed": 0, "creditsApplied": 0, "paymentTerm": { "id": "550e8400-e29b-41d4-a716-446655440000", "key": "ERP-PAYTERM-NET30", "name": "Net 30", "description": "Payment due 30 days from invoice date", "days": 30, "quickPayFee": 0.05, "apOnly": false, "doNotUse": false, "createdAt": "2025-01-15T10:00:00Z", "updatedAt": "2025-01-15T14:30:00Z", "deletedAt": null }, "payments": [ { … } ], "credits": [ { … } ], "factorName": "DENIM", "factorJobId": "string", "factorStatus": "string", "qboId": "string", "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052", "documentUrl": "string", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z" }
- Mock serverhttps://docs.mvmnt.io/_mock/apis/openapi/invoices/{id}/send
- Productionhttps://api.mvmnt.io/v1/invoices/{id}/send
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://docs.mvmnt.io/_mock/apis/openapi/invoices/550e8400-e29b-41d4-a716-446655440000/send?by=key' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"toEmails": [
"billing@customer.com"
]
}'{ "success": true, "emailId": "0514c0a0-6ba7-4f8f-8504-b765dccdc774" }
- Mock serverhttps://docs.mvmnt.io/_mock/apis/openapi/invoices/{id}/payments
- Productionhttps://api.mvmnt.io/v1/invoices/{id}/payments
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://docs.mvmnt.io/_mock/apis/openapi/invoices/550e8400-e29b-41d4-a716-446655440000/payments?by=key' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>'{ "data": [ { … } ], "totalPaid": 0, "openBalance": 0 }
Request
Generate invoices for multiple shipments in a single request.
- Creates invoice records for each shipment
- Generates PDF documents
- Optionally sends emails grouped by customer
Shipments that already have invoices or are missing requirements will be skipped and returned in the failed array.
- Mock serverhttps://docs.mvmnt.io/_mock/apis/openapi/invoices/batch-generate
- Productionhttps://api.mvmnt.io/v1/invoices/batch-generate
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://docs.mvmnt.io/_mock/apis/openapi/invoices/batch-generate \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"shipmentIds": [
"550e8400-e29b-41d4-a716-446655440000",
"550e8400-e29b-41d4-a716-446655440001"
]
}'{ "generated": [ { … } ], "failed": [ { … } ], "emailsSent": 0 }
- Mock serverhttps://docs.mvmnt.io/_mock/apis/openapi/invoices/aging-report
- Productionhttps://api.mvmnt.io/v1/invoices/aging-report
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://docs.mvmnt.io/_mock/apis/openapi/invoices/aging-report?customerId=497f6eca-6276-4993-bfeb-53cbbbba6f08&daysPerBucket=30&maxDays=120' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>'{ "asOfDate": "2019-08-24", "buckets": [ "Current", "1-30", "31-60", "61-90", "90+" ], "customers": [ { … } ], "totals": { "current": 0, "days1to30": 0, "days31to60": 0, "days61to90": 0, "over90": 0, "total": 0 } }
- Mock serverhttps://docs.mvmnt.io/_mock/apis/openapi/invoices/{id}/available-credits
- Productionhttps://api.mvmnt.io/v1/invoices/{id}/available-credits
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://docs.mvmnt.io/_mock/apis/openapi/invoices/550e8400-e29b-41d4-a716-446655440000/available-credits?by=key' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>'{ "availableCredits": [ { … } ], "totalAvailable": 0 }