# A Secondary-Market Quote

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

A quote of the secondary market for an asset, paid from and delivered to one of the user's own wallets.

## Overview

- **Turned on per tenant** [Coming soon, upon request](https://docs.aureahub.com/docs/feature-availability.md): until then `403` `TOKENIZED_ASSETS_SECONDARY_ROUTE_OFF`. In production only (`409` `TOKENIZED_ASSETS_SECONDARY_ROUTE_UNAVAILABLE` in the test environment), for the assets traded with quotes (`409` `TOKENIZED_ASSETS_NOT_SUPPORTED_FOR_ASSET` for the others today).
- A buy pays the chain's stablecoin — `USDC` on Ethereum (`1`), `USDT` on BNB Chain (`56`) — and a sale the asset's tokens; `amount` is what is paid, exactly. From and to `walletId`, one of the user's own wallets of the environment, or the primary one (`400` `TOKENIZED_ASSETS_DESTINATION_INVALID` otherwise). `slippageBps`: how far below the quote the swap may deliver, 1 to 300 (default 50).
- Indicative: `receive.amount` is what the market offers now, `receive.minimum` the least the swap delivers. Kept five minutes for [Approve](https://docs.aureahub.com/docs/tok-secondary-approve.md) and [Execute](https://docs.aureahub.com/docs/tok-secondary-execute.md); the transaction it would send is never answered. `approvalRequired`: the wallet must first allow the swap the amount paid. The user's eligibility and documents apply as on a binding quote, and your tenant's limits (`409` `TOKENIZED_ASSETS_TENANT_LIMIT_EXCEEDED`).
- Tokens bought on the secondary market cannot be redeemed from their issuer: show the user `disclosure`. 20 a minute. User token and the tenant signature ([Calling the Routes](https://docs.aureahub.com/docs/guide-tokenized-assets.md)); for `user`, `owner`, `tenantadmin` and `signer`, for themselves (another role: `403`).

## 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 |
| --- | --- | --- |
| 403 | — | The caller's role may not call it (`Your role does not have permission to perform this action.`). |
| 409 | TOKENIZED_ASSETS_SECONDARY_ROUTE_UNAVAILABLE | `The secondary route is not available in the test environment.` |
| 404 | TOKENIZED_ASSETS_ASSET_NOT_OFFERED | `This tenant does not offer this asset.` |
| 409 | TOKENIZED_ASSETS_NOT_SUPPORTED_FOR_ASSET | `This is not available for this asset.` |
| 403 | TOKENIZED_ASSETS_SECONDARY_ROUTE_OFF | `This tenant does not offer the secondary route.` |
| 400 | TOKENIZED_ASSETS_QUOTE_NOT_SUPPORTED | `This asset is not traded on the secondary route.` |
| 403 | TOKENIZED_ASSETS_… (eligibility) | The user's eligibility and documents, as for a [binding quote](https://docs.aureahub.com/docs/tok-quote-create.md). |
| 409 | TOKENIZED_ASSETS_ASSET_PAUSED | `Trading in this asset is paused.` (`details.side`). |
| 400 | TOKENIZED_ASSETS_CHAIN_UNSUPPORTED | `This asset has no token on this chain.` |
| 400 | TOKENIZED_ASSETS_INVALID_AMOUNT | `The amount must be above zero`, or more digits than the token has. |
| 400 | TOKENIZED_ASSETS_DESTINATION_INVALID | `The wallet is not one of yours in this environment.` |
| 409 | TOKENIZED_ASSETS_SECONDARY_ROUTE_UNAVAILABLE | `The secondary route is not set up for this tenant.` |
| 409 | TOKENIZED_ASSETS_SECONDARY_NO_ROUTE | `The secondary market offers no route for this asset and amount at the moment.` |
| 503 | TOKENIZED_ASSETS_SECONDARY_ROUTER_UNAVAILABLE | `The secondary market cannot be reached at the moment: try again shortly.` |
| 409 | TOKENIZED_ASSETS_TENANT_LIMIT_EXCEEDED | `The order is above one of the tenant's limits.` (`details.limit`, `maxUsd`, `requestedUsd`). |

## Endpoint

### `POST /v1/tokenized-assets/secondary/quotes`

Authentication: bearer token required.

An indicative secondary-market quote, kept five minutes.

**Request body**

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `isTestnet` | boolean | no | `true` for the test environment; `false` (the default) for production. |
| `symbol` | string | yes | The token's symbol, as its contract names it (case matters). Pattern `^[A-Za-z0-9.-]{1,32}$`. |
| `chainId` | number | yes | The chain: 1 (Ethereum) or 56 (BNB Chain). `1399811149` is refused today (`400` `TOKENIZED_ASSETS_CHAIN_UNSUPPORTED`). |
| `side` | string | yes | One of `buy`, `sell`. |
| `amount` | string | yes | What is paid, exactly, as a decimal: the chain's stablecoin for a buy (USDC on Ethereum, USDT on BNB Chain), the asset's tokens for a sale. At most 80 characters. |
| `walletId` | string | no | One of the user's own wallets of the environment, that pays and receives; the primary one by default. A UUID. |
| `slippageBps` | integer | no | How far below the quote the swap may deliver, in basis points (default 50). At least 1, at most 300. |

**Responses**

`201` Quoted

```json
{
  "quoteId": "6f1c2d8e-4b7a-4c1e-9a52-3e2f0d9b7c41",
  "route": "secondary",
  "indicative": true,
  "isTestnet": false,
  "symbol": "AAPLon",
  "chainId": 1,
  "side": "buy",
  "pay": {
    "token": "USDC",
    "amount": "250"
  },
  "receive": {
    "token": "AAPLon",
    "amount": "0.982271934",
    "minimum": "0.977360574"
  },
  "approvalRequired": true,
  "status": "quoted",
  "failureCode": null,
  "transactionId": null,
  "redeemableFromIssuer": false,
  "disclosure": "Bought or sold on the secondary market, through third-party liquidity: the price is indicative until the swap is carried out, and tokens bought this way cannot be redeemed from their issuer.",
  "expiresAt": "2026-10-07T15:08:00.000Z",
  "createdAt": "2026-10-07T15:03:00.000Z"
}
```

`403` Switched Off

```json
{
  "statusCode": 403,
  "error": "ForbiddenError",
  "message": "This tenant does not offer the secondary route.",
  "details": {
    "code": "TOKENIZED_ASSETS_SECONDARY_ROUTE_OFF",
    "isTestnet": false
  }
}
```

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

---

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