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

Почему ручная сверка оплат не масштабируется
Ручная сверка кажется терпимой, пока платежей десятки. Когда их становятся сотни и тысячи, время уходит не на контроль, а на поиск: где в выписке нужная строка, к какому счету она относится, почему сумма не совпала, кто уже проверял этот платеж. В итоге растет очередь, срываются сроки закрытия периода, а финансовая команда работает в режиме постоянных «срочно».
Проблема не только во времени. Ручная работа плохо выдерживает однообразие: одинаковые суммы, похожие названия контрагентов, разные форматы назначений. Отсюда ошибки и пропуски: платеж привязали не к тому счету, дубль приняли за отдельную оплату, возврат посчитали оплатой, а комиссию банка - отдельным списанием. Чем выше поток, тем чаще эти мелкие, но дорогие сбои.
Чаще всего «не сходятся» операции, где нет простого ключа для сопоставления. Типовые примеры: частичные оплаты по одному счету, один платеж за несколько счетов, сокращенное назначение, выписки из разных банков с разными полями, ситуации с комиссиями, удержаниями и валютной переоценкой. На таких кейсах ручная сверка тратит больше всего времени, потому что приходится поднимать первичку и переписку.
Важно различать входящие и исходящие платежи. Входящие обычно пытаются быстро привязать к счету или заказу, чтобы закрыть дебиторку. Исходящие чаще проверяют на корректность получателя, договора, лимитов и статуса согласования. Ошибка во входящих бьет по выручке и отчетности, а во исходящих - по рискам, бюджету и отношениям с поставщиками.
Перед тем как запускать автоматический разбор банковских выписок, полезно зафиксировать базовые метрики. Тогда будет понятно, что именно улучшилось: сколько платежей в день требует ручной проверки, сколько времени уходит на один платеж и на день в целом, как выглядит SLA по закрытию дня или недели и где реальные задержки. Обязательно посчитайте долю ошибок (неверная привязка, дубли, пропуски, исправления после закрытия) и долю «сложных» операций (частичные, пакетные, с комиссиями или валютой). Без этих цифр автоматизация быстро превращается в спор «стало лучше или просто кажется».
Какие данные нужны и как их подготовить
Автоматическая обработка выписок начинается не с правил, а с качества входных данных. Если в выписке не хватает ключевых полей или они приходят в разном формате, даже хороший алгоритм будет часто отправлять платежи в ручную очередь.
Минимальный набор, без которого сопоставление будет слабым:
- дата и время операции (и отдельно дата валютирования, если банк ее дает)
- сумма и валюта (с учетом знака, округлений и копеек)
- уникальный идентификатор операции из банка (reference, doc id, trace)
- реквизиты плательщика или получателя (ИИН/БИН, наименование, счет)
- текст назначения платежа целиком
Со стороны учетной системы нужны данные, которые описывают ожидание: выставленные счета, их статус (выставлен, частично оплачен, закрыт), контрагент, ожидаемая сумма, валюта, сроки оплаты, номер счета или договора. Чем точнее эти атрибуты, тем проще строить уверенное сопоставление без догадок.
Отдельная боль - контрагенты. Сделайте единый справочник, где один и тот же клиент не живет в трех вариантах написания. Лучше всего, когда есть надежный ключ (ИИН/БИН) и привязанные банковские счета, а названия остаются вспомогательным признаком.
Текст назначения полезно нормализовать: привести к одному регистру, убрать лишние пробелы, а типовые слова вроде «оплата», «счет», «по договору» либо игнорировать, либо заменять нейтральными маркерами. Это повышает шанс корректно вытащить номер счета или договора даже при разном написании.
И важно хранить «сырье». Сохраняйте исходную строку выписки и исходный файл, плюс результат парсинга и версию правил. Когда возникает спорный платеж или аудит, можно быстро показать, что именно пришло из банка и почему система приняла такое решение.
Базовые правила сопоставления: от точных ключей к вероятности
Хорошее сопоставление (часто его называют «матчингом») начинается не с «умных алгоритмов», а с дисциплины в данных. Если в платеже есть уникальный идентификатор или надежный ключ, автоматический разбор банковских выписок дает точное совпадение, а ручная работа остается для редких исключений.
Самые надежные ключи обычно находятся в назначении: номер счета на оплату, ID заказа, номер договора, номер инвойса. Они работают лучше всего, потому что должны быть уникальными и понятными обеим сторонам. Важно заранее договориться о формате (например, «INV-123456» или «Договор 18/24»). Без единого формата даже хороший ключ превращается в шум.
Сопоставление по ИИН/БИН и расчетному счету полезно, когда платежи идут от одного контрагента и почти нет переплат и недоплат. Но оно ломается, если один контрагент платит за несколько филиалов или договоров, если используется агентская схема (платит третье лицо), или если у группы компаний разные договоры, но один плательщик.
Приоритеты правил
Чтобы система вела себя предсказуемо, задайте порядок правил и не смешивайте «точные» и «вероятностные» проверки в одном шаге. Практичный порядок выглядит так:
- уникальные ключи (инвойс, заказ, договор) с точным совпадением
- точные связки «контрагент + счет/договор»
- ограниченные правила (например, контрагент + сумма в узком допуске)
- скоринг по набору признаков
Если ключей нет, подключайте скоринг: сумма, дата, плательщик, банк, текст назначения, повторяемость шаблона. Например, платеж на 150 000 с пометкой «оплата услуг» можно связать с ближайшим по дате неоплаченным счетом этого контрагента, но только если разница по сумме и датам укладывается в заданные рамки.
Как описывать правила
Записывайте каждое правило так, чтобы его одинаково понимали бухгалтерия и IT:
- какие поля берем из выписки и из учета
- как проверяем совпадение (точно, по маске, с допуском)
- какой приоритет у правила
- что считаем результатом (что закрываем и какой статус ставим)
- что делаем при конфликте (когда подходит два документа) и кто подтверждает
Сопоставление по сумме и дате: окна, допуски, частичные оплаты
Самый частый рабочий сценарий для автоматического разбора банковских выписок - сопоставление, где опора идет на сумму и дату. Оно быстро запускается, но именно здесь больше всего спорных случаев: деньги пришли не в тот день, сумма отличается на пару тенге, один платеж закрывает сразу несколько счетов.
Окно по дате: узко сначала, шире по сигналу
Начните с короткого окна, например 0-3 банковских дня от даты счета (или от даты отгрузки, если так устроен процесс). Короткое окно снижает ложные совпадения, особенно когда много одинаковых сумм.
Расширять окно стоит не «на всякий случай», а по понятным причинам: межбанковские задержки, платежи в конце месяца, выходные и праздники, отдельные группы клиентов с регулярной задержкой. Часто удобно держать разные окна по типам платежей (безнал, эквайринг, маркетплейсы) и пересматривать их, если растет доля ручных разборов именно из-за дат.
Допуски по сумме: округления, комиссии, удержания
Нулевой допуск по сумме дает чистые совпадения, но ломается на копейках и удержаниях. Лучше заранее задать понятную логику допусков:
- 0 - для платежей, где сумма всегда ровно по счету (например, B2B по договору)
- небольшой фиксированный допуск - для округлений
- отдельный сценарий, когда комиссия удержана из суммы, а не отдельной строкой
- запрет или ужесточение допусков для «популярных» сумм, которые часто повторяются
Допуск должен быть не только «плюс-минус», но и объяснимым. Если система не может объяснить разницу (комиссия, скидка, удержание), такой матч лучше отправить на проверку.
Частичные оплаты связывайте по принципу накопления: один счет может закрываться несколькими платежами, пока сумма оплат не достигнет суммы счета (в пределах допуска). Заранее зафиксируйте порядок закрытия: сначала старые счета (FIFO) или сначала счета с ближайшим сроком.
Переплаты удобнее вести как аванс: счет закрывается, а остаток ложится на баланс клиента и может быть зачтен в следующий счет по тем же правилам.
Пакетные платежи (один перевод за несколько счетов) обычно распознаются так: сумма равна сумме нескольких открытых счетов одного контрагента в окне по дате. Такой набор можно закрыть автоматически, но только если комбинация единственная. Если возможны разные комбинации, лучше отправить в ручную проверку.
Исключения: комиссии, возвраты, валютные операции и споры
Даже при настроенной автоматической обработке выписок «хвост» ручной работы обычно создают исключения. Их лучше не пытаться запихнуть в общие правила, а выделить отдельными типами операций со своей логикой и маршрутом.
Банковские комиссии и удержания логичнее учитывать там, где вы ведете расходы, а не в логике «оплата закрывает счет». Частая ошибка - привязать комиссию к ближайшему счету из-за похожей суммы. Признаки комиссий обычно простые: ключевые слова в назначении (комиссия, fee), списание без контрагента, регулярность по датам.
Возвраты и сторно легко перепутать с оплатой, если смотреть только на сумму. Главные сигналы - направление движения денег и слова в назначении («возврат», refund, reversal, «сторно»). Полезно хранить связь возврата с исходной оплатой: так вы не закроете счет повторно и корректно восстановите дебиторку.
Спорные операции по картам (чарджбэк, chargeback) стоит обрабатывать отдельным потоком. Это не «платеж клиента», а событие, которое меняет статус уже принятой оплаты и запускает процесс сроков и документов.
С валютными платежами проблема чаще всего в курсе и дате пересчета. Один и тот же платеж может не совпасть по сумме в тенге из-за того, что банк пересчитал по курсу на дату списания, а учет - на дату поступления. Практичный подход: сопоставлять по исходной валюте и сумме, а расхождение по пересчету относить на курсовую разницу по правилам учета.
Чтобы исключения не забивали общую очередь, задайте явные маршруты:
- комиссии - в расходы, без закрытия счета, с отдельным кодом операции
- возвраты и сторно - в связку с исходной оплатой и пересчет статуса счета
- чарджбэки - в отдельный статус «спор», с дедлайнами и ответственным
- валюта - сопоставление в валюте, пересчет по фиксированному правилу даты
- третьи лица и ошибочные реквизиты - в очередь на проверку с признаками риска
Так вы снижаете количество ложных совпадений и оставляете людям только те случаи, где действительно нужно решение.
Как снижать ручную обработку: скоринг и умная очередь
Идея простая: не пытайтесь сделать 100% совпадений без человека. Дайте каждому совпадению понятный скоринг (оценку уверенности) и отправляйте в ручную работу только то, что реально спорно.
Скоринг удобно считать из нескольких сигналов: совпадение суммы, близость даты, похожий контрагент, совпадение счета получателя, ключевые фразы в назначении (например, номер счета или договора). Каждый сигнал добавляет баллы. Точное попадание по сумме и идентификатору может давать почти максимум, а совпадение только по сумме и дате - небольшой шанс.
Дальше задайте пороги. Высокий порог - автозакрытие. Средний - «умная очередь» на проверку. Низкий - отказ (лучше не создавать ложные матчи). Начинайте консервативно и повышайте долю автоматики по мере накопления статистики.
Чтобы оператор решал за 10 секунд, очередь должна показывать только то, что помогает принять решение сразу: предполагаемый документ и причину, почему система так решила; сумму, дату, валюту и примененные допуски; контрагента и ключевые фразы из назначения; 2-3 альтернативы; действие в один клик (подтвердить, выбрать другое, отклонить, пометить как исключение).
Решения операторов должны превращаться в улучшения: новые правила, словари синонимов, исключения по комиссиям и возвратам, корректировка весов скоринга.
Качество лучше контролировать цифрами: доля автосопоставления, доля ручной очереди и среднее время решения, ложные матчи (это самый дорогой тип ошибок), топ причин отказов и спорных случаев, доля платежей, ушедших в исключения.
Пошагово: как внедрить автоматический разбор и сверку оплат
Начните с «карты денег»: какие бывают оплаты, откуда приходит выписка, какие форматы вы получаете (разные банки, разные поля в назначении, отдельные файлы по эквайрингу). Это сразу покажет, где автоматизация даст максимум, а где ручная проверка останется надолго.
Соберите короткий словарь для назначений: типовые слова и сокращения, варианты написания счетов и договоров, признаки возврата или комиссии. Сразу фиксируйте, какие фразы почти всегда означают одно и то же, а какие двусмысленны (например, «оплата по счету» без номера).
Дальше двигайтесь по шагам, чтобы правила не расползались и не конфликтовали:
- описать типы платежей и источники выписок, привести входные данные к единому формату
- составить шаблоны для извлечения номера счета, договора, ИИН/БИН, ФИО, заказа
- задать приоритеты правил: от точных совпадений к более слабым
- настроить окна по дате и допуски по сумме отдельно по сценариям
- вынести исключения в отдельные правила, чтобы они не портили основной матчинг
После настройки запустите пилот на исторических данных (хотя бы 1-3 месяца) и сравните результат с фактом в учете. Смотрите не только процент совпадений, но и ошибки: ложные матчи обычно дороже, чем пропущенные.
Когда качество стало приемлемым, вводите ежедневный контроль: очередь на ручную проверку только для сомнительных случаев, короткий регламент (кто разбирает, за сколько часов, как помечать причину), и регулярный разбор новых шаблонов назначений для пополнения словаря.
Частые ошибки и ловушки в правилах сопоставления
Главная беда сопоставления в том, что ошибка выглядит как успех: система «находит совпадение», закрывает счет, и только потом всплывает, что деньги пришли от другого клиента. Поэтому следите не только за долей автосопоставлений, но и за долей неверных совпадений.
Одна из самых частых ловушек - слишком широкие допуски по сумме или дате. Если разрешить окно в несколько дней и заметный процентный допуск по сумме, начинаются «красивые» совпадения там, где платежей много и суммы похожи. В пиковые периоды (конец месяца, массовые оплаты) это особенно опасно.
Вторая типовая причина «не сходится» - комиссии и удержания. Клиент платит 100 000, а в выписке вы видите 99 500, и правило точной суммы не срабатывает. Если комиссии не учтены отдельно, операторы начинают вручную править суммы, статистика ухудшается, а разбор спорных случаев становится сложнее.
Еще одна проблема - конфликты правил. Без приоритетов два разных правила могут предложить разные пары «платеж - счет». Если система выбирает «первое попавшееся», результаты становятся случайными. Нужен явный порядок: сначала точные ключи, потом сумма, дата и контрагент.
Отдельная ловушка - потеря исходных данных. Если вы не сохраняете, какие поля использовались и какое правило сработало, потом нечем объяснить бухгалтерии или клиенту, почему платеж закрыли именно так.
Быстрый набор проверок, который обычно предотвращает половину проблем:
- ограничить допуски и добавлять запрет на автосопоставление, если кандидатов слишком много
- учитывать комиссии, удержания и округления как отдельные сценарии
- задавать приоритеты и не позволять конфликтующим правилам решать без ручного подтверждения
- логировать: правило, поля, кандидаты, итоговый скоринг
- разделять потоки: оплаты, возвраты, переводы между счетами не должны жить в одном универсальном правиле
И еще одно: правила стареют. Появляется новый банк, меняется шаблон назначения, растет доля маркетплейсов и агрегаторов. Если нет процесса пересмотра хотя бы раз в месяц, качество заметно падает уже через 1-2 месяца.
Быстрый чеклист перед запуском в прод
Перед тем как включать автоматический разбор банковских выписок на боевых данных, проверьте не только логику сопоставления, но и то, как команда будет жить с ошибками и исключениями. Провалы чаще происходят из-за разъехавшихся справочников, неясных статусов и отсутствия контроля причин ручных правок.
Сначала убедитесь, что база данных не распадается на разные версии. Если у одного и того же контрагента несколько имен, ИИН/БИН записан по-разному или реквизиты хранятся в трех местах, система будет постоянно отдавать платежи на ручную проверку.
Затем зафиксируйте параметры сопоставления по типам платежей. Для зарплат, счетов от поставщиков и розничных оплат часто нужны разные окна по дате и допуски по сумме.
Компактный набор проверок перед запуском:
- единый справочник контрагентов и реквизитов: кто отвечает за обновления и как быстро исправляются дубли
- окна по дате и допуски по сумме: документированы отдельно для каждого сценария
- исключения вынесены в отдельные правила: комиссии банка, возвраты, валютные операции, спорные удержания
- статусы понятны людям: «совпало», «на проверку», «не найдено», «спорно» - и есть четкое действие для каждого
- отчет по ручной обработке: видно, почему платеж не сопоставился (нет счета, нет контрагента, нарушены допуски, конфликт правил)
Кто владеет процессом после запуска
Назначьте владельца процесса и график пересмотра правил. Например, раз в две недели разбирать топ причин статуса «на проверку» и менять правила только после замера: доля ручной обработки, число ложных совпадений, среднее время закрытия платежа.
Короткий тест перед продом: возьмите один день выписки, где есть комиссии и возвраты, и проверьте, что они не «прилипают» к обычным оплатам. Если этот кейс проходит, остальное обычно доводится настройками, а не переделкой всей логики.
Пример из практики: поток оплат в компании со смешанными каналами
Компания принимает оплату от юрлиц и физлиц: банк-клиент, онлайн-эквайринг и переводы по реквизитам. В среднем приходит около 500 платежей в день из трех банков. Проблема была типичная: часть плательщиков не указывала номер счета или договора, а бухгалтерия тратила часы на поиск «кто это оплатил».
Сначала договорились о простом правиле для новых счетов: в назначении платежа клиенту показывали короткий ключ (например, INV123456) и просили вставлять его без изменений. Для регулярных клиентов добавили шаблоны распознавания: если в назначении встречается фирменное сокращение, ИИН или часть наименования, система подтягивает привязку к контрагенту и набору открытых счетов. Это помогает, когда клиент пишет «за услуги за январь» без конкретики.
Дальше настроили сопоставление по сумме и дате. Чтобы уменьшить ложные «не найдено», ввели допуски: небольшое отклонение по сумме на комиссии и округления, и окно по дате, потому что поступление может отразиться на следующий день. Для спорных случаев система не закрывала счет автоматически, а отправляла в очередь на проверку.
Отдельно разделили потоки: обычные оплаты, возвраты, частичные закрытия. Возвраты не пытались сопоставлять с открытыми счетами, а связывали с исходной оплатой по ссылочному полю банка или по связке контрагент + сумма + близкая дата. Частичные оплаты закрывали счет по этапам, чтобы не терять хвосты и не создавать дублей.
Результат оценивали по цифрам: доля автосопоставления, среднее время от поступления до закрытия, доля ошибок (неверно закрытые счета), объем очереди на ручную проверку, причины отказов (нет ключа, несколько кандидатов, возврат). Через две недели автосопоставление выросло с 35% до 82%, а ручная очередь стала в 3 раза меньше. Самое полезное оказалось простым: дисциплина в ключах, разумные допуски и отдельные правила для возвратов и частичных оплат.
Следующие шаги: масштабирование и выбор надежной инфраструктуры
Когда базовые правила дают стабильную сверку оплат, следующий узкий момент - рост. Добавляются новые банки, меняются форматы выписок, увеличивается число операций, и любая мелочь в парсинге начинает стоить часов ручной работы. Чтобы автоматический разбор банковских выписок не ломался при каждом обновлении, заранее заложите процесс расширения: тестовые примеры по каждому банку, версионирование правил и быстрый откат.
По мере роста часто выгодно вынести обработку выписок и сопоставление в отдельный сервис. Так проще обновлять правила без остановки учетной системы, а еще легче находить причины ошибок. Ключевое - понятное логирование: что пришло на вход, как нормализовали сумму и дату, какое правило сработало, почему сопоставление отклонено, кто и когда подтвердил вручную.
Инфраструктура для такого сервиса должна закрывать не только скорость, но и доверие к данным: резервирование и план восстановления, хранение истории (сырые выписки, нормализованные записи, результаты сопоставления и ручные решения), контроль доступа и аудит изменений, мониторинг очередей и задержек, регрессионные тесты на «плохих» кейсах (комиссии, возвраты, частичные оплаты).
Круглосуточная поддержка становится актуальной, когда платежи идут постоянно: ночью, в выходные, в пиковые даты. Здесь помогают регламенты инцидентов: кто принимает алерт, как быстро переводить сервис в деградацию (например, временно оставлять только точные совпадения), как фиксировать причину и предотвращать повтор.
Если упираетесь не столько в правила, сколько в надежность и масштаб, полезно привлекать команду, которая закрывает и интеграцию, и инфраструктуру. Например, GSE.kz как производитель и системный интегратор в Казахстане может помочь собрать серверную базу под нагрузку (в том числе на линейке S200) и выстроить поддержку, чтобы рост объема не возвращал вас к ручной сверке.
FAQ
Как понять, что ручная сверка оплат уже не масштабируется?
Начните с замеров: сколько платежей в день, сколько времени уходит на один платеж и как часто возникают исправления после закрытия периода. Обычно ручная сверка перестает «тянуться», когда растет доля сложных случаев: частичные оплаты, один платеж за несколько счетов, комиссии, возвраты и разные форматы выписок. Эти кейсы съедают время непропорционально объему.
Какие поля обязательны, чтобы автоматический матчинг работал нормально?
Минимально нужны дата и время операции, сумма и валюта, уникальный идентификатор операции из банка, реквизиты плательщика/получателя (ИИН/БИН, счет, наименование) и полный текст назначения. Со стороны учета должны быть выставленные счета и их статусы, контрагент, ожидаемая сумма и валюта, сроки оплаты, номера счетов/договоров. Без этих полей система будет чаще отправлять операции в ручную очередь.
Как правильно навести порядок в контрагентах перед автоматизацией?
Сделайте единый справочник с надежным ключом, чаще всего это ИИН/БИН, и привяжите к нему банковские счета. Названия оставьте как вспомогательный признак, потому что написания часто отличаются. Важно договориться, кто владеет справочником и как быстро исправляются дубли, иначе качество сопоставления будет постоянно проседать.
Что делать с назначением платежа, если оно постоянно написано по‑разному?
Приведите текст к одному регистру, уберите лишние пробелы и сохраните исходное назначение без изменений рядом с нормализованным. Типовые слова вроде «оплата» или «по договору» лучше не считать значимыми, чтобы они не мешали извлечению номера счета или договора. Если вы заранее вводите единый формат ключа в назначении, качество сопоставления растет заметно быстрее.
В каком порядке лучше строить правила сопоставления?
Сначала применяйте точные ключи: номер инвойса, заказа, договора или другой уникальный идентификатор. Затем используйте точные связки «контрагент + договор/счет», и только потом переходите к ограничениям по сумме и дате. Смешивать вероятностные проверки с точными в одном шаге не стоит, иначе поведение будет непредсказуемым и вырастет риск ложных совпадений.
Как выбрать окно по дате, чтобы не плодить ошибки?
Начните с узкого окна, например 0–3 банковских дня, чтобы снизить ложные совпадения при повторяющихся суммах. Расширяйте окно только по понятным причинам: задержки межбанка, выходные, конец месяца или отдельные группы платежей вроде эквайринга. Полезно держать разные окна для разных типов поступлений, чтобы не размывать точность на всем потоке сразу.
Как настроить допуски по сумме и не получить ложные матчи?
Базовое правило — допуск должен быть объяснимым и ограниченным: на копейки, округления или понятные удержания. Если разницу нельзя объяснить комиссией, скидкой или удержанием по понятному сценарию, лучше отправить совпадение на проверку. Для популярных повторяющихся сумм допуски стоит ужесточать, иначе система начнет «подбирать» неправильные документы.
Как правильно обрабатывать частичные оплаты и переплаты?
Частичную оплату ведите как накопление: счет закрывается несколькими платежами, пока сумма оплат не достигнет суммы счета в пределах допуска. Заранее зафиксируйте порядок закрытия, например сначала старые счета или сначала счета с ближайшим сроком, чтобы не было спорных ситуаций. Переплату обычно удобнее учитывать как аванс, чтобы не ломать логику закрытия счетов.
Как не перепутать комиссии, возвраты и валютные операции с обычными оплатами?
Комиссии, возвраты, сторно, чарджбэки и валютные расхождения лучше выделять в отдельные типы операций со своей логикой, а не пытаться закрывать ими счета. Для возвратов важно хранить связь с исходной оплатой, чтобы не закрыть счет повторно и корректно восстановить дебиторку. Для валюты практично сопоставлять по исходной валюте и сумме, а расхождения от пересчета учитывать как курсовую разницу по вашим правилам учета.
Как снизить ручную проверку, но не потерять контроль качества?
Дайте каждому совпадению скоринг уверенности и задайте пороги: высокий — автозакрытие, средний — очередь на проверку, низкий — отказ. В очереди оператору должны быть видны причина выбора, примененные допуски и 2–3 альтернативы, чтобы решение занимало секунды. После запуска регулярно пересматривайте топ причин ручной очереди и обновляйте словари и правила, а если упираетесь в надежность и масштаб, может понадобиться отдельный сервис обработки и стабильная инфраструктура, которую в Казахстане как системный интегратор может помочь выстроить GSE.kz.