Интеграция платёжной системы СберPay на сайт
При попытке подключить СберPay на сайт разработчики часто сталкиваются с неочевидными ограничениями: медленная поддержка банка, неполная документация и сложности с двухстадийной оплатой. Мы в своей практике интегрировали СберPay десятки раз — более 50 проектов — и выработали надёжный подход, который гарантирует стабильную работу. Например, на одном из проектов мы сократили время обработки оплат на 40% за счёт правильной настройки callback-уведомлений. Ниже — технические детали, которые помогут избежать типичных ошибок.
Как подключить СберPay к сайту?
СберPay — это не отдельный платёжный шлюз, а метод оплаты через приложение СберБанк Онлайн. Для его работы необходим договор эквайринга со Сбербанком. После подписания договора выдаются учётные данные для тестовой и боевой среды. Аутентификация выполняется через userName + password или через token (рекомендуемый способ). Используйте токен — он снижает риск утечки учётных данных. Комиссия за транзакцию зависит от тарифа и составляет несколько процентов — уточняйте при заключении договора.
Почему стоит выбрать Сбербанк Эквайринг?
Сбербанк Эквайринг — один из самых распространённых платёжных шлюзов в России. Он поддерживает оплату по картам, СберPay, QR-коды через СБП и Apple Pay/Google Pay. Интеграция через REST API проста, а двухстадийная оплата позволяет реализовать сложные сценарии. Мы гарантируем корректную работу шлюза после интеграции, опираясь на 5+ лет опыта и более 50 успешных проектов. Экономия от перехода на двухстадийную оплату может составить до 10% от выручки за счёт снижения риска возвратов.
Подключение к Сбербанк Эквайрингу
Для работы нужен договор эквайринга со Сбербанком. После подписания выдаются логин и пароль для тестовой и боевой среды.
| Среда | URL |
|---|---|
| Тестовая | https://3dsec.sberbank.ru/payment/rest/ |
| Боевая | https://securepayments.sberbank.ru/payment/rest/ |
Аутентификация — через userName + password в каждом запросе, либо через token.
Пример регистрации заказа (PHP)
$response = Http::get('https://securepayments.sberbank.ru/payment/rest/register.do', [
'userName' => env('SBER_USERNAME'),
'password' => env('SBER_PASSWORD'),
'orderNumber' => 'order-12345',
'amount' => 150000, // в копейках
'returnUrl' => 'https://example.com/payment/return',
'failUrl' => 'https://example.com/payment/fail',
'description' => 'Заказ #12345',
'email' => '[email protected]',
'language' => 'ru',
'pageView' => 'DESKTOP', // или MOBILE
]);
$orderId = $response->json('orderId'); // ID в системе Сбербанка
$formUrl = $response->json('formUrl'); // URL платёжной страницы
После получения formUrl — редирект туда. Сбербанк покажет страницу оплаты со всеми доступными методами, включая СберPay, если покупатель зашёл с устройства с установленным СберБанк Онлайн.
Проверка статуса заказа
Сбербанк поддерживает уведомления (callback), но их нужно отдельно настроить в личном кабинете. Надёжнее дополнительно проверять статус на returnUrl. Выполните серверную проверку в четыре шага:
- Получите
orderIdиз параметров запроса. - Отправьте запрос к
getOrderStatusExtended.do. - Проверьте поле
orderStatus. - При статусе
2— обновите заказ в своей системе.
public function paymentReturn(Request $request): RedirectResponse
{
$orderId = $request->query('orderId');
$status = Http::get('https://securepayments.sberbank.ru/payment/rest/getOrderStatusExtended.do', [
'userName' => env('SBER_USERNAME'),
'password' => env('SBER_PASSWORD'),
'orderId' => $orderId,
'language' => 'ru',
])->json();
// orderStatus: 0=зарегистрирован, 1=не оплачен, 2=оплачен, 3=авторизован,
// 4=аннулирован, 5=возврат, 6=АЗ отклонена банком покупателя
if ($status['orderStatus'] === 2) {
$localOrderId = $status['orderNumber']; // наш внутренний номер
Order::where('id', $localOrderId)->update(['status' => 'paid']);
return redirect('/orders/' . $localOrderId . '?paid=1');
}
return redirect('/cart?payment_failed=1');
}
Никогда не верьте только параметрам в URL — только серверная проверка через getOrderStatusExtended.
Двухстадийная оплата
Для маркетплейсов или заказов с постоплатой подходит двухстадийная схема: сначала авторизация (заморозка средств), затем списание после отгрузки.
// Регистрация с флагом двухстадийной оплаты
Http::get('https://securepayments.sberbank.ru/payment/rest/registerPreAuth.do', [
// те же параметры что и register.do
]);
// Подтверждение списания после отгрузки
Http::get('https://securepayments.sberbank.ru/payment/rest/deposit.do', [
'userName' => env('SBER_USERNAME'),
'password' => env('SBER_PASSWORD'),
'orderId' => $sberbankOrderId,
'amount' => 150000,
]);
Замороженные средства удерживаются до 30 дней. Если в течение этого срока не подтвердить — авторизация автоматически отменяется.
Фискализация
Сбербанк поддерживает фискализацию через собственную кассу «Атол Онлайн», интегрированную в эквайринг. Чековые данные передаются в параметре orderBundle:
'orderBundle' => json_encode([
'customerDetails' => ['email' => '[email protected]'],
'cartItems' => [
'items' => [[
'positionId' => 1,
'name' => 'Товар 1',
'quantity' => ['value' => 1, 'measure' => 'шт'],
'itemAmount' => 150000,
'itemCode' => 'SKU-001',
'tax' => ['taxType' => 0], // 0=без НДС
'itemPrice' => 150000,
]],
],
]),
Возвраты
Http::get('https://securepayments.sberbank.ru/payment/rest/refund.do', [
'userName' => env('SBER_USERNAME'),
'password' => env('SBER_PASSWORD'),
'orderId' => $sberbankOrderId,
'amount' => 75000, // частичный или полный возврат
]);
Особенности и ограничения
Основная сложность с эквайрингом Сбербанка — медленная поддержка. Ответ на запрос о подключении занимает от 5 до 14 рабочих дней, активация боевой среды после тестирования — ещё 3–5 дней. Документация обновляется нерегулярно; актуальную версию запрашивают у менеджера. Для СберPay как отдельного метода (без ввода карты) обязательно наличие приложения СберБанк Онлайн у покупателя — на десктопе этот метод не работает.
Сравните доступные методы оплаты:
| Метод | Требования | Комиссия (примерно) |
|---|---|---|
| Карты | Любое устройство | 2.5–3% |
| СберPay | iOS/Android + приложение | 2–2.5% |
| СБП QR | Любое устройство с камерой | 0.5–1.5% |
Что входит в работу
- Консультация по выбору тарифа и подготовке документов.
- Настройка тестовой и боевой среды эквайринга.
- Интеграция REST API: регистрация заказов, проверка статусов, возвраты.
- Реализация двухстадийной оплаты и фискализации (при необходимости).
- Тестирование всех сценариев (успешная оплата, отказ, возврат).
- Передача документации и обучение вашей команды.
- Гарантийная поддержка 30 дней после запуска.
Сроки и стоимость
Сроки интеграции зависят от сложности: от 3 до 14 рабочих дней. Стоимость рассчитывается индивидуально — оценим объём работ после аудита вашего проекта. Чтобы ускорить процесс, свяжитесь с нами — мы подготовим договор за 2 дня. Закажите интеграцию СберPay под ключ — мы настроим всё от договора до боевого запуска. Получите консультацию по интеграции — мы оценим ваш проект за 1 день.







