跳轉到主要內容
使用 sendMoney 從使用者的 Fluz 現金餘額傳送款項。你可以將收款對象指定為電子郵件地址或電話號碼、Fluz 帳戶 ID,或不指定任何人,此時你會取得領取連結,由你自行傳遞。收款人不必是你應用程式的使用者,也不必已經擁有 Fluz 帳戶。 一筆傳送會以兩種結果之一收場。SENT 表示款項已進入收款人的餘額,且無法撤回。PENDING_CLAIM 表示 Fluz 先保留款項,直到收款人在 Fluz 頁面上領取。如果到期前無人領取,或你取消了這筆傳送,款項會退回給寄款方。你如何指定傳送對象,決定會出現哪一種結果。
開始之前
  • 請使用具備 MAKE_PAYOUT_TRANSFER_SEND 權限範圍的 Bearer 使用者存取權杖進行呼叫。不接受使用你的 API 金鑰進行的 Basic Auth。
  • 權杖所屬的使用者必須是該帳戶的擁有者或管理者。
  • Fluz 依帳戶逐一開通傳送款項功能。請聯絡你的 Fluz 客戶經理,為每個要傳送款項的帳戶啟用。
  • 帳戶必須已通過身分驗證:個人帳戶需通過 KYC,企業需通過 KYB。
  • 如果使用者已將你的應用程式限制在特定的消費帳戶,請從其中一個消費帳戶傳送。
與 createTransfer 不同。createTransfer 在你應用程式的帳戶與已授權你應用程式的帳戶之間移轉資金,也能在兩個這類帳戶之間移轉。sendMoney 可以付款給任何能接收付款的 Fluz 帳戶,也能透過電子郵件或電話聯絡到對方。對於新的收款人,它會先保留款項,直到對方領取,並由 Fluz 將領取連結寄給對方。

款項如何送達

Fluz 會比對使用者 Fluz 個人資料中的電子郵件地址與電話號碼。如果任一項符合多位使用者,這筆傳送會被拒絕,你需要改用其他識別資訊。 你可以為同一個人同時傳入 recipientEmail 與 recipientPhone。如果兩者符合同一位使用者,以電話為準:只有在該使用者已驗證電話時,款項才會立即進入其帳戶。如果兩者符合兩位不同的使用者,Fluz 不會擇一處理,而是保留款項。如果只有其中一項符合某位使用者,則由該聯絡方式單獨決定:只要使用者已驗證它,款項就會立即進入其帳戶,即使另一個聯絡方式不符合任何人。 recipientId 不能與電子郵件或電話並用,linkOnly 也不能與任何收款人並用。你不能傳送到寄款方自己的帳戶。 如果一筆傳送本應立即進入帳戶卻無法完成,例如收款人的帳戶無法接收付款,或金額超過限額,這筆傳送會以錯誤失敗,Fluz 不會改為保留款項。

傳送款項

同一個 mutation 涵蓋所有類型的傳送,只有輸入內容不同。
Mutation

傳送到電子郵件地址或電話號碼

claimLink 是指向領取頁面的短網址。請原樣使用回傳的連結,不要自行組合或解析。 若要傳送到電話號碼,請改為傳入 E.164 格式的 recipientPhone,例如 +14155551234,而不是 recipientEmail。

傳送到 Fluz 帳戶

傳入收款人的帳戶 ID。款項會立即進入該帳戶,否則這筆傳送會被拒絕。
Variables

以領取連結傳送

設定 linkOnly,並自行傳遞 claimLink,例如放在你自己的應用程式或訊息中。
Variables
請像對待密碼一樣保護領取連結。任何取得僅連結傳送之 claimLink 的人,只要通過身分驗證,就能領取這筆款項。它的 shareRequestId 同樣敏感,因為憑它就能進入領取頁面。請勿將兩者寫入日誌或分析工具。

輸入欄位

SendMoneyInput 請使用 recipientEmail、recipientPhone(可兩者並用)、recipientId 或 linkOnly 其中一種方式指定傳送對象。 在保留中的傳送上,備註會顯示在領取頁面,任何開啟連結的人都能看到,即使傳送已被領取或退回也一樣。請勿在備註中放入個人資料。

回應欄位

SendMoneyResponse

收款人需要做什麼

領取是在 Fluz 頁面上進行,而不是透過 API。
1

開啟連結

Fluz 會將領取連結寄到你傳送時指定的電子郵件地址或電話號碼。若是僅連結傳送,則由你傳遞連結。
2

登入或建立 Fluz 帳戶

款項會進入他們領取時所登入的帳戶,不論是個人帳戶或企業帳戶。
3

驗證身分

個人帳戶必須通過 KYC,企業必須通過 KYB,且帳戶必須能夠接收付款。
4

驗證聯絡方式

