创建非常规摊还
本端点针对某笔发行的一期或多期 installment 创建非常规摊还。event-conciliation-service 会将 这些分期归入单个非常规摊还事件,按所提供的 amortization_type 分配所声明的 amount,并通过 security-service 获取现值 — 集成方无需在自己这一侧计算现值。reference_date 由调用方在非常规摊还请求中提供,是本服务在划分逾期分期和进行按比例折现时使用的唯一时间基准。
Request
ENDPOINT
/event_conciliation/extraordinary_event方法
POSTRequest Body
创建方式有两种模式。模式 1 — Targeted 需要 installment_list(installment_number 数组,整数 ≥ 1),用于 early_amortization、present_amount 和 matured_installments 三种类型。模式 2 — Acquittance 不接收 installment_list,用于 equal_amount 和 first_installments 两种类型。installment_list 中提交的数字会由服务与对应 security 的 installment_number 进行解析匹配。
示例 — 模式 1(early_amortization):
{
"security_key": "971380d4-469e-48f6-a64b-3afb8a88109e",
"investment_key": "<investment_key>",
"amortization_type": "early_amortization",
"amount": 1500.00,
"reference_date": "2026-04-24",
"due_date": "2026-04-24",
"installment_list": [1]
}
示例 — 模式 2(equal_amount):
{
"security_key": "971380d4-469e-48f6-a64b-3afb8a88109e",
"investment_key": "<investment_key>",
"amortization_type": "equal_amount",
"amount": 5000.00,
"reference_date": "2026-04-24",
"due_date": "2026-04-24"
}
Request Body Params
| 字段 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
security_key | string (UUID) | 是 | 将被摊还的资产(security)的唯一键值。 |
investment_key | string (UUID) | 是 | 目标投资的键值。security-service 在计算现值时以此作为按比例分配的基准。 |
amortization_type | string | 是 | 分配策略。取值:equal_amount、first_installments、present_amount、matured_installments、early_amortization。 |
amount | number | 是 | 待摊还的总金额(以 BRL 计)。按 amortization_type 在所选分期之间进行分配。 |
reference_date | string (date) | 是 | 参考日期,格式为 YYYY-MM-DD。由调用方提供 — 服务将其作为"今天",用于划分逾期分期并对现值进行按比例折现。 |
due_date | string (date) | 是 | 目标清算日期(通常与 reference_date 相同)。 |
installment_list | 整数数组(≥ 1) | 条件必填 | 目标分期的 installment_number 列表(不是 UUID),minItems: 1。对 present_amount、matured_installments 和 early_amortization 为必填。对 equal_amount 和 first_installments 请省略该字段,以使用 acquittance 分配方式(模式 2)。服务会将每个数字与该 security 的 installment_number 进行匹配;不存在的数字会返回 EVC000007。旧版 installment_key_list 已移除 — 仍提交该字段的客户端会收到 QIT000001(400)。 |
total_discount | number | 否 | 仅与 present_amount 搭配使用 — 按利息 → 罚金 → 本金的顺序分配折扣。 |
number_of_installments | integer | 否 | 仅在使用 first_installments 且未提供 installment_list 时使用。 |
Response
STATUS
201Response Body
{
"extraordinary_event_conciliation_key": "11111111-1111-4111-8111-111111111111",
"security_key": "971380d4-469e-48f6-a64b-3afb8a88109e",
"amortization_type": "early_amortization",
"total_expected_amount": 1500.00,
"total_discount_amount": 0,
"status": "pending_conciliation",
"reference_date": "2026-04-24",
"due_date": "2026-04-24",
"event_conciliation_list": [
{
"event_conciliation_key": "22222222-2222-4222-8222-222222222222",
"installment_key": "33333333-3333-4333-8333-333333333333",
"expected_amount": 1500.00,
"discount_amount": 0,
"due_date": "2026-04-24",
"status": "pending_conciliation",
"event_conciliation_type": "extraordinary"
}
]
}
Response Body Params
| 字段 | 类型 | 描述 |
|---|---|---|
extraordinary_event_conciliation_key | string (UUID) | 所创建的非常规摊还总事件的键值。 |
security_key | string (UUID) | 资产键值 — 回显提交的值。 |
amortization_type | string | 所选的摊还类型 — 回显提交的值。 |
total_expected_amount | number | 由所选类型的引擎在各 event_conciliation(分期对账事件)之间分配的总额。 |
total_discount_amount | number | 已应用的折扣总额。仅在 present_amount 时不为零。 |
status | string | 非常规事件的初始状态。创建时恒为 pending_conciliation。 |
reference_date | string (date) | 请求中提交的参考日期(必须与结清日期一致)。 |
due_date | string (date) | 请求中提交的目标清算日期。 |
event_conciliation_list | array | 所生成的 event_conciliation(分期对账事件)列表。event_conciliation_list 对象。 |
event_conciliation_list 对象
| 字段 | 类型 | 描述 |
|---|---|---|
event_conciliation_key | string (UUID) | 分期对账事件(event_conciliation)的键值。 |
installment_key | string (UUID) | 受该对账事件影响的分期的键值。 |
expected_amount | number | 分配引擎分配给该分期对账事件的金额。 |
discount_amount | number | 分配给该分期对账事件的 total_discount 份额(如适用)。 |
due_date | string (date) | 关联分期的到期日。 |
status | string | 分期对账事件的初始状态。创建时恒为 pending_conciliation。 |
event_conciliation_type | string | event_conciliation 的类型。由本流程创建的分期对账事件恒为 extraordinary。 |
错误
| 错误码 | HTTP | 含义 |
|---|---|---|
| EVC100001 | 400 | amortization_type 无效。请使用五个受支持取值之一。 |
| EVC100002 | 400 | 对 present_amount、matured_installments 或 early_amortization 而言,installment_list 为必填且不得为空。 |
| EVC100003 | 400 | 使用 first_installments 且未提交 installment_list 时,number_of_installments 为必填。 |
| EVC100004 | 400 | 所提供的某期分期不属于目标 security。 |
| EVC000007 | 404 | installment_list 中的某个整数与该 security 的任何 installment_number 都不匹配(InstallmentNumberNotFound)。 |
| QIT000001 | 400 | Schema 校验失败 — 例如提交了已移除的旧版 installment_key_list,或 installment_list 中某项不是 ≥ 1 的整数。 |
| EVC100005 | 400 | amount 不足以覆盖所有选中的分期(不适用于 early_amortization)。 |
| EVC100006 | 400 | total_discount 超过所选分期现值 之和。 |
| EVC100007 | 400 | 对 matured_installments 而言,所选分期必须全部已逾期。 |
| EVC100008 | 400 | 该分期已存在一笔待处理的非常规摊还 — 请先取消后再创建新的。 |
| EVC100013 | 424 | Security API 不可用(Failed Dependency)。属临时性问题 — 恢复后重试。 |
| EVC100015 | 400 | early_amortization 要求 installment_list 中恰好有 1 期分期。 |
| EVC100016 | 400 | early_amortization 的目标分期不得已逾期。 |
| EVC100017 | 400 | 在 early_amortization 中,amount 必须小于等于该分期的现值。 |
完整的处理方案请参阅错误目录。