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.

Parameter In Type Required Description
clientType Header STRING Required Client Device Type initiating the request (e.g., WEB, APP, WEB_MOBILE).
advOrderNumber Body STRING Required Unique advertisement number identifier to place the order against.
asset Body STRING Required Cryptocurrency asset symbol (e.g., USDT, BTC).
fiatUnit Body STRING Required Fiat currency unit symbol (e.g., USD, EUR, KES).
tradeType Body STRING Required Trade direction (BUY or SELL).
buyType Body STRING Required Order calculation mode: BY_AMOUNT (crypto quantity) or BY_MONEY (fiat value).
totalAmount Body DECIMAL / DOUBLE Required Total purchase value expressed in crypto units or fiat units (matching buyType).
matchPrice Body DECIMAL / DOUBLE Optional Expected execution unit price to protect against slippage during order placement.
payId Body LONG Optional Seller's preferred payment method identifier.
payType Body STRING Optional Payment method type channel name (e.g., BANK, SPECIFIC_PAYMENT_NAME).
origin Body STRING Optional Order source tracking origin tag.
x-gray-env Header STRING Optional Environment flag identifier used for internal gray/stage testing.
x-trace-id Header STRING Optional Custom client trace ID for request lifecycle tracking and debugging.
x-user-id Header STRING Optional Target 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

Field Type Description
code STRING Standard Binance status code ("000000" indicates success).
message STRING Status description or response feedback message.
data.orderNumber STRING Newly created C2C trade order identification number.
data.totalPrice STRING Total fiat settlement amount to transfer or receive.
data.amount STRING Total crypto asset volume locked in escrow.
data.orderStatus STRING Initial order state (typically TRADING).
success BOOLEAN Indicates 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