Bitstamp Exchange API Support
TT® supports the following:
- Prices: Websocket API
- Orders: FIX 5.0
Bistamp Exchange Trading Hours / Trading Sessions
- Bitstamp is a 24X7 exchange which is available for 7 days of the week
Supported Exchange Functionality
Cancel on Disconnect
Exchange Cancel on Disconnect is supported at the connection level.
Note: Exempting an order from cancel on disconnect is not supported currently
Bitstamp Supported Order Types
TT supports the following order types natively supported by Bitstamp:
- Limit
- Market
- Stop Limit
- Stop Market
Bitstamp Order Restrictions (TIF)
TT supports the following Time-in-Force (TIF) order restrictions natively supported by Bitstamp:
- IOC
- Day
- FOK
- GTC
- GTD
Bitstamp Product Types
TT supports the following product types available at Bitstamp:
- Perpetual Futures
- SPOT
Bitstamp Supported Order Types
| Order Type | Supported TIF | Supported Product Type | Unsupported Products |
| Limit | Day, IOC, FOK , GTC , GTD | All | None |
| Market | Day, IOC, FOK , GTC , GTD | All | None |
| Stop Limit | Day, IOC, FOK , GTC , GTD | All | None |
| Stop market | Day, IOC, FOK , GTC , GTD | All | None |
Adding a Bitstamp Connection
To add a Bitstamp connection:
-
Click Connections in the left navigation panel.
-
Click +New Connection
-
Configure the settings in the General Settings section:

