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

Быстрые откупы по QR

Быстрый откуп — выплата, у которой сумму задаёт не мерчант, а сам QR-код. Вы передаёте QR-ссылку, платформа проверяет её, извлекает сумму и создаёт обычную Pay-Out сделку с методом qr.

Сценарий рассчитан на случай, когда получатель предъявляет готовый QR к оплате: вам не нужно ни разбирать его самостоятельно, ни доверять сумме, которую назвал клиент.

Обычный Pay-OutБыстрый откуп
СуммаПередаёте вы, в поле amountЧитается из QR
РеквизитыПередаёте выСодержатся в QR
ВалютаВалюта кабинетаТолько RUB
Метод сделкиПо реквизитуВсегда qr
Дальнейшая обработкаСтандартнаяСтандартная

Начиная со статуса pending быстрый откуп ничем не отличается от обычной выплаты: те же статусы, те же webhook-уведомления, тот же метод отмены.

Принимаются ссылки только с четырёх доменов:

ДоменОткуда берётся сумма
qr.nspk.ruИз данных QR по запросу в НСПК
nspk.ruИз данных QR по запросу в НСПК
multiqr.ruИз query-параметра amount
platiqr.ruИз query-параметра amount

Для доменов НСПК источником истины служит ответ платёжной системы, а не то, что написано в query-параметрах ссылки.

POST /payment/instant-pay-out/validate HTTP/1.1
Host: https://svc.cashwell.io
Content-Type: application/json
X-Secure-Key: <ваш API-ключ>
{
"qrCode": "https://qr.nspk.ru/AD10006BVTEURKJF91L9GOBEE69OVA5M"
}
{ "valid": true, "amount": 1293.34 }

Для непригодного QR ответ будет { "valid": false, "amount": null }. Причину отказа метод не раскрывает — это защита от перебора: по ответу нельзя понять, дело в домене, в самом QR или в его состоянии.

Шаг необязателен, но полезен: он позволяет показать сумму клиенту до списания средств.

POST /payment/instant-pay-out HTTP/1.1
Host: https://svc.cashwell.io
Content-Type: application/json
X-Secure-Key: <ваш API-ключ>
{
"qrCode": "https://qr.nspk.ru/AD10006BVTEURKJF91L9GOBEE69OVA5M",
"merchantTransactionId": "buyout-3001",
"callbackUrl": "https://example.com/callback",
"ownerName": "Иван Иванов"
}
ПолеОбяз.Описание
qrCodeдаQR-ссылка с поддерживаемого домена
merchantTransactionIdдаВаш идентификатор операции
callbackUrlнетАдрес для webhook по этой сделке
ownerNameнетИмя получателя, если оно вам известно
payerInfoнетДанные получателя в вашей системе

В ответ приходит обычная Pay-Out сделка. Дальше следите за ней через webhook-уведомления и стандартные методы получения сделок.

Запрос будет отклонён с INVALID_PARAMS, если в теле присутствует любое из:

ПолеПочему нельзя
amountСумму задаёт QR. Передача поля означала бы попытку её подменить
currency, отличная от RUBСценарий работает только с рублями
isMatching, matchingTransactionIdБыстрые откупы не участвуют в matching
  • QR-ссылка невалидна или домен не поддерживается;
  • в QR нет суммы или она вне допустимых границ;
  • НСПК вернул неуспешный статус по этому QR;
  • передана валюта, отличная от RUB;
  • merchantTransactionId уже использован;
  • на балансе недостаточно средств.

Конкретные коды — в разделе Коды ошибок.

Быстрый откуп живёт заметно меньше обычной выплаты — около двух с половиной минут. Это осознанное ограничение: сумма и реквизит привязаны к конкретному QR, который может быть оплачен кем-то другим.

Если исполнитель не найден за это время, сделка отменяется, а средства возвращаются на баланс. Повторить попытку можно новым запросом с новым merchantTransactionId.