initialize

重要说明:

  • 所有请求及返回参数均严格以官网API文档为准。
  • API返回结果中可能包含未在文档中定义的字段。这些字段仅供内部调试使用,不保证稳定性及兼容性,请勿在生产环境中依赖这些字段,ZOLOZ保留随时修改或删除这些字段的权利,且无需另行通知。

概览

  • API URL:POST /api/v1/zoloz/realid/reusable/initialize
  • API 描述:Recipient 使用 Donor 提供的一次性 shareToken,初始化 Reusable RealID 身份验证流程。该流程复用 Donor 已授权共享的身份数据,用户本次仅需完成人脸活体采集,无需重新采集证件。

说明

  • 该接口不支持重复调用,不符合幂等性。
  • shareToken 仅可使用一次。初始化成功后,该 Token 将被立即消费并失效,无法再次使用。
  • 初始化前,请确保 Donor 与 Recipient 之间的 Reusable RealID 合作关系处于生效状态,且 Recipient 已开通 Reusable RealID 能力。

请求参数

字段名称

数据类型

最大长度

是否必填

默认值

描述

示例值

bizId

String

32


-

业务ID,业务的唯一标识,用于追踪业务。例如,商户业务相关数据库中的序列号。

说明:ZOLOZ不校验该值的唯一性,商户侧需自行保证该业务ID的唯一性。

2026053000001

metaInfo

String

512

-

SDK和用户设备的元信息。该字段的值由ZOLOZ SDK以JSON字符串格式返回。

说明:不要修改返回值,直接传入即可。如果是H5接入模式,则设置为MOB_H5

MOB_H5

flowType

String

32

-

指定身份验证流的类型。取值:

  • REUSABLE_REALIDLITE_KYC:Native SDK接入模式。
  • H5_REUSABLE_REALIDLITE_KYCH5接入模式。

REUSABLE_REALIDLITE_KYC

userId

String

64

-

Recipient 侧的用户 ID 或其他可识别用户的标识。建议对手机号、邮箱等敏感标识进行预脱敏(如哈希处理)。

u_recipient_88001

shareToken

String

64

-

Donor 生成的一次性分享凭证,仅供当前 Recipient 使用。

Ks3LpQa9R7vN2bWxYz8Hf7pK_demo_token_43_chars

acceptedDocTypes

List

200

null

指定Recipient可接受的证件类型列表,用于筛选Donor证件。该参数可单独使用或与acceptedDocCountryCodes组合使用。

  • 列表内多个值为 OR 关系。
  • 不传或传空列表表示不限制证件类型。
  • 若Donor证件类型缺失或不在指定列表内,接口将返回DONOR_DATA_NOT_ACCEPTABLE

支持的证件类型,详见RealID和ID Recognition支持的证件类型和返回的OCR结果

["00000001003"]

acceptedDocCategories

List

50

null

指定Recipient可接受的证件类别,用于筛选Donor证件。该参数可单独使用或与acceptedDocCountryCodes组合使用。

  • 支持的证件类别如下:
    • PASSPORT:护照
    • DRIVING_LICENSE:驾照
    • ID_CARD:身份证
    • RESIDENCE_PERMIT:居住证
    • VISA:签证
  • 列表内多个值为 OR 关系。
  • 不传或传空列表表示不限制证件类别。
  • 若Donor证件类别缺失或不在指定列表内,接口将返回DONOR_DATA_NOT_ACCEPTABLE

["PASSPORT"]

acceptedDocCountryCodes

List

50

null

指定Recipient可接受的Donor证件所属国家或地区列表,支持传入符合ISO 3166-1 alpha-3标准的三位国家码(如 CHNPHLHKG)。

支持以下使用方式:

  • acceptedDocCountryCodes单独使用:表示传入的证件类型属于某个国家。
  • acceptedDocCountryCodes+acceptedDocCategories:取两个参数的交集,表示传入的证件类型属于某国家某类别的证件。
    举例acceptedDocCategories=ID_CARDDRIVING_LICENSEacceptedDocCountryCodes=PHL,表示只允许菲律宾的身份证和驾照通过,否则提示证件类型错误。
  • acceptedDocCountryCodes+acceptedDocTypes:取两个参数的交集,表示传入的证件类型列表属于某个国家。
    注意
    • acceptedDocTypes必须包含通用护照(00000001003或00000001006)才能组合使用,否则系统将拦截该请求。
    • acceptedDocCountryCodes必须涵盖传入的acceptedDocTypes列表中的国家范围,否则系统将拦截该请求。

