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 |
| 国 | |
| 本番環境でのウォレットの有効化 | ⏳ 近日提供予定 |
| 公開されているウォレットの料金 | 近日提供予定 |
本人が行う操作
開始リクエストから返される次のアクションに従ってください。 本人がブラウザ、別のデバイス、アプリのいずれを使用するかは、ウォレットの認証フローによって決まります。結果の受け取り
デジタルIDウォレットAPIガイドに従って、認証を追跡し、その結果を取得してください。 ウォレットが本人を認証したことの証明として扱えるのは、完了済みかつ検証済みの結果のみです。 返される本人属性はウォレットによって異なります。住所、顔写真、またはリクエストしたすべての属性が含まれているとは限りません。関連情報
承認
お客様のアプリケーションのAPIキーです。Business ConsoleのDevelopers -> API keysで取得できます。プライマリキーはフルアクセス権を持ちます。名前付きキーにはスコープを設定できます。リソースごとのアクセス権(なし、読み取り、書き込み)、一部のワークフローまたは承認済みセッションへの限定、IPアドレスのリストへの限定、有効期限の設定です。401は、キーが誤っている、失効している、または期限切れであることを意味します。403は、キーが送信されていない、キーにこのリソースやアクションへのアクセス権がない、またはIPリスト外のアドレスからリクエストが送信されたことを意味します。セッションのルートでの404は、セッションがキーのワークフローまたはステータスの対象外であることを意味します。メディアへのアクセス権がないキーでは、画像、動画、PDFのURLがnullで返されます。セッションの書き込み権限がないキーでは、セッションのリンクとトークンがnullで返されます。詳細は次を参照してください: https://docs.didit.me/console/api-keys
ヘッダー
任意の再試行安全キーです(最大255文字)。同じキー、ウォレット、リクエストボディで再試行すると、2回目のサインインを開始せずに元の検証結果が返されます。同じキーで別のウォレットまたはリクエストボディを指定すると、409 idempotency_key_reusedが返されます。
ボディ
Buypass IDによる本人確認を開始します(NOR)。
ウォレットでの操作後にユーザーのブラウザが戻るhttps URLで、request_idとresultが付加されます。このURLのホストは、アプリケーションの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で、Buypass IDが対応する唯一の国です。
NOR- NOR
NOR ユーザーがお客様のページを表示しているデバイスでサインインする場合はsame_device、別のデバイスを使用する場合(例:BankIDのQRコード)はcross_device。
same_device- same_devicecross_device- cross_device
same_device, cross_device