createVirtualCard 不同,createUserCashBalance 並不會接受 authUserId。擁有權是另一個獨立呼叫:使用 assignObjectOwner 並帶上 objectType: SPEND_ACCOUNTS。
擁有權是中繼資料,不是存取權。指派擁有者會紀錄誰對某個消費帳戶負責。本身並不會讓那個人獲得從該帳戶消費的能力。實際的有效存取權仍取決於該使用者在帳戶層級的角色(
UACRoleType)與對該消費帳戶所授與的任何項目層級存取權兩者取其高。指派擁有者同時請確保該使用者的角色能提供你實際想要的存取權。先決條件
1
授權使用者已存在且為 ACTIVE
使用
addAuthorizedUser 新增,並確認回傳的 status 為 ACTIVE。PENDING 的指派無法作為擁有者——使用者必須先接受邀請。2
你的權杖同時具備兩個 scope
createUserCashBalance 需要 MANAGE_PAYMENT。assignObjectOwner 需要 MANAGE_SUBUSERS。單一 Bearer 權杖必須同時具備兩者,才能完整執行此流程。3
你已取得該授權使用者的 userId
assignObjectOwner 以 userId 為鍵,而不是 authUserId。請見下方解析 userId。步驟 1 — 建立消費帳戶
如同一般流程建立消費帳戶。它會在呼叫者的帳戶下建立,且未附帶擁有者。userCashBalanceId。此值會在步驟 3 作為 objectId 使用。
為帳戶設定能識別擁有者的暱稱。擁有權中繼資料不一定會在每個清單檢視中顯示,因此像是
"Ada — Field Ops" 這樣的暱稱,可讓帳戶在不需額外查詢的情況下,於 getUserCashBalances 中更容易辨識。解析 userId
assignObjectOwner 接受授權使用者的**userId**——即底層的使用者紀錄。這與 addAuthorizedUser 與 authorizedUsers 回傳的 authUserId 不同,後者識別的是 UAC 的角色指派。
AuthorizedUser 型別目前尚未對外提供 userId。目前有紀錄的方法如下:
步驟 2 — 將授權使用者指派為擁有者
受限存取
此 mutation 需要具備
MANAGE_SUBUSERS scope 的 Bearer 權杖。參數
assignObjectOwner 只會為尚未有擁有者的物件指派擁有者。若該消費帳戶已經有擁有者,呼叫不會覆寫——請改用 transferObjectOwner。範例回應
回應欄位
重新指派擁有權
擁有權可透過transferObjectOwner 移轉,該呼叫使用先前指派所產生的 objectOwnerId,而非消費帳戶 ID。
完整流程
新增一位授權使用者,為其建立消費帳戶,並將其紀錄為該帳戶的擁有者。 步驟 1 — 新增授權使用者。status 為 ACTIVE 時繼續。
步驟 2 — 建立消費帳戶。
depositCashBalance 存入資金,或使用 transferInternalBalance 從另一個消費帳戶轉入,目標為新的 userCashBalanceId。
TypeScript
錯誤代碼
授權使用者概覽
角色、狀態,以及授權使用者的完整生命週期。
為授權使用者建立虛擬卡
使用
authUserId 代表授權使用者發卡。消費帳戶概覽
建立、讀取、編輯與關閉消費帳戶。
移除授權使用者
撤銷存取時,已擁有之物件會發生什麼事。