curl -X POST 'https://verification.didit.me/v3/users/delete/' \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"vendor_data_list": ["user-123", "user-456"]}'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.users.batch_delete(
vendor_data_list=["user-123", "user-456"],
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.users.batchDelete({
vendor_data_list: ["user-123", "user-456"],
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.Users.BatchDelete(ctx, didit.UsersBatchDeleteParams{
VendorDataList: didit.Some([]string{"user-123", "user-456"}),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import java.util.List;
import me.didit.Didit;
import me.didit.types.UsersBatchDeleteParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.users().batchDelete(UsersBatchDeleteParams.builder()
.vendorDataList(List.of("user-123", "user-456"))
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->users->batchDelete([
'vendor_data_list' => ['user-123', 'user-456'],
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.users.batch_delete(vendor_data_list: ["user-123", "user-456"])
puts result.to_husing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.Users.BatchDeleteAsync(new UsersBatchDeleteParams
{
VendorDataList = new string[] { "user-123", "user-456" },
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"deleted": 2
}ユーザー一括削除API:GDPRに基づくデータ消去
Diditのベンダーユーザーをvendor_dataで一括削除、またはアプリケーション内の全ユーザーを削除できます。GDPR・CCPAの「忘れられる権利」に準拠しています。
curl -X POST 'https://verification.didit.me/v3/users/delete/' \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"vendor_data_list": ["user-123", "user-456"]}'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.users.batch_delete(
vendor_data_list=["user-123", "user-456"],
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.users.batchDelete({
vendor_data_list: ["user-123", "user-456"],
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.Users.BatchDelete(ctx, didit.UsersBatchDeleteParams{
VendorDataList: didit.Some([]string{"user-123", "user-456"}),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import java.util.List;
import me.didit.Didit;
import me.didit.types.UsersBatchDeleteParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.users().batchDelete(UsersBatchDeleteParams.builder()
.vendorDataList(List.of("user-123", "user-456"))
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->users->batchDelete([
'vendor_data_list' => ['user-123', 'user-456'],
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.users.batch_delete(vendor_data_list: ["user-123", "user-456"])
puts result.to_husing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.Users.BatchDeleteAsync(new UsersBatchDeleteParams
{
VendorDataList = new string[] { "user-123", "user-456" },
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"deleted": 2
}概要
1件以上のユーザーエンティティを削除します。ユーザーレコードは完全に削除されます。ユーザーの認証セッションはこのエンドポイントの対象外で、ユーザーとの紐付けが解除された状態で残ります。セッションはセッションの削除またはセッションの一括削除で削除してください。取引も対象外です。取引は取引の一括削除で削除してください。使用する場面
- 忘れられる権利に基づくリクエスト(GDPR / CCPA)。
- QA中のテストユーザーのクリーンアップ。
- 自社プラットフォームから削除したユーザーのデプロビジョニング。
注意事項
vendor_dataの値のリスト、didit_internal_idの値のリスト、またはdelete_all: trueを受け付けます。2つのリストは組み合わせることができ、OR条件で評価されます。- このエンドポイントはフィルターで
delete_allを絞り込むことはなく、Consoleのfilter_*一括パラメーターは400で拒否されます。そのため、絞り込みを意図したリクエストでアプリケーション内のすべてのユーザーが削除されることはありません。 例外はfilter_has_approved_sessionsとfilter_has_declined_sessionsです。これらは拒否も適用もされないため、delete_allと一緒に送信しないでください。 - 全件成功か全件失敗のいずれかです。選択したユーザーの削除を完了できない場合、どのユーザーも削除されず、同じリクエストを安全に繰り返すことができます。
- 冪等です。同じリストを再送信すると、初回実行後は
deleted: 0が返されます。 - 返されるのは削除された件数のみで、項目ごとのレポートは返されません。何にも一致しなかった値は通知なくスキップされます。重複した識別子は1回しかカウントされないため、
deletedを送信した識別子の数と比較したい場合は、重複を除いたリストを送信してください。 - 削除時にWebhookは送信されません。Webhookはユーザーのステータスやデータの変更時に送信され、削除時には送信されません。そのため、削除のシグナルが必要な連携では、自社側で削除を記録する必要があります。
- ユーザーに紐付いた認証セッションは、このエンドポイントでは削除されません。セッションはユーザーとの紐付けが解除された状態で残るため、その書類、顔、メディアはセッション自体を削除して初めて削除されます。
retain_face_embeddings(boolean、デフォルトはfalse)とface_retention_days(1〜3650)は、重複検知のために、削除された人物1人につき画像を含まない生体認証テンプレートを1件、指定した日数だけ保持するという明示的な選択です。その人物に関するそれ以外の情報は一切保持されません。両方を省略すると、テンプレートはユーザーとともに削除されます。retain_face_embeddings: trueなしでface_retention_daysを指定した場合、またはface_retention_daysなしでretain_face_embeddings: trueを指定した場合は、face_retention_daysに対して400が返されます。retain_face_embeddingsをtrueに設定しない限り、ユーザーに紐付いて保持されている生体認証テンプレートは、ユーザーが削除される前に完全に削除されます。生体認証ストアが利用できないためにテンプレートを削除できない場合、呼び出しは503を返し、リクエスト内のどのユーザーも削除されません。リクエストを繰り返すと処理が完了します。
確定済みの規制当局向けレポートに含まれるデータ
選択した人物のいずれかが、確定済みの規制当局向けレポートを持つケースに含まれている場合、リクエスト全体が409を返し、何も削除されません。レスポンスはcode: in_filed_reportを使用し、各レポートを示すため、Consoleでそのレポートを開くことができます。
{
"detail": "A case about this person or company has a filed regulatory report, so it cannot be deleted.",
"code": "in_filed_report",
"reports": [
{
"uuid": "5ec00000-0000-4000-8000-000000000007",
"report_number": "SAR-0001",
"report_type": "SAR",
"case_uuid": "c1a5e000-0000-4000-8000-000000000001"
}
]
}
権限
アプリケーションの有効なAPIキーであれば、どれでもこのエンドポイントを呼び出せます。DiditのAPIキーは 役割単位ではなくアプリケーション単位です。Consoleの役割と権限 (delete:usersなど)は、Consoleで人が実行できる操作を決めるもので、
Management APIのトラフィックに対しては評価されません。このエンドポイントを呼び出せる人を管理するには、
アプリケーションのAPIキーを閲覧できる人を管理してください。
関連項目
承認
お客様のアプリケーションのAPIキーです。Business ConsoleのDevelopers -> API keysで取得できます。プライマリキーはフルアクセス権を持ちます。名前付きキーにはスコープを設定できます。リソースごとのアクセス権(なし、読み取り、書き込み)、一部のワークフローまたは承認済みセッションへの限定、IPアドレスのリストへの限定、有効期限の設定です。401は、キーが誤っている、失効している、または期限切れであることを意味します。403は、キーが送信されていない、キーにこのリソースやアクションへのアクセス権がない、またはIPリスト外のアドレスからリクエストが送信されたことを意味します。セッションのルートでの404は、セッションがキーのワークフローまたはステータスの対象外であることを意味します。メディアへのアクセス権がないキーでは、画像、動画、PDFのURLがnullで返されます。セッションの書き込み権限がないキーでは、セッションのリンクとトークンがnullで返されます。詳細は次を参照してください: https://docs.didit.me/console/api-keys
ボディ
vendor_data_list、didit_internal_id_list、またはdelete_all: trueを指定してください。2つのリストは組み合わせることができ、OR条件で評価されます。delete_allがtrueの場合はそれが優先され、両方のリストは無視されます。
削除するお客様独自の識別子で、送信した値と完全一致で照合されます。
削除するDidit内部ユーザーIDです。作成および取得のエンドポイントが返すdidit_internal_idを指定します。
trueの場合、アプリケーション内のすべてのユーザーを削除します。
削除された各人物について、重複検知のために画像を含まない生体認証テンプレートを1つ、face_retention_daysの期間保持するというお客様の明示的な選択です。その人物に関するそれ以外のものはすべて削除されます。ユーザーとともにテンプレートも削除する場合は、省略するかfalseを送信してください。trueの場合、face_retention_daysは必須です。
retain_face_embeddingsがtrueの場合に、画像を含まない生体認証テンプレートを保持する日数。同フィールドと併せて指定する必要があり、同フィールドなしで指定するとface_retention_daysに対する400で拒否されます。
1 <= x <= 3650365
レスポンス
ユーザーが削除されました。実際に削除されたユーザー数を返します。
削除されたユーザーの数です(何にも一致しなかったvendor_dataの値は含みません)。