Overview
提領允許使用者將資金從其 Fluz 餘額轉至外部帳戶。使用者可自兩種餘額提領:- 現金餘額(Cash Balance) - 使用者存入其 Fluz 帳戶的資金
- 獎勵餘額(Rewards Balance) - 購物累積的現金回饋
Withdraw Cash Balance
Sample Request
你可以使用withdrawCashBalance mutation 發起提領。此 mutation 會將資金自使用者的 Fluz 餘額轉至其指定的外部帳戶。
WithdrawCashBalanceInput 輸入型別。任何在 schema 中以驚嘆號(!)標記的欄位都是必填,且必須包含於請求中。
Input Fields
WithdrawCashBalanceInput
Sample Response
withdrawCashBalance mutation 的回應包含提領紀錄與使用者更新後的餘額。
Response Fields
Withdraw Object
Required Scope
此 mutation 需要將MAKE_WITHDRAWAL scope 授與該存取權杖。getWithdrawFeeEstimate 查詢也需要相同的 scope。
Withdrawal Methods by Account Type
Preview Fees Before Withdrawing
使用getWithdrawFeeEstimate 查詢在提交前為提領報價。傳入你打算使用的相同 amount、method、source 與 isExpedited,回應會告知使用者實際可收到的金額。
費用是自提領金額中扣抵,而非加在金額上:餘額會被扣除完整的
amount,目的地則收到 netAmount。將 FLUZPAY 作為 method 會回傳 ARG-0001。
Push-to-Card Withdrawals (OCT)
BANK_CARD 提領屬於推播至卡的付款,並以**原始入帳交易(OCT)**的卡網路交易型態將資金入帳至卡片。此方式需要 bankCardId,且所連結的金融卡必須支援 OCT。不符合資格的卡無法以其他方式送達,使用者需改選其他提領方式。
以 isExpedited 控制入帳速度:
Card Eligibility
多數 Visa 與 Mastercard 金融卡可接收推播至卡的付款。資格會在提交提領時評估,這是卡片本身的屬性,而非可由你設定。資格無法事先得知,且與入金資格互不相干。目前沒有查詢可回報卡片是否支援 OCT——會在首次對該卡進行提領時才顯示。提領與入金的資格也彼此獨立,因此使用者可成功入金的卡片,不一定能用於提領。請參考 自外部帳戶入金。
BANK_CARD 提領不受 cardType 限制:PREPAID 卡不會被預先排除,會如同其他卡片一樣以資格審核決定接受或拒絕。由於 BANK_CARD 沒有替代的送達路徑,請務必在你的介面中保留 BANK_ACH、PAYPAL 或 VENMO 的可達性,避免因卡片不符合資格而中斷流程。推播至卡失敗會以 HN-0124 或 BC-0004 呈現——請見下方的 錯誤處理。
Error Handling
常見錯誤情境:ARG-* 錯誤會在任何資金移動之前拋出。
Example Error Response
Multiple Withdrawals
在某些情況下,單一提領請求可能會產生多筆提領紀錄。這可能發生在提領金額分配到多個 seat(網路位置)時。回應會包含所有建立的提領紀錄。Best Practices
- 一律使用唯一的冪等鍵(idempotency keys) - 為每次提領請求產生新的 UUID,避免重複交易。
- 提領前先檢查餘額 - 使用
getWallet查詢以確認使用者有足夠資金再發起提領。 - 處理處理中(pending)狀態 - 提領可能需要時間處理。
status欄位會指出提領目前的狀態。 - 保存交易參考 - 儲存
withdrawId與transactionLogId以利對帳與客服支援。
Changelog
v1.3.0
加速提領與費用預覽- 重新引入
WithdrawCashBalanceInput的isExpedited。它控制BANK_CARD提領的入帳速度:true於請求期間立即推送至卡;false或省略則採標準時程結算。這取代了下方 v1.2.0 的說明(當時表示該欄位已移除)。 - 新增
getWithdrawFeeEstimate查詢與GetWithdrawFeeEstimateInput/WithdrawFeeEstimate型別,可在提交前預覽費用、淨額與結算時間。 - 補充說明推播至卡為原始入帳交易(OCT),包含卡片資格,以及標準提領在提交後仍可能失敗並退回來源餘額的情況。
- 更正
withdrawCashBalance所需的 scope 為MAKE_WITHDRAWAL。本頁先前列示的MANAGE_PAYMENT有誤;Withdraw型別上的seat_id亦為選填(UUID),並非 v1.2.0 所述必填。 - 說明
FLUZPAY雖存在於WithdrawMethods列舉中,但不可用作提領方式:withdrawCashBalance會以WDR-0004(無效的提領方式)拒絕,getWithdrawFeeEstimate會以ARG-0001拒絕。
v1.2.0 - 2024-11-20
Schema 微調與欄位清理- 自
WithdrawCashBalanceInput移除isExpedited欄位——不再能透過 API 設定加速 ACH - 將
Withdraw型別上的seat_id由選填改為必填(UUID→UUID!) - 更新
BANK_CARD方式的說明,移除「加速」字樣
v1.1.0 - 2024-10-15
新增 Venmo 支援與獎勵餘額提領- 在
WithdrawMethods列舉中加入VENMO - 在
WithdrawCashBalanceInput中加入venmoAccountId欄位 - 在
WithdrawSource列舉中加入REWARDS_BALANCE,支援提領現金回饋 - 在
Withdraw回應型別中加入seat_id欄位以供多 seat 帳戶追蹤
v1.0.0 - 2024-09-01
初始版本- 引入
withdrawCashBalancemutation,需具備MAKE_WITHDRAWALscope - 新增
WithdrawMethods列舉,包含PAYPAL、BANK_ACH與BANK_CARD方式 - 新增
WithdrawSource列舉,包含CASH_BALANCE來源 - 新增具冪等性的
WithdrawCashBalanceInput輸入型別 - 新增
Withdraw回應型別,含完整提領紀錄 - 新增
WithdrawCashBalanceResponse型別,回傳提領紀錄與更新後餘額 - 與 payout-service 整合以處理提領
- 新增應用程式操作日誌以供稽核追蹤