# Sandbox mock ISINs

To enable testing of different scenarios on the client side, we offer a range of ISINs, which are programmed to behave
in a predefined way in our **Sandbox environment**.

For a comparison of the Live and Sandbox environments, view the [Environments](/products/omnibus/concepts/environments/overview) section.

The following lists give you an overview of these ISINs and their expected behaviour, including the order & execution
webhooks.

The number of instruments in Sandbox and Live is different, and although some instrument IDs match, not all instruments do.

## Currency and Venue check

Similar to the live environment, orders can only be submitted in the currency allowed by the venue where the ISIN is listed. If you place an order in a currency not supported by the venue, the order will not be executed.

## Price simulations

The ISINs listed here are designed to execute successfully in the Sandbox.

In addition to the listed in this article, we may introduce new behaviours and new logic on other ISINs that are not explicitly mocked today.

Please note that the for the ISINs listed here, the tax withholding is randomly assigned and may be `0`.

To test the taxation, use the ISINs from the section [Taxation simulations](/products/omnibus/guides/orders/sandbox_mock_isins#taxations-simulations) below.

The ISINs have the following behaviour and bid/offer prices:

| ISIN | Bid price | Offer price | Mock behaviour |
|  --- | --- | --- | --- |
| `IE00BKBF6H24` | 7.51 | 6.23 | Successful execution |
| `IE00B3XXRP09` | 113.03 | 115.05 | Successful execution |
| `DE0005933931` | 81.77 | 85.22 | Successful execution |
| `IE00BK5BCH80` | 13.20 | 11.24 | Successful execution |
| `IE00BM8QRZ79` | 38.45 | 41.25 | Successful execution |
| `IE00BYZK4552` | 11.10 | 9.96 | Successful execution |
| `FR0010790980` | 90.11 | 93.55 | Successful execution |
| `FR0010524777` | 38.345 | 38.955 | Successful execution |
| `LU2194447293` | 14.564 | 14.744 | Successful execution |
| `IE00BGBN6P67` | 70.07 | 72.09 | Successful execution |
| `IE00BGL86Z12` | 6.261 | 6.299 | Successful execution |
| `LU0779800910` | 14.31 | 14.44 | Successful execution |
| `IE00BJ0KDR00` | 108.08 | 108.43 | Successful execution |
| `LU0533033667` | 472.50 | 481.10 | Successful execution |
| `IE00BM67HK77` | 43.88 | 44.23 | Successful execution |
| `IE00BM67HL84` | 22.02 | 44.23 | Successful execution |
| `LU1291109616` | 17.02 | 17.28 | Successful execution |
| `IE00BM67HM91` | 43.50 | 43.26 | Successful execution |
| `IE00B95PGT31` | random | random | Successful execution |
| `IE00BF2GFH28` | 100.00 | 100.00 | Successful execution up to 4 partial executions, then the order will be cancelled before the 'final' execution |
| `IE00B5M1WJ87` | 100.00 | 100.00 | Successful execution with up to 5 partial executions. Number of executions dependent on order amount: < €101 = 1 execution,  < €201 = 2 executions, ... > €401 = 5 executions |
| All active ISINs in Sandbox not otherwise specified in this section (e.g., `IE0032077012`) | 100.00 | 100.00 | Successful execution |


### Dynamic price simulations

To provide more realistic price simulations, we offer three (3) ISINs that use an updated approach for their price data in the sandbox environment. This feature  algorithmically mimics normal market behavior to allow prices to increase and decrease over time. It also allows execution prices to more closely align the ISIN’s latest price as shown in the sandbox environment.

This functionality supports mocked behaviour on the following endpoints:

The mocked current price is exposed via:

[`GET /instruments/{instrument_id}/venues/{venue_id}/prices/latest`](/api/price-data/retrieve_instrument_latest_price).

The mocked price history is exposed via:

[`GET /instruments/{instrument_id}/venues/{venue_id}/prices/ohlc`](/api/price-data/retrieve_instrument_prices_ohlc).

Access to these endpoints is available in the Sandbox environment for testing. To access additional price data (e.g., OHLC and latest prices) in Live, Clients must include the "Upvest Market Data Package" in their contract. Once enabled, clients will receive price data from our provider, Infront.

Please approach your Upvest account manager if you are interested in access to this price data in the Live environment.

We include enhanced dynamic pricing for the following three (3) ISINs:

- LU0429790743
- IE00B3VTMJ91
- IE00BF20LF40


Similar to real prices, these ISINs show smaller fluctuations in intraday prices. For example, within a ~20 minute interval, the price may change ~0.1 EUR as shown in the following chart.

For longer periods, the prices move in a way that reflects daily fluctuations with a general up or down price trend over time.

### Order & execution webhooks

Success flow ISINs have the following expected order and execution webhooks:

1. `ORDER.NEW`
2. `ORDER.PROCESSING`
3. `EXECUTION.FILLED`
4. `ORDER.FILLED`
5. `EXECUTION.SETTLED`


In the Upvest Sandbox environment, order executions are settled immediately, i.e. not on T+2.

## Cancellation simulations

The ISINs listed here are designed to mock different cancellation flows.

These ISINs have the following behaviour:

| ISIN | Mock behaviour |
|  --- | --- |
| `IE00BYVJRQ85`, `LU0446734526`,  `DE000A0F5UG3`, `IE000YU9K6K2`, `LU1215452928`, `LU1834984798` | Upvest cancels an order immediately after `PROCESSING` state. |
| `DE000A0H08H3`, `GB00BL9YR756` | Upvest cancels an execution; this is typically to be expected with mistrades. |


## Limit & stop order simulation

If you want to test limit and stop orders, you can use the following ISIN with prices oscillating every hour between
200.00 and 300.00.

Please note that for the ISINs listed here, the tax withholding is randomly assigned and may be `0`.

To test the taxation, use the ISINs from the section [Taxation simulations](/products/omnibus/guides/orders/sandbox_mock_isins#taxations-simulations) below.

These ISINs mock successful executions with their prices moving in a sine-like pattern every hour: 250.00 (hh:00), 300.00 (hh:15), 250.00 (hh:30), 200.00 (hh:45).

| ISIN | Asset class | Mock behaviour |
|  --- | --- | --- |
| `DE000PJ8MBQ3`, `DE000VJ1KGY7`, `DE000HT2J6V1` | Warrant | Successful execution |
| `DE000PG0J4S4`, `DE000VP3YL60`, `DE000HT9GWP9` | Knockout | Successful execution |
| `DE000PJ7EEC6`, `DE000VK6Z9N8`, `DE000HG8F8E8` | Factor | Successful execution |
| `DE0005140008`, `IE00B9F5YL18`, `IE00B945VV12`,`IE00BK5BQX27` | Equities | Successful execution |
| `IE00B0M62Y33` | Equities | Behaves in the same way as `DE0005140008`, however, attempt to cancel the order in `PROCESSING` state will always get rejected. (Useful for `ORDER_CANCELLATION` webhook testing) |


### Order & execution webhooks

Orders are being cancelled in the **`PROCESSING` state**:

1. `ORDER.NEW`
2. `ORDER.PROCESSING`
3. `ORDER.CANCELLED`


Upvest will soon offer more transparency on cancellation reasons via webhooks. We will also document these changes in
this section.