> ## 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 Atualizar Status de Hit AML: Confirmar e Limpar

> Com a API da Didit, marque ocorrências da triagem AML como Correspondência Confirmada, Falso Positivo ou Inconclusivo, individualmente ou em lote.



Prompt para atualizar o status de ocorrências AML
        Copiar o prompt para a área de transferência



      
      

\<pre>

\`Set the review status (disposition) of AML screening hits on a Didit session — one hit, or many at once.

AML screening returns a list of HITS (potential sanction / PEP / watchlist / adverse-media matches). Each hit carries a review_status you can change to record your compliance decision. This does NOT change the overall session decision.

Two endpoints:

1\) Single hit
PATCH https://verification.didit.me/v3/session/{session_id}/update-aml-hit-status/
Body:
\- hit_id (string, required) — the "id" of the hit in the AML check's "hits" array (see GET /v3/session/{id}/decision/), for example "hit_7c1e9a40b2d35f86e0a4c912". A hit id returned in the earlier format is still accepted; the response always returns the current "id".
\- review_status (string, required) — one of "Unreviewed", "Confirmed Match", "False Positive", "Inconclusive".
\- node_id (string, optional) — graph node ID, only if the session has multiple AML checks.

2\) Bulk
PATCH https://verification.didit.me/v3/session/{session_id}/bulk-update-aml-hit-status/
Body:
\- hit_updates (array, required) — list of { "hit_id": "...", "review_status": "..." }.
\- node_id (string, optional).
All-or-nothing: if any hit_id is missing, returns 404 and nothing changes.

Authentication:
x-api-key (client API key) or a user-auth token. Privilege: write:sessions.

Status values:
\- Unreviewed — default for hits at/above the match threshold; still needs review.
\- Confirmed Match — a true match.
\- False Positive — not the same entity; default for hits below the match threshold.
\- Inconclusive — could not determine.

Reviewer decisions are PRESERVED across ongoing-monitoring re-screens.

curl — clear one hit as a false positive:
curl -X PATCH https://verification.didit.me/v3/session/<SESSION_ID>/update-aml-hit-status/ \
-H "x-api-key: <API_KEY>" \
-H "Content-Type: application/json" \
-d '{ "hit_id": "hit_7c1e9a40b2d35f86e0a4c912", "review_status": "False Positive" }'

curl — bulk:
curl -X PATCH https://verification.didit.me/v3/session/<SESSION_ID>/bulk-update-aml-hit-status/ \
-H "x-api-key: <API_KEY>" \
-H "Content-Type: application/json" \
-d '{ "hit_updates": [ { "hit_id": "hit_7c1e9a40b2d35f86e0a4c912", "review_status": "Confirmed Match" }, { "hit_id": "hit_3b8f20d6a91c4e75f0b2d6a8", "review_status": "False Positive" } ] }'

Side effects:
\- Fires a data.updated webhook.
\- Appends an activity entry (with actor attribution) to the session review trail.

Failure modes:
\- 400 — review_status not a valid value, hit_id empty, or hit_updates empty.
\- 403 — missing credentials (a wrong, revoked or expired key gets 401), or the caller lacks write:sessions.
\- 404 — session not found, no AML check, or a hit_id was not found.

Related: to change the overall AML step status (Approved/Declined/In Review) use PATCH /v3/session/{id}/features/{node_id}/update-status/ (see /sessions-api/update-feature-status).

For end-to-end Didit integration, paste in the full prompt at /integration/integration-prompt.`

\</pre>



      
      

Colar em

