Альфа-Банк и Т-Банк (бывший Тинькофф) дают развитые API как для приёма оплат, так и для чтения выписки. Это позволяет сайту на 1С-Битрикс не только подтверждать поступления, но и инициировать выставление счетов, отслеживать статусы и работать с СБП в едином контуре.
Чем обмен платежами отличается от загрузки выписки
Загрузка выписки — это односторонний сценарий «прочитать поступления». Полноценный обмен платежами двусторонний: сайт и инициирует платёжные операции, и получает их результат. Для Альфа-Банка и Т-Банка это разные группы API, которые часто используют вместе.
- Эквайринг — приём онлайн-оплат картой и по СБП на сайте, с редиректом или через платёжную форму;
- Выписка по расчётному счёту — подтверждение безналичных оплат по счетам;
- Выставление счетов — генерация счёта на оплату и передача его клиенту, в том числе счёт по СБП;
- Статусы — обратный поток: оплачено, отменено, возврат.
Возможности API Альфа-Банка и Т-Банка
Наборы методов у банков близки по назначению, но различаются в деталях авторизации и жизненного цикла платежа. Ниже — ориентир для проектирования.
| Возможность | Альфа-Банк | Т-Банк (Тинькофф) |
|---|---|---|
| Онлайн-эквайринг | REST-шлюз приёма платежей (register / getOrderStatus) | Merchant API (Init / GetState / Confirm / Cancel) |
| СБП | оплата и возвраты через СБП | QR и платёжные ссылки СБП |
| Выписка по счёту | API для бизнеса: операции по счёту | Бизнес API: выписка и события по счёту |
| Уведомления | callback о смене статуса заказа | нотификации (webhook) о статусе платежа |
| Возвраты | reverse / refund | Cancel (полный и частичный) |
Практическое следствие: жизненный цикл платежа у Т-Банка часто двухстадийный — Init создаёт платёж, а Confirm списывает захолдированную сумму. Это удобно для схемы «блокируем деньги при заказе, списываем при отгрузке». У Альфа-Банка аналогично поддерживается двухстадийная оплата с отдельным подтверждением.
Приём оплат в корзине Битрикс
Онлайн-эквайринг в 1С-Битрикс реализуется через платёжную систему — обработчик в /local/php_interface/include/sale_payment/ или отдельный модуль ПС. Обработчик формирует запрос на регистрацию платежа и отдаёт покупателю ссылку/форму, а обратный поток статусов ловит по callback.
- Клиент оформляет заказ и выбирает оплату картой или по СБП;
- Обработчик вызывает метод регистрации платежа банка, передавая сумму, номер заказа и URL возврата;
- Покупатель проходит оплату на стороне банка или по QR СБП;
- Банк дергает callback, обработчик проверяет статус и подпись, затем помечает оплату проведённой;
- Пользователь возвращается на страницу результата заказа.
Ключевой момент — не доверять статусу из редиректа пользователя. Итоговое подтверждение должно приходить серверным callback и дополнительно проверяться запросом статуса (getOrderStatus / GetState), чтобы исключить подделку.
Выписка и автовыставление счетов
Для B2B рядом с эквайрингом почти всегда нужен второй поток — оплаты по счёту. Здесь работает бизнес-API банка: сайт периодически запрашивает операции по расчётному счёту и подтверждает заказы, оплаченные платёжкой. Логика сопоставления та же, что для любой выписки: приоритет — номер счёта в назначении платежа, затем ИНН плательщика.
Отдельная удобная функция — автовыставление счёта. Сайт формирует счёт на оплату и передаёт клиенту ссылку на оплату по СБП или PDF счёта. Это сокращает цикл сделки: клиент оплачивает по QR прямо из письма, а поступление тут же подтверждается через выписку или нотификацию.
- Счёт генерируется по данным заказа и реквизитам контрагента из CRM;
- Номер счёта пишется в назначение платежа для однозначной привязки;
- Статус «оплачен» проставляется автоматически при поступлении;
- Неоплаченные счета можно напоминать по расписанию.
Возвраты, статусы и идемпотентность
Обмен платежами — это не только приём денег, но и корректная обработка возвратов и промежуточных состояний. Оба банка поддерживают полный и частичный возврат, который нужно проводить строго штатными средствами заказа Битрикса, чтобы сумма оплаты и статус не разъехались.
Критично соблюдать идемпотентность: повторный callback с тем же статусом не должен дважды закрывать заказ или дважды инициировать возврат. Практичные приёмы:
- Хранить внешний идентификатор платежа банка и его последнее состояние;
- Переводить оплату в проведённую только при переходе статуса, а не при каждом уведомлении;
- Логировать каждое входящее событие с сырым телом запроса для разбора спорных случаев;
- Возвраты инициировать по идентификатору исходного платежа, а не по сумме.
Пример безопасной обработки callback:
if ($sign !== $expectedSign) { http_response_code(403); return; }
if ($payment->isPaid()) { echo 'OK'; return; } // уже проведён
$payment->setPaid('Y'); $order->save();
Как собрать всё в единый контур
Когда работают сразу эквайринг, выписка и счета, важно не размазать логику по шаблонам, а собрать её в предсказуемую архитектуру. Рабочая схема на 1С-Битрикс:
- Модуль ПС — приём онлайн-оплат картой и СБП, обработка callback;
- Модуль обмена выпиской — агент/cron, чтение операций по счёту, сопоставление;
- Единая таблица платежей — все проводки и онлайн-оплаты в одном месте с внешними ID;
- Связь с 1С — при необходимости оплаты дублируются в учётную систему через обмен.
Такой контур закрывает и рознично-онлайновый, и оптово-счётный сценарии одним набором данных, а менеджеру в CRM видна полная картина оплат по заказу независимо от способа платежа.
Итог
Альфа-Банк и Т-Банк позволяют выстроить на 1С-Битрикс полноценный обмен платежами: приём карт и СБП в корзине, автовыставление счетов, чтение выписки и обратный поток статусов с возвратами. Надёжность держится на трёх принципах — проверка подписи уведомлений, идемпотентная обработка статусов и единая таблица платежей для всех способов оплаты.
Мы внедряем эквайринг и обмен выпиской как связанные модули с логированием, сверкой и корректной обработкой возвратов, а при необходимости синхронизируем оплаты с 1С. Если хотите принимать и карты, и оплаты по счёту без ручной сверки, поможем спроектировать контур под ваши процессы.
Частые вопросы
Можно ли принимать оплату по СБП на сайте Битрикс?
Да. И Альфа-Банк, и Т-Банк поддерживают СБП через API: покупателю показывается QR-код или платёжная ссылка, а поступление подтверждается уведомлением банка. Комиссия по СБП обычно ниже эквайринговой.
Чем двухстадийный платёж полезен для B2B?
Двухстадийная схема сначала блокирует сумму на карте, а списывает её отдельным подтверждением. Это удобно, когда деньги нужно фиксировать при заказе, а списывать только при отгрузке или подтверждении наличия товара.
Как защититься от поддельного уведомления об оплате?
Callback от банка подписывается секретным ключом, и подпись обязательно проверяется на стороне сайта. Дополнительно статус перепроверяется отдельным запросом к API банка перед тем, как закрыть заказ.
Нужен ли отдельный модуль платёжной системы?
Для онлайн-эквайринга в Битрикс оплата подключается как платёжная система с собственным обработчиком. Чтение выписки по счёту делается отдельным модулем на агенте, поскольку это другой поток данных.
Поддерживаются ли частичные возвраты?
Да, оба банка позволяют возвращать как полную, так и частичную сумму по идентификатору исходного платежа. Возврат проводится штатными средствами заказа, чтобы сумма оплаты и статус оставались согласованными.
Что произойдёт при повторном callback от банка?
При идемпотентной обработке повторное уведомление с тем же статусом игнорируется: заказ уже помечен оплаченным, и второй раз оплата не проводится. Поэтому дубли уведомлений безопасны.
Можно ли объединить оплаты картой и по счёту в одной карточке заказа?
Да. Все проводки и онлайн-оплаты складываются в единую таблицу платежей с внешними идентификаторами, и в CRM менеджер видит полную историю оплат по заказу независимо от способа.
Поможем с настройкой и поддержкой Интеграции и связки систем
Поможем с настройкой, доработкой и поддержкой Интеграции и связки систем.