> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cadanapay.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List Invoices

> List invoices for your business. Optionally filter by person, user, source, status, type, or invoice date range. Filters can be combined; all are optional.



## OpenAPI

````yaml /openapi/workforce-management.yaml get /v1/invoices
openapi: 3.0.0
info:
  description: APIs for interacting with Cadana Payroll Platform
  version: 1.0.0
  title: Business Workforce Management
  termsOfService: https://cadanapay.com/terms-and-conditions
  contact:
    email: api@cadanapay.com
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
servers:
  - url: https://api.cadanapay.com
    description: Prod Server
  - url: https://dev-api.cadanapay.com
    description: Dev Server
security:
  - Authorization: []
tags:
  - name: Custom Auth
    description: APIs for interacting with Custom Authentication
  - name: Persons
    description: APIs for interacting with the HR module
  - name: Milestones
    description: APIs for milestone-based contractor pay
  - name: Instant Pay
    description: APIs for interacting with Instant Pay functionality
  - name: Users
    description: APIs for interacting with employee/contractor Cadana accounts
  - name: Files
    description: APIs for interacting with file uploads
  - name: Payrolls
    description: APIs for interacting with Payroll
  - name: Platform
    description: Platform APIs for interacting with businesses
  - name: Businesses
    description: APIs for interacting with Business
  - name: Contracts
    description: APIs for interacting with contracts
  - name: Sandbox
    description: APIs for relevant sandbox simulations
  - name: Invoices
    description: APIs for interacting with invoices
  - name: Reimbursements
    description: APIs for interacting with reimbursements
  - name: Entities
    description: >-
      APIs for managing legal sub-entities (subsidiaries, branches) under a
      parent business
