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

# Signaturen validieren API: Signierte PDFs erneut prüfen

> Signierte Dokumente eines E-Signatur-Schritts erneut prüfen: Dateiintegrität, PAdES-Signatur, Zertifikat, Sperrdaten und Zeitstempel mit Didit.

Prüft die signierten Dokumente eines Schritts erneut und speichert das Ergebnis in `validation` jedes Unterzeichners. Didit liest jedes signierte PDF erneut und prüft dessen SHA-256-Wert. Bei einer fortgeschrittenen (AES-)Signatur validiert Didit zusätzlich die PAdES-Signatur, das Zertifikat, die Sperrdaten und den Zeitstempel. Eine einfache Signatur hat keine digitale Signatur, daher wird nur die Integrität der Datei geprüft. Es wird nichts erneut signiert. In der Konsole ist dies die Schaltfläche **Erneut validieren** auf der Registerkarte **Signatur** der Sitzung.

```bash theme={null}
curl -X POST 'https://verification.didit.me/v3/session/{session_id}/signatures/{node_id}/validate/' \
  -H 'x-api-key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"signature_id": "{signature_id}"}'
```

Übergeben Sie `signature_id`, um einen einzelnen Unterzeichner zu prüfen. Ohne diesen Parameter prüft Didit alle Unterzeichner des Schritts und antwortet mit `409` und `signature_not_signed`, wenn einer von ihnen noch nicht unterschrieben hat. Ein gespeichertes signiertes PDF, das nicht mehr mit `sha256_signed` übereinstimmt, führt zu einer `400`-Antwort mit `signature_document_changed`.

