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-urlThis 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
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. |
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
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"
}'03
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. |
04
Workflow for uploading and sending chat images in Binance P2P.
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.