Перейти к основному содержимому

Передача чека

Прикрепляет к платежу чек об оплате — файл или ссылку. Метод независим от подтверждения перевода: чек можно дослать позже, в том числе когда платёж уже отменён или по нему открыта апелляция.

Endpoint

POST /v1/payments/{id}/receipt

Параметры пути

ПараметрТипОписание
idstringID платежа (UUID)

Способы передачи

Чек передаётся одним из двух способов — файлом или ссылкой. Хотя бы один обязателен.

Файл — multipart/form-data

ПолеТипОписание
receiptfileФайл чека. Также принимаются имена attachment, file, proof
datastring (JSON)Необязательная JSON-часть запроса

Ограничения файла: не больше 10 МБ, форматы png, jpg, jpeg, webp, heic, pdf. Файл сохраняется на нашей стороне и доступен разбирающему апелляцию.

Ссылка — application/json

ПараметрТипОписание
receipt_urlstringСсылка на чек на вашей стороне

Пример: файл + JSON-часть

curl -X POST https://api.bopay.io/v1/payments/550e8400-e29b-41d4/receipt \
-H "X-Identity: your-api-key" \
-H "X-Signature: calculated-signature" \
-F 'data={"comment":"чек из приложения банка"}' \
-F "[email protected]"

Пример: ссылка

curl -X POST https://api.bopay.io/v1/payments/550e8400-e29b-41d4/receipt \
-H "Content-Type: application/json" \
-H "X-Identity: your-api-key" \
-H "X-Signature: calculated-signature" \
-d '{"receipt_url":"https://your-site.com/receipts/12345.jpg"}'

Ответ

{
"id": "550e8400-e29b-41d4-a716-446655440000",
"ext_id": "order_12345",
"status": "PENDING",
"receipt_url": "/uploads/receipts/550e8400-e29b-41d4_20260827194512.png"
}

Для загруженного файла receipt_url — ссылка на наше хранилище, для внешнего чека возвращается переданная вами ссылка.

Допустимые статусы платежа

Чек принимается, пока по платежу возможен разбор: PENDING, DISPUTE, CANCELLED, CANCELLED_APPEAL. Для завершённого платежа метод вернёт PAY_008.

Если платёж уже находится в апелляции, чек дополнительно попадает в карточку апелляции — но только если чек к ней ещё не приложен; ранее переданный не затирается.

Подпись запроса

Подпись считается как обычно — HMAC-SHA1 от METHOD + URL + BODY, где BODY — тело запроса как есть. Для multipart/form-data это означает всё multipart-тело целиком, вместе с границами и содержимым файла.

Ошибки

КодHTTPОписание
PAY_002400Не передан ни файл, ни receipt_url, либо неверная JSON-часть
PAY_006404Платёж не найден
PAY_008400Чек нельзя приложить в текущем статусе платежа
PAY_009400Файл больше 10 МБ
PAY_010400Неподдерживаемый формат файла