> ## 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: ऑडिट ट्रेल PDF

> Didit से हस्ताक्षरकर्ता की साक्ष्य PDF डाउनलोड करें: दस्तावेज़ हैश, फ़ील्ड मान, पहचान, कोड, प्रमाणपत्र और एडवांस्ड (AES) ई-हस्ताक्षर का टाइमस्टैम्प।

एक हस्ताक्षरकर्ता का साक्ष्य PDF उनके हस्ताक्षर कर देने के बाद लौटाता है। पथ हस्ताक्षरकर्ता के `signatures[].evidence_file` में होता है, जिसमें `signature_id` पहले से सेट होता है।

```bash theme={null}
curl -L 'https://verification.didit.me/v3/session/{session_id}/signatures/{node_id}/evidence/?signature_id={signature_id}' \
  -H 'x-api-key: YOUR_API_KEY' \
  -o signature-evidence.pdf
```

> [!WARNING]
>
> हमेशा `signature_id` पास करें। किसी व्यवसाय सत्यापन (KYB) चरण में कई हस्ताक्षरकर्ता हो सकते हैं, और इसके बिना रूट उनमें से किसी एक को चुन लेता है।

साक्ष्य PDF में स्तर और प्रारूप, हस्ताक्षरकर्ता, IP पता, हर दस्तावेज़ का मूल SHA-256, अपनाया गया हस्ताक्षर, हर फ़ील्ड का मान उसके स्रोत और समय के साथ, अंतिम सहमति, और हर हस्ताक्षरित फ़ाइल का SHA-256 दर्ज होता है। उन्नत (AES) हस्ताक्षर के लिए यह सत्यापित पहचान सत्र, कोड पुष्टि, प्रमाणपत्र और टाइमस्टैम्प भी दर्ज करता है; सरल हस्ताक्षर में इनमें से कोई भी नहीं होता। देखें [साक्ष्य PDF](https://docs.didit.me/hi/core-technology/electronic-signature/report-electronic-signature.md#साक्ष्य-pdf)।

जिस हस्ताक्षरकर्ता ने हस्ताक्षर नहीं किया है, उसके लिए रूट `signature_not_signed` के साथ `404` लौटाता है। [सत्र हटाने](https://docs.didit.me/hi/sessions-api/delete-session.md) के बाद रूट `404` लौटाता है।

## संबंधित

* [हस्ताक्षरित दस्तावेज़ डाउनलोड करें](https://docs.didit.me/hi/sessions-api/electronic-signature/download-signed-document.md)
* [ई-हस्ताक्षर रिपोर्ट](https://docs.didit.me/hi/core-technology/electronic-signature/report-electronic-signature.md)


## OpenAPI

````yaml hi/openapi-25.json GET /v3/session/{sessionId}/signatures/{nodeId}/evidence/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: पहचान सत्यापन API। x-api-key हेडर के साथ प्रमाणीकृत करें।
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/session/{sessionId}/signatures/{nodeId}/evidence/:
    get:
      tags:
        - Sessions
      summary: हस्ताक्षर साक्ष्य डाउनलोड करें
      description: >-
        हस्ताक्षरकर्ता का साक्ष्य PDF डाउनलोड करें: स्तर और प्रारूप,
        हस्ताक्षरकर्ता, IP पता, प्रत्येक दस्तावेज़ अपने मूल SHA-256 और फ़ील्ड
        मानों के साथ, और प्रत्येक हस्ताक्षरित फ़ाइल का SHA-256, साथ ही Advanced
        (AES) हस्ताक्षर के लिए, सत्यापित पहचान सत्र, कोड पुष्टिकरण, प्रमाणपत्र
        और टाइमस्टैम्प। `signatures[]` में हस्ताक्षरकर्ता के आइटम के
        `evidence_file` पथ का उपयोग करें।


        जब किसी व्यवसाय सत्यापन (KYB) चरण में कई हस्ताक्षरकर्ता हों, तो हमेशा
        `signature_id` पास करें: इसके बिना, रूट चरण के हस्ताक्षरकर्ताओं में से
        किसी एक को चुन लेता है। `read:sessions` आवश्यक है; आपकी API कुंजी काम
        करती है।
      operationId: get_v3_session_signature_evidence
      parameters:
        - name: sessionId
          in: path
          required: true
          description: उपयोगकर्ता सत्यापन (KYC) या व्यवसाय सत्यापन (KYB) सत्र।
          schema:
            type: string
            format: uuid
            example: 11111111-2222-3333-4444-555555555555
        - name: nodeId
          in: path
          required: true
          description: 'ई-हस्ताक्षर चरण: `signatures[]` में आइटम का `node_id`।'
          schema:
            type: string
            example: feature_signature
        - name: signature_id
          in: query
          required: false
          description: '`signatures[]` में हस्ताक्षरकर्ता के आइटम का `id`।'
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: साक्ष्य PDF।
          headers:
            Content-Disposition:
              description: फ़ाइल नाम के साथ अटैचमेंट।
              schema:
                type: string
                example: attachment; filename="signature-evidence.pdf"
          content:
            application/pdf:
              schema:
                type: string
                format: binary
        '403':
          description: >-
            क्रेडेंशियल मौजूद नहीं हैं, या ऐसा क्रेडेंशियल है जो इस सत्र को पढ़
            नहीं सकता। अनुपलब्ध कुंजी `403` लौटाती है; गलत, निरस्त या समय-सीमा
            समाप्त कुंजी `401` लौटाती है।
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              example:
                detail: You do not have permission to perform this action.
        '404':
          description: >-
            कोई साक्ष्य मेल नहीं खाता: सत्र, चरण या हस्ताक्षरकर्ता मौजूद नहीं
            है, हटा दिया गया था, या उसने हस्ताक्षर नहीं किए हैं।
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                  code:
                    type: string
              examples:
                Not signed yet:
                  summary: हस्ताक्षरकर्ता ने हस्ताक्षर नहीं किए हैं
                  value:
                    code: signature_not_signed
                    detail: signature_not_signed
                Unknown signer:
                  summary: इस चरण में ऐसा कोई हस्ताक्षर नहीं है
                  value:
                    code: signature_not_found
                    detail: signature_not_found
        '409':
          description: >-
            संग्रहीत फ़ाइल अब इसके रिकॉर्ड किए गए SHA-256 से मेल नहीं खाती। कुछ
            भी वापस नहीं किया गया है।
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                  code:
                    type: string
              examples:
                Changed file:
                  summary: स्टोर की गई फ़ाइल अपने हैश से मेल नहीं खाती
                  value:
                    code: signature_document_changed
                    detail: signature_document_changed
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            content = client.sessions.signatures.download_evidence(
                "11111111-2222-3333-4444-555555555555",
                "feature_signature",
            )
            with open("download.pdf", "wb") as file:
                file.write(content)
        - lang: javascript
          label: Node.js
          source: >-
            import { writeFile } from "node:fs/promises";

            import Didit from "@didit-protocol/sdk-node";


            // Reads DIDIT_API_KEY.

            const didit = new Didit();


            const content = await didit.sessions.signatures.downloadEvidence(
              "11111111-2222-3333-4444-555555555555",
              "feature_signature",
            );

            await writeFile("download.pdf", Buffer.from(await
            content.arrayBuffer()));
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresp, err := client.Sessions.Signatures.DownloadEvidence(ctx, \"11111111-2222-3333-4444-555555555555\", \"feature_signature\", didit.SessionsSignaturesDownloadEvidenceParams{})\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer resp.Body.Close()\nfile, err := os.Create(\"download.pdf\")\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer file.Close()\nif _, err := io.Copy(file, resp.Body); err != nil {\n\tlog.Fatal(err)\n}"
        - lang: java
          label: Java
          source: >-
            import java.nio.file.Path;

            import me.didit.Didit;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            client.sessions().signatures().downloadEvidence("11111111-2222-3333-4444-555555555555",
            "feature_signature")
                    .writeTo(Path.of("download.pdf"));
        - lang: php
          label: PHP
          source: >-
            <?php


            require 'vendor/autoload.php';


            use Didit\DiditClient;


            // Reads DIDIT_API_KEY.

            $didit = new DiditClient();


            $content =
            $didit->sessions->signatures->downloadEvidence('11111111-2222-3333-4444-555555555555',
            'feature_signature');

            $content->saveTo('download.pdf');
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

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

            content = didit.sessions.signatures.download_evidence(
              "11111111-2222-3333-4444-555555555555",
              "feature_signature"
            )
            File.binwrite("download.pdf", content)
        - lang: csharp
          label: .NET
          source: >-
            using System;

            using Didit;


            // Reads DIDIT_API_KEY.

            using var client = new DiditClient();


            var content = await
            client.Sessions.Signatures.DownloadEvidenceAsync("11111111-2222-3333-4444-555555555555",
            "feature_signature");

            await content.SaveToAsync("download.pdf");
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        आपकी एप्लिकेशन की API कुंजी, Business Console में Developers -> API keys
        से। प्राथमिक कुंजी के पास पूर्ण एक्सेस होता है। एक नामित कुंजी को स्कोप
        किया जा सकता है: प्रति संसाधन none, read या write, कुछ वर्कफ़्लो या
        स्वीकृत सत्रों तक सीमित, IP पतों की सूची तक सीमित, और समाप्ति तिथि तक
        सीमित। 401 का अर्थ है कि कुंजी गलत है, निरस्त कर दी गई है या उसकी
        समय-सीमा समाप्त हो गई है; 403 का अर्थ है कि कोई कुंजी नहीं भेजी गई थी,
        कुंजी के पास इस संसाधन या कार्रवाई का एक्सेस नहीं है, या अनुरोध उसकी IP
        सूची से बाहर के पते से आया था; सत्र रूट पर 404 का अर्थ है कि सत्र कुंजी
        के वर्कफ़्लो या स्थितियों से बाहर है। मीडिया एक्सेस के बिना एक कुंजी को
        छवि, वीडियो और PDF URL null के रूप में प्राप्त होते हैं, और सत्र write
        के बिना एक कुंजी को सत्र लिंक और token null के रूप में प्राप्त होते हैं।
        देखें https://docs.didit.me/console/api-keys।

````

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