说明

  • 列表内多个值为 OR 关系。
  • 不传或传空列表表示不限制国家或地区。
  • 若Donor证件国家或地区信息缺失或不在指定列表内,接口将返回DONOR_DATA_NOT_ACCEPTABLE

["HKG"]

sceneCode

String

64

null

业务场景码,用于区分不同业务场景的数据表现。

ONBOARDING_REUSE

productConfig

ProductConfig

-

null

Reusable RealID的人脸活体与风险配置,详见ProductConfig字段说明。

{ "livenessMode":"STANDARD" }

pageConfig

PageConfig

-

null

SDK 页面配置,详见 PageConfig 字段说明。

{ "urlFaceGuide":"https://example.com/face-guide" }

h5ModeConfig

H5ModeConfig

-

H5模式下必填

-

H5 Reusable RealID 配置。当 flowTypeH5_REUSABLE_REALIDLITE_KYC 时必须传入。

{ "completeCallbackUrl":"https://example.com/complete", "interruptCallbackUrl":"https://example.com/interrupt" }

envData

Map<String, Object>

-

null

SDK 运行环境参数。当前仅支持 envName,用于指定 SDK 使用的运行环境;不传时使用当前站点的默认环境。

{ "envName":"default" }

deviceId

String

-

null

H5 接入模式下的用户设备标识。

ZLZ8a402976-d30c-475a-a569-40978b38e8eb

clientIp

String

-

null

H5 接入模式下用户设备的客户端 IP 地址。

203.0.113.10

wirelessConfigGroup

String

32

null

SDK 无线配置分组,用于为不同业务场景选择对应的 SDK 无线配置。

default

证件筛选规则

  • acceptedDocTypesacceptedDocCategoriesacceptedDocCountryCodes三个维度之间为 AND关系,即 Donor 证件必须同时满足所有传入条件才算匹配。
  • 每个维度内的多个值为 OR关系(满足任一即可)。
  • 不传或传空列表表示该维度不限制。

例如:

  • acceptedDocTypes=["00000001003"]:只接受护照类型的证件。
  • acceptedDocCategories=["PASSPORT","ID_CARD"]:只接受护照或身份证类别的证件。
  • acceptedDocCountryCodes=["HKG","CHN"]:只接受中国香港或中国大陆签发的证件。
  • acceptedDocCategories=["ID_CARD"] + acceptedDocCountryCodes=["PHL"]:只接受菲律宾的身份证。

注意:若 Donor 证件不满足上述筛选条件,或证件已过期,接口返回 DONOR_DATA_NOT_ACCEPTABLE,且不会消费 shareToken(即 shareToken 仍可继续使用)。

ProductConfig字段说明

Reusable RealID目前仅支持以下与人脸采集、活体检测和风险控制相关的配置。

字段名称

数据类型

最大长度

是否必填

默认值

描述

示例值

livenessMode

String

10

STANDARD

人脸活体检测等级。取值:

  • CLOSED:所有的算法和风控规则都未开启。该等级可用于测试场景,测试进程不受算法和风控规则的影响。
  • STANDARD:推荐的标准等级。
  • LOOSE:相对宽松的等级,可用于低风险场景。
  • STRICT:相对严格的等级,可用于高风险场景。

STANDARD

actionCheckItems

List<String>

-

FACEBLINK

客户端和Web端的动作检测列表。取值:

  • FACEBLINK:眨眼
  • MOUTHOPEN:张嘴
  • HEADSHAKE:摇头
  • HEADLOWER:低头
  • HEADRAISE:抬头
  • NOACTION:无动作

说明

  • NOACTION与其他动作互斥,不能同时设置。当actionCheckItems设置为NOACTION时,actionRandomactionRandomNumberactionFrame参数均不生效。
  • 为确保更好的用户体验,建议仅选择一种动作,避免同时使用两种及以上动作。
  • 每种动作类型只能传入一次,请勿重复传入相同的动作类型。

["FACEBLINK","HEADLOWER"]

actionRandom

String

1

N

客户端和Web端的动作检测顺序是否随机。取值:

  • Y:随机。
  • N:不随机,则按照actionCheckItems中的顺序进行检测。

Y

actionRandomNumber

String

-

null

从客户指定的动作列表(actionCheckItems)中,定义随机动作检测的数量。

取值范围:actionRandomNumber必须为正整数,且0<actionRandomNumberactionCheckItems中指定的动作总数。

