Payment proof
Payment proof is a receipt image that the fiat payer attaches to a trade. Only the customer on a BUY uploads proof. On a SELL, the merchant is the fiat payer and the customer can only read it.
Upload a receipt
Call POST /v1/trades/{tradeId}/proof while the trade is CREATED, PAID or DISPUTED. Send the image as raw base64 in dataBase64, without a data: prefix, together with a contentType of image/png or image/jpeg. Uploading proof does not mark the trade as paid.
An identical upload returns the existing matching receipt. After an uncertain result, read the current proof before you change it.
Read the receipt
GET /v1/trades/{tradeId}/proof returns the original image bytes in dataBase64. The base64 field is only a blurred preview. Authenticated reads preserve the native files that merchants upload.
Replace the current receipt
Call PATCH /v1/trades/{tradeId}/proof with expectedProofId set to the current proof’s ID. If the proof has changed since you read it, the call returns 409 CONFLICT and leaves the active receipt unchanged. Do not retry different contents against a stale revision.
Remove the active receipt
Call DELETE /v1/trades/{tradeId}/proof with expectedProofId in the JSON body of the DELETE request. Sinbad keeps the evidence that is already in the chat history.
Errors
New uploads must be PNG or JPEG files of up to 3 MiB. Those limits do not restrict how Sinbad reads merchant files that already exist. See Limits and limitations.