Binance API / SAPI / C2C
BINANCE SAPI · C2C

Get Chat Image Pre-Signed URL API

Generate an authorized, temporary pre-signed URL and storage key to upload payment receipts, transfer screenshots, and verification images directly to Binance C2C storage.

ENDPOINT
POST /sapi/v1/c2c/chat/image/pre-signed-url
Authentication USER_DATA / SIGNED
API Group C2C / Chat
Method POST
Response JSON

Overview

This endpoint enables trading bots, customer support tools, and merchant webhooks to request a temporary, pre-signed upload URL for sending image files within Binance C2C (P2P) order chat sessions. By providing the desired file name (imageName), the service returns a signed S3/object storage target URL along with the resulting resource identifier.

Once the client uploads the raw binary image data (such as a banking payment receipt or bank slip) directly to the pre-signed URL via HTTP PUT, the generated image URL or identifier can be shared inside the C2C order chat conversation. For automated workflows, see our step-by-step tutorial on sending payment receipts to Binance P2P chat using Python WebSocket.

01

Request Parameters

Parameters accepted in Body and HTTP Headers.

ParameterInTypeRequiredDescription
clientTypeHeaderSTRINGRequiredClient Device Type initiating the request (e.g., WEB, APP, WEB_MOBILE).
imageNameBodySTRINGRequiredSource image filename including extension (e.g., payment_proof.jpg, receipt_123.png).
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

Direct Binary Upload Workflow

The returned preSignedUrl is time-limited. Upload the image payload directly using an HTTP PUT request to the provided URL before expiration.

02

Request Example

Example POST request using cURL to obtain an image upload pre-signed URL.

cURL BASH
curl -X POST \
'https://api.binance.com/sapi/v1/c2c/chat/image/pre-signed-url' \
-H 'clientType: WEB' \
-H 'Content-Type: application/json' \
-d '{
  "imageName": "bank_transfer_receipt.jpg"
}'

03

Response

Example response returned on successful generation.

RESPONSE 200 OK
{
    "code": "000000",
    "message": "success",
    "data": {
        "preSignedUrl": "https://binance-c2c-upload.s3.amazonaws.com/chat/2026/08/17/img_987654321.jpg?AWSAccessKeyId=...",
        "imageUrl": "https://binance-c2c.s3.amazonaws.com/chat/2026/08/17/img_987654321.jpg",
        "imageKey": "chat/2026/08/17/img_987654321.jpg"
    },
    "success": true
}

Response Fields

FieldTypeDescription
codeSTRINGStandard Binance status code ("000000" indicates success).
messageSTRINGStatus description or response feedback message.
data.preSignedUrlSTRINGDirect authorization upload endpoint where the binary image file must be sent via HTTP PUT.
data.imageUrlSTRINGPublicly accessible CDN/storage URL of the uploaded image to attach in C2C chat messages.
data.imageKeySTRINGInternal storage object key identifier representing the image resource.
successBOOLEANIndicates overall request execution result.

04

How It Works

Workflow for uploading and sending chat images in Binance P2P.

01 Request Upload URL POST imageName to /image/pre-signed-url.
 
02 Upload Binary Send HTTP PUT request with raw image bytes to preSignedUrl.
 
03 Obtain Image URL Use data.imageUrl / imageKey as confirmed media resource.
 
04 Send in Chat Post message containing image proof into order chat stream.

Common Use Cases

Automated Payment Receipts

Automatically upload and send bank transfer PDF/JPG confirmation receipts directly into the trade chat upon fiat execution.

Proof of Identity & KYC

Provide verified counterparty verification documents securely within order dispute or verification flows.

Merchant Desk Uploads

Integrate drag-and-drop receipt upload capabilities into custom merchant operator consoles and mobile helper apps.

💬
Telegram WhatsApp