Skip to main content

Place Order

info
  • Orders are processed asynchronously. A successful response means the order was accepted, not settled. Use Get Order List to track order status.
  • orderLinkId is required and must be unique per UID within RWA business scope. Reusing a previous orderLinkId returns error 180025 ORDER_ALREADY_EXISTS.
  • Stake: deducts settlement coin from accountType and allocates shares at next NAV.
  • Redeem: locks shares and refunds settlement coin to accountType after settlement (T+N).
  • Rate Limit: 5 req/s (UID)

HTTP Request

POST/v5/earn/rwa/place-order

Request Parameters

ParameterRequiredTypeComments
productIdtrueintegerProduct ID
orderTypetruestringOrder type: Stake (subscription), Redeem (redemption)
cointruestringSettlement coin (uppercase), e.g. USDC
orderLinkIdtruestringUser-defined idempotency key. Max 36 characters, allowed charset [a-zA-Z0-9-_]. Must be unique per UID within RWA scope
stakeAmountfalsestringStake amount in settlement coin (decimal string). Required when orderType=Stake, ignored otherwise
redeemSharesfalsestringRedeem share quantity (decimal string). Required when orderType=Redeem, ignored otherwise
accountTypefalsestringSource/destination account: FUND, UNIFIED. Default: FUND

Response Parameters

ParameterTypeComments
orderIdstringSystem-generated order ID (UUID)
orderLinkIdstringUser-defined order ID (echoed back)

Request Example

POST /v5/earn/rwa/place-order HTTP/1.1
Host: api.bybit.com
X-BAPI-SIGN: XXXXX
X-BAPI-API-KEY: xxxxxxxxxxxxxxxxxx
X-BAPI-TIMESTAMP: 1710691200000
X-BAPI-RECV-WINDOW: 5000
Content-Type: application/json

{
"productId": 1001,
"orderType": "Stake",
"coin": "USDC",
"stakeAmount": "100",
"accountType": "FUND",
"orderLinkId": "my-stake-001"
}

Response Example

{
"retCode": 0,
"retMsg": "success",
"result": {
"orderId": "550e8400-e29b-41d4-a716-446655440000",
"orderLinkId": "my-stake-001"
},
"retExtInfo": {},
"time": 1710691200000
}