> ## 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 d'estat de coincidències AML: Actualitzar i confirmar

> Marca coincidències del cribratge AML com a Coincidència confirmada, Fals positiu o No concloent, individualment o en lot, directament des de l'API de Didit.



Indicació per actualitzar l'estat de les coincidències d'AML
        Copia el prompt al porta-retalls



      
      

\<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>



      
      

Enganxa a

## Què fa aquest endpointEl cribratge AML retorna una llista de **coincidències**: possibles coincidències amb llistes de sancions, bases de dades de PEP, llistes de vigilància i mitjans adversos. Cada coincidència té un `review_status` (la seva disposició), que comença com a `Unreviewed` o `False Positive` segons la puntuació de coincidència. Aquest endpoint permet a l'equip (o a l'automatització) registrar una decisió sobre cada coincidència, sense canviar la decisió global de la sessió.Trobeu les coincidències i els seus IDs a la [decisió de la sessió](https://docs.didit.me/ca/sessions-api/retrieve-session.md): l'array `hits` de la comprovació AML, on l'`id` de cada coincidència és el `hit_id` que hi passeu.Un `id` de coincidència té el format `hit_` seguit de 24 caràcters hexadecimals, i es manté igual quan el subjecte es torna a cribrar. Un id de coincidència en el format anterior encara s'accepta; la resposta sempre identifica la coincidència pel seu `id` actual.## Estats de revisió| `review_status` | Significat |
| - | - |
| `Unreviewed` | Valor per defecte per a les coincidències iguals o superiors al llindar de coincidència. Encara necessita una decisió. |
| `Confirmed Match` | Una coincidència real amb la persona o entitat cribrada. |
| `False Positive` | No és la mateixa entitat. Valor per defecte per a les coincidències inferiors al llindar de coincidència. |
| `Inconclusive` | No s'ha pogut determinar. |> [!NOTE]
>
> Les decisions del revisor es **conserven en els recribratges del monitoratge continu**: una coincidència que marqueu com a `False Positive` manté aquest estat quan el proveïdor torna a cribrar l'entitat.## Actualitzar una sola coincidè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"
  }'
```Per a una sessió amb diverses comprovacions AML (fluxos de treball de graf), afegiu `?node_id=feature_aml_1` a la URL o inclogueu `"node_id"` al cos de la petició per apuntar a una comprovació concreta.## Actualitzar moltes coincidències alhora**`PATCH /v3/session/{sessionId}/bulk-update-aml-hit-status/`**Passeu `hit_updates`, una llista de parells `{ hit_id, review_status }`. L'operació és **tot o res**: si no es troba algun `hit_id`, la petició retorna `404` i no es canvia cap coincidència.```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" }
    ]
  }'