若是傳送到電話號碼,對方 Fluz 帳戶上的電話必須與之相符且已驗證。若是傳送到電子郵件地址,Fluz 會將 6 位數驗證碼寄到該地址。如果你兩者都傳入,已驗證且相符的電話就足夠;若對方帳戶上的電話相符但尚未驗證,需先完成驗證,否則對方需要輸入電子郵件驗證碼。僅連結傳送只需要連結。
領取頁面會在對方登入之前,就向任何開啟連結的人顯示金額、寄款方姓名與備註。 有人領取時,Fluz 會再次檢查寄款方的帳戶。如果該帳戶已不再通過 KYC 或 KYB,或 Fluz 已限制該帳戶,領取會被拒絕,款項會持續保留,直到你取消這筆傳送或它到期。關閉某個帳戶的傳送款項功能,並不會阻止該帳戶保留中的傳送被領取,因此請取消任何你想停止的傳送。

追蹤保留中的傳送

若要查看保留中的傳送目前的進度,請再次呼叫 sendMoney,並使用相同的 idempotencyKey 與相同的輸入。回應會重複原本的結果與 ID,並附上目前的 claimStatus。claimLink 只在 claimStatus 為 PENDING 時才會出現。此呼叫不會移動任何款項。 重複呼叫會執行與新傳送相同的權限範圍、角色與消費帳戶檢查,因此如果使用者已不再是擁有者或管理者,或你的應用程式已無法使用該消費帳戶,呼叫就會被拒絕。

取消保留中的傳送

cancelMoneySend 會在 claimStatus 為 PENDING 時取消該筆傳送,並將款項退回其來源的現金餘額。已是 SENT 的傳送無法取消。
Mutation
取消同樣需要相同的權限範圍,且權杖所屬的使用者必須是寄款帳戶的擁有者或管理者。你可以取消該帳戶下任何保留中的傳送,包括由其他使用者或應用程式發出的傳送。被拒絕的取消會以錯誤回傳,因此 cancelled 一律為 true。同一使用者在 24 小時內對同一筆傳送以相同的 idempotencyKey 重複一次已成功的取消,會回傳相同的回應。被拒絕的取消不會被儲存,因此重複請求會重新執行。

到期

保留中的傳送可領取至傳送日起算 daysUntilExpiration 天後、當天美東時間結束為止。回應不包含該日期,因此請在傳送時自行記錄。 期限過後,領取會被拒絕,Fluz 會在隔天早上美東時間 9:00 的每日排程作業中,將款項退回寄款方的現金餘額。款項退回之前,claimStatus 仍顯示為 PENDING,你仍可取消這筆傳送。

冪等性

sendMoney 與 cancelMoneySend 都接受 idempotencyKey,這是你自行產生的 UUID。大小寫不影響結果。
  • 以相同的金鑰與相同的輸入重複呼叫,會回傳原本的傳送,不會移動款項,並顯示該傳送目前的進度。
  • 金鑰會一直與其傳送綁定。Fluz 在 24 小時內從快取回應重複請求,之後則依傳送本身回應,因此同一個金鑰絕不會傳送兩次。每筆新傳送請使用新的金鑰。
  • 如果重複呼叫變更了金額、現金餘額或收款人,或對曾用於指定收款人的金鑰設定 linkOnly,會以 ARG-0001 拒絕。切勿重複使用其他操作的金鑰:用於 createTransfer 的金鑰會建立一筆新的傳送,用於外部撥款的金鑰只有在該筆撥款的金鑰為小寫時才會被拒絕。
  • 不會比對 memo 與 daysUntilExpiration。只變更這兩項的重複呼叫,會原樣回傳原本的傳送。
  • sendMoney 的金鑰屬於帳戶,而不是你的應用程式。帳戶上的其他應用程式或使用者以相同的金鑰與輸入呼叫,會回傳原本的傳送。
  • 如果傳送在任何款項移動之前就失敗,例如餘額不足,該金鑰仍可使用。排除原因後,請以相同的金鑰重試。
G-0409 表示 Fluz 仍在處理該金鑰,或它的回應已遺失。這筆傳送可能已經完成,因此請以相同的金鑰與相同的輸入重試,直到取得結果。處理中的請求最多會佔用其金鑰 10 分鐘。

限額

傳送會計入帳戶的轉帳限額:每日、每週、每月與每年的累計總額,以及每筆傳送的最低與最高金額。保留中的傳送會從傳送時起計入,直到款項退回為止。收款人的接收限額在款項進入帳戶時適用:立即進入帳戶的傳送在傳送時適用,保留中的傳送則在領取時適用。如需了解你的帳戶限額,請洽詢你的 Fluz 客戶經理。

錯誤

錯誤會出現在 GraphQL 的 errors 陣列中,且 sendMoney 或 cancelMoneySend 會設為 null。請依 extensions.code 決定處理方式。ARG- 與 G-0003 的訊息會指出具體原因,其他訊息可能會變動。 立即進入帳戶的傳送還會經過 Fluz 的詐欺審查,審查可能以其他代碼拒絕該筆傳送。對於傳送到 recipientEmail 或 recipientPhone 的傳送,FLUZ- 限額代碼也可能代表收款人的接收限額。 缺少、無效或已撤銷的權杖會在操作執行前遭到拒絕,並回傳 HTTP 401;已過期的權杖則回傳 HTTP 498。這兩種回應都沒有 GraphQL errors 陣列。 針對 cancelMoneySend:

參考資料