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.

Postman setup guide: API Clients.

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)

Idempotency

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.

Overview
Languages
Servers
Production
https://api.mvmnt.io/v1
Demo (non-production)
https://api.demo.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://api.mvmnt.io/v1/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
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"ARTISPAY""DENIM""HAUL_PAY""TRIUMPH"
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)
paginationobject(PaginationInfo)required
pageSizeintegerrequired

Number of items per page

Example: 50
hasNextPagebooleanrequired

Whether there are more pages

Example: true
hasPreviousPageboolean

Whether there are previous pages

Example: false
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://api.mvmnt.io/v1/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"ARTISPAY""DENIM""HAUL_PAY""TRIUMPH"
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": "ARTISPAY", "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://api.mvmnt.io/v1/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"ARTISPAY""DENIM""HAUL_PAY""TRIUMPH"
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": "ARTISPAY", "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://api.mvmnt.io/v1/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"ARTISPAY""DENIM""HAUL_PAY""TRIUMPH"
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": "ARTISPAY", "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://api.mvmnt.io/v1/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://api.mvmnt.io/v1/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"ARTISPAY""DENIM""HAUL_PAY""TRIUMPH"
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": "ARTISPAY", "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://api.mvmnt.io/v1/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://api.mvmnt.io/v1/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://api.mvmnt.io/v1/invoices/batch-generate \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "orderIds": [
      "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://api.mvmnt.io/v1/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
idstring(uuid)
namestring
friendlyIdstring
currentnumber
days1to30number
days31to60number
days61to90number
over90number
totalnumber
totalsobjectrequired
currentnumber
days1to30number
days31to60number
days61to90number
over90number
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://api.mvmnt.io/v1/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
idstring(uuid)
referencestring or null
remainingBalancenumber
currencystring
memoDatestring(date)
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

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.

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