跳到主要内容

Lending Analysis (贷款分析)

初版文档

这是 Lending Analysis 文档的第一版,可能会进行小幅修改。建议关注此页面以获取未来更新。

Lending Analysis 端点允许您对借款人进行完整的信用分析,将入职审核、信用分析和私人工资单工人数据查询合并为一个请求。

该操作是异步的:发送请求后,API 返回状态为 pending_inquiry 的同步响应。分析最终结果将在处理完成后通过 webhook 交付。

流程
  1. 客户端向 /lending_analysis 发送 POST 请求,包含借款人数据和所需查询。
  2. API 返回同步响应,包含 lending_analysis_key 和状态 pending_inquiry
  3. 处理完成后,API 发送包含完整分析结果的 webhook。
可用端点

除以下描述的 POST /lending_analysis 外,API 还提供两个辅助查询:

  • 资格查询GET /lending_analysis,用于在创建新分析之前检查借款人是否已有活动中的分析。
  • 分析状态查询GET /lending_analysis/{lending_analysis_key},用于通过轮询跟踪分析状态,作为 webhook 的替代方案。

请求

ENDPOINT
/lending_analysis
METHOD
POST
Request Body
{
"request_identifier_key": "12345678901",
"document_number": "46276658812",
"lending_analysis_type": "private_payroll",
"purchaser_document_number": "12345678000199",
"private_payroll": {
"employer_document_number": "12345678000199",
"registration_number": "12345678901"
},
"authorization_term": {
"legal_representative_document_number": "98765432100",
"signature": {
"signer": {
"document_number": "46276658812",
"name": "João da Silva",
"email": "joao.silva@email.com",
"phone": {
"number": "912345678",
"area_code": "11",
"country_code": "55"
}
},
"authentication_type": "opt_in",
"authenticity": {
"timestamp": "2026-03-12T10:00:00Z",
"ip_address": "192.168.1.100",
"fingerprint": {},
"session_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
}
},
"analysis_data": {
"name": "João da Silva"
}
}

Body 参数

字段类型描述字符数
request_identifier_keystring幂等请求键。每次分析必须唯一。-
document_numberstring借款人的 CPF(仅数字)。11
lending_analysis_typestring信用分析类型。Lending Analysis Type 枚举
purchaser_document_numberstring买方/受让人 CNPJ。(可选)14
private_payrollobject借款人的私人工资单数据。Private Payroll 对象
authorization_termobject借款人授权条款。Authorization Term 对象
analysis_dataobject用于分析的借款人附加数据。Analysis Data 对象

Private Payroll 对象

字段类型描述字符数
employer_document_numberstring雇主 CNPJ。14
registration_numberstring工人登记号。-

Authorization Term 对象

注意

当存在法定代表人时,必须在 legal_representative_document_number 字段中填写代表人的 CPF,并且 signer 对象数据必须使用代表人的信息填写。

有关 authorization_term 对象的更多信息,请参阅官方文档: 工人查询 - 工人数据查询

字段类型描述字符数
legal_representative_document_numberstring法定代表人的 CPF(仅在有法定代表人时必填)。11
signature.signer.document_numberstring签名人的 CPF。11
signature.signer.namestring签名人姓名。-
signature.signer.emailstring签名人电子邮件。(可选)-
signature.signer.phone.numberstring签名人电话号码。(可选)-
signature.signer.phone.area_codestring签名人区号。(可选)2
signature.signer.phone.country_codestring国家代码(例如 "55")。(可选)3
signature.authentication_typestring认证类型。必须为 "opt_in"-
signature.authenticity.timestampstring同意日期和时间(ISO 8601 格式:2026-03-12T10:00:00Z)。-
signature.authenticity.ip_addressstring用户会话 IP(IPv4 或 IPv6)。-
signature.authenticity.fingerprintobject附加可追溯性证据(可以是空对象 {})。-
signature.authenticity.session_idstring用户会话标识符(最少 10 个字符,最多 50 个字符)。50

Analysis Data 对象

字段类型描述字符数
namestring借款人姓名。(可选)-

响应

STATUS
202
Response Body
{
"analysis_status": "pending_inquiry",
"lending_analysis_key": "06666318-c9e9-416b-ae2f-460355a3d8e8"
}
字段类型描述
analysis_statusstring当前分析状态。同步响应中返回 pending_inquiry
lending_analysis_keystring分析的 UUID 键,用于与 webhook 关联。

STATUS
400
Response Body
{
"title": "Bad Request",
"description": "Invalid or missing required fields in the request body. Check 'document_number', 'lending_analysis_type', 'private_payroll', and 'authorization_term'.",
"translation": "Campos obrigatórios ausentes ou inválidos no corpo da requisição. Verifique 'document_number', 'lending_analysis_type', 'private_payroll' e 'authorization_term'.",
"extra_fields": {},
"code": "LAS000001"
}

STATUS
409

request_identifier_key 字段已在先前的请求中使用时返回。

Response Body
{
"title": "Conflict",
"description": "A lending analysis with the provided 'request_identifier_key' already exists. Each analysis must use a unique identifier.",
"translation": "Já existe uma análise de crédito com o 'request_identifier_key' informado. Cada análise deve utilizar um identificador único.",
"extra_fields": {
"existing_lending_analysis_key": "06666318-c9e9-416b-ae2f-460355a3d8e8"
},
"code": "LAS000002"
}

资格查询

检查借款人是否对某个产品有活动中(未过期)的分析。如果没有,则表示可以使用 POST /lending_analysis 创建新分析。

ENDPOINT
/lending_analysis
METHOD
GET

Query 参数

字段类型描述字符数
document_numberstring借款人的 CPF(仅数字)。11
product_namestring产品名称。目前仅接受 private_payroll-
purchaser_document_numberstring买方/受让人 CNPJ。(可选)14

调用示例

GET /lending_analysis?document_number=46276658812&product_name=private_payroll

Response — 借款人有活动中的分析

STATUS
200
Response Body
{
"lending_analysis_key": "06666318-c9e9-416b-ae2f-460355a3d8e8",
"analysis_status": "approved",
"expires_at": "2026-03-17T10:00:00Z"
}
字段类型描述
lending_analysis_keystring借款人活动中分析的 UUID。
analysis_statusstring当前分析状态。参见 分析状态
expires_atstring分析过期日期和时间(ISO 8601)。此日期之后,借款人重新具备发起新分析的资格。

Response — 借款人无活动中的分析

STATUS
404

当所提供组合下不存在活动中的分析时返回。客户端可以继续调用 POST /lending_analysis 发起新分析(前提是相同的 requester_key、产品和 purchaser_document_number 组合下存在活动中的 AnalysisConfiguration)。

Response Body
{
"code": "LAS000009",
"title": "No active lending analysis found",
"description": "No active lending analysis found for product_name=<X>, purchaser_document_number=<Y>. The borrower has no active analysis for the given product.",
"translation": "Nenhuma analise de credito ativa encontrada para product_name=<X>, purchaser_document_number=<Y>. O tomador nao possui analise ativa para o produto informado."
}

当不存在任何符合元组(requester_keyproduct_namedocument_numberpurchaser_document_number)的 Analysis,且其状态不为 failed 并且仍在有效期内(expires_at 在未来)时触发。


分析状态查询

返回特定分析的完整状态,包括状态转换历史、已执行的各个步骤以及所执行查询(inquiries)的数据。当客户端倾向于轮询而非完全依赖完成 webhook 时非常有用。

ENDPOINT
/lending_analysis/{lending_analysis_key}
METHOD
GET

Path 参数

字段类型描述
lending_analysis_keystring分析 UUID,由 POST /lending_analysis 在创建时返回。

调用示例

GET /lending_analysis/06666318-c9e9-416b-ae2f-460355a3d8e8

Response

STATUS
200
Response Body
{
"lending_analysis_key": "06666318-c9e9-416b-ae2f-460355a3d8e8",
"analysis_status": "approved",
"expires_at": "2026-03-17T10:00:00Z",
"request_identifier_key": "12345678901",
"document_number": "46276658812",
"additional_data": {
"private_payroll": {
"employer_document_number": "12345678000199",
"registration_number": "12345678901"
},
"analysis_data": {
"name": "João da Silva"
}
},
"status_events": [
{
"status": "pending_inquiry",
"created_at": "2026-03-12T10:00:00Z"
},
{
"status": "approved",
"created_at": "2026-03-12T10:05:00Z"
}
],
"inquiries": [
{
"inquiry_key": "0a1b2c3d-e5f6-7890-abcd-ef1234567890",
"inquiry_type": "private_payroll",
"inquiry_status": "success",
"inquiry_data": {}
}
],
"steps": [
{
"analysis_step_key": "f1e2d3c4-b5a6-7890-abcd-ef1234567890",
"order": 1,
"step_type": "onboarding_natural_person",
"step_status": "approved"
},
{
"analysis_step_key": "a9b8c7d6-e5f4-3210-abcd-ef1234567890",
"order": 2,
"step_type": "credit_analysis_natural_person",
"step_status": "approved"
}
]
}

顶层字段

字段类型描述
lending_analysis_keystring分析 UUID。
analysis_statusstring当前分析状态。参见 分析状态
expires_atstring分析过期日期和时间(ISO 8601)。
request_identifier_keystring原始请求中提供的幂等键。
document_numberstring借款人的 CPF。
additional_dataobject提交给 POST /lending_analysis 的原始数据(private_payrollauthorization_termanalysis_data)。
status_eventsarray分析状态转换历史。Status Events 对象
inquiriesarray分析期间执行的查询。Inquiries 对象(响应)
stepsarray已执行的各个步骤。Steps 对象

Status Events 对象

每一项按时间顺序记录一次状态转换及其时间戳。

字段类型描述
statusstring此次转换中分析进入的状态。参见 分析状态
created_atstring转换日期和时间(ISO 8601)。

Inquiries 对象(响应)

字段类型描述
inquiry_keystring查询 UUID。
inquiry_typestring查询类型。目前仅有 private_payroll
inquiry_statusstring查询状态:pendingsuccessfailed
inquiry_dataobject查询返回的数据。对于 private_payroll,与完成 webhook 中显示的格式相同 — 参见 Inquiry 数据 (inquiry_data)
failure_reasonstringinquiry_statusfailed 时的失败原因。(可选)

Steps 对象

每个步骤代表处理过程中执行的一项独立分析(入职审核、信用分析)。

字段类型描述
analysis_step_keystring步骤 UUID。
orderinteger步骤执行顺序(1、2 ……)。
step_typestring步骤类型:onboarding_natural_personcredit_analysis_natural_person
step_statusstring当前步骤状态:createdpendingapprovedreprovedfailed

STATUS
404

当所提供的 lending_analysis_key 不对应任何已存在的分析时返回。

Response Body
{
"title": "Not Found",
"description": "Lending analysis with the provided key was not found.",
"translation": "Não foi encontrada uma análise de crédito com a chave informada.",
"extra_fields": {},
"code": "LAS000005"
}

Webhooks

注意!

QI Tech 的 webhook 不应严格映射。 返回的 webhook 负载中可能包含附加字段。

Webhook 类型: laas.lending_analysis.status_change

当分析完成时,webhook 会发送到客户端环境中配置的 URL。

分析完成 Webhook

Response Body
{
"key": "06666318-c9e9-416b-ae2f-460355a3d8e8",
"status": "completed",
"webhook_type": "laas.lending_analysis.status_change",
"event_datetime": "2026-03-12T10:05:00Z",
"data": {
"request_identifier_key": "12345678901",
"analysis_status": "reproved",
"analysis_steps": [
{
"analysis_step_type": "onboarding_natural_person",
"analysis_step_status": "approved",
"reason": "Passou nas validações",
"output_data": {}
},
{
"analysis_step_type": "credit_analysis_natural_person",
"analysis_step_status": "reproved",
"reason": "Score do Serasa menor que 500",
"output_data": {
"analysis_score": 100,
"credit_model_score": 100,
"maximum_monthly_interest_rate": 0.00,
"minimum_monthly_interest_rate": 0.00,
"maximum_installments_number": 10,
"minimum_installments_number": 1,
"maximum_disbursed_issue_amount": 4500.00,
"minimum_disbursed_issue_amount": 0.00
}
}
],
"inquiries": [
{
"inquiry_type": "private_payroll",
"inquiry_data": {
"document_number": "99999999999",
"registration_number": "99999999999-A",
"employer_document_number": "99999999999962",
"name": "JOÃO SILVA",
"gender": "male",
"birth_date": "1985-07-20",
"worker_category_code": 101,
"eligible": true,
"available_margin_amount": 5000.00,
"base_margin_amount": 4500.00,
"total_due_amount": 8207.54,
"admission_date": "2020-03-15",
"termination_date": null,
"termination_reason_code": null,
"political_exposition": "not_exposed",
"employer_name": "EMPRESA XYZ LTDA",
"mother_name": "MARIA DA SILVA",
"nationality": {
"code": 76,
"description": "BRASIL"
},
"occupation": {
"code": 724325,
"description": "SOLDADOR ELETRICO"
},
"economic_activity": {
"code": 2833000,
"description": "FABRICACAO DE MAQUINAS E EQUIPAMENTOS PARA A AGRICULTURA E PECUARIA"
},
"ineligibility_reason": "not_informed",
"employer_activity_start_date": "2010-05-12",
"legacy_loans": [],
"alerts": [
{
"alert_type": "leave",
"reference_date": "2025-02-11",
"event_id": 123456,
"leave_reason_code": 3,
"leave_start_date": "2025-02-11",
"leave_end_date": "2025-03-11"
},
{
"alert_type": "termination",
"reference_date": "2025-02-11",
"event_id": 789012,
"termination_reason_code": 1,
"termination_date": "2025-02-11",
"notice_period_start_date": "2025-01-11",
"notice_period_end_date": "2025-02-11"
}
]
}
}
]
}
}

Webhook 字段描述

字段类型描述
keystring同步响应中返回的 lending_analysis_key
statusstringWebhook 状态。
webhook_typestringWebhook 类型。
event_datetimestring事件日期和时间(ISO 8601)。
data.request_identifier_keystring原始请求中提供的幂等键。
data.analysis_statusstring最终分析状态。分析状态
data.analysis_stepsarray已执行的分析步骤列表。Analysis Steps 对象
data.inquiriesarray从执行的查询中返回的数据。请参阅 Inquiry 数据 (inquiry_data) 部分。

Analysis Steps 对象

字段类型描述
analysis_step_typestring步骤类型。个别分析类型
analysis_step_statusstring个别步骤状态(approvedreproved)。
reasonstring批准或拒绝原因,由客户规则定义。
output_dataobject步骤特定的输出数据。

output_datacredit_analysis

重要

所有 output_data 字段均可在分析规则中配置。如果规则未配置返回特定字段,该字段将返回为空或不出现在负载中。

字段类型描述
analysis_scorenumber信用分析评分。
credit_model_scorenumber信用模型评分。
maximum_monthly_interest_ratenumber最高月利率。
minimum_monthly_interest_ratenumber最低月利率。
maximum_installments_numbernumber最大分期数。
minimum_installments_numbernumber最小分期数。
maximum_disbursed_issue_amountnumber最大发放金额。
minimum_disbursed_issue_amountnumber最小发放金额。

Inquiry 数据 (inquiry_data)

Webhook 中的 inquiries 数组包含分析期间执行的查询返回的数据。每个项目都有 inquiry_type(查询类型)和 inquiry_data(返回数据)字段。

对于 private_payroll 类型,inquiry_data 对象遵循与私人工资单模块的工人数据查询相同的响应格式,包括个人数据、代扣额度、就业关系历史、活跃贷款和警报。

inquiry_data 字段、枚举值和响应示例的完整文档请参阅:

工人查询 — 2. 工人数据查询


枚举值

Lending Analysis Type 枚举

字段描述
private_payroll私人工资单信用分析

分析状态

analysis_status(POST 202、资格查询、状态查询及 webhook data.analysis_status

状态描述
pending_inquiry分析已创建,正在等待初始查询(初始状态)。
pending_analysis初始查询已完成,分析步骤(入职审核、信用分析)正在执行。
approved分析已批准(终态)。
reproved分析已拒绝(终态)。
failed分析因技术错误或外部提供商不可用而失败(终态)。

Webhook data.analysis_status 仅以终态值(approvedreprovedfailed)发出。

Webhook 状态

status(webhook 根字段)

状态描述
completed处理已完成
failed处理失败

个别分析类型

analysis_step_typeanalysis_steps 数组内)

枚举值描述
onboarding_natural_person借款人入职审核步骤。
credit_analysis_natural_person借款人信用分析步骤。

个别分析状态

analysis_step_statusanalysis_steps 数组内)

