Skip to content

Bitcoin Suisse API (1.5.0)

The Bitcoin Suisse API allows customers of Bitcoin Suisse to automate activities like trading, custody, staking and reporting using their own tools.

Have a look at the Developer Portal to find out how to get an API key and how authentication works.

Languages
Servers
Mock server
https://docs.bitcoinsuisse.com/_mock/api/pages/rest/bitcoinsuisseopenapi
Bitcoin Suisse API
https://api.bitcoinsuisse.com
Bitcoin Suisse Sandbox API
https://sandbox-api.btcsqa.net

Customers

Operations

Accounts

Operations

HistoricalPortfolioValue

Operations

Trading Accounts

Operations

Trading Configuration

Operations

Trading Instruments

Operations

Market Data

Operations

Trading Orders

Operations

List Orders

Request

Get status of all orders, can be filtered using optional query params

Security
api-key and nonce and timestamp and version and signature
Query
scopestring

Filter for all or only open orders

Enum"All""Open"
accountstring

Filter by account id

orderTypesArray of strings(TradeOrderType)

Filter by order type(s)

Items Enum"Market""Limit""Stop""PreviouslyQuoted"
statusArray of strings(OrderStatus)

Filter by order status

Items Enum"Unknown""New""PartiallyFilled""Filled""Cancelled""PendingCancel""Rejected""PendingNew""Expired""Draft"
symbolsArray of strings

Filter by symbols, example: 'BTC/CHF'

sidestring

Filter by side

Enum"Unknown""Buy""Sell"
transactionTimeMinstring(date-time)

Filter by min transaction time

transactionTimeMaxstring(date-time)

Filter by max transaction time

timeInForcestring

Filter by time in force

Enum"Unknown""GoodTillCancel""ImmediateOrCancel""FillOrKill""GoodTilDate"
expiresTimeMinstring(date-time)

Filter by min expiration time

expiresTimeMaxstring(date-time)

Filter by max expiration time

pageinteger(int32)

Pagination: Page

Default 1
pageSizeinteger(int32)

Pagination: Page size

Default 50
Headers
customer-numberstringrequired

Defines which customer the request is executed for. If you manage multiple customers, this is how you switch between them. Use the Customer Management API endpoints to get the customer data. Example: 'BTCS-CUS-123456'

curl -i -X GET \
  'https://docs.bitcoinsuisse.com/_mock/api/pages/rest/bitcoinsuisseopenapi/trading/api/v3/Orders?scope=All&account=string&orderTypes=Market&status=Unknown&symbols=string&side=Unknown&transactionTimeMin=2019-08-24T14%3A15%3A22Z&transactionTimeMax=2019-08-24T14%3A15%3A22Z&timeInForce=Unknown&expiresTimeMin=2019-08-24T14%3A15%3A22Z&expiresTimeMax=2019-08-24T14%3A15%3A22Z&page=1&pageSize=50' \
  -H 'X-Auth: YOUR_API_KEY_HERE' \
  -H 'X-Auth-Nonce: YOUR_API_KEY_HERE' \
  -H 'X-Auth-Signature: YOUR_API_KEY_HERE' \
  -H 'X-Auth-Timestamp: YOUR_API_KEY_HERE' \
  -H 'X-Auth-Version: YOUR_API_KEY_HERE' \
  -H 'customer-number: string'

Responses

Success

Bodyapplication/json
contentArray of objects or null(ExecutionReport)
countinteger or null(int32)
Response
application/json
{ "content": [ {} ], "count": 0 }

Cancel Order

Request

Besides the required properties, either an orderId or a clientOrderId must be provided to cancel an order

Security
api-key and nonce and timestamp and version and signature
Headers
customer-numberstringrequired

Defines which customer the request is executed for. If you manage multiple customers, this is how you switch between them. Use the Customer Management API endpoints to get the customer data. Example: 'BTCS-CUS-123456'

Body
accountinteger(int64)required

The account id of the traded currency of the order to cancel

clientOrderIdstring or null

The custom defined client order id

orderIdinteger(int64)

The Bitcoin Suisse order id

cancelRequestIdstring or null

A custom id for this request, can be used for tracing purposes in case of rejection

transactionTimestring(date-time)required

Current timestamp (UTC), if the timestamp is too old when the request reaches the server, it is rejected

curl -i -X DELETE \
  https://docs.bitcoinsuisse.com/_mock/api/pages/rest/bitcoinsuisseopenapi/trading/api/v3/Orders \
  -H 'Content-Type: application/json-patch+json' \
  -H 'X-Auth: YOUR_API_KEY_HERE' \
  -H 'X-Auth-Nonce: YOUR_API_KEY_HERE' \
  -H 'X-Auth-Signature: YOUR_API_KEY_HERE' \
  -H 'X-Auth-Timestamp: YOUR_API_KEY_HERE' \
  -H 'X-Auth-Version: YOUR_API_KEY_HERE' \
  -H 'customer-number: string' \
  -d '{
    "account": 0,
    "clientOrderId": "string",
    "orderId": 0,
    "cancelRequestId": "string",
    "transactionTime": "2019-08-24T14:15:22Z"
  }'

