Skip to content
UDX
Esc
↑↓navigate↵open⌘Jpreview

Grant Account Access

Grants one of the member’s users access to this account. UDX records the grant immediately; it starts pending while exchange access is set up, so poll the account’s grants until the new grant is active.

POST/portfolio/accounts/{account_id}/grants
Authorization
UDX-Access-KeyAPI key · headerrequired
Opaque API key ID.
UDX-Access-TimestampAPI key · headerrequired
Unix time in milliseconds, within 30 seconds of server time.
UDX-Access-SignatureAPI key · headerrequired
Standard-base64 RSA-PSS/SHA-256 signature with a 32-byte salt. Sign `timestamp + METHOD + path`; for requests with a body, append `hex(SHA256(body))`; append `UDX-Idempotency-Key` when it is present.
or
AuthorizationBearer token (JWT) · headerrequired
Bearer token for an active signed-in UDX user.
Path parameters
account_idEntityIdrequired
The public identifier of the account whose grants are managed.
Header parameters
UDX-Versionstring
Dated API version (YYYY-MM-DD). Omit to use the oldest supported version. An unknown version returns `400`.
max length 10
UDX-Idempotency-Keystring
Optional client-generated key that makes a mutation safe to retry. Reuse it only for a byte-identical retry. When present, it is included in the request signature; omitting it disables UDX idempotency for that request.
min length 1 · max length 255
Request body
requiredapplication/json
user_idobjectrequired
The public identifier of the member's user to grant access to.
Show properties
object
Responses
202The grant was created. Reusing the creation idempotency key replays this response instead of creating another grant.
grantGrantrequired
A user's authorization to reach one of the member's accounts. The account is the one addressed in the request path.
Show properties
idobjectrequired
The grant's public identifier.
Show properties
object
user_idobjectrequired
The user this grant authorizes.
Show properties
object
statusstringrequired
Readiness of the granted access: pending (exchange setup is still running), active (the grant is fully usable), or failed (setup failed and UDX is retrying it).
Allowed:pendingactivefailed
created_atstring<date-time>required
UDX timestamps use RFC 3339; responses use UTC with exactly six fractional digits. When access was granted.
max length 40
400The request doesn't conform to this spec.
typestring<uri-reference>
A stable URI identifying the error's general category. Usually absent (equivalent to "about:blank" per the RFC); documented rate controls use closed URN values so callers can distinguish same-status retry causes without parsing localized prose.
max length 2048
titlestringrequired
A localized, human-readable summary of the error category. Stable for a given status code and resolved language — clients must not use it as a machine-readable discriminator.
max length 40
statusintegerrequired
The HTTP status code, repeated from the response itself.
detailstring
A localized, human-readable explanation specific to this occurrence. Clients must not parse it for machine-readable information.
max length 500
instancestring<uri-reference>
An identifier for this specific occurrence, so it can be correlated with server-side logs if you need to report it.
max length 100
401No valid credential was provided.
typestring<uri-reference>
A stable URI identifying the error's general category. Usually absent (equivalent to "about:blank" per the RFC); documented rate controls use closed URN values so callers can distinguish same-status retry causes without parsing localized prose.
max length 2048
titlestringrequired
A localized, human-readable summary of the error category. Stable for a given status code and resolved language — clients must not use it as a machine-readable discriminator.
max length 40
statusintegerrequired
The HTTP status code, repeated from the response itself.
detailstring
A localized, human-readable explanation specific to this occurrence. Clients must not parse it for machine-readable information.
max length 500
instancestring<uri-reference>
An identifier for this specific occurrence, so it can be correlated with server-side logs if you need to report it.
max length 100
403The credential lacks the `grants:manage` scope or is restricted to one account.
typestring<uri-reference>
A stable URI identifying the error's general category. Usually absent (equivalent to "about:blank" per the RFC); documented rate controls use closed URN values so callers can distinguish same-status retry causes without parsing localized prose.
max length 2048
titlestringrequired
A localized, human-readable summary of the error category. Stable for a given status code and resolved language — clients must not use it as a machine-readable discriminator.
max length 40
statusintegerrequired
The HTTP status code, repeated from the response itself.
detailstring
A localized, human-readable explanation specific to this occurrence. Clients must not parse it for machine-readable information.
max length 500
instancestring<uri-reference>
An identifier for this specific occurrence, so it can be correlated with server-side logs if you need to report it.
max length 100
404The account doesn't exist or the caller holds no grant on it. The two cases are deliberately indistinguishable.
typestring<uri-reference>
A stable URI identifying the error's general category. Usually absent (equivalent to "about:blank" per the RFC); documented rate controls use closed URN values so callers can distinguish same-status retry causes without parsing localized prose.
max length 2048
titlestringrequired
A localized, human-readable summary of the error category. Stable for a given status code and resolved language — clients must not use it as a machine-readable discriminator.
max length 40
statusintegerrequired
The HTTP status code, repeated from the response itself.
detailstring
A localized, human-readable explanation specific to this occurrence. Clients must not parse it for machine-readable information.
max length 500
instancestring<uri-reference>
An identifier for this specific occurrence, so it can be correlated with server-side logs if you need to report it.
max length 100
409The user already holds a grant on this account, or a request with this idempotency key is still in progress.
typestring<uri-reference>
A stable URI identifying the error's general category. Usually absent (equivalent to "about:blank" per the RFC); documented rate controls use closed URN values so callers can distinguish same-status retry causes without parsing localized prose.
max length 2048
titlestringrequired
A localized, human-readable summary of the error category. Stable for a given status code and resolved language — clients must not use it as a machine-readable discriminator.
max length 40
statusintegerrequired
The HTTP status code, repeated from the response itself.
detailstring
A localized, human-readable explanation specific to this occurrence. Clients must not parse it for machine-readable information.
max length 500
instancestring<uri-reference>
An identifier for this specific occurrence, so it can be correlated with server-side logs if you need to report it.
max length 100
422This key belongs to a different request.
typestring<uri-reference>
A stable URI identifying the error's general category. Usually absent (equivalent to "about:blank" per the RFC); documented rate controls use closed URN values so callers can distinguish same-status retry causes without parsing localized prose.
max length 2048
titlestringrequired
A localized, human-readable summary of the error category. Stable for a given status code and resolved language — clients must not use it as a machine-readable discriminator.
max length 40
statusintegerrequired
The HTTP status code, repeated from the response itself.
detailstring
A localized, human-readable explanation specific to this occurrence. Clients must not parse it for machine-readable information.
max length 500
instancestring<uri-reference>
An identifier for this specific occurrence, so it can be correlated with server-side logs if you need to report it.
max length 100
429The Member's request rate is exhausted. Wait for `Retry-After`.
typestring<uri-reference>
A stable URI identifying the error's general category. Usually absent (equivalent to "about:blank" per the RFC); documented rate controls use closed URN values so callers can distinguish same-status retry causes without parsing localized prose.
max length 2048
titlestringrequired
A localized, human-readable summary of the error category. Stable for a given status code and resolved language — clients must not use it as a machine-readable discriminator.
max length 40
statusintegerrequired
The HTTP status code, repeated from the response itself.
detailstring
A localized, human-readable explanation specific to this occurrence. Clients must not parse it for machine-readable information.
max length 500
instancestring<uri-reference>
An identifier for this specific occurrence, so it can be correlated with server-side logs if you need to report it.
max length 100
500Something went wrong on UDX's side.
typestring<uri-reference>
A stable URI identifying the error's general category. Usually absent (equivalent to "about:blank" per the RFC); documented rate controls use closed URN values so callers can distinguish same-status retry causes without parsing localized prose.
max length 2048
titlestringrequired
A localized, human-readable summary of the error category. Stable for a given status code and resolved language — clients must not use it as a machine-readable discriminator.
max length 40
statusintegerrequired
The HTTP status code, repeated from the response itself.
detailstring
A localized, human-readable explanation specific to this occurrence. Clients must not parse it for machine-readable information.
max length 500
instancestring<uri-reference>
An identifier for this specific occurrence, so it can be correlated with server-side logs if you need to report it.
max length 100
503Request admission is unavailable. Retry later.
typestring<uri-reference>
A stable URI identifying the error's general category. Usually absent (equivalent to "about:blank" per the RFC); documented rate controls use closed URN values so callers can distinguish same-status retry causes without parsing localized prose.
max length 2048
titlestringrequired
A localized, human-readable summary of the error category. Stable for a given status code and resolved language — clients must not use it as a machine-readable discriminator.
max length 40
statusintegerrequired
The HTTP status code, repeated from the response itself.
detailstring
A localized, human-readable explanation specific to this occurrence. Clients must not parse it for machine-readable information.
max length 500
instancestring<uri-reference>
An identifier for this specific occurrence, so it can be correlated with server-side logs if you need to report it.
max length 100
Request
curl -X POST "https://{hostname}/portfolio/accounts/6820943174116859281/grants" \
  -H "UDX-Access-Key: API_KEY_ID" \
  -H "UDX-Access-Timestamp: UNIX_MILLISECONDS" \
  -H "UDX-Access-Signature: BASE64_SIGNATURE" \
  -H "Content-Type: application/json" \
  -d '{
  "user_id": "1194626289313312742"
}'
Response
{
  "grant": {
    "id": "5822799328558517173",
    "user_id": "1194626289313312742",
    "status": "pending",
    "created_at": "2026-08-20T09:30:00.000000Z"
  }
}