> ## 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 de llistat de sobreescriptures de funcionalitat

> Llista totes les sobreescriptures de l'estat d'un pas en una sessió de Didit, de la més recent a la més antiga: aplicades, pendents o cancel·lades.



Prompt per a llistar les sobreescriptures de funcionalitats
        Copia el prompt al porta-retalls



      
      

\<pre>

\`List the check (feature) status overrides of a Didit session: the ones that applied, the ones still waiting for the person to finish the flow, and the cancelled ones.

Endpoint:
GET https://verification.didit.me/v3/session/{session_id}/features/overrides/

Authentication:
x-api-key (client API key) or a user-auth token. Privilege: read:sessions. A scoped API key needs read access to decisions.

Path parameter:
\- session_id (UUID): KYC or KYB; Didit resolves it against both session types.

Response (200, not paginated):
\- session_id (UUID).
\- person_in_flow (boolean): true while the person is still in the flow, so a new override with defer_until_flow_finishes=true would wait.
\- flow_finished_at (date-time or null): when the person last finished the flow. null while they are still in it (a resubmission included) and when the session closed before they finished.
\- overrides (array, newest first). Each override:
\- id (UUID): pass it to the cancel endpoint.
\- node_id, feature_type ("" when the request passed none), feature_model (for example "KYC", "Face", "AML").
\- previous_status, new_status.
\- state: "applied", "pending_until_flow_finishes" or "cancelled".
\- forced (boolean): true when it applied at once while the person was still in the flow.
\- reason: the comment sent with the request, or null.
\- requested_by: { email, name, type } with type "CONSOLE_USER", "API_KEY" or "SYSTEM"; or null.
\- requested_at, applied_at (null while waiting or once cancelled), cancelled_at.
\- cancel_reason: null, "cancelled_by_reviewer", "replaced", "check_changed" or "session_closed".

curl example:
curl https://verification.didit.me/v3/session/<SESSION_ID>/features/overrides/ \
-H "x-api-key: <API_KEY>"

Failure modes:
\- 401: the scoped API key has expired.
\- 403: missing credentials (a wrong, revoked or expired key gets 401), the caller lacks read:sessions, a scoped key lacks decisions read, or the session belongs to another application ({ "detail": "You do not have permission to perform this action." }).
\- 404: { "detail": "Not found." } when no session with this session_id exists.

Related: create overrides with PATCH /v3/session/{session_id}/features/{node_id}/update-status/ (see /sessions-api/update-feature-status); cancel a waiting one with POST /v3/session/{session_id}/features/overrides/{override_id}/cancel/ (see /sessions-api/cancel-feature-override).

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

\</pre>



      
      

Enganxa a

Cada crida a [Update Feature Status](https://docs.didit.me/ca/sessions-api/update-feature-status.md) registra una sobreescriptura de l'estat d'una comprovació.
Aquest endpoint llista totes les sobreescriptures d'una sessió, de la més recent a la més antiga, sense paginació.## Estats de les sobreescriptures| `state` | Què significa |
| - | - |
| `applied` | La comprovació té el nou estat. `applied_at` indica quan. |
| `pending_until_flow_finishes` | La sobreescriptura espera i s'aplica quan la persona acaba el flux. |
| `cancelled` | La sobreescriptura esperava i mai no s'ha aplicat. `cancel_reason` indica el motiu. |Una sobreescriptura amb `forced: true` s'ha aplicat immediatament mentre la persona encara era dins del flux.## Per què s'ha cancel·lat una sobreescriptura en espera| `cancel_reason` | Què ha passat |
| - | - |
| `cancelled_by_reviewer` | Algú l'ha cancel·lat amb [Cancel Feature Override](https://docs.didit.me/ca/sessions-api/cancel-feature-override.md). |
| `replaced` | Una sobreescriptura més recent sobre la mateixa comprovació l'ha substituïda. |
| `check_changed` | La persona ha repetit la comprovació abans d'acabar el flux, de manera que el resultat que has sobreescrit ja no existeix. |
| `session_closed` | La sessió ha sortit del flux abans que la persona l'acabés: abandonada, caducada o decidida a mig flux. |## On és la persona dins del flux`person_in_flow` és `true` mentre la sessió està en `Not Started`, `In Progress` o `Resubmitted` i la persona no ha acabat el flux.
Mentre és `true`, una sobreescriptura nova amb `defer_until_flow_finishes: true` espera.
`flow_finished_at` és el moment en què la persona va acabar el flux per última vegada.
És `null` mentre la persona encara és dins del flux, fins i tot durant un reenviament, i quan la sessió es va tancar abans que la persona acabés el flux.## Vegeu també- [Update Feature Status](https://docs.didit.me/ca/sessions-api/update-feature-status.md): sobreescriu l'estat d'un pas, ara mateix o quan acabi el flux.
- [Cancel Feature Override](https://docs.didit.me/ca/sessions-api/cancel-feature-override.md): atura una sobreescriptura en espera perquè no s'apliqui.
- [Retrieve Session](https://docs.didit.me/ca/sessions-api/retrieve-session.md): el `node_id` i l'estat actual de cada funcionalitat.


## OpenAPI

````yaml ca/openapi-25.json GET /v3/session/{sessionId}/features/overrides/
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}/features/overrides/:
    get:
      tags:
        - Sessions
      summary: Llista les sobreescriptures de comprovacions d'una sessió
      description: >-
        Totes les substitucions de l'estat d'una funcionalitat individual (pas)
        en una sessió de Verificació d'usuaris (KYC) o Verificació d'empreses
        (KYB), de la més recent a la més antiga i no paginades: les aplicades,
        les que esperen que la persona acabi el flux
        (`pending_until_flow_finishes`) i les cancel·lades, cadascuna amb qui
        l'ha sol·licitada, el seu motiu i si s'ha aplicat mentre la persona
        encara estava en el flux (`forced`).


        `person_in_flow` t'indica si una nova substitució amb
        `defer_until_flow_finishes: true` s'esperaria. `flow_finished_at` és el
        moment en què la persona ha acabat el flux per última vegada; és `null`
        mentre encara hi és (incloent-hi un reenviament) i quan la sessió s'ha
        tancat abans que acabés.


        Requereix el permís `read:sessions`; una clau d'API amb abast restringit
        necessita accés de lectura a les decisions.
      operationId: get_v3_session_feature_overrides
      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).
          schema:
            type: string
            format: uuid
            example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
      responses:
        '200':
          description: >-
            Les sobreescriptures de les comprovacions de la sessió, les més
            recents primer.
          content:
            application/json:
              schema:
                type: object
                required:
                  - session_id
                  - person_in_flow
                  - flow_finished_at
                  - overrides
                properties:
                  session_id:
                    type: string
                    format: uuid
                    example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
                  person_in_flow:
                    type: boolean
                    description: >-
                      Si la persona encara és al flux, de manera que una nova
                      sobreescriptura amb `defer_until_flow_finishes: true`
                      esperaria.
                    example: true
                  flow_finished_at:
                    type: string
                    format: date-time
                    nullable: true
                    description: >-
                      Quan la persona va completar el flux per darrera vegada.
                      `null` mentre encara hi sigui (inclosos els reenviaments)
                      i quan la sessió es va tancar abans que finalitzés
                      (abandonada, caducada o decidida a mig flux).
                    example: null
                  overrides:
                    type: array
                    description: >-
                      Totes les substitucions de la sessió, de la més recent a
                      la més antiga.
                    items:
                      $ref: '#/components/schemas/FeatureStatusOverride'
              examples:
                Overrides:
                  summary: Una sobreescriptura pendent, una d'aplicada
                  value:
                    session_id: 3fa85f64-5717-4562-b3fc-2c963f66afa6
                    person_in_flow: true
                    flow_finished_at: null
                    overrides:
                      - id: 9b2f4c1e-8d3a-4e5f-a6b7-c8d9e0f1a2b3
                        node_id: feature_liveness_1
                        feature_type: ''
                        feature_model: Face
                        previous_status: Declined
                        new_status: Approved
                        state: pending_until_flow_finishes
                        forced: false
                        reason: Liveness retried with a reviewer present.
                        requested_by:
                          email: reviewer@example.com
                          name: Alex Reviewer
                          type: CONSOLE_USER
                        requested_at: '2026-10-13T09:15:00Z'
                        applied_at: null
                        cancelled_at: null
                        cancel_reason: null
                      - id: 7c9e6679-7425-40de-944b-e07fc1f90ae7
                        node_id: feature_ocr_1
                        feature_type: ''
                        feature_model: KYC
                        previous_status: In Review
                        new_status: Approved
                        state: applied
                        forced: true
                        reason: Document manually verified by compliance.
                        requested_by:
                          email: reviewer@example.com
                          name: Alex Reviewer
                          type: CONSOLE_USER
                        requested_at: '2026-10-13T09:15:00Z'
                        applied_at: '2026-10-13T09:15:00Z'
                        cancelled_at: null
                        cancel_reason: null
        '401':
          description: La clau d'API amb abast ha caducat.
          content:
            application/json:
              examples:
                Expired API Key:
                  summary: Clau d'API amb abast que ha superat la data de caducitat
                  value:
                    detail: This API key has expired.
        '403':
          description: >-
            Falten les credencials, qui fa la crida no té el privilegi
            `read:sessions`, la clau d'API amb abast limitat no té l'accés que
            necessita aquest endpoint, o el `session_id` pertany a una altra
            aplicació.
          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: L'emissor de la crida no disposa de read:sessions
                  value:
                    detail: You do not have permission to perform this action.
                Scoped Key Without Access:
                  summary: Clau d'API amb abast sense aquest accés
                  value:
                    detail: This API key has no read access to decisions.
        '404':
          description: No existeix cap sessió de KYC o KYB amb aquest `session_id`.
          content:
            application/json:
              examples:
                Not Found:
                  summary: session_id desconegut
                  value:
                    detail: Not found.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: |-
            curl -X GET \
              https://verification.didit.me/v3/session/3fa85f64-5717-4562-b3fc-2c963f66afa6/features/overrides/ \
              -H 'x-api-key: YOUR_API_KEY'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.sessions.list_feature_overrides(
                "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            )
            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.listFeatureOverrides("3fa85f64-5717-4562-b3fc-2c963f66afa6");

            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Sessions.ListFeatureOverrides(ctx, \"3fa85f64-5717-4562-b3fc-2c963f66afa6\")\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.sessions().listFeatureOverrides("3fa85f64-5717-4562-b3fc-2c963f66afa6");

            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->listFeatureOverrides('3fa85f64-5717-4562-b3fc-2c963f66afa6');

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


            # Reads DIDIT_API_KEY.

            didit = Didit::Client.new


            result =
            didit.sessions.list_feature_overrides("3fa85f64-5717-4562-b3fc-2c963f66afa6")

            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.ListFeatureOverridesAsync("3fa85f64-5717-4562-b3fc-2c963f66afa6");

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    FeatureStatusOverride:
      type: object
      description: >-
        Una sobreescriptura de l'estat d'una comprovació (funcionalitat) feta
        amb `PATCH /v3/session/{sessionId}/features/{nodeId}/update-status/`:
        què canvia, si s'ha aplicat o encara espera que la persona finalitzi el
        flux, qui ho ha sol·licitat i per què.
      required:
        - id
        - node_id
        - feature_type
        - feature_model
        - previous_status
        - new_status
        - state
        - forced
        - reason
        - requested_by
        - requested_at
        - applied_at
        - cancelled_at
        - cancel_reason
      properties:
        id:
          type: string
          format: uuid
          description: >-
            Identificador de la sobreescriptura. Transmet-lo a l'endpoint de
            cancel·lació.
          example: 7c9e6679-7425-40de-944b-e07fc1f90ae7
        node_id:
          type: string
          description: >-
            El node del flux de treball indicat a la sol·licitud (`default` per
            a un pas sense node).
          example: feature_ocr_1
        feature_type:
          type: string
          description: >-
            El `feature_type` que ha passat la sol·licitud, o una cadena buida
            si no n'ha passat cap.
          example: ''
        feature_model:
          type: string
          description: >-
            El tipus de comprovació que s'ha anul·lat, per exemple `KYC`,
            `Face`, `AML` o `GeolocationCheck`.
          example: KYC
        previous_status:
          type: string
          enum:
            - Not Finished
            - Approved
            - Declined
            - In Review
            - Resub Requested
          description: L'estat de la comprovació quan es va sol·licitar la sobreescriptura.
          example: In Review
        new_status:
          type: string
          enum:
            - Approved
            - Declined
            - In Review
          description: L'estat que estableix l'anul·lació.
          example: Approved
        state:
          type: string
          enum:
            - applied
            - pending_until_flow_finishes
            - cancelled
          description: >-
            `applied`: la comprovació té el nou estat.
            `pending_until_flow_finishes`: la sobreescriptura espera i s'aplica
            quan la persona finalitza el flux. `cancelled`: ha esperat i no s'ha
            arribat a aplicar mai (consulta `cancel_reason`).
          example: applied
        forced:
          type: boolean
          description: >-
            `true` quan la sobreescriptura s'ha aplicat immediatament mentre la
            persona encara era al flux.
          example: false
        reason:
          type: string
          nullable: true
          description: El `comment` enviat amb la sol·licitud, o `null`.
          example: Document manually verified by compliance.
        requested_by:
          type: object
          nullable: true
          description: Qui ha sol·licitat la substitució, o `null` si no se sap.
          properties:
            email:
              type: string
              format: email
              nullable: true
              description: >-
                Correu electrònic de l'usuari de la consola, o `null` per a
                claus d'API i el sistema.
              example: reviewer@example.com
            name:
              type: string
              nullable: true
              description: Nom visible del sol·licitant, o `null`.
              example: Alex Reviewer
            type:
              type: string
              enum:
                - CONSOLE_USER
                - API_KEY
                - SYSTEM
              description: >-
                Qui ha fet la sol·licitud: un usuari de la consola, una clau
                d'API o el mateix Didit.
              example: CONSOLE_USER
        requested_at:
          type: string
          format: date-time
          description: Quan es va sol·licitar la sobreescriptura.
          example: '2026-10-13T09:15:00Z'
        applied_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            Quan la comprovació va adoptar el nou estat, o `null` mentre està en
            espera o un cop cancel·lada.
          example: '2026-10-13T09:15:00Z'
        cancelled_at:
          type: string
          format: date-time
          nullable: true
          description: Quan es va cancel·lar una substitució en espera, o `null`.
          example: null
        cancel_reason:
          type: string
          nullable: true
          enum:
            - cancelled_by_reviewer
            - replaced
            - check_changed
            - session_closed
            - null
          description: >-
            Per què no es va aplicar mai una substitució en espera, o `null`.
            `cancelled_by_reviewer`: cancel·lada amb l'endpoint de cancel·lació.
            `replaced`: una substitució més recent en la mateixa comprovació la
            va substituir. `check_changed`: la persona ha tornat a fer la
            comprovació abans d'acabar el flux. `session_closed`: la sessió ha
            sortit del flux abans que la persona l'acabés (abandonada, caducada
            o decidida a mig flux).
          example: null
  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.