*Workflows › Reference › Actions › Sales*

# List invoices

> Lists invoices with the public contract's filters: payment status, contact, order, project and invoice date range.

## At a glance

| Property | Value |
| --- | --- |
| Domain | `invoices` |
| Group in the editor | Sales › Invoices |
| Runs as | The owner of the workflow, with their permissions |
| Permission | View access to Sales. Administrators always pass; a module outside the plan blocks everyone. |
| Destructive | No: the public MCP catalogue does not mark it as destructive |
| Also available in | REST API, MCP (`filmo_invoices_list`) |

ACTION `invoices.findMany`

## Inputs

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `limit` | number | No |  = `100` |
| `createdOn` | string | No |  |
| `createdAfter` | string | No |  |
| `createdBefore` | string | No |  |
| `createdFrom` | string | No |  |
| `createdTo` | string | No |  |
| `updatedOn` | string | No |  |
| `updatedAfter` | string | No |  |
| `updatedBefore` | string | No |  |
| `updatedFrom` | string | No |  |
| `updatedTo` | string | No |  |
| `paymentStatus` | enum<string> | No |  `unpaid`, `partially_paid`, `paid`, `overpaid`, `overdue`, `voided` |
| `paymentStatuses` | string[] | No | Filter by paymentStatus, as a list: repeat the parameter or separate the values with commas. Accepts up to 50 values and returns whatever matches any of them. `unpaid`, `partially_paid`, `paid`, `overpaid`, `overdue`, `voided` |
| `contactId` | string | No |  |
| `contactIds` | string[] | No | Filter by contactId, as a list: repeat the parameter or separate the values with commas. Accepts up to 50 values and returns whatever matches any of them. |
| `orderId` | string | No |  |
| `orderIds` | string[] | No | Filter by orderId, as a list: repeat the parameter or separate the values with commas. Accepts up to 50 values and returns whatever matches any of them. |
| `projectId` | string | No |  |
| `projectIds` | string[] | No | Filter by projectId, as a list: repeat the parameter or separate the values with commas. Accepts up to 50 values and returns whatever matches any of them. |
| `invoiceDateOn` | string | No |  |
| `invoiceDateAfter` | string | No |  |
| `invoiceDateBefore` | string | No |  |
| `invoiceDateFrom` | string | No |  |
| `invoiceDateTo` | string | No |  |
| `dueOn` | string | No |  |
| `dueAfter` | string | No |  |
| `dueBefore` | string | No |  |
| `dueFrom` | string | No |  |
| `dueTo` | string | No |  |

## Outputs

| Name | Type | Description |
| --- | --- | --- |
| `items` | object[] |  |
| `items.id` | string |  |
| `items.invoiceNumber` | string |  |
| `items.status` | enum<string> |  `draft`, `validated`, `voided` |
| `items.isRectification` | boolean |  |
| `items.invoiceDate` | string |  |
| `items.dueDate` | string |  |
| `items.currency` | string |  |
| `items.contact` | json |  |
| `items.orderId` | string |  |
| `items.orderNumber` | string |  |
| `items.projectId` | string |  |
| `items.subTotal` | string |  |
| `items.discountTotal` | string |  |
| `items.taxesPrice` | string |  |
| `items.netPrice` | string |  |
| `items.grossPrice` | string |  |
| `items.totalPaid` | string |  |
| `items.paymentStatus` | string |  |
| `items.paymentMethod` | string |  |
| `items.tags` | string[] |  |
| `items.createdAt` | string |  |
| `items.updatedAt` | string |  |
| `items.tagRefs` | object[] |  |
| `items.tagRefs.id` | string |  |
| `items.tagRefs.name` | string |  |
| `total` | number |  |
| `nextCursor` | string |  |

---

Canonical URL: https://docs.filmo.io/workflows/reference/actions/invoices-findmany  
Last updated: 2026-10-25