---
title: "Create OTC Trade"
method: POST
path: "/v2/otc-trades"
tags: ["otc"]
---

# Create OTC Trade

`POST /v2/otc-trades`

## Request

- Base URL: `https://api.exchange.bullish.com/trading-api`
- URL: `https://api.exchange.bullish.com/trading-api/v2/otc-trades`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/bullish/apis/bullish-trading-api/docs/v2/otc-trades/post.ts> (a function with typed inputs; its response is checked against the schema)

Creates an OTC trade, requires [bearer token](/rest/authentication#add-authenticated-request-header) in authorization header.

This endpoint uses the [signing format](/rest/authentication#signing-format) which does not require strict field ordering 
and addition of null fields in the request body. Prices do not require strict precision. 
E.g. for asset precision of 4 - `100`, `100.0`, `100.00`, `100.000` and `100.0000` are all accepted.

## Headers

- `BX-SIGNATURE` string, required
- `BX-TIMESTAMP` string, required
- `BX-NONCE` string, required
- `BX-REFERRER` string

## Request body

- CreateOtcTradeCommand: A command with details to an OTC trade
  - `commandType` string, required: Specifies the command type and must be ‘V1CreateOtcTrade' to indicate the submission of an OTC trade.
  - `clientOtcTradeId` string: unique numeric (i64) identifier generated on the client side expressed as a string value
  - `sharedMatchKey` string, required: Unique shared key that is agreed between the two customers to represent their OTC trade to be matched on Bullish's OTC Clearing Facility. Must be a 12 to 64 characters alphanumeric value
  - `tradingAccountId` string, required: unique trading account ID
  - `isTaker` boolean, required
  - `remarks` string: text field for client's internal reference to a trade, max length is 255 characters
  - `trades` TradeInOtcRequest[], required: all trades for the OTC trade
    - `symbol` string, required: market symbol. E.g. `BTC-USDC-PERP` for PERPETUAL market `BTC-USDC-20250613` for DATEDFUTURE market and `BTC-USDC-20250613-100000-C` for OPTION market
    - `price` string, required: see [asset value](/rest/general/price-quantity-precision) format
    - `quantity` string, required: see [asset value](/rest/general/price-quantity-precision) format
    - `side` string, required: trade side can have the following string values `BUY`, `SELL`

## Response `200`

Status OK. The create OTC trade command was successfully acknowledged. To check the current status of the 
OTC trade, query [Get Trade by ID](/rest/api/get-otc-trade-by-id) using `otcTradeId` or `clientOtcTradeId` received in the response payload.

- CreateOtcTradeResponse: A response for an acknowledged OTC trade creation request
  - `message` string, required: message indicating the status of the request
  - `requestId` string, required
  - `otcTradeId` string, required: unique numeric (i64) identifier generated on Bullish side expressed as a string value
  - `clientOtcTradeId` string: unique numeric (i64) identifier generated on the client side expressed as a string value
  - `sharedMatchKey` string, required: Unique shared key that is agreed between the two customers to represent their OTC trade to be matched on Bullish's OTC Clearing Facility. Must be a 12 to 64 characters alphanumeric value

## Other responses

- `400`: Bad Request For example, sending a request with the `BX-SIGNATURE` header missing will result in the following response:
- `401`: Unauthorized. Either API details are missing or invalid
- `403`: Forbidden- You do not have access to the requested resource
- `500`: Internal Server Error

---

[API](https://skmtc.dev/bullish/apis/bullish-trading-api.md) - [All operations](https://skmtc.dev/bullish/apis/bullish-trading-api/llms.txt) - [OpenAPI document](https://skmtc.dev/bullish/apis/bullish-trading-api/revisions/df5d69ccedcf?raw)
