Данные QR по счёту
POST /Card/Handlers/{invoiceId}/sbp
Возвращает данные QR для оплаты счёта. Идемпотентно по построению: QR собирается из существующей checkout-сессии счёта, повторный вызов отдаёт тот же — новая сессия оставила бы плательщика с двумя QR, из которых работает чужой.
Токен проверяется до обращения к БД: пока он не подошёл, о существовании счёта сообщать нельзя — иначе по ответам перебираются идентификаторы.
⚠️ Тела запроса и ответа — контракт песочницы (документы платформы описывают
только адреса и смысл). Конверт взят от JSON v3.
sandbox_confirm_url существует только в песочнице: настоящего СБП здесь нет,
и без перехода по этому адресу виджет не довести до paid.
Параметры запроса
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
invoiceId | string | да | Идентификатор счёта |
Пример ответа
{
"success": true,
"data": {
"reference": "0d0f3c58-9b1e-4a77-9a0c-000000000001",
"method": "sbp",
"screen": "qr",
"deeplink_url": "https://pay-sandbox.digitalspb.com/checkout/0d0f3c58-9b1e-4a77-9a0c-000000000003/sbp/confirm",
"qr_payload": "https://pay-sandbox.digitalspb.com/checkout/0d0f3c58-9b1e-4a77-9a0c-000000000003/sbp/confirm",
"price": {
"amount": "100.00",
"currency": "RUB",
"vat_included": true
},
"merchant_order_id": "ORDER-000000001",
"expires_at": "2026-09-21T12:00:00Z",
"poll_interval_seconds": 5,
"sandbox_confirm_url": "https://pay-sandbox.digitalspb.com/checkout/0d0f3c58-9b1e-4a77-9a0c-000000000003/sbp/confirm"
}
}Коды ответов
| Код | Описание |
|---|---|
201 | Данные QR |
401 | Токен не подошёл |
404 | Счёт не найден либо у него нет сессии оплаты |