跳转到主要内容

创建流程

这是每个 Web & SDK 集成的入口点。您的后端调用它来创建流程;前端使用返回的令牌来渲染 iFrame、重定向用户或初始化原生 SDK。

有关完整的集成流程,请参阅 Web & SDK 概述

端点

环境URL
生产环境POST https://api.idcloud.unico.app/client/v1/process
沙箱环境POST https://api.idcloud.uat.unico.app/client/v1/process

请求

请求头
请求头
AuthorizationBearer <access_token>(参见认证
Content-Typeapplication/json
请求体参数
字段类型必填描述
callbackUristring旅程结束后用户被重定向到的 URL。原生 SDK 流程中回调在应用内处理时使用 /
flowstring流程标识符 — 决定运行哪些功能。示例:idunicodocsidunicosignidchecktrustidtokenidsmart。参见可用流程
purposestring业务用途。接受的值:creditprocessbiometryonboardingcarpurchaseageverification
person.duiTypeenum文件类型。接受的值:DUI_TYPE_BR_CPFDUI_TYPE_MX_CURPDUI_TYPE_US_SSNDUI_TYPE_BR_PASSPORTDUI_TYPE_AR_PASSPORTDUI_TYPE_AR_DNIDUI_TYPE_NG_NINDUI_TYPE_CL_RUNDUI_TYPE_EC_NIDUI_TYPE_US_PASSPORTDUI_TYPE_GT_CUIDUI_TYPE_UY_CIDUI_TYPE_ZZ_EMAILDUI_TYPE_ID_NIKDUI_TYPE_ZZ_PHONE_NUMBERDUI_TYPE_US_DRIVER_LICENSEDUI_TYPE_NG_BVNDUI_TYPE_MX_RFC_PERSONA_FISICADUI_TYPE_CO_NITDUI_TYPE_PE_RUCDUI_TYPE_CA_SINDUI_TYPE_DK_CPRDUI_TYPE_GB_NINODUI_TYPE_PL_PESELDUI_TYPE_SE_PNRDUI_TYPE_AT_STNRDUI_TYPE_FI_HETU
person.duiValuestring文件号码,不含格式化字符。
person.friendlyNamestring旅程 UI 中显示的用户显示名称。最大 50 个字符。
person.phonestringDDI + DDD + 号码格式的电话号码,无分隔符。通过短信或 WhatsApp 发送通知时必填。
person.emailstring电子邮件地址。包含电子签名的流程必填。
person.notificationsarray用于发送旅程链接的通知渠道。每个项目有 notificationChannelNOTIFICATION_CHANNEL_WHATSAPPNOTIFICATION_CHANNEL_SMSNOTIFICATION_CHANNEL_EMAIL
bioTokenIdstring (UUID)有条件已弃用。 请改用 references。参考生物识别流程的 ID。1:1 验证流程(idtokenidtokentrustidtokensign)和智能重新验证(idsmart)必填。
referencesarray有条件1:1 验证和智能重新验证流程的参考输入,替代 bioTokenId。每个项目包含 referenceTypeREFERENCE_TYPE_IMAGE_BASE64REFERENCE_TYPE_PROCESS_ID)和 referenceContent(base64 编码的图像或流程 UUID)。
useCasestring有条件智能重新验证用例。idsmart 必填。示例:USE_CASE_LOGINUSE_CASE_IDENTITY_REVALIDATION_7_DAYSUSE_CASE_FIN_TRANSACTIONS
clientReferencestring您的内部标识符,用于在门户中进行交叉引用(外键)。
companyBranchIdstring (UUID)分支 ID。仅在服务账户关联了多个分支时必填。
expiresInstring从创建起的流程有效期窗口。格式:"3600s"。如省略,默认为 7 天。
flow_configobject每个流程的配置覆盖。
flow_config.biometry_capture.enabled_back_cameraboolean使用设备的后置摄像头。与文档采集或电子签名流程不兼容。
contextualizationobject旅程中向用户显示的交易上下文,用于解释采集目的。
contextualization.company_namestring旅程中显示的公司名称。最多 20 个字符。
contextualization.currencystring向用户显示的货币代码。接受的值:BRLMXNUSD
contextualization.pricenumber向用户显示的交易金额。
contextualization.localeobject旅程中显示的本地化文本。键:ptBrenUsesMx
contextualization.locale.{ptBr|enUs|esMx}.reasonstring旅程中显示的简短采集原因。最多 50 个字符。
contextualization.locale.{ptBr|enUs|esMx}.titlestring旅程中显示的客户通知标题。最多 100 个字符。必须与 text 一起提供。HTML 标签将被去除。
contextualization.locale.{ptBr|enUs|esMx}.textstring旅程中显示的客户通知正文。最多 210 个字符。必须与 title 一起提供。HTML 标签将被去除。

示例

curl -X POST https://api.idcloud.unico.app/client/v1/process \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"callbackUri": "https://app.client.com/callback",
"flow": "idunicodocs",
"purpose": "biometryonboarding",
"person": {
"duiType": "DUI_TYPE_BR_CPF",
"duiValue": "12345678909",
"friendlyName": "Luke Skywalker",
"phone": "5511912345678",
"email": "[email protected]"
}
}'

