createVirtualCard, createUserCashBalance no recibe un authUserId. La titularidad es una llamada separada y posterior: assignObjectOwner con objectType: SPEND_ACCOUNTS.
La titularidad es metadato, no acceso.Asignar un propietario registra quién es responsable de una cuenta de gasto. Por sí sola, no otorga a esa persona la capacidad de gastar de ella. El acceso efectivo sigue siendo el mayor entre el rol de cuenta del usuario (
UACRoleType) y cualquier acceso a nivel de ítem concedido en la propia cuenta de gasto.Asigna al propietario y asegúrate de que el rol del usuario le brinde el acceso que realmente pretendes.Requisitos previos
1
El usuario autorizado existe y está ACTIVE
Agrégalo con
addAuthorizedUser y confirma que el status devuelto sea ACTIVE. Una asignación PENDING no puede usarse como propietario — el usuario debe aceptar la invitación primero.2
Tu token incluye ambos alcances (scopes)
createUserCashBalance requiere MANAGE_PAYMENT. assignObjectOwner requiere MANAGE_SUBUSERS. Un único token Bearer necesita ambos para ejecutar este flujo de principio a fin.3
Tienes el userId del usuario autorizado
assignObjectOwner se basa en userId, no en authUserId. Consulta Cómo resolver el userId abajo.Paso 1 — Crea la cuenta de gasto
Crea la cuenta de gasto exactamente como lo harías normalmente. Se crea en la cuenta del solicitante sin propietario asignado.userCashBalanceId devuelto. Ese valor es el objectId en el Paso 3.
Dale a la cuenta un apodo que identifique al propietario. Los metadatos de titularidad no se muestran en todas las vistas de lista, por lo que un apodo como
"Ada — Field Ops" mantiene la cuenta legible en getUserCashBalances sin una búsqueda adicional.Cómo resolver el userId
assignObjectOwner recibe el userId del usuario autorizado — el registro subyacente del usuario. Este es un valor diferente del authUserId devuelto por addAuthorizedUser y authorizedUsers, que identifica la asignación de rol de UAC.
El tipo AuthorizedUser actualmente no expone userId. Hoy, las formas documentadas de obtenerlo son:
Paso 2 — Asigna al usuario autorizado como propietario
Acceso restringido
Esta mutación requiere un token Bearer con el alcance
MANAGE_SUBUSERS.Parámetros
assignObjectOwner solo asigna un propietario a un objeto que aún no tiene uno. Si la cuenta de gasto ya tiene un propietario, la llamada no lo sobrescribirá — usa transferObjectOwner en su lugar.Respuesta de ejemplo
Campos de respuesta
Reasignación de titularidad
La titularidad se traslada contransferObjectOwner, que recibe el objectOwnerId de la asignación original en lugar del ID de la cuenta de gasto.
Flujo completo
Agrega un usuario autorizado, crea una cuenta de gasto para él y regístralo como su propietario. Paso 1 — Agrega al usuario autorizado.status sea ACTIVE.
Paso 2 — Crea la cuenta de gasto.
depositCashBalance o mueve fondos desde otra cuenta de gasto con transferInternalBalance, apuntando al nuevo userCashBalanceId.
TypeScript
Códigos de error
Descripción general de usuario autorizado
Roles, estados y el ciclo de vida completo del usuario autorizado.
Crear tarjeta virtual para usuario autorizado
Emite una tarjeta en nombre de un usuario autorizado con
authUserId.Descripción general de cuentas de gasto
Crear, leer, editar y cerrar cuentas de gasto.
Eliminar usuario autorizado
Qué sucede con los objetos en titularidad cuando se revoca el acceso.