メインコンテンツへスキップ

年齢確認

完全なインテグレーションフローについては、API概要を参照してください。

エンドポイント

環境URL
本番POST https://api.id.unico.app/processes/v1
サンドボックスPOST https://api.id.uat.unico.app/processes/v1

リクエスト

ヘッダー
ヘッダー
AuthorizationBearer <access_token>認証を参照)
APIKEY年齢確認機能が有効なプロビジョニング済みAPIキー。
Content-Typeapplication/json
ボディパラメータ
フィールド必須説明
subjectobjectはいユーザー情報コンテナ。
subject.codestring条件付きCPF(BR)またはCURP(MX)、フォーマットなし。フローにライブネスまたは本人確認が含まれる場合に必須(年齢確認機能を参照)。年齢確認のみのフローでは不要です。
subject.namestringいいえユーザーのフルネーム。
subject.genderstringいいえ男性は M、女性は F
subject.birthDatestring (ISO 8601)いいえ生年月日(YYYY-MM-DD)。
subject.emailstringいいえユーザーのメールアドレス。
subject.phonestringいいえ電話番号: 国番号 + 市外局番 + 番号、区切りなし(例: 5519725570707)。
useCasestringいいえ操作のユースケース識別子。
subsidiaryIdstringいいえ支店ID - 複数の支店が存在する場合のみ必須。
imageBase64stringはい暗号化されたSDK出力またはbase64画像(PNG、JPEG、WebP)。
画像要件
  • 最小解像度: 640 × 480(HD標準)
  • 最大ファイルサイズ: 800 KB(JPEG92圧縮推奨)
  • SDKからのJWTトークンは10分後に期限切れとなり、1回のみ使用可能

curl -X POST https://api.id.unico.app/processes/v1 \
-H "Authorization: Bearer $TOKEN" \
-H "APIKEY: $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"subject": {
"code": "12345678909",
"name": "Luke Skywalker",
"birthDate": "2000-05-20",
"email": "[email protected]",
"phone": "5519725570707"
},
"useCase": "AgeVerification",
"imageBase64": "/9j/4AAQSkZJR..."
}'

レスポンス

200 OK

返されるレスポンスフィールドは、APIKEYで有効化されている機能によって異なります。

年齢確認のみ(ライブネスなし、本人確認なし):

{
"id": "80371b2a-3ac7-432e-866d-57fe37896ac6",
"status": 3,
"idAge": { "result": "yes" }
}

年齢確認 + ライブネス + 本人確認:

{
"id": "80371b2a-3ac7-432e-866d-57fe37896ac6",
"status": 3,
"unicoId": { "result": "yes" },
"idAge": { "result": "yes" },
"liveness": 1
}
フィールド説明
idstring (UUID)プロセス識別子。再クエリにはプロセスの取得で使用します。
statusinteger3(成功で完了)、5(エラー)。ビジネス判断には status = 3 のみを使用してください。すべての可能な値については、プロセスの取得を参照してください。
idAge.resultstringyesnoinconclusive - 年齢確認結果。すべてのレスポンスに存在します。
unicoId.resultstringyesnoinconclusive - 本人確認が有効な場合のみ存在します。
livenessinteger1(合格)、2(不合格) - ライブネスが有効な場合のみ存在します。
400 Bad Request

ペイロードの形式が不正、画像が無効、または必須フィールドが欠落しています。

403 Forbidden

Bearerトークンまたは APIKEY が欠落、期限切れ、または無効です。認証を参照してください。

409 Conflict

指定された processId はこのテナントに既に存在します。以下のエラーコードを参照してください。

429 Too Many Requests

レート制限に達しました。システムがHTTP 429エラーを受信した場合、カスケード障害を防ぎ、制限の悪化を避けるためのメカニズムを実装する必要があります。

ベストプラクティス:

  • クールダウン期間(バックオフ): システムからの後続リクエストを直ちに停止またはスロットルしてください。失敗したリクエストをタイトループで継続的にリトライしないでください。
  • キューイングとスロットリング: 再送信前にトラフィックフローを制御するために、送信リクエストをバッファまたはキューに入れてください。
  • ジッターを含む指数バックオフ: リトライ時に、試行間の待機時間を指数的に増加させ(例: 1秒、2秒、4秒、8秒)、すべてのキューされたリクエストがまったく同じミリ秒にリトライするハード効果を防ぐために小さなランダム遅延(「ジッター」)を追加してください。
警告

バックオフせずにレート制限されたエンドポイントに継続的にアクセスすると、制限期間が延長され、システムの運用スループットに深刻な影響を与える可能性があります。リクエストを適切にスロットリングすることで、よりスムーズで回復力のあるインテグレーションが確保されます。

デフォルトの制限、リクエストの増加、その他の詳細については、レート制限を参照してください。

500 Internal Server Error

予期しないサーバーエラー。

エラーコード

コードメッセージ説明
20900O base64 informado não é válido.無効なbase64パラメータ。画像またはインジェクションの問題の可能性があります。
20807A imagem precisa estar no padrão HD ou possuir uma resolução superior a 640 x 480.画像の解像度が最小閾値を下回っています。
20509The subject.name field is invalid.subject.name に無効な文字が含まれています。
20508The subject.gender field is invalid.subject.genderM または F でなければなりません。
20507O parâmetro subject.code é inválido.不正な形式または存在しない識別子の値。フローにライブネスまたは本人確認が含まれる場合のみ発生します。年齢確認のみのフローでは不要です。
20506O base64 informado é muito grande. O tamanho máximo suportado é até 800kb.ペイロードが800 KBを超えています。JPEG92に圧縮してください。
20505O base64 informado não é suportado. Os formatos aceitos são png, jpeg e webp.サポートされていないフォーマットまたは無効なbase64プレフィックス。
20062The useCase field is invalid.useCase フィールドの値が認識されません。
20021The subject.phone field is invalid.subject.phone のフォーマットが無効です(IDD + 市外局番 + 番号、13文字)。
20019The subject.birthDate field is invalid.subject.birthDate がISO 8601フォーマット(YYYY-MM-DD)の範囲外です。
20009O parâmetro imagebase64 não foi informado.セルフィー画像パラメータが欠落しています。
20008The subject.email field is invalid.subject.email のメールフォーマットが無効です。
20005O parâmetro subject.code não foi informado.subject.code パラメータが欠落しています。フローにライブネスまたは本人確認が含まれる場合のみ発生します。年齢確認のみのフローでは不要です。
20004O parâmetro subject não foi informado.subjectオブジェクトが欠落しています。
20003The request body is missing or invalid.ペイロードがnullまたは不正な形式です。
20002O parâmetro APIKey não foi informado.APIKEYヘッダーが欠落しています。
20001O parâmetro authtoken não foi informado.認証トークンヘッダーが欠落しています。
10508The JWT with the captured face has already been used.JWTは1回のみ使用可能です。
10507The JWT with the captured face is expired.JWTが10分の有効期限を超過しています。
10506The imageBase64 field is not a valid JWT from SDK.imageBase64 がSDKで生成された有効なJWTではありません。

次のステップ