Интеграция 1С с Privat24 и LiqPay на практическом примере
Связка 1С с платежными сервисами помогает автоматически получать сведения об оплате, сопоставлять транзакции с заказами и уменьшать объем ручной работы бухгалтера. Для украинских компаний часто используются Privat24 и LiqPay: первый удобен для контроля банковских операций, второй — для приема онлайн-платежей от клиентов.
Такая интеграция может быть частью интернет-магазина, учетной системы, CRM или конфигурации на базе 1С:Предприятие. Платежный сервис передает данные о созданной операции, а 1С фиксирует оплату, меняет статус заказа и при необходимости формирует документы реализации.
Архитектуру важно продумать заранее. Нужно определить, какие данные будут поступать в учетную систему, каким способом подтверждается платеж, где хранятся ключи API и как обрабатываются отмены, возвраты и повторные уведомления.
Какие задачи решает подключение платежей
LiqPay обычно применяют для приема оплаты на сайте или в мобильном приложении. Клиент переходит на платежную страницу, выбирает карту, Privat24 или другой доступный способ и завершает операцию. После этого LiqPay отправляет в систему уведомление о результате транзакции.
В 1С на основании уведомления можно найти заказ по внешнему идентификатору, записать сумму и валюту, установить состояние «Оплачен» и передать информацию в складской или CRM-модуль. Если оплата не прошла, заказ остается в ожидании либо переводится в статус отмененного.
Интеграция с Privat24 может использоваться для сверки банковской выписки и контроля поступлений на счет предприятия. В этом сценарии 1С получает список операций через доступный программный интерфейс банка или загружает выписку в согласованном формате, после чего выполняется сопоставление платежей с контрагентами и заказами.
Подготовка учетной системы и кабинетов
До начала разработки в LiqPay создают мерчант, получают публичный и приватный ключи, указывают адреса возврата клиента и серверного уведомления. В настройках задаются режимы тестирования, валюта, описание платежа и параметры, которые будут передаваться вместе с заказом.
В 1С рекомендуется завести отдельный справочник платежных систем. В нем можно хранить наименование сервиса, идентификатор магазина, URL API, признак тестового режима и ссылку на защищенное хранилище секретов. Приватный ключ не следует записывать в общий текстовый реквизит, доступный всем пользователям.
Для каждой оплаты формируется уникальный номер заказа. Он должен сохраняться в 1С до обращения к LiqPay и передаваться в платежную форму. Дополнительно полезно отправлять внутреннюю ссылку на документ, код клиента и номер договора, но в уведомлении нельзя передавать лишние персональные данные.
Формирование платежной формы LiqPay
LiqPay использует подписанные параметры запроса. Обычно 1С формирует набор данных в формате JSON, кодирует его, а затем рассчитывает подпись с применением приватного ключа. На веб-страницу передаются идентификатор магазина, строка данных и подпись.
В состав данных включают сумму, валюту, описание покупки, номер заказа и тип операции. Для украинского бизнеса часто используется гривна, однако окончательный набор валют зависит от договора, настроек мерчанта и действующих возможностей сервиса.
Лучше реализовать формирование платежа в отдельном общем модуле 1С. Такой модуль должен проверять заполненность суммы, уникальность заказа, допустимость валюты и наличие ключей. При ошибке пользователю следует показать понятное сообщение, а технические подробности записать в журнал регистрации.
Обработка уведомлений от платежного сервиса
Серверное уведомление LiqPay необходимо принимать на отдельной HTTP-точке, доступной из интернета по HTTPS. Обработчик получает параметры, проверяет подпись и только после успешной верификации меняет состояние заказа. Доверять одному значению статуса из входящего запроса нельзя.
Сервис может отправить одно уведомление несколько раз. Поэтому обработка должна быть идемпотентной: повторная доставка того же события не должна создавать вторую оплату или дублировать бухгалтерскую операцию. Для этого в 1С сохраняют идентификатор транзакции и проверяют его перед записью результата.
Статусы необходимо разделять. Успешное завершение платежа, ожидание, отмена, возврат и ошибка имеют разные последствия для заказа. Отдельно следует учитывать частичный возврат, если бизнес-процесс допускает возврат только части суммы.
Загрузка операций из Privat24
Для банковской сверки в 1С создают обработку загрузки выписки. Она получает операции за выбранный период, разбирает назначение платежа, сумму, дату, счет и реквизиты плательщика. Если API конкретного банковского сервиса изменился, обменный модуль должен быть изолирован от основной логики учета.
Сопоставление можно выполнять по номеру заказа, назначению платежа, идентификатору клиента или комбинации суммы и даты. Наиболее надежный вариант — заранее включать в платеж уникальный код, который отображается в назначении операции и сохраняется в документе 1С.
Не найденные автоматически платежи помещают в очередь ручной сверки. Бухгалтер выбирает нужный заказ, после чего система запоминает правило сопоставления. Это постепенно повышает качество автоматической обработки и сокращает количество исключений.
Безопасность, тестирование и сопровождение
Ключи API должны храниться в защищенном месте, а доступ к настройкам интеграции следует ограничить ролями. Внешние соединения выполняются только по HTTPS с проверкой сертификата. В журналах нельзя сохранять приватный ключ, полные данные карты и другие сведения, которые не нужны для учета.
Перед запуском проверяют успешную оплату, отказ, отмену, повторное уведомление, недоступность сервера 1С и несовпадение суммы. Полезно отдельно протестировать задержку уведомления, повторную отправку события и возврат средств. В тестовой среде должны использоваться отдельные ключи и тестовый мерчант.
После запуска контролируют журнал обмена, расхождения между LiqPay, Privat24 и 1С, а также срок обработки уведомлений. При изменении API необходимо обновлять формат запроса, правила подписи и справочник статусов. Финансовые и налоговые документы формируются с учетом требований учетной политики и действующего законодательства.
Надежная интеграция 1С с платежными системами строится вокруг единого идентификатора заказа, проверки подписи и повторяемой обработки событий. Опишите свою конфигурацию и сценарий обмена на профессиональном форуме, изучите готовые решения сообщества и подключите автоматизацию, которая объединит платежи, заказы и учет в одной системе.