---
title: "Lists report-ready invoice-line rows from the invoice reporting view, including line type,
pricing, tax, and aging detail joined to sales-order and shipment context so callers do not need
to hand-join invoices to invoice line items, sales orders, and shipments."
method: POST
path: "/api/reporting/invoice/list"
tags: ["Reporting"]
---

# Lists report-ready invoice-line rows from the invoice reporting view, including line type,
pricing, tax, and aging detail joined to sales-order and shipment context so callers do not need
to hand-join invoices to invoice line items, sales orders, and shipments.

`POST /api/reporting/invoice/list`

## Query parameters

- `Sort.Field` string
- `Sort.Dir` 'ascending' | 'descending' — Specify sorting direction.
- `Skip` integer
- `Take` integer

## Request body

- DtoReportingInvoiceReportFilter — Constrained filter for the invoice reporting list endpoint. Every field maps to a fixed, server-controlled column; values are always bound as Dapper parameters and never concatenated into SQL.
  - `issuedDateFrom` string, date-time, nullable — Inclusive lower bound applied to the invoice's Issued Date. Null means no lower bound.
  - `issuedDateTo` string, date-time, nullable — Inclusive upper bound applied to the invoice's Issued Date (the whole `to` day is included). Null means no upper bound.
  - `invoiceStatus` string, nullable — Optional exact-match filter on the invoice lifecycle status (e.g. "Issued", "Paid"). Null means no status filter.
  - `lineType` string, nullable — Optional exact-match filter on the line type (Part, Shipping, Fee, Deposit, Discount, Refund, Tax, or NA). Null means no line-type filter.

## Response `200`

A page of invoice report rows with the total matching count.

- DtoPagedResultDtoDtoReportingInvoiceReportRow — Paged result
  - `data` DtoReportingInvoiceReportRow[], required — The data
    - `company` string, nullable — Issuing company / tenant company name.
    - `invoiceNumber` integer, nullable — Numeric invoice identifier assigned by Fulcrum.
    - `invoiceStatus` string, nullable — Lifecycle state — typically New, Approved, Issued, Paid.
    - `salesOrderNumber` integer, nullable — Number identifying the sales order being invoiced.
    - `customerPurchaseOrder` string, nullable — Customer's PO number recorded on the sales order.
    - `customerName` string, nullable — Display name of the billed customer.
    - `salesPerson` string, nullable — Name of the salesperson associated with the sales order.
    - `isDeposit` string, nullable — Set to the string "Deposit" when the row represents a deposit; null otherwise.
    - `createdDate` string, date-time, nullable — UTC timestamp when the invoice record was created.
    - `lineType` string, nullable — Discriminator — Part, Shipping, Fee, Deposit, Discount, Refund, Tax, or NA.
    - `lineItemName` string, nullable — Item name (for part lines) or descriptive label for non-part lines.
    - `customerPartNumber` string, nullable — Customer's part number for this line, when supplied.
    - `customerPartDescription` string, nullable — Customer's description for this line, when supplied.
    - `itemDescription` string, nullable — Internal item description for the line.
    - `accountingCode` string, nullable — Accounting code mapped to the invoice line.
    - `itemTags` string, nullable — Comma-separated list of descriptive tags from the item.
    - `issuedDate` string, date-time, nullable — Date the invoice was issued. NULL for drafts.
    - `dueDate` string, date-time, nullable — Date payment is due per the invoice's payment terms.
    - `salesOrderTotal` number, double, nullable — Total of the source sales order (may differ from invoice total).
    - `unitPrice` number, double, nullable — Per-unit price for the line (varies by Line Type; negative for discounts).
    - `quantityInvoiced` number, double, nullable — Quantity billed on this line.
    - `invoiceAmount` number, double, nullable — Extended amount for this line before tax.
    - `isTaxable` integer, nullable — 1 when the line is subject to taxation, otherwise 0. (Computed 1/0 flag in the view.)
    - `taxCode` string, nullable — Descriptive name of the tax code applied to the line, when applicable.
    - `taxTotal` number, double, nullable — Equivalent to Invoice Amount for tax line items; 0 otherwise.
    - `invoiceTotalWithoutTax` number, double, nullable — Invoice-level total excluding tax (repeats on every line of the invoice).
    - `invoiceTotalWithTax` number, double, nullable — Invoice-level total including tax (repeats on every line of the invoice).
    - `paidDate` string, date-time, nullable — Date the invoice was marked paid; null while open.
    - `late` integer, nullable — 1 when the invoice is past Due Date and unpaid or was paid late, otherwise 0. (Computed 1/0 flag in the view.)
    - `daysLate` integer, nullable — Days between Due Date and either Paid Date (if paid) or today (if open). 0 if not yet due.
    - `customerCurrencyCode` string, nullable — ISO currency code of the customer's billing currency.
    - `shipmentName` string, nullable — Concatenated names of shipments invoiced on this line (comma-separated).
    - `shipmentsLine1s` string, nullable — Together with ShipmentsLine2s, concatenated shipment address values (comma-separated).
    - `shipmentsLine2s` string, nullable — Together with ShipmentsLine1s, concatenated shipment address values (comma-separated).
    - `shipmentsCities` string, nullable — Concatenated shipment cities (comma-separated).
    - `shipmentsStates` string, nullable — Concatenated shipment state/provinces (comma-separated).
    - `shipmentsCountries` string, nullable — Concatenated shipment countries (comma-separated).
    - `accountingClass` string, nullable — Accounting classification for the item associated to the line, if applicable.
  - `page` integer, required — The 1-indexed page
  - `pageSize` integer, required — The page size
  - `totalCount` integer, required — The total count of records
  - `totalPages` integer, required — The total pages
  - `hasPreviousPage` boolean, required — True if there is a previous page
  - `hasNextPage` boolean, required — True if there is a next page

## Other responses

- `403` — The viewer lacks the View Invoices permission.

---

[API](https://skmtc.net/fulcrumpro/apis/fulcrum-publicapi.md) · [All operations](https://skmtc.net/fulcrumpro/apis/fulcrum-publicapi/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/fulcrumpro/fulcrum-publicapi/versions/1b5649cff14a/schema)
