curl --request POST \
--url https://verification.didit.me/v3/id-verification/wallets/buypass/ \
--header 'x-api-key: YOUR_API_KEY' \
--header 'Idempotency-Key: your-unique-attempt-key' \
--header 'Content-Type: application/json' \
--data '{
"country": "NOR",
"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_buypass(
vendor_data="your-customer-reference",
metadata={"reference": "example"},
country="NOR",
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.startBuypass({
vendor_data: "your-customer-reference",
metadata: { reference: "example" },
country: "NOR",
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.StartBuypass(ctx, didit.IDWalletsStartBuypassParams{
Body: didit.DigitalIDWalletAPIBuypassWalletVerificationStartRequest{
VendorData: didit.String("your-customer-reference"),
Metadata: didit.Some(map[string]any{"reference": "example"}),
Country: didit.Some(didit.DigitalIDWalletAPICountryAfcEnum("NOR")),
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.DigitalIdWalletApiBuypassWalletVerificationStartRequest;
import me.didit.types.DigitalIdWalletApiCountryAfcEnum;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.idWallets().startBuypass(DigitalIdWalletApiBuypassWalletVerificationStartRequest.builder()
.vendorData("your-customer-reference")
.metadata(Map.of("reference", "example"))
.country(DigitalIdWalletApiCountryAfcEnum.of("NOR"))
.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->startBuypass([
'vendor_data' => 'your-customer-reference',
'metadata' => ['reference' => 'example'],
'country' => 'NOR',
'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_buypass(
vendor_data: "your-customer-reference",
metadata: { reference: "example" },
country: "NOR",
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.StartBuypassAsync(new DigitalIdWalletApiBuypassWalletVerificationStartRequest
{
VendorData = "your-customer-reference",
Metadata = new Dictionary<string, object> { ["reference"] = "example" },
Country = new DigitalIdWalletApiCountryAfcEnum("NOR"),
ReturnUrl = "https://app.example.com/identity/complete",
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"request_id": "00000000-0000-4000-8000-000000000001",
"wallet_verification": {
"wallet": {
"id": "buypass",
"name": "Buypass ID",
"issuing_authority": "Buypass AS"
},
"country": "NOR",
"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>"
}Buypass ID 身份验证 API
使用 Didit 将 Buypass ID 身份验证集成到您的应用中,查看国家/地区覆盖范围、认证步骤、结果和定价信息。
curl --request POST \
--url https://verification.didit.me/v3/id-verification/wallets/buypass/ \
--header 'x-api-key: YOUR_API_KEY' \
--header 'Idempotency-Key: your-unique-attempt-key' \
--header 'Content-Type: application/json' \
--data '{
"country": "NOR",
"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_buypass(
vendor_data="your-customer-reference",
metadata={"reference": "example"},
country="NOR",
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.startBuypass({
vendor_data: "your-customer-reference",
metadata: { reference: "example" },
country: "NOR",
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.StartBuypass(ctx, didit.IDWalletsStartBuypassParams{
Body: didit.DigitalIDWalletAPIBuypassWalletVerificationStartRequest{
VendorData: didit.String("your-customer-reference"),
Metadata: didit.Some(map[string]any{"reference": "example"}),
Country: didit.Some(didit.DigitalIDWalletAPICountryAfcEnum("NOR")),
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.DigitalIdWalletApiBuypassWalletVerificationStartRequest;
import me.didit.types.DigitalIdWalletApiCountryAfcEnum;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.idWallets().startBuypass(DigitalIdWalletApiBuypassWalletVerificationStartRequest.builder()
.vendorData("your-customer-reference")
.metadata(Map.of("reference", "example"))
.country(DigitalIdWalletApiCountryAfcEnum.of("NOR"))
.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->startBuypass([
'vendor_data' => 'your-customer-reference',
'metadata' => ['reference' => 'example'],
'country' => 'NOR',
'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_buypass(
vendor_data: "your-customer-reference",
metadata: { reference: "example" },
country: "NOR",
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.StartBuypassAsync(new DigitalIdWalletApiBuypassWalletVerificationStartRequest
{
VendorData = "your-customer-reference",
Metadata = new Dictionary<string, object> { ["reference"] = "example" },
Country = new DigitalIdWalletApiCountryAfcEnum("NOR"),
ReturnUrl = "https://app.example.com/identity/complete",
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"request_id": "00000000-0000-4000-8000-000000000001",
"wallet_verification": {
"wallet": {
"id": "buypass",
"name": "Buypass ID",
"issuing_authority": "Buypass AS"
},
"country": "NOR",
"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。
开始请求的响应描述的是下一步认证操作,并非已通过的身份结果。
覆盖范围与激活
| 属性 | 值 |
|---|---|
| 钱包 | Buypass ID |
| 钱包 ID | buypass |
| 国家/地区 | |
| 生产环境钱包激活 | ⏳ 即将推出 |
| 已发布的钱包价格 | 即将推出 |
用户操作
请按开始请求返回的下一步操作进行。 钱包的认证体验决定用户使用浏览器、其他设备还是应用。接收结果
请参阅数字身份钱包 API 指南,以跟踪验证进度并获取其结果。 只有已完成且已验证的结果,才能证明钱包已完成对该用户的认证。 返回的身份属性因钱包而异;请勿假定一定会返回地址、肖像或所有请求的属性。相关内容
授权
您的应用 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。
请求体
发起 Buypass ID 验证(NOR)。
用户浏览器在钱包操作后返回的 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/ 获取。
1Buypass ID 身份的 ISO 3166-1 alpha-3 国家/地区代码。默认值为 NOR,即其唯一支持的国家/地区。
NOR- NOR
NOR 用户在显示您页面的设备上登录时为 same_device,使用另一台设备(例如 BankID 二维码)时为 cross_device。
same_device- same_devicecross_device- cross_device
same_device, cross_device