Skip to main content

📄 正文

授权环节您没有同步动作要做——每一笔授权由 DCS 实时拍板,您的工作是把三个交易事件消费好:授权结果(CARD_TRANSACTION)、清算入账(CARD_TRANSACTION_SETTLEMENT)、欠款告警(CARD_TRANSACTION_DEBT)。本页按一笔交易的生命周期,讲清授权在 DCS 侧的校验链、每个事件到达时的资金语义,以及对账时该以哪个字段为准。生命周期概念见交易生命周期

授权:DCS 侧的校验链

持卡人消费时,DCS 在授权环节实时完成一条校验链,任一环不通过即拒绝:
  1. 主体状态——公司、员工与卡片须处于可交易状态;
  2. 限额规则——校验该卡命中的限额规则(规则配置见设置消费限额);
  3. 可用余额——公司资金池可用余额须足额覆盖授权金额。
校验通过后,DCS 冻结相应金额并占用对应的限额额度。此时资金尚未真正划出,交易在账单中呈现为授权占用,postStatusUNPOSTED。授权与清算之间通常间隔数小时至数日。

三个交易事件一览

交易环节涉及的事件共三个,触发时机如下: 线上消费触发 3DS 时还会推送 AUTHORISATION_3DS_CHALLENGE,属挑战验证环节,见3DS 挑战处理

CARD_TRANSACTION:授权结果事件

授权与 release 的结果统一经 Webhook CARD_TRANSACTION 推送,通过与拒绝合一,由 status 区分(APPROVED 通过 / DECLINED 拒绝)。data 字段如下: 示例(授权通过的一笔消费):

清算:从占用到入账

商户后续发起清算时,DCS 按实际清算金额完成扣款并正式入账,postStatusUNPOSTED 转为 POSTED,交易计入对应账期的账单,并推送 Webhook CARD_TRANSACTION_SETTLEMENT
清算金额可能与授权金额不同——如含小费、汇率差异或商户少扣。对账请以清算事件中的实际金额为准,不要假设它等于授权时冻结的金额。流水与账单查询见资金与对账

冲正、退款与欠款的资金语义

清算并非唯一的后续走向。以下三类场景的资金语义各不相同,请勿混用记账逻辑:
收到 CARD_TRANSACTION_DEBT 表示公司账户已进入欠款态。请及时充值还款——资金池的入金与余额管理见资金与对账

从授权到入账:一图看全

从授权占用到清算入账的资金流转从授权占用到清算入账的资金流转

跟一笔消费走一遍

以上文示例中的那笔 16.45 USD 消费为例:
  1. 授权——持卡人在商户下单,DCS 依次校验主体状态、限额规则与可用余额,全部通过后冻结 16.45 并占用限额额度,推送 CARD_TRANSACTION(status=APPROVEDdirection=DEBIT)。您在账单上看到一笔 UNPOSTED 的授权占用。
  2. 清算——数小时至数日后商户请款,DCS 按实际清算金额扣款并入账,postStatus 转为 POSTED、计入当期账单,推送 CARD_TRANSACTION_SETTLEMENT。您以事件中的实际金额更新自己的账,并用 transactionId 与第 1 步的授权对上。
  3. 分叉——若商户在清算前撤销,则走冲正:冻结释放、限额恢复,不留残余占用;若清算后退货,退款作为方向相反的独立入账到达;若清算把可用余额穿透为负,则收到 CARD_TRANSACTION_DEBT,需按期还款。

消费好这些事件

三个交易事件都是 DCS 主动向您推送的 HTTP POST 回调,共用一套信封结构与验签、重试、幂等规则:
  • webhookId 做幂等去重,重复推送只处理一次;
  • status 判授权结果、以 transactionId 关联同一笔交易的授权与清算;
  • 记账更新以清算事件为准,授权事件只做占用展示。
Webhook 接收端配置、信封结构与验签规则见快速开始

下一步