再利用可能なドキュメントの取得
このエンドポイントを使用して、新しいドキュメントキャプチャフローを開始する前に、ユーザーがすでに再利用可能なドキュメントを保有しているかどうかを確認します。ドキュメントが見つかった場合、その documentId を直接 POST /processes/v1(ドキュメントタイプ)に渡すことで、キャプチャステップを省略できます。
エンドポイント
| 環境 | URL |
|---|---|
| 本番 | GET https://api.idcloud.unico.app/documents/v1 |
| サンドボックス | GET https://api.idcloud.uat.unico.app/documents/v1 |
リクエスト
ヘッダー
| ヘッダー | 値 |
|---|---|
Authorization | Bearer <access_token>(認証を参照) |
APIKEY | ドキュメントキャプチャと再利用が有効化されたプロビジョニング済みのAPIキー。 |
クエリパラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
code | string | はい | ユーザー識別子(CPFまたはCURP、フォーマットなし)。 |
type | string | はい | 照会するドキュメントタイプ。受け入れ可能な値: BR_RG、BR_CNH、BR_CIN、BR_PASSPORT。 |
メモ
上記の type の値はこのエンドポイントに固有のものです。以下と混同しないでください:
- POSTリクエストの
subject.duiType—DUI_TYPE_*プレフィックスを使用し、ドキュメントタイプではなく人物を識別します(例:DUI_TYPE_BR_CPF)。 - レスポンスの
documentType— 完全なレジストリパスを使用します(例:unico.moja.dictionary.br.cnh.v2.Cnh)。
例
- cURL
- Node.js
curl -X GET "https://api.idcloud.unico.app/documents/v1?code=12345678909&type=BR_CNH" \
-H "Authorization: Bearer $TOKEN" \
-H "APIKEY: $API_KEY"
import fetch from 'node-fetch';
const params = new URLSearchParams({ code: '12345678909', type: 'BR_CNH' });
const res = await fetch(
`https://api.idcloud.unico.app/documents/v1?${params}`,
{
headers: {
Authorization: `Bearer ${accessToken}`,
APIKEY: apiKey
}
}
);
const data = await res.json();
// data.items[0].documentId → 再利用のため POST /processes/v1 に渡す
レスポンス
200 OK
{
"items": [
{
"documentType": "unico.moja.dictionary.br.cnh.v2.Cnh",
"documentId": "doc-abc-123"
}
]
}
| フィールド | 型 | 説明 |
|---|---|---|
items | array | ユーザーに対して見つかった再利用可能なドキュメントのリスト。指定された code と type で再利用可能なドキュメントが見つからなかった場合は空配列。 |
items[].documentType | string | ドキュメントタイプ識別子。可能な値: unico.moja.dictionary.br.rg.v2.Rg、unico.moja.dictionary.br.cnh.v2.Cnh、unico.moja.dictionary.br.cin.v1.Cin、unico.moja.dictionary.br.passaporte.v1.Passaporte。 |
items[].documentId | string | ドキュメント識別子。ドキュメントを再利用するには、この値を POST /processes/v1 の document.documentId に渡してください。 |
再利用のための documentId の使用
documentId を取得したら、それをドキュメントプロセスリクエストに渡してキャプチャを省略します:
{
"subject": {
"code": "12345678909",
"name": "Luke Skywalker"
},
"document": {
"purpose": "onboarding",
"authProcessId": "<biometric-process-id>",
"documentId": "doc-abc-123"
}
}
| フィールド | 説明 |
|---|---|
document.purpose | このドキュメントプロセスのビジネス目的。受け入れ可能な値: creditprocess、carpurchase、paybypaycheck、onboarding、fgts。これらの値はDocument API固有のものであり、生体認証SDKの purpose enumとは異なります。 |
document.authProcessId | このユーザーに対して以前に作成された生体認証プロセスのID(POST /processes/v1 から)。 |
document.documentId | このエンドポイントのレスポンスから取得したドキュメントID。指定された場合、document.files は省略できます — プラットフォームが以前にキャプチャされたドキュメントを自動的に取得します。 |
エラーコード
- 400 Bad Request
- 403 Forbidden
- 404 Not Found
- 429 Too Many Requests
- 500 Internal Server Error
| コード | メッセージ | 説明 |
|---|---|---|
20507 | O parâmetro subject.code é inválido. | 識別子の値(CPFまたはCURP)が不正な形式または存在しない場合。 |
20002 | O parâmetro APIKey não foi informado. | APIKEYヘッダーが欠落している場合。 |
20001 | O parâmetro authtoken não foi informado. | 認証トークンヘッダーが欠落している場合。 |
Bearerトークンまたは APIKEY が欠落、期限切れ、または無効です。
| コード | メッセージ | 説明 |
|---|---|---|
30020 | The provided authorization token does not have permission to perform this action. | トークンにドキュメントセルフィーへのアクセス権限がない場合。 |
30017 | User does not have permission to perform this action. | JWTの形式が不正、またはこの操作を実行する権限がないユーザーの場合。 |
10502 | O token informado está expirado. | アクセストークンが期限切れの場合。 |
10501 | O token informado é inválido. | 認証トークンが無効な場合。 |
10201 | O AppKey informado é inválido. | APIKEYが欠落または存在しない場合。 |
| コード | メッセージ | 説明 |
|---|---|---|
99987 | Attachment not found. | ドキュメントに関連付けられた添付ファイルが見つからなかった場合。 |
50001 | The process is not found. | 指定されたパラメータに対応するドキュメントが見つからなかった場合。 |
レート制限に達しました。システムが HTTP 429 エラーを受信した場合、連鎖的な障害を防ぎ、制限の悪化を避けるためのメカニズムを実装する必要があります。
ベストプラクティス:
- クールダウン期間(バックオフ): システムからの後続のリクエストを直ちに停止または抑制してください。失敗したリクエストを短いループで継続的にリトライしないでください。
- キューイングとスロットリング: 送信リクエストをバッファリングまたはキューに入れて、再送信前にトラフィックフローを制御してください。
- ジッター付き指数バックオフ: リトライ時には、試行間の待機時間を指数的に増加させ(例: 1秒、2秒、4秒、8秒)、小さなランダムな遅延(「ジッター」)を追加して、キュー内のすべてのリクエストがまったく同じミリ秒にリトライするハードエフェクトを防止してください。
警告
バックオフを適用せずにレート制限されたエンドポイントにリクエストを送り続けると、制限期間が延長され、システムの運用スループットに深刻な影響を与える可能性があります。リクエストを適切にスロットリングすることで、よりスムーズで回復力のあるインテグレーションが実現します。
デフォルトの制限、リクエストの増加、その他の詳細については、レート制限を参照してください。
| コード | メッセージ | 説明 |
|---|---|---|
99999 | Internal failure! Try again later. | サーバー側の処理エラーが発生した場合。 |