---
title: "List Transactions"
method: GET
path: "/v1/transactions"
tags: ["Transactions"]
---

# List Transactions

`GET /v1/transactions`

Retrieves a paginated list of transactions for the account. Supports cursor-based pagination and filtering by date range or search term.

## Query parameters

- `cursor` string, nullable
- `before` string, date-time, nullable
- `after` string, date-time, nullable
- `limit` integer, nullable
- `search_term` string, nullable

## Response `200`

Transactions retrieved successfully

- ExternalApiTransactionsResponse
  - `next_cursor` string, nullable — Cursor for the next page of results. Null when there are no more results.
  - `transactions` ExternalApiTransactionDto[], required — List of transactions matching the query filters.
    - `amount_in_cents` integer, required — Transaction amount in centavos. Positive for credits, negative for debits.
    - `category` 'credit' | 'debit' | 'block', required
    - `completed_at` string, date-time, nullable — Transaction completion timestamp (UTC, RFC 3339). Null while pending.
    - `counterparty` string, nullable — Counterparty name, when available.
    - `created_at` string, date-time, required — Transaction creation timestamp (UTC, RFC 3339).
    - `description` string, required — Human-readable transaction description.
    - `details` union, required
      - object
        - `type` 'Pix', required
        - `value` PixDetailsPayload, required
          - `message` string, nullable
          - `pix_key` string, nullable
          - `pix_type` 'Manual' | 'Key' | 'QRCode', required
          - `receiver` PartyInfo, required
            - `account_number` string, required
            - `account_type` 'checking_account' | 'savings_account' | 'prepaid_payment_account' | 'payment_account' | 'other', required
            - `bank` string, required
            - `bank_code` string, required
            - `document` string, required
            - `name` string, required
          - `sender` PartyInfo, required
            - `account_number` string, required
            - `account_type` 'checking_account' | 'savings_account' | 'prepaid_payment_account' | 'payment_account' | 'other', required
            - `bank` string, required
            - `bank_code` string, required
            - `document` string, required
            - `name` string, required
      - object
        - `type` 'Boleto', required
        - `value` BoletoDetailsPayload, required
          - `assignor` string, required
          - `bar_code` string, required
          - `due_date` string, date, required — Boleto due date (`YYYY-MM-DD`).
          - `inputtable_line` string, required
          - `paid_at` string, date-time, nullable — Payment confirmation timestamp (UTC, RFC 3339).
          - `receiver` PartyInfo, required
            - `account_number` string, required
            - `account_type` 'checking_account' | 'savings_account' | 'prepaid_payment_account' | 'payment_account' | 'other', required
            - `bank` string, required
            - `bank_code` string, required
            - `document` string, required
            - `name` string, required
          - `sender` PartyInfo, required
            - `account_number` string, required
            - `account_type` 'checking_account' | 'savings_account' | 'prepaid_payment_account' | 'payment_account' | 'other', required
            - `bank` string, required
            - `bank_code` string, required
            - `document` string, required
            - `name` string, required
      - object
        - `type` 'Refund', required
        - `value` RefundDetailsPayload, required
          - `amount_in_cents` integer, required
          - `original_transaction_details` union, required
            - object
              - …
            - object
              - …
            - object
              - …
          - `reason` string, nullable
          - `refund_triggered_at` string, date-time, required — Refund initiation timestamp (UTC, RFC 3339).
      - object
        - `type` 'Judicial', required
        - `value` JudicialDetailsResponse, required
          - `action_nature_type` 'civil' | 'criminal' | 'labor' | 'fiscal' | 'alimentary'
          - `judicial_process_number` string, nullable
          - `operation_type` 'Block' | 'Unblock' | 'Return', required
          - `protocol_id` string, required
      - object
        - `type` 'Med', required
        - `value` ExternalApiMedDetails, required
          - `infraction_external_id` string, required
          - `infraction_id` integer, required
          - `is_root_receiver` boolean, nullable
          - `operation_type` 'Block' | 'Unblock' | 'Return', required
          - `original_end_to_end_id` string, required
          - `original_pix_details` PixDetailsPayload
            - `message` string, nullable
            - `pix_key` string, nullable
            - `pix_type` 'Manual' | 'Key' | 'QRCode', required
            - `receiver` PartyInfo, required
              - …
            - `sender` PartyInfo, required
              - …
          - `pix_details` PixDetailsPayload
            - `message` string, nullable
            - `pix_key` string, nullable
            - `pix_type` 'Manual' | 'Key' | 'QRCode', required
            - `receiver` PartyInfo, required
              - …
            - `sender` PartyInfo, required
              - …
      - object
        - `type` 'InternalDispute', required
        - `value` ExternalApiInternalDisputeDetails, required — Public-API representation of an `InternalDispute` ledger movement (Block / Unblock / Return). Internal disputes never cross BACEN — both parties are Kiwify accounts — so the payload only carries the contested-Pix context (already masked) plus the dispute identifiers. No `pix_details` (role-swapped SPI payload) field, unlike Med, because there's no SPI leg.
          - `dispute_id` integer, required
          - `operation_type` 'Block' | 'Unblock' | 'Return', required
          - `original_pix_details` PixDetailsPayload
            - `message` string, nullable
            - `pix_key` string, nullable
            - `pix_type` 'Manual' | 'Key' | 'QRCode', required
            - `receiver` PartyInfo, required
              - …
            - `sender` PartyInfo, required
              - …
          - `original_transaction_id` integer, required
    - `end_to_end_id` string, required — End-to-End (E2E) identifier of the PIX in the Central Bank's Instant Payment System. Format: `E{ISPB}{YYYYMMDD}{HHmmss}{UniqueID}` (e.g.: E323070002024011012345612345678901234). Used for tracking, reconciliation, and proof of PIX transactions.
    - `id` integer, required — Transaction identifier.
    - `med` ExternalApiTransactionMedInfo
      - `can_be_disputed` boolean, required
      - `incoming_infraction` ExternalApiMedInfraction
        - `created_at` string, date-time, required — Infraction creation timestamp (UTC, RFC 3339).
        - `deadline` string, date-time, nullable — Response deadline (UTC, RFC 3339). Derived from funds recovery `external_created_at` + 7 days when available.
        - `end_to_end_id` string, required
        - `funds_recovery` ExternalApiMedFundsRecovery
          - `closed_at` string, date-time, nullable — BACEN funds recovery closure timestamp (UTC, RFC 3339).
          - `contact_email` string, nullable
          - `contact_phone` string, nullable
          - `external_created_at` string, date-time, nullable — BACEN funds recovery creation timestamp (UTC, RFC 3339).
          - `external_id` string, required
          - `external_last_modified_at` string, date-time, nullable — BACEN funds recovery last modification timestamp (UTC, RFC 3339).
          - `report_details` string, nullable
          - `reporter_participant` string, nullable
          - `root_transaction_id` string, nullable
          - `situation_type` 'scam_fraud' | 'unauthorized_transaction' | 'coercion_crime' | 'fraudulent_access' | 'others' | 'unknown' — Situation type from DICT API (SituationType). Set by the creator PSP when creating the Recuperação de Valores.
          - `status` 'created' | 'tracked' | 'awaiting_analysis' | 'analysed' | 'refunding' | 'completed' | 'cancelled', required
        - `id` integer, required
        - `original_amount_in_cents` integer, required
        - `original_transaction` ExternalApiMedOriginalTransactionSummary, required
          - `counterparty_name` string, nullable
          - `created_at` string, date-time, required — Original transaction creation timestamp (UTC, RFC 3339).
        - `refunded_amount_in_cents` integer, required
        - `status` 'pending' | 'completed' | 'cancelled', required
        - `transaction_id` integer, required
      - `outgoing_dispute` ExternalApiMedDispute
        - `cancellation_requested_at` string, date-time, nullable — Timestamp when cancellation was requested (UTC, RFC 3339).
        - `created_at` string, date-time, required — Dispute creation timestamp (UTC, RFC 3339).
        - `deadline` string, date-time, nullable — Response deadline (UTC, RFC 3339). Derived from funds recovery `external_created_at` + 7 days when available.
        - `end_to_end_id` string, required
        - `funds_recovery` ExternalApiMedFundsRecovery
          - `closed_at` string, date-time, nullable — BACEN funds recovery closure timestamp (UTC, RFC 3339).
          - `contact_email` string, nullable
          - `contact_phone` string, nullable
          - `external_created_at` string, date-time, nullable — BACEN funds recovery creation timestamp (UTC, RFC 3339).
          - `external_id` string, required
          - `external_last_modified_at` string, date-time, nullable — BACEN funds recovery last modification timestamp (UTC, RFC 3339).
          - `report_details` string, nullable
          - `reporter_participant` string, nullable
          - `root_transaction_id` string, nullable
          - `situation_type` 'scam_fraud' | 'unauthorized_transaction' | 'coercion_crime' | 'fraudulent_access' | 'others' | 'unknown' — Situation type from DICT API (SituationType). Set by the creator PSP when creating the Recuperação de Valores.
          - `status` 'created' | 'tracked' | 'awaiting_analysis' | 'analysed' | 'refunding' | 'completed' | 'cancelled', required
        - `id` integer, required
        - `infraction_status` 'pending' | 'accepted' | 'rejected' | 'cancelled', required — Derived, per-dispute view of how the contested PSPs analysed the contestation. Computed from the dispute's linked `med_outgoing_infractions`
        - `original_amount_in_cents` integer, required
        - `original_transaction` ExternalApiMedOriginalTransactionSummary, required
          - `counterparty_name` string, nullable
          - `created_at` string, date-time, required — Original transaction creation timestamp (UTC, RFC 3339).
        - `refunded_amount_in_cents` integer, required
        - `status` 'pending' | 'completed' | 'cancelled', required
        - `transaction_id` integer, required
    - `status` 'initial' | 'pending' | 'committed' | 'voided' | 'failed', required
    - `type` string, required — Transaction type (e.g., `pix_transfer`, `boleto_payment`).

## Other responses

- `400` — Invalid query parameters. Error code: INVALID_REQUEST (invalid cursor format or limit out of range 1–100)
- `401` — Authentication failed
- `403` — Access denied
- `404` — No account found
- `500` — Internal server error

---

[API](https://skmtc.net/kiwify/apis/conta-digital-api.md) · [All operations](https://skmtc.net/kiwify/apis/conta-digital-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/kiwify/conta-digital-api/revisions/5e009b25c245/schema)
