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

# IDB Create OTC Trade

`POST /v2/idb/otc-trades`

## Request

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

Enables authorized inter-dealer broker to book a dual-sided OTC trade on behalf of two clients.

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.
Eg. for asset precision of 4 - `100`, `100.0`, `100.00`, `100.000` and `100.0000` are all accepted.

- requires [bearer token](/rest/authentication#add-authenticated-request-header) in authorization header

## Headers

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

## Request body

- IdbCreateOtcTradeCommand: A single command with details for both the maker and taker legs of a brokered OTC trade
  - `commandType` string, required: Specifies the command type and must be 'V1IdbCreateOtcTrade' to indicate the submission of an OTC trade
  - `idbRemarks` string: text field for IDB's internal reference to a trade, max length is 255 characters
  - `maker` BrokeredTradeSide, required
    - `tradingAccountId` string, required: unique trading account ID
    - `remarks` string: text field for client's internal reference to a trade, max length is 255 characters
  - `taker` BrokeredTradeSide, required
    - `tradingAccountId` string, required: unique trading account ID
    - `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, submitted from the maker's perspective
    - `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 IDB create OTC trade command was successfully acknowledged. To check the current status of the OTC trades, query [IDB Get OTC Trades](/rest/api/idb-otc-get-trades) using `sharedMatchKey` received in the response payload.

- IdbCreateOtcTradeResponse: A response for an acknowledged dual-sided brokered OTC trade creation request
  - `message` string, required: message indicating the status of the request
  - `sharedMatchKey` string, required: system-generated unique identifier for the dual-sided brokered OTC trade
  - `maker` IdbRequestItem, required
    - `requestId` string
    - `otcTradeId` string: unique numeric (i64) identifier generated on Bullish side expressed as a string value
  - `taker` IdbRequestItem, required
    - `requestId` string
    - `otcTradeId` string: unique numeric (i64) identifier generated on Bullish side expressed as a string 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)