```Una crida massiva satisfactòria dispara un únic webhook `data.updated` i registra una entrada d'activitat que cobreix tots els canvis.## Què passa després d'una actualització- **Webhook**: es dispara un esdeveniment `data.updated` a la sessió.
- **Registre d’auditoria**: el canvi es registra al registre de revisió de la sessió amb l'actor (clau d'API o usuari), i és visible a la cronologia d'activitat de la consola.
- **L'estat general del pas AML no es modifica**: canviar la disposició d'una coincidència no canvia, per si sol, l'estat del pas AML ni la decisió de la sessió. Per canviar l'estat del **pas** AML (`Approved` / `Declined` / `In Review`), useu [update-feature-status](https://docs.didit.me/ca/sessions-api/update-feature-status.md). Per canviar la decisió de la **sessió**, useu [update-status](https://docs.didit.me/ca/sessions-api/update-status.md).## Compatibilitat amb KYC i KYBFunciona tant per a sessions de **Verificació d'usuaris (KYC)** com per a sessions de **Verificació d'empreses (KYB)**: Didit resol el `sessionId` en tots dos casos. En el cas de KYB, el cribratge AML s'aplica a l'empresa i a les seves persones clau, i cada comprovació AML exposa les seves pròpies coincidències.## PermísCal el privilegi `write:sessions`, amb una clau d'API de client (`x-api-key`) o amb una capçalera d'autorització d'usuari.## Errors| Estat | Significat |
| - | - |
| `400` | `review_status` no és un valor vàlid, `hit_id` és buit o `hit_updates` és buit. |
| `403` | Credencials absents o no vàlides, o el sol·licitant no té `write:sessions`. |
| `404` | Sessió no trobada, la sessió no té cap comprovació AML, o no s'ha trobat un `hit_id` (en el cas massiu, no es canvia res). |## Relacionat- [Actualitzar l'estat de la funcionalitat](https://docs.didit.me/ca/sessions-api/update-feature-status.md): canvia l'estat del pas AML (o de qualsevol altre pas).
- [Actualitzar l'estat de la sessió](https://docs.didit.me/ca/sessions-api/update-status.md): canvia la decisió global de la sessió.
- [Recuperar la sessió](https://docs.didit.me/ca/sessions-api/retrieve-session.md): llegeix els `hits` d'AML i els seus IDs.
- [Cribratge AML](https://docs.didit.me/ca/standalone-apis/aml-screening.md): com funcionen el cribratge i la puntuació.


## OpenAPI

````yaml ca/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 verificació d'identitat. Autentica't amb la capçalera x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/session/{sessionId}/update-aml-hit-status/:
    patch:
      tags:
        - Sessions
      summary: Actualitzar l'estat de revisió d'una alerta d'AML
      description: >-
        Estableix l'estat de revisió d'una **única coincidència d'AML** (una
        possible coincidència amb sancions / PEP / llistes de vigilància /
        mitjans adversos) retornada pel cribratge AML, sense canviar la decisió
        global de la sessió. Identifica la coincidència pel seu `hit_id` (l'`id`
        d'una entrada a la matriu `hits` de la comprovació d'AML; consulta la
        decisió de la sessió). Un id de coincidència retornat en el format
        anterior encara s'accepta; la resposta sempre anomena la coincidència
        pel seu `id` actual.


        `review_status` és un dels valors següents: `Unreviewed`, `Confirmed
        Match`, `False Positive` o `Inconclusive`. Les decisions del revisor es
        conserven al llarg de les actualitzacions del monitoratge continu, de
        manera que una coincidència que marquis com a `False Positive` es manté
        així quan el proveïdor torna a fer el cribratge.


        Una crida satisfactòria activa un webhook `data.updated` i afegeix una
        entrada d'activitat (amb atribució de l'actor) al registre de revisió de
        la sessió. Per a fluxos de treball de graf amb diverses comprovacions
        d'AML, passa `node_id` per dirigir-te a una comprovació específica.


        Autentica't amb la teva clau d'API (`x-api-key`) o amb una capçalera
        d'autorització d'usuari; qualsevol de les dues ha d'incloure el permís
        `write:sessions`.
      operationId: patch_v3_session_update_aml_hit_status
      parameters:
        - in: path
          name: sessionId
          required: true
          description: >-
            UUID de la sessió de verificació. Accepta tant IDs de sessió
            d'usuari (KYC) com d'empresa (KYB); el servei resol l'ID entre tots
            dos tipus de sessió.
          schema:
            type: string
            format: uuid
            example: 11111111-2222-3333-4444-555555555555
        - in: query
          name: node_id
          required: false
          description: >-
            ID del node del graf del flux de treball. Només és obligatori quan
            la sessió té múltiples comprovacions AML (una per node); omet-ho per
            a sessions amb un sol 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: >-
                    L'`id` de la coincidència a la matriu `hits` del cribratge
                    AML (`hit_...`). Encara s'accepta un id de coincidència
                    retornat en el format anterior.
                  example: hit_7c1e9a40b2d35f86e0a4c912
                review_status:
                  type: string
                  description: El nou estat de revisió per a la coincidència.
                  enum:
                    - Unreviewed
                    - Confirmed Match
                    - False Positive
                    - Inconclusive
                  example: False Positive
                node_id:
                  type: string
                  description: >-
                    ID opcional del node del graf. Utilitza'l (aquí o com a
                    paràmetre de consulta) quan la sessió tingui múltiples
                    comprovacions d'AML.
                  example: feature_aml_1
            example:
              hit_id: hit_7c1e9a40b2d35f86e0a4c912
              review_status: False Positive
      responses:
        '200':
          description: Estat de revisió de la coincidència actualitzat.
          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: >-
                      L'`id` de la coincidència actualitzada, tal com el retorna
                      la decisió de la sessió, també quan la sol·licitud ha
                      identificat la coincidència mitjançant un id en el format
                      anterior.
                  review_status:
                    type: string
                    enum:
                      - Unreviewed
                      - Confirmed Match
                      - False Positive
                      - Inconclusive
                    description: >-
                      L'estat de revisió emmagatzemat actualment a la
                      coincidència.
              example:
                message: Hit status updated successfully
                hit_id: hit_7c1e9a40b2d35f86e0a4c912
                review_status: False Positive
        '400':
          description: >-
            Error de validació — `hit_id` buit o `review_status` no és un dels
            valors permesos.
          content:
            application/json:
              example:
                review_status:
                  - '"Maybe" is not a valid choice.'
        '403':
          description: >-
            Falten les credencials o els permisos són insuficients. Si falta la
            clau, es retorna `403`; una clau incorrecta, revocada o caducada
            retorna `401`.
          content:
            application/json:
              examples:
                Invalid Credentials:
                  summary: Falta l'x-api-key o no és vàlid
                  value:
                    detail: >-
                      Authentication credentials were not provided or are
                      invalid.
                Missing Privilege:
                  summary: La clau d'API no té write:sessions
                  value:
                    detail: You do not have permission to perform this action.
        '404':
          description: >-
            No s'ha trobat la sessió, la sessió no té cap comprovació AML
            (opcionalment per al `node_id` indicat), o no hi ha cap coincidència
            amb `hit_id`.
          content:
            application/json:
              examples:
                No AML Check:
                  summary: La sessió no té cap comprovació AML
                  value:
                    detail: The session does not have an AML check.
                Hit Not Found:
                  summary: hit_id desconegut
                  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: >-
        La clau d'API de la teva aplicació, des de Developers -> API keys a la
        Business Console. La clau primària té accés complet. Una clau amb nom
        pot tenir l'abast limitat: cap, lectura o escriptura per recurs,
        limitada a determinats fluxos de treball o a sessions aprovades, a una
        llista d'adreces IP i a una data de caducitat. 401 significa que la clau
        és incorrecta, revocada o caducada; 403 significa que no s'ha enviat cap
        clau, que la clau no té accés a aquest recurs o acció, o que la
        sol·licitud prové d'una adreça fora de la seva llista d'IP; 404 en una
        ruta de sessió significa que la sessió està fora dels fluxos de treball
        o estats de la clau. Una clau sense accés a fitxers multimèdia rep els
        URL d'imatge, vídeo i PDF com a null, i una clau sense permís
        d'escriptura de sessions rep els enllaços de sessió i els tokens com a
        null. Consulta https://docs.didit.me/console/api-keys.

````

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