Skip to content

MVMNT API (1.0.0)

The MVMNT API enables you to automate freight brokerage workflows by integrating directly with our Transportation Management System.

Authentication

OAuth 2.0 client credentials flow. See Authentication Guide for details.

Token Endpoint

POST https://api.mvmnt.io/oauth2/token

Request

Headers:

Content-Type: application/x-www-form-urlencoded

Body Parameters:

grant_type=client_credentials
client_id=YOUR_CLIENT_ID
client_secret=YOUR_CLIENT_SECRET

Example Request

curl -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"

Success Response

Status: 200 OK

{
  "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
  "token_type": "Bearer",
  "expires_in": 3600
}

Response Fields:

  • access_token: JWT Bearer token to use for API requests
  • token_type: Always Bearer
  • expires_in: Token lifetime in seconds (3600 = 1 hour)
Download OpenAPI description
Overview
Languages
Servers
Mock server
https://docs.mvmnt.io/_mock/apis/openapi
Production
https://api.mvmnt.io/v1

Carriers

Carrier management operations

Operations

Carrier Contacts

Carrier contact management operations

Operations

Carrier Factors

Carrier factor (factoring company) management operations

Operations

Carrier Payment Methods

Carrier payment method management operations

Operations

Companies

Company management operations

Operations

Credit Memos

AR credit memo management operations. Credit memos represent customer credits that can be applied to invoices.

Operations

Bills

AP bill management operations. Bills represent carrier and vendor invoices to be paid.

Operations

Bill Payments

AP bill payment management operations. Bill payments record payments made to carriers and vendors.

Operations

Customers

Customer management operations

Operations

Customer Contacts

Customer contact management operations

Operations

Documents

Document management operations. Documents are files (PDFs, images) that can be attached to orders, loads, or services.

Operations

Invoices

AR invoice management operations. Invoices represent customer billing for shipment services.

Operations

Filter invoices

Request

Search for AR invoices using filter criteria.

Common Filters

  • By customer: { "filter": { "customerId": { "equalTo": "uuid" } } }
  • Unpaid: { "filter": { "status": { "in": ["AWAITING_PAYMENT", "PARTIALLY_PAID"] } } }
  • Overdue: { "filter": { "overdue": true } }
  • By shipment: { "filter": { "shipmentId": { "equalTo": "uuid" } } }
Security
BearerAuth
Bodyapplication/jsonrequired
filterobject(InvoiceFilter)
pageSizeinteger[ 1 .. 100 ]
Default 50
cursorstring
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"
        ]
      }
    }
  }'

Responses

Invoices matching filter criteria

Bodyapplication/json
dataArray of objects(Invoice)required
data[].​idstring(uuid)required
Example: "550e8400-e29b-41d4-a716-446655440000"
data[].​friendlyIdstringrequired

Human-readable invoice ID

Example: "INV-00001"
data[].​keystring or null

Client-defined key

data[].​orderIdstring(uuid)

Associated order ID

data[].​orderKeystring or null

Order friendly ID

data[].​shipmentIdstring(uuid)

Associated shipment ID

data[].​shipmentKeystring or null

Shipment friendly ID

data[].​customerobject(CustomerReference)

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[].​statusstring(InvoiceStatus)required

Current status of the invoice.

  • DRAFT: Invoice record exists but not finalized
  • AWAITING_PAYMENT: Invoice finalized, awaiting payment
  • PARTIALLY_PAID: Some payments received, balance remains
  • PAID: Fully paid
  • VOIDED: Invoice cancelled/voided
Enum"DRAFT""AWAITING_PAYMENT""PARTIALLY_PAID""PAID""VOIDED"
data[].​invoiceDatestring(date)required

Date invoice was issued

data[].​dueDatestring or null(date)

Payment due date

data[].​amountnumberrequired

Total invoice amount

data[].​currencystring or null

Currency code (USD, CAD)

Example: "USD"
data[].​referencestring or null

External reference number

data[].​amountPaidnumber

Total payments received

data[].​amountOwednumber

Outstanding balance

data[].​creditsAppliednumber or null

Total credits applied

data[].​paymentTermobject(PaymentTermReference)

Enhanced reference to a payment term resource (returned in responses). Includes full payment term details in addition to id/key.

data[].​paymentsArray of objects(InvoicePayment)

Payments applied to this invoice

data[].​creditsArray of objects(InvoiceCredit)

Credits applied to this invoice

data[].​factorNamestring(FactoringProvider)

Factoring provider for invoice financing.

  • DENIM: Denim factoring
  • HAULPAY: HaulPay factoring
Enum"DENIM""HAULPAY"
data[].​factorJobIdstring or null

