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

# Regenerar sessió KYC de persones clau: API

> Crea amb Didit una nova sessió KYC per a una persona clau KYB amb sessió caducada o eliminada i envia-li un enllaç nou per correu electrònic.



Regenerar la sessió KYC de persones clau: indicació de l'API
        Copia el prompt al porta-retalls



      
      

\<pre>

\`Give a Key People party of a Didit Business Verification (KYB) session a new individual KYC session through the API.

Endpoint:
POST https://verification.didit.me/v3/session/{session_id}/kyb/parties/{party_uuid}/regenerate/
(no request body)

Authentication:
Send my Didit API key in the x-api-key header. A scoped key needs decisions: write.

Goal:
\- Re-verify a person (UBO, director, other key person) whose individual KYC session was deleted, or expired before the person started it. Neither link lets the person complete verification. An expired child can cause the business session to become Declined; regenerate the party to issue a fresh link.

Behavior:
\- {session_id} is the parent business session; {party_uuid} is key_people_checks[].submitted.parties[].uuid from its decision and must belong to that session.
\- Works when the party's KYC session was deleted (kyc_session_deleted: true) or expired before the person started it. A session still in progress or one that ended in another status (Approved, Declined, In Review, Abandoned...) returns 409 unless it was deleted. A party that never had one or a company party always returns 409.
\- Deleted sessions qualify even if the person had already started or finished verification. Imported sessions do not qualify through expiry; they must have been deleted.
\- Didit creates a new hosted KYC session for the person, with the workflow the party was verified with (its latest published version) or, when that is no longer known, the workflow my Key People settings assign to the person's role. The new link lasts that KYC workflow's session expiration time, not the business session's. Its vendor_data is kyb-party-PARTY_UUID.
\- Didit emails the verification link to the party's email, when there is one.
\- is_skipped is cleared, so the Key People check waits on the new session.
\- The Key People check and the business session status are recomputed at once.
\- A data.updated webhook is sent for the business session with trigger "console_key_people_regenerate".
\- To exempt the party instead of re-verifying them, use PATCH /v3/session/{session_id}/kyb/parties/{party_uuid}/ with {"is_skipped": true}.

Example call:
curl -X POST "https://verification.didit.me/v3/session/33333333-4444-5555-6666-777777777777/kyb/parties/0a3f1e2c-7c2f-4a1b-9d55-2f8d2a5d6b41/regenerate/" \
-H "x-api-key: YOUR_API_KEY"

What to read from the response (the updated party):
\- kyc_session_id: the new KYC session.
\- kyc_session_url: its hosted link, to share yourself if the party has no email. A scoped key without sessions: write receives it as null.
\- kyc_session_status (Not Started), kyc_session_deleted (false), is_skipped (false).

Failure modes:
\- 401: the API key has expired.
\- 403: missing key (a wrong, revoked or expired key gets 401), a key of another application, a scoped key without decisions: write, or a request from outside the key's IP allowlist.
\- 404: the session does not exist, was deleted, or is outside a scoped key's limits; no party has this UUID; or the party belongs to another session.
\- 409 with code kyb_party_kyc_session_not_deleted: no eligible KYC session to replace. A person qualifies only when their session was deleted or a non-imported session expired before the person started it. All other sessions, a party that never had one, and company parties are rejected.

Side effects: creates a KYC session, may send an email to the party, recomputes the business session status and sends a data.updated webhook.

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

\</pre>



      
      

Enganxa a

Utilitza-ho quan l'enllaç anterior ja no funciona: la sessió s'ha eliminat o ha caducat abans que la persona l'hagués iniciat. Les sessions eliminades compleixen els requisits encara que la persona ja hagi iniciat o completat la verificació. Les sessions importades no compleixen els requisits per caducitat; cal que s'hagin eliminat. Una sessió que no s'ha eliminat i que la persona ja havia iniciat no compleix els requisits per caducitat.La nova sessió queda vinculada a la mateixa part, de manera que el resultat arriba a la verificació de persones clau igual que ho faria l'original, i el seu enllaç dura el temps de caducitat de la sessió del flux de treball KYC que executa (d'1 hora a 4 setmanes), no el de la sessió empresarial. Llegeix la part i les seves sessions filles a la [decisió de la sessió empresarial](https://docs.didit.me/ca/business-verification/response-schema.md#key_people_checks). Si la persona no s'ha de verificar en absolut, [omet la part](https://docs.didit.me/ca/sessions-api/update-data.md#omet-una-part-de-key-people) en lloc d'això. Consulta [Persones clau](https://docs.didit.me/ca/business-verification/key-people.md) per saber com funcionen les parts i les seves verificacions.


## OpenAPI

````yaml ca/openapi-25.json POST /v3/session/{sessionId}/kyb/parties/{partyUuid}/regenerate/
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}/kyb/parties/{partyUuid}/regenerate/:
    post:
      tags:
        - Sessions
      summary: Regenera la sessió de KYC d'una entitat de persones clau
      description: >-
        Assigna a una part de Persones clau d'una sessió de Verificació
        d'empreses (KYB) una nova sessió de KYC individual després que
        l'anterior s'hagi suprimit o hagi caducat abans que la persona la
        comencés, de manera que la comprovació de Persones clau pugui finalitzar
        de nou; no enviïs cap cos de la sol·licitud. Funciona quan la sessió de
        KYC de la part s'ha suprimit (`kyc_session_deleted: true`) o ha caducat
        abans que la persona la comencés (`Expired`, que no s'havia iniciat
        mai). Una sessió que encara estigui en curs o una que hagi finalitzat en
        qualsevol altre estat (`Approved`, `Declined`, `In Review`, `Abandoned`,
        ...) retorna `409` tret que s'hagi suprimit. Una part que mai no n'hagi
        tingut cap o una part d'empresa sempre retorna `409`. Didit crea una
        nova sessió de KYC allotjada amb el flux de treball amb el qual es va
        verificar la part (la seva darrera versió publicada) o, quan aquesta ja
        no es conegui, el flux de treball que la teva configuració de Persones
        clau assigna al rol de la part, de manera que l'enllaç tingui una
        validesa igual al temps de caducitat de la sessió d'aquest flux de
        treball de KYC; envia l'enllaç per correu electrònic a la part quan hi
        ha un correu electrònic registrat, neteja `is_skipped` i torna a
        calcular la comprovació de Persones clau i l'estat de la sessió de
        l'empresa. Després envia un
        [webhook](https://docs.didit.me/ca/integration/webhooks) `data.updated`
        per a la sessió de l'empresa amb l'activador
        `console_key_people_regenerate`; per eximir la part en el seu lloc, fes
        servir `PATCH /v3/session/{sessionId}/kyb/parties/{partyUuid}/`. Una
        clau d'API amb abast necessita `decisions: write`, i sense `sessions:
        write` rep `kyc_session_url` com a `null`. Les sessions suprimides
        compleixen els requisits fins i tot si la persona ja havia començat o
        finalitzat la verificació. Les sessions importades no compleixen els
        requisits per caducitat; s'han d'haver suprimit.
      operationId: post_v3_session_kyb_party_regenerate
      parameters:
        - name: sessionId
          in: path
          required: true
          description: UUID de la sessió pare de Verificació d'empreses (KYB).
          schema:
            type: string
            format: uuid
            example: 33333333-4444-5555-6666-777777777777
        - name: partyUuid
          in: path
          required: true
          description: >-
            UUID de la part de Persones clau
            (`key_people_checks[].submitted.parties[].uuid` a la decisió de la
            sessió d'empresa). Ha de pertànyer a la sessió a la qual fa
            referència `sessionId`.
          schema:
            type: string
            format: uuid
            example: 0a3f1e2c-7c2f-4a1b-9d55-2f8d2a5d6b41
      responses:
        '200':
          description: >-
            S'ha creat una nova sessió de KYC. Retorna l'entitat actualitzada
            amb la seva nova sessió filla, que caduca després del temps de
            caducitat de la sessió del seu flux de treball de KYC.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KYBKeyPeopleParty'
              example:
                uuid: 0a3f1e2c-7c2f-4a1b-9d55-2f8d2a5d6b41
                entity_type: person
                source: USER
                name: Jane Smith
                first_name: Jane
                last_name: Smith
                company_name: null
                registration_number: null
                email: user@example.com
                nationality: GB
                phone_number: null
                date_of_birth: '1980-05-04'
                position: Director
                custom_fields: {}
                is_active: true
                is_skipped: false
                requires_verification: true
                roles:
                  - role: director
                    ownership_percent: null
                    voting_percent: null
                kyc_session_id: 55555555-6666-7777-8888-999999999999
                kyc_session_status: Not Started
                kyc_session_url: https://verify.didit.me/session/abc123def456
                kyc_session_deleted: false
                kyb_sub_session_id: null
                kyb_sub_session_status: null
                kyb_sub_session_url: null
                kyb_sub_session_deleted: false
                verification_workflow_type: kyc
                verification_workflow_id: 12121212-3434-5656-7878-909090909090
                verification_workflow_label: Key People KYC
                verification_workflow_features:
                  - feature: ID_VERIFICATION
                    status: Not Finished
                  - feature: LIVENESS
                    status: Not Finished
                  - feature: AML
                    status: Not Finished
                didit_internal_id: null
        '401':
          description: >-
            La clau d'API amb abast ha caducat. Aquest és l'únic cas que retorna
            `401`: una clau absent, no vàlida o revocada retorna `403`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    description: Missatge d'error fàcil de llegir.
              examples:
                Expired key:
                  summary: La data de caducitat de la clau ha passat
                  value:
                    detail: This API key has expired.
        '403':
          description: >-
            Fallada d'autenticació o d'autorització. Si falta la clau es retorna
            `403`, igual que amb una clau d'una altra aplicació, una clau amb
            àmbit sense el permís que necessita aquest endpoint o una
            sol·licitud des de fora de la llista d'adreces IP permeses de la
            clau; una clau incorrecta, revocada o caducada retorna `401`.
            Distingeix-les pel camp `detail`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    description: Missatge d'error fàcil de llegir.
              examples:
                Missing or invalid credentials:
                  summary: >-
                    Falta la capçalera x-api-key, o la clau ha fallat la
                    validació
                  value:
                    detail: >-
                      Authentication credentials were not provided or are
                      invalid.
                Other application:
                  summary: >-
                    Una clau vàlida que pertany a una aplicació diferent de la
                    de la sessió
                  value:
                    detail: You do not have permission to perform this action.
                Scoped key without decisions write:
                  summary: >-
                    A la clau amb abast li manca el permís d'escriptura de
                    decisions
                  value:
                    detail: This API key has no write access to decisions.
                IP not allowed:
                  summary: >-
                    Sol·licitud des de fora de la llista d'adreces IP permeses
                    de la clau
                  value:
                    detail: This API key can't be used from this IP address.
        '404':
          description: >-
            La sessió no existeix, s'ha suprimit o queda fora dels límits d'una
            clau amb abast limitat; no existeix cap part amb aquest UUID a la
            teva aplicació; o la part pertany a una altra sessió. Cada cas té el
            seu propi `detail`. La cerca de la sessió s'executa abans de
            comprovar les credencials, de manera que un `sessionId` desconegut
            retorna `404` fins i tot sense una clau vàlida.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    description: Missatge d'error fàcil de llegir.
              examples:
                Unknown session:
                  summary: No existeix cap sessió amb aquest ID, o s'ha suprimit
                  value:
                    detail: Not found.
                Outside key limits:
                  summary: >-
                    La sessió queda fora dels límits del flux de treball o dels
                    límits que només permeten sessions aprovades d'una clau amb
                    abast limitat
                  value:
                    detail: Session not found.
                Unknown party:
                  summary: No hi ha cap part amb aquest UUID a la teva aplicació
                  value:
                    detail: No BusinessParty matches the given query.
                Party of another session:
                  summary: partyUuid existeix però pertany a una sessió diferent
                  value:
                    detail: Party does not belong to the given session.
        '409':
          description: >-
            La part no té cap sessió de KYC apta per substituir. Tret que
            s'elimini, una sessió que encara estigui en curs o una que hagi
            finalitzat en un altre estat (`Approved`, `Declined`, `In Review`,
            `Abandoned`, ...) no es pot regenerar. Una part que mai no n'hagi
            tingut o una part d'empresa també retorna `409`. Una sessió apta
            s'ha eliminat o ha caducat abans que la persona l'iniciés. Les
            sessions eliminades són aptes fins i tot si la persona ja havia
            iniciat o finalitzat la verificació. Les sessions importades no són
            aptes per caducitat; s'han d'haver eliminat. Bifurca segons `code`.
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                  - code
                properties:
                  detail:
                    type: string
                    description: Missatge d'error fàcil de llegir.
                  code:
                    type: string
                    enum:
                      - kyb_party_kyc_session_not_deleted
                    description: Codi d'error llegible per màquina estable.
              example:
                detail: >-
                  This party's KYC session is still live (it has neither been
                  deleted nor expired without starting), so it cannot be
                  regenerated.
                code: kyb_party_kyc_session_not_deleted
        '429':
          description: >-
            S'ha superat el límit de freqüència: 300 sol·licituds d'escriptura
            (POST, PATCH, DELETE) per minut per clau d'API. Espera els segons
            indicats a `Retry-After` abans de reintentar; les capçaleres
            `X-RateLimit-*` mostren el pressupost restant.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    description: Missatge d'error fàcil de llegir.
              examples:
                Rate limited:
                  summary: Pressupost per al minut actual esgotat
                  value:
                    detail: >-
                      Write request rate limit exceeded. You can make up to 300
                      requests per minute.
          headers:
            Retry-After:
              description: Segons que cal esperar abans de reintentar.
              schema:
                type: integer
                minimum: 1
                example: 30
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -X POST
            'https://verification.didit.me/v3/session/33333333-4444-5555-6666-777777777777/kyb/parties/0a3f1e2c-7c2f-4a1b-9d55-2f8d2a5d6b41/regenerate/'
            \
              -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.regenerate_kyb_party(
                "33333333-4444-5555-6666-777777777777",
                "0a3f1e2c-7c2f-4a1b-9d55-2f8d2a5d6b41",
            )
            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.regenerateKybParty(
              "33333333-4444-5555-6666-777777777777",
              "0a3f1e2c-7c2f-4a1b-9d55-2f8d2a5d6b41",
            );
            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Sessions.RegenerateKYBParty(ctx, \"33333333-4444-5555-6666-777777777777\", \"0a3f1e2c-7c2f-4a1b-9d55-2f8d2a5d6b41\")\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().regenerateKybParty("33333333-4444-5555-6666-777777777777",
            "0a3f1e2c-7c2f-4a1b-9d55-2f8d2a5d6b41");

            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->regenerateKybParty('33333333-4444-5555-6666-777777777777',
            '0a3f1e2c-7c2f-4a1b-9d55-2f8d2a5d6b41');

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

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

            result = didit.sessions.regenerate_kyb_party(
              "33333333-4444-5555-6666-777777777777",
              "0a3f1e2c-7c2f-4a1b-9d55-2f8d2a5d6b41"
            )
            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.RegenerateKybPartyAsync("33333333-4444-5555-6666-777777777777",
            "0a3f1e2c-7c2f-4a1b-9d55-2f8d2a5d6b41");

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    KYBKeyPeopleParty:
      type: object
      description: >-
        Una part de persones clau d'una sessió de Verificació d'empreses (KYB),
        amb la seva verificació dependent. La mateixa part apareix a
        `key_people_checks[].submitted.parties[]` de la decisió de la sessió
        d'empresa.
      required:
        - uuid
        - entity_type
        - source
        - name
        - is_active
        - is_skipped
        - requires_verification
        - roles
        - kyc_session_deleted
        - kyb_sub_session_deleted
      properties:
        uuid:
          type: string
          format: uuid
          description: Identificador de la part.
        entity_type:
          type: string
          enum:
            - person
            - company
          description: Si la part és una persona física o una empresa.
        source:
          type: string
          enum:
            - REGISTRY
            - USER
          description: >-
            `REGISTRY`: obtingut del registre mercantil. `USER`: introduït a la
            pantalla Persones clau.
        name:
          type: string
          description: Nom visible de la part.
        first_name:
          type: string
          nullable: true
          description: Nom de pila (persones).
        last_name:
          type: string
          nullable: true
          description: Cognom (persones físiques).
        company_name:
          type: string
          nullable: true
          description: Nom de l'empresa (parts empresarials).
        registration_number:
          type: string
          nullable: true
          description: Número de registre de l'empresa (parts empresarials).
        email:
          type: string
          format: email
          nullable: true
          description: Correu electrònic al qual s'envia l'enllaç de verificació.
        nationality:
          type: string
          nullable: true
          description: Nacionalitat per a persones, país de constitució per a empreses.
        phone_number:
          type: string
          nullable: true
          description: Número de telèfon recollit per a la part.
        date_of_birth:
          type: string
          format: date
          nullable: true
          description: Data de naixement (persones).
        position:
          type: string
          nullable: true
          description: Càrrec de text lliure (per a persones).
        custom_fields:
          type: object
          additionalProperties: true
          description: >-
            Camps personalitzats definits pel flux de treball i recollits per a
            la part, indexats per clau de camp.
        is_active:
          type: boolean
          description: Si la part està activa.
        is_skipped:
          type: boolean
          description: Si la part està exempta de verificació. En regenerar-la, s'esborra.
        requires_verification:
          type: boolean
          description: >-
            Si les regles de rol i titularitat requereixen una verificació per a
            aquesta part.
        roles:
          type: array
          description: Rols que té la part a l'empresa.
          items:
            type: object
            required:
              - role
              - ownership_percent
              - voting_percent
            properties:
              role:
                type: string
                enum:
                  - director
                  - non_executive_director
                  - secretary
                  - chairman
                  - ubo
                  - shareholder
                  - representative
                  - founder
                  - legal_advisor
                  - authorized_signatory
                  - trustee
                  - beneficiary
                  - settlor
                  - protector
                  - company_officer
                  - investor
                  - other
                description: Codi de rol.
              ownership_percent:
                type: number
                nullable: true
                description: Percentatge de titularitat d'aquest rol, quan es conegui.
              voting_percent:
                type: number
                nullable: true
                description: Percentatge de drets de vot per a aquest rol, quan es coneix.
        kyc_session_id:
          type: string
          format: uuid
          nullable: true
          description: Sessió KYC individual filla (persones físiques).
        kyc_session_status:
          type: string
          nullable: true
          enum:
            - Not Started
            - In Progress
            - Approved
            - Declined
            - In Review
            - Expired
            - Abandoned
            - Kyc Expired
            - Resubmitted
            - Awaiting User
            - null
          description: >-
            Estat de la sessió KYC filla. Una sessió eliminada manté l'estat que
            tenia quan es va eliminar.
        kyc_session_url:
          type: string
          format: uri
          nullable: true
          description: >-
            Enllaç allotjat de la sessió de KYC filla. `null` quan no n'hi ha
            cap o s'ha suprimit, i per a una clau d'API amb àmbit restringit
            sense `sessions: write`.
        kyc_session_deleted:
          type: boolean
          description: >-
            La sessió fill de KYC s'ha suprimit, de manera que no es podrà
            liquidar mai.
        kyb_sub_session_id:
          type: string
          format: uuid
          nullable: true
          description: Sessió KYB filla (parts d'empresa).
        kyb_sub_session_status:
          type: string
          nullable: true
          enum:
            - Not Started
            - In Progress
            - Approved
            - Declined
            - In Review
            - Expired
            - Abandoned
            - Kyc Expired
            - Resubmitted
            - Awaiting User
            - null
          description: Estat de la sessió KYB filla.
        kyb_sub_session_url:
          type: string
          format: uri
          nullable: true
          description: >-
            Enllaç allotjat de la sessió de KYB filla, amb les mateixes regles
            de `null` que `kyc_session_url`.
        kyb_sub_session_deleted:
          type: boolean
          description: Homòleg per a empreses de `kyc_session_deleted`.
        verification_workflow_type:
          type: string
          nullable: true
          enum:
            - kyc
            - kyb
            - adaptive_age_verification
            - biometric_authentication
            - address_verification
            - questionnaire_verification
            - email_verification
            - phone_verification
            - null
          description: Tipus del flux de treball que executa la sessió filla.
        verification_workflow_id:
          type: string
          format: uuid
          nullable: true
          description: Flux de treball que executa la sessió filla.
        verification_workflow_label:
          type: string
          nullable: true
          description: Etiqueta d'aquest flux de treball.
        verification_workflow_features:
          type: array
          nullable: true
          description: >-
            Funcionalitats del flux de treball de la sessió filla amb els seus
            estats actuals.
          items:
            type: object
            required:
              - feature
              - status
            properties:
              feature:
                type: string
                description: >-
                  Codi de la funcionalitat, per exemple `ID_VERIFICATION` o
                  `LIVENESS`.
              status:
                type: string
                description: Estat de la funcionalitat, `Not Finished` fins que s'executa.
        didit_internal_id:
          type: string
          format: uuid
          nullable: true
          description: Identificador de Didit de la persona verificada, un cop conegut.
  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.