userId 與 accountId。
當使用者授權你的應用程式時,你會將自己的識別碼附加到該授權上。Fluz 會儲存你的識別碼與該使用者的 Fluz 帳戶之間的配對關係,且侷限於你的應用程式範圍內。從此之後,你在產生權杖、發送轉帳,以及對應 webhook 事件時,都可以用你自己的 ID 來引用該使用者。
📘 你會在哪裡看到它 此欄位在 OAuth 授權 URL 中為external_id,在 GraphQL API 與 webhook 負載中為externalReferenceId。它們代表相同的值。
它可以是什麼?
⚠️ 請勿使用 PII 作為 external reference ID 避免使用電子郵件、電話號碼或姓名。這些可能會隨時間改變,導致對應失效,且不必要地在 URL 與權杖中傳送個資。UUID 或你的資料庫主鍵才是正確選擇。
我們在哪裡使用它?
External reference ID 會出現在四個面向:
它也會被嵌入到發給使用者的 OAuth access token 中,因此在更新權杖期間關聯仍會持續存在。
我們如何使用它?
1. 在 OAuth 授權流程中指定它
當你引導終端使用者前往授權 URL(參見 Client facing OAuth grant flow),將你的識別碼以external_id 查詢參數附加上去:
usr_8f3d2a91 記錄在該使用者對你應用程式的授權上。啟動嵌入式元件時也適用相同參數——請參見 Widget Overview。
🚧 Widget 應用程式為必填
所有 widget 應用程式類型(deposit、payouts、payins、virtual card、gift card catalog、bill pay,以及 external payout widgets)在建立使用者工作階段時都必須提供 external reference ID。若遺漏,請求會以 External reference ID is required for <type> applications 被拒絕。對於標準 OAuth 應用程式則為選填,但強烈建議提供。
2. 用它產生使用者 access token
一旦關聯建立,generateUserAccessToken 可接受 externalReferenceId 來取代 userId 與 accountId:
userId/accountId 與 externalReferenceId,但它們必須與該 external reference ID 解析出的使用者相符。若不相符,請求將被拒絕。
3. 用它指定轉帳的目標
當建立轉帳到另一個 Fluz 錢包時(參見 Transfer to Another Fluz Account),目標可以用 external reference ID 來識別,而不必使用 Fluz 的帳戶 ID:destination.accountId 或 destination.externalReferenceId 其中之一——切勿同時提供。目標使用者必須已授權你的應用程式;否則轉帳會被拒絕。
4. 將 webhook 事件對應回你的使用者
Webhook 負載包含externalReferenceId,因此你可以將 Fluz 事件與你的使用者紀錄相關聯,而無需維護 Fluz ID 的對照表:
📘 隱私注意事項
當使用者的授權沒有關聯任何 external reference ID,或事件被標記為私有時,webhook 負載中會省略 externalReferenceId。
驗證規則與錯誤
為現有授權新增 external reference ID
若使用者在你採用 external reference ID 之前已授權你的應用程式,你可以在後續的授權或權杖請求中提供一個,Fluz 會將它回填到現有的授權上——前提是該授權尚未具有 external reference ID。既有的 external reference ID 永遠不會被覆寫。什麼不是 external reference ID
- 它不是 Fluz 的
userId或accountId。那些是 Fluz 核發的 UUID;external reference ID 是由你核發。 - 它不是在提款紀錄或 API 其他地方之已連結資金來源上出現的
external_id或外部帳戶識別碼。那些是指銀行與處理方的紀錄,而非使用者。[TBD:請確認這些是否公開於公開綱要中,並是否應在此交互參照]