> ## 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 indirect participants

> Lists this tenant's indirect participants, newest first, as one keyset page. Use it to find the indirectId an outbound order or a park resolution needs, and to see which participants are actually routable — status is the field that decides that: only ACTIVE resolves an inbound credit or may originate an outbound order.

Read-only; nothing changes. The status and ispb filters are exact matches and combine with AND. Pagination is cursor-based, not offset-based: pass the previous page's nextCursor back as cursor, and a null nextCursor means that page was the last. limit defaults to 25 and is CLAMPED to 100 — a larger value is silently reduced rather than rejected, so do not read the page size you asked for as the page size you got. Every row's delivery.secret is redacted.

The only refusal is 422 PIX-0098, for a status outside PENDING_PROVISIONING / ACTIVE / SUSPENDED / CLOSED: an unrecognized filter is rejected rather than silently ignored, so a typo cannot widen the result set.



## OpenAPI

````yaml /en/openapi/v3-current/pix.yaml get /v1/indirects
openapi: 3.1.0
info:
  description: Brazilian PIX Direct (DICT + SPI) plugin API.
  title: plugin-br-pix-jd
  version: 1.0.0
servers: []
security:
  - BearerAuth: []
paths:
  /v1/indirects:
    get:
      tags:
        - Indirects
      summary: List indirect participants
      description: >-
        Lists this tenant's indirect participants, newest first, as one keyset
        page. Use it to find the indirectId an outbound order or a park
        resolution needs, and to see which participants are actually routable —
        status is the field that decides that: only ACTIVE resolves an inbound
        credit or may originate an outbound order.


        Read-only; nothing changes. The status and ispb filters are exact
        matches and combine with AND. Pagination is cursor-based, not
        offset-based: pass the previous page's nextCursor back as cursor, and a
        null nextCursor means that page was the last. limit defaults to 25 and
        is CLAMPED to 100 — a larger value is silently reduced rather than
        rejected, so do not read the page size you asked for as the page size
        you got. Every row's delivery.secret is redacted.


        The only refusal is 422 PIX-0098, for a status outside
        PENDING_PROVISIONING / ACTIVE / SUSPENDED / CLOSED: an unrecognized
        filter is rejected rather than silently ignored, so a typo cannot widen
        the result set.
      operationId: listIndirects
      parameters:
        - description: >-
            Filter by lifecycle status (PENDING_PROVISIONING, ACTIVE, SUSPENDED,
            CLOSED).
          explode: false
          in: query
          name: status
          schema:
            description: >-
              Filter by lifecycle status (PENDING_PROVISIONING, ACTIVE,
              SUSPENDED, CLOSED).
            examples:
              - ACTIVE
            type: string
        - description: Filter by exact ISPB (8 digits).
          explode: false
          in: query
          name: ispb
          schema:
            description: Filter by exact ISPB (8 digits).
            examples:
              - '12345678'
            type: string
        - description: Page size (default 25, max 100).
          explode: false
          in: query
          name: limit
          schema:
            description: Page size (default 25, max 100).
            examples:
              - 25
            format: int64
            type: integer
        - description: Opaque pagination cursor from a prior page.
          explode: false
          in: query
          name: cursor
          schema:
            description: Opaque pagination cursor from a prior page.
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IndirectPage'
          description: OK
        default:
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Error
components:
  schemas:
    IndirectPage:
      additionalProperties: false
      properties:
        items:
          description: The indirects on this page.
          items:
            $ref: '#/components/schemas/Indirect'
          type:
            - array
            - 'null'
        nextCursor:
          description: Opaque cursor for the next page, or null when exhausted.
          type: string
      required:
        - items
      type: object
    Detail:
      additionalProperties: false
      properties:
        code:
          description: >-
            Stable, machine-readable domain error code scoped to the emitting
            service (format: <SERVICE>-NNNN).
          examples:
            - ERR-0001
          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
    Indirect:
      additionalProperties: false
      properties:
        createdAt:
          description: Creation timestamp (UTC).
          format: date-time
          type: string
        delivery:
          $ref: '#/components/schemas/IndirectDelivery'
          description: Delivery endpoint (secret redacted).
        indirectId:
          description: The indirect participant id (routing identifier).
          examples:
            - 018f2b7c-0000-7000-8000-000000000000
          type: string
        ispb:
          description: The indirect PSP's ISPB.
          examples:
            - '12345678'
          type: string
        messagingMode:
          description: Delivery mode.
          examples:
            - raw
          type: string
        name:
          description: Display name.
          examples:
            - Indirect PSP Ltda
          type: string
        piAccountAlias:
          description: The derived @pi_{ispb} Midaz account alias.
          examples:
            - '@pi_12345678'
          type: string
        provisioning:
          $ref: '#/components/schemas/IndirectProvisioning'
          description: Provisioning-saga state.
        qrCertificate:
          $ref: '#/components/schemas/IndirectQRCertificate'
          description: Own-QR-code certificate configuration.
        status:
          description: Lifecycle status.
          examples:
            - ACTIVE
          type: string
        updatedAt:
          description: Last-update timestamp (UTC).
          format: date-time
          type: string
      required:
        - indirectId
        - name
        - ispb
        - status
        - piAccountAlias
        - messagingMode
        - delivery
        - qrCertificate
        - provisioning
        - createdAt
        - updatedAt
      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
    IndirectDelivery:
      additionalProperties: false
      properties:
        endpointUrl:
          description: The HTTPS delivery endpoint.
          examples:
            - https://indirect.example.com/pix
          type: string
        secret:
          description: Always redacted.
          examples:
            - '***'
          type: string
      required:
        - endpointUrl
        - secret
      type: object
    IndirectProvisioning:
      additionalProperties: false
      properties:
        failedStep:
          description: The saga step that last failed, or null when clean.
          examples:
            - createPIAccount
          type:
            - string
            - 'null'
      required:
        - failedStep
      type: object
    IndirectQRCertificate:
      additionalProperties: false
      properties:
        ownCertificate:
          description: >-
            Whether the indirect hosts the dynamic-QR JWS/JWKS under its own
            certificate. False means it falls back to the direct participant.
          examples:
            - true
          type: boolean
        publicBaseUrl:
          description: >-
            The indirect's scheme-less public base URL for QR payload locations.
            Empty when ownCertificate is false.
          examples:
            - qr.indirect.example.com/pix
          type: string
      required:
        - ownCertificate
        - publicBaseUrl
      type: object
  securitySchemes:
    BearerAuth:
      bearerFormat: JWT
      description: JWT bearer token issued by the identity provider.
      scheme: bearer
      type: http

````