Skip to Content

QR data for the invoice

POST /Card/Handlers/{invoiceId}/sbp

Returns the QR data for the invoice. Idempotent by construction: the QR is built from the invoice’s existing checkout session, so a repeated call returns the same one — a new session would leave the payer with two QR codes, only one of which works.

The token is verified before the database is touched: until it matches, the existence of the invoice must not be revealed — otherwise identifiers can be enumerated from the responses.

⚠️ The request and response bodies are a sandbox contract (the platform documents describe only the addresses and the meaning). The envelope follows JSON v3. sandbox_confirm_url exists in the sandbox only: there is no real SBP here, and without following that URL the widget never reaches paid.

Request parameters

FieldTypeRequiredDescription
invoiceIdstringyesInvoice identifier
Response example
{ "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" } }

Response codes

CodeDescription
201QR data
401The token did not match
404The invoice was not found or has no payment session