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

# List all invoices

> Returns a list of invoices across all clinics in the organization. By default, only finalized invoices (FINALIZED, LOCKED, IMPORTED) are returned. Use the `status` parameter to filter by specific statuses. The invoices are sorted by creation date, with the most recent appearing first. When using modified filters, results are sorted in descending modification date instead.

An **invoice** represents a bill for services rendered to a clinic patient during a visit. Each invoice is associated with a clinic, a client (pet parent), and contains line items for the services and products provided. Invoices track totals, discounts, payments, and remaining balance.



## OpenAPI

````yaml get /ext/v2/invoices/
openapi: 3.1.0
info:
  description: ''
  title: NinjaAPI
  version: 2.0.0
servers:
  - url: https://connect.vetcove.com/
security: []
paths:
  /ext/v2/invoices/:
    get:
      tags:
        - Invoices
      summary: List all invoices
      description: >-
        Returns a list of invoices across all clinics in the organization. By
        default, only finalized invoices (FINALIZED, LOCKED, IMPORTED) are
        returned. Use the `status` parameter to filter by specific statuses. The
        invoices are sorted by creation date, with the most recent appearing
        first. When using modified filters, results are sorted in descending
        modification date instead.


        An **invoice** represents a bill for services rendered to a clinic
        patient during a visit. Each invoice is associated with a clinic, a
        client (pet parent), and contains line items for the services and
        products provided. Invoices track totals, discounts, payments, and
        remaining balance.
      operationId: invoices_list
      parameters:
        - description: When provided, filters to objects with these IDs.
          in: query
          name: ids
          required: false
          schema:
            anyOf:
              - items:
                  type: integer
                type: array
              - type: 'null'
            description: When provided, filters to objects with these IDs.
            title: Ids
        - description: >-
            A cursor used for pagination. Fetches the page of results ending
            immediately before the object with the given ID. Cannot be used at
            the same time as `starting_after`.
          in: query
          name: ending_before
          required: false
          schema:
            anyOf:
              - type: integer
              - type: 'null'
            description: >-
              A cursor used for pagination. Fetches the page of results ending
              immediately before the object with the given ID. Cannot be used at
              the same time as `starting_after`.
            title: Ending Before
        - description: >-
            A cursor used for pagination. Fetches the page of results starting
            immediately after the given ID. Cannot be used at the same time as
            `ending_before`.
          in: query
          name: starting_after
          required: false
          schema:
            anyOf:
              - type: integer
              - type: 'null'
            description: >-
              A cursor used for pagination. Fetches the page of results starting
              immediately after the given ID. Cannot be used at the same time as
              `ending_before`.
            title: Starting After
        - description: The maximum number of items to return per page.
          in: query
          name: limit
          required: false
          schema:
            default: 10
            description: The maximum number of items to return per page.
            maximum: 100
            minimum: 1
            title: Limit
            type: integer
        - description: >-
            A cursor token used for pagination. This token contains encoded
            information about the last seen record in order to continue
            pagination. Cannot be used with `starting_after` or `ending_before`
            parameters.
          in: query
          name: cursor
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              A cursor token used for pagination. This token contains encoded
              information about the last seen record in order to continue
              pagination. Cannot be used with `starting_after` or
              `ending_before` parameters.
            title: Cursor
        - description: >-
            Filters to objects modified on or after this datetime (ISO8601 UTC,
            e.g. 2025-08-25T10:30:00Z). Cannot be used with `starting_after` or
            `ending_before` parameters.
          in: query
          name: modified__gte
          required: false
          schema:
            anyOf:
              - format: date-time
                type: string
              - type: 'null'
            description: >-
              Filters to objects modified on or after this datetime (ISO8601
              UTC, e.g. 2025-08-25T10:30:00Z). Cannot be used with
              `starting_after` or `ending_before` parameters.
            title: Modified  Gte
        - description: >-
            Filters to objects modified on or before this datetime (ISO8601 UTC,
            e.g. 2025-08-25T10:30:00Z). Cannot be used with `starting_after` or
            `ending_before` parameters.
          in: query
          name: modified__lte
          required: false
          schema:
            anyOf:
              - format: date-time
                type: string
              - type: 'null'
            description: >-
              Filters to objects modified on or before this datetime (ISO8601
              UTC, e.g. 2025-08-25T10:30:00Z). Cannot be used with
              `starting_after` or `ending_before` parameters.
            title: Modified  Lte
        - description: >-
            When 'FALSE' (default), filters to non-deleted records only. When
            'TRUE', filters to soft-deleted records only. When 'ALL', returns
            both deleted and non-deleted records.
          in: query
          name: is_deleted
          required: false
          schema:
            allOf:
              - enum:
                  - 'FALSE'
                  - 'TRUE'
                  - ALL
                title: DeletedFilterOption
                type: string
            default: 'FALSE'
            description: >-
              When 'FALSE' (default), filters to non-deleted records only. When
              'TRUE', filters to soft-deleted records only. When 'ALL', returns
              both deleted and non-deleted records.
        - description: When provided, filters to invoices for this clinic
          in: query
          name: clinic_id
          required: false
          schema:
            anyOf:
              - type: integer
              - type: 'null'
            description: When provided, filters to invoices for this clinic
            title: Clinic Id
        - description: When provided, filters to invoices for this clinic client
          in: query
          name: clinic_client_id
          required: false
          schema:
            anyOf:
              - type: integer
              - type: 'null'
            description: When provided, filters to invoices for this clinic client
            title: Clinic Client Id
        - description: List of invoice status values to filter by.
          in: query
          name: status
          required: false
          schema:
            default:
              - FINALIZED
              - LOCKED
              - IMPORTED
            description: List of invoice status values to filter by.
            items:
              enum:
                - IN_PROGRESS
                - READY_FOR_PAYMENT
                - FINALIZED
                - LOCKED
                - IMPORTED
              title: ClientInvoiceStatus
              type: string
            title: Status
            type: array
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExternalInvoiceSchemaList'
          description: OK
      security:
        - ExternalAPIAuth: []
