Binance API / SAPI / C2C
BINANCE SAPI · C2C

Place An Order API

Initiate and execute a new peer-to-peer (C2C) trade order against an active advertisement, locking escrow assets and opening counterparty trade settlement.

ENDPOINT
POST /sapi/v1/c2c/orderMatch/placeOrder
Authentication USER_DATA / SIGNED
API Group C2C / Order Match
Method POST
Response JSON

Overview

This endpoint places a new trade order against a specified peer-to-peer advertisement (advOrderNumber). Orders can be formulated by specifying either the exact target digital asset amount (BY_AMOUNT) or the total fiat currency volume (BY_MONEY).

Upon placement, the corresponding cryptocurrency volume is locked in Binance escrow, trade countdown timers begin, and an active order match session is established between buyer and seller.

⚡

Ready-to-Use Solution

Looking to automate order execution at the best rates? Check out our Binance P2P Trading Bot — an automated software for Binance that provides instant auto-buying, dynamic bank/fiat support, and Telegram alerts.

01

Request Parameters

Parameters accepted in Body and HTTP Headers.

ParameterInTypeRequiredDescription
clientTypeHeaderSTRINGRequiredClient Device Type initiating the request (e.g., WEB, APP, WEB_MOBILE).
advOrderNumberBodySTRINGRequiredUnique advertisement number identifier to place the order against.
assetBodySTRINGRequiredCryptocurrency asset symbol (e.g., USDT, BTC).
fiatUnitBodySTRINGRequiredFiat currency unit symbol (e.g., USD, EUR, KES).
tradeTypeBodySTRINGRequiredTrade direction (BUY or SELL).
buyTypeBodySTRINGRequiredOrder calculation mode: BY_AMOUNT (crypto quantity) or BY_MONEY (fiat value).
totalAmountBodyDECIMAL / DOUBLERequiredTotal purchase value expressed in crypto units or fiat units (matching buyType).
matchPriceBodyDECIMAL / DOUBLEOptionalExpected execution unit price to protect against slippage during order placement.
payIdBodyLONGOptionalSeller's preferred payment method identifier.
payTypeBodySTRINGOptionalPayment method type channel name (e.g., BANK, SPECIFIC_PAYMENT_NAME).
originBodySTRINGOptionalOrder source tracking origin tag.
x-gray-envHeaderSTRINGOptionalEnvironment flag identifier used for internal gray/stage testing.
x-trace-idHeaderSTRINGOptionalCustom client trace ID for request lifecycle tracking and debugging.
x-user-idHeaderSTRINGOptionalTarget user identifier for context validation.
i

Price Match Protection

Supplying matchPrice ensures that the order will only execute if the ad's current unit price matches your target valuation, preventing unexpected pricing fluctuations caused by floating-price repricers.

02

Request Example

Example POST request using cURL to buy 100 USDT via fiat.

cURL BASH
curl -X POST \
'https://api.binance.com/sapi/v1/c2c/orderMatch/placeOrder' \
-H 'clientType: WEB' \
-H 'Content-Type: application/json' \
-d '{
  "advOrderNumber": "1122334455667788",
  "asset": "USDT",
  "fiatUnit": "USD",
  "tradeType": "BUY",
  "buyType": "BY_AMOUNT",
  "totalAmount": 100.00,
  "matchPrice": 1.015,
  "payType": "BANK"
}'

03

Response

Example response returned on successful order placement.

RESPONSE 200 OK
{
    "code": "000000",
    "message": "success",
    "data": {
        "orderNumber": "202608161234567890",
        "advNo": "1122334455667788",
        "tradeType": "BUY",
        "asset": "USDT",
        "fiat": "USD",
        "amount": "100.00",
        "totalPrice": "101.50",
        "unitPrice": "1.015",
        "orderStatus": "TRADING",
        "createTime": 1786953600000
    },
    "success": true
}

Response Fields

FieldTypeDescription
codeSTRINGStandard Binance status code ("000000" indicates success).
messageSTRINGStatus description or response feedback message.
data.orderNumberSTRINGNewly created C2C trade order identification number.
data.totalPriceSTRINGTotal fiat settlement amount to transfer or receive.
data.amountSTRINGTotal crypto asset volume locked in escrow.
data.orderStatusSTRINGInitial order state (typically TRADING).
successBOOLEANIndicates overall request execution result.

04

How It Works

Workflow for placing a C2C trade order.

01 Select Ad & Mode Choose advOrderNumber and specify BY_AMOUNT or BY_MONEY.
 
02 Send POST Request Call /sapi/v1/c2c/orderMatch/placeOrder endpoint.
 
03 Lock Escrow Exchange locks crypto assets into secure escrow.
 
04 Start Settlement Order number is returned and payment countdown begins.

Common Use Cases

Arbitrage Auto-Buy Bots

Execute instantaneous orders against target competitor ads when cross-market spreads exceed threshold targets.

Custom Checkout Portals

Allow platform users to buy cryptocurrency seamlessly by embedding direct P2P order matching flows.

Automated Liquidity Replenishment

Place programmatic buy orders to rebalance merchant working capital when inventory drops below limits.

Arbitrage Auto-Buy Bots

Execute instantaneous orders against target competitor ads when spreads exceed threshold targets. 
Explore our P2P Bot →

💬
Telegram WhatsApp