> ## 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 Transfers

> Use this endpoint to retrieve a paginated list of transfers. You can filter by type, status, date range, and amount range. The default limit is 50 items, with a maximum of 200. Only returns transfers belonging to the same organization.



## OpenAPI

````yaml /en/openapi/v3-current/ted.yaml get /v1/transfers
openapi: 3.0.3
info:
  title: Bank Transfer (TED) Plugin API
  description: >-
    Complete API for Brazilian bank transfers (TED OUT, TED IN, P2P) through the
    Lerian platform, including transfer initiation, processing, status tracking,
    and cancellation.
  version: 2.4.0
servers:
  - url: https://plugin-br-bank-transfer.sandbox.lerian.net
    description: Sandbox (placeholder — not yet available for public access)
security:
  - BearerAuth: []
tags:
  - name: Transfers API
    description: Endpoints for initiating, processing, tracking, and cancelling transfers.
  - name: Webhook DLQ
    description: Endpoints for inspecting and retrying webhook dead-letter queue messages.
  - name: Health API
    description: Endpoints for checking service liveness and readiness.
paths:
  /v1/transfers:
    get:
      tags:
        - Transfers API
      summary: List Transfers
      description: >-
        Use this endpoint to retrieve a paginated list of transfers. You can
        filter by type, status, date range, and amount range. The default limit
        is 50 items, with a maximum of 200. Only returns transfers belonging to
        the same organization.
      operationId: listTransfers
      parameters:
        - $ref: '#/components/parameters/XOrganizationId'
        - name: type
          in: query
          description: Filter results by transfer type.
          schema:
            $ref: '#/components/schemas/TransferType'
        - name: status
          in: query
          description: Filter results by transfer status.
          schema:
            $ref: '#/components/schemas/TransferStatus'
        - name: createdFrom
          in: query
          description: The start of the date range filter in RFC3339 format.
          schema:
            type: string
            format: date-time
        - name: createdTo
          in: query
          description: The end of the date range filter in RFC3339 format.
          schema:
            type: string
            format: date-time
        - name: minAmount
          in: query
          description: The minimum transfer amount to include in the results.
          schema:
            type: number
            format: decimal
            minimum: 0.01
        - name: maxAmount
          in: query
          description: The maximum transfer amount to include in the results.
          schema:
            type: number
            format: decimal
            maximum: 999999.99
        - name: limit
          in: query
          description: Maximum number of transfers to return.
          schema:
            type: integer
            minimum: 1
            maximum: 200
            default: 50
        - name: offset
          in: query
          description: Number of transfers to skip.
          schema:
            type: integer
            minimum: 0
            default: 0
        - name: sortDirection
          in: query
          description: Sort direction for results ordered by createdAt.
          schema:
            type: string
            enum:
              - asc
              - desc
            default: desc
      responses:
        '200':
          description: >-
            Indicates that the request was successful and the matching transfers
            are returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransferList'
              examples:
                list:
                  summary: Paginated transfers
                  value:
                    data:
                      - transferId: 019c96a0-ab10-7cde-f1a2-0e1f2a3b4c5d
                        type: TED_OUT
                        status: COMPLETED
                        amount: 1000.5
                        feeAmount: 1.5
                        recipientHolderName: Maria Santos
                        createdAt: '2026-02-01T15:30:00-03:00'
                      - transferId: 019c96a0-ab20-7def-a1b2-1f2a3b4c5d6e
                        type: TED_IN
                        status: COMPLETED
                        amount: 500
                        feeAmount: 0
                        recipientHolderName: João Silva
                        createdAt: '2026-02-01T16:00:00-03:00'
                    pagination:
                      limit: 50
                      offset: 0
                      returned: 2
                      totalCount: 2
                      hasNextPage: false
        '400':
          $ref: '#/components/responses/InvalidFilter'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