## O que este endpoint fazA Análise AML retorna uma lista de **ocorrências** (hits): possíveis correspondências com listas de sanções, bancos de dados de PEP, listas de monitoramento e mídia adversa. Cada ocorrência tem um `review_status` (sua classificação), que começa como `Unreviewed` ou `False Positive` conforme a pontuação de correspondência. Este endpoint permite que sua equipe (ou sua automação) registre uma decisão sobre cada ocorrência, sem alterar a decisão geral da sessão.Encontre as ocorrências e seus IDs na [decisão da sessão](https://docs.didit.me/pt-br/sessions-api/retrieve-session.md): no array `hits` da verificação AML, o `id` de cada ocorrência é o `hit_id` que você envia aqui.O `id` de uma ocorrência é `hit_` seguido de 24 caracteres hexadecimais e permanece o mesmo quando o titular é analisado novamente. Um ID de ocorrência retornado no formato anterior continua sendo aceito; a resposta sempre identifica a ocorrência pelo seu `id` atual.## Status de revisão| `review_status` | Significado |
| - | - |
| `Unreviewed` | Padrão para ocorrências no limiar de correspondência ou acima dele; ainda precisa de uma decisão. |
| `Confirmed Match` | Uma correspondência verdadeira com a pessoa ou entidade analisada. |
| `False Positive` | Não é a mesma entidade. Padrão para ocorrências abaixo do limiar de correspondência. |
| `Inconclusive` | Não foi possível determinar. |> [!NOTE]
>
> As decisões dos revisores são **preservadas nas novas análises do monitoramento contínuo**: uma ocorrência que você marca como `False Positive` mantém esse status quando o provedor analisa a entidade novamente.## Atualizar uma única ocorrência**`PATCH /v3/session/{sessionId}/update-aml-hit-status/`**```bash theme={null}
curl -X PATCH https://verification.didit.me/v3/session/4c5c7f3a-.../update-aml-hit-status/ \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "hit_id": "hit_7c1e9a40b2d35f86e0a4c912",
    "review_status": "False Positive"
  }'
```Para uma sessão com várias verificações AML (fluxos de verificação (workflows) em grafo), adicione `?node_id=feature_aml_1` à URL ou inclua `"node_id"` no corpo para direcionar para uma verificação específica.## Atualizar várias ocorrências de uma vez**`PATCH /v3/session/{sessionId}/bulk-update-aml-hit-status/`**Envie `hit_updates`, uma lista de pares `{ hit_id, review_status }`. A operação é **tudo ou nada**: se algum `hit_id` não for encontrado, a requisição retorna `404` e nenhuma ocorrência é alterada.```bash theme={null}
curl -X PATCH https://verification.didit.me/v3/session/4c5c7f3a-.../bulk-update-aml-hit-status/ \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "hit_updates": [
      { "hit_id": "hit_7c1e9a40b2d35f86e0a4c912", "review_status": "Confirmed Match" },
      { "hit_id": "hit_3b8f20d6a91c4e75f0b2d6a8", "review_status": "False Positive" }
    ]
  }'
