# Get Account Owner Identity (PII)

**GET** `/users/{user_id}/accounts/{account_id}/identity`

Base URL: `https://live.savewithsail.com/api/v1`

The legal owner of this specific account (name, emails, phones, addresses) as reported by the owning connection's administrator. Account-level on purpose: "who owns the account I am about to deposit into" must be answered from that account's own source, never from aggregated data. Requires the `identity` key scope, an ephemeral user token carrying the `identity` token scope, and the `identity` product on the owning connection. (HSAs are individually owned. Expect exactly one owner.)

## Authorization

- PartnerKey (http, bearer)
- x-sail-user-token (apiKey in header)

## Path parameters

- `user_id` (string, required)
  The Sail user id.
- `account_id` (string, required)
  The Sail account id.

## Responses

### 200

Identity data.

- `names` (string[])
  Legal names on file with the administrator.
- `emails` (object[])
  Email addresses on file with the administrator.
  - `email` (string)
    The email address.
  - `type` (string)
    The email's label (e.g. `home`, `work`).
  - `primary` (boolean)
    Whether this is the primary email on file.
- `phones` (object[])
  Phone numbers on file with the administrator.
  - `phone` (string)
    The phone number.
  - `type` (string)
    The phone number's label (e.g. `mobile`, `home`).
  - `primary` (boolean)
    Whether this is the primary phone number on file.
- `addresses` (object[])
  Mailing addresses on file with the administrator.
  - `street` (string)
    Street address.
  - `city` (string)
    City.
  - `state` (string)
    State or region.
  - `zip` (string)
    Postal code.
  - `country` (string)
    Country.
  - `primary` (boolean)
    Whether this is the primary address on file.

Example:

```json
{
  "names": [
    "string"
  ],
  "emails": [
    {
      "email": "string",
      "type": "string",
      "primary": true
    }
  ],
  "phones": [
    {
      "phone": "string",
      "type": "string",
      "primary": true
    }
  ],
  "addresses": [
    {
      "street": "string",
      "city": "string",
      "state": "string",
      "zip": "string",
      "country": "string",
      "primary": true
    }
  ]
}
```

### default

Standard error envelope covering 400, 401, 403, 404, 429, and 500.

- `error` (object)
  The error detail.
  - `code` (string)
    Machine-readable code, e.g. `not_found`, `token_scope_mismatch`, `product_not_enabled`, `insufficient_key_scope`, `insufficient_token_scope`, `user_token_required`, `user_token_expired`, `invalid_user_token`, `invalid_key_configuration`, `connection_not_reconnectable`, `rate_limited`.
  - `message` (string)
    Human-readable error message. May change, so match on `error.code` instead.
  - `param` (string)
    The request field that caused the error, when applicable. Null otherwise.

Example:

```json
{
  "error": {
    "code": "string",
    "message": "string",
    "param": "string"
  }
}
```