状态描述
approved个别分析已批准。
reproved个别分析已拒绝。
failed个别分析因技术错误或外部提供商不可用而失败。

沙盒 — 测试用例

重要提示!

请勿在沙盒环境中使用真实个人数据(CPF、CNPJ 等)。

在沙盒环境中,分析结果由请求体中 analysis_data.name 字段的值决定。使用以下名称模拟不同场景:

名称 (analysis_data.name)入职结果信用分析结果最终状态 (analysis_status)
Ana Santosapprovedapprovedapproved
Carlos Oliveiraapprovedreprovedreproved
Mariana Costareprovedreproved
Pedro Almeidaapprovedapproved
Fernanda Limareprovedreproved
工作原理
  • 入职批准 + 信用分析批准Ana Santos):完整分析获批。Webhook 返回 analysis_status: "approved",两个步骤均获批准。
  • 入职批准 + 信用分析拒绝Carlos Oliveira):入职获批但信用分析被拒。Webhook 返回 analysis_status: "reproved"
  • 入职拒绝Mariana CostaFernanda Lima):入职被拒,信用分析不执行。Webhook 返回 analysis_status: "reproved",仅包含入职步骤。
  • 仅入职批准Pedro Almeida):仅执行入职并获批,不进行信用分析。Webhook 返回 analysis_status: "approved",仅包含入职步骤。
