跳转到主要内容

年龄验证

有关完整的集成流程,请参阅 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.genderstringM 表示男性,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 分钟后过期,且只能使用一次

示例

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.gender 必须为 MF
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.空或格式错误的请求体。
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 只能使用一次。
10507The JWT with the captured face is expired.JWT 超过 10 分钟有效期窗口。
10506The imageBase64 field is not a valid JWT from SDK.imageBase64 不是由 SDK 生成的有效 JWT。

下一步