BINANCE SAPI · C2C

Mark Order as Paid API

Notify the counterparty and update peer-to-peer (C2C) order status to paid after completing external fiat payment transfer.

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

Overview

This endpoint enables buyers and automated payout bots to confirm that the fiat funds have been transferred to the seller's selected payment account. Calling this endpoint changes the order state from TRADING to BUYER_PAYED (Paid), locks the cancellation window, and notifies the seller to verify receipt and release crypto escrow.

Automated buy systems, banking integrations, and mobile payout daemons trigger this endpoint immediately after receiving successful transaction confirmations from upstream bank rails or payment gateways.

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).
orderNumber Body STRING Required Unique order number identifier to mark as paid.
payId Body LONG Optional Payment configuration identifier used by the buyer to execute the fiat transfer.
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.
!
Strict Payment Verification Policy

Only call this endpoint after the full fiat transfer has been processed by your bank or payment provider. Marking orders as paid without completing real fiat transfer can result in account suspension and trade dispute penalties.

02

Request Example

Example POST request using cURL to mark an order as paid.

cURL BASH
curl -X POST \
'https://api.binance.com/sapi/v1/c2c/orderMatch/markOrderAsPaid' \
-H 'clientType: WEB' \
-H 'Content-Type: application/json' \
-d '{
  "orderNumber": "202608161234567890",
  "payId": 123456
}'
03

Response

Example response returned on successful status update.

RESPONSE 200 OK
{
    "code": "000000",
    "message": "success",
    "data": {
        "orderNumber": "202608161234567890",
        "orderStatus": "BUYER_PAYED"
    },
    "success": true
}

Response Fields

Field Type Description
code STRING Standard Binance status code ("000000" indicates success).
message STRING Response execution feedback or status description.
data.orderNumber STRING Unique identifier of the updated C2C trade order.
data.orderStatus STRING Updated order lifecycle state (e.g., BUYER_PAYED).
success BOOLEAN Indicates overall request execution result.
04

How It Works

Workflow for marking a C2C trade order as paid.

01 Execute Transfer Send fiat funds via banking rails or payment apps.
02 Attach Pay Details Pass orderNumber and selected payId in request body.
03 Send POST Request POST payload to /markOrderAsPaid endpoint.
04 Status Updated Order transitions to Paid; seller is notified to release.

Common Use Cases

Automated Payout Webhooks

Trigger status updates automatically when banking API callbacks confirm outgoing wire transfer execution.

Payment Confirmation Buttons

Power "Transferred, notify seller" action buttons inside custom merchant dashboards and client applications.

Arbitrage Execution Bots

Instantly notify the seller upon successful programmatic fiat settlement to speed up cycle times.



💬
Telegram WhatsApp