External factoring job ID

data[].​factorStatusstring or null

Current factoring status

data[].​qboIdstring or null

QuickBooks Online invoice ID

data[].​documentIdstring or null(uuid)

Generated invoice PDF document ID

data[].​documentUrlstring or null

Download URL for invoice PDF

data[].​createdAtstring(date-time)required
data[].​updatedAtstring or null(date-time)
paginationobject(PaginationInfo)required
pagination.​pageSizeintegerrequired

Number of items per page

Example: 50
pagination.​hasNextPagebooleanrequired

Whether there are more pages

Example: true
pagination.​hasPreviousPageboolean

Whether there are previous pages

Example: false
pagination.​endCursorstring or null

Cursor for the next page (null if no next page)

Example: "eyJpZCI6IjU1MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwMCJ9"
Response
application/json
{ "data": [ {} ], "pagination": { "pageSize": 50, "hasNextPage": true, "hasPreviousPage": false, "endCursor": "eyJpZCI6IjU1MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwMCJ9" } }

Create an invoice

Request

Create a new invoice for an order.

What happens

  • Invoice record is created for the order
  • Order status updates to DELIVERED_UNPAID
  • Due date calculated from payment term if not provided

Note

Each shipment can have only one AR invoice. Use POST /shipments/{id}/invoice/generate to generate the invoice PDF document.

Security
BearerAuth
Bodyapplication/jsonrequired
orderIdstring(uuid)required

Order to invoice

invoiceDatestring(date)required

Invoice date

dueDatestring(date)

Payment due date

amountnumberrequired

Invoice amount (typically calculated from order charges)

referencestring<= 500 characters

External reference number

currencystring

Currency code (defaults to customer currency)

paymentTermIdstring(uuid)

Payment term (defaults to customer default)

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"
  }'

Responses

Invoice created successfully

Bodyapplication/json
idstring(uuid)required
Example: "550e8400-e29b-41d4-a716-446655440000"
friendlyIdstringrequired

Human-readable invoice ID

Example: "INV-00001"
keystring or null

Client-defined key

orderIdstring(uuid)

Associated order ID

orderKeystring or null

Order friendly ID

shipmentIdstring(uuid)

Associated shipment ID

shipmentKeystring or null

Shipment friendly ID

customerobject(CustomerReference)

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.

statusstring(InvoiceStatus)required

Current status of the invoice.

  • DRAFT: Invoice record exists but not finalized
  • AWAITING_PAYMENT: Invoice finalized, awaiting payment
  • PARTIALLY_PAID: Some payments received, balance remains
  • PAID: Fully paid
  • VOIDED: Invoice cancelled/voided
Enum"DRAFT""AWAITING_PAYMENT""PARTIALLY_PAID""PAID""VOIDED"
invoiceDatestring(date)required

Date invoice was issued

dueDatestring or null(date)

Payment due date

amountnumberrequired

Total invoice amount

currencystring or null

Currency code (USD, CAD)

Example: "USD"
referencestring or null

External reference number

amountPaidnumber

Total payments received

amountOwednumber

Outstanding balance

creditsAppliednumber or null

Total credits applied

paymentTermobject(PaymentTermReference)

Enhanced reference to a payment term resource (returned in responses). Includes full payment term details in addition to id/key.

paymentsArray of objects(InvoicePayment)

Payments applied to this invoice

creditsArray of objects(InvoiceCredit)

Credits applied to this invoice

factorNamestring(FactoringProvider)

Factoring provider for invoice financing.

  • DENIM: Denim factoring
  • HAULPAY: HaulPay factoring
Enum"DENIM""HAULPAY"
factorJobIdstring or null

External factoring job ID

factorStatusstring or null

Current factoring status

qboIdstring or null

QuickBooks Online invoice ID

documentIdstring or null(uuid)

Generated invoice PDF document ID

documentUrlstring or null

Download URL for invoice PDF

createdAtstring(date-time)required
updatedAtstring or null(date-time)
Response
application/json
{ "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" }

Get an invoice

Request

Retrieve an invoice by ID.

The response includes payments, credits, and document info.

Security
BearerAuth
Path
idstringrequired

Resource ID (UUID) or client key

Example: 550e8400-e29b-41d4-a716-446655440000
Query
bystring

Specify lookup type for faster retrieval. If omitted, defaults to looking up by ID first, then falls back to client key if not found. Use by=key when you know you're providing a client key for best performance.

Enum"id""key"
Example: by=key
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>'

Responses

Invoice retrieved successfully

Bodyapplication/json
idstring(uuid)required
Example: "550e8400-e29b-41d4-a716-446655440000"
friendlyIdstringrequired

