Skip to main content
消費帳戶一律建立在呼叫者的帳戶上——無法建立屬於他人帳戶的帳戶。你可以做的是先建立消費帳戶,然後將授權使用者紀錄為其擁有者,讓該帳戶有一位負責人。 createVirtualCard 不同,createUserCashBalance不會接受 authUserId。擁有權是另一個獨立呼叫:使用 assignObjectOwner 並帶上 objectType: SPEND_ACCOUNTS
擁有權是中繼資料,不是存取權。指派擁有者會紀錄誰對某個消費帳戶負責。本身並不會讓那個人獲得從該帳戶消費的能力。實際的有效存取權仍取決於該使用者在帳戶層級的角色(UACRoleType)與對該消費帳戶所授與的任何項目層級存取權兩者取其高。指派擁有者同時請確保該使用者的角色能提供你實際想要的存取權。

先決條件

1

授權使用者已存在且為 ACTIVE

使用 addAuthorizedUser 新增,並確認回傳的 statusACTIVEPENDING 的指派無法作為擁有者——使用者必須先接受邀請。
2

你的權杖同時具備兩個 scope

createUserCashBalance 需要 MANAGE_PAYMENTassignObjectOwner 需要 MANAGE_SUBUSERS。單一 Bearer 權杖必須同時具備兩者,才能完整執行此流程。
3

你已取得該授權使用者的 userId

assignObjectOwneruserId 為鍵,而不是 authUserId。請見下方解析 userId

步驟 1 — 建立消費帳戶

如同一般流程建立消費帳戶。它會在呼叫者的帳戶下建立,且未附帶擁有者。
請保存回傳的 userCashBalanceId。此值會在步驟 3 作為 objectId 使用。
為帳戶設定能識別擁有者的暱稱。擁有權中繼資料不一定會在每個清單檢視中顯示,因此像是 "Ada — Field Ops" 這樣的暱稱,可讓帳戶在不需額外查詢的情況下,於 getUserCashBalances 中更容易辨識。

解析 userId

assignObjectOwner 接受授權使用者的**userId**——即底層的使用者紀錄。這與 addAuthorizedUserauthorizedUsers 回傳的 authUserId 不同,後者識別的是 UAC 的角色指派。 AuthorizedUser 型別目前尚未對外提供 userId。目前有紀錄的方法如下:
請勿在需要 userId 的地方傳入 authUserId。兩者皆為 UUID,此 mutation 不會將此替換視為型別錯誤——你將得到失敗或誤導向的擁有權指派結果。

步驟 2 — 將授權使用者指派為擁有者

受限存取

此 mutation 需要具備 MANAGE_SUBUSERS scope 的 Bearer 權杖。

參數

assignObjectOwner 只會為尚未有擁有者的物件指派擁有者。若該消費帳戶已經有擁有者,呼叫不會覆寫——請改用 transferObjectOwner

範例回應

回應欄位


重新指派擁有權

擁有權可透過 transferObjectOwner 移轉,該呼叫使用先前指派所產生的 objectOwnerId,而非消費帳戶 ID。
新擁有者必須是同一帳戶內的使用者。當某位授權使用者離開團隊且其消費帳戶需要移交給他人時,請使用此呼叫——移除授權使用者並不會重新指派其所擁有的物件。

完整流程

新增一位授權使用者,為其建立消費帳戶,並將其紀錄為該帳戶的擁有者。 步驟 1 — 新增授權使用者。
僅在 statusACTIVE 時繼續。 步驟 2 — 建立消費帳戶。
步驟 3 — 將授權使用者指派為擁有者。
步驟 4 — 為其加值。 消費帳戶起始餘額為零。可使用 depositCashBalance 存入資金,或使用 transferInternalBalance 從另一個消費帳戶轉入,目標為新的 userCashBalanceId

TypeScript


錯誤代碼


授權使用者概覽

角色、狀態,以及授權使用者的完整生命週期。

為授權使用者建立虛擬卡

使用 authUserId 代表授權使用者發卡。

消費帳戶概覽

建立、讀取、編輯與關閉消費帳戶。

移除授權使用者

撤銷存取時,已擁有之物件會發生什麼事。