Webhook — 沙盒使用名称 "Ana Santos"
{
"key": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "completed",
"webhook_type": "laas.lending_analysis.status_change",
"event_datetime": "2026-03-12T10:05:00Z",
"data": {
"request_identifier_key": "sandbox-test-001",
"analysis_status": "approved",
"analysis_steps": [
{
"analysis_step_type": "onboarding_natural_person",
"analysis_step_status": "approved",
"reason": "Passou nas validações",
"output_data": {}
},
{
"analysis_step_type": "credit_analysis_natural_person",
"analysis_step_status": "approved",
"reason": "Score acima do mínimo",
"output_data": {
"analysis_score": 750,
"credit_model_score": 720,
"maximum_monthly_interest_rate": 0.0449,
"minimum_monthly_interest_rate": 0.0199,
"maximum_installments_number": 24,
"minimum_installments_number": 3,
"maximum_disbursed_issue_amount": 15000.00,
"minimum_disbursed_issue_amount": 500.00
}
}
],
"inquiries": [
{
"inquiry_type": "private_payroll",
"inquiry_data": {
"document_number": "99999999999",
"registration_number": "99999999999-A",
"employer_document_number": "99999999999962",
"name": "ANA SANTOS",
"gender": "female",
"birth_date": "1990-05-15",
"worker_category_code": 101,
"eligible": true,
"available_margin_amount": 8000.00,
"base_margin_amount": 6500.00,
"total_due_amount": 3200.00,
"admission_date": "2018-09-01",
"termination_date": null,
"termination_reason_code": null,
"political_exposition": "not_exposed",
"employer_name": "EMPRESA XYZ LTDA",
"mother_name": "LUCIA SANTOS",
"nationality": {
"code": 76,
"description": "BRASIL"
},
"occupation": {
"code": 411010,
"description": "AUXILIAR DE ESCRITORIO"
},
"economic_activity": {
"code": 6499999,
"description": "OUTRAS ATIVIDADES DE SERVICOS FINANCEIROS"
},
"ineligibility_reason": "not_informed",
"employer_activity_start_date": "2005-01-10",
"legacy_loans": [],
"alerts": []
}
}
]
}
}
Webhook — 沙盒使用名称 "Carlos Oliveira"(信用分析拒绝)
{
"key": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
"status": "completed",
"webhook_type": "laas.lending_analysis.status_change",
"event_datetime": "2026-03-12T10:05:00Z",
"data": {
"request_identifier_key": "sandbox-test-002",
"analysis_status": "reproved",
"analysis_steps": [
{
"analysis_step_type": "onboarding_natural_person",
"analysis_step_status": "approved",
"reason": "Passou nas validações",
"output_data": {}
},
{
"analysis_step_type": "credit_analysis_natural_person",
"analysis_step_status": "reproved",
"reason": "Score do Serasa menor que 500",
"output_data": {
"analysis_score": 100,
"credit_model_score": 100,
"maximum_monthly_interest_rate": 0.00,
"minimum_monthly_interest_rate": 0.00,
"maximum_installments_number": 10,
"minimum_installments_number": 1,
"maximum_disbursed_issue_amount": 4500.00,
"minimum_disbursed_issue_amount": 0.00
}
}
],
"inquiries": [
{
"inquiry_type": "private_payroll",
"inquiry_data": {
"document_number": "99999999999",
"registration_number": "99999999999-A",
"employer_document_number": "99999999999962",
"name": "CARLOS OLIVEIRA",
"gender": "male",
"birth_date": "1988-11-22",
"worker_category_code": 101,
"eligible": true,
"available_margin_amount": 3500.00,
"base_margin_amount": 3000.00,
"total_due_amount": 12500.00,
"admission_date": "2019-06-10",
"termination_date": null,
"termination_reason_code": null,
"political_exposition": "not_exposed",
"employer_name": "EMPRESA XYZ LTDA",
"mother_name": "ROSA OLIVEIRA",
"nationality": {
"code": 76,
"description": "BRASIL"
},
"occupation": {
"code": 724325,
"description": "SOLDADOR ELETRICO"
},
"economic_activity": {
"code": 2833000,
"description": "FABRICACAO DE MAQUINAS E EQUIPAMENTOS PARA A AGRICULTURA E PECUARIA"
},
"ineligibility_reason": "not_informed",
"employer_activity_start_date": "2010-05-12",
"legacy_loans": [],
"alerts": []
}
}
]
}
}
Webhook — 沙盒使用名称 "Mariana Costa"(入职拒绝)
{
"key": "c3d4e5f6-a7b8-9012-cdef-123456789012",
"status": "completed",
"webhook_type": "laas.lending_analysis.status_change",
"event_datetime": "2026-03-12T10:05:00Z",
"data": {
"request_identifier_key": "sandbox-test-003",
"analysis_status": "reproved",
"analysis_steps": [
{
"analysis_step_type": "onboarding_natural_person",
"analysis_step_status": "reproved",
"reason": "Documentação inválida",
"output_data": {}
}
],
"inquiries": [
{
"inquiry_type": "private_payroll",
"inquiry_data": {
"document_number": "99999999999",
"registration_number": "99999999999-A",
"employer_document_number": "99999999999962",
"name": "MARIANA COSTA",
"gender": "female",
"birth_date": "1992-03-08",
"worker_category_code": 101,
"eligible": true,
"available_margin_amount": 6000.00,
"base_margin_amount": 5000.00,
"total_due_amount": 2100.00,
"admission_date": "2021-01-15",
"termination_date": null,
"termination_reason_code": null,
"political_exposition": "not_exposed",
"employer_name": "EMPRESA XYZ LTDA",
"mother_name": "PAULA COSTA",
"nationality": {
"code": 76,
"description": "BRASIL"
},
"occupation": {
"code": 252305,
"description": "ANALISTA DE SISTEMAS"
},
"economic_activity": {
"code": 6201500,
"description": "DESENVOLVIMENTO DE PROGRAMAS DE COMPUTADOR SOB ENCOMENDA"
},
"ineligibility_reason": "not_informed",
"employer_activity_start_date": "2015-08-20",
"legacy_loans": [],
"alerts": []
}
}
]
}
}

参考