Demo Broker Test Scenarios
The Demo Broker simulates different market scenarios for various ISINs to enable the integration of different trading processes, error scenarios, and cost structures.
Here you will find an overview of the preconfigured test ISINs and their specific behavior.
Standard Stocks & Order Execution
These ISINs are suitable for testing regular order processes and partial executions.
| ISIN | Name | Special Features |
|---|---|---|
| US0378331005 | Apple | - Market buy orders are executed after 10 seconds by the backend at a random quote. - Stop buy or stop loss orders stay open forever (ideal for testing cancellations). - Cost estimations contain a costDetailsLink and a costAcceptancePrompt.- securityDetailedInfo is set (display of a "KID" link).- costEstimationMustBeShown=true (users cannot skip cost estimation). |
| US5949181045 | Microsoft | - one exchange with all available orderModels. - For even sizes: Partial execution (size 1), remainder stays open. - For odd sizes: Partial execution (size 1), remainder is cancelled. |
| US30303M1027 | Meta | - one exchange with all available orderModels. - Each unit of the order size is executed individually (size 1) (e.g., 10 executions for size 10). - Sizes > 30 are rejected. |
| DE0008404005 | Allianz | - one exchange with all available orderModels. - Immediate execution. - Limit orders are executed at exactly the provided limit price. |
| DE0008430026 | Munich Re | - one exchange (L&S) with all available orderModels. - Immediate execution via exchange L&S. |
| FR0000120321 | L'Oréal | - one exchange with all available orderModels. - Orders stay open. - Exchange uses a securityQuotesToken.- changesHaveCostEstimations=true (cost estimations for order changes are available). |
| US88160R1014 | Tesla | - Supports market, limit, and stop-buy. - GetCostEstimation returns order fees.- Fees are saved and returned in the order receipt. |
| US4180561072 | Hasbro | - Only quote trading on one exchange. - Quotes are valid for 45 seconds and always have the value 42. - Immediate execution after order creation. |
| DE0005557508 | Telekom | - Only quote trading on two exchanges. - Quotes do NOT have an expiration and always have the value 42. - Quote comes together with a cost estimation; subsequent getCostEstimation calls are not allowed.- noExchangeDefault=true (exchange must be explicitly selected).- Order will be cancelled after 3 seconds. |
| US67066G1040 | NVIDIA | - Only quote trading. - Supports allowsQuoteModeLimit=true.- Immediate execution (at quoteLimit if provided, otherwise random quote). |
| US5529531015 | MGM Resorts | - Short selling test: availableOrderIntents ("sell to open" / "buy to close") are active. |
| US8740541094 | Take Two | - Three exchanges with different take-profit/stop-loss configurations. - allowsChangeSize=true (order size can be changed).- Orders stay open forever. |
| DE0006969603 | Puma SE | - Orders stay open forever. - allowsChangeValidityTypes is empty (validity type cannot be changed).- changesHaveCostEstimations=false (no cost estimations for changes). |
| LU2611732046 | DAX ETF (old) | - Two exchanges: Xetra and quote exchange. - Xetra uses defaultValidityByOrderModel (GFD for market, GTD 2030 for limit).- Orders are immediately rejected with code ORDER_REJECTED. |
| DE0005552004 | Deutsche Post | - Only buy allowed (orderModelsSell=[]).- Market buy orders are executed immediately. - Positions always have sizeDecimals=undefined. |
| XX1234567890 | Test-ISIN | - one exchange with all available orderModels. - Simulation of an ISIN that cannot be mapped by frontends. - Choice of two sell positions ("Sell Position A/B"). Rejection without selection. - Immediate execution. |
| DE0007100000 | Mercedes-Benz | - one exchange with all available orderModels. - Choice of two sell positions ("Sell Position A/B"). Rejection without selection. - Immediate execution. |
Error Cases & Rejections
Use these ISINs to test error handling in your frontend.
| ISIN | Name | Scenario |
|---|---|---|
| LU0378438732 | DAX ETF | - Immediate rejection with code ORDER_REJECTED.- costEstimationIsOnlyDetailedTable=true (test for deviating order form behaviors). |
| DE000MD96WE8 | Knock-out (DAX) | - prepareTrade is rejected with a message that the user may not trade risky derivatives. |
| DE000DTR0CK8 | Daimler Truck | - prepareTrade is rejected with a message that the user may not trade risky derivatives. |
| US98980L1017 | Zoom | - Only market orders on one exchange are supported. - Requires MUST_ACCEPT_HINT on first attempt.- defaultValidity=GTD (2030-01-01). |
| US64110L1061 | Netflix Inc. | - Only quote order. - Creating the quote order returns "quote expired" error. |
| US23804L1035 | Datadog Inc. | - Only quote order. - In 80% of cases, CreateTrade returns a 400 error (QUOTE_REJECTED_RETRYABLE) to test automatic retries in the UI. |
| DE0007472060 | Wirecard | - Test instrument for onlySellAllowed (empty orderModelsBuy). |
| DE0006231004 | Infineon | - Only sell allowed: orderModelsSell=['market'], orderModelsBuy=[]. |
| US29786A1060 | Etsy | - Latency tests: prepareTrade (5s), challenge creation (5s).- For photoTAN, the challenge returns an error after 5s. - Exchange "Slow exchange": Quote and costs take 7s each. - Exchange "Exchange with quote and cost errors": Quote and costs return an error after 3s. - costEstimationMustBeShown=true. |
Special Instruments & Cryptos
Testing decimals, currency accounts, and special trading models.
| ISIN / Pair | Name | Special Features |
|---|---|---|
| BTC | Bitcoin/Euro | - Supports quote, market, and limit. - Immediate execution (except limit=42, which stay open). - Test for frontend mapping of cryptos. - In the 2nd portfolio (two cash accounts), sizeUnitsByCashAccountId is set.- Positions always have 8 decimal places ( sizeDecimals=8). |
| ADA-USD | Cardano / USD | - Supports quote, market, and limit. - Test for missing currency accounts (error in portfolio without USD account). - Choice between base currency (USD) or ADA for order size. - Validity type GTDT (good-till-date-time) available.- Decimal places: USD (2), ADA (4). - Execution after 10 seconds. |
| XAU | Gold | - Only quote trading. - Choice of currency (EUR/USD depending on portfolio) or size in grams. - Quotes have the totalAmount field set. |
| XS2149280948 | Bertelsmann Bond | - Quote, market, and limit (buy/sell) on one exchange. - Limit orders at exact price, market orders at random quote (90-150%). - legalMessagesToConfirmByOrderModel active for market orders. |
Cost & Documentation Check
Scenarios for displaying PDFs, cost pop-ups, and mandatory hints.
| ISIN | Name | Focus |
|---|---|---|
| US0378331005 | Apple | - See "Standard Stocks": Cost calculation with link, confirmation prompt, and mandatory display (costEstimationMustBeShown=true). |
| DE000PAH0038 | Porsche | - GetCostEstimation only provides a link to a PDF document (test for PDF linking).- Instrument has both legalHint and strikingHint (both must be visible in the order form).- All orders are cancelled. |
| US2546871060 | Disney | - one exchange with all available orderModels. - costEstimationMustBeShown=false and costEstimationIsOnlyDetailedTable=true.- Frontends must only show a link to the cost estimation table. - Orders are cancelled after 3s. |
| DE000BAY0017 | Bayer AG | - costEstimationIsNotAvailable=true (no cost estimation available).- Orders are cancelled after 3s. |
General Behavior Rules
- Other ISINs: All ISINs not listed here are cancelled by default after 3 seconds.
- Decoupled Login: For login methods with decoupling, the order ID is only returned for sizes
> 5(test for skipping the order receipt). - Portfolio Starting Values: Portfolio 1 starts with €100,000, Portfolio 2 with €100,000 and $100,000. The exchange rate is assumed to be 1:1 for simplicity.