cs.fin.ledger.post
记账(含收付款登记)。
- 请求路由:
cs.fin.ledger.post- 交互模型:
Request Response- 访问限制: 无
收款账目可提供独立的 receiptEntity、receiptAccount 和 invoices 快照; 发票税点仅供记录,不替代账目顶层税率,也不参与金额计算。
请求
RSocket.rr({
"route" : "cs.fin.ledger.post",
"data" : {
"finJobId" : "FJ20260616001",
"entries" : [
{
"source" : {
"type" : "MANUAL",
"bizId" : "RCPT26060001",
"eventRef" : "ui-receipt-0001"
},
"party" : {
"role" : "CUSTOMER",
"id" : "CUST10086",
"name" : "深圳市鹏海国际货运"
},
"receiptEntity" : {
"id" : "LE002",
"name" : "实际收款公司"
},
"receiptAccount" : {
"accountName" : "实际收款公司",
"bankName" : "示例银行",
"bankAccount" : "DEMO-001",
"currency" : "CNY"
},
"invoices" : [
{
"invoiceNo" : "INV-DEMO-001",
"invoiceType" : "增值税普通发票",
"taxRate" : 0.06
}
],
"amount" : 11300.0,
"currency" : "CNY",
"flow" : "AR",
"nature" : "CASH",
"stage" : "ACTUAL",
"chargeCode" : "OCEAN_FREIGHT",
"priceType" : "TAX_INCLUSIVE",
"taxRate" : 0.06,
"tags" : [
"src:RECEIPT",
"term:PP"
],
"occurAt" : "2026-06-20T02:00:00Z",
"remark" : "客户海运费收款登记"
}
]
}
});
请求参数
| 名称 | 类型 | 必须 | 说明 |
|---|---|---|---|
finJobId | String | 否 | 资金档号 |
entries | Object[] | 否 | 账目草稿列表 |
entries.[].source | Object | 否 | 来源信息(事件类型、业务单号、事件引用) |
entries.[].source.type | String | 否 | 来源类型,例如 ATD / AN / BOOKING / ENTRUST / CHANGE / MANUAL |
entries.[].source.bizId | String | 否 | 业务单据 id(工作单号/提单号/委托号等) |
entries.[].source.eventRef | String | 否 | 触发该记账的事件/调用引用,用于幂等与审计 |
entries.[].party | Object | 否 | 往来方信息(角色、对方 id、对方名称) |
entries.[].party.role | String | 否 | 角色 |
entries.[].party.id | String | 否 | 往来对象 id(客户/供应商/代理/组织 id) |
entries.[].party.name | String | 否 | 名称快照 |
entries.[].receiptEntity | Object | 否 | 实际收款主体快照,仅用于收款,可与数据所属 legalEntityId 不同;提供时 ID、名称均必填。 |
entries.[].receiptEntity.id | String | 否 | 实际收款主体 ID,提供主体信息时必填。 |
entries.[].receiptEntity.name | String | 否 | 登记时的主体名称,后续主体更名不回写历史账目。 |
entries.[].receiptAccount | Object | 否 | 实际收款账号快照,仅用于收款;提供时开户名称、银行名称、账号均必填。 |
entries.[].receiptAccount.accountName | String | 否 | 开户名称,提供账号信息时必填。 |
entries.[].receiptAccount.bankName | String | 否 | 开户银行名称,提供账号信息时必填。 |
entries.[].receiptAccount.bankCode | String | 否 | 银行联行号。 |
entries.[].receiptAccount.bankAccount | String | 否 | 银行账号,提供账号信息时必填。 |
entries.[].receiptAccount.currency | String | 否 | 账号币种快照,不用于替代本笔账目的记账币种。 |
entries.[].receiptAccount.swiftCode | String | 否 | 国际汇款使用的 SWIFT 代码。 |
entries.[].receiptAccount.address | String | 否 | 银行账号地址信息。 |
entries.[].invoices | Object[] | 否 | 收款关联发票快照,可为空或多张;每张须包含号码、类型和税率,不参与账目价税计算。 |
entries.[].invoices.[].invoiceNo | String | 否 | 发票号码,关联发票时必填。 |
entries.[].invoices.[].invoiceType | String | 否 | 调用方提供的发票类型值,关联发票时必填,暂不限制为固定枚举。 |
entries.[].invoices.[].taxRate | Number | 否 | 非负发票税率,关联发票时必填;例如 0.06 表示 6%,允许零税率。 不替代账目自身的 taxRate,也不据此计算收款税额。 |
entries.[].amount | Number | 否 | 原币金额 |
entries.[].currency | String | 否 | 币种 |
entries.[].fxRate | Number | 否 | 记账汇率(可选,缺省由汇率表/同币种推断) |
entries.[].flow | String | 否 | 资金流向(应收/应付) |
entries.[].nature | String | 否 | 记账性质(权责发生/收付实现) |
entries.[].stage | String | 否 | 阶段(预估/实际) |
entries.[].chargeCode | String | 否 | 费用科目编码 |
entries.[].priceType | String | 否 | 价税类型(缺省按不征税处理) |
entries.[].taxRate | Number | 否 | 税率(如 0.06) |
entries.[].taxAmount | Number | 否 | 税额(可选;提供时优先于按税率计算) |
entries.[].tags | String[] | 否 | 开放维度标签(URN 前缀字符串) |
entries.[].occurAt | String | 否 | 发生时间 |
entries.[].remark | String | 否 | 备注 |
返回
记账回执,含已落账账目 ID 与资金档最新摘要
{
"entryIds" : [
"FE20260620001"
],
"summary" : {
"finJobId" : "FJ20260616001",
"bizJobId" : "SHSE26060001",
"baseCurrency" : "CNY",
"status" : "OPEN",
"summary" : {
"balances" : [
{
"currency" : "CNY",
"receivable" : 11300.0,
"received" : 11300.0,
"arBalance" : 0,
"payable" : 8480.0,
"paid" : 0,
"apBalance" : 8480.0
}
],
"actualReceivableBase" : 11300.0,
"actualPayableBase" : 8480.0,
"receivedBase" : 11300.0,
"actualProfitBase" : 2820.0,
"computedAt" : "2026-06-20T02:00:01Z"
}
}
}
返回属性
| 名称 | 类型 | 说明 |
|---|---|---|
entryIds | String[] | 本次落账的账目号 |
summary | Object | 该票最新资金摘要 |
summary.finJobId | String | 资金档号 |
summary.bizJobId | String | 业务工作单号 |
summary.baseCurrency | String | 本位币 |
summary.status | String | 资金档状态 |
summary.summary | Object | 资金摘要(余额、应收应付、利润、税基等汇总) |
summary.summary.balances | Object[] | 按币种的实际往来余额(不跨币种合并) |
summary.summary.balances.[].currency | String | 币种 |
summary.summary.balances.[].receivable | Number | 实际应收(flow=AR, nature=ACCRUAL 的带符号金额之和) |
summary.summary.balances.[].received | Number | 已收(flow=AR 实际应计的已核销额之和) |
summary.summary.balances.[].arBalance | Number | 应收余额(欠款)= receivable - received |
summary.summary.balances.[].payable | Number | 实际应付(flow=AP, nature=ACCRUAL) |
summary.summary.balances.[].paid | Number | 已付(flow=AP 实际应计的已核销额之和) |
summary.summary.balances.[].apBalance | Number | 应付余额 = payable - paid |
summary.summary.estReceivableBase | Number | 预估应收(本位币) |
summary.summary.estPayableBase | Number | 预估应付(本位币) |
summary.summary.estProfitBase | Number | 预估毛利(含税,本位币)= estReceivableBase - estPayableBase |
summary.summary.actualReceivableBase | Number | 实际应收(含税,本位币) |
summary.summary.actualPayableBase | Number | 实际应付(含税,本位币) |
summary.summary.receivedBase | Number | 已收(含税,本位币)= Σ 实际应收应计的已核销额 × 记账汇率 |
summary.summary.paidBase | Number | 已付(含税,本位币)= Σ 实际应付应计的已核销额 × 记账汇率 |
summary.summary.actualProfitBase | Number | 实际毛利(含税,本位币)= actualReceivableBase - actualPayableBase |
summary.summary.estReceivableNetBase | Number | 预估应收(不含税,本位币) |
summary.summary.estPayableNetBase | Number | 预估应付(不含税,本位币) |
summary.summary.estProfitNetBase | Number | 预估毛利(不含税,本位币) |
summary.summary.actualReceivableNetBase | Number | 实际应收(不含税,本位币) |
summary.summary.actualPayableNetBase | Number | 实际应付(不含税,本位币) |
summary.summary.actualProfitNetBase | Number | 实际毛利(不含税,本位币)= actualReceivableNetBase - actualPayableNetBase |
summary.summary.arTaxBase | Number | 销项税额合计(应收侧实际应计,本位币) |
summary.summary.apTaxBase | Number | 进项税额合计(应付侧实际应计,本位币) |
summary.summary.formulaVersion | Number | 计算口径版本(见 SummaryCalculator.FORMULA_VERSION);口径变更后,低于当前版本的汇总由启动迁移统一重算 |
summary.summary.computedAt | String | 重算时间 |