Python
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)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()));ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
resp, err := client.Sessions.Signatures.DownloadEvidence(ctx, "11111111-2222-3333-4444-555555555555", "feature_signature", didit.SessionsSignaturesDownloadEvidenceParams{})
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
file, err := os.Create("download.pdf")
if err != nil {
log.Fatal(err)
}
defer file.Close()
if _, err := io.Copy(file, resp.Body); err != nil {
log.Fatal(err)
}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"));<?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');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)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");curl --request GET \
--url https://verification.didit.me/v3/session/{sessionId}/signatures/{nodeId}/evidence/ \
--header 'x-api-key: <api-key>'"<string>"电子签名
电子签名证据 API:审计追踪 PDF
通过 Didit 下载签署人的证据 PDF,包含文档哈希值和字段值,以及高级(AES)电子签名的身份、验证码、证书和时间戳。
GET
/
v3
/
session
/
{sessionId}
/
signatures
/
{nodeId}
/
evidence
/
Python
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)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()));ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
resp, err := client.Sessions.Signatures.DownloadEvidence(ctx, "11111111-2222-3333-4444-555555555555", "feature_signature", didit.SessionsSignaturesDownloadEvidenceParams{})
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
file, err := os.Create("download.pdf")
if err != nil {
log.Fatal(err)
}
defer file.Close()
if _, err := io.Copy(file, resp.Body); err != nil {
log.Fatal(err)
}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"));<?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');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)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");curl --request GET \
--url https://verification.didit.me/v3/session/{sessionId}/signatures/{nodeId}/evidence/ \
--header 'x-api-key: <api-key>'"<string>"返回某位签署人完成签署后的证据 PDF。路径位于
证据 PDF 记录签名级别和格式、签署人、地址、每份文件及其原始 SHA-256、采用的签名、每个字段的值及其来源和时间、最终同意,以及每份已签署文件的 SHA-256。对于高级(AES)签名,它还会记录已验证身份的会话、验证码确认、证书和时间戳;简单签名则不包含这些内容。请参阅证据 PDF。
对于尚未签署的签署人,请求将返回
signatures[].evidence_file 中,其中 signature_id 已设置。
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
务必传入
signature_id。企业验证(KYB)步骤可能有多名签署人,如果不传入,路由会自行选择其中一人。404,并附带 signature_not_signed。在您删除会话后,该路由将返回 404。
相关内容
授权
您的应用 API 密钥,可在 Business Console 的“开发者 -> API 密钥”中获取。主密钥拥有完整访问权限。指定名称的密钥可设置作用域:针对每个资源设为无权限、只读或读写,限定于特定工作流或已通过的会话、限定于 IP 地址列表,以及设置到期日期。401 表示密钥错误、已撤销或已过期;403 表示未发送密钥、密钥无权访问该资源或操作,或请求来自其 IP 列表之外的地址;在会话路由上返回 404 表示该会话不在该密钥允许的工作流或状态范围内。没有媒体访问权限的密钥获取到的图片、视频和 PDF URL 将为 null;没有会话写入权限的密钥获取到的会话链接和 token 将为 null。请参阅 https://docs.didit.me/console/api-keys。
路径参数
用户验证(KYC)或企业验证(KYB)会话。
示例:
"11111111-2222-3333-4444-555555555555"
电子签名步骤:signatures[] 中项目的 node_id。
示例:
"feature_signature"
查询参数
signatures[] 中签署人条目的 id。
响应
佐证材料 PDF。
The response is of type file.
最后修改于 2026年11月7日