说明

  • actionRandomNumber参数的优先级高于actionRandom,如果两者同时传入,优先生效actionRandomNumber
  • actionRandomNumber为空,且actionRandom=Y时,则对actionCheckItems中的所有动作进行随机检测。
  • actionRandomNumber为空,且actionRandom=N或为空时,则按照actionCheckItems中的顺序进行检测。

1

actionFrame

List<String>

-

null

用于采集其他帧图片。取值:

  • EYECLOSE:设置此值可返回在眨眼检测过程中采集的闭眼帧,但需确保actionCheckItems参数中包含FACEBLINK,否则将导致眨眼检测功能激活失败。
  • MULTIACTIONS:对端侧执行的所有动作各采集一帧并返回。如果设置了此值,但端侧未检测到任何动作,则返回的动作帧内容为空。

["EYECLOSE"]

colorFlash

String

-

N

是否开启炫彩活体检测功能。取值:

  • Y:开启炫彩活体检测功能。
  • N:不开启炫彩活体检测功能。

说明

  • 仅移动端Native SDK(iOS与Android)和Web SDK支持该功能,鸿蒙SDK和PC端设备暂不支持。
  • 如果同时设置了多动作检测,炫彩活体检测流程将在多动作流程完成后进行。

Y

riskMode

String

10

STANDARD

多维度风控冷却规则校验,用于拦截可疑交易。取值:

  • CLOSED:关闭风控冷却规则。该等级适用于测试场景,测试进程不受风控规则的影响。
  • STANDARD:推荐的标准等级。
  • LOOSE:相对宽松的等级,可用于低风险场景。
  • STRICT:相对严格的等级,可用于高风险场景。

STANDARD

faceAttributeCheck

FaceAttributeCheck

-

null

人脸属性检测配置,详见FaceAttributeCheck字段说明。

说明:faceAttributeCheck的优先级高于livenessMode。例如,当occlusionCheck.detectOpen为N时,即使livenessMode为STRICT,也不会进行人脸遮挡检测。

{

"occlusionCheck": {

"details": [

"eyesOcclusion",

"noseOcclusion",

"mouthOcclusion",

"foreheadOcclusion",

"chinOcclusion",

"cheekOcclusion"

],

"detectOpen": "Y",

"needRetry": "Y"

},

"maskCheck": {

"detectOpen": "Y",

"needRetry": "N"

},

"glassesCheck": {

"detectOpen": "Y",

"needRetry": "N"

},

"hatCheck": {

"detectOpen": "Y",

"needRetry": "N"

}

}

cropFaceImage

String

1

N

是否额外返回一张裁剪出脸部区域的人脸图片。取值:

  • Y:是
  • N:否

Y

FaceAttributeCheck字段说明

字段名称

数据类型

最大长度

是否必填

默认值

描述

示例值

occlusionCheck

FaceAttributeDetails

-

null

是否进行人脸遮挡检测,详见FaceAttributeDetails字段说明。

{

"details": [

"eyesOcclusion",

"noseOcclusion",

"mouthOcclusion",

"foreheadOcclusion",

"chinOcclusion",

"cheekOcclusion"

],

"detectOpen": "Y",

"needRetry": "Y"

}

maskCheck

FaceAttributeDetails

-

null

是否进行口罩检测,详见FaceAttributeDetails字段说明。

{

"detectOpen": "Y",

"needRetry": "N"

}

glassesCheck

FaceAttributeDetails

-

null

是否进行眼镜检测,详见FaceAttributeDetails字段说明。

{

"detectOpen": "Y",

"needRetry": "N"

}

hatCheck

FaceAttributeDetails

-

null

是否进行帽子检测,详见FaceAttributeDetails字段说明。

{

"detectOpen": "Y",

"needRetry": "N"

}

FaceAttributeDetails字段说明

字段名称

数据类型

最大长度

是否必填

默认值

描述

示例值

detectOpen

String

1

null

是否检测人脸属性并在checkresult API中返回检测结果。取值:

  • Y:是
  • N:否

"Y"

needRetry

String

1

null

检测到指定属性时是否重试。取值:

  • Y:是。当needRetry为Y时,detectOpen必须为Y。
  • N:否。当needRetry为N时,eKYC仍可能会因为人脸质量较低而提示重试。

"Y"

details

List<String>

-

null

