Skip to Content
Разовые платежиСправочник методов JSON + XMLSDK встраивания виджета оплаты

SDK встраивания виджета оплаты

GET /Card/Sbp/embed.js

SDK встраивания: SbpWidget.mount() (виджет) и SbpWidget.renderButton() (фирменная кнопка СБП поверх виджета). Файл один на оба контура платформы — режим определяется тем, с какого адреса он загружен; отсюда же берётся apiBase по умолчанию.

<div id="pay"></div> <script src="https://pay-sandbox.digitalspb.com/Card/Sbp/embed.js"></script> <script> SbpWidget.mount('#pay', { invoiceId: '1624505c-0031-00cf-7d54-4cf1ce08cb30', // из ответа createInvoice token: 'eyJ...', // AuthorizationToken оттуда же brand: { name: 'Тёплый угол', logo: '/logo.png', primary: '#c2410c', background: '#fff8f3' }, onSuccess: function () { location.href = '/thanks'; }, onFail: function () {}, onExpired: function () {}, // срок QR истёк — счёт нужно создать заново onError: function (e) {} }); </script>

mount() вставляет <iframe> со страницей виджета и общается с ней через postMessage: авторесайз высоты и события success / fail / expired / error → колбэки. Сообщения принимаются только от своего фрейма и только с origin платёжного домена. Возвращается объект с destroy().

renderButton('#pay', { createInvoice, brand, ... }) рисует кнопку СБП: создание счёта делегируется колбэку createInvoice() на backend партнёра (он возвращает { invoiceId, token }), кнопка ведёт состояния и после успеха монтирует виджет. У результата есть setBrand(), reset() и destroy().