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

# API para listar transações: monitoramento KYT

> Liste transações monitoradas no Didit com pontuação de risco, severidade, contrapartes, tags e triagem. KYT pago por chamada, sem contrato.



Prompt da API de listagem de transações
        Copiar o prompt para a área de transferência



      
      

\<pre>

\`List monitored transactions for my Didit application through the Management API.

Endpoint:
GET https://verification.didit.me/v3/transactions/

Authentication:
Use the x-api-key header with my Didit API key.

Goal:
\- Retrieve a paginated list of high-level transaction summaries (score, severity, status, parties, tags, decision metadata) — suitable for back-office review screens, fraud dashboards, and audit exports.

Query parameters:
\- limit - page size (default 50, min 1).
\- offset — zero-based offset (default 0). Prefer following the next URL from the previous page.

Ordering & pagination:
\- Ordered by txn_date descending (most recent first), with created_at as a tie-breaker.
\- count is a bounded counter (exact up to 100, capped above). Use total_transactions when present for the true count.
\- Transactions deleted via the Console are not returned.

Filtering:
\- Besides limit / offset, this endpoint accepts travel_rule_status, an exact Travel Rule status (for example ON_HOLD), and then returns only transactions whose Travel Rule transfer is in that status.
count follows this filter, but total_transactions always counts every transaction in the application.
\- It also accepts assignee, a comma-separated list where any value matches: me (the calling reviewer, with a user token), unassigned, rules (decided by the rules alone, no reviewer involved), or a member email.
\- For other filtering (party, status, severity, date range), use the Console UI.

Example call:
curl -X GET "https://verification.didit.me/v3/transactions/?limit=50" \
-H "x-api-key: YOUR_API_KEY"

What to read from each row:
\- uuid — stable Didit transaction id; use as {transaction_id} in GET /v3/transactions/{transaction_id}/.
\- transaction_number — application-scoped sequential number shown in Console.
\- txn_id — the identifier you supplied at create time (max 128 chars, unique per application).
\- status, score, severity, decision_reason_code, decision_reason_label — live monitoring verdict.
\- direction, amount, currency — raw submission. amount is a decimal string.
\- subject_name / subject_vendor_data / subject_country — denormalized APPLICANT party fields.
\- counterparty_name / counterparty_vendor_data / counterparty_country — denormalized COUNTERPARTY fields (may be null).
\- tags — Console tags (uuid, name, color).
\- assigned_to_name — Console reviewer who owns the transaction.
\- travel_rule_status - the status of the transaction's Travel Rule transfer (for example COMPLETED), or null when it has none.
\- travel_rule - the same Travel Rule block as GET /v3/transactions/{transaction_id}/ (status, direction, rail, counterparty_vasp, delivery, discovery, reason, next_actions and the rest), or null when the transaction has none.
Read reason and next_actions to see why each COUNTERPARTY_VASP_NOT_FOUND or COUNTERPARTY_VASP_NOT_REACHABLE transfer is stuck without one read per transaction.

Failure modes:
\- 403 - missing x-api-key (a wrong, revoked or expired key gets 401), or a key without permission for this action; the body is a { "detail": "..." } envelope.
\- 429 — rate limited; back off and retry.

Side effects: none. This is a pure read.

For the full integration shape, see /integration/integration-prompt.`

\</pre>



      
      

Colar em



## OpenAPI