响应

200 OK
{
"process": {
"id": "53060f52-f146-4c12-a234-5bb5031f6f5b",
"state": "PROCESS_STATE_CREATED",
"flow": "idunicosign",
"purpose": "biometryonboarding",
"callbackUri": "https://app.client.com/callback",
"clientReference": "your-internal-id-123",
"companyBranchId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"userRedirectUrl": "https://cadastro.unico.app/process/53060f52-f146-4c12-a234-5bb5031f6f5b",
"token": "eyJhbGciOiJSUzI1NiIs...",
"webAppToken": "eyJhbGciOiJSUzI1NiIs...",
"createdAt": "2023-10-09T09:15:25.417105Z",
"expiresAt": "2023-10-09T16:15:25.417105Z",
"capacities": [],
"authenticationInfo": {},
"person": {
"duiType": "DUI_TYPE_BR_CPF",
"duiValue": "12345678909",
"friendlyName": "Luke Skywalker",
"phone": "5511912345678",
"email": "[email protected]",
"notifications": []
},
"companyData": {
"branchId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"countryCode": "BR"
}
}
}
字段类型描述
process.idstring (UUID)流程标识符。使用它通过获取流程获取结果。
process.stateenumPROCESS_STATE_CREATED — 流程已创建,旅程尚未开始。PROCESS_STATE_FAILED — 流程创建失败。
process.flowstring创建时发送的流程标识符。
process.purposestring创建时发送的业务用途。
process.callbackUristring创建时发送的回调 URI。
process.clientReferencestring创建时发送的您的内部标识符。仅在请求中提供时出现。
process.companyBranchIdstring (UUID)分支 ID。仅在请求中提供时出现。
process.userRedirectUrlstring将用户重定向到的 URL(Web 重定向和 iFrame 集成)。请勿修改此 URL。
process.tokenstring用于初始化 Web SDK iFrame 的 JWT。
process.webAppTokenstring用于初始化原生 SDK(Android、iOS、Flutter)的 JWT。
process.createdAtstring (date-time)流程创建的时间戳。
process.expiresAtstring (date-time)流程过期后无法再完成的时间戳。
process.capacitiesarray为此流程配置的功能。
process.authenticationInfoobject流程的认证信息(创建时为空)。
process.personobject创建时发送的 person 对象的回显。
process.companyData.branchIdstring (UUID)与流程关联的分支 ID。
process.companyData.countryCodestring与分支关联的国家代码(例如 BRMX)。
400 Bad Request

当请求体格式错误、缺少必填字段或 flow 值未知时返回。

401 Unauthorized

Bearer 令牌缺失、过期或无效。请参阅认证

429 Too Many Requests

已达到速率限制。当您的系统收到 HTTP 429 错误时,您必须实施机制以防止级联故障并避免加重限制。

最佳实践:

  • 冷却期(退避): 立即停止或限制系统中的后续请求。不要在紧密循环中持续重试失败的请求。
  • 队列和限流: 在您端缓冲或排队传出请求,以在重新发送之前控制流量。
  • 指数退避与抖动: 重试时,以指数方式增加尝试之间的等待时间(例如 1 秒、2 秒、4 秒、8 秒),并添加小的随机延迟("抖动")以防止所有排队请求在完全相同的毫秒重试的"群体效应"。
警告

在未退避的情况下持续请求被限速的端点会延长限制期并严重影响系统的运行吞吐量。在您端正确限制请求可确保更平稳、更具弹性的集成。

有关默认限制、增加请求和其他详细信息,请参阅速率限制

错误代码

代码消息描述
3invalid flow指定的流程不存在时。
3invalid person: friendly name exceeds 50 characters.友好名称超过 50 个字符时。
3invalid purpose提供的目的无效时。
3invalid callbackUri: unable to parse callbackUri: parse "": empty url, invalid callbackUri: url:提供的 callbackUri 无效时。
3invalid person: email required for notification channel NOTIFICATION_CHANNEL_EMAIL, invalid email address for notification channel NOTIFICATION_CHANNEL_EMAIL配置了电子邮件通知但提供的电子邮件无效时。
3invalid person: phone number required for notification channel NOTIFICATION_CHANNEL_WHATSAPP, phone number does not contain 13 chars for notification channel NOTIFICATION_CHANNEL_WHATSAPP配置了短信或 WhatsApp 通知但提供的电话号码无效时。
3idnsv2/GetPublicID request error: rpc error: code = InvalidArgument desc = invalid dui value提供的标识符(duiValue)无效时。
3invalid expiresIn argumentexpiresIn 值无效时。
3invalid company_name argument in process contextualization, max length is 20contextualization.company_name 超过 20 个字符时。
3title and text must be provided together in process contexts当某个语言区域中仅提供了 titletext 其中之一时。
3invalid title argument in process contexts, max length is 100当某个语言区域的 title 超过 100 个字符时。
3invalid text argument in process contexts, max length is 210当某个语言区域的 text 超过 210 个字符时。
3invalid reason argument in process contexts, max length is 50当某个语言区域的 reason 超过 50 个字符时。
9XX ID Apikeys are not setAPI Key 未正确配置时。

下一步