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

# List scheduled Pix payments

> Returns a page of the organization's scheduled payments, newest settlement date first. Paging is by opaque cursor rather than offset: a schedule registered between two pages would shift every later row under an offset and silently skip one. Echo the cursor verbatim. The page carries no attempt history -- that is per-schedule data a list view does not show, and it is on the single-schedule route instead. Filtering by recurrence_id is how the occurrences of a recurring series are enumerated: an occurrence IS a scheduled payment, so it is listed here rather than under a route of its own, which would give the same row two identities.



## OpenAPI

````yaml /en/openapi/v3-current/pix-lerian-spi.yaml get /scheduled-payments
openapi: 3.1.0
info:
  contact:
    name: Lerian Studio
    url: https://lerian.studio
  description: Public API for outbound Pix transfers, refunds, and scheduled payments.
  license:
    name: Lerian Studio General License
  title: Pix Lerian — Payments
  version: 1.1.0
servers:
  - url: https://api.example.com/spi/v1
    description: >-
      Replace the example host with the URL provided during environment
      onboarding.
security:
  - BearerAuth: []
tags:
  - description: Create, list, and retrieve Pix refunds.
    name: Refunds
  - name: Scheduled Payments
    description: Register, list, retrieve, and cancel scheduled Pix payments.
  - description: Initiate, process, list, and retrieve outbound Pix transfers.
    name: Transfers
  - description: >-
      Register, list, retrieve, and cancel recurring series of scheduled Pix
      payments.
    name: Scheduled Payment Recurrences
