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

# Obter transação API: detalhe KYT

> Obtenha uma transação KYT na Didit: partes, métodos de pagamento, alertas, regras, Travel Rule, ligações de remediação e snapshots de rede.



Prompt da API para obter uma transação
        Copiar o prompt para a área de transferência



      
      

\<pre>

\`Fetch the full detail of a Didit monitored transaction through the Management API.

Endpoint:
GET https://verification.didit.me/v3/transactions/{transaction_id}/

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

Goal:
\- Retrieve every detail of a transaction — linked parties, payment methods, alerts, rule matches, travel-rule checks, remediation links, network snapshots, cost breakdown — so I can render a detail screen or feed a downstream decision.

Path parameter:
\- transaction_id - Didit's transaction uuid (the uuid returned by POST /v3/transactions/).
Your own txn_id is not accepted here and returns 404.

Example call:
curl -X GET "https://verification.didit.me/v3/transactions/{transaction_id}/" \
-H "x-api-key: YOUR_API_KEY"

What to read from the response:
\- uuid, transaction_number, txn_id — identifiers.
\- status, score, severity, decision_reason_code, decision_reason_label — current verdict.
\- direction, amount, currency, currency_type, action_type, payment_details, payment_txn_id - the submitted details as top-level fields (there is no transaction_details object, and currency_type carries the currency_kind you sent).
\- parties - party records with role APPLICANT (the subject) or COUNTERPARTY (the other side) and kind USER, BUSINESS or EXTERNAL, each with entity_type, vendor_data, full_name, address and device.
\- payment_methods - the linked payment methods, each with payment_method_type, account_id and role (for example SOURCE or DESTINATION).
\- cost_breakdown — provider-by-provider cost detail for this transaction.
\- rule_runs / alerts — which rules fired and their outcomes.
\- provider_results - crypto screening (blockchain analytics) results, when a screening ran.
\- travel_rule - the Travel Rule transfer (uuid, status, protocol, required, obligations_count, originator_data, beneficiary_data, metadata, direction, rail, counterparty_vasp, delivery, discovery, reason, next_actions), or null when the transaction has none.
For a COUNTERPARTY_VASP_NOT_FOUND or COUNTERPARTY_VASP_NOT_REACHABLE transfer, reason says why it is stuck and next_actions what moves it on: email_undeliverable offers update_compliance_email then resend, delivery_failed offers resend, and a discovery reason (awaiting_end_user, directory_match_no_route, picked_member_without_proven_wallet, no_directory_match) offers select_counterparty_vasp, declare_self_hosted, add_vasp_hint and resend.
delivery is the newest message the transfer owes the other side (kind, status, rail, attempts, last_error, next_attempt_at, delivered_at), or null; discovery is the trace of where Didit looked for the counterparty.
On an inbound transfer, the counterparty's originator_data and beneficiary_data stay masked (data_masked: true) until wallet ownership is confirmed.
\- tags — Console tags (uuid, name, color).
\- assigned_to_name (the Console reviewer) is not part of this response; the list endpoint GET /v3/transactions/ returns it.

Use cases:
\- Render the Console-equivalent "Transaction detail" screen in your back-office.
\- Reconcile rule outcomes against your own ledger.
\- Poll after a transaction.status.updated webhook to fetch the fresh verdict.

Failure modes:
\- 403 - missing x-api-key (a wrong, revoked or expired key gets 401), or a key without permission for this action ({ "detail": "..." } envelope).
\- 404 - transaction not found in this application, including a transaction that belongs to another application (or deleted via the Console).
\- 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/openapi-25.json GET /v3/transactions/{transaction_id}/
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/{transaction_id}/:
    get:
      tags:
        - Transactions
      summary: Obter transação
      description: >-
        Obter o registo de monitorização completo para uma transação: partes,
        pontuação/gravidade, execuções de regras, alertas, resultado da Travel
        Rule, sessão de remediação.
      operationId: getTransaction
      parameters:
        - name: transaction_id
          in: path
          required: true
          description: >-
            UUID de transação estável da Didit (o `uuid` devolvido na
            criação/listagem, **não** o seu `txn_id`).
          schema:
            type: string
            format: uuid
          example: abcdef12-3456-7890-abcd-ef1234567890
      responses:
        '200':
          description: Detalhe completo da transação.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionDetail'
              examples:
                In review with an alert:
                  value:
                    uuid: abcdef12-3456-4890-abcd-ef1234567890
                    environment: live
                    transaction_number: 4123
                    txn_id: your-txn-2026-05-17-001
                    txn_date: '2026-05-17T08:42:00Z'
                    zone_id: Europe/Madrid
                    transaction_type: finance
                    action_type: withdrawal
                    direction: OUTBOUND
                    status: IN_REVIEW
                    source: LIVE
                    amount: '1500'
                    currency: EUR
                    currency_type: fiat
                    amount_in_default_currency: '1620.45'
                    default_currency_code: USD
                    preferred_currency_amount: '1620.45'
                    preferred_currency_code: USD
                    payment_details: Withdrawal to crypto wallet
                    payment_txn_id: null
                    score: 78
                    severity: HIGH
                    decision_reason_code: WALLET_HIGH_RISK
                    decision_reason_label: Destination wallet flagged as high risk
                    vendor_data: user-12345
                    metadata:
                      subject:
                        entity_type: individual
                        vendor_data: user-12345
                        full_name: Maria Garcia
                        address: {}
                        institution_details: {}
                        device_context: {}
                      counterparty: {}
                    props:
                      order_id: ord-9988
                    tags: []
                    parties:
                      - uuid: b1111111-2222-4333-8444-555555555555
                        role: APPLICANT
                        entity_type: individual
                        kind: USER
                        vendor_data: user-12345
                        full_name: Maria Garcia
                        first_name: null
                        last_name: null
                        country_code: null
                        dob: null
                        address: {}
                        institution_info: {}
                        device: {}
                        external_party_snapshot: null
                    payment_methods: []
                    documents: []
                    activities: []
                    alerts:
                      - uuid: a7b8c9d0-1234-4abc-9def-567890abcdef
                        title: Destination wallet flagged as high risk
                        description: Provider risk score exceeded the configured threshold.
                        severity: HIGH
                        status: OPEN
                        source: RULE
                        metadata: {}
                        created_at: '2026-05-17T08:42:12Z'
                        due_at: null
                    rule_runs: []
                    provider_results: []
                    travel_rule: null
                    network_snapshot: null
                    remediation: null
                    action_required: null
                    cost_breakdown: null
        '403':
          description: >-
            Chave de API em falta, inválida ou revogada, ou a chave não pode ler
            as transações desta aplicação. Uma chave em falta devolve `403`; uma
            chave incorreta, revogada ou expirada devolve `401`.
          content:
            application/json:
              examples:
                Forbidden:
                  value:
                    detail: You do not have permission to perform this action.
        '404':
          description: >-
            Não existe nenhuma transação com este UUID para a aplicação
            (eliminada, nunca criada, pertence a outra aplicação ou o segmento
            de caminho não é um UUID válido).
          content:
            application/json:
              examples:
                Not found:
                  value:
                    detail: Not found.
        '429':
          description: >-
            Limite de pedidos excedido; reduza a frequência 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/abcdef12-3456-7890-abcd-ef1234567890/'
            \
              -H 'x-api-key: YOUR_API_KEY'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.transactions.retrieve(
                "abcdef12-3456-7890-abcd-ef1234567890",
            )
            print(result)
        - lang: javascript
          label: Node.js
          source: >-
            import Didit from "@didit-protocol/sdk-node";


            // Reads DIDIT_API_KEY.

            const didit = new Didit();


            const result = await
            didit.transactions.retrieve("abcdef12-3456-7890-abcd-ef1234567890");

            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Transactions.Retrieve(ctx, \"abcdef12-3456-7890-abcd-ef1234567890\")\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"
        - lang: java
          label: Java
          source: >-
            import me.didit.Didit;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.transactions().retrieve("abcdef12-3456-7890-abcd-ef1234567890");

            System.out.println(result);
        - lang: php
          label: PHP
          source: >-
            <?php


            require 'vendor/autoload.php';


            use Didit\DiditClient;


            // Reads DIDIT_API_KEY.

            $didit = new DiditClient();


            $result =
            $didit->transactions->retrieve('abcdef12-3456-7890-abcd-ef1234567890');

            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: >-
            require "didit"


            # Reads DIDIT_API_KEY.

            didit = Didit::Client.new


            result =
            didit.transactions.retrieve("abcdef12-3456-7890-abcd-ef1234567890")

            puts result.to_h
        - lang: csharp
          label: .NET
          source: >-
            using System;

            using System.Text.Json;

            using Didit;


            // Reads DIDIT_API_KEY.

            using var client = new DiditClient();


            var result = await
            client.Transactions.RetrieveAsync("abcdef12-3456-7890-abcd-ef1234567890");

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    TransactionDetail:
      type: object
      description: >-
        Registo completo de monitorização de uma transação, conforme retornado
        por `GET /v3/transactions/{transaction_id}/` e `POST /v3/transactions/`.
      properties:
        uuid:
          type: string
          format: uuid
          description: >-
            Identificador de transação estável da Didit. Utilize como
            `{transaction_id}` para chamadas de seguimento.
        environment:
          type: string
          enum:
            - live
            - sandbox
          description: >-
            Ambiente da aplicação proprietária da transação. Uma transação em
            `sandbox` é armazenada, mas nunca avaliada, sujeita a triagem,
            notificada ou faturada, pelo que o seu `rule_runs` vazio significa
            "não avaliada".
        transaction_number:
          type: integer
          description: >-
            Número sequencial da transação no âmbito da aplicação apresentado na
            Consola (ex.: `4123`).
        txn_id:
          type: string
          description: >-
            O `transaction_id` que indicou no momento da criação (máx. 128
            carateres). Único por aplicação.
        txn_date:
          type: string
          format: date-time
          description: >-
            Quando a transação ocorreu (a partir de `transaction_at`; o padrão é
            a hora de submissão).
        zone_id:
          type: string
          nullable: true
          description: Identificador de fuso horário IANA fornecido no momento da criação.
        transaction_type:
          type: string
          description: >-
            Categoria de nível superior tal como armazenada: `finance`, `kyc`,
            `travelRule`, `userPlatformEvent`, `gamblingBet`,
            `gamblingLimitChange`, `gamblingBonusChange`, `auditTrailEvent`.
            Tenha em atenção que os valores com várias palavras são devolvidos
            em camelCase, mesmo quando enviados em snake_case.
        action_type:
          type: string
          description: >-
            Subtipo dentro da categoria (p. ex. `deposit`, `withdrawal`,
            `transfer`). É predefinido como a categoria quando não é fornecido.
        direction:
          type: string
          enum:
            - INBOUND
            - OUTBOUND
          description: >-
            Direção em relação ao sujeito. Armazenada em maiúsculas
            independentemente da capitalização submetida
            (`in`/`out`/`inbound`/`outbound` são aceites na entrada).
        status:
          type: string
          enum:
            - APPROVED
            - IN_REVIEW
            - DECLINED
            - AWAITING_USER
          description: >-
            Veredito atual de monitorização. As transações são criadas como
            `APPROVED`; as regras podem alterá-las sincronamente para
            `IN_REVIEW`/`DECLINED`.
        source:
          type: string
          enum:
            - LIVE
            - IMPORTED
          description: >-
            Como o registo teve origem: `LIVE` para transações submetidas
            através da API ou SDK, `IMPORTED` para transações carregadas através
            da importação da consola.
        amount:
          type: string
          description: >-
            Montante da transação como uma string decimal sem zeros à direita
            (por exemplo, `"1500"`, `"0.5"`, `"0.123456789012345678"`). Até 18
            casas decimais.
        currency:
          type: string
          description: >-
            Código de moeda de `amount`. Qualquer código alfabético ISO 4217 é
            aceite (por exemplo, `EUR`, `USD`, `NGN`), bem como um símbolo de
            ativo criptográfico (por exemplo, `BTC`). Dê preferência a um código
            atualmente em circulação. Nem todos os códigos aceites têm uma taxa
            de câmbio: quando nenhuma estiver disponível para o código (por
            exemplo, a unidade contabilística ISO `XSU`, ou um símbolo
            criptográfico que a Didit não precifique), a conversão automática
            falha e `preferred_currency_amount` é devolvido a null, a menos que
            o pedido tenha fornecido um `amount_in_default_currency`
            pré-convertido.
        currency_type:
          type: string
          nullable: true
          description: '`fiat` ou `crypto`, conforme submetido em `currency_kind`.'
        amount_in_default_currency:
          type: string
          nullable: true
          description: >-
            Montante pré-convertido fornecido por si, como uma cadeia decimal
            sem zeros à direita.
        default_currency_code:
          type: string
          nullable: true
        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
        payment_details:
          type: string
          nullable: true
          description: >-
            Referência ou memorando de pagamento em texto livre proveniente do
            envio.
        payment_txn_id:
          type: string
          nullable: true
          description: >-
            Referência externa do sistema de pagamento (por exemplo, hash de
            transação na blockchain) a partir de `payment_reference_id`.
        score:
          type: integer
          description: >-
            Pontuação de risco acumulada por regras (normalmente 0–100). Mais
            alta = maior risco.
        severity:
          type: string
          nullable: true
          enum:
            - UNKNOWN
            - LOW
            - MEDIUM
            - HIGH
            - CRITICAL
          description: >-
            Gravidade de risco categórica definida por regras/fornecedores
            (`UNKNOWN`, `LOW`, `MEDIUM`, `HIGH`, `CRITICAL`). `null` até que
            algo a defina.
        decision_reason_code:
          type: string
          nullable: true
          description: Motivo legível por máquina para o `status` atual.
        decision_reason_label:
          type: string
          nullable: true
          description: Rótulo legível para `decision_reason_code`.
        vendor_data:
          type: string
          nullable: true
          description: Cópia de conveniência dos `vendor_data` do requerente.
        metadata:
          type: object
          description: >-
            Instantâneo dos payloads de `subject` e `counterparty` conforme
            enviados no momento da criação.
        props:
          type: object
          description: >-
            As `custom_properties` que forneceu no momento da criação. Cada
            chave pode ser referenciada nas condições das regras como
            `custom_values.<key>`.
        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 etiqueta é uma predefinição da Didit ou uma etiqueta
                  personalizada.
          description: Etiquetas associadas à transação (manualmente ou por regras).
        parties:
          type: array
          items:
            type: object
            properties:
              uuid:
                type: string
                format: uuid
              role:
                type: string
                enum:
                  - APPLICANT
                  - REMITTER
                  - BENEFICIARY
                  - COUNTERPARTY
                description: >-
                  Função da parte. O endpoint de criação atribui `APPLICANT` (o
                  sujeito) e `COUNTERPARTY`.
              entity_type:
                type: string
                enum:
                  - individual
                  - company
                  - external
                  - unhostedWallet
              kind:
                type: string
                enum:
                  - USER
                  - BUSINESS
                  - EXTERNAL
                description: >-
                  As partes `USER`/`BUSINESS` ligam-se a uma entidade detida
                  pela Didit através de `vendor_data`. As partes `EXTERNAL` não
                  têm nenhuma entidade Didit associada.
              vendor_data:
                type: string
                nullable: true
                description: O seu identificador interno de utilizador/empresa.
              full_name:
                type: string
                nullable: true
              first_name:
                type: string
                nullable: true
              last_name:
                type: string
                nullable: true
              country_code:
                type: string
                nullable: true
                description: >-
                  Código do país a partir do `address.country` submetido
                  (normalmente ISO 3166-1 alpha-3).
              dob:
                type: string
                format: date
                nullable: true
                description: Data de nascimento a partir do `date_of_birth` submetido.
              address:
                type: object
                description: Objeto de morada conforme submetido. `{}` quando omitido.
              institution_info:
                type: object
                description: >-
                  Detalhes da instituição conforme submetidos. `{}` quando
                  omitidos.
              device:
                type: object
                description: >-
                  Contexto de dispositivo normalizado, incluindo enriquecimento
                  de IP do lado do servidor sob network_context (geolocalização,
                  flags de VPN/centro de dados) quando foi fornecido um IP.
                properties:
                  fingerprint:
                    type: string
                    description: Impressão digital única do dispositivo.
                  persistent_device_id:
                    type: string
                    description: >-
                      Identificador estável de dispositivo entre sessões
                      (esquema de fingerprint v2).
                  user_agent:
                    type: string
                    description: >-
                      Cadeia de caracteres do agente do utilizador do navegador
                      ou da aplicação.
                  browser_family:
                    type: string
                    description: >-
                      Família do navegador (por exemplo, Chrome, Firefox,
                      Safari).
                  browser_version:
                    type: string
                    description: Cadeia de caracteres da versão do navegador.
                  platform:
                    type: string
                    description: >-
                      Identificador da plataforma (web, ios, android, macos,
                      windows, linux).
                  os_family:
                    type: string
                    description: >-
                      Família do sistema operativo (por exemplo, iOS, Android,
                      Windows).
                  os_version:
                    type: string
                    description: String da versão do sistema operativo.
                  accept_language:
                    type: string
                    description: Valor do cabeçalho Accept-Language.
                  session_id:
                    type: string
                    description: Identificador da sessão (armazenado nos metadados).
                  session_age_ms:
                    type: number
                    description: Idade da sessão em milissegundos.
                  network_context:
                    type: object
                    description: Contexto de rede com endereço IP e geolocalização.
                    properties:
                      ip_address:
                        type: string
                        description: Endereço IP do cliente.
                      ip_country_code:
                        type: string
                        description: >-
                          País determinado por geolocalização do IP (ISO 3166-1
                          alfa-3).
                      latitude:
                        type: number
                        description: Latitude geográfica do IP.
                      longitude:
                        type: number
                        description: Longitude geográfica do IP.
              external_party_snapshot:
                type: object
                nullable: true
                description: >-
                  Cópia congelada dos dados da parte para partes `EXTERNAL`.
                  `null` enquanto a parte estiver associada a um utilizador ou
                  empresa Didit.
          description: Partes da transação (requerente, contraparte).
        payment_methods:
          type: array
          items:
            type: object
            properties:
              uuid:
                type: string
                format: uuid
              payment_method_type:
                type: string
                enum:
                  - bank_card
                  - bank_account
                  - e_wallet
                  - crypto_wallet
                  - unhosted_wallet
                  - other
              label:
                type: string
                nullable: true
              fingerprint:
                type: string
                nullable: true
                description: >-
                  SHA-256 sobre `type:account_id:issuing_country` —
                  identificador estável para correlacionar a reutilização do
                  mesmo instrumento.
              account_id:
                type: string
                nullable: true
                description: >-
                  Identificador de conta (IBAN, endereço de carteira, token de
                  cartão, …).
              issuing_country:
                type: string
                nullable: true
              owner_kind:
                type: string
                enum:
                  - USER
                  - BUSINESS
                  - EXTERNAL
              vendor_data:
                type: string
                nullable: true
                description: O seu identificador para o utilizador/empresa proprietário.
              owner_name:
                type: string
                nullable: true
              institution_info:
                type: object
              details:
                type: object
                description: Objeto `payment_method` em bruto conforme submetido.
              external_owner_snapshot:
                type: object
                nullable: true
              role:
                type: string
                enum:
                  - SOURCE
                  - DESTINATION
                  - FUNDING
                  - BENEFICIARY
                description: >-
                  Como este método foi utilizado na transação. O endpoint de
                  criação atribui `SOURCE`/`DESTINATION` a partir do sentido
                  (saída: sujeito = SOURCE; entrada: sujeito = DESTINATION).
          description: Métodos de pagamento associados à transação.
        documents:
          type: array
          description: >-
            Ficheiros anexados à transação a partir da consola. `[]` quando não
            existem ficheiros.
          items:
            type: object
            properties:
              uuid:
                type: string
                format: uuid
              label:
                type: string
                nullable: true
              note:
                type: string
                nullable: true
              uploaded_by:
                type: string
                nullable: true
              created_at:
                type: string
                format: date-time
              files:
                type: array
                items:
                  type: object
                  properties:
                    uuid:
                      type: string
                      format: uuid
                    file_url:
                      type: string
                      format: uri
                      nullable: true
                      description: >-
                        URL de transferência assinado de curta duração;
                        obtenha-o quando necessário em vez de o guardar.
                    original_filename:
                      type: string
                      nullable: true
                    file_size:
                      type: integer
                      nullable: true
        activities:
          type: array
          items:
            type: object
            properties:
              uuid:
                type: string
                format: uuid
              activity_type:
                type: string
                description: >-
                  Por exemplo, `TRANSACTION_CREATED`, `TRANSACTION_NOTE_ADDED`,
                  `TRANSACTION_STATUS_CHANGED`.
              source:
                type: string
              status:
                type: string
                nullable: true
              title:
                type: string
                nullable: true
              description:
                type: string
                nullable: true
              metadata:
                type: object
              occurred_at:
                type: string
                format: date-time
          description: >-
            Entradas do registo de atividade (criação, notas, revisões manuais,
            alterações de estado).
        alerts:
          type: array
          items:
            type: object
            properties:
              uuid:
                type: string
                format: uuid
              title:
                type: string
              description:
                type: string
                nullable: true
              severity:
                type: string
                enum:
                  - UNKNOWN
                  - LOW
                  - MEDIUM
                  - HIGH
                  - CRITICAL
              status:
                type: string
                enum:
                  - OPEN
                  - INVESTIGATING
                  - AWAITING_USER
                  - PENDING_SAR
                  - SAR_FILED
                  - RESOLVED
                  - DISMISSED
              source:
                type: string
                enum:
                  - RULE
                  - PROVIDER
                  - MANUAL
              metadata:
                type: object
              created_at:
                type: string
                format: date-time
              due_at:
                type: string
                format: date-time
                nullable: true
          description: >-
            Sempre vazio atualmente. Um alerta em aberto é uma transação com o
            estado `IN_REVIEW` ou `AWAITING_USER`.
        rule_runs:
          type: array
          items:
            type: object
            properties:
              uuid:
                type: string
                format: uuid
              rule:
                type: string
                format: uuid
                description: UUID da regra que foi executada.
              rule_title:
                type: string
              rule_description:
                type: string
                nullable: true
              rule_category:
                type: string
              matched:
                type: boolean
                description: >-
                  Se as condições da regra corresponderam a esta transação. Uma
                  execução só é registada para regras correspondentes, pelo que
                  as avaliações em tempo real contêm sempre `true`.
              is_test:
                type: boolean
                description: >-
                  True quando a regra foi executada no modo TEST (sem efeito no
                  estado/pontuação).
              mode:
                type: string
                enum:
                  - ACTIVE
                  - DISABLED
                  - TEST
              severity:
                type: string
                nullable: true
              score_delta:
                type: integer
                description: Pontuação adicionada pelas ações `add_score` desta regra.
              status_target:
                type: string
                nullable: true
                description: Estado definido por uma ação `change_status`, se houver.
              action_summary:
                type: string
                nullable: true
                description: >-
                  Resumo das ações que a regra executou, unidas com `; ` (por
                  exemplo, `score +30; change_status:IN_REVIEW;
                  add_tag:high_risk_country`). Partes: `score +N`,
                  `change_status:<STATUS>`, `add_tag:<name>`, `add_note`,
                  `add_to_list`, `open_case`. `null` quando a regra não executou
                  nenhuma ação.
              metadata:
                type: object
                description: >-
                  Detalhe da avaliação: `scope_match`, `conditions[]` e
                  `aggregations[]`. Cada entrada de condição inclui `field`,
                  `operator`, `expected_value`, o `current_value` lido a partir
                  da transação, `matched`, `group_index` e `group_logic`. Cada
                  entrada de agregação (velocidade / contagem / soma) inclui
                  `metric`, `field`, `operator`, `expected_value`, o
                  `computed_value` resultante da avaliação do agregado,
                  `window`, `filters`, `matched` e `sample_references`; as
                  agregações assíncronas diferidas têm `computed_value: null` e
                  `deferred: true`. Um grupo de condições aninhado é uma entrada
                  de `conditions[]` com `operator` `any_of` ou `all_of`, `field`
                  null e os resultados dos seus membros sob as suas próprias
                  `conditions`.
              created_at:
                type: string
                format: date-time
          description: >-
            Resultados da execução por regra — que regra foi acionada, com que
            impacto na pontuação.
        provider_results:
          type: array
          items:
            type: object
            properties:
              uuid:
                type: string
                format: uuid
              provider:
                type: string
              result_type:
                type: string
                enum:
                  - FIAT_MONITORING
                  - WALLET_SCREENING
                  - TRANSACTION_SCREENING
                  - TRAVEL_RULE
                  - NETWORK_GRAPH
                  - CUSTOM
              status:
                type: string
              severity:
                type: string
                nullable: true
              score:
                type: integer
              summary:
                type: string
                nullable: true
              payload:
                type: object
                description: Payload de resposta em bruto do fornecedor.
              created_at:
                type: string
                format: date-time
          description: >-
            Payloads em bruto do fornecedor (triagem AML, análise de blockchain,
            etc.).
        travel_rule:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/TransactionTravelRule'
          description: >-
            Transferência ou verificação da Travel Rule. Preenchido quando
            `travel_rule_details` foi submetido, e também quando a Travel Rule
            está ativada e a transação foi criada com `transaction_category:
            travelRule` (a Didit inicia a troca por si própria, mesmo sem
            `travel_rule_details`). `null` quando não existe qualquer
            transferência ou verificação. Numa transferência de entrada, os
            dados `originator_data` e `beneficiary_data` da contraparte
            permanecem mascarados (`data_masked: true`) até que a propriedade da
            carteira seja confirmada.
        network_snapshot:
          type: object
          nullable: true
          description: >-
            Instantâneo do grafo de transações/partes relacionadas utilizado
            pelo motor de regras. Corresponde ao `network_snapshot` submetido
            com a transação ou ao grafo que a Didit gera a partir de uma triagem
            AML de carteiras bem-sucedida (o qual substitui o submetido). `null`
            quando nenhum deles existe.
          properties:
            uuid:
              type: string
              format: uuid
            nodes:
              type: array
              items:
                type: object
            edges:
              type: array
              items:
                type: object
            metrics:
              type: object
        remediation:
          type: object
          nullable: true
          description: >-
            Sessão de remediação oferecida ao utilizador quando é necessária
            reverificação. Substituída por `action_required`, que é o bloco
            canónico; mantida para retrocompatibilidade.
          properties:
            session_id:
              type: string
            session_token:
              type: string
            url:
              type: string
              format: uri
            status:
              type: string
        action_required:
          type: object
          nullable: true
          description: >-
            Ação pendente do utilizador final necessária para concluir esta
            transação, ou null quando não houver nenhuma. Os SDKs da Didit
            iniciam automaticamente a ação por predefinição e atualizam a
            transação quando esta termina. Duas variantes, distinguidas por
            `type`: `verification_session` (uma sessão de verificação alojada
            criada por uma ação de regra) e `wallet_ownership` (uma sessão de
            widget de propriedade da carteira criada automaticamente para uma
            transferência da Travel Rule que necessita de comprovativo de
            controlo da carteira, condicionada pela definição da Travel Rule
            `auto_wallet_verification`). Quando ambas se podem aplicar,
            `wallet_ownership` tem precedência porque bloqueia a troca da Travel
            Rule.
          oneOf:
            - $ref: '#/components/schemas/TransactionVerificationSessionAction'
            - $ref: '#/components/schemas/TransactionWalletOwnershipAction'
          discriminator:
            propertyName: type
            mapping:
              verification_session: '#/components/schemas/TransactionVerificationSessionAction'
              wallet_ownership: '#/components/schemas/TransactionWalletOwnershipAction'
        cost_breakdown:
          type: object
          nullable: true
          description: >-
            Custo desta transação: `total_price` e `items`, um por cobrança,
            cada um com `usage_type`, `price`, `details` e `created_at`. Uma
            nova triagem da mesma transação constitui um novo item.
    TransactionTravelRule:
      type: object
      description: >-
        A transferência de Travel Rule de uma transação, tal como `GET
        /v3/transactions/{transaction_id}/`, o `201` de `POST /v3/transactions/`
        e cada linha de `GET /v3/transactions/` a devolvem. `direction`, `rail`,
        `counterparty_vasp`, `delivery`, `discovery`, `reason` e `next_actions`
        têm o mesmo formato que em `PATCH
        /v3/transactions/{transaction_id}/travel-rule/`, para que uma leitura de
        uma transação indique por que motivo a transferência está retida e o que
        fazer para prosseguir.
      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 ordenante. Para uma transferência de entrada, os valores da
            contraparte são ocultados até que a propriedade seja confirmada.
        beneficiary_data:
          type: object
          description: >-
            Parte beneficiária. Para uma transferência de entrada, os valores da
            contraparte são ocultados 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). Nulo até que uma seja executada. Os nomes comparados são
            mascarados em conjunto 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: >-
            Verdadeiro enquanto os dados pessoais da contraparte estiverem
            mascarados nesta resposta.
        metadata:
          type: object
        direction:
          type: string
          enum:
            - INBOUND
            - OUTBOUND
          description: A que lado da troca pertence esta transferência.
        rail:
          type: string
          nullable: true
          description: >-
            O canal através do qual a transferência ocorreu: `INTERNAL`, `TRP`,
            `GTR`, `TRUST`, `VERIFYVASP`, `SYGNA` ou `EMAIL` (`TEST_VASP` numa
            aplicação 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 diligência devida de 0 a 100, onde quanto mais
                alto, melhor. Mesma escala que no diretório VASP.
            dd_score_breakdown:
              type: object
              description: >-
                Contribuições por componente para dd_score, um objeto por
                componente como no diretório VASP (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: Pontos máximos que este componente pode atribuir.
                  reason:
                    type: string
                    description: Código legível por máquina do veredito do componente.
                  detail:
                    type: string
                    description: Motivo legível por humanos para os pontos atribuídos.
            dd_assessed_at:
              type: string
              format: date-time
              nullable: true
              description: >-
                Quando a avaliação de diligência devida foi executada pela
                última vez. Nulo até que a contraparte tenha sido avaliada.
          description: >-
            O registo de diretório da contraparte, ou `null` quando a
            transferência não associa nenhum.
        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 deve nenhuma, por exemplo abaixo de
            `threshold_amount` ou para uma carteira autocustodiada declarada.
        discovery:
          type: array
          description: >-
            Como a Didit procurou a contraparte, uma entrada por passo
            executado. Vazio quando não foi executada qualquer deteção, por
            exemplo, numa transferência recebida.
          items:
            $ref: '#/components/schemas/TravelRuleDiscoveryStep'
        reason:
          type: string
          description: >-
            O motivo pelo qual uma transferência `COUNTERPARTY_VASP_NOT_FOUND`
            ou `COUNTERPARTY_VASP_NOT_REACHABLE` está bloqueada; `""` para
            qualquer outro estado. Uma falha na entrega determina-o primeiro,
            apenas em `COUNTERPARTY_VASP_NOT_REACHABLE`: `email_undeliverable`
            (o fornecedor de e-mail recusou o e-mail de conformidade e não resta
            nenhum endereço para tentar: quando foi enviado, num lembrete ou
            como uma devolução permanente comunicada posteriormente) ou
            `delivery_failed` (o canal que estava a efetuar a entrega falhou
            definitivamente: um canal de rede recusou a mensagem ou esgotou as
            tentativas, um host de identidade `TRP` não respondeu, ou o host
            `TRP` da contraparte não aceitou a consulta). Caso contrário, o
            rastreio de `discovery` determina-o: `awaiting_end_user` (nenhum
            passo identificou uma contraparte que a Didit consiga contactar),
            `directory_match_no_route` (um passo identificou um VASP de
            diretório que não tem rota), `picked_member_without_proven_wallet`
            (o utilizador final escolheu um cliente Didit que não comprovou o
            controlo da carteira), ou `no_directory_match` quando o rastreio não
            fornece outro motivo. Um novo envio faz avançar a transferência,
            pelo que o motivo é limpo. Consulte [Por que motivo uma
            transferência está
            bloqueada](/pt/transaction-monitoring/travel-rule#por-que-motivo-uma-transferência-está-bloqueada).
        next_actions:
          type: array
          description: >-
            O que faz a transferência avançar; `[]` para qualquer estado exceto
            `COUNTERPARTY_VASP_NOT_FOUND` ou `COUNTERPARTY_VASP_NOT_REACHABLE`.
            `email_undeliverable` disponibiliza `update_compliance_email` e, em
            seguida, `resend`. `delivery_failed` disponibiliza `resend`. Um
            motivo de descoberta disponibiliza `select_counterparty_vasp`,
            `declare_self_hosted`, `add_vasp_hint` e `resend`.
          items:
            $ref: '#/components/schemas/TravelRuleNextAction'
        chain_details:
          $ref: '#/components/schemas/TravelRuleChainDetails'
    TransactionVerificationSessionAction:
      title: Verification session
      type: object
      properties:
        type:
          type: string
          enum:
            - verification_session
        url:
          type: string
          format: uri
          description: URL de verificação alojado a abrir para o utilizador final.
        session_id:
          type: string
          format: uuid
          description: ID da sessão de verificação.
        session_token:
          type: string
          description: >-
            Token de sessão, utilizado pelos SDKs móveis para iniciar o fluxo
            nativamente.
        status:
          type: string
          description: Estado da sessão de verificação.
      required:
        - type
        - url
    TransactionWalletOwnershipAction:
      title: Wallet ownership
      type: object
      properties:
        type:
          type: string
          enum:
            - wallet_ownership
        url:
          type: string
          format: uri
          description: >-
            URL do widget alojado de propriedade de carteira. Abra-o num
            navegador real - em dispositivos móveis, utilize
            SFSafariViewController ou um Chrome Custom Tab, nunca uma webview
            incorporada.
        widget_session_id:
          type: string
          format: uuid
          description: ID de sessão do widget de propriedade da carteira.
        expires_at:
          type: string
          format: date-time
          description: Quando a sessão do widget expira.
      required:
        - type
        - url
    TravelRuleDataMatch:
      type: object
      nullable: true
      description: >-
        Comparação campo a campo dos dados das partes da transferência com o que
        a outra parte sabe sobre o titular da carteira. Indica campos e
        resultados, nunca valores, para que permaneça legível enquanto os dados
        da contraparte estiverem mascarados. Null até que uma comparação tenha
        sido executada.
      properties:
        matched:
          type: boolean
          description: True quando nenhum campo comparado difere.
        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: >-
        Registo de auditoria do momento em que os dados da contraparte foram
        desmascarados. Nulo enquanto os dados ainda estiverem mascarados e para
        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 (a sua
            confirmação através da consola ou da 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 livro de endereços), own_verified_wallet (a carteira
            própria verificada do seu utilizador), inquiry_approved (a sua
            aprovação de um pedido TRP de entrada ou de uma mensagem GTR ou
            Sygna), known_payment_method (uma carteira com a qual o seu
            utilizador já pagou) ou travel_address (o Travel Address por
            carteira que nomeou a carteira).
        actor:
          type: string
          description: >-
            Quem o confirmou: o e-mail do utilizador da consola ou a etiqueta da
            chave de API. Em branco para uma decisão automática.
    TravelRuleDelivery:
      type: object
      description: >-
        O estado em que se encontra a mensagem mais recente que a transferência
        deve à outra parte. A Didit contacta a contraparte após o pedido que
        criou ou alterou a transferência ter retornado, pelo que este objeto
        indica se essa mensagem chegou ao destino: em fila, a ser enviada, a
        aguardar nova tentativa após um erro, entregue ou com falha. Uma falha
        da qual a rede ainda possa recuperar (sem resposta a tempo, ligação
        falhada, 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 a sexta tentativa também falhou, a transferência transita
        para `COUNTERPARTY_VASP_NOT_REACHABLE` com `last_error` na sua
        `timeline`; qualquer outra mensagem que falhe definitivamente é anotada
        na `timeline`. O `status` da transferência permanece a fonte da verdade
        para o intercâmbio 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
            quando é enviada). `ANSWER`: a sua aceitação ou recusa, devida à
            rede requerente (de entrada). `TXID`: o hash da transação on-chain,
            após concluir a transferência. `CANCEL`: o cancelamento, após
            cancelá-la. `POLL`: uma consulta de estado a uma rede que o
            disponibilize, repetida a cada 5 minutos enquanto a transferência
            aguarda a contraparte.
        status:
          type: string
          enum:
            - QUEUED
            - SENDING
            - RETRYING
            - DELIVERED
            - FAILED
          description: >-
            `QUEUED`: a aguardar envio. `SENDING`: tentativa em curso.
            `RETRYING`: uma tentativa falhou e a próxima será executada em
            `next_attempt_at`. `DELIVERED`: o outro lado aceitou a mensagem.
            `FAILED`: o outro lado recusou-a, ou a última tentativa falhou.
        rail:
          type: string
          enum:
            - INTERNAL
            - TRP
            - GTR
            - TRUST
            - VERIFYVASP
            - SYGNA
            - EMAIL
            - ''
          description: >-
            O canal que transporta a mensagem. Vazio até que a Didit escolha um
            para uma primeira mensagem.
        attempts:
          type: integer
          minimum: 0
          description: >-
            Tentativas efetuadas até ao momento para esta mensagem. Uma mensagem
            que não seja uma sondagem de estado é tentada no máximo 6 vezes.
        last_error:
          type: string
          description: >-
            O tipo de falha ocorrida na última tentativa, `""` se não tiver
            ocorrido nenhuma: por exemplo `email undeliverable`, `trp identity
            endpoint unreachable` ou `trp transfer inquiry delivery failed`.
            Nunca inclui a resposta da própria contraparte, que permanece na
            `timeline` da transferência.

            Quando a GTR responde com um erro, o respetivo código de estado e
            mensagem 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 estiver
            em `QUEUED` ou `RETRYING`.
        delivered_at:
          type: string
          format: date-time
          nullable: true
          description: Quando a outra parte recebeu a mensagem.
    TravelRuleDiscoveryStep:
      type: object
      description: >-
        Um passo da deteção de contraparte que a Didit executou para uma
        transferência de saída, na ordem em que foram executados. O primeiro
        passo que identifique um VASP com uma rota termina 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 provou o
            controlo da carteira de destino. `wallet_attribution`: a atribuição
            da carteira na análise de blockchain. `network_lookup`: uma rede que
            pode indicar qual VASP detém o endereço. `customer_hint`: o nome do
            VASP, LEI ou jurisdição que enviou em `beneficiary_data`.
            `end_user`: a contraparte que o utilizador final (ou você) escolheu,
            ou o pedido para escolher uma.
        outcome:
          type: string
          enum:
            - match
            - miss
            - skipped
          description: >-
            `match`: o passo indicou uma contraparte. `miss`: foi executado e
            não encontrou nenhuma. `skipped`: não pôde ser executado, e `reason`
            indica o motivo.
        reason:
          type: string
          description: >-
            Motivo legível por máquina, `""` numa 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 pelo passo, quando este tiver indicado
            um.
        rail:
          type: string
          nullable: true
          description: O canal que alcança essa contraparte, quando o passo encontrou um.
        at:
          type: string
          format: date-time
    TravelRuleNextAction:
      type: object
      description: >-
        Um elemento que faz avançar uma transferência com
        `COUNTERPARTY_VASP_NOT_FOUND` ou `COUNTERPARTY_VASP_NOT_REACHABLE`.
        Consulte [Por que motivo uma transferência está
        bloqueada](/pt/transaction-monitoring/travel-rule#por-que-motivo-uma-transferência-está-bloqueada).
      properties:
        action:
          type: string
          enum:
            - select_counterparty_vasp
            - declare_self_hosted
            - add_vasp_hint
            - update_compliance_email
            - resend
          description: >-
            `select_counterparty_vasp`: o utilizador final escolhe o VASP de
            destino no widget de titularidade da carteira, ou você envia um
            PATCH com `action=beneficiary_vasp`. `declare_self_hosted`: o
            utilizador final declara a carteira como autocustodiada no widget.
            `add_vasp_hint`: indique à Didit quem é a contraparte, com um nome
            de VASP, LEI ou Travel Address (por exemplo, um `travel_address` na
            entrada do livro de endereços da carteira de destino) e, em seguida,
            reenvie. `update_compliance_email` e `resend` são valores de
            `action` de `PATCH /v3/transactions/{transaction_id}/travel-rule/`:
            forneça novamente o e-mail de conformidade da contraparte e execute
            o encaminhamento outra vez.
        url:
          type: string
          format: uri
          description: >-
            A ligação do widget de titularidade da carteira, em
            `select_counterparty_vasp` e `declare_self_hosted` enquanto a
            transferência tem uma sessão do widget aberta.
      required:
        - action
    TravelRuleChainDetails:
      type: object
      description: >-
        Como a blockchain da transferência designa as suas duas carteiras,
        quando se trata de mais do que um endereço a pagar a outro. Vazio (`{}`)
        para uma transferência numa blockchain baseada em contas (EVM, Solana,
        Tron), onde os dois endereços são as carteiras. A correspondência, o
        encaminhamento e o livro de endereços leem primeiro as carteiras 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: >-
            Numa transferência UTXO: as entradas e saídas conforme armazenadas
            (quantias como cadeias decimais) e quais saídas a Didit interpretou
            como o quê.
          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 ao beneficiário; null quando não foi possível
                distingui-la.
        lightning:
          type: object
          description: >-
            Numa transferência Lightning: o conteúdo do pedido de pagamento.
            Sempre `kind` (`bolt11`, `bolt12_offer`, `bolt12_invoice`,
            `bolt12_invoice_request`, `lnurl`, `lightning_address`, `node_id` ou
            `unknown`); uma fatura BOLT11 adiciona `network`, `payee_node_id`,
            `payment_hash`, `amount_msat`, `created_at` e `expires_at`; uma
            cadeia BOLT12 adiciona `blinded_paths` e `payee_node_id`; um LNURL
            ou um Lightning Address adiciona o seu `domain`. Nada é resolvido
            através da rede: o pedido é apenas descodificado.
          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 ordenante declarado
            não é uma entrada, o beneficiário declarado não é uma saída, nenhuma
            saída individual de beneficiário pôde ser identificada ou a saída do
            beneficiário paga um montante diferente do indicado na transação.
        not_applicable_reason:
          type: string
          enum:
            - LIGHTNING_NO_PAYEE_IDENTIFIER
            - LIGHTNING_BOLT12_BLINDED_PAYEE
            - LIGHTNING_LNURL_NAMES_NO_PAYEE
          description: >-
            Numa transferência Lightning de saída cujo pedido de pagamento não
            indique um beneficiário: o motivo pelo qual a transferência é
            `NOT_APPLICABLE`. `LIGHTNING_NO_PAYEE_IDENTIFIER` (o pedido não
            indica o nó do beneficiário ou não pôde ser descodificado),
            `LIGHTNING_BOLT12_BLINDED_PAYEE` (a oferta oculta o seu beneficiário
            através de caminhos ocultos), `LIGHTNING_LNURL_NAMES_NO_PAYEE` (um
            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. Numa rede memo, o endereço clássico (um endereço X do
            XRP é dividido no seu endereço clássico e na respetiva etiqueta); na
            Lightning, o ID do nó do beneficiário ou o Lightning Address.
        memo:
          type: string
          description: >-
            A tag ou memo de destino que faz parte da carteira; `""` quando não
            existe nenhum memo.
        source:
          type: string
          enum:
            - declared
            - x_address
            - largest_input
            - only_non_change_output
            - amount_match
            - invoice_payee
            - updated
          description: >-
            Origem da carteira: `declared` (o seu pedido), `x_address` (dividido
            a partir de um X-address de 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 montante da transferência), `invoice_payee` (o beneficiário
            indicado por um pedido de pagamento Lightning), `updated` (definido
            posteriormente com `action: update_originator_wallet`).
    TravelRuleUtxoEntry:
      type: object
      description: >-
        Uma entrada ou saída de uma transação UTXO, tal como a blockchain a
        registou.
      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 um input gasta.
        vout:
          type: integer
          nullable: true
          minimum: 0
          description: Opcional. O índice do output que é gasto por um input.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        A chave de API da sua aplicação, a partir de Programadores -> Chaves de
        API na Business Console. A chave principal tem acesso total. Uma chave
        nomeada pode ter o âmbito definido: nenhum, 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á
        incorreta, 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 o
        pedido veio de um endereço fora da sua lista de IP; 404 numa rota de
        sessão significa que a sessão está fora dos fluxos ou estados da chave.
        Uma chave sem acesso a multimédia recebe URLs de imagens, vídeos e PDFs
        como nulos, e uma chave sem permissão de escrita em sessões recebe
        ligações de sessão e tokens como nulos. Consulte
        https://docs.didit.me/console/api-keys.

````

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