- Connection Enabled: Check this setting to activate the connection. Uncheck to deactivate the connection.
- Delete All Associated Orders in TT
- Name: This is a required field for creating a connection.
- Exchange: Select Bitstamp. Only one exchange is allowed per connection.
- Type: Define the connection as a SPOT or a Perpetual ( Note , SPOT perpetual can only trade SPOT products . If a trader intends to trade both SPOT and Perpetuals , they need to create two connections )
-
Configure the settings in the Additional Settings section.
Configure the following Bitstamp settings per connection:
- Sender Comp ID – Identifies the name of your firm in FIX Tag 49 in all outbound messages sent via the connection. This is an exchange-provided credential that is required for connecting the session. This is a required setting.
- Username – Sets the exchange-provided session ID username for connecting to the exchange. Sent to the exchange as Tag 553. This is a required setting.
- Password – Sets the exchange-provided session ID password for connecting to the exchange. Sent to the exchange as Tag 554. This is a required setting.
- Sender Sub ID – Assigned value used to identify specific message originator (e.g. desk, trader, etc.)
- Max Order Rate (orders/sec) – (Optional) Sets the maximum number of orders per second that a user can enter per connection. This limit cannot exceed the exchange-defined order rate maximum.
- Contact Email – Optionally, add a best contact email that TT can use to contact your firm if needed.
-
Click Create. You can select the connection in the data grid and review the connection settings in the Settings tab.
-
Click the Accounts tab to assign an existing account to the connection. Multiple accounts can be added to a single connection.
Note: The connection will not become active until at least one account is assigned.
-
Click Save Changes.
Adding a Bitstamp Account
To add a Bitstamp account:
-
Click Accounts in the left navigation pane.
-
Click +New Account at the top of the Accounts screen.
The Account Information section is displayed. -
In the Account Name/Number field when creating an account for Bitstamp exchange, enter the up to 40-character exchange-defined account name, which is required for order routing. The user’s TT routing account is sent to the exchange as the clearing account on each order action in Tag 58.If this is a sub-account, select a “parent” account in the Parent field.
-
Click the Type field and select an account type.
Use this field to define the routing behavior for the account and set up its account hierarchy for tiered risk. All order routing is based on the user account. Select one of the following:- Routing (external clearing): Defines the parent account as a clearing account sent to the exchange on all orders. If assigned to a user, the account appears in the user’s list of routable accounts. When selected by a user, the account is used to route orders and identify the account to the exchange (e.g, FIX Tag 1). If configuring this account as an omnibus account, select this option. If an internal sub-account is assigned to a parent account, the sub-account inherits the exchange connectivity of the parent account.
- Routing (internal sub-account): Defines the account as a sub-account that is not routed to the exchange. This allows you to assign the user to an internal account for routing and risk purposes, even though a parent account will be sent to the exchange as the actual clearing or omnibus account.
- Tip: Sub-accounts set as “Routing (internal sub-account)” can be selected by client trading applications for submitting orders, but only their parent account’s clearing account is routed to the exchange.
- Non-Routing: Not sent to the exchange. Recorded internally and can be used for back-office purposes, or as a parent risk account that allows you to group a set of sub-accounts together and set risk for the non-routing parent.
- Tip: Accounts set as “Non-Routing” are not selectable by client trading applications.
- Audit Trail Only: Not sent to the exchange. Use this account type for the TT FIX Inbound Drop Copy service, which allows third parties to import their data sources into TT. When selected, the “Order Cross Prevention” option is disabled for this account.
- Error Routing: An account that can be used to route order reject messages created by FIX Order Router or FIX Inbound Drop Copy to specific Drop Copy sessions. Error accounts can be assigned to users and to FIX Order Routing and Inbound FIX Drop Copy sessions. An error account is not routed to the exchange and is not part of account hierarchies.
-
To prevent order crossing using this account or any of its sub-accounts, click the Order Cross Prevention field and select an order crossing rule. The TT Trade application performs the following order actions based on which rule is selected:
- Not Applied — No order cross prevention rule is applied to the account.
- Reject New — Reject a new order that could potentially fill resting orders in the same account or account tree. Applies to only Limit orders and native Iceberg orders.
- Cancel Resting (wait for ACK) — Send a cancel request to the exchange for the resting order. When the exchange acknowledges the request and cancels the order, submit the new order. Applies to only Limit orders and native Iceberg orders.
- Position Transfer — When a match is detected, the resting order is canceled or the working order quantity is reduced by the size of the aggressive order. A fill is created by TT and sent to each account. If the aggressive order was larger than the resting order, then the remainder of it will be sent to market. For a description of how Position Transfer works, refer to Position Transfer.
- Position Transfer (if resting order is best bid/offer) — This rule works the same as Position Transfer except that the internal matching occurs only if an order has the potential to fill a resting order at the current best bid/ask price.
Note: When using this rule, the resting order may get matched and filled at the exchange while the aggressive order is in flight.
-
Optionally, check one of the following options:
- Use Reject New instead of Position Transfer within the same account — When enabled, this setting prevents the use of position transfer within the same account and uses “Reject New” for order cross prevention. This setting is active when “Position Transfer” is selected for the account, otherwise, it is grayed-out.
- Go to market with Position Transfer balances w/o waiting for Cancel/Reducing ACK — When enabled, Position Transfer does the following if the aggressive order quantity is larger than the resting order quantity:
- Reduces the aggressive order quantity by the amount of the resting order
- Submits a request to the exchange to cancel the resting order, followed immediately by an order for the remaining quantity without waiting for acknowledgement that the resting order was canceled or reduced.
- For example, if a 2-lot Sell order is resting when a 10-lot Buy order is entered that matches, Position Transfer immediately sends a cancel request to the exchange for the Sell order, followed by an 8-lot Buy order. Position Transfer then waits for the exchange to acknowledge that the 2-lot Sell order was canceled successfully. After receiving acknowledgement, the 2-lot fills are created internally and transferred to each trader’s account.
Using this option, you can submit part of the order to the market sooner while the remainder of the order waits to be transferred. You can also reduce the risk of the entire aggressive order being rejected while waiting for the position transfer to complete.
Note: With this option, there’s a risk that the crossing orders may match at the exchange if the two traders are using separate exchange connections on two different order routing servers. - Disable trading (this account only) — Disables trading for this account. This checkbox is checked by default.
- Disable trading (sub-accounts) — Disables trading for all child accounts of this parent account.
- Disable trading (autoliquidate) — Checked automatically after auto-liquidate is triggered on an account. Increase the credit limit and uncheck this option to restore trading to a liquidated account. This setting can only be checked by the Setup application when an account is liquidated (i.e., you cannot manually check this setting).
-
Optionally, configure the Prevent Duplicate Orders settings:
- Check Quantity — Sets the number of duplicate orders to allow within the configured time frame.
- Check Time Frame — Sets the time frame in milliseconds and enables the duplicate order check for the account. Enter a value from 1-999999999. When the number of orders for the same instrument and price set in the Check Quantity field occurs within the configured time frame, the duplicate orders are rejected. When Check Time Frame is blank, no duplicate order check is applied to the account.
- Apply to sub-accounts — Copies the “Prevent Duplicate Orders” settings from the parent account to their child accounts. This ensures that any sub-accounts added to the shared parent account cannot have a different\missing value in this field . When checked, the value cannot be changed on any sub-accounts added by your company or a shared company.
-
In the Order Management System (OMS) Settings section, configure the following:
- Lock fill notifications on new staged orders — Controls how fills are reported back to the care order originator. When this setting is checked, new care orders are automatically locked when they are claimed. Fills for locked orders will have to be manually allocated and released. When unchecked, fills and fills prices are immediately released back to the customer using the average prices calculated by TT. This setting supports the Lock and Release functionality in TT OMS.
- Only combine orders with the same price — Restricts how care orders are bulked. When this setting is checked, only care orders with the same price can be added as part of a bulk order. When unchecked, care orders at different prices can be bulked. Bulking requires that all care orders have the same product and Buy/Sell side. This setting supports the Bulking functionality in TT OMS.
- Only combine orders with the same account — Restricts how care orders are bulked. When this setting is checked, only care orders with the same account can be added as part of a bulk order. When unchecked, care orders in different accounts can be bulked. Bulking requires that all care orders have the same product and Buy/Sell side. Supports the Bulking functionality in TT OMS.
- Only combine orders with the same customer — Restricts how care orders are bulked. When this setting is checked, only care orders with the same order profile can be added as part of a bulk order. When unchecked, care orders with different customer order profiles can be bulked. Bulking requires that all care orders have the same product and Buy/Sell side. Supports the Bulking functionality in TT OMS.
-
Click Create.
The new account appears in the Accounts list in the data grid. Sub-accounts appear as nested under their parent account.
Configuring Bitstamp exchange properties
-
Click Accounts in the left navigation pane and select an account in the data grid.
-
Click the Exchanges tab for the selected account.
-
Click the Select an Exchange selector to find and select an exchange.
-
Configure the settings in the Exchange Properties section.