是否返回人脸属性的结果详情。目前仅支持返回occlusionCheck的结果详情,支持的选项如下:

  • eyesOcclusion:返回眼睛遮挡结果。
  • noseOcclusion:返回鼻子遮挡结果。
  • mouthOcclusion:返回嘴巴遮挡结果。
  • foreheadOcclusion:返回额头遮挡结果。
  • chinOcclusion:返回下巴遮挡结果。
  • cheekOcclusion:返回脸颊遮挡结果。

说明

  • 当传入details参数时,detectOpen必须为Y
  • details对应的总结果和特定属性结果将在checkresult API中返回。

[

"eyesOcclusion",

"noseOcclusion",

"mouthOcclusion",

"foreheadOcclusion",

"chinOcclusion",

"cheekOcclusion"

]

PageConfig字段说明

字段名称

数据类型

最大长度

是否必填

默认值

描述

示例值

urlFaceGuide

String

256

null

人脸引导页URL。该页面为H5提示页面,可自定义设置,用于引导用户进行人脸扫描。

说明

https://example.com/face-guide

H5ModeConfig字段说明

字段名称

数据类型

最大长度

是否必填

默认值

描述

示例值

state

String

128

transactionId字段的值

用于恢复客户上下文的标识符。您可以为该字段设置任意值,当ZOLOZ SDK回调商户的移动App时会将该值作为参数传递。

order_2026053000001

completeCallbackUrl

String

128

-

整个身份验证完成后,浏览器重定向的回调 URL。

https://example.com/complete

interruptCallbackUrl

String

128

-

身份验证流程中断后,浏览器重定向的回调 URL。

https://example.com/interrupt

locale

String

16

en

网页语言,目前支持以下语言:

  • en:英语
  • zh-CN:简体中文
  • zh-HK:繁体中文
  • jp:日语
  • th:泰语
  • es:西班牙语
  • pt:葡萄牙语
  • fr:法语
  • id:印尼语
  • de:德语
  • kr:韩语
  • vi:越南语

zh-CN

isIframe

String

1

N

是否在iframe中打开网页,如果需要设置为Y,否则设置为N。

Y

uiCfg

String

256

null

自定义UI配置,采用JSON字符串格式。支持以下字段:

  • titlebarbgcolor
  • titlebartextcolor
  • buttoncolor
  • isDesktop:是否从PC端初始化证件采集模式。
    • Y:从PC端初始化。当isDesktopY时,serviceLevel仅支持REALID0001docUiType仅支持1,否则系统将返回INVALID_ARGUMENT
    • N:从移动端初始化,使用移动Web SDK采集流程。默认值为N。

