付款

收款、付款以及贷项/借项通知单——结算应收和应付的已过账交易。

付款是结算应收或应付的已过账现金交易。收款记录流入的现金;付款记录流出的现金。贷项或借项通知单在不移动现金的情况下调整余额。付款和通知单是独立单据,生命周期各自独立,但都通过发票结算应用到发票。发票侧视角参见发票。

NOTE

付款是一条交易记录,不是发票字段。创建付款、暂存其发票应用,然后过账。已付款是发票根据已过账结算推导出的状态。

付款

付款携带当事方、银行账户、日期、货币、汇率和总额。恰好设置一个对手方:客户或供应商,绝不两者兼有。方向与当事方刻意解耦,以便退款场景成立:付款(Disbursement)可以支付给客户(退还应收贷项),收款(Receipt)可以来自供应商(退还应付借项)。

字段含义
paymentTypeReceipt(应收,现金流入)或 Disbursement(应付,现金流出)
customerId / supplierId恰好一个——收款需要客户,付款需要供应商
bankAccount现金流经的总账科目
totalAmount现金金额。可以为零——见下方纯贷项应用
currencyCode、exchangeRate付款货币及其对本位币的汇率
reference、memo自由文本参考号和备注

付款按公司从 PAY-YYYY-MM- 序列编号。

支付方式

付款可以记录支付方式——银行转账、现金、承兑汇票、支付宝、微信支付或支票。由集成写入的付款保持为空;它只是记录:过账仍然把现金记在付款的银行/现金账户上。

选择承兑汇票时需要填写票据信息:票种(银行承兑汇票或商业承兑汇票)、票号、到期日和出票行。票据是待收的钱,不是银行里的钱,因此本期只在付款上记录票据,不改变过账——票据到期托收,以及支付宝、微信、银企直连所需的商户资质与回执对账,属于后续集成。

贷项与借项通知单

通知单在形式上类似付款但不涉及现金:当事方、金额,以及作为对方科目的原因总账科目,而不是银行账户。它是独立单据(不是发票行)。direction 表示它贷记还是借记当事方的控制科目,四种「当事方 × 方向」组合清晰对应应收/应付的变动:

当事方 + 方向效果
客户 + 贷项应收减少(给客户的退货或折让)
客户 + 借项应收增加(额外收费)
供应商 + 借项应付减少(供应商欠你的贷项)
供应商 + 贷项应付增加(你欠供应商的额外金额)

通知单只属于一个当事方。其原因科目不是用户选择:过账时 Carbon 按当事方侧从公司科目默认值推导(客户通知单使用销售折扣科目,供应商通知单使用供应商付款折扣科目)并写入通知单以供审计。方向只决定控制科目和原因科目落在分录的哪一侧。

贷项和借项通知单分别从 CR-YYYY-MM- 和 DR-YYYY-MM- 序列独立编号。

结算行

现金和通知单都通过同一个原语结算未结项:发票结算。每行把一笔来源与一笔目标相抵。

字段类型
由 paymentId(现金)或 memoId(通知单)之一提供资金。
提供在账贷项的先前已过账付款。NULL 表示该行由应用付款自身的现金供资。无论哪种,paymentId 始终是应用与作废的所有者,因此贷项供资的行只能挂在现金付款上,绝不能挂在通知单上。
销售发票、采购发票或通知单三者之一。(增加余额的通知单本身就是一个未结项,以它为目标来结算。)
在资金来源单据货币下消耗的本金,独立于 appliedAmount 存储。
冲减的目标单据本金,以公司本位币计。
你给予的提前付款折扣,以本位币计。仅限现金付款——来自通知单的结算不能携带折扣。
你原谅并记入核销科目的尾差,以本位币计。仅限现金付款。
本次应用实现的汇兑损益,以本位币计:正数为收益,负数为损失。服务端在过账时计算,从不手工录入。
应用生效的日期。