Human-readable invoice ID

Example: "INV-00001"
keystring or null

Client-defined key

orderIdstring(uuid)

Associated order ID

orderKeystring or null

Order friendly ID

shipmentIdstring(uuid)

Associated shipment ID

shipmentKeystring or null

Shipment friendly ID

customerobject(CustomerReference)

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.

statusstring(InvoiceStatus)required

Current status of the invoice.

  • DRAFT: Invoice record exists but not finalized
  • AWAITING_PAYMENT: Invoice finalized, awaiting payment
  • PARTIALLY_PAID: Some payments received, balance remains
  • PAID: Fully paid
  • VOIDED: Invoice cancelled/voided
Enum"DRAFT""AWAITING_PAYMENT""PARTIALLY_PAID""PAID""VOIDED"
invoiceDatestring(date)required

Date invoice was issued

dueDatestring or null(date)

Payment due date

amountnumberrequired

Total invoice amount

currencystring or null

Currency code (USD, CAD)

Example: "USD"
referencestring or null

External reference number

amountPaidnumber

Total payments received

amountOwednumber

Outstanding balance

creditsAppliednumber or null

Total credits applied

paymentTermobject(PaymentTermReference)

Enhanced reference to a payment term resource (returned in responses). Includes full payment term details in addition to id/key.

paymentsArray of objects(InvoicePayment)

Payments applied to this invoice

creditsArray of objects(InvoiceCredit)

Credits applied to this invoice

factorNamestring(FactoringProvider)

Factoring provider for invoice financing.

  • DENIM: Denim factoring
  • HAULPAY: HaulPay factoring
Enum"DENIM""HAULPAY"
factorJobIdstring or null

External factoring job ID

factorStatusstring or null

Current factoring status

qboIdstring or null

QuickBooks Online invoice ID

documentIdstring or null(uuid)

Generated invoice PDF document ID

documentUrlstring or null

Download URL for invoice PDF

createdAtstring(date-time)required
updatedAtstring or null(date-time)
Response
application/json
{ "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" }

Update an invoice

Request

Update invoice fields.

Note: Amount cannot be changed directly. Update order charges instead.

Security
BearerAuth
Path
idstringrequired

Resource ID (UUID) or client key

Example: 550e8400-e29b-41d4-a716-446655440000
Query
bystring

Specify lookup type for faster retrieval. If omitted, defaults to looking up by ID first, then falls back to client key if not found. Use by=key when you know you're providing a client key for best performance.

Enum"id""key"
Example: by=key
Bodyapplication/jsonrequired
dueDatestring or null(date)
referencestring or null
paymentTermIdstring(uuid)
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"
  }'

Responses

Invoice updated successfully

Bodyapplication/json
idstring(uuid)required
Example: "550e8400-e29b-41d4-a716-446655440000"
friendlyIdstringrequired

Human-readable invoice ID

Example: "INV-00001"
keystring or null

Client-defined key

orderIdstring(uuid)

Associated order ID

orderKeystring or null

Order friendly ID

shipmentIdstring(uuid)

Associated shipment ID

shipmentKeystring or null

Shipment friendly ID

customerobject(CustomerReference)

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.

statusstring(InvoiceStatus)required

Current status of the invoice.

  • DRAFT: Invoice record exists but not finalized
  • AWAITING_PAYMENT: Invoice finalized, awaiting payment
  • PARTIALLY_PAID: Some payments received, balance remains
  • PAID: Fully paid
  • VOIDED: Invoice cancelled/voided
Enum"DRAFT""AWAITING_PAYMENT""PARTIALLY_PAID""PAID""VOIDED"
invoiceDatestring(date)required

Date invoice was issued

dueDatestring or null(date)

Payment due date

amountnumberrequired

Total invoice amount

currencystring or null

Currency code (USD, CAD)

Example: "USD"
referencestring or null

External reference number

amountPaidnumber

Total payments received

amountOwednumber

Outstanding balance

creditsAppliednumber or null

Total credits applied

paymentTermobject(PaymentTermReference)

Enhanced reference to a payment term resource (returned in responses). Includes full payment term details in addition to id/key.

paymentsArray of objects(InvoicePayment)

Payments applied to this invoice

creditsArray of objects(InvoiceCredit)

Credits applied to this invoice

factorNamestring(FactoringProvider)

Factoring provider for invoice financing.

  • DENIM: Denim factoring
  • HAULPAY: HaulPay factoring
Enum"DENIM""HAULPAY"
factorJobIdstring or null

External factoring job ID

factorStatusstring or null

Current factoring status

qboIdstring or null

