> ## 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 payment links

> Returns a list of all payment links across all clinics in the organization. The payment links are sorted by creation date, with the most recent appearing first.

A **payment link** is a URL sent to a clinic client (pet parent) to collect a specific payment amount, such as for an outstanding invoice balance.



## OpenAPI

````yaml get /ext/v2/payment-links/
openapi: 3.1.0
info:
  description: ''
  title: NinjaAPI
  version: 2.0.0
servers:
  - url: https://connect.vetcove.com/
security: []
paths:
  /ext/v2/payment-links/:
    get:
      tags:
        - Payment Methods
      summary: List all payment links
      description: >-
        Returns a list of all payment links across all clinics in the
        organization. The payment links are sorted by creation date, with the
        most recent appearing first.


        A **payment link** is a URL sent to a clinic client (pet parent) to
        collect a specific payment amount, such as for an outstanding invoice
        balance.
      operationId: payment_links_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: When provided, filters payment links by clinic ID.
          in: query
          name: clinic_id
          required: false
          schema:
            anyOf:
              - type: integer
              - type: 'null'
            description: When provided, filters payment links by clinic ID.
            title: Clinic Id
        - description: When provided, filters payment links by clinic client ID.
          in: query
          name: clinic_client_id
          required: false
          schema:
            anyOf:
              - type: integer
              - type: 'null'
            description: When provided, filters payment links by clinic client ID.
            title: Clinic Client Id
        - description: >-
            When `True`, filters to payment links that have expired, and when
            `False`, filters to payment links that are still active.  When
            `None`, then both are included.
          in: query
          name: is_expired
          required: false
          schema:
            anyOf:
              - type: boolean
              - type: 'null'
            description: >-
              When `True`, filters to payment links that have expired, and when
              `False`, filters to payment links that are still active.  When
              `None`, then both are included.
            title: Is Expired
        - description: >-
            When `True`, filters to payment links that have been paid, and when
            `False`, filters to payment links that have no been paid.  When
            `None`, then both are included.
          in: query
          name: is_paid
          required: false
          schema:
            anyOf:
              - type: boolean
              - type: 'null'
            description: >-
              When `True`, filters to payment links that have been paid, and
              when `False`, filters to payment links that have no been paid. 
              When `None`, then both are included.
            title: Is Paid
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExternalPaymentLinkDetailSchemaList'
          description: OK
      security:
        - ExternalAPIAuth: []
components:
  schemas:
    ExternalPaymentLinkDetailSchemaList:
      properties:
        data:
          description: A single page of data contained within this list.
          items:
            $ref: '#/components/schemas/ExternalPaymentLinkDetailSchema'
          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: ExternalPaymentLinkDetailSchemaList
      type: object
    ExternalPaymentLinkDetailSchema:
      description: Additional fields for list/detail views
      properties:
        callback_urls:
          anyOf:
            - $ref: '#/components/schemas/PaymentLinkCallbackUrlsSchema'
            - type: 'null'
          description: >-
            Callback URLs for redirecting after payment completion or
            cancellation.
        client_payment_ids:
          default: []
          description: >-
            The ID's of the client payments associated with this payment link,
            if any payments have been made.
          items:
            type: integer
          title: Client Payment Ids
          type: array
        clinic_client_id:
          description: The ID of the client this payment link is for.
          title: Clinic Client Id
          type: integer
        clinic_id:
          description: The ID of the clinic this payment link is for.
          title: Clinic Id
          type: integer
        connect_metadata:
          anyOf:
            - type: object
            - type: 'null'
          description: Metadata to be set by the client on the payment link.
          title: Connect Metadata
        custom_text:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            Optional plain-text message for the payment link. Notes written in
            the clinic app as rich text are flattened here; formatting and
            paragraph breaks are not preserved.
          title: Custom Text
        entity_ids:
          description: >-
            IDs of entities to be paid based on the payment link kind: for
            INVOICE kind, provide one or more Invoice IDs (e.g., [123, 456]);
            for CARE_PLAN_PAYMENT_METHOD_UPDATE kind, provide exactly one
            Patient Care Plan ID (e.g., [456]).
          items:
            type: integer
          title: Entity Ids
          type: array
        expires_on:
          description: The timestamp at which this payment link will expire.
          format: date-time
          title: Expires On
          type: string
        id:
          description: The unique identifier for the payment link.
          title: Id
          type: integer
        is_deleted:
          default: false
          description: Whether this payment link has been deleted.
          title: Is Deleted
          type: boolean
        is_expired:
          description: Whether this payment link has expired.
          title: Is Expired
          type: boolean
        kind:
          $ref: '#/components/schemas/PaymentLinkKind'
          description: The kind of entity to be included in this payment link.
        url:
          description: The URL for the payment link.
          title: Url
          type: string
      required:
        - clinic_id
        - entity_ids
        - kind
        - id
        - clinic_client_id
        - expires_on
        - is_expired
        - url
      title: ExternalPaymentLinkDetailSchema
      type: object
    PaymentLinkCallbackUrlsSchema:
      description: Schema for payment link callback URLs
      properties:
        on_cancel:
          anyOf:
            - type: string
            - type: 'null'
          description: Redirect URL when payment is cancelled
          title: On Cancel
        on_success:
          anyOf:
            - type: string
            - type: 'null'
          description: Redirect URL after successful payment completion
          title: On Success
      title: PaymentLinkCallbackUrlsSchema
      type: object
    PaymentLinkKind:
      enum:
        - INVOICE
        - ESTIMATE
        - APPOINTMENT
        - CARE_PLAN
        - CARE_PLAN_PAYMENT_METHOD_UPDATE
      title: PaymentLinkKind
      type: string
  securitySchemes:
    ExternalAPIAuth:
      scheme: bearer
      type: http

````