Generate an authorized, temporary pre-signed URL and storage key to upload payment receipts, transfer screenshots, and verification images directly to Binance C2C storage.
/sapi/v1/c2c/chat/image/pre-signed-url
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.
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).
|
imageName |
Body | STRING | Required |
Source image filename including extension (e.g., payment_proof.jpg, receipt_123.png).
|
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. |
The returned preSignedUrl is time-limited. Upload the image payload directly using an HTTP PUT request to the provided URL before expiration.
Example POST request using cURL to obtain an image upload pre-signed URL.
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"
}'
Example response returned on successful generation.
{
"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
}
| Field | Type | Description |
|---|---|---|
code |
STRING |
Standard Binance status code ("000000" indicates success).
|
message |
STRING | Status description or response feedback message. |
data.preSignedUrl |
STRING | Direct authorization upload endpoint where the binary image file must be sent via HTTP PUT. |
data.imageUrl |
STRING | Publicly accessible CDN/storage URL of the uploaded image to attach in C2C chat messages. |
data.imageKey |
STRING | Internal storage object key identifier representing the image resource. |
success |
BOOLEAN | Indicates overall request execution result. |
Workflow for uploading and sending chat images in Binance P2P.
Automatically upload and send bank transfer PDF/JPG confirmation receipts directly into the trade chat upon fiat execution.
Provide verified counterparty verification documents securely within order dispute or verification flows.
Integrate drag-and-drop receipt upload capabilities into custom merchant operator consoles and mobile helper apps.
This article is part of our complete learning guide covering professional cross-exchange cryptocurrency arbitrage.
Explore the Spot Arbitrage Guide →This article is part of our complete learning guide covering Binance P2P automation, merchant tools, and automated trading.
Explore the Binance P2P Automation Guide →