```Uma chamada em lote bem-sucedida dispara um único webhook `data.updated` e registra uma única entrada de atividade com todas as alterações.## O que acontece após uma atualização- **Webhook**: um evento `data.updated` é disparado na sessão.
- **Registro de auditoria**: a alteração é registrada na trilha de revisão da sessão com o autor (chave de API ou usuário), visível na linha do tempo de atividades do painel.
- **O status geral da etapa AML não é alterado**: mudar a classificação de uma ocorrência não altera, por si só, o status da etapa AML nem a decisão da sessão. Para alterar o status da **etapa** AML (`Approved` / `Declined` / `In Review`), use [update-feature-status](https://docs.didit.me/pt-br/sessions-api/update-feature-status.md). Para alterar a decisão da **sessão**, use [update-status](https://docs.didit.me/pt-br/sessions-api/update-status.md).## Suporte a KYC e KYBFunciona tanto para sessões de **Verificação de Usuário (KYC)** quanto de **Verificação de Empresas (KYB)**: a Didit resolve o `sessionId` em ambas. No KYB, a verificação AML é executada sobre a empresa e suas pessoas-chave; cada verificação AML expõe suas próprias resultados.## PermissãoRequer a permissão `write:sessions`, com uma chave de API de cliente (`x-api-key`) ou um cabeçalho de autorização de usuário.## Erros| Status | Significado |
| - | - |
| `400` | `review_status` não é um valor válido, `hit_id` está vazio ou `hit_updates` está vazio. |
| `403` | Credenciais ausentes ou inválidas, ou quem chama não tem `write:sessions`. |
| `404` | Sessão não encontrada, a sessão não tem verificação AML ou um `hit_id` não foi encontrado (em lote: nada é alterado). |## Relacionados- [Atualizar o status de uma etapa](https://docs.didit.me/pt-br/sessions-api/update-feature-status.md): altere o status da **etapa** AML (ou de qualquer outra etapa).
- [Atualizar o status da sessão](https://docs.didit.me/pt-br/sessions-api/update-status.md): altere a decisão geral da sessão.
- [Recuperar a sessão](https://docs.didit.me/pt-br/sessions-api/retrieve-session.md): leia os `hits` de AML e seus IDs.
- [Triagem AML](https://docs.didit.me/pt-br/standalone-apis/aml-screening.md): como a análise e a pontuação funcionam.


## OpenAPI

````yaml pt-br/openapi-25.json PATCH /v3/session/{sessionId}/update-aml-hit-status/
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/session/{sessionId}/update-aml-hit-status/:
    patch:
      tags:
        - Sessions
      summary: Atualizar o status de revisão de uma ocorrência AML
      description: >-
        Define o status de revisão de um **único resultado AML** (uma possível
        correspondência com sanções / PEP / lista de monitoramento / mídia
        adversa) retornado pela Análise AML, sem alterar a decisão geral da
        sessão. Identifique o resultado pelo seu `hit_id` (o `id` de uma entrada
        no array `hits` da verificação AML; consulte a decisão da sessão). Um ID
        de resultado retornado no formato anterior continua sendo aceito; a
        resposta sempre identifica o resultado pelo seu `id` atual.


        `review_status` é um de `Unreviewed`, `Confirmed Match`, `False
        Positive` ou `Inconclusive`. As decisões do revisor são preservadas nas
        atualizações do monitoramento contínuo, portanto um resultado que você
        marcar como `False Positive` permanece assim quando o provedor refaz a
        análise.


        Uma chamada bem-sucedida dispara um webhook `data.updated` e adiciona
        uma entrada de atividade (com a atribuição do autor) ao histórico de
        revisão da sessão. Para fluxos baseados em grafo com várias verificações
        AML, informe `node_id` para direcionar uma verificação específica.


        Autentique-se com sua chave de API (`x-api-key`) ou com um cabeçalho de
        autorização de usuário; qualquer um deles deve ter o privilégio
        `write:sessions`.
      operationId: patch_v3_session_update_aml_hit_status
      parameters:
        - in: path
          name: sessionId
          required: true
          description: >-
            UUID da sessão de verificação. Aceita IDs de sessão tanto de usuário
            (KYC) quanto de empresa (KYB): o serviço resolve o ID entre os dois
            tipos de sessão.
          schema:
            type: string
            format: uuid
            example: 11111111-2222-3333-4444-555555555555
        - in: query
          name: node_id
          required: false
          description: >-
            ID do nó do grafo do fluxo. Obrigatório apenas quando a sessão tem
            várias verificações AML (uma por nó); omita-o em sessões com uma
            única verificação AML.
          schema:
            type: string
            example: feature_aml_1
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - hit_id
                - review_status
              properties:
                hit_id:
                  type: string
                  description: >-
                    O `id` da ocorrência no array `hits` da verificação AML
                    (`hit_...`). Um id de ocorrência retornado no formato
                    anterior ainda é aceito.
                  example: hit_7c1e9a40b2d35f86e0a4c912
                review_status:
                  type: string
                  description: O novo status de revisão do resultado.
                  enum:
                    - Unreviewed
                    - Confirmed Match
                    - False Positive
                    - Inconclusive
                  example: False Positive
                node_id:
                  type: string
                  description: >-
                    ID opcional do nó do grafo. Use-o (aqui ou como parâmetro de
                    consulta) quando a sessão tiver várias verificações AML.
                  example: feature_aml_1
            example:
              hit_id: hit_7c1e9a40b2d35f86e0a4c912
              review_status: False Positive
      responses:
        '200':
          description: Status de revisão da ocorrência atualizado.
          content:
            application/json:
              schema:
                type: object
                required:
                  - message
                  - hit_id
                  - review_status
                properties:
                  message:
                    type: string
                    description: Sempre `Hit status updated successfully`.
                  hit_id:
                    type: string
                    description: >-
                      O `id` da ocorrência atualizada, como a decisão da sessão
                      o retorna, inclusive quando a requisição indicou a
                      ocorrência por um id no formato anterior.
                  review_status:
                    type: string
                    enum:
                      - Unreviewed
                      - Confirmed Match
                      - False Positive
                      - Inconclusive
                    description: O status de revisão agora armazenado no resultado.
              example:
                message: Hit status updated successfully
                hit_id: hit_7c1e9a40b2d35f86e0a4c912
                review_status: False Positive
        '400':
          description: >-
            Erro de validação: `hit_id` vazio ou `review_status` diferente dos
            valores permitidos.
          content:
            application/json:
              example:
                review_status:
                  - '"Maybe" is not a valid choice.'
        '403':
          description: >-
            Credenciais ausentes ou permissões insuficientes. Uma chave ausente
            retorna `403`; uma chave incorreta, revogada ou expirada retorna
            `401`.
          content:
            application/json:
              examples:
                Invalid Credentials:
                  summary: x-api-key ausente ou inválido
                  value:
                    detail: >-
                      Authentication credentials were not provided or are
                      invalid.
                Missing Privilege:
                  summary: A chave de API não tem write:sessions
                  value:
                    detail: You do not have permission to perform this action.
        '404':
          description: >-
            A sessão não foi encontrada, a sessão não tem verificação AML
            (opcionalmente para o `node_id` informado) ou nenhuma ocorrência
            corresponde a `hit_id`.
          content:
            application/json:
              examples:
                No AML Check:
                  summary: A sessão não tem verificação AML
                  value:
                    detail: The session does not have an AML check.
                Hit Not Found:
                  summary: hit_id desconhecido
                  value:
                    detail: >-
                      Hit with ID 'hit_9d2e7f41c0a8b3e65d1f0c47' not found in
                      the AML check.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: |-
            curl -X PATCH \
              https://verification.didit.me/v3/session/11111111-2222-3333-4444-555555555555/update-aml-hit-status/ \
              -H 'x-api-key: YOUR_API_KEY' \
              -H 'Content-Type: application/json' \
              -d '{
                "hit_id": "abc123",
                "review_status": "False Positive"
              }'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.sessions.update_aml_hit_status(
                "11111111-2222-3333-4444-555555555555",
                hit_id="hit_7c1e9a40b2d35f86e0a4c912",
                review_status="False Positive",
            )
            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.sessions.updateAmlHitStatus("11111111-2222-3333-4444-555555555555",
            {
              hit_id: "hit_7c1e9a40b2d35f86e0a4c912",
              review_status: "False Positive",
            });

            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Sessions.UpdateAMLHitStatus(ctx, \"11111111-2222-3333-4444-555555555555\", didit.SessionsUpdateAMLHitStatusParams{\n\tHitID:        \"hit_7c1e9a40b2d35f86e0a4c912\",\n\tReviewStatus: \"False Positive\",\n})\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"
        - lang: java
          label: Java
          source: >-
            import me.didit.Didit;

            import me.didit.types.SessionsUpdateAmlHitStatusParams;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.sessions().updateAmlHitStatus("11111111-2222-3333-4444-555555555555",
            SessionsUpdateAmlHitStatusParams.builder()
                    .hitId("hit_7c1e9a40b2d35f86e0a4c912")
                    .reviewStatus(SessionsUpdateAmlHitStatusParams.ReviewStatus.of("False Positive"))
                    .build());
            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->sessions->updateAmlHitStatus('11111111-2222-3333-4444-555555555555',
            [
                'hit_id' => 'hit_7c1e9a40b2d35f86e0a4c912',
                'review_status' => 'False Positive',
            ]);

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

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

            result = didit.sessions.update_aml_hit_status(
              "11111111-2222-3333-4444-555555555555",
              hit_id: "hit_7c1e9a40b2d35f86e0a4c912",
              review_status: "False Positive"
            )
            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.Sessions.UpdateAmlHitStatusAsync("11111111-2222-3333-4444-555555555555",
            new SessionsUpdateAmlHitStatusParams

            {
                HitId = "hit_7c1e9a40b2d35f86e0a4c912",
                ReviewStatus = "False Positive",
            });

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  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.