Перейти к содержанию
Innovialabs

Как автоматизировать сверку платежей в e-commerce

Продвинутое3 мин

Коротко

Автоматическая сверка связывает три источника — заказы, отчеты шлюза и банковские выписки — по общим идентификаторам, учитывает комиссии и возвраты и выводит в отдельную очередь только реальные расхождения.

Что такое сверка и зачем ее автоматизировать

Сверка платежей — проверка того, что каждый оплаченный заказ действительно оплачен, деньги пришли на счет в ожидаемой сумме, а все комиссии и возвраты учтены.

Вручную это делают в таблицах: выгружают заказы, отчет шлюза, банковскую выписку и сравнивают строки. Пока заказов мало, это терпимо. С ростом объема ручная сверка начинает отставать, ошибки копятся, а расхождения находятся через недели.

Автоматизация решает три задачи: сопоставляет записи, считает ожидаемые суммы и показывает только исключения.

Три источника данных

ИсточникЧто содержитКлючевые поля
Ваша система (заказы)Что клиент должен был оплатитьID заказа, сумма, статус, дата
Отчет платежного шлюзаКакие транзакции прошлиID транзакции, ID заказа, сумма, комиссия, статус
Банковская выпискаЧто реально зачисленоСумма зачисления, дата, назначение, ID выплаты

Сложность в том, что связи между ними неодинаковые. Заказ и транзакция часто связаны один к одному, а банк зачисляет одной суммой сразу пачку транзакций за период за вычетом комиссий.

Как построить процесс

  1. Собирайте данные автоматически. Заказы — из вашей базы, транзакции — через API или регулярную выгрузку отчета шлюза, выписки — через API банка или импорт файла.
  2. Нормализуйте. Единые форматы дат и часовых поясов, суммы в минимальных единицах валюты (целые числа), единые статусы.
  3. Сопоставьте заказы и транзакции. По ID заказа, который вы передаете в шлюз при создании платежа. Это главный ключ — без него сверка превращается в угадывание по сумме и времени.
  4. Сгруппируйте транзакции в выплаты. Если шлюз указывает ID выплаты (settlement), группируйте по нему. Если нет — по дате расчета согласно условиям договора.
  5. Посчитайте ожидаемое зачисление. Сумма транзакций − комиссии − возвраты ± корректировки.
  6. Сравните с выпиской. Совпало — выплата закрыта. Не совпало — исключение.

Комиссии, возвраты и частичные оплаты

  • Комиссии. Берите их из отчета шлюза, а не рассчитывайте по своему тарифу: фактическая комиссия может зависеть от типа карты, способа оплаты или условий договора. Свой расчет полезен как контроль.
  • Возвраты. Это отдельные операции со своими ID и датами. Возврат может уменьшить выплату другого периода — связывайте его с исходной транзакцией, а не с датой.
  • Частичные оплаты. Один заказ — несколько транзакций. Сверяйте сумму всех успешных транзакций по заказу с его суммой.
  • Частичные возвраты. Храните сумму возврата, а не просто флаг «возвращено».
  • Валюта и округление. Работайте с целыми числами в минимальных единицах, чтобы не получать расхождения в копейках из-за чисел с плавающей точкой.

Какие расхождения ловить автоматически

  • Заказ оплачен в системе, но транзакции нет.
  • Транзакция есть, а заказа нет или он отменен.
  • Сумма транзакции не равна сумме заказа.
  • Транзакция успешна, но в ожидаемую выплату не попала.
  • Зачисление в банке не совпадает с ожидаемой суммой выплаты.
  • Возврат в шлюзе есть, а в системе заказ все еще «оплачен».

Для каждого типа задайте правило и допуск. Например, расхождение из-за округления закрывается автоматически, а разница в сумме заказа уходит бухгалтеру.

Как устроить работу с исключениями

  • Отдельная очередь или раздел в CRM/админке со списком расхождений.
  • У каждого исключения: тип, связанные записи, сумма разницы, ответственный, статус.
  • Ежедневная сводка: сколько сверено, сколько открытых исключений, самые старые из них.
  • История решений, чтобы повторяющиеся случаи превращать в новые правила.

Частые ошибки

  • Не передавать ID заказа в шлюз — и потом сопоставлять по сумме.
  • Хранить суммы в float.
  • Сверять только заказы со шлюзом и не проверять банк.
  • Игнорировать часовые пояса: транзакция около полуночи попадает в «чужой» день.
  • Строить сверку разовой выгрузкой, а не регулярным процессом.

Частые вопросы

Сопоставление заказов и транзакций удобно делать ежедневно или чаще, а сверку с банком — по графику выплат шлюза. Главное — регулярность, чтобы расхождения находились, пока их еще легко разобрать.

Поможем с этим

Если хотите не разбираться самим, а получить результат — этим мы занимаемся каждый день.

Обсудить проект

Читайте также

Есть идея или задача? Расскажите нам

Ответим в течение рабочего дня и предложим решение. Консультация бесплатная.