结算行必须移动一些东西:已应用、折扣和核销之和大于零,或该行消耗正的 sourceAmount。应收来源只能结算同一对手方的应收目标,应付来源只能结算应付目标——过账函数会执行当事方和方向一致性(收款拒绝采购发票,付款拒绝销售发票,付款只能结算自己当事方的发票)。

NOTE

结算在其来源为草稿时暂存,只有来源过账时才生效。这包括通过付款进行的「应用贷项」通知单来源结算:即使通知单本身已过账,其贷项应用仍绑定到应用它的付款,在该付款过账前不计入——因此编制器与现金应用保持一致。

生命周期

付款和通知单共用一个生命周期。草稿可自由编辑;过账写入总账分录并冻结应用;作废会冲销。已作废是终态。

偏轨状态
已过账
已写入总账日记账,结算生效。应用被冻结——要改变已过账付款的落点,请作废后重新录入。

只有草稿可以删除;已过账的付款或通知单必须作废,以保留历史。作废只能从已过账执行。

过账到总账

过账始终写入日记账并应用结算。在公司完成会计设置之前,日记账为暂记状态,不计入任何余额。

  • 付款把银行账户与应收或应付控制科目(客户为应收,供应商为应付)相抵,按应用拆分。每笔结算的折扣进入折扣科目,核销进入核销科目。汇兑损益按应用计算——从资金来源释放的账面价值减去目标上冲减的本位币本金——并以 fxGainLossAmount 存储在该结算行。日记账随后把它们的净额作为一行记入已实现汇兑损益科目。
  • 通知单写入一张平衡的两行分录:控制科目对推导出的原因科目。之后把减少余额的通知单应用到发票是总账中性的——两者都在应收/应付中——且不实现汇兑损益,因为 Carbon 只允许应用汇率与发票一致​​的贷项。

每笔付款和通知单的日记账行都标记对手方类型和实体维度,因此应收和应付可以按客户或供应商出报表。作废会生成配对的反向日记账而不是修改原始分录,并携带相同维度,使维度筛选后的余额净额为零。这些分录的落账位置参见会计与总账。

在账贷项与超额付款

超过发票未结余额的应用会按发票被阻止——结算不能超过该发票剩余可收取金额,且上限会统计针对它的所有已过账结算,无论现金还是通知单。

不过,付款的现金总额不必等于它应用的总和:

  • 超额付款——当付款现金超过它所应用的发票时,剩余部分作为在账贷项留在当事方账户,可应用于后续发票。
  • 纯贷项应用——现金为零的付款,只把当事方已有的已过账贷项应用到未结发票。这就是 totalAmount 可以为零的原因。
  • 应用超过现金——当应用超过付款现金时,超额部分消耗当事方可用的在账贷项(其其他同方向已过账付款上的净未应用现金)。只有同方向付款贡献贷项:来自客户的收款留下贷项,给同一客户的付款消耗它。应用超过当事方实际拥有的贷项会报错。

客户收款也可以是。在 "Payment from Customer"(客户付款) 中,在 "Deposit for"(预付款对应) 下选择该客户的未结销售订单或草稿/已启用租赁协议,其未应用现金过账到 Customer Prepayments(客户预付款) 而不是在账贷项。它可以像其他贷项一样应用,但只能应用于为其收取的单据所对应的发票。

带 "Refund deposit for"(退还预付款对应) 的 "Refund to Customer"(退款给客户) 会把余额退回,该选择器也会列出仍持有预付款的已关闭单据。

Deposit for 会缩小到所选客户的未结单据。
GOOD TO KNOW

Carbon 会原谅尾差。当结算后余额低于一分(小于货币可表示的最小单位)时,发票读为完全已付款,而不是差不到一分。

应收/应付工作台

应收和应付工作台把每一侧呈现为账龄树:根节点是往来方,带当前和逾期账龄桶,展开后是其下的未结单据(发票、贷项通知单、借项通知单),以及任何未应用的在账贷项。每一侧还会运行总账对账,比较子账余额与应收或应付控制科目余额,并标出差异。付款和通知单就是移动这些数字的交易。

相关内容