````yaml pt-br/openapi-25.json GET /v3/transactions/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API de verificação de identidade. Autentique-se com o cabeçalho x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/transactions/:
    get:
      tags:
        - Transactions
      summary: Listar transações
      description: >-
        Lista paginada de transações monitoradas, das mais recentes para as mais
        antigas (`txn_date` desc). `count` é limitado a 100; use
        `total_transactions` para obter o número real de linhas. Este endpoint
        não aceita parâmetros de filtro nem de busca.
      operationId: listTransactions
      parameters:
        - name: limit
          in: query
          schema:
            type: integer
            default: 50
            minimum: 1
            maximum: 1000000
          description: >-
            Tamanho da página. O padrão é 50 quando omitido. Não há máximo
            imposto, mas mantenha as páginas pequenas para reduzir a latência.
        - name: offset
          in: query
          schema:
            type: integer
            maximum: 1000000
            minimum: 0
            default: 0
          description: >-
            Deslocamento, a partir de zero, do primeiro registro a retornar.
            Prefira seguir a URL `next` da página anterior.
        - name: travel_rule_status
          in: query
          required: false
          schema:
            type: string
          description: >-
            Retorna apenas as transações cuja transferência de Travel Rule está
            exatamente neste status (por exemplo, `ON_HOLD` ou
            `AWAITING_COUNTERPARTY`). `count` segue este filtro;
            `total_transactions` continua contando todas as transações da
            aplicação.
        - name: assignee
          in: query
          required: false
          schema:
            type: string
          description: >-
            Separados por vírgula; uma transação corresponde quando atende a
            qualquer valor. `unassigned` é o que ninguém assumiu ainda, `rules`
            é o que as regras decidiram sozinhas, sem revisor, e o e-mail de um
            membro corresponde ao revisor atribuído. `me` é o revisor conectado
            ao Console, portanto uma chave de API que envia `me` recebe `400`.
      responses:
        '200':
          description: >-
            Lista paginada de resumos de transações, dos mais recentes para os
            mais antigos.
          content:
            application/json:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                    description: >-
                      Contagem limitada das transações correspondentes (exata
                      até 100, limitada a partir daí). Use `total_transactions`
                      para obter a contagem real ao paginar.
                  next:
                    type: string
                    nullable: true
                    description: >-
                      URL absoluta da próxima página, ou `null` na última
                      página.
                  previous:
                    type: string
                    nullable: true
                    description: >-
                      URL absoluta da página anterior, ou `null` na primeira
                      página.
                  total_transactions:
                    type: integer
                    description: >-
                      Contagem total exata de transações (não excluídas) da
                      aplicação. Presente nas respostas paginadas.
                  results:
                    type: array
                    items:
                      type: object
                      properties:
                        uuid:
                          type: string
                          format: uuid
                          description: >-
                            Identificador estável da Didit para a transação. Use
                            como `{transaction_id}` nas chamadas de detalhes,
                            notas e relacionadas.
                        transaction_number:
                          type: integer
                          description: >-
                            Número sequencial da transação no escopo da
                            aplicação exibido no Console (por exemplo, `4123`).
                        txn_id:
                          type: string
                          description: >-
                            Identificador fornecido pelo cliente na chamada de
                            criação (máximo de 128 caracteres). Único por
                            aplicação.
                        transaction_type:
                          type: string
                          description: >-
                            Categoria de nível superior, como armazenada:
                            `finance`, `kyc`, `travelRule`, `userPlatformEvent`,
                            `gamblingBet`, `gamblingLimitChange`,
                            `gamblingBonusChange`, `auditTrailEvent`. Observe
                            que valores com várias palavras são retornados em
                            camelCase mesmo quando enviados em snake_case.
                        action_type:
                          type: string
                          description: >-
                            Subtipo dentro da categoria (por exemplo `deposit`,
                            `withdrawal`, `transfer`).
                        status:
                          type: string
                          enum:
                            - APPROVED
                            - IN_REVIEW
                            - DECLINED
                            - AWAITING_USER
                          description: Veredito de monitoramento atual.
                        direction:
                          type: string
                          enum:
                            - INBOUND
                            - OUTBOUND
                          description: >-
                            Direção em relação ao titular. Armazenada em
                            maiúsculas, independentemente da caixa usada no
                            envio.
                        amount:
                          type: string
                          description: >-
                            Valor da transação como string decimal, sem zeros à
                            direita (por exemplo, `"1500"`, `"0.5"`,
                            `"0.123456789012345678"`). Até 18 casas decimais.
                        currency:
                          type: string
                          description: >-
                            Código da moeda de `amount`. Qualquer código
                            alfabético ISO 4217 é aceito (por exemplo, `EUR`,
                            `USD`, `NGN`), assim como um símbolo de ativo cripto
                            (por exemplo, `BTC`). Prefira um código atualmente
                            em circulação. Nem todo código aceito tem taxa de
                            câmbio: quando não há nenhuma disponível para o
                            código (por exemplo, a unidade contábil ISO `XSU` ou
                            um símbolo cripto que a Didit não precifica), a
                            conversão automática falha e
                            `preferred_currency_amount` é retornado como null, a
                            menos que a requisição tenha fornecido um
                            `amount_in_default_currency` já convertido.
                        preferred_currency_amount:
                          type: string
                          nullable: true
                          description: >-
                            `amount` convertido para a moeda preferida da
                            aplicação, quando disponível.
                        preferred_currency_code:
                          type: string
                          nullable: true
                          description: >-
                            Código da moeda preferencial usado em
                            `preferred_currency_amount`: a moeda base da
                            aplicação, qualquer código ISO 4217 atualmente em
                            circulação. Um código sem taxa de câmbio disponível
                            deixa `preferred_currency_amount` como null, a menos
                            que a requisição tenha informado um
                            `amount_in_default_currency` já convertido.
                        payment_details:
                          type: string
                          nullable: true
                          description: >-
                            Referência ou memorando de pagamento em texto livre
                            do envio.
                        score:
                          type: integer
                          description: >-
                            Pontuação de risco (normalmente de 0 a 100). Quanto
                            maior, mais arriscado.
                        severity:
                          type: string
                          nullable: true
                          enum:
                            - UNKNOWN
                            - LOW
                            - MEDIUM
                            - HIGH
                            - CRITICAL
                          description: >-
                            Gravidade categórica do risco definida por regras ou
                            provedores (`UNKNOWN`, `LOW`, `MEDIUM`, `HIGH`,
                            `CRITICAL`). `null` até que algo a defina.
                        subject_name:
                          type: string
                          nullable: true
                          description: Nome completo da parte `APPLICANT`.
                        subject_vendor_data:
                          type: string
                          nullable: true
                          description: >-
                            Seu identificador interno de usuário/empresa para o
                            solicitante.
                        subject_country:
                          type: string
                          nullable: true
                          description: >-
                            Código do país do solicitante, a partir do
                            `address.country` enviado (normalmente ISO 3166-1
                            alpha-3).
                        counterparty_name:
                          type: string
                          nullable: true
                          description: Nome completo da parte `COUNTERPARTY`, se houver.
                        counterparty_vendor_data:
                          type: string
                          nullable: true
                          description: Seu identificador interno para a contraparte.
                        counterparty_country:
                          type: string
                          nullable: true
                          description: >-
                            Código do país da contraparte, a partir do
                            `address.country` enviado.
                        tags:
                          type: array
                          items:
                            type: object
                            properties:
                              uuid:
                                type: string
                                format: uuid
                              name:
                                type: string
                              color:
                                type: string
                              description:
                                type: string
                                nullable: true
                              source:
                                type: string
                                enum:
                                  - didit
                                  - custom
                                description: >-
                                  Se a tag é uma predefinição da Didit ou uma
                                  tag personalizada.
                          description: >-
                            Tags anexadas à transação (manualmente ou por
                            regras).
                        txn_date:
                          type: string
                          format: date-time
                          description: >-
                            Quando a transação ocorreu (a partir de
                            `transaction_at` no momento da criação).
                        created_at:
                          type: string
                          format: date-time
                          description: Quando a Didit registrou o envio.
                        decision_reason_code:
                          type: string
                          nullable: true
                          description: >-
                            Motivo legível por máquina do `status` atual (por
                            exemplo, `WALLET_HIGH_RISK`).
                        decision_reason_label:
                          type: string
                          nullable: true
                          description: Rótulo legível de `decision_reason_code`.
                        assigned_to_name:
                          type: string
                          nullable: true
                          description: >-
                            Nome de exibição do revisor do Console atribuído a
                            esta transação.
                        travel_rule_status:
                          type: string
                          nullable: true
                          description: >-
                            Status da transferência de Travel Rule da transação
                            (por exemplo, `COMPLETED`), ou `null` quando ela não
                            tem nenhuma.
                        travel_rule:
                          nullable: true
                          allOf:
                            - $ref: '#/components/schemas/TransactionTravelRule'
                          description: >-
                            A transferência da Travel Rule da transação, o mesmo
                            bloco que `travel_rule` em `GET
                            /v3/transactions/{transaction_id}/`, ou `null`
                            quando a transação não tem nenhuma.
              examples:
                Single transaction:
                  value:
                    count: 1
                    next: null
                    previous: null
                    total_transactions: 1
                    results:
                      - uuid: abcdef12-3456-4890-abcd-ef1234567890
                        transaction_number: 4123
                        txn_id: your-txn-2026-05-17-001
                        transaction_type: finance
                        action_type: withdrawal
                        status: IN_REVIEW
                        direction: OUTBOUND
                        amount: '1500'
                        currency: EUR
                        preferred_currency_amount: '1620.45'
                        preferred_currency_code: USD
                        payment_details: Withdrawal to crypto wallet
                        txn_date: '2026-05-17T08:42:00Z'
                        created_at: '2026-05-17T08:42:11Z'
                        score: 78
                        severity: HIGH
                        decision_reason_code: WALLET_HIGH_RISK
                        decision_reason_label: Destination wallet flagged as high risk
                        tags:
                          - uuid: 9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d
                            name: Manual review
                            color: '#F59E0B'
                            description: null
                            source: custom
                        subject_name: Maria Garcia
                        subject_vendor_data: user-12345
                        counterparty_name: null
                        counterparty_vendor_data: null
                        counterparty_country: null
                        subject_country: null
                        assigned_to_name: Alex Reviewer
                        travel_rule_status: null
                        travel_rule: null
        '403':
          description: >-
            Chave de API ausente, inválida ou revogada, ou a chave não pode
            listar transações desta aplicação. Uma chave ausente retorna `403`;
            uma chave incorreta, revogada ou expirada retorna `401`.
          content:
            application/json:
              examples:
                Forbidden:
                  value:
                    detail: You do not have permission to perform this action.
        '429':
          description: >-
            Limite de requisições excedido; aguarde e tente novamente após o
            intervalo indicado em `Retry-After`.
          content:
            application/json:
              examples:
                Throttled:
                  value:
                    detail: Request was throttled. Expected available in 30 seconds.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -X GET
            'https://verification.didit.me/v3/transactions/?limit=50' \
              -H 'x-api-key: YOUR_API_KEY'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            for item in client.transactions.list():
                print(item)
        - lang: javascript
          label: Node.js
          source: |-
            import Didit from "@didit-protocol/sdk-node";

            // Reads DIDIT_API_KEY.
            const didit = new Didit();

            for await (const item of didit.transactions.list()) {
              console.log(item);
            }
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\niter := client.Transactions.ListAutoPaging(ctx, didit.TransactionsListParams{})\nfor iter.Next() {\n\tfmt.Printf(\"%+v\\n\", iter.Current())\n}\nif err := iter.Err(); err != nil {\n\tlog.Fatal(err)\n}"
        - lang: java
          label: Java
          source: |-
            import me.didit.Didit;

            // Reads DIDIT_API_KEY.
            Didit client = new Didit();

            for (var item : client.transactions().list()) {
                System.out.println(item);
            }
        - lang: php
          label: PHP
          source: |-
            <?php

            require 'vendor/autoload.php';

            use Didit\DiditClient;

            // Reads DIDIT_API_KEY.
            $didit = new DiditClient();

            foreach ($didit->transactions->list() as $item) {
                print_r($item->toArray());
            }
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

            # Reads DIDIT_API_KEY.
            didit = Didit::Client.new

            didit.transactions.list.auto_paging_each do |item|
              puts item.to_h
            end
        - lang: csharp
          label: .NET
          source: |-
            using System;
            using System.Text.Json;
            using Didit;

            // Reads DIDIT_API_KEY.
            using var client = new DiditClient();

            await foreach (var item in await client.Transactions.ListAsync())
            {
                Console.WriteLine(JsonSerializer.Serialize(item));
            }
components:
  schemas:
    TransactionTravelRule:
      type: object
      description: >-
        A transferência Travel Rule de uma transação, como retornada por `GET
        /v3/transactions/{transaction_id}/`, pela resposta `201` de `POST
        /v3/transactions/` e por cada linha de `GET /v3/transactions/`.
        `direction`, `rail`, `counterparty_vasp`, `delivery`, `discovery`,
        `reason` e `next_actions` têm o mesmo formato que em `PATCH
        /v3/transactions/{transaction_id}/travel-rule/`, de modo que uma única
        leitura de uma transação informa por que a transferência está travada e
        o que a faz avançar.
      properties:
        uuid:
          type: string
          format: uuid
        status:
          type: string
        protocol:
          type: string
          nullable: true
        required:
          type: boolean
        obligations_count:
          type: integer
        originator_data:
          type: object
          description: >-
            Parte remetente. Em uma transferência de entrada, os valores da
            contraparte ficam mascarados até que a propriedade seja confirmada.
        beneficiary_data:
          type: object
          description: >-
            Parte beneficiária. Em uma transferência recebida, os valores da
            contraparte ficam mascarados até que a propriedade seja confirmada.
        name_match:
          type: object
          nullable: true
          description: >-
            A comparação de nomes que decidiu a transferência (pontuação e
            rigor). Nula até que uma seja executada. Os nomes comparados são
            mascarados junto com as partes.
        data_match:
          $ref: '#/components/schemas/TravelRuleDataMatch'
        mismatched_fields:
          type: array
          items:
            type: string
          description: >-
            Atalho para `data_match.mismatched_fields`. Vazio quando nada
            difere.
        data_unmasked:
          $ref: '#/components/schemas/TravelRuleDataUnmasked'
        data_masked:
          type: boolean
          description: >-
            True enquanto os dados pessoais da contraparte estão mascarados
            nesta resposta.
        metadata:
          type: object
        direction:
          type: string
          enum:
            - INBOUND
            - OUTBOUND
          description: De qual lado da troca está esta transferência.
        rail:
          type: string
          nullable: true
          description: >-
            O canal pelo qual a transferência passou: `INTERNAL`, `TRP`, `GTR`,
            `TRUST`, `VERIFYVASP`, `SYGNA` ou `EMAIL` (`TEST_VASP` em uma
            aplicação de sandbox, quando o Didit Test VASP respondeu), ou `null`
            até que um canal seja escolhido.
        counterparty_vasp:
          type: object
          nullable: true
          properties:
            name:
              type: string
            lei:
              type: string
            dd_score:
              type: integer
              description: >-
                Pontuação de due diligence de 0 a 100, em que valores maiores
                são melhores. Mesma escala do diretório de VASPs.
            dd_score_breakdown:
              type: object
              description: >-
                Contribuições de cada componente para o dd_score, um objeto por
                componente, como no diretório de VASPs (jurisdiction,
                verification, protocol, lei, history, essentials,
                responsiveness), cada um com {points, max, reason, detail}. {}
                até que a contraparte tenha sido avaliada.
              additionalProperties:
                type: object
                properties:
                  points:
                    type: number
                    description: Pontos atribuídos a este componente.
                  max:
                    type: integer
                    description: Pontuação máxima que este componente pode conceder.
                  reason:
                    type: string
                    description: Código legível por máquina do veredito do componente.
                  detail:
                    type: string
                    description: Motivo legível dos pontos atribuídos.
            dd_assessed_at:
              type: string
              format: date-time
              nullable: true
              description: >-
                Quando a avaliação de devida diligência foi executada pela
                última vez. Nulo até que a contraparte tenha sido avaliada.
          description: >-
            A entrada da contraparte no diretório, ou `null` quando a
            transferência não vincula nenhuma.
        delivery:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/TravelRuleDelivery'
          description: >-
            A mensagem mais recente que a transferência deve a outra parte.
            `null` quando não deveu nenhuma, por exemplo abaixo de
            `threshold_amount` ou para uma carteira autocustodiada declarada.
        discovery:
          type: array
          description: >-
            Como a Didit procurou a contraparte, com uma entrada por etapa
            executada. Vazio quando nenhuma descoberta foi executada, por
            exemplo, em uma transferência de entrada.
          items:
            $ref: '#/components/schemas/TravelRuleDiscoveryStep'
        reason:
          type: string
          description: >-
            Motivo pelo qual uma transferência `COUNTERPARTY_VASP_NOT_FOUND` ou
            `COUNTERPARTY_VASP_NOT_REACHABLE` está parada; `""` para qualquer
            outro status. Uma falha de entrega decide primeiro, apenas em
            `COUNTERPARTY_VASP_NOT_REACHABLE`: `email_undeliverable` (o provedor
            de e-mail recusou o e-mail de conformidade e não resta nenhum
            endereço para tentar: no envio, em um lembrete ou como uma devolução
            permanente informada depois) ou `delivery_failed` (o canal que fazia
            a entrega falhou definitivamente: um canal de rede recusou a
            mensagem ou esgotou as novas tentativas, um host de identidade `TRP`
            não respondeu ou o host `TRP` da contraparte não aceitou a
            consulta). Caso contrário, o rastro de `discovery` decide:
            `awaiting_end_user` (nenhuma etapa indicou uma contraparte que a
            Didit consiga alcançar), `directory_match_no_route` (uma etapa
            indicou um VASP do diretório que não tem rota),
            `picked_member_without_proven_wallet` (o usuário final escolheu um
            cliente da Didit que não comprovou o controle da carteira) ou
            `no_directory_match` quando o rastro não indica nenhum outro motivo.
            Um reenvio faz a transferência avançar, e o motivo é então limpo.
            Veja [Por que uma transferência está
            parada](/pt-br/transaction-monitoring/travel-rule#por-que-uma-transferência-fica-travada).
        next_actions:
          type: array
          description: >-
            O que faz a transferência avançar; `[]` para qualquer status que não
            seja `COUNTERPARTY_VASP_NOT_FOUND` ou
            `COUNTERPARTY_VASP_NOT_REACHABLE`. `email_undeliverable` oferece
            `update_compliance_email` e depois `resend`. `delivery_failed`
            oferece `resend`. Um motivo de descoberta oferece
            `select_counterparty_vasp`, `declare_self_hosted`, `add_vasp_hint` e
            `resend`.
          items:
            $ref: '#/components/schemas/TravelRuleNextAction'
        chain_details:
          $ref: '#/components/schemas/TravelRuleChainDetails'
    TravelRuleDataMatch:
      type: object
      nullable: true
      description: >-
        Comparação campo a campo entre os dados das partes da transferência e o
        que o outro lado sabe sobre o titular da carteira. Ela indica campos e
        resultados, nunca valores, por isso continua legível enquanto os dados
        da contraparte estão mascarados. Nulo até que uma comparação seja
        executada.
      properties:
        matched:
          type: boolean
          description: True quando nenhum campo comparado é diferente.
        mismatched_fields:
          type: array
          items:
            type: string
            enum:
              - name
              - date_of_birth
              - address
              - account
          description: Os campos que diferem.
        fields:
          type: object
          description: >-
            Uma entrada por campo comparado para o tipo de entidade da parte
            (`name`, `date_of_birth`, `address`, `account`; uma empresa não tem
            `date_of_birth`).
          additionalProperties:
            type: object
            properties:
              result:
                type: string
                enum:
                  - matched
                  - mismatched
                  - not_compared
                description: >-
                  `not_compared` quando a regra é `NONE` ou um dos lados não tem
                  valor para o campo.
              strictness:
                type: string
                enum:
                  - NONE
                  - STRICT
                  - CONTAINS
                  - DEFAULT
                  - FUZZY
    TravelRuleDataUnmasked:
      type: object
      nullable: true
      description: >-
        Registro de auditoria do momento em que os dados da contraparte foram
        desmascarados. É nulo enquanto os dados ainda estão mascarados e em
        transferências de saída.
      properties:
        at:
          type: string
          format: date-time
        reason:
          type: string
          enum:
            - ownership_confirmed
            - wallet_proof
            - address_book_match
            - own_verified_wallet
            - inquiry_approved
            - known_payment_method
            - travel_address
          description: >-
            O que confirmou a propriedade: ownership_confirmed (sua confirmação
            pelo console ou pela API), wallet_proof (uma prova de carteira no
            widget ou uma transferência de entrada INTERNAL, definida quando é
            criada), address_book_match (uma carteira verificada do catálogo de
            endereços), own_verified_wallet (a carteira verificada do próprio
            usuário), inquiry_approved (sua aprovação de uma consulta TRP de
            entrada ou de uma mensagem GTR ou Sygna), known_payment_method (uma
            carteira com a qual seu usuário já pagou) ou travel_address (o
            travel address por carteira identificou a carteira).
        actor:
          type: string
          description: >-
            Quem confirmou: o e-mail do usuário do console ou o rótulo da chave
            de API. Em branco para uma decisão automática.
    TravelRuleDelivery:
      type: object
      description: >-
        Situação da mensagem mais recente que a transferência deve à outra
        parte. A Didit contata a contraparte depois que a requisição que criou
        ou alterou a transferência retorna, então este objeto indica se essa
        mensagem foi entregue: na fila, em envio, aguardando nova tentativa após
        um erro, entregue ou com falha. Uma falha da qual a rede ainda pode se
        recuperar (sem resposta a tempo, falha de conexão, HTTP `408`, `429` ou
        `5xx`) é tentada novamente após 30 segundos, 2 minutos, 10 minutos, 30
        minutos e 1 hora. Quando uma primeira mensagem (`kind: SEND`) falha
        definitivamente, porque a rede a recusou ou porque a sexta tentativa
        também falhou, a transferência passa para
        `COUNTERPARTY_VASP_NOT_REACHABLE` com `last_error` em sua `timeline`;
        qualquer outra mensagem que falhe definitivamente é registrada na
        `timeline`. O `status` da transferência continua sendo a fonte da
        verdade sobre a troca em si.
      required:
        - kind
        - status
        - rail
        - attempts
        - last_error
        - next_attempt_at
        - delivered_at
      properties:
        kind:
          type: string
          enum:
            - SEND
            - ANSWER
            - TXID
            - CANCEL
            - POLL
          description: >-
            O que a mensagem transporta. `SEND`: a primeira mensagem da
            transferência para a contraparte (de saída; o canal é escolhido no
            momento do envio). `ANSWER`: sua aceitação ou recusa, devida à rede
            que fez a solicitação (de entrada). `TXID`: o hash da transação
            on-chain, depois que você conclui a transferência. `CANCEL`: o
            cancelamento, depois que você cancela a transferência. `POLL`: uma
            consulta de status a uma rede que oferece esse recurso, repetida a
            cada 5 minutos enquanto a transferência aguarda a contraparte.
        status:
          type: string
          enum:
            - QUEUED
            - SENDING
            - RETRYING
            - DELIVERED
            - FAILED
          description: >-
            `QUEUED`: aguardando envio. `SENDING`: uma tentativa está em
            andamento. `RETRYING`: uma tentativa falhou e a próxima será
            executada em `next_attempt_at`. `DELIVERED`: o outro lado recebeu a
            mensagem. `FAILED`: o outro lado a recusou, ou a última tentativa
            falhou.
        rail:
          type: string
          enum:
            - INTERNAL
            - TRP
            - GTR
            - TRUST
            - VERIFYVASP
            - SYGNA
            - EMAIL
            - ''
          description: >-
            O canal que transporta a mensagem. Fica vazio até que a Didit
            escolha um para uma primeira mensagem.
        attempts:
          type: integer
          minimum: 0
          description: >-
            Tentativas feitas até agora para esta mensagem. Uma mensagem que não
            seja uma consulta de status é tentada no máximo 6 vezes.
        last_error:
          type: string
          description: >-
            O tipo de falha que a última tentativa encontrou, `""` quando não
            houve nenhuma: por exemplo `email undeliverable`, `trp identity
            endpoint unreachable` ou `trp transfer inquiry delivery failed`.
            Nunca inclui a resposta da própria contraparte, que fica na
            `timeline` da transferência.

            Quando o GTR responde com um erro, o código de status e a mensagem
            dele são incluídos. Os corpos de resposta nunca são incluídos.
          example: email undeliverable
        next_attempt_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            Quando a próxima tentativa é executada enquanto a mensagem está
            `QUEUED` ou `RETRYING`.
        delivered_at:
          type: string
          format: date-time
          nullable: true
          description: Quando o outro lado recebeu a mensagem.
    TravelRuleDiscoveryStep:
      type: object
      description: >-
        Uma etapa da descoberta de contraparte que a Didit executou para uma
        transferência de saída, na ordem em que as executou. A primeira etapa
        que identifica um VASP com rota encerra a cadeia.
      properties:
        step:
          type: string
          enum:
            - internal_address_book
            - wallet_attribution
            - network_lookup
            - customer_hint
            - end_user
          description: >-
            `internal_address_book`: outro cliente da Didit que comprovou o
            controle da carteira de destino. `wallet_attribution`: a atribuição
            da carteira feita por análise de blockchain. `network_lookup`: uma
            rede capaz de informar qual VASP detém o endereço. `customer_hint`:
            o nome do VASP, o LEI ou a jurisdição que você enviou em
            `beneficiary_data`. `end_user`: a contraparte que o usuário final
            (ou você) escolheu, ou o pedido para escolher uma.
        outcome:
          type: string
          enum:
            - match
            - miss
            - skipped
          description: >-
            `match`: a etapa identificou uma contraparte. `miss`: ela foi
            executada e não encontrou nenhuma. `skipped`: ela não pôde ser
            executada, e `reason` informa o motivo.
        reason:
          type: string
          description: >-
            Motivo legível por máquina, `""` quando há correspondência:
            `no_proven_internal_wallet`, `attribution_disabled`,
            `already_attributed`, `no_attributed_entity`,
            `directory_match_no_route`, `gtr_address_lookup_runs_on_dispatch`,
            `no_membership`, `network_switched_off`,
            `no_network_address_lookup`, `no_directory_match`,
            `awaiting_end_user` ou `picked_member_without_proven_wallet`.
        vasp:
          type: string
          format: uuid
          nullable: true
          description: O VASP do diretório indicado pela etapa, quando ela indicou um.
        rail:
          type: string
          nullable: true
          description: O canal que alcança essa contraparte, quando a etapa encontrou um.
        at:
          type: string
          format: date-time
    TravelRuleNextAction:
      type: object
      description: >-
        Algo que faz avançar uma transferência `COUNTERPARTY_VASP_NOT_FOUND` ou
        `COUNTERPARTY_VASP_NOT_REACHABLE`. Consulte [Por que uma transferência
        está
        parada](/pt-br/transaction-monitoring/travel-rule#por-que-uma-transferência-fica-travada).
      properties:
        action:
          type: string
          enum:
            - select_counterparty_vasp
            - declare_self_hosted
            - add_vasp_hint
            - update_compliance_email
            - resend
          description: >-
            `select_counterparty_vasp`: o usuário final escolhe o VASP de
            destino no widget de propriedade da carteira, ou você faz um PATCH
            com `action=beneficiary_vasp`. `declare_self_hosted`: o usuário
            final declara no widget que a carteira é autocustodiada.
            `add_vasp_hint`: informe à Didit quem é a contraparte, com um nome
            de VASP, um LEI ou um travel address (por exemplo, um
            `travel_address` na entrada do catálogo de endereços da carteira de
            destino) e depois reenvie. `update_compliance_email` e `resend` são
            valores de `action` de `PATCH
            /v3/transactions/{transaction_id}/travel-rule/`: informe novamente o
            e-mail de conformidade da contraparte e execute o roteamento outra
            vez.
        url:
          type: string
          format: uri
          description: >-
            O link do widget de propriedade da carteira, em
            `select_counterparty_vasp` e `declare_self_hosted`, enquanto a
            transferência tiver uma sessão de widget aberta.
      required:
        - action
    TravelRuleChainDetails:
      type: object
      description: >-
        Como a blockchain da transferência identifica suas duas carteiras,
        quando isso vai além de um endereço pagando a outro. Vazio (`{}`) para
        uma transferência em blockchain baseada em contas (EVM, Solana, Tron),
        em que os dois endereços são as próprias carteiras. A correspondência, o
        roteamento e o catálogo de endereços leem as carteiras primeiro a partir
        daqui.
      properties:
        chain:
          type: string
          description: >-
            Blockchain canônica, por exemplo, `BTC`, `XRP` ou `LIGHTNING` para
            uma transferência Lightning.
        shape:
          type: string
          enum:
            - utxo
            - memo
            - lightning
        originator:
          $ref: '#/components/schemas/TravelRuleChainSide'
        beneficiary:
          $ref: '#/components/schemas/TravelRuleChainSide'
        utxo:
          type: object
          description: >-
            Em uma transferência UTXO: as entradas e saídas conforme armazenadas
            (valores como strings decimais) e como a Didit interpretou cada
            saída.
          properties:
            inputs:
              type: array
              items:
                $ref: '#/components/schemas/TravelRuleUtxoEntry'
            outputs:
              type: array
              items:
                $ref: '#/components/schemas/TravelRuleUtxoEntry'
            change_output_indexes:
              type: array
              items:
                type: integer
              description: Saídas que pagam de volta a um endereço de entrada.
            beneficiary_output_index:
              type: integer
              nullable: true
              description: >-
                A saída que paga o beneficiário; null quando nenhuma pôde ser
                distinguida.
        lightning:
          type: object
          description: >-
            Em uma transferência Lightning: o que a requisição de pagamento
            informa. Sempre `kind` (`bolt11`, `bolt12_offer`, `bolt12_invoice`,
            `bolt12_invoice_request`, `lnurl`, `lightning_address`, `node_id` ou
            `unknown`); uma fatura BOLT11 acrescenta `network`, `payee_node_id`,
            `payment_hash`, `amount_msat`, `created_at` e `expires_at`; uma
            string BOLT12, `blinded_paths` e `payee_node_id`; uma LNURL ou um
            Lightning Address, o respectivo `domain`. Nada é resolvido pela
            rede: a requisição é apenas decodificada.
          additionalProperties: true
        warnings:
          type: array
          items:
            type: string
            enum:
              - declared_originator_not_an_input
              - declared_beneficiary_not_an_output
              - beneficiary_output_ambiguous
              - beneficiary_output_amount_differs
          description: >-
            Inconsistências de UTXO que merecem atenção: o remetente declarado
            não é uma entrada, o beneficiário declarado não é uma saída, não foi
            possível distinguir uma única saída do beneficiário, ou a saída do
            beneficiário paga um valor diferente do informado na transação.
        not_applicable_reason:
          type: string
          enum:
            - LIGHTNING_NO_PAYEE_IDENTIFIER
            - LIGHTNING_BOLT12_BLINDED_PAYEE
            - LIGHTNING_LNURL_NAMES_NO_PAYEE
          description: >-
            Em uma transferência Lightning de saída cuja requisição de pagamento
            não indica nenhum beneficiário: o motivo pelo qual a transferência é
            `NOT_APPLICABLE`. `LIGHTNING_NO_PAYEE_IDENTIFIER` (a requisição não
            indica nenhum nó beneficiário ou não pôde ser decodificada),
            `LIGHTNING_BOLT12_BLINDED_PAYEE` (a oferta oculta o beneficiário
            atrás de blinded paths), `LIGHTNING_LNURL_NAMES_NO_PAYEE` (uma LNURL
            indica um serviço, não um beneficiário). O mesmo código abre a
            última entrada de `timeline` da transferência.
    TravelRuleChainSide:
      type: object
      description: >-
        A carteira de uma das partes, conforme a Didit a resolveu a partir dos
        dados da blockchain.
      properties:
        address:
          type: string
          description: >-
            A carteira. Em uma rede com memo, o endereço clássico (um X-address
            da XRP é dividido em endereço clássico e tag); na Lightning, o ID do
            nó do beneficiário ou o Lightning Address.
        memo:
          type: string
          description: >-
            A destination tag ou o memo que faz parte da carteira; `""` para
            nenhum.
        source:
          type: string
          enum:
            - declared
            - x_address
            - largest_input
            - only_non_change_output
            - amount_match
            - invoice_payee
            - updated
          description: >-
            Origem da carteira: `declared` (sua requisição), `x_address`
            (extraída de um X-address do XRP), `largest_input` (o endereço de
            entrada UTXO que mais contribuiu), `only_non_change_output` (a única
            saída UTXO que não é troco), `amount_match` (a única saída UTXO que
            paga o valor da transferência), `invoice_payee` (o beneficiário
            indicado em uma solicitação de pagamento Lightning), `updated`
            (definida posteriormente com `action: update_originator_wallet`).
    TravelRuleUtxoEntry:
      type: object
      description: >-
        Uma entrada ou saída de uma transação UTXO, conforme registrada na
        blockchain.
      required:
        - address
      properties:
        address:
          type: string
          maxLength: 128
        amount:
          type: string
          nullable: true
          description: >-
            String decimal na própria unidade da moeda (BTC, não satoshis).
            Opcional.
          example: '0.0125'
        txid:
          type: string
          maxLength: 128
          description: Opcional. A transação que uma entrada gasta.
        vout:
          type: integer
          nullable: true
          minimum: 0
          description: Opcional. O índice da saída que uma entrada gasta.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Chave de API da sua aplicação, em Developers -> API keys no Business
        Console. A chave principal tem acesso total. Uma chave nomeada pode ter
        escopo restrito: nenhum acesso, leitura ou escrita por recurso, limitada
        a alguns fluxos ou a sessões aprovadas, a uma lista de endereços IP e a
        uma data de validade. 401 significa que a chave está errada, revogada ou
        expirada; 403 significa que nenhuma chave foi enviada, que a chave não
        tem acesso a este recurso ou ação, ou que a requisição veio de um
        endereço fora da sua lista de IPs; 404 em uma rota de sessão significa
        que a sessão está fora dos fluxos ou status da chave. Uma chave sem
        acesso a mídia recebe URLs de imagem, vídeo e PDF como null, e uma chave
        sem permissão de escrita em sessões recebe links e tokens de sessão como
        null. Consulte https://docs.didit.me/console/api-keys.

````

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