薪资卡手册 - Webhooks
API 开发中
该 API 仍处于开发阶段,因此本手册可能会有所变动。
1. 全局状态变更 Webhook
为跟踪申请进度(签名完成、入网失败、放款完成或卡片发行),API 发送一个统一的 Webhook 通知预约状态变更。
WEBHOOK TYPE
laas.payroll_card_reservation.status_changeWebhook 通用结构
| 字段 | 类型 | 描述 |
|---|---|---|
| key | string | 卡片预约密钥 |
| status | string | 预约的新状态 |
| webhook_type | string | laas.payroll_card_reservation.status_change |
| event_datetime | string | 事件日期和时间 |
| data | object | 包含状态变更相关数据的对象 |
场景
A. 签名完成(Pending Onboarding)
当文件通过 Qi Sign 或外部方式签名完成时触发。预约状态变更为 pending_onboarding,流程进入入网阶段。
返回预约的附件文件列表以及签名人的面部分析数据。
Payload 示例
{
"key": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "pending_onboarding",
"webhook_type": "laas.payroll_card_reservation.status_change",
"event_datetime": "2025-01-15T14:30:00Z",
"data": {
"attached_documents": [
{
"document_key":"332017f4-a0d6-463a-8557-e925a9485251",
"document_type":"payroll_card_term",
"document_certifier":"qi_sign",
"document_status":"signed",
"document_batch_key":"f28bf87a-11cd-4d89-89c0-19229a1b31a7",
"document_url": "https://storage.googleapis.com/example_document.pdf",
"signature_url": "https://storage.googleapis.com/example_document_signed.pdf",
},
{
"document_key":"0f0651de-bf3f-45f8-891f-f81b9c24df10",
"document_type":"payroll_card_consent_term",
"document_certifier":"qi_sign",
"document_status":"signed",
"document_batch_key":"f28bf87a-11cd-4d89-89c0-19229a1b31a7",
"document_url": "https://storage.googleapis.com/example_document.pdf",
"signature_url": "https://storage.googleapis.com/example_document_signed.pdf",
},
{
"document_key":"910e8de5-16af-4bc5-8ee1-4a0652ca0cbf",
"document_type":"withdrawal_operation_term",
"document_certifier":"qi_sign",
"document_status":"signed",
"document_batch_key":"f28bf87a-11cd-4d89-89c0-19229a1b31a7",
"document_url": "https://storage.googleapis.com/example_document.pdf",
"signature_url": "https://storage.googleapis.com/example_document_signed.pdf",
},
{
"document_key":"b1c3e915-6707-49f5-85a9-398ef997fdad",
"document_type":"selfie",
"document_certifier":"qi_sign",
"document_status":"generated",
"document_url":"https://storage.googleapis.com/selfie.jpeg"
},
{
"document_key":"5769a335-a2ac-4913-a742-38b9d1e4abd2",
"document_type":"document_identification",
"document_certifier":"qi_sign",
"document_status":"generated",
"document_url":"https://storage.googleapis.com/cnh.jpeg"
},
{
"document_key":"75577d34-4ebd-4488-aca8-b064e603c973",
"document_type":"document_identification_back",
"document_certifier":"qi_sign",
"document_status":"generated",
"document_url":"https://storage.googleapis.com/cnh_back.jpeg"
}
],
"signature_data": {
"document_similarity_score": 1,
"similarity_score": 0.75,
"biometry_analysis_reference": "internal",
}
}
}
响应体详情
| 字段 | 类型 | 描述 |
|---|---|---|
| attached_documents | array | 为预约创建的文件列表 |
| signature_data | object | 签名时收集的生物特征数据 |
signature_data Payload
| 字段 | 类型 | 描述 |
|---|---|---|
| document_similarity_score | number | 签署人与所发送文件之间的生物特征相似度分数(0-1) |
| similarity_score | number | 签署人与人脸数据库中找到的参考之间的生物特征相似度分数(0-1) |
| biometry_analysis_reference | string | 用于计算生物特征相似度分数的人脸数据来源 |
B. 发送附加文件(Pending Additional Documents Submission)
当保证金在 Dataprev 成功预约或由于附加文件(视频)被拒绝而从验证阶段返回时触发。
此 Webhook 表示操作正在等待通过 /additional_documents 接口发送(或重新发送)确认视频。如果是因拒绝而重新发送,payload 将返回 rejection_reason 字段。
Payload 示例
{
"key": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "pending_additional_documents_submission",
"webhook_type": "laas.payroll_card_reservation.status_change",
"event_datetime": "2025-01-15T16:00:00Z",
"data": {
"rejection_reason": "Vídeo sem áudio ou ilegível" // 仅在文件被拒绝后从 pending_additional_documents_validation 状态返回时出现
}
}
C. 附加文件验证(Pending Additional Documents Validation)
确认视频成功发送后触发。状态变更为 pending_additional_documents_validation,表示视频/附加文件已进入验证和分析队列。
Payload 示例
{
"key": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "pending_additional_documents_validation",
"webhook_type": "laas.payroll_card_reservation.status_change",
"event_datetime": "2025-01-15T16:15:00Z",
"data": {}
}
D. 附加文件已批准(Pending Withdrawal Disbursement)
验证阶段分析并批准确认视频后触发。状态变更为 pending_withdrawal_disbursement(等待取款放款)。
Payload 示例
{
"key": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "pending_withdrawal_disbursement",
"webhook_type": "laas.payroll_card_reservation.status_change",
"event_datetime": "2025-01-15T17:00:00Z",
"data": {
"credit_operation_key": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
}
E. 放款完成(Pending Card Issuance)
取款完成时触发。状态变更为 pending_card_issuance(等待卡片发行),流程进入卡片发行阶段。
不返回任何附加信息。
Payload 示例
{
"key": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "pending_card_issuance",
"webhook_type": "laas.payroll_card_reservation.status_change",
"event_datetime": "2025-01-15T17:00:00Z",
"data": {
"wallet_key": "9a7b7982-8bf7-4a2c-942c-588166811623"
}
}
F. 卡片已发行(Card Issued)
钱包和卡片创建完成时触发。
Payload 示例
{
"key": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "card_issued",
"webhook_type": "laas.payroll_card_reservation.status_change",
"event_datetime": "2025-01-15T18:30:00Z",
"data": {
"card_key": "7c6b421e-7ae0-4419-b021-87bcc0be8748"
}
}
G. 取消(Canceled)
操作因某种原因被取消时触发(身份或信用验证被拒、Dataprev 保证金预约错误等)。
返回取消原因和详情。
Payload 示例
{
"key": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "canceled",
"webhook_type": "laas.payroll_card_reservation.status_change",
"event_datetime": "2025-01-15T16:45:00Z",
"data": {
"cancel_reason": "not_eligible",
"cancel_details": "Age 15 is not within the eligible range (18-79 years)"
}
}
2. 文件 Webhook(生成与验证)
此 Webhook 通知操作中每个附件文件的单独状态变更。包括合同生成、签名收集阶段,以及附加文件(如确认视频)的验证阶段响应。
WEBHOOK TYPE
laas.payroll_card_reservation.attached_document.status_changeWebhook 通用结构
| 字段 | 类型 | 描述 |
|---|---|---|
| key | string | 文件密钥 |
| status | string | 文件的新状态(generated、pending_signature、approved、rejected) |
| webhook_type | string | laas.payroll_card_reservation.attached_document.status_change |
| event_datetime | string | 事件日期和时间 |
| data | object | 包含状态变更相关数据的对象 |
data 对象详情
| 字段 | 类型 | 描述 |
|---|---|---|
| payroll_card_reservation_key | string | 卡片预约密钥 |
| document_key | string | 文件唯一密钥 |
| document_type | string | 文件类型 |
| document_url | string | 查看文件的链接 |
| signature_url | string | 签名流程链接。仅当 status 为 pending_signature 时出现。 |
| rejection_reason | string | 拒绝原因。仅当 status 为 rejected 时出现。 |