QuickBooks Online invoice ID

documentIdstring or null(uuid)

Generated invoice PDF document ID

documentUrlstring or null

Download URL for invoice PDF

createdAtstring(date-time)required
updatedAtstring or null(date-time)
Response
application/json
{ "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" }

Void an invoice

Request

Void/cancel an invoice.

Prerequisites

  • Invoice must not have any payments applied
  • Invoice must not be factored
Security
BearerAuth
Path
idstringrequired

Resource ID (UUID) or client key

Example: 550e8400-e29b-41d4-a716-446655440000
Query
bystring

Specify lookup type for faster retrieval. If omitted, defaults to looking up by ID first, then falls back to client key if not found. Use by=key when you know you're providing a client key for best performance.

Enum"id""key"
Example: by=key
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>'

Responses

Invoice voided successfully

Response
No content

Mark invoice as awaiting payment

Request

Mark invoice as awaiting payment.

What happens

  • Sets invoice date and due date
  • Updates order status to DELIVERED_UNPAID
  • Invoice is now ready for payment collection
Security
BearerAuth
Path
idstringrequired

Resource ID (UUID) or client key

Example: 550e8400-e29b-41d4-a716-446655440000
Query
bystring

Specify lookup type for faster retrieval. If omitted, defaults to looking up by ID first, then falls back to client key if not found. Use by=key when you know you're providing a client key for best performance.

Enum"id""key"
Example: by=key
Bodyapplication/json
invoiceDatestring(date)

Invoice date (defaults to today)

dueDatestring(date)

Due date (defaults based on payment term)

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"
  }'

Responses

Invoice marked as awaiting payment

Bodyapplication/json
idstring(uuid)required
Example: "550e8400-e29b-41d4-a716-446655440000"
friendlyIdstringrequired

Human-readable invoice ID

Example: "INV-00001"
keystring or null

Client-defined key

orderIdstring(uuid)

Associated order ID

orderKeystring or null

Order friendly ID

shipmentIdstring(uuid)

Associated shipment ID

shipmentKeystring or null

Shipment friendly ID

customerobject(CustomerReference)

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.

statusstring(InvoiceStatus)required

Current status of the invoice.

  • DRAFT: Invoice record exists but not finalized
  • AWAITING_PAYMENT: Invoice finalized, awaiting payment
  • PARTIALLY_PAID: Some payments received, balance remains
  • PAID: Fully paid
  • VOIDED: Invoice cancelled/voided
Enum"DRAFT""AWAITING_PAYMENT""PARTIALLY_PAID""PAID""VOIDED"
invoiceDatestring(date)required

Date invoice was issued

dueDatestring or null(date)

Payment due date

amountnumberrequired

Total invoice amount

currencystring or null

Currency code (USD, CAD)

Example: "USD"
referencestring or null

External reference number

amountPaidnumber

Total payments received

amountOwednumber

Outstanding balance

creditsAppliednumber or null

Total credits applied

paymentTermobject(PaymentTermReference)

Enhanced reference to a payment term resource (returned in responses). Includes full payment term details in addition to id/key.

paymentsArray of objects(InvoicePayment)

Payments applied to this invoice

creditsArray of objects(InvoiceCredit)

Credits applied to this invoice

factorNamestring(FactoringProvider)

Factoring provider for invoice financing.

  • DENIM: Denim factoring
  • HAULPAY: HaulPay factoring
Enum"DENIM""HAULPAY"
factorJobIdstring or null

External factoring job ID

factorStatusstring or null

Current factoring status

qboIdstring or null

QuickBooks Online invoice ID

documentIdstring or null(uuid)

Generated invoice PDF document ID

documentUrlstring or null

Download URL for invoice PDF

createdAtstring(date-time)required
updatedAtstring or null(date-time)
Response
application/json
{ "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" }

Email invoice

Request

Send invoice to customer via email.

What happens

  • Generates invoice PDF if not already generated
  • Sends email with PDF attachment
  • Logs email in activity feed
Security
BearerAuth
Path
idstringrequired

Resource ID (UUID) or client key

Example: 550e8400-e29b-41d4-a716-446655440000
Query
bystring

Specify lookup type for faster retrieval. If omitted, defaults to looking up by ID first, then falls back to client key if not found. Use by=key when you know you're providing a client key for best performance.

Enum"id""key"
Example: by=key
Bodyapplication/jsonrequired
toEmailsArray of strings(email)non-emptyrequired
ccEmailsArray of strings(email)
subjectstring

Email subject (defaults to standard invoice subject)

messagestring

Email body message

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"
    ]
  }'

Responses

Email sent successfully