components:
  parameters:
    XOrganizationId:
      name: X-Organization-Id
      in: header
      required: true
      description: >-
        Organization ID used as the tenant identifier. All data is scoped to
        this organization. Must match the JWT tenantId claim when authentication
        is enabled.
      schema:
        type: string
        format: uuid
      example: 019c96a0-0a98-7287-9a31-786e0809c769
  schemas:
    TransferType:
      type: string
      enum:
        - TED_OUT
        - TED_IN
        - P2P
      description: >-
        The type of transfer. TED_OUT is an outgoing transfer to an external
        bank via JD SPB. TED_IN is an incoming transfer from an external bank.
        P2P is a peer-to-peer transfer within the same institution (same ISPB).
      example: TED_OUT
    TransferStatus:
      type: string
      enum:
        - CREATED
        - PENDING
        - PROCESSING
        - COMPLETED
        - REJECTED
        - FAILED
        - CANCELLED
        - RECEIVED
      description: >-
        The current status of the transfer. For TED OUT: CREATED → PENDING →
        PROCESSING → COMPLETED, REJECTED, or FAILED. For P2P: CREATED →
        PROCESSING → COMPLETED or FAILED (PENDING is an SPB-specific state and
        does not apply to P2P). Transfers can be CANCELLED while in CREATED or
        PENDING status. For TED IN: RECEIVED → PROCESSING → COMPLETED or FAILED.
        A COMPLETED TED IN can also transition to FAILED in the event of a
        chargeback.
      example: COMPLETED
    TransferList:
      type: object
      required:
        - items
        - pagination
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/TransferSummary'
        pagination:
          $ref: '#/components/schemas/PaginationInfo'
    TransferSummary:
      type: object
      required:
        - transferId
        - type
        - status
        - amount
        - feeAmount
        - totalAmount
        - createdAt
        - updatedAt
      properties:
        transferId:
          type: string
          format: uuid
          example: 770e8400-e29b-41d4-a716-446655440003
        type:
          $ref: '#/components/schemas/TransferType'
        status:
          $ref: '#/components/schemas/TransferStatus'
        originalTransferId:
          type: string
          format: uuid
          description: >-
            For TED IN devolutions, the ID of the original incoming transfer
            being returned.
          example: 770e8400-e29b-41d4-a716-446655440001
        devolutionCode:
          type: string
          description: >-
            BACEN devolution reason code, present only when the transfer is a
            devolution.
          example: '18'
        amount:
          type: number
          format: decimal
          example: 1000.5
        feeAmount:
          type: number
          format: decimal
          example: 1.5
        totalAmount:
          type: number
          format: decimal
          description: The transfer amount plus fees (`amount + feeAmount`).
          example: 1002
        createdAt:
          type: string
          format: date-time
          example: '2026-02-01T15:30:00Z'
        updatedAt:
          type: string
          format: date-time
          description: Timestamp of the last status transition for this transfer.
          example: '2026-02-01T15:35:00Z'
    PaginationInfo:
      type: object
      required:
        - limit
        - offset
        - returned
        - totalCount
        - hasNextPage
      properties:
        limit:
          type: integer
          description: Maximum number of transfers requested.
          example: 50
        offset:
          type: integer
          description: Number of transfers skipped.
          example: 0
        returned:
          type: integer
          description: Number of transfers returned in this response.
          example: 2
        totalCount:
          type: integer
          minimum: 0
          description: The total number of matching items.
          example: 123
        hasNextPage:
          type: boolean
          description: Whether there are more items beyond the current page.
          example: false
    ErrorResponse:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
          properties:
            code:
              type: string
              pattern: ^BTF-[0-9]{4}$
              description: The error code in BTF-XXXX format.
              example: BTF-0010
            title:
              type: string
              description: A short, human-readable title for the error.
              example: Operating Hours Violation
            message:
              type: string
              description: A detailed description of the error.
              example: >-
                Transfers can only be initiated Monday-Friday between 06:30 and
                17:00 Brasília time
            fields:
              type: object
              additionalProperties: true
              description: Field-level validation errors for request body parameters.
              example:
                currentTime: '2026-02-01T18:30:00-03:00'
                operatingHours: Mon-Fri 06:30-17:00 UTC-3
            headers:
              type: object
              additionalProperties: true
              description: Validation errors for request headers.
            paths:
              type: object
              additionalProperties: true
              description: Validation errors for path parameters.
            queryParams:
              type: object
              additionalProperties: true
              description: Validation errors for query parameters.
  responses:
    InvalidFilter:
      description: Indicates that one or more filter parameters are invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            invalidDateRange:
              summary: Invalid date range
              value:
                error:
                  code: BTF-0002
                  title: Invalid Filter
                  message: Invalid filter parameters
                  queryParams:
                    createdTo: must be >= createdFrom
    RateLimitExceeded:
      description: >-
        Indicates that the rate limit has been exceeded. Retry after the number
        of seconds specified in the Retry-After header.
      headers:
        Retry-After:
          description: Seconds until rate limit resets
          schema:
            type: integer
            example: 60
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            rateLimitExceeded:
              summary: Too many requests
              value:
                error:
                  code: BTF-0001
                  title: Invalid input
                  message: >-
                    Too many requests. Retry after the interval indicated by the
                    `Retry-After` header.
              description: >
                Rate-limit responses share the `BTF-0001` code with other 4xx
                validation errors. Clients should detect rate limiting via HTTP
                status `429` and the `Retry-After` header rather than the error
                code.
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        JWT Bearer token authentication. The token must include a tenantId claim
        that matches the X-Organization-Id header.

````