---
title: "List Invoices"
method: GET
path: "/v5/invoices"
tags: ["Invoicing"]
---

# List Invoices

`GET /v5/invoices`

## Request

- Base URL: `https://sandbox.nmi.com/api`
- URL: `https://sandbox.nmi.com/api/v5/invoices`
- Auth: API key in header `Authorization`

Retrieve a list of invoices for the merchant with optional filtering and cursor-based pagination.

To look up a single invoice, use **Get Invoice**.

## Query parameters

- `status` 'open' | 'partially_paid' | 'paid' | 'closed' | 'overdue'
- `customer_id` string
- `date_from` string, date
- `date_to` string, date
- `cursor` string
- `per_page` integer

## Response `200`

Success

- object
  - `invoices` InvoiceResponse[]
    - `object` 'invoice', required: Resource type identifier
    - `id` integer, required: Invoice ID
    - `status` 'open' | 'partially_paid' | 'paid' | 'closed' | 'overdue': Current status of the invoice
    - `amount` string: Total amount of the invoice. Format: `x.xx`
    - `subtotal` number, nullable: Subtotal amount before tax and shipping
    - `payment_terms` string: Payment terms for the invoice (e.g., 'Due Upon Receipt', '30 days')
    - `payment_methods_allowed` string[]: Allowed payment methods: 'cc' = Credit Card, 'ck' = Check, 'cs' = Cash
    - `processor_id` string, nullable: Processor ID for payment processing
    - `currency` string: Currency code (ISO 4217, e.g., USD, EUR)
    - `created_date` string, date-time, nullable: Date and time when the invoice was created in UTC ISO 8601 format
    - `updated_date` string, date-time, nullable: Date and time when the invoice was last updated in UTC ISO 8601 format
    - `billing_address` object: Billing address information
      - `first_name` string: First name
      - `last_name` string: Last name
      - `company` string: Company name
      - `email` string, email: Email address
      - `phone` string: Phone number
      - `fax` string: Fax number
      - `website` string: Website
      - `address1` string: Address line 1
      - `address2` string: Address line 2
      - `city` string: City
      - `state` string: State or province
      - `zip` string: ZIP or postal code
      - `country` string: Country code (ISO 3166-1 alpha-2)
    - `shipping_address` object: Shipping address information
      - `first_name` string: First name
      - `last_name` string: Last name
      - `company` string: Company name
      - `email` string, email: Email address
      - `address1` string: Address line 1
      - `address2` string: Address line 2
      - `city` string: City
      - `state` string: State or province
      - `zip` string: ZIP or postal code
      - `country` string: Country code (ISO 3166-1 alpha-2)
    - `order_details` object: Order details
      - `order_id` string: Order ID
      - `ip_address` string: IP address
      - `order_description` string: Order description
      - `po_number` string: Purchase order number
      - `customer_id` string: Customer ID
      - `customer_tax_id` string: Customer tax ID
      - `tax` string: Tax amount. Format: `x.xx`
      - `shipping` string: Shipping amount. Format: `x.xx`
      - `discount_amount` string: Discount amount. Format: `x.xx`
      - `surcharge` string: Surcharge amount. Format: `x.xx`
      - `tip` string: Tip amount. Format: `x.xx`
      - `shipping_carrier` string: Shipping carrier
      - `tracking_number` string: Tracking number
      - `shipping_date` string, date-time, nullable: Shipping date in UTC ISO 8601 format
    - `merchant_defined_fields` MerchantDefinedFields: Custom fields configured in the merchant control panel under Settings → Merchant Defined Fields (`field_1` through `field_20`).
      - `field_1` string: Merchant defined field 1
      - `field_2` string: Merchant defined field 2
      - `field_3` string: Merchant defined field 3
      - `field_4` string: Merchant defined field 4
      - `field_5` string: Merchant defined field 5
      - `field_6` string: Merchant defined field 6
      - `field_7` string: Merchant defined field 7
      - `field_8` string: Merchant defined field 8
      - `field_9` string: Merchant defined field 9
      - `field_10` string: Merchant defined field 10
      - `field_11` string: Merchant defined field 11
      - `field_12` string: Merchant defined field 12
      - `field_13` string: Merchant defined field 13
      - `field_14` string: Merchant defined field 14
      - `field_15` string: Merchant defined field 15
      - `field_16` string: Merchant defined field 16
      - `field_17` string: Merchant defined field 17
      - `field_18` string: Merchant defined field 18
      - `field_19` string: Merchant defined field 19
      - `field_20` string: Merchant defined field 20
  - `per_page` integer
  - `next_cursor` string, nullable: Cursor for the next page. Pass it as the `cursor` parameter on the next request. Omitted when there are no more results.
  - `has_more` boolean: Whether there are more results beyond this page.

## Other responses

- `400`: Bad Request. For example, `date_from` or `date_to` is not a real calendar date (such as 2026-02-30), or `cursor` is invalid, tampered with, or was not returned by a previous request.
- `401`: Unauthorized
- `422`: Unprocessable request. A query parameter value is not allowed (such as an unsupported `status`, a malformed date, or an out-of-range `per_page`), an unsupported query parameter was supplied, or the search matched too many results to return. Narrow the results with filters such as a status or date range and try again.

---

[API](https://skmtc.dev/nmi/apis/payments-api.md) - [All operations](https://skmtc.dev/nmi/apis/payments-api/llms.txt) - [OpenAPI document](https://skmtc.dev/nmi/apis/payments-api/revisions/c03727f27e27?raw)
