Skip to content

渣打 SCB Push 模式 Direct 模式

本頁說明

講什麼:渣打銀行的 FPS 出金通道、Book Transfer(加密資產轉賬)、Webhook 事件機制 適合誰:需要了解渣打對接細節的產品經理 前置閱讀銀行能力矩陣預計閱讀:2 分鐘 負責人:出金產品經理

核心要點:渣打的核心能力是 FPS 出金 API + Webhook 事件推送,是出金半自動化的代表性通道——無需運營登錄網銀操作。


能力總覽

能力支持情況協議/通道核心服務
入金流水
出金 FPSREST API + Webhookscb_service (Go)
Book TransferREST APIscb_service (Go)
子賬戶子賬戶入金匹配
eDDA/eDDI
銀證 BST

渣打是出金專用銀行——不採集入金流水,主要提供 FPS 出金和 Book Transfer 兩個通道。


出金:FPS

出金方法

維度說明
方法碼TRANSFER_METHOD_SC = 'sc'
分類電子銀行方法(allEBankMethod
中文名渣打網銀出金

數據流

Webhook 事件

渣打通過 Webhook 異步回調通知交易狀態變更,不需要輪詢:

Webhook 類型含義觸發場景
payment_status支付狀態變更出金指令處理結果
credit_debit_advice借記/貸記通知資金到賬/扣款確認

Webhook 處理狀態:

狀態碼含義
0新建(待處理)
1處理中
2已處理

FPS 出金流水查詢

系統可通過 API 查詢流水記錄:

  • 支持分頁(cursor-based,默認每頁 20 條)
  • 返回字段:TransactionID、BankStatementID、ValueTime、ValueDate、金額、幣種
  • 包含 Payer/Payee 信息:收款卡號、付款行名、SWIFT 代碼

Book Transfer(加密資產轉賬)

Book Transfer 是渣打的內部賬戶間轉賬能力,用於特定場景下的資金調撥:

維度說明
用途子賬戶間資金轉移
請求參數RequestID、Amount、Debtor(付款方)、Creditor(收款方)
金額校驗必須 ≥ 0
ID 生成Snowflake 算法生成 ReferenceID
隊列事件QueueEventTransferCreate

子賬戶入金

雖然渣打沒有獨立的入金流水採集服務,但支持子賬戶入金匹配。用戶通過渣打子賬戶轉入資金,系統通過 SubAccountSDK 驗證子賬戶歸屬後自動匹配。


渠道接口詳情

渠道接口概覽

維度說明
協議類型HTTPS REST + JSON
認證方式TLS 雙向認證 + JWT Token(30 秒有效期)
加密方式AES256Signed(響應加密)
簽名算法RS256(RSA)
核心服務scb_service(Go)

HTTP Headers(所有請求必需)

每個發往渣打 API 的請求都必須攜帶以下 Headers:

Header說明
Content-TypeApplication/JSON請求體格式
ResponseEncryptionTypeAES256Signed響應加密方式
Routing-IdentifierZZ路由標識
GroupIdGHK54005集團 ID
AuthorizationBearer [JWT_TOKEN]JWT 令牌(30 秒有效期)

注意:messageSendercountryCode 是請求體 JSON 中的字段(見下方 PaymentInitRequest),不是 HTTP Header。

證書配置

渣打使用 TLS 雙向認證 + RS256 簽名的 JWT Token,涉及多組密鑰:

證書路徑用途
客戶端證書conf/keys/client.cerTLS 雙向認證
客戶端私鑰conf/keys/clientcertsslprivatekey.pem簽名 / 解密
客戶端公鑰conf/keys/clientpubkey.pem銀行驗證我方身份
JWT 簽名密鑰conf/keys/scbapibankingprivatekey.pemJWT RS256 簽名

JWT Token 參數:

參數
Issuer"SCB"
Audience"SCB-APIBanking"
有效期30 秒

JWT 有效期極短

JWT Token 僅 30 秒有效,系統每次請求前需重新生成。如果時鐘偏差超過數秒可能導致認證失敗,需確保伺服器 NTP 同步。


接口 1:Payment Initialization(出金發起)

POST /openapi/payments/v2/initiate

請求 PaymentInitRequest:

字段類型必填描述
header.messageSenderstring(≤246)發送方
header.messageIdstring(≤35)消息 ID,唯一標識
header.countryCodestring(2)國家代碼。取值 "HK"
header.timestampint64Unix 時間戳
instruction.paymentTimestampint64支付時間戳
instruction.requiredExecutionDatestring(≤10)執行日期。格式 "YYYY-MM-DD"
instruction.amount.currencyCodestring(3)幣種。取值 "HKD" / "USD"
instruction.amount.amountstring金額。如 "1000.00"
instruction.referenceIDstring(≤16)參考號
instruction.purposestring(≤10)用途
instruction.paymentTypestring(≤4)支付類型
instruction.chargerBearerstring(≤4)手續費承擔方
instruction.debtor.namestring(≤140)付款方名稱
instruction.debtorAccount.idstring(≤34)付款方賬號
instruction.debtorAccount.identifierTypestring賬號類型。取值 "BBAN" / "IBAN" / "Other"
instruction.creditor.namestring(≤140)收款方名稱
instruction.creditorAccount.idstring(≤34)收款方賬號
instruction.creditorAgent.financialInstitution.BICstring(≤11)收款行 BIC。如 "SCBLHKHHXXX"
instruction.remittanceInfo.multiUnstructuredarray[string]匯款附言信息

響應 PaymentInitResponse:

字段類型描述
paymentIdentifierstring渣打支付標識
internalTrackingIdstring(≤35)內部追蹤 ID
clientReferenceIdstring(≤35)客戶參考 ID
referenceIdstring(≤35)參考號
statusStringstring(≤10)狀態
timestampISO-8601(≤24)時間戳

接口 2:Payment Status Query(出金狀態查詢)

POST /openapi/payments/v2/status

請求:

json
{
  "clientReferenceIds": ["ref1", "ref2", "..."]
}

支持批量查詢多筆出金狀態。

響應(每條記錄):

字段類型描述
statusStringstring狀態描述
statusCodestringISO 20022 狀態碼
reasonCodestring原因碼
valueDateYYYY-MM-DD值日期
debitDateYYYY-MM-DD扣款日期
debitAmountstring扣款金額

調度規則:系統每 30 秒輪詢一次未完成的出金狀態。


接口 3:Webhook Credit/Debit Advice(入金通知)

POST /credit-debit-advice

渣打通過 Webhook 主動推送貸方/借方通知,Payload 完整字段如下:

字段類型描述
groupIdstring組 ID
accountIdentifier.accountIdstring賬號
accountIdentifier.currencyCode.isoCodestring幣種
eventDateYYYY-MM-DD事件日期
adviceTypestring"CRDT"=貸方(入金)/ "DBIT"=借方(扣款)
valueDateYYYY-MM-DD值日期
transactionAmount.currencyCodestring交易幣種
transactionAmount.amountdecimal交易金額
transactionFreeTextarray[string]交易說明(自由文本)
payerDetails.namestring付款人姓名
payerDetails.account.idstring付款人賬號
timestampISO-8601時間戳

配置的收款賬戶

幣種賬號BIC用途
HKD44700993333SCBLHKHHXXX證券
HKD91701015121SCBLHKHHXXX加密 / Hash Key
HKD91701015121SCBLHKHHXXXPantherTrade
USD44700993333SCBLHKHHXXX證券
USD91701015121SCBLHKHHXXX加密 / Hash Key
USD91701015121SCBLHKHHXXXPantherTrade

moomoo 側適配

Webhook → BankFlow 映射:收到渣打 Webhook 後,系統將 Webhook Payload 轉換為內部 BankFlow 記錄:

Webhook 字段BankFlow 字段說明
transactionAmount.amountamount金額
transactionAmount.currencyCodecurrency幣種
payerDetails.namepayer_name付款人姓名
payerDetails.account.idpayer_account付款人賬號
adviceTypedirectionCRDT→入金, DBIT→出金
eventDatetransaction_date交易日期

狀態碼映射(ISO 20022 → 內部狀態)

ISO 20022 狀態碼含義內部狀態
ACCCAccepted Settlement Completed成功
RJCTRejected失敗
CANCCancelled已取消
ACSPAccepted Settlement in Process處理中
ACCPAccepted Customer Profile已接受

需求變更指引

變更需求改動位置說明
新增 Webhook 事件類型scb_service → webhook handler添加新事件處理邏輯
修改 FPS 出金參數scb_service → 出金請求構建調整 API 請求字段
Book Transfer 新增校驗scb_servicebook_transfer.go修改金額/賬戶校驗規則
修改子賬戶匹配規則SubAccountSDK 配置調整子賬戶歸屬驗證
修改出金審批模板Task.php$stepTemplates調整渣打出金審批流程

常見客訴 Top 3

#用戶反饋原因客服話術
1"FPS 出金沒到銀行卡"Webhook 推送延遲或出金仍在處理中"FPS 出金通常幾分鐘內到賬,如超過 30 分鐘請聯繫客服"
2"FPS 出金被退回"收款信息有誤"轉賬已被銀行退回,請核對收款銀行卡信息後重新發起"
3"出金狀態一直顯示處理中"渣打 Webhook 未收到"您的出金正在處理中,我們正在確認銀行狀態,請稍候"

監控與告警

告警項觸發條件嚴重度處理步驟
Webhook 接收失敗渣打推送通知未收到🔴 高檢查 Webhook endpoint 可用性,主動調 status 接口查詢
JWT Token 過期認證失敗(30 秒有效期)🟡 中檢查伺服器 NTP 時鐘同步,確保偏差 < 5 秒
FPS 支付長時間 PENDING出金超過 30 分鐘未到終態🟡 中主動調用 Payment Status 接口查詢,確認銀行側狀態

讀完之後

我想...去看
看渣打在各銀行中的位置銀行能力矩陣
了解渣打出金的完整審批流程出金生命週期
對比另一家 FPS 出金銀行廣發 CGB
查出金通道的執行細節通道執行手冊
這個頁面有幫助嗎?

内部业务文档 · 仅限 moomoo 团队使用