Справочная информация
Авторизация и токены
Все запросы к API требуют заголовок Authorization с access-токеном. Возможны два режима:
| Режим | Чей токен в Authorization | Нужен ли СберБизнес ID | Когда применяется |
|---|---|---|---|
| «Под себя» | Токен компании-партнера | Нет (токен получается в ЛК Sber API) | Партнер принимает оплаты за свою компанию |
| B2BSaaS | Токен пользователя-продавца | Да (авторизация каждого продавца) | Платформа принимает оплаты от имени своих пользователей |
В B2BSaaS-режиме владелец токена и получатель средств в теле запроса должны совпадать: если компания-владелец токена отличается от компании-владельца реквизитов, сервис возвращает 400 Bad Request.
Реквизиты получателя
В теле запроса на создание заказа из реквизитов получателя передается только номер счета (payeeAccount). Все остальные реквизиты (наименование, ИНН, КПП, БИК, корсчет, банк) сервис подставляет самостоятельно, определив компанию по access-токену. Это снижает число ошибок интеграции: партнеру не нужно хранить и передавать полный набор реквизитов.
В ответе сервис возвращает блок payee с полным набором реквизитов получателя.
Назначение платежа
Партнер не передает назначение платежа — поле purpose в запросе отсутствует. Сервис формирует назначение самостоятельно по внутреннему паттерну на основе client_id и порядкового номера заказа. Это сделано для высокоточной квитовки по банковской выписке при оплате по реквизитам или QR-коду из другого банка. В ответе purpose возвращается в сформированном виде.
Срок оплаты
Срок оплаты задается в запросе полем expirationTime — временем на оплату в минутах. Максимальное значение — 72 часа (4320 минут): при передаче большего значения запрос отклоняется. Если поле не передано, сервис применяет срок по умолчанию.
На стартовой странице плательщик видит итоговые дату и время в поле «Доступно к о плате до». После истечения срока ссылка на заказ становится недействительной (плательщик увидит страницу ошибки), а заказ переходит в финальный статус EXPIRED.
Статусы заказа
Заказ в сервисе «Сразу» проходит через пять статусов. Статус отражает не только факт оплаты, но и то, взаимодействовал ли плательщик с платежной страницей, — это помогает партнеру выбрать правильную частоту опроса статуса и не тратить лишние запросы.
| Статус | Значение статуса | Финальный | Рекомендации по использованию |
|---|---|---|---|
CREATED | Заказ успешно создан: партнер получил ответ 201 Created со ссылкой (url) на оплату. Ссылка еще ни разу не открывалась. Статус сохраняется все время, пока заказ создан, не просрочен и ссылка не открывалась. | Нет | Пока вы не передали url плательщику, опрашивать статус бессмысленно: заказ не сменит статус, пока у плательщика физически не появится возможность открыть страницу оплаты. Начинайте опрос после передачи ссылки. |
AWAITING_PAYMENT | Ссылка на оплату открыта: плательщик просмотрел платежную страницу. Статус сохраняется с момента открытия ссылки до момента выхода со страницы оплаты. | Нет | Заказ в этом статусе — сигнал, что плательщик видит страницу: начинайте опрос статуса. Запрашивайте статус не чаще 1 раза в 15 секунд. Если в этом статусе несколько заказов — используйте один общий таймер 15 секунд на все заказы, а не отдельный на каждый. Превышение порога одновременных запросов может вернуть ошибку 429 Too Many Requests. |
UNPAID | Плательщик вышел со страницы оплаты, оплата на момент выхода не зафиксирована. Статус не финальный: при оплате из другого банка по реквизитам или QR денежные средства могут поступать на счет получателя с задержкой — при их поступлении заказ перейдет в IMPLEMENTED. | Нет* | Опрашивайте статус не чаще 1 раза в час. Не трактуйте UNPAID как мгновенный отказ от оплаты: межбанковский платеж может еще поступить, и статус сменится на IMPLEMENTED. |
EXPIRED | Срок действия заказа истек, а ссылка на оплату так и не была открыта ни разу. Платежная страница больше не откроется (плательщик увидит страницу ошибки), реквизиты получателя не раскрывались. | Да | Опрашивать статус бессмысленно: переходов из этого статуса нет, оплата по заказу уже невозможна. Для новой попытки оплаты создайте новый заказ. |
IMPLEMENTED | Оплата успешно поступила на счет получателя. | Да | Зафиксируйте исполнение: закройте сделку, разрешите отгрузку или окажите услугу. Дальнейший опрос статуса не требуется. |
* Если опла та так и не поступит, заказ останется в статусе UNPAID — фактически это его конечное состояние.
Схема переходов между статусами
Позиции заказа (positions)
Заказ может содержать до 5000 позиций (товаров / услуг). Каждая позиция включает наименование, артикул, цену за единицу, количество, единицу измерения (ОКЕИ; для услуг — SERVICE), ставку и сумму НДС, стоимость.
На платежной странице позиции отображаются в раскрывающемся блоке «Детали заказа» с итогом по количеству и сумме, в том числе НДС.
Элементы платежной страницы заказа
| Элемент | Где | Назначение |
|---|---|---|
| Сумма заказа | Стартовая | Итоговая сумма к оплате |
| Наименование сервиса и дата заказа | Стартовая | От кого заказ и когда создан |
| «Доступно к оплате до» | Стартовая | Срок оплаты |
| «Скопировать ссылку» | Стартовая | Скопировать ссылку на заказ |
| «Скачать с чет» | Стартовая | Скачать документ по заказу |
| «Детали заказа» (спойлер) | Стартовая | Состав позиций |
| «Оплатить в СберБизнес» | Стартовая | Переход к оплате через СберБизнес (с авторизацией) |
| «Оплатить в любом банке» | Стартовая | Переход к QR / реквизитам / печатной форме |
| QR-код банка + реквизиты поставщика | «В любом банке» | Оплата из любого банка |
| «Скачать печатную форму» (XLS / PDF) | «В любом банке» | Печатная форма для оплаты |
| Счет списания + подтверждение (QR СберБизнес / СМС) | «Через СберБизнес» | Подписание платежного поручения |
Обработка ошибок и отказные сценарии
| Ситуация | Что видит сторона | Код |
|---|---|---|
| Некорректное тело запроса; несовпадение владельца токена и получателя средств (сценарий B2BSaaS) | Партнер | 400 Bad Request (FintechWorkflowFault с перечнем проверок и fieldNames) |
| Отсутствует или недействителен access-токен | Партнер | 401 |
| Нет прав на операцию (не выдан соответствующий scope) | Партнер | 403 |
| Превышена допустимая частота запросов (например, слишком частый поллинг статуса) | Партнер | 429 Too Many Requests — снизьте частоту опроса согласно рекомендациям в разделе «Статусы заказа» |
| Внутренняя ошибка сервиса | Партнер | 500 |
| Сервис временно недоступен | Партнер | 503 |
| Заказ не найден или срок его оплаты истек | Плательщик на платежной странице | Страница ошибки 404 («ссылка устарела») |
FAQ
Нужно ли плательщику авторизоваться, чтобы увидеть заказ? Нет. Сумма, срок и состав заказа доступны по ссылке без входа в банк. Авторизация через СберБизнес ID требуется только при выборе способа «Оплатить в СберБизнес».
Может ли плательщик оплатить из банка, отличного от Сбера? Да — через способ «Оплатить в любом банке» (QR-код в приложении своего банка или платеж по реквизитам поставщика).
Почему в запросе нет назначения платежа и полных реквизитов получателя? Назначение формируется сервисом для точной квитовки, а реквизиты получателя подставляются по токену — это упрощает интеграцию и уменьшает число ошибок.
Как понять, что заказ оплачен?
Опросом GET /v1/sberbusinesspay/orders/{externalId}/state до перехода статуса в IMPLEMENTED. Частота опроса — согласно рекомендациям в разделе «Статусы заказа».
Какой максимальный срок оплаты заказа?
72 часа. Срок задается полем expirationTime в минутах (не более 4320). После истечения срока ссылка на заказ перестает работать, а заказ переходит в статус EXPIRED.