Responses

Success

Bodyapplication/json
accountinteger(int64)
clientOrderIdstring or null
orderIdinteger(int64)
quoteIdinteger(int64)
sidestring
Enum"Unknown""Buy""Sell"
orderTypestring
Enum"Unknown""Market""Limit""Stop""StopLimit""PreviouslyQuoted""BestExecution"
symbolstring or null
currencystring or null
quantitynumber(decimal)
pricenumber(decimal)
stopPricenumber(decimal)
timeInForcestring
Enum"Unknown""GoodTillCancel""ImmediateOrCancel""FillOrKill""GoodTilDate"
transactionTimestring(date-time)
expireTimestring(date-time)
createdAtstring(date-time)
toAccountinteger(int64)
executionIdstring or null
executionTypestring
Enum"Unknown""New""Cancelled""Replaced""PendingCancel""Rejected""Expired""Trade""Void""OrderStatus"
indicativePricenumber(decimal)
statusstring
Enum"Unknown""New""PartiallyFilled""Filled""Cancelled""PendingCancel""Rejected""PendingNew""Expired""Draft"
lastPricenumber(decimal)
lastQuantitynumber(decimal)
cumulativeQuantitynumber(decimal)
leavesQuantitynumber(decimal)
rejectionCodeinteger(int32)
textstring or null
availableToTradenumber(decimal)
commissionCurrencystring or null
commissionnumber(decimal)
settlementDatestring(date-time)
venueIdinteger(int32)
tenorstring
Enum"Unknown""Spot""Instantly"
prosecoFusecoboolean
isTwapboolean
isCommissionIncludedboolean
legPricenumber(decimal)
legSymbolstring or null
settlementAmountnumber(decimal)
fromAmountnumber(decimal)
toAmountnumber(decimal)
isSettledboolean
appliedCommissionPctnumber(decimal)
targetStrategystring
Enum"None""Smart""TWAP""Scheduled""DCA"
durationUnitstring
Enum"Unknown""Day""Hour""Month""Minute""Week"
durationinteger(int32)
pegOffsetTypestring
Enum"None""BasisPoints"
pegOffsetValueinteger(int32)
effectiveTimestring(date-time)
parentClientOrderIdinteger(int64)
sourceinteger(int32)
isMinimumCommissionAppliedboolean
legsArray of objects(Leg)required
legs[].​symbolstring or null
legs[].​sidestring
Enum"Unknown""Buy""Sell"
legs[].​isFiatToFiatboolean
legs[].​ratenumber(decimal)
legs[].​baseQuantitynumber(decimal)
legs[].​venuestring or null
Response
application/json
{ "account": 0, "clientOrderId": "string", "orderId": 0, "quoteId": 0, "side": "Unknown", "orderType": "Unknown", "symbol": "string", "currency": "string", "quantity": 0, "price": 0, "stopPrice": 0, "timeInForce": "Unknown", "transactionTime": "2019-08-24T14:15:22Z", "expireTime": "2019-08-24T14:15:22Z", "createdAt": "2019-08-24T14:15:22Z", "toAccount": 0, "executionId": "string", "executionType": "Unknown", "indicativePrice": 0, "status": "Unknown", "lastPrice": 0, "lastQuantity": 0, "cumulativeQuantity": 0, "leavesQuantity": 0, "rejectionCode": 0, "text": "string", "availableToTrade": 0, "commissionCurrency": "string", "commission": 0, "settlementDate": "2019-08-24T14:15:22Z", "venueId": 0, "tenor": "Unknown", "prosecoFuseco": true, "isTwap": true, "isCommissionIncluded": true, "legPrice": 0, "legSymbol": "string", "settlementAmount": 0, "fromAmount": 0, "toAmount": 0, "isSettled": true, "appliedCommissionPct": 0, "targetStrategy": "None", "durationUnit": "Unknown", "duration": 0, "pegOffsetType": "None", "pegOffsetValue": 0, "effectiveTime": "2019-08-24T14:15:22Z", "parentClientOrderId": 0, "source": 0, "isMinimumCommissionApplied": true, "legs": [ {} ] }

Get Order

Request

Provide either an orderId or a clientOrderId to get details about the order

Security
api-key and nonce and timestamp and version and signature
Path
idstringrequired

The Bitcoin Suisse order id (unsigned long integer) or customer's clientOrderId

Query
isClientOrderIdboolean

Flag, true if id is clientOrderId

Default false
Headers
customer-numberstringrequired

Defines which customer the request is executed for. If you manage multiple customers, this is how you switch between them. Use the Customer Management API endpoints to get the customer data. Example: 'BTCS-CUS-123456'