- Trading Capacity:- Indication of dealing on wholesale , retail , matched principal (Principal), or other trading capacity . Valid values are :
- Principal ( Deal )
- Agency ( AOTC )
- Clearing Account :- Free form text which is not sent to Bitstamp
- Customer Order Handling Instruction -It is sent to the Bistamp in Tag 1031, which identifies the execution method and source of derivatives trades.
- Desk
- Electronic ( Default )
- Vendor-Provided Platform, billed by Executing Broker
- Sponsored Access via Exchange API or FIX , provided by Executing Broker
- Premium algorithmic trading Provider , billed by Executing Broker
- Other , Including Other Provided Screen
- TT SMP ID – A user-defined, alphanumeric identifier used to tag orders so the TT system can match potential crossed trades.
- TT SMP ID Instruction – Sets the TT SMP behavior and determines which order is canceled (resting or aggressing) if self-match prevention occurs.
- Direct Electronic Access – Identifies the origin of the trader. Not sent to exchange
- Liquidity Provision – Not sent to exchange
- Commodity Derivative Indicator – Indication of whether the order is for hedging purposes to reduce risk. Not sent to exchange
- Investment Decision ID – Short code to identify the individual who is responsible for the investment decision.Not sent to exchange
- Investment Decision Qualifier -Determines if the trading decision was made manually by a user or automatically by an automated trading application using this account. This is an optional field. Select one of the following:
- Manual: Indicates the trading decision was made by a person.
- Automatic: Indicates the trading decision was made by an automated trading application.
- Execution Decision ID – Short code to identify the execution decision maker with the firm.This is required for New Order Single and will be returned in Execution Reports. Not sent to exchange
- Execution Decision Qualifier – Determines if the user or firm sent the order manually or automatically using an automated trading application with this account. This is an optional field. Select one of the following:
- Manual: Indicates the order was sent manually.
- Automatic: Indicates the order was sent automatically.
- Secondary Execution Decision ID – Secondary user or firm associated with the order. This field can be used for trading on behalf of clients and used for internal reporting purposes. Enter a registered ID/Short Code.
- Client ID – Enter a user-defined client ID up to 40 characters. Not sent to exchange
- Secondary Client ID – Secondary customer identifier associated with the order. Not sent to exchange
- Client ID Type – Identifies the type of client submitting the order. Select either “Firm” or “Natural Person”.
- Execution Firm – Identifies the firm or user managing the account. Enter a user-defined value.
- Free-form 1-20 — Optional, user-defined text fields that can be populated for TT and FIX client application users. These values are not sent to the exchange, but are visible in the Order Book, Fills, and Audit Trail widgets and on FIX Drop Copy records.
- Apply to all sub-accounts — Allows a company creating a sub-account or sharing an account with another company to apply the parent account exchange field to the sub-account. This ensures that any sub-accounts added to the shared parent account cannot have a different value in this field and that the value is sent to the exchange. Check the checkbox next to each field to apply its value as needed. When checked, the value cannot be changed on any sub-accounts added by your company or a shared company.
- Lock sub-accounts — Allows a company creating a sub-account or sharing an account with another company to lock the value in a sub-account exchange field even if the sub-account is configured with a more specific order tag default match. This ensures that any child accounts (sub-accounts) created from the shared parent account cannot have a different value in this field and that the value is sent to the exchange. When checked, the value cannot be changed on any sub-accounts added by your company or a shared company.
Note: The Apply to all sub-accounts setting must be enabled for the field in order to enable the Lock sub-accounts setting. - Client Can Override — Determines if a user can override the value in this field when submitting orders from trading applications or APIs. Check the check box to unlock the field and allow a user to override the value. When unchecked, the field is locked and the user cannot change it.
- Trading Capacity:- Indication of dealing on wholesale , retail , matched principal (Principal), or other trading capacity . Valid values are :
-
Click Save Changes.
Configuring User Access to Bitstamp
To configure user access to Bitstamp:
-
Click the Users | Exchanges tab for a user selected in the data grid.
-
Click the exchange list drop down arrow, and scroll to and select an exchange.
-
Click the Subscriber Market Data, SDK Client Market Data, FIX and SDK Market Data and Order Routing tabs to configure the user for the selected exchange:
- Use the Subscriber Market Data tab to allow or deny user access to all subscriber market data or market data per product group.
- Use the SDK Client Market Data tab to allow or deny user access to market data using TT .NET SDK Client Side trading applications.
- Use the FIX and SDK Market Data tab to allow or deny user access to market data using FIX, TT .NET SDK Server Side, and TT Core SDK trading applications.
- Use the Order Routing tab to configure exchange credentials for user identification.
-
Configure the following Order Routing settings:

- Text A — An optional, user-defined text value that remains on submitted orders in the TT system but is not sent to the exchange. Alpha-numeric and special characters are allowed.
- Text B — An optional, user-defined text value that remains on submitted orders in the TT system but is not sent to the exchange. Alpha-numeric and special characters are allowed.
- Text C — An optional, user-defined text value that remains on submitted orders in the TT system, but is not sent to the exchange. Alpha-numeric and special characters are allowed.
- Text TT — An optional, user-defined text value that remains on submitted orders in the TT system, but is not sent to the exchange. Alpha-numeric and special characters are allowed.
- Max Order Rate — Sets the maximum number of orders per second that a user can enter per connection. This limit cannot exceed the exchange-defined order rate maximum.
-
Click the Subscriber Market Data tab to allow or deny access to All Market Data available at the exchange.
If Allow is enabled, click Sessions to set how many simultaneous market data sessions the user can have active using different IP Addresses/Applications. Selecting 0 – Delay Only indicates that the product group is denied in all environments except the delayed environment, which does not have access to real-time market data.Note: Any product groups that are disabled have not been authorized for your company. Please contact a Trading Technologies representative to enable them.
For exchanges that require market data agreements, the following indicators are displayed next to the “Sessions” field:— Indicates the market data agreement has been approved.
— Indicates the market data agreement is outstanding or pending approval.
Tip: Click a market data indicator to open the Agreements tab.
-
Click the SDK Client Market Data tab to allow or deny access to the market data groups available at the exchange for TT .NET SDK Client Side trading applications.
If you click Allow to enable a market data group, configure the Sessions field as follows:- If using only TT .NET SDK Client Side application keys, then set Sessions equal to the number of application keys you plan to run concurrently.
- If using only TT .NET SDK Client Side – Non-display application keys, then set Sessions equal to “0” and check the Non-display checkbox, which indicates the market data is for non-display purposes (e.g., black-box algorithm, automated program for calculating P/L, etc.) as defined by the exchange.
- If using both TT .NET SDK Client Side and TT .NET SDK Client Side – Non-display application keys, then set Sessions equal to the number of TT .NET SDK Client Side application keys that you plan to run concurrently and check the Non-display checkbox.
-
If you are distributing the market data externally (e.g., to users outside of your company), check the External Distribution checkbox.
Note: Any product groups that are disabled have not been authorized for your company. Please contact a Trading Technologies representative to enable them. -
Click the FIX and SDK Server Market Data tab to allow or deny access to the market data groups available at the exchange for TT FIX, TT .NET SDK Server Side, and TT Core SDK trading applications.
If you click Allow to enable a market data group, click Quantity to set the number of users viewing the market data behind the FIX feed or the number of TT .NET SDK Server Side or TT Core SDK applications using the data concurrently.
If the FIX feed or SDK server-side trading application is for non-display purposes (e.g., black-box algorithm, program for calculating P/L, etc.) as defined by the exchange, click Allow to enable the market data group, set the Quantity, and check Non-display.
If you are distributing the market data externally (e.g., to users outside of your company), check the External Distribution checkbox.
Note: Any product groups that are disabled have not been authorized for your company. Please contact a Trading Technologies representative to enable them.
If Allow is enabled, click Quantity to set the number of simultaneous FIX applications viewing the market data behind the FIX feed.Note: For Bitstamp1 FIX market data, the “Quantity” field represents the number of FIX applications per subscriber. For example, if you have three subscribers, and two of them have 2 applications each, and one of them has 1 application, then set Quantity to “5” (2 apps + 2apps + 1 app).
-
Click Save Changes.