paths:
  /scheduled-payments:
    get:
      tags:
        - Scheduled Payments
      summary: List scheduled Pix payments
      description: >-
        Returns a page of the organization's scheduled payments, newest
        settlement date first. Paging is by opaque cursor rather than offset: a
        schedule registered between two pages would shift every later row under
        an offset and silently skip one. Echo the cursor verbatim. The page
        carries no attempt history -- that is per-schedule data a list view does
        not show, and it is on the single-schedule route instead. Filtering by
        recurrence_id is how the occurrences of a recurring series are
        enumerated: an occurrence IS a scheduled payment, so it is listed here
        rather than under a route of its own, which would give the same row two
        identities.
      operationId: listScheduledPayments
      parameters:
        - description: >-
            Page size, 1..100. Absent or 0 means 20. A negative value or one
            above 100 is REFUSED, never clamped -- a clamped page size makes a
            caller believe it read everything.
          explode: false
          in: query
          name: limit
          schema:
            description: >-
              Page size, 1..100. Absent or 0 means 20. A negative value or one
              above 100 is REFUSED, never clamped -- a clamped page size makes a
              caller believe it read everything.
            examples:
              - 20
            format: int64
            type: integer
            maximum: 100
            minimum: 0
        - description: >-
            Opaque cursor from a previous page's pagination block. Echo it
            verbatim -- it is not a document to build.
          explode: false
          in: query
          name: cursor
          schema:
            description: >-
              Opaque cursor from a previous page's pagination block. Echo it
              verbatim -- it is not a document to build.
            type: string
        - description: Narrow to one payer account.
          explode: false
          in: query
          name: account_id
          schema:
            description: Narrow to one payer account.
            type: string
        - description: Narrow to one lifecycle status.
          explode: false
          in: query
          name: status
          schema:
            description: Narrow to one lifecycle status.
            enum:
              - PENDING
              - EXECUTING
              - DISPATCHED_OUTCOME_UNKNOWN
              - AWAITING_RETRY
              - SETTLED
              - CANCELLED
              - FAILED
            type: string
        - description: Earliest settlement date to include, inclusive.
          explode: false
          in: query
          name: start_date
          schema:
            description: Earliest settlement date to include, inclusive.
            examples:
              - '2026-09-01'
            format: date
            type: string
        - description: Latest settlement date to include, inclusive.
          explode: false
          in: query
          name: end_date
          schema:
            description: Latest settlement date to include, inclusive.
            examples:
              - '2026-09-30'
            format: date
            type: string
        - description: >-
            Narrow to the occurrences of ONE recurring series. This is how a
            series' occurrences are enumerated: an occurrence IS a scheduled
            payment, so it is listed here rather than under a route of its own,
            which would give the same row two identities.
          explode: false
          in: query
          name: recurrence_id
          schema:
            description: >-
              Narrow to the occurrences of ONE recurring series. This is how a
              series' occurrences are enumerated: an occurrence IS a scheduled
              payment, so it is listed here rather than under a route of its
              own, which would give the same row two identities.
            examples:
              - 019606a1-3b4c-7d8e-9f01-234567890abc
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScheduledPaymentsPage'
          description: OK
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: >-
            A filter cannot be used. PIX-0020: account_id or recurrence_id is
            not a UUID, status is not a scheduled-payment status, start_date or
            end_date is not a civil date in AAAA-MM-DD, or limit is negative or
            above 100 (0, like an absent limit, means the default page size of
            20) -- the response names each offending parameter. PIX-0003:
            end_date is earlier than start_date; an inverted range is refused
            rather than answered with an empty page, because the two are
            indistinguishable to the caller and only one of them is their
            mistake. PIX-0789: the cursor is not one this service issued, or it
            was truncated -- restart the listing without a cursor.
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
              example:
                title: Unprocessable Entity
                status: 422
                detail: validation failed
                errors:
                  - message: invalid integer
                    location: query.limit
                    value: abc
          description: >-
            `limit` is not an integer. This is the FRAMEWORK's request-binding
            refusal, not one of this service's: it carries no PIX-NNNN code,
            names the offending parameter in `errors`, and happens before any
            filter is looked at. Every other bad value on this operation is the
            400 above instead.
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Internal Server Error
        default:
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Error
components:
  schemas:
    ScheduledPaymentsPage:
      additionalProperties: false
      properties:
        items:
          description: The page, newest settlement date first. Never null.
          items:
            $ref: '#/components/schemas/ScheduledPaymentView'
          type:
            - array
            - 'null'
        nextCursor:
          description: >-
            Pass back as cursor for the following page. Absent on the last page
            -- its absence is how the listing ends, not an empty items array.
          type: string
      required:
        - items
      type: object
    Detail:
      additionalProperties: true
      properties:
        code:
          description: >-
            Stable, machine-readable domain error code scoped to the emitting
            service (format: <SERVICE>-NNNN).
          type: string
        detail:
          description: >-
            A human-readable explanation specific to this occurrence of the
            problem.
          examples:
            - Property foo is required but is missing.
          type: string
        errors:
          description: Optional list of individual error details
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type:
            - array
            - 'null'
        instance:
          description: >-
            A URI reference that identifies the specific occurrence of the
            problem.
          examples:
            - https://example.com/error-log/abc123
          format: uri
          type: string
        status:
          description: HTTP status code
          examples:
            - 400
          format: int64
          type: integer
        title:
          description: >-
            A short, human-readable summary of the problem type. This value
            should not change between occurrences of the error.
          examples:
            - Bad Request
          type: string
        type:
          default: about:blank
          description: A URI reference to human-readable documentation for the error.
          examples:
            - https://example.com/errors/example
          format: uri
          type: string
        upstream:
          $ref: '#/components/schemas/Upstream'
          description: >-
            RFC 9457 extension member: the error a proxied third-party provider
            reported. Absent unless the emitting service explicitly surfaced
            one.
      type: object
    ScheduledPaymentView:
      additionalProperties: false
      properties:
        accountId:
          description: Payer account.
          examples:
            - 019606a1-3b4c-7d8e-9f01-234567890abc
          type: string
        amount:
          description: Amount to settle, in BRL.
          examples:
            - '150.00'
          type: string
        attempts:
          description: >-
            Every attempt of the scheduled day, oldest first. Empty before that
            date, and never null.
          items:
            $ref: '#/components/schemas/ScheduleAttemptView'
          type:
            - array
            - 'null'
        cancellationCutoff:
          description: >-
            The first instant a cancellation is REFUSED. Cancellation is
            accepted right up to it and refused AT it, and it is strictly before
            the first window so the two can never overlap.
          format: date-time
          type: string
        cancelledReason:
          description: >-
            Present exactly when status is CANCELLED. A cancellation the payer
            asked for and one the domain performed are deliberately
            distinguishable.
          enum:
            - USER_REQUEST
            - OWNERSHIP_MISMATCH
            - KEY_NOT_FOUND
            - RECURRENCE_CANCELLED
          type: string
        createdAt:
          format: date-time
          type: string
        currency:
          description: Always BRL.
          examples:
            - BRL
          type: string
        description:
          description: >-
            The payer's memo, returned exactly as it was stored. Markup is not
            interpreted here and was not escaped on the way in; escaping belongs
            to whoever renders it.
          examples:
            - Aluguel de setembro
          type: string
        destination:
          $ref: '#/components/schemas/ParticipantView'
          description: >-
            The payee as photographed at creation. On a DICT schedule it is
            compared on the scheduled date against a fresh directory answer
            (REG-Art.9§6), which is why it is stored rather than re-resolved; a
            MANUAL or QR_CODE schedule is sent to it as photographed, with no
            second lookup.
        firstWindowOpensAt:
          description: >-
            When the first settlement window of the scheduled date opens (IN 513
            art. 12 caput). Photographed at creation.
          format: date-time
          type: string
        id:
          description: Schedule identifier.
          examples:
            - 019606a1-3b4c-7d8e-9f01-234567890abc
          type: string
        initiationType:
          description: How the destination was resolved.
          enum:
            - MANUAL
            - DICT
            - QR_CODE
          examples:
            - DICT
          type: string
        purpose:
          description: 'Always IPAY: REG-Art.11-P prohibits scheduling any other purpose.'
          enum:
            - IPAY
          examples:
            - IPAY
          type: string
        scheduledDate:
          description: Civil settlement date in AAAA-MM-DD, in America/Sao_Paulo.
          examples:
            - '2026-09-10'
          format: date
          type: string
        source:
          $ref: '#/components/schemas/ParticipantView'
          description: The payer as photographed at creation.
        status:
          description: >-
            Lifecycle status. DISPATCHED_OUTCOME_UNKNOWN is NOT terminal: the
            order is awaiting reconciliation and will resolve to SETTLED or
            FAILED. It does NOT assert that the order reached the rail -- it
            also covers an order that provably did not, whose reserved funds are
            still being released.
          enum:
            - PENDING
            - EXECUTING
            - DISPATCHED_OUTCOME_UNKNOWN
            - AWAITING_RETRY
            - SETTLED
            - CANCELLED
            - FAILED
          examples:
            - PENDING
          type: string
        transferId:
          description: The transfer that settled this schedule, once it has.
          type: string
        updatedAt:
          format: date-time
          type: string
      required:
        - id
        - accountId
        - scheduledDate
        - amount
        - currency
        - initiationType
        - purpose
        - source
        - destination
        - status
        - firstWindowOpensAt
        - cancellationCutoff
        - createdAt
        - updatedAt
        - attempts
      type: object
    ErrorDetail:
      additionalProperties: false
      properties:
        location:
          description: >-
            Where the error occurred, e.g. 'body.items[3].tags' or
            'path.thing-id'
          type: string
        message:
          description: Error message text
          type: string
        value:
          description: The value at the given location
      type: object
    Upstream:
      additionalProperties: false
      properties:
        code:
          description: The upstream provider's own error code, verbatim.
          examples:
            - E4001
          type: string
        message:
          description: >-
            The upstream provider's own error message, verbatim (bounded, never
            its raw response body).
          examples:
            - account not found at provider
          type: string
      type: object
    ScheduleAttemptView:
      additionalProperties: false
      properties:
        attemptNumber:
          examples:
            - 1
          format: int64
          type: integer
        endToEndId:
          description: >-
            The identifier the attempt dispatched under. Reconciliation of an
            unknown outcome happens by this value, and it is never minted twice.
          type: string
        finishedAt:
          description: Present exactly when outcome is.
          format: date-time
          type: string
        id:
          type: string
        isLastAttempt:
          description: >-
            Whether the day's window schedule allowed a further attempt after
            this one.
          type: boolean
        outcome:
          description: >-
            How the attempt ended. The two OPERATIONAL_FAILURE members are
            distinct because only the pre-dispatch one is safe to retry.
          enum:
            - SETTLED
            - INSUFFICIENT_FUNDS
            - INSUFFICIENT_LIMIT
            - OWNERSHIP_MISMATCH
            - KEY_NOT_FOUND
            - OPERATIONAL_FAILURE_PRE_DISPATCH
            - OPERATIONAL_FAILURE_POST_DISPATCH
          type: string
        providerChannel:
          description: >-
            The CSM channel the attempt went out on. UNKNOWN is a real answer
            from a rail that cannot report one.
          enum:
            - PRIMARY
            - SECONDARY
            - UNKNOWN
          type: string
        startedAt:
          format: date-time
          type: string
      required:
        - id
        - attemptNumber
        - isLastAttempt
        - startedAt
      type: object
    ParticipantView:
      additionalProperties: false
      properties:
        accountNumber:
          examples:
            - '123456'
          type: string
        accountType:
          enum:
            - CACC
            - SVGS
            - TRAN
            - SLRY
          examples:
            - CACC
          type: string
        branch:
          examples:
            - '0001'
          type: string
        ispb:
          description: 8-digit BACEN participant identifier.
          examples:
            - '32074986'
          type: string
        name:
          examples:
            - Ana Souza
          type: string
        personType:
          enum:
            - NATURAL_PERSON
            - LEGAL_PERSON
          examples:
            - NATURAL_PERSON
          type: string
        taxId:
          description: CPF or CNPJ, digits only.
          examples:
            - '39053344705'
          type: string
      required:
        - accountType
        - ispb
        - personType
        - taxId
        - name
      type: object
  securitySchemes:
    BearerAuth:
      bearerFormat: JWT
      description: JWT bearer token issued by the identity provider.
      scheme: bearer
      type: http

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.