paths:
  /v1/invoices:
    get:
      tags:
        - Invoices
      summary: List Invoices
      description: >-
        List invoices for your business. Optionally filter by person, user,
        source, status, type, or invoice date range. Filters can be combined;
        all are optional.
      operationId: listInvoices
      parameters:
        - $ref: '#/components/parameters/XMultiTenantKey'
        - name: personId
          in: query
          required: false
          description: >-
            Only include invoices for this person (e.g. the contractor the
            invoice pays). Matches the `personId` field on the invoice.
          schema:
            type: string
            format: uuid
        - name: userId
          in: query
          required: false
          description: Only include invoices belonging to this user
          schema:
            type: string
            format: uuid
        - name: source
          in: query
          required: false
          description: >-
            Filter by invoice origin, e.g. only contractor-submitted invoices
            (CONTRACTOR_SUBMITTED) or invoices auto-created from payroll
            (PAYROLL)
          schema:
            type: string
            enum:
              - SYSTEM
              - USER
              - REIMBURSEMENT
              - PAYROLL
              - CONTRACTOR_SUBMITTED
        - name: status
          in: query
          required: false
          description: >-
            Filter by invoice status (case-insensitive), e.g. Pending,
            Processing, Paid, Partially Paid, Overdue, Cancelled
          schema:
            type: string
        - name: type
          in: query
          required: false
          description: Filter by invoice type
          schema:
            type: string
            enum:
              - MANUAL
              - PAYROLL
              - CONTRACTOR
        - name: startDate
          in: query
          required: false
          description: Only include invoices with an invoice date on or after this date
          schema:
            type: string
            format: date
        - name: endDate
          in: query
          required: false
          description: Only include invoices with an invoice date on or before this date
          schema:
            type: string
            format: date
        - name: limit
          in: query
          required: false
          description: Maximum number of invoices to return per page (default 20)
          schema:
            type: integer
            default: 20
        - name: cursor
          in: query
          required: false
          description: >-
            Opaque pagination cursor from the previous page's `node.next`. Omit
            to start from the first page.
          schema:
            type: string
      responses:
        '200':
          description: A list of invoices
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          format: uuid
                        status:
                          type: string
                          description: Invoice status
                        source:
                          type: string
                          enum:
                            - SYSTEM
                            - USER
                            - REIMBURSEMENT
                            - PAYROLL
                            - CONTRACTOR_SUBMITTED
                          description: Origin of the invoice
                        type:
                          type: string
                          enum:
                            - MANUAL
                            - PAYROLL
                            - CONTRACTOR
                          description: Invoice type
                        invoiceNumber:
                          type: string
                          description: Human-readable invoice number
                        from:
                          type: string
                          description: Name of the invoice issuer
                        billTo:
                          type: string
                          description: Name of the billed party
                        personId:
                          type: string
                          format: uuid
                          description: >-
                            The person the invoice is for (e.g. the contractor
                            being paid), when applicable
                        userId:
                          type: string
                          format: uuid
                          description: The user the invoice belongs to, when applicable
                        date:
                          type: string
                          format: date
                          description: Invoice date
                        datePayable:
                          type: string
                          format: date
                          description: Date the invoice is payable
                        subtotalAmount:
                          type: array
                          description: Subtotal per currency
                          items:
                            type: object
                            properties:
                              value:
                                type: string
                                description: Decimal amount as a string
                              currency:
                                type: string
                        totalAmount:
                          type: array
                          description: Total per currency
                          items:
                            type: object
                            properties:
                              value:
                                type: string
                                description: Decimal amount as a string
                              currency:
                                type: string
                  node:
                    type: object
                    description: Pagination cursors
                    properties:
                      previous:
                        type: string
                        nullable: true
                        description: Cursor this page started from; null on the first page
                      next:
                        type: string
                        nullable: true
                        description: >-
                          Cursor for the next page; null when there are no more
                          results
              example:
                data:
                  - id: 0f6c2f8a-3d9b-4c57-9a41-8f2f6f7f1c33
                    status: Pending
                    source: PAYROLL
                    type: CONTRACTOR
                    invoiceNumber: '1764332528'
                    from: Ada Lovelace
                    billTo: Globex LLC
                    personId: 9d2f7a44-1be3-4e28-8d40-63f19a7d5b8e
                    userId: b58725e6-fabc-4a1a-9e5f-31efdbdbc45f
                    date: '2025-11-28'
                    datePayable: '2025-12-28'
                    subtotalAmount:
                      - value: '800.00'
                        currency: USD
                    totalAmount:
                      - value: '800.00'
                        currency: USD
                  - id: ca51f42c-0adc-4a77-8dd1-a03dd4fb955f
                    status: Paid
                    source: SYSTEM
                    type: MANUAL
                    invoiceNumber: '1764332529'
                    from: Acme Inc
                    billTo: Globex LLC
                    date: '2025-11-28'
                    datePayable: '2025-12-28'
                    subtotalAmount:
                      - value: '800.00'
                        currency: USD
                    totalAmount:
                      - value: '880.00'
                        currency: USD
                node:
                  next: >-
                    eyJ0ZW5hbnRLZXkiOnsiUyI6InRibDI4MTUzMjA4In0sInNvcnRLZXkiOnsiUyI6ImNhNTFmNDJjIn19
        5XX:
          $ref: '#/components/responses/InternalError'
      security:
        - Authorization: []
components:
  parameters:
    XMultiTenantKey:
      name: X-MultiTenantKey
      in: header
      required: false
      schema:
        type: string
      description: >-
        Required when using a Platform API token. The tenant key identifying
        which business to operate on.
  responses:
    InternalError:
      description: Internal error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/InternalError'
  schemas:
    InternalError:
      description: Internal server error
      allOf:
        - $ref: '#/components/schemas/Error'
      example:
        code: internal_error
        message: An unexpected error occurred. Please try again later.
    Error:
      type: object
      properties:
        code:
          description: A machine parsable error code
          type: string
          enum:
            - invalid_request_body
            - resource_not_found
            - forbidden
            - internal_error
        message:
          description: A human readable message describing the error
          type: string
  securitySchemes:
    Authorization:
      type: http
      scheme: bearer
      bearerFormat: API_SECRET_KEY

````