curl --request POST \
--url https://verification.didit.me/v3/id-verification/wallets/personalausweis/ \
--header 'x-api-key: YOUR_API_KEY' \
--header 'Idempotency-Key: your-unique-attempt-key' \
--header 'Content-Type: application/json' \
--data '{
"country": "DEU",
"vendor_data": "your-customer-reference",
"metadata": {
"reference": "example"
},
"return_url": "https://app.example.com/identity/complete"
}'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.id_wallets.start_personalausweis(
vendor_data="your-customer-reference",
metadata={"reference": "example"},
country="DEU",
return_url="https://app.example.com/identity/complete",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.idWallets.startPersonalausweis({
vendor_data: "your-customer-reference",
metadata: { reference: "example" },
country: "DEU",
return_url: "https://app.example.com/identity/complete",
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.IDWallets.StartPersonalausweis(ctx, didit.IDWalletsStartPersonalausweisParams{
Body: didit.DigitalIDWalletAPIPersonalausweisWalletVerificationStartRequest{
VendorData: didit.String("your-customer-reference"),
Metadata: didit.Some(map[string]any{"reference": "example"}),
Country: didit.Some(didit.DigitalIDWalletAPIPersonalausweisWalletVerificationStartCountryEnum("DEU")),
ReturnURL: "https://app.example.com/identity/complete",
},
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import java.util.Map;
import me.didit.Didit;
import me.didit.types.DigitalIdWalletApiPersonalausweisWalletVerificationStartCountryEnum;
import me.didit.types.DigitalIdWalletApiPersonalausweisWalletVerificationStartRequest;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.idWallets().startPersonalausweis(DigitalIdWalletApiPersonalausweisWalletVerificationStartRequest.builder()
.vendorData("your-customer-reference")
.metadata(Map.of("reference", "example"))
.country(DigitalIdWalletApiPersonalausweisWalletVerificationStartCountryEnum.of("DEU"))
.returnUrl("https://app.example.com/identity/complete")
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->idWallets->startPersonalausweis([
'vendor_data' => 'your-customer-reference',
'metadata' => ['reference' => 'example'],
'country' => 'DEU',
'return_url' => 'https://app.example.com/identity/complete',
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.id_wallets.start_personalausweis(
vendor_data: "your-customer-reference",
metadata: { reference: "example" },
country: "DEU",
return_url: "https://app.example.com/identity/complete"
)
puts result.to_husing System;
using System.Collections.Generic;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.IdWallets.StartPersonalausweisAsync(new DigitalIdWalletApiPersonalausweisWalletVerificationStartRequest
{
VendorData = "your-customer-reference",
Metadata = new Dictionary<string, object> { ["reference"] = "example" },
Country = new DigitalIdWalletApiPersonalausweisWalletVerificationStartCountryEnum("DEU"),
ReturnUrl = "https://app.example.com/identity/complete",
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"request_id": "00000000-0000-4000-8000-000000000001",
"wallet_verification": {
"wallet": {
"id": "personalausweis",
"name": "Personalausweis",
"issuing_authority": "Bundesministerium des Innern (eID)"
},
"country": "DEU",
"status": "Not Finished",
"outcome": "pending",
"error": null,
"interaction": "redirect",
"simulated": false,
"expires_at": "2026-01-01T10:10:00Z",
"next_action": {
"type": "redirect",
"url": "https://wallet.example.com/authorize"
},
"identity": null,
"attributes": null,
"level_of_assurance": null,
"verified_at": null,
"signature_valid": null,
"credential_type": "person_identification"
},
"vendor_data": "your-customer-reference",
"metadata": {
"reference": "example"
},
"created_at": "2026-01-01T10:00:00Z"
}{
"error": "<string>",
"detail": "<string>"
}{
"detail": "Forbidden - User doesn't have permission"
}{
"error": "<string>",
"detail": "<string>"
}{
"error": "<string>",
"detail": "<string>"
}{
"error": "<string>",
"detail": "<string>"
}德国 Personalausweis Profile 2 身份验证 API
通过 Didit 将 Personalausweis Profile 2 身份验证集成到您的应用中。查看国家覆盖范围、认证步骤、结果和定价。
curl --request POST \
--url https://verification.didit.me/v3/id-verification/wallets/personalausweis/ \
--header 'x-api-key: YOUR_API_KEY' \
--header 'Idempotency-Key: your-unique-attempt-key' \
--header 'Content-Type: application/json' \
--data '{
"country": "DEU",
"vendor_data": "your-customer-reference",
"metadata": {
"reference": "example"
},
"return_url": "https://app.example.com/identity/complete"
}'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.id_wallets.start_personalausweis(
vendor_data="your-customer-reference",
metadata={"reference": "example"},
country="DEU",
return_url="https://app.example.com/identity/complete",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.idWallets.startPersonalausweis({
vendor_data: "your-customer-reference",
metadata: { reference: "example" },
country: "DEU",
return_url: "https://app.example.com/identity/complete",
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.IDWallets.StartPersonalausweis(ctx, didit.IDWalletsStartPersonalausweisParams{
Body: didit.DigitalIDWalletAPIPersonalausweisWalletVerificationStartRequest{
VendorData: didit.String("your-customer-reference"),
Metadata: didit.Some(map[string]any{"reference": "example"}),
Country: didit.Some(didit.DigitalIDWalletAPIPersonalausweisWalletVerificationStartCountryEnum("DEU")),
ReturnURL: "https://app.example.com/identity/complete",
},
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import java.util.Map;
import me.didit.Didit;
import me.didit.types.DigitalIdWalletApiPersonalausweisWalletVerificationStartCountryEnum;
import me.didit.types.DigitalIdWalletApiPersonalausweisWalletVerificationStartRequest;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.idWallets().startPersonalausweis(DigitalIdWalletApiPersonalausweisWalletVerificationStartRequest.builder()
.vendorData("your-customer-reference")
.metadata(Map.of("reference", "example"))
.country(DigitalIdWalletApiPersonalausweisWalletVerificationStartCountryEnum.of("DEU"))
.returnUrl("https://app.example.com/identity/complete")
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->idWallets->startPersonalausweis([
'vendor_data' => 'your-customer-reference',
'metadata' => ['reference' => 'example'],
'country' => 'DEU',
'return_url' => 'https://app.example.com/identity/complete',
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.id_wallets.start_personalausweis(
vendor_data: "your-customer-reference",
metadata: { reference: "example" },
country: "DEU",
return_url: "https://app.example.com/identity/complete"
)
puts result.to_husing System;
using System.Collections.Generic;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.IdWallets.StartPersonalausweisAsync(new DigitalIdWalletApiPersonalausweisWalletVerificationStartRequest
{
VendorData = "your-customer-reference",
Metadata = new Dictionary<string, object> { ["reference"] = "example" },
Country = new DigitalIdWalletApiPersonalausweisWalletVerificationStartCountryEnum("DEU"),
ReturnUrl = "https://app.example.com/identity/complete",
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"request_id": "00000000-0000-4000-8000-000000000001",
"wallet_verification": {
"wallet": {
"id": "personalausweis",
"name": "Personalausweis",
"issuing_authority": "Bundesministerium des Innern (eID)"
},
"country": "DEU",
"status": "Not Finished",
"outcome": "pending",
"error": null,
"interaction": "redirect",
"simulated": false,
"expires_at": "2026-01-01T10:10:00Z",
"next_action": {
"type": "redirect",
"url": "https://wallet.example.com/authorize"
},
"identity": null,
"attributes": null,
"level_of_assurance": null,
"verified_at": null,
"signature_valid": null,
"credential_type": "person_identification"
},
"vendor_data": "your-customer-reference",
"metadata": {
"reference": "example"
},
"created_at": "2026-01-01T10:00:00Z"
}{
"error": "<string>",
"detail": "<string>"
}{
"detail": "Forbidden - User doesn't have permission"
}{
"error": "<string>",
"detail": "<string>"
}{
"error": "<string>",
"detail": "<string>"
}{
"error": "<string>",
"detail": "<string>"
}workflow_id.
Die Antwort auf den Start beschreibt die nächste Authentifizierungsaktion; sie ist kein bestätigtes Identitätsergebnis.
Abdeckung und Aktivierung
| Eigenschaft | Wert |
|---|---|
| Wallet | Personalausweis Profile 2 |
| Wallet-ID | personalausweis |
| Länder | |
| Aktivierung des Wallets in Produktion | ⏳ Demnächst verfügbar |
| Veröffentlichter Wallet-Preis | $0.49 pro abgeschlossene Verifizierung |
Was die Person tut
Folgen Sie der nächsten Aktion, die die Startanfrage zurückgibt. Die Authentifizierungsoberfläche des Wallets bestimmt, ob die Person einen Browser, ein anderes Gerät oder eine App verwendet.Ergebnis abrufen
Folgen Sie dem Leitfaden zur Digital-ID-Wallet-API, um die Verifizierung zu verfolgen und ihr Ergebnis abzurufen. Betrachten Sie nur ein abgeschlossenes, verifiziertes Ergebnis als Nachweis, dass das Wallet die Person authentifiziert hat. Die zurückgegebenen Identitätsattribute variieren je nach Wallet; gehen Sie nicht davon aus, dass eine Adresse, ein Porträt oder alle angefragten Attribute vorhanden sind.Verwandte Seiten
授权
您的应用 API 密钥,可在 Business Console 的“开发者 -> API 密钥”中获取。主密钥拥有完整访问权限。指定名称的密钥可设置作用域:针对每个资源设为无权限、只读或读写,限定于特定工作流或已通过的会话、限定于 IP 地址列表,以及设置到期日期。401 表示密钥错误、已撤销或已过期;403 表示未发送密钥、密钥无权访问该资源或操作,或请求来自其 IP 列表之外的地址;在会话路由上返回 404 表示该会话不在该密钥允许的工作流或状态范围内。没有媒体访问权限的密钥获取到的图片、视频和 PDF URL 将为 null;没有会话写入权限的密钥获取到的会话链接和 token 将为 null。请参阅 https://docs.didit.me/console/api-keys。
请求头
可选的重试安全密钥(最多 255 个字符)。使用相同的密钥、钱包和请求体进行重试将返回原始验证结果,而不会发起第二次登录;若将相同密钥用于其他钱包或请求体,则返回 409 idempotency_key_reused。
请求体
发起 Personalausweis 验证(DEU)。
用户浏览器在钱包操作后返回的 https URL,末尾会附加 request_id 和 result。其 host 必须在应用的 allowed_return_hosts 中注册(或为其白标域名)。切勿仅信任 result:请通过 GET .../verifications/{request_id}/ 或 Webhook 读取最终结果。
1 - 2048您为此验证指定的自身参考编号(例如您的用户 ID)。在结果和 Webhook 中返回。
与验证一同存储并在结果和 Webhook 中返回的可选 JSON 对象。
Show child attributes
Show child attributes
仅限沙盒应用:模拟结果,可为 'wallet_cancelled'、'wallet_timeout' 或 'wallet_provider_error';任何其他场景(或无场景)均通过验证。在生产环境应用上会被拒绝。完整目录可在 GET /v1/sandbox/scenarios/ 获取。
1Personalausweis 身份的 ISO 3166-1 alpha-3 国家/地区。默认为 DEU,即其支持的唯一国家/地区。
DEU- DEU
DEU 用户在显示您页面的设备上登录时为 same_device,使用另一台设备(例如 BankID 二维码)时为 cross_device。
same_device- same_devicecross_device- cross_device
same_device, cross_device