Start Staff View as Buyer
POST/api/admin/portal/accounts/:customer/view-as
Starts a read-only staff view of the buyer portal as one buyer on the account, and returns a one-time link that opens it.
This endpoint currently requires session authentication; Personal Access Token scope support is in progress.
The link carries a single-use code (valid for 5 minutes), not a session: opening it signs that browser tab in as the buyer for 30 minutes. While it lasts, the portal is read-only — checkout, orders, quotes, approvals, returns, cart, saved lists, addresses and preferences all answer 403. The buyer's password and their own sessions are never touched. Every view is recorded and can be revoked.
Requires the portal.manage permission.
Body:
- portal_customer_user_id (integer, optional): the buyer to view as. Must belong to this account and not be disabled. Omitted, the account's company admin (or first ordering buyer) is used.
Response: data.url (the one-time portal link) and data.session.
Session fields:
- id (integer): session id, used to revoke it.
- status (string): pending (link not yet opened), active, expired, exited (the viewer clicked Exit) or revoked.
- staff_user_id (integer), staff_name (string|null): who started the view.
- customer_id (integer): the portal account.
- buyer (object): id, name and email of the buyer viewed as.
- ip_address (string|null): IP the view was started from.
- created_at, started_at, expires_at, ended_at (string|null): ISO-8601 timestamps.
- end_reason (string|null): exited or revoked.
Errors: 422 when the customer is not on the portal, has no buyer to view as, or the buyer is disabled or belongs to another account.
Request
Responses
- 201
- 401
- 403
- 404
- 422
- 429
Created
Response Headers
Unauthenticated — the bearer token is missing, revoked, expired, or malformed. Never retry automatically; fix the credential. See the Errors guide.
Forbidden — the token lacks a required scope, the endpoint is not available to API tokens, or the user behind the token lacks the permission. A human must adjust the token scopes or user permissions; do not retry.
Not found — no record with the given identifier (or the route does not exist). Verify the ID before retrying.
Unprocessable Entity
Response Headers
Rate limited — platform limit is 1,000 requests/min; individual tokens may carry lower limits. Honor the Retry-After header before retrying. See the Rate Limits guide.