Bodyapplication/json
successboolean
emailIdstring(uuid)
Response
application/json
{ "success": true, "emailId": "0514c0a0-6ba7-4f8f-8504-b765dccdc774" }

Get invoice payments

Request

List all payments applied to a specific invoice.

Security
BearerAuth
Path
idstringrequired

Resource ID (UUID) or client key

Example: 550e8400-e29b-41d4-a716-446655440000
Query
bystring

Specify lookup type for faster retrieval. If omitted, defaults to looking up by ID first, then falls back to client key if not found. Use by=key when you know you're providing a client key for best performance.

Enum"id""key"
Example: by=key
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>'

Responses

Payments retrieved successfully

Bodyapplication/json
dataArray of objects(InvoicePayment)
totalPaidnumber
openBalancenumber
Response
application/json
{ "data": [ {} ], "totalPaid": 0, "openBalance": 0 }

Batch generate invoices

Request

Generate invoices for multiple shipments in a single request.

What happens

  • Creates invoice records for each shipment
  • Generates PDF documents
  • Optionally sends emails grouped by customer

Note

Shipments that already have invoices or are missing requirements will be skipped and returned in the failed array.

Security
BearerAuth
Bodyapplication/jsonrequired
orderIdsArray of strings(uuid)<= 100 itemsrequired

Order IDs to generate invoices for

sendEmailboolean

Email invoices to customers after generation

Default false
emailConfigobject
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"
    ]
  }'

Responses

Batch generation completed

Bodyapplication/json
generatedArray of objects
failedArray of objects
emailsSentinteger
Response
application/json
{ "generated": [ {} ], "failed": [ {} ], "emailsSent": 0 }

Get aging report

Request

Generate accounts receivable aging report.

Report buckets

By default: Current, 1-30, 31-60, 61-90, 90+ days

Export formats

  • JSON (default)
  • CSV (set Accept header to text/csv)
Security
BearerAuth
Query
customerIdstring(uuid)

Filter by specific customer

daysPerBucketinteger

Days per aging bucket

Default 30
maxDaysinteger

Maximum days to track

Default 120
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>'

Responses

Aging report generated

Body
asOfDatestring(date)required
bucketsArray of stringsrequired
Example: ["Current","1-30","31-60","61-90","90+"]
customersArray of objectsrequired
customers[].​idstring(uuid)
customers[].​namestring
customers[].​friendlyIdstring
customers[].​currentnumber
customers[].​days1to30number
customers[].​days31to60number
customers[].​days61to90number
customers[].​over90number
customers[].​totalnumber
totalsobjectrequired
totals.​currentnumber
totals.​days1to30number
totals.​days31to60number
totals.​days61to90number
totals.​over90number
totals.​totalnumber
Response
{ "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 } }

Get available credits for invoice

Request

List credit memos that can be applied to an invoice.

Returns credits for the same customer with remaining balance and matching currency.

Security
BearerAuth
Path
idstringrequired

Resource ID (UUID) or client key

Example: 550e8400-e29b-41d4-a716-446655440000
Query
bystring

Specify lookup type for faster retrieval. If omitted, defaults to looking up by ID first, then falls back to client key if not found. Use by=key when you know you're providing a client key for best performance.

Enum"id""key"
Example: by=key
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>'

Responses

Available credits retrieved

Bodyapplication/json
availableCreditsArray of objectsrequired
availableCredits[].​idstring(uuid)
availableCredits[].​referencestring or null
availableCredits[].​remainingBalancenumber
availableCredits[].​currencystring
availableCredits[].​memoDatestring(date)
availableCredits[].​notesstring or null
totalAvailablenumberrequired

Total available credit balance

Response
application/json
{ "availableCredits": [ {} ], "totalAvailable": 0 }

Loads

Load management operations. Loads represent carrier execution - which carrier is moving the freight.

Operations

Locations

Location management operations

Operations

Location Contacts

Location contact management operations

Operations

Payment Terms

Payment term management operations

Operations

Payments

AR payment management operations. Payments represent received customer payments applied to invoices.

Operations

Quotes

Quote management operations. Quotes are pricing requests/responses that can be converted to shipments.

Operations

Saved Searches

Saved search management operations

Operations

Services

Service (vended service) management operations. Services represent non-carrier vendor work (drayage, customs, warehousing).

Operations

Shipments

Shipment tracking and management operations. Shipments contain orders, loads, and services.

Operations

Teams

Team management operations

Operations

Users

User management operations

Operations

Vendors

Vendor management operations

Operations

Vendor Contacts

Vendor contact management operations

Operations

Vendor Payment Methods

Vendor payment method management operations

Operations

Event Notifications

Webhooks