Invoices

Create an invoice

Changed on

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.

post/invoices

Request

  • Base URL: https://api.mvmnt.io/v1
  • URL: https://api.mvmnt.io/v1/invoices
  • Auth: HTTP bearer

Request body

orderIdstring uuid required

Order to invoice

invoiceDatestring date required

Invoice date

dueDatestring date

Payment due date

amountnumber required

Invoice amount (typically calculated from order charges)

referencestring

External reference number

currencystring

Currency code (defaults to customer currency)

paymentTermIdstring uuid

Payment term (defaults to customer default)

Response

Invoice created successfully

idstring uuid required
friendlyIdstring required

Human-readable invoice ID

keystring nullable

Client-defined key

orderIdstring uuid

Associated order ID

orderKeystring nullable

Order friendly ID

shipmentIdstring uuid

Associated shipment ID

shipmentKeystring nullable

Shipment friendly ID

status'DRAFT' | 'AWAITING_PAYMENT' | 'PARTIALLY_PAID' | 'PAID' | 'VOIDED' 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
invoiceDatestring date required

Date invoice was issued

dueDatestring date nullable

Payment due date

amountnumber required

Total invoice amount

currencystring nullable

Currency code (USD, CAD)

referencestring nullable

External reference number

amountPaidnumber

Total payments received

amountOwednumber

Outstanding balance

creditsAppliednumber nullable

Total credits applied

factorName'ARTISPAY' | 'DENIM' | 'HAUL_PAY' | 'TRIUMPH'

Factoring provider for invoice financing.

  • DENIM: Denim factoring
  • HAULPAY: HaulPay factoring
factorJobIdstring nullable

External factoring job ID

factorStatusstring nullable

Current factoring status

qboIdstring nullable

QuickBooks Online invoice ID

documentIdstring uuid nullable

Generated invoice PDF document ID

documentUrlstring nullable

Download URL for invoice PDF

createdAtstring date-time required
updatedAtstring date-time nullable

Example response

{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "friendlyId": "INV-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"
  },
  "currency": "USD",
  "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": 5,
    "createdAt": "2025-01-15T10:00:00Z",
    "updatedAt": "2025-01-15T14:30:00Z"
  }
}

Changes

    • breaking

      the response's property type changed from string to no type for status

    • info

      added to the response property allOf list for the response status

    • info

      removed the AWAITING_PAYMENT enum value from the response property for the response status

    • info

      removed the DRAFT enum value from the response property for the response status

    • info

      removed the PAID enum value from the response property for the response status

    • info

      removed the PARTIALLY_PAID enum value from the response property for the response status

    • info

      removed the VOIDED enum value from the response property for the response status

    • breaking

      the response's body type changed from object to no type for status

    • breaking

      removed the required property from the response with the status

    • breaking

      removed the required property from the response with the status

    • breaking

      removed the required property from the response with the status

    • breaking

      removed the required property from the response with the status

    • breaking

      removed the required property from the response with the status

    • breaking

      removed the required property from the response with the status

    • breaking

      removed the required property from the response with the status

    • breaking

      removed the required property from the response with the status

    • breaking

      removed the required property from the response with the status

    • info

      added subschema #2 to the response body allOf list for the response status

    • info

      media type application/json was changed to a more specific media type application/problem+json for the response status

    • info

      media type application/json was changed to a more specific media type application/problem+json for the response status

    • info

      media type application/json was changed to a more specific media type application/problem+json for the response status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the required property to the response with the status

    • info

      added the required property to the response with the status

    • info

      added the required property to the response with the status

    • info

      added the required property to the response with the status

    • info

      added the required property to the response with the status

    • info

      added the required property to the response with the status

    • info

      added the required property to the response with the status

    • info

      added the required property to the response with the status

    • info

      added the required property to the response with the status