Передача чека
Прикрепляет к платежу чек об оплате — файл или ссылку. Метод независим от подтверждения перевода: чек можно дослать позже, в том числе когда платёж уже отменён или по нему открыта апелляция.
Endpoint
POST /v1/payments/{id}/receipt
Параметры пути
| Параметр | Тип | Описание |
|---|---|---|
id | string | ID платежа (UUID) |
Способы передачи
Чек передаётся одним из двух способов — файлом или ссылкой. Хотя бы один обязателен.
Файл — multipart/form-data
| Поле | Тип | Описание |
|---|---|---|
receipt | file | Файл чека. Также принимаются имена attachment, file, proof |
data | string (JSON) | Необязательная JSON-часть запроса |
Ограничения файла: не больше 10 МБ, форматы png, jpg, jpeg, webp,
heic, pdf. Файл сохраняется на нашей стороне и доступен разбирающему
апелляцию.
Ссылка — application/json
| Параметр | Тип | Описание |
|---|---|---|
receipt_url | string | Ссылка на чек на вашей стороне |
Пример: файл + 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_002 | 400 | Не передан ни файл, ни receipt_url, либо неверная JSON-часть |
PAY_006 | 404 | Платёж не найден |
PAY_008 | 400 | Чек нельзя приложить в текущем статусе платежа |
PAY_009 | 400 | Файл больше 10 МБ |
PAY_010 | 400 | Неподдерживаемый формат файла |