Die Antwort ist `{ "signatures": [...] }` mit den geprüften Unterzeichnern. Das Gesamtergebnis finden Sie in `validation.valid`, die Angaben zu jedem Dokument in `validation.documents[]`. Alle Felder sind unter [Eine Signatur erneut validieren](https://docs.didit.me/de/core-technology/electronic-signature/report-electronic-signature.md#eine-signatur-erneut-validieren) beschrieben.

## Verwandte Themen

* [E-Signatur-Bericht](https://docs.didit.me/de/core-technology/electronic-signature/report-electronic-signature.md)
* [Ein signiertes Dokument herunterladen](https://docs.didit.me/de/sessions-api/electronic-signature/download-signed-document.md)


## OpenAPI

````yaml de/openapi-25.json POST /v3/session/{sessionId}/signatures/{nodeId}/validate/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API für Ausweisverifizierung. Authentifizierung über den x-api-key-Header.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/session/{sessionId}/signatures/{nodeId}/validate/:
    post:
      tags:
        - Sessions
      summary: Signaturen erneut validieren
      description: >-
        Überprüfen Sie die signierten Dokumente eines E-Signatur-Schritts
        erneut. Didit liest jedes signierte PDF erneut ein, prüft dessen SHA-256
        und validiert bei einer fortgeschrittenen Signatur (AES) die
        PAdES-Signatur, das Zertifikat, die Sperrdaten sowie den Zeitstempel
        (eine einfache Signatur hat keine digitale Signatur, daher wird nur die
        Dateiintegrität geprüft). Anschließend speichert Didit das Ergebnis in
        `validation` des jeweiligen Unterzeichners und gibt die aktualisierten
        Elemente zurück. Es wird nichts erneut signiert. Übergeben Sie
        `signature_id`, um einen einzelnen Unterzeichner zu prüfen; ohne diesen
        Parameter wird jeder Unterzeichner des Schritts geprüft, und der Aufruf
        schlägt fehl, wenn einer von ihnen noch nicht signiert hat.


        Erfordert `write:sessions`; Ihr API-Schlüssel funktioniert. In der
        Konsole ist dies die Schaltfläche **Validate again**.
      operationId: post_v3_session_signature_validate
      parameters:
        - name: sessionId
          in: path
          required: true
          description: >-
            Die Sitzung zur Benutzerverifizierung (KYC) oder
            Unternehmensverifizierung (KYB).
          schema:
            type: string
            format: uuid
            example: 11111111-2222-3333-4444-555555555555
        - name: nodeId
          in: path
          required: true
          description: 'Der E-Signatur-Schritt: `node_id` des Elements in `signatures[]`.'
          schema:
            type: string
            example: feature_signature
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                signature_id:
                  type: string
                  format: uuid
                  description: '`id` des Eintrags eines Unterzeichners in `signatures[]`.'
            example:
              signature_id: 0e6c2a8e-6c2f-4b8e-9a51-3f2f6a7d9b10
      responses:
        '200':
          description: Die geprüften Unterzeichner mit ihrer aktualisierten `validation`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  signatures:
                    type: array
                    items:
                      $ref: '#/components/schemas/SignatureResult'
        '400':
          description: >-
            Ein gespeichertes signiertes PDF stimmt nicht mehr mit dem beim
            Signieren erfassten SHA-256 überein.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                  code:
                    type: string
              examples:
                Document changed:
                  summary: >-
                    Eine signierte Datei stimmt nicht mehr mit ihrem Hash
                    überein
                  value:
                    code: signature_document_changed
                    detail: signature_document_changed
        '403':
          description: >-
            Fehlende Anmeldedaten oder Anmeldedaten, die diese Sitzung nicht
            lesen können. Ein fehlender Schlüssel führt zu einer `403`-Antwort;
            ein falscher, widerrufener oder abgelaufener Schlüssel führt zu
            einer `401`-Antwort.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              example:
                detail: You do not have permission to perform this action.
        '404':
          description: >-
            Keine Signatur stimmt überein: Die Sitzung, der Schritt oder der
            Unterzeichner existiert nicht oder wurde gelöscht.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                  code:
                    type: string
              examples:
                Unknown signer:
                  summary: Keine solche Signatur in diesem Schritt
                  value:
                    code: signature_not_found
                    detail: signature_not_found
        '409':
          description: >-
            Ein Unterzeichner des Schritts hat noch nicht signiert, daher gibt
            es nichts zu validieren.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                  code:
                    type: string
              examples:
                Not signed:
                  summary: Ein Unterzeichner hat noch nicht signiert
                  value:
                    code: signature_not_signed
                    detail: signature_not_signed
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.sessions.signatures.validate(
                "11111111-2222-3333-4444-555555555555",
                "feature_signature",
                signature_id="0e6c2a8e-6c2f-4b8e-9a51-3f2f6a7d9b10",
            )
            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.signatures.validate(
              "11111111-2222-3333-4444-555555555555",
              "feature_signature",
              {
                signature_id: "0e6c2a8e-6c2f-4b8e-9a51-3f2f6a7d9b10",
              },
            );
            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Sessions.Signatures.Validate(ctx, \"11111111-2222-3333-4444-555555555555\", \"feature_signature\", didit.SessionsSignaturesValidateParams{\n\tSignatureID: didit.String(\"0e6c2a8e-6c2f-4b8e-9a51-3f2f6a7d9b10\"),\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.SessionsSignaturesValidateParams;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.sessions().signatures().validate("11111111-2222-3333-4444-555555555555",
            "feature_signature", SessionsSignaturesValidateParams.builder()
                    .signatureId("0e6c2a8e-6c2f-4b8e-9a51-3f2f6a7d9b10")
                    .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->signatures->validate('11111111-2222-3333-4444-555555555555',
            'feature_signature', [
                'signature_id' => '0e6c2a8e-6c2f-4b8e-9a51-3f2f6a7d9b10',
            ]);

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

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

            result = didit.sessions.signatures.validate(
              "11111111-2222-3333-4444-555555555555",
              "feature_signature",
              signature_id: "0e6c2a8e-6c2f-4b8e-9a51-3f2f6a7d9b10"
            )
            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.Signatures.ValidateAsync("11111111-2222-3333-4444-555555555555",
            "feature_signature", new SessionsSignaturesValidateParams

            {
                SignatureId = "0e6c2a8e-6c2f-4b8e-9a51-3f2f6a7d9b10",
            });

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    SignatureResult:
      type: object
      description: >-
        Das Ergebnis eines Unterzeichners für einen E-Signatur-Schritt. Siehe
        den
        [E-Signatur-Bericht](/de/core-technology/electronic-signature/report-electronic-signature).
      properties:
        id:
          type: string
          format: uuid
          description: >-
            Als `signature_id` übergeben, um den Nachweis dieses Unterzeichners
            herunterzuladen oder dessen Signatur zu validieren.
        node_id:
          type: string
          description: Der Workflow-Schritt, der dies erzeugt hat.
        status:
          type: string
          enum:
            - intro
            - review
            - code
            - signing
            - signed
            - declined
          description: >-
            Wo sich der Unterzeichner im Schritt befindet. Nur `signed`
            bedeutet, dass die Dokumente unterzeichnet sind.
        verdict:
          type: string
          enum:
            - Not Finished
            - Approved
            - In Review
            - Declined
          description: >-
            Das Ergebnis des Schritts. Eine Warnung legt es anhand ihrer Regel
            fest; benutzerdefinierte Statusregeln greifen danach.
        level:
          type: string
          enum:
            - simple
            - aes
            - qes
          description: >-
            `simple` (Standard) oder `aes`. `qes` (Qualifizierte elektronische
            Signatur, QES) ist ein Add-on, das noch nicht verfügbar ist.
        format:
          type: string
          enum:
            - pdf
            - pades
          description: >-
            `pdf` für eine einfache Signatur, `pades` für eine fortgeschrittene
            elektronische Signatur (AES).
        profile:
          type: string
          nullable: true
          description: >-
            `PAdES-B-LT`, sobald eine fortgeschrittene (AES) Signatur
            unterzeichnet wurde, andernfalls null.
        signer:
          type: object
          properties:
            name:
              type: string
              nullable: true
              description: >-
                Der Name des Unterzeichners. Verifiziert (aus der genehmigten
                Ausweisverifizierung oder der Sitzung), außer auf der Stufe
                Simple ohne einen verifizierten Sitzungsnamen, wo es der vom
                Unterzeichner eingegebene Name ist und nicht verifiziert wird.
            capacity:
              type: string
              enum:
                - self
                - company
            company:
              type: string
              nullable: true
            role:
              type: string
              nullable: true
              description: Die Bezeichnung der Schlüsselperson, wie angegeben.
            roles:
              type: array
              items:
                type: string
              description: >-
                Die strukturierten Rollen der Schlüsselperson, wie für das
                Unternehmen angegeben.
            identity_session_id:
              type: string
              format: uuid
              description: Die KYC-Sitzung, die den Unterzeichner verifiziert hat.
        identity_used:
          type: object
          description: >-
            Die verifizierte Identität, auf der die Signatur basiert. Leer bei
            einer einfachen Signatur ohne verifizierte Identität.
          properties:
            session_id:
              type: string
              format: uuid
            kyc_id:
              type: string
              format: uuid
              nullable: true
            verified:
              type: boolean
            expected_name:
              type: string
              nullable: true
              description: Der Name, mit dem der Unterzeichner übereinstimmen musste.
        certificate:
          type: object
          nullable: true
          description: >-
            Das Zertifikat, mit dem die Dokumente signiert wurden. `null` bis
            zur Signatur und bei einer Simple-Signatur immer `null`.
          properties:
            issuer:
              type: string
            issued_to:
              type: string
            serial:
              type: string
              description: Seriennummer, hexadezimal.
            valid_from:
              type: string
              format: date-time
            valid_until:
              type: string
              format: date-time
        confirmation:
          type: object
          properties:
            channel:
              type: string
              nullable: true
              enum:
                - email
                - sms
              description: '`null` für eine einfache Signatur, die keinen Code hat.'
            destination:
              type: string
              nullable: true
              description: Der maskierte Kontakt, an den der Code gesendet wurde.
            confirmed_at:
              type: string
              format: date-time
              nullable: true
            attempts:
              type: integer
              description: Eingegebene Codes, einschließlich des richtigen.
        timestamp:
          type: object
          nullable: true
          description: >-
            Der RFC-3161-Zeitstempel in der Signatur, ausgestellt von Didit.
            `null`, bis signiert wurde, und immer `null` bei einer
            Simple-Signatur.
          properties:
            time:
              type: string
              format: date-time
            qualified:
              type: boolean
              description: Für AES immer `false`.
            valid:
              type: boolean
        documents:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                description: >-
                  Das Dokument auf der Kopie dieses Unterzeichners. Verwenden
                  Sie es, um die signierte Datei herunterzuladen.
              uuid:
                type: string
                format: uuid
                description: Identisch mit `id`.
              title:
                type: string
              file_name:
                type: string
              pages:
                type: integer
                description: >-
                  Signierte Seiten des Dokuments. Bei Word: Seiten des
                  konvertierten PDFs.
              size_bytes:
                type: integer
              sha256_original:
                type: string
                description: >-
                  SHA-256 des Dokuments in der Form, wie es dem Unterzeichner
                  angezeigt wurde.
              sha256_signed:
                type: string
                nullable: true
                description: SHA-256 des signierten PDFs, sobald es signiert wurde.
              status:
                type: string
                enum:
                  - signed
                  - declined
                  - not_signed
                  - not_reached
                description: >-
                  `not_signed`: geöffnet, aber nicht unterzeichnet.
                  `not_reached`: nie geöffnet.
              opened_at:
                type: string
                format: date-time
                nullable: true
              read_at:
                type: string
                format: date-time
                nullable: true
                description: >-
                  Wann der Unterzeichner das Ende eines Dokuments ohne Felder
                  erreicht hat, wenn der Schritt dies erfordert.
              read_to_end:
                type: boolean
              consented_at:
                type: string
                format: date-time
                nullable: true
                description: >-
                  Wann der Unterzeichner einem Dokument ohne Felder zugestimmt
                  oder die Felder eines Dokuments mit Feldern ausgefüllt hat.
              consent:
                type: boolean
              signed_file:
                type: string
                nullable: true
                description: >-
                  Pfad des signierten PDFs nach der Signatur. Siehe [Signiertes
                  Dokument
                  herunterladen](/de/sessions-api/electronic-signature/download-signed-document).
              mode:
                type: string
                enum:
                  - fields
                  - read_and_agree
                description: >-
                  `fields` für ein Dokument mit Feldern, `read_and_agree` für
                  ein Dokument ohne.
              source_format:
                type: string
                enum:
                  - pdf
                  - docx
                description: >-
                  `pdf` oder `docx` für ein Word-Dokument, das Didit in PDF
                  konvertiert hat.
              conversion:
                type: object
                nullable: true
                description: >-
                  `null` für ein PDF. Für ein Word-Dokument die Originaldatei
                  und die Konvertierung.
                properties:
                  from:
                    type: string
                    enum:
                      - docx
                  file_name:
                    type: string
                    description: Ihr ursprünglicher Word-Dateiname.
                  sha256:
                    type: string
                    description: SHA-256 Ihrer ursprünglichen Word-Datei.
                  size_bytes:
                    type: integer
                    description: Größe Ihrer ursprünglichen Word-Datei.
                  converter:
                    type: string
                    description: Version des Konverters, der das PDF erstellt hat.
              fields:
                type: array
                description: >-
                  Felder auf dem Dokument mit ihren Werten. Leer bei einem
                  Dokument ohne Felder.
                items:
                  $ref: '#/components/schemas/SignatureFieldResult'
        adopted_signature:
          type: object
          nullable: true
          description: >-
            Die Signatur und Initialen, die der Unterzeichner für Signatur- und
            Initialenfelder übernommen hat. `null`, bis der Unterzeichner eine
            übernimmt.
          properties:
            method:
              type: string
              enum:
                - typed
                - drawn
              description: >-
                `typed`: der verifizierte Name im Handschriftstil. `drawn`: mit
                einem Finger oder einer Maus gezeichnet.
            font:
              type: string
              nullable: true
              description: >-
                Der Handschriftstil einer getippten Signatur. `null`, wenn
                gezeichnet.
            adopted_at:
              type: string
              format: date-time
        electronic_signature_consent_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            Wann der Unterzeichner auf dem Prüfungsbildschirm zugestimmt hat,
            die Dokumente elektronisch zu signieren. Wird gesetzt, wenn
            irgendein Dokument Felder enthält.
        evidence_file:
          type: string
          nullable: true
          description: >-
            Pfad der Nachweis-PDF-Datei nach der Signierung. Siehe
            [Signaturnachweis
            herunterladen](/de/sessions-api/electronic-signature/download-evidence).
        warnings:
          type: array
          description: >-
            Für diesen Unterzeichner ausgelöste Warnungen. Siehe
            [E-Signatur-Warnungen](/de/core-technology/electronic-signature/warnings-electronic-signature).
          items:
            type: object
            properties:
              code:
                type: string
                enum:
                  - SIGNATURE_DECLINED
                  - SIGNATURE_OTP_FAILED
                  - SIGNATURE_NAME_MISMATCH
                  - SIGNATURE_IDENTITY_NOT_VERIFIED
                  - SIGNATURE_DOCUMENT_CHANGED
                  - SIGNATURE_FIELD_DATA_MISSING
              node_id:
                type: string
        validation:
          type: object
          nullable: true
          description: >-
            Die letzte kryptografische Prüfung der signierten Dokumente. `null`,
            bis die Dokumente signiert sind. Wenn Didit das Ergebnis der
            Signierung nicht bestätigen kann, lautet es `{"valid": null,
            "reason": "signature_provider_outcome_unknown", "checked_at": ...}`
            und `status` bleibt `signing`: Behandeln Sie es als nicht signiert.
          properties:
            valid:
              type: boolean
              nullable: true
              description: >-
                `true`, wenn jedes Dokument gültig ist. `null`, wenn das
                Ergebnis der Signierung nicht bestätigt werden konnte.
            reason:
              type: string
              description: >-
                Wird gesetzt, wenn `valid` gleich `null` ist:
                `signature_provider_outcome_unknown`.
            checked_at:
              type: string
              format: date-time
            documents:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                  checked_at:
                    type: string
                    format: date-time
                  valid:
                    type: boolean
                    description: >-
                      `true`, wenn sowohl die Signatur als auch der Zeitstempel
                      gültig und vertrauenswürdig sind.
                  integrity:
                    type: boolean
                    description: >-
                      `true`, wenn das Dokument seit der Signierung unverändert
                      ist.
                  trusted:
                    type: boolean
                    description: >-
                      `true`, wenn das Signaturzertifikat auf ein
                      vertrauenswürdiges Stammzertifikat zurückgeht.
                  revoked:
                    type: boolean
                  trusted_list:
                    type: object
                    description: >-
                      Prüfung der EU-Vertrauensliste. Für AES: `{"status":
                      "not_applicable", "reason": "aes_not_qualified"}`.
                    properties:
                      status:
                        type: string
                      reason:
                        type: string
                  certificate:
                    type: object
                    nullable: true
                    description: >-
                      Das Zertifikat, mit dem die Dokumente signiert wurden.
                      `null` bis zur Signatur und bei einer Simple-Signatur
                      immer `null`.
                    properties:
                      issuer:
                        type: string
                      issued_to:
                        type: string
                      serial:
                        type: string
                        description: Seriennummer, hexadezimal.
                      valid_from:
                        type: string
                        format: date-time
                      valid_until:
                        type: string
                        format: date-time
                  timestamp:
                    type: object
                    nullable: true
                    description: >-
                      Der RFC-3161-Zeitstempel in der Signatur, ausgestellt von
                      Didit. `null`, bis signiert wurde, und immer `null` bei
                      einer Simple-Signatur.
                    properties:
                      time:
                        type: string
                        format: date-time
                      qualified:
                        type: boolean
                        description: Für AES immer `false`.
                      valid:
                        type: boolean
        declined_at:
          type: string
          format: date-time
          nullable: true
        declined_action:
          type: string
          enum:
            - DECLINE
            - REVIEW
            - NO_ACTION
        signed_at:
          type: string
          format: date-time
          nullable: true
        expires_at:
          type: string
          format: date-time
          description: Wann der Signaturlink aufhört zu funktionieren.
        email_sent_at:
          type: string
          format: date-time
          nullable: true
        email_unavailable_reason:
          type: string
          nullable: true
        ip_address:
          type: string
          nullable: true
          description: >-
            Die IP-Adresse des Unterzeichners, als er seinen Code angefordert
            hat.
        place:
          type: string
          nullable: true
          description: 'Nicht erfasst: immer `null`.'
        place_unavailable_reason:
          type: string
          nullable: true
          enum:
            - not_collected
    SignatureFieldResult:
      type: object
      description: >-
        Ein Feld eines signierten Dokuments mit seinem Wert auf der Kopie dieses
        Unterzeichners. Siehe
        [Felder](/de/core-technology/electronic-signature/report-electronic-signature#felder).
      properties:
        key:
          type: string
          description: Der Schlüssel des Felds, wie in `sign.field_values` verwendet.
        type:
          type: string
          enum:
            - signature
            - initials
            - full_name
            - date_signed
            - text
            - checkbox
            - email
            - data
        role:
          type: string
          enum:
            - verified_person
            - legal_representative
            - key_people
        label:
          type: string
        page:
          type: integer
          description: >-
            Seitenzahl, beginnend bei 1. Bei einem Word-Dokument eine Seite des
            konvertierten PDFs.
        x:
          type: number
          description: Linke Kante als Bruchteil der Seitenbreite.
        'y':
          type: number
          description: Oberer Rand als Bruchteil der Seitenhöhe.
        width:
          type: number
          description: Breite als Bruchteil der Seitenbreite.
        height:
          type: number
          description: Höhe als Bruchteil der Seitenhöhe.
        required:
          type: boolean
        value:
          nullable: true
          description: >-
            Ein String für `text`, `email`, `full_name`, `date_signed` und
            `data`, ein boolescher Wert für eine `checkbox` und `true` für eine
            gesetzte Signatur oder gesetzte Initialen. `null`, wenn leer.
        display_value:
          type: string
          nullable: true
          description: >-
            Der Wert, wie er auf der Seite eingetragen ist: Datumsangaben im
            `date_format` des Felds, `Yes` oder `No` für ein Kontrollkästchen,
            `Signed` für eine Signatur oder Initialen.
        value_source:
          type: string
          nullable: true
          enum:
            - signer
            - identity
            - contact
            - company
            - session
            - metadata
            - api
            - signing_time
            - null
          description: >-
            Woher der Wert stammt: `signer` (vom Unterzeichner eingegeben,
            angehakt oder angewendet), `identity` (der verifizierte Ausweis),
            `contact` (die verifizierte E-Mail-Adresse oder Telefonnummer),
            `company` (das verifizierte Unternehmen), `session` (`vendor_data`),
            `metadata`, `api` (`sign.field_values`) oder `signing_time` (das
            Unterzeichnungsdatum).
        filled_at:
          type: string
          format: date-time
          nullable: true
        image_url:
          type: string
          nullable: true
          description: >-
            Nur Signatur und Initialen: der Pfad des angewendeten Bildes. Siehe
            [Signaturbild
            herunterladen](/de/sessions-api/electronic-signature/download-field-image).
        value_unavailable_reason:
          type: string
          nullable: true
          enum:
            - source_empty
            - null
          description: >-
            `source_empty`, wenn ein vorausgefülltes Feld in der Sitzung keinen
            Wert hatte und `signature_field_data_missing_action` dem
            Unterzeichner das Signieren trotzdem erlaubt hat.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Der API-Schlüssel Ihrer Anwendung, aus Entwickler -> API-Schlüssel in
        der Business Console. Der Primärschlüssel hat Vollzugriff. Ein benannter
        Schlüssel kann im Geltungsbereich eingeschränkt werden: keine, Lese-
        oder Schreibberechtigung pro Ressource, beschränkt auf bestimmte
        Workflows oder genehmigte Sitzungen, auf eine Liste von IP-Adressen und
        auf ein Ablaufdatum. 401 bedeutet, dass der Schlüssel falsch, widerrufen
        oder abgelaufen ist; 403 bedeutet, dass kein Schlüssel gesendet wurde,
        der Schlüssel keinen Zugriff auf diese Ressource oder Aktion hat oder
        die Anfrage von einer Adresse außerhalb seiner IP-Liste stammte; 404 bei
        einer Sitzungsroute bedeutet, dass die Sitzung außerhalb der Workflows
        oder Status des Schlüssels liegt. Ein Schlüssel ohne Medienzugriff
        erhält Bild-, Video- und PDF-URLs als null, und ein Schlüssel ohne
        Schreibberechtigung für Sitzungen erhält Sitzungslinks und Token als
        null. Siehe https://docs.didit.me/console/api-keys.

````

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