{\"titlebarbgcolor\":\"#ffffff\",\"titlebartextcolor\":\"#000000\",\"buttoncolor\":\"#3696fd\",\"isDesktop\":\"Y\"}

allowDegradation

String

1

N

是否允许进入降级模式。取值:

  • Y:允许进入降级模式。
  • N:不允许进入降级模式。

说明

  • 如果将allowDegradation设置为Y,当ZOLOZ检测到用户的浏览器不支持Web SDK时,用户可以选择是否进入降级模式,确认进入降级模式后,ZOLOZ将调用系统原生相机进行拍摄。
  • 降级模式可能存在较高风险,对于来自降级模式下的交易,ZOLOZ判定出的最高eKYC结果为Pending,需要您进行二次检查。

Y

facePageGuideUrl

String

128

null

指定降级模式下人脸引导页面的URL。这是一个可定制的H5提示页面,用于引导用户采集自拍人脸图片。

说明:如果不传该参数,则使用默认页面。

"http://xxx.html"

返回参数

字段名称

数据类型

必须返回

描述

示例值

result

Result

API请求结果,包含结果状态、结果码和结果消息。

{

"resultStatus": "S", "resultCode": "SUCCESS", "resultMessage": "Success"

}

transactionId

String

ZOLOZ 为本次 Reusable RealID 身份验证生成的唯一事务 ID。

说明仅当交易进入处理阶段后系统才会返回transactionId。如果在开始处理交易之前发生错误,系统不会返回transactionId。包括但不限于以下情况:

  • 请求参数非法,例如入参格式错误或缺失必传参数。
  • 请求未能成功到达服务器,例如网络问题或网关故障。
  • 系统限流导致请求被拒绝。

G000000005FID2020030400000000000157****

clientCfg

String

客户端配置信息,包括SDK连接和行为参数。仅当 result.resultStatusS 时返回。

……

处理结果

根据请求结果执行下一步的响应动作,具体如下:

  • result.resultStatusS:初始化成功。使用返回的 transactionIdclientCfg 启动 Reusable RealID SDK。
  • result.resultStatusF:初始化失败。请根据 resultCoderesultMessage 排查原因。

API通用结果码

有关通用结果码的完整列表,请参见API通用结果码

API特有结果码

Reusable RealID initialize API的结果码见下表。

结果码

结果状态

描述

SUCCESS

S

API 调用成功。

TOKEN_NOT_FOUND

F

shareToken 不存在、已被使用、已失效,或不可供当前 Recipient 使用。

DONOR_DATA_UNAVAILABLE

F

Donor 的可共享身份数据不存在或当前不可用。

DONOR_DATA_NOT_ACCEPTABLE

F

Donor 证件不满足 Recipient 配置的 acceptedDocTypesacceptedDocCategoriesacceptedDocCountryCodes 筛选条件,或证件已过期。

PARTNERSHIP_NOT_ACTIVE

F

Donor 与 Recipient 之间的 KYC Sharing 合作关系未生效或已暂停。

HIGH_RISK

F

检测到高风险,用户账号被风险引擎冻结。

ACCOUNT_SERVICE_SUSPEND

F

用户账号被风险引擎列入黑名单。

DEVICE_NOT_SUPPORT

F

不支持当前设备类型。

OS_NOT_SUPPORT

F

不支持当前设备的操作系统。

SDKVERSION_NOT_SUPPORT

F

不支持当前 ZOLOZ SDK 版本。

INVALID_ARGUMENT

F

输入参数无效。可能原因包括:缺少必填参数、字段超长或传入了不支持的字段。具体错误信息请查看返回的resultMessage

SYSTEM_ERROR

F

系统内部错误。有关错误详情,请查看返回的resultMessage

说明:用户活体检测失败、人脸比对失败或用户取消流程等不属于 initialize API 的结果码,请通过 v1.zoloz.realid.reusable.checkresult 返回的 eKYC 结果判断。

代码示例

请求示例

Native SDK示例:

copy
{
    "bizId": "2026053000001", 
    "metaInfo": "{\"deviceType\":\"android\",\"appVersion\":\"1.0\",\"osVersion\":\"13\",\"bioMetaInfo\":\"3.46.0:2916352,0\",\"deviceModel\":\"MI 11\",\"zimVer\":\"2.0.0\",\"appName\":\"com.recipient.wallet\"}", 
    "flowType": "REUSABLE_REALIDLITE_KYC", 
    "userId": "u_recipient_88001", 
    "shareToken": "Ks3LpQa9R7vN2bWxYz8Hf7pK_demo_token_43_chars", 
    "acceptedDocTypes": [
        "00000001003", 
        "00000001001"
    ], 
    "acceptedDocCategories": [
        "PASSPORT"
    ], 
    "acceptedDocCountryCodes": [
        "HKG"
    ], 
    "sceneCode": "ONBOARDING_REUSE", 
    "pageConfig": {
        "urlFaceGuide": "https://example.com/face-guide"
    }, 
    "productConfig": {
        "livenessMode": "STANDARD", 
        "actionCheckItems": [
            "FACEBLINK"
        ], 
        "colorFlash": "Y", 
        "faceAttributeCheck": {
            "maskCheck": {
                "detectOpen": "Y", 
                "needRetry": "Y"
            }
        }
    }
}

H5示例:

copy
{
    "bizId": "2026053000002", 
    "metaInfo": "MOB_H5", 
    "flowType": "H5_REUSABLE_REALIDLITE_KYC", 
    "userId": "u_recipient_88001", 
    "shareToken": "Ks3LpQa9R7vN2bWxYz8Hf7pK_demo_token_43_chars", 
    "acceptedDocTypes": [
        "00000001003", 
        "00000001001"
    ], 
    "acceptedDocCategories": [
        "PASSPORT"
    ], 
    "acceptedDocCountryCodes": [
        "HKG"
    ], 
    "h5ModeConfig": {
        "state": "order_2026053000002", 
        "completeCallbackUrl": "https://example.com/complete", 
        "interruptCallbackUrl": "https://example.com/interrupt", 
        "locale": "zh-CN", 
        "isIframe": "N"
    }, 
    "productConfig": {
        "livenessMode": "STANDARD", 
        "actionCheckItems": [
            "FACEBLINK"
        ]
    }
}

返回示例

copy
{
    "result": {
        "resultStatus": "S", 
        "resultCode": "SUCCESS", 
        "resultMessage": "Success"
    }, 
    "transactionId": "G000000005FRR2026053000001", 
    "clientCfg": "<base64-encoded SDK config>"
}