curl -i -X GET \
  'https://docs.bitcoinsuisse.com/_mock/api/pages/rest/bitcoinsuisseopenapi/trading/api/v3/Orders/{id}?isClientOrderId=false' \
  -H 'X-Auth: YOUR_API_KEY_HERE' \
  -H 'X-Auth-Nonce: YOUR_API_KEY_HERE' \
  -H 'X-Auth-Signature: YOUR_API_KEY_HERE' \
  -H 'X-Auth-Timestamp: YOUR_API_KEY_HERE' \
  -H 'X-Auth-Version: YOUR_API_KEY_HERE' \
  -H 'customer-number: string'

Responses

Success

Bodyapplication/json
accountinteger(int64)
clientOrderIdstring or null
orderIdinteger(int64)
quoteIdinteger(int64)
sidestring
Enum"Unknown""Buy""Sell"
orderTypestring
Enum"Unknown""Market""Limit""Stop""StopLimit""PreviouslyQuoted""BestExecution"
symbolstring or null
currencystring or null
quantitynumber(decimal)
pricenumber(decimal)
stopPricenumber(decimal)
timeInForcestring
Enum"Unknown""GoodTillCancel""ImmediateOrCancel""FillOrKill""GoodTilDate"
transactionTimestring(date-time)
expireTimestring(date-time)
createdAtstring(date-time)
toAccountinteger(int64)
executionIdstring or null
executionTypestring
Enum"Unknown""New""Cancelled""Replaced""PendingCancel""Rejected""Expired""Trade""Void""OrderStatus"
indicativePricenumber(decimal)
statusstring
Enum"Unknown""New""PartiallyFilled""Filled""Cancelled""PendingCancel""Rejected""PendingNew""Expired""Draft"
lastPricenumber(decimal)
lastQuantitynumber(decimal)
cumulativeQuantitynumber(decimal)
leavesQuantitynumber(decimal)
rejectionCodeinteger(int32)
textstring or null
availableToTradenumber(decimal)
commissionCurrencystring or null
commissionnumber(decimal)
settlementDatestring(date-time)
venueIdinteger(int32)
tenorstring
Enum"Unknown""Spot""Instantly"
prosecoFusecoboolean
isTwapboolean
isCommissionIncludedboolean
legPricenumber(decimal)
legSymbolstring or null
settlementAmountnumber(decimal)
fromAmountnumber(decimal)
toAmountnumber(decimal)
isSettledboolean
appliedCommissionPctnumber(decimal)
targetStrategystring
Enum"None""Smart""TWAP""Scheduled""DCA"
durationUnitstring
Enum"Unknown""Day""Hour""Month""Minute""Week"
durationinteger(int32)
pegOffsetTypestring
Enum"None""BasisPoints"
pegOffsetValueinteger(int32)
effectiveTimestring(date-time)
parentClientOrderIdinteger(int64)
sourceinteger(int32)
isMinimumCommissionAppliedboolean
legsArray of objects(Leg)required
legs[].​symbolstring or null
legs[].​sidestring
Enum"Unknown""Buy""Sell"
legs[].​isFiatToFiatboolean
legs[].​ratenumber(decimal)
legs[].​baseQuantitynumber(decimal)
legs[].​venuestring or null
Response
application/json
{ "account": 0, "clientOrderId": "string", "orderId": 0, "quoteId": 0, "side": "Unknown", "orderType": "Unknown", "symbol": "string", "currency": "string", "quantity": 0, "price": 0, "stopPrice": 0, "timeInForce": "Unknown", "transactionTime": "2019-08-24T14:15:22Z", "expireTime": "2019-08-24T14:15:22Z", "createdAt": "2019-08-24T14:15:22Z", "toAccount": 0, "executionId": "string", "executionType": "Unknown", "indicativePrice": 0, "status": "Unknown", "lastPrice": 0, "lastQuantity": 0, "cumulativeQuantity": 0, "leavesQuantity": 0, "rejectionCode": 0, "text": "string", "availableToTrade": 0, "commissionCurrency": "string", "commission": 0, "settlementDate": "2019-08-24T14:15:22Z", "venueId": 0, "tenor": "Unknown", "prosecoFuseco": true, "isTwap": true, "isCommissionIncluded": true, "legPrice": 0, "legSymbol": "string", "settlementAmount": 0, "fromAmount": 0, "toAmount": 0, "isSettled": true, "appliedCommissionPct": 0, "targetStrategy": "None", "durationUnit": "Unknown", "duration": 0, "pegOffsetType": "None", "pegOffsetValue": 0, "effectiveTime": "2019-08-24T14:15:22Z", "parentClientOrderId": 0, "source": 0, "isMinimumCommissionApplied": true, "legs": [ {} ] }

Public

Operations

Staking Orders

Operations

Staking Accounts

Operations

Staking Products

Operations

Staking Rewards

Operations

TradingApi

Operations

Reports

Operations

Loan Report

Operations