components:
  schemas:
    ExternalInvoiceSchemaList:
      properties:
        data:
          description: A single page of data contained within this list.
          items:
            $ref: '#/components/schemas/ExternalInvoiceSchema'
          title: Data
          type: array
        has_more:
          default: false
          description: Whether there are more pages or data in this list.
          title: Has More
          type: boolean
        next_page:
          description: A URL linking to the next page of this list.
          title: Next Page
          type: string
        type:
          default: list
          description: Type of this object. Always `list`.
          title: Type
          type: string
      required:
        - data
        - next_page
      title: ExternalInvoiceSchemaList
      type: object
    ExternalInvoiceSchema:
      properties:
        amount_paid:
          description: The amount paid so far for this invoice
          minimum: 0
          title: Amount Paid
          type: integer
        clinic_client_id:
          description: The ID of the client this invoice is for
          title: Clinic Client Id
          type: integer
        clinic_id:
          description: The ID of the clinic which issued this invoice
          title: Clinic Id
          type: integer
        created:
          description: The datetime this object was created.
          format: date-time
          title: Created
          type: string
        date_posted:
          description: The datetime this invoice was posted
          format: date-time
          title: Date Posted
          type: string
        deleted:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          description: The datetime this record was soft deleted.
          title: Deleted
        discount:
          description: The discount given to the client for this invoice, if any
          minimum: 0
          title: Discount
          type: integer
        finalized_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          description: >-
            The datetime at which this invoice was marked as finalized and
            became due
          title: Finalized At
        id:
          description: The unique identifier for the invoice
          title: Id
          type: integer
        is_deleted:
          description: Whether this record is soft deleted or not.
          title: Is Deleted
          type: boolean
        locked_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          description: The datetime at which this invoice was marked as locked
          title: Locked At
        marked_as_collections_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          description: >-
            The datetime at which this invoice was marked as collections (a.k.a.
            written off)
          title: Marked As Collections At
        marked_not_rendered_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          description: The datetime at which this invoice was marked as not-rendered
          title: Marked Not Rendered At
        modified:
          description: >-
            The datetime this object was last modified; changes to related
            entities will not update this field.
          format: date-time
          title: Modified
          type: string
        remaining_balance:
          description: The remaining balance for this invoice
          title: Remaining Balance
          type: integer
        status:
          anyOf:
            - $ref: '#/components/schemas/ClientInvoiceStatus'
            - const: ''
              type: string
          description: The status of the invoice
          title: Status
        subtotal:
          description: The subtotal due for this invoice
          minimum: 0
          title: Subtotal
          type: integer
        tax:
          description: The amount of tax charged to the client for this invoice
          minimum: 0
          title: Tax
          type: integer
        total:
          description: The total amount billed to the client for this invoice
          title: Total
          type: integer
      required:
        - created
        - modified
        - is_deleted
        - deleted
        - id
        - status
        - clinic_client_id
        - clinic_id
        - marked_as_collections_at
        - marked_not_rendered_at
        - finalized_at
        - locked_at
        - date_posted
        - total
        - subtotal
        - discount
        - tax
        - amount_paid
        - remaining_balance
      title: ExternalInvoiceSchema
      type: object
    ClientInvoiceStatus:
      enum:
        - IN_PROGRESS
        - READY_FOR_PAYMENT
        - FINALIZED
        - LOCKED
        - IMPORTED
      title: ClientInvoiceStatus
      type: string
  securitySchemes:
    ExternalAPIAuth:
      scheme: bearer
      type: http

````