# What Trading an Asset Needs

> Coming soon, upon request — this feature is turned on for your tenant by the Aurea team. [Contact us](https://www.aureahub.com/contact)

Whether the signed-in user can trade an asset now, and if not, why.

## Overview

- `eligible`: the user meets every requirement. Otherwise `refusal` is the requirement that says no — `TOKENIZED_ASSETS_COUNTRY_EXCLUDED`, `TOKENIZED_ASSETS_US_PERSON`, `TOKENIZED_ASSETS_NOT_APPROPRIATE`, `TOKENIZED_ASSETS_PROFESSIONAL_ONLY` or `TOKENIZED_ASSETS_PROSPECTUS_EXPIRED`, with its `reason` where it has one — and `missing` everything still missing.
- `missing` lists, in this order: `residence` or `residence_subdivision`, `us_person_declaration`, `appropriateness`, `classification`, then for each required document `document:<kind>` (none published yet) or `acceptance:<kind>` (the user has not accepted its current version).
- The reasons: `TOKENIZED_ASSETS_COUNTRY_EXCLUDED` with `excluded_country`, `excluded_region` or `no_individuals`; `TOKENIZED_ASSETS_PROFESSIONAL_ONLY` — a retail client only — with `jurisdiction_professional_only`, `asset_professional_only`, `asset_not_classified` or `retail_not_offered`. The first requirement that says no is answered, even when others say no too.
- `documents` lists each document the asset requires of this user, with its current `version` (`null`: none published) and whether the user `accepted` it. See [Eligibility and Documents](https://docs.aureahub.com/docs/guide-tokenized-assets.md) for the rules.
- User token and the tenant signature ([Calling the Routes](https://docs.aureahub.com/docs/guide-tokenized-assets.md)); every tenant role may call it.

## Errors

Besides [the answers every tokenized assets route can give](https://docs.aureahub.com/docs/guide-tokenized-assets.md) (no valid token or signature, the module not set up or not switched on, a field that does not fit):

| Status | details.code | When |
| --- | --- | --- |
| 404 | TOKENIZED_ASSETS_ASSET_NOT_OFFERED | Your tenant does not offer this symbol in this environment (`This tenant does not offer this asset.`). |

## Endpoint

### `GET /v1/tokenized-assets/assets/{symbol}/requirements`

Authentication: bearer token required.

Whether the user can get a binding quote of the asset now.

**Path parameters**

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `symbol` | string | yes | The token's symbol, as its contract names it (case matters). Pattern `^[A-Za-z0-9.-]{1,32}$`. |

**Query parameters**

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `isTestnet` | string | no | `true`: the test environment; `false` (the default): production. |

**Responses**

`200` Missing Items

```json
{
  "isTestnet": false,
  "symbol": "AAPLon",
  "eligible": false,
  "refusal": null,
  "missing": [
    "appropriateness",
    "acceptance:final_terms",
    "acceptance:kid"
  ],
  "documents": [
    {
      "kind": "prospectus",
      "version": 2,
      "accepted": true
    },
    {
      "kind": "final_terms",
      "version": 1,
      "accepted": false
    },
    {
      "kind": "kid",
      "version": 1,
      "accepted": false
    }
  ]
}
```

`200` Refused

```json
{
  "isTestnet": false,
  "symbol": "AAPLon",
  "eligible": false,
  "refusal": {
    "code": "TOKENIZED_ASSETS_PROFESSIONAL_ONLY",
    "reason": "jurisdiction_professional_only"
  },
  "missing": [],
  "documents": [
    {
      "kind": "prospectus",
      "version": 2,
      "accepted": true
    },
    {
      "kind": "final_terms",
      "version": 1,
      "accepted": true
    },
    {
      "kind": "kid",
      "version": 1,
      "accepted": true
    }
  ]
}
```

[Contact us for details](https://www.aureahub.com/contact).

---

Web version: https://docs.aureahub.com/#tok-requirements
