Оркестрация платежей — это слой между вашим checkout и платёжными провайдерами. Он решает, кому отдать конкретный платёж, отправляет его, читает ответ и пробует другого провайдера, если пришёл отказ. У вас остаётся одна интеграция вместо пяти, а правила маршрутизации меняются без релиза кода.
Это короткий ответ. Дальше — как слой работает на самом деле, что в нём ломается после запуска и как понять, нужен ли он вам вообще.
Что такое оркестрация платежей
Оркестрация платежей — это практика держать несколько провайдеров за одной интеграцией, с правилами, которые решают, куда пойдёт каждый платёж.
Разберите слово — станет легче. В оркестре много музыкантов. Никто не просит скрипки играть ещё и на барабанах. Кто-то впереди решает, кто вступает. Тут то же самое: игроков много, а место решения одно.
Без слоя каждый провайдер — отдельный проект. У каждого своя API, свой способ подписи, свои коды ошибок и своё понимание того, что такое «отказ».
Вот насколько разными они бывают. У нас в платформе работает пять эквайеров, и никакие два не подписывают запрос одинаково:
| Провайдер | Как подписан запрос |
|---|---|
| UPC | RSA SHA-512 |
| Ощадбанк | HMAC-SHA1 |
| PayLink | HMAC-SHA1 |
| LiqPay | SHA1, Base64 |
| Hutko | SHA1 |
Пять провайдеров — четыре схемы подписи. Ничего редкого тут нет. Это цена разговора с банками. Слой берёт её на себя, и ваш checkout шлёт запрос одной формы, не зная ни одной из этих схем.
Что такое платформа оркестрации платежей
Платформа оркестрации — это продукт, который даёт вам слой готовым. В нём уже есть коннекторы, движок маршрута и отчёты сверху.
Работу делают три части:
- Коннекторы. По одному на провайдера. Каждый переводит ваш запрос на язык провайдера, а ответ — назад.
- Движок маршрутизации. Правила плюс живые сигналы. Он решает один вопрос на платёж: кому его отдать.
- Общая модель данных. Одна запись платежа, один словарь статусов, один отчёт — кто бы ни провёл деньги.
Вот что даёт «один словарь статусов», на одном примере. Ощадбанк отвечает пятнадцатью кодами результата. Большинство значат отказ, но три — нет: код 5 это ответ эмитента по 3DS, код 10 это проверка OTP, код 11 просит клиента подтвердить случайную сумму. Все три значат «жди», а не «нет».
Ошибётесь тут — и завалите платёж, который был ещё жив. У каждого провайдера свой такой список, и кто-то должен держать в голове все пять. Ровно для этого и нужна общая модель.
Третья звучит скучно и весит больше всех. Когда каждый отчитывается своими словами, никто у вас не ответит на вопрос «какой у нас процент одобрений на этой неделе» без таблицы и спора. Общая модель превращает этот вопрос в запрос.
Подробнее о требованиях к платформе — в отдельном материале payment orchestration software: what it must do. Устройство слоя разбираем в what is a payment orchestration layer.
Как это работает по шагам
На слайде правила выглядят опрятно. На деле это конвейер, и каждый шаг может выбросить кандидата. Вот порядок, в котором работает наш движок.
Шаг 1. Загрузить правила. Правила привязаны к юрлицу и могут жить по часам. Правила «только по выходным» во вторник в наборе просто нет.
Шаг 2. Проверить блокировку. Правило BLOCK останавливает платёж до выбора провайдера. Так вы режете диапазон карт или страну. Или сумму — не трогая код.
Шаг 3. Применить маршрут. Правило ROUTE называет пул провайдеров. Этот пул и есть список кандидатов. Сработать может только одно ROUTE-правило, и это ловится при сохранении правил, а не в момент платежа. Правила, которые лезут друг на друга, — ошибка настройки. Ловить её надо там же.
Шаг 4. Взять пул по умолчанию. Ни одно ROUTE-правило не подошло? Тогда в список идут все аккаунты этого юрлица.
Шаг 5. Отсеять по возможностям и среде. Песочница из боевого трафика вылетает. Дальше уходят те, кто этот платёж физически не примет.
Тут прячется ловушка, о которой стоит сказать прямо. Наш каталог показывает Click to Pay как метод у всех пяти эквайеров. На деле криптограмму кошелька на нашем собственном checkout принимают только двое: Hutko и Ощадбанк. Прочие трое держат кошелёк на своей странице. Слово в каталоге одно, интеграции за ним разные.
Если бы маршрутизация верила каталогу, она отдала бы платёж провайдеру, который его не возьмёт. Клиент увидел бы сбой, который не объясняет ни одна панель. Поэтому проверка читает другой, более узкий источник правды. Когда оцениваете платформу, спросите, что читает её маршрутизация. «Поддерживается» в таблице для рынка и «поддерживается» в коде — не всегда одно слово.
Шаг 6. Отсеять по здоровью, отсортировать по цене. Здоровье — оценка от 0 до 100 по скользящему окну. Формула нарочно простая:
- 70% оценки даёт доля успешных запросов
- 30% даёт время ответа: меньше секунды — максимум, десять секунд — ноль
- провайдер без свежего трафика получает нейтральные 50, а не ноль
Всё, что ниже 40, вылетает. Остальное сортируется по цене, дешёвый первый. Он становится основным, второй по цене — резервным.
Одно правило весит больше остальных пяти. Если все кандидаты ушли ниже порога, фильтр здоровья выключается и кандидаты возвращаются. Провайдер в плохом состоянии лучше, чем никакого. Платформа, которая валит платёж, потому что никто не выглядел здоровым, выбрала чистоту метрики вместо вашей выручки.
Один платёж через весь конвейер
Шаги на словах легко пропустить мимо ушей. Вот один платёж, который идёт через них.
Клиент из Польши платит 40 евро кредитной Visa. У мерчанта подключены четыре аккаунта провайдеров.
- Правила. Их два. Одно работает только в будни и сегодня не действует. Остаётся одно.
- Блокировка. Оставшееся правило блокирует платежи больше 5 000 евро. Наш — на 40, проходит.
- Маршрут. Ни одно правило не называет пул для Польши. Список пока не сужается.
- Пул по умолчанию. Кандидатами становятся все четыре аккаунта.
- Возможности и среда. Один из четырёх — песочница, вылетает. Остаётся три. Клиент платил обычной картой, фильтр кошельков не включается.
- Здоровье и цена. Один провайдер уже полчаса отдаёт таймауты. Доля успеха увела его оценку до 31 при пороге 40 — он вылетает. Осталось двое. Для иностранной кредитной карты на эту сумму считается цена, дешёвый выигрывает.
Четыре кандидата стали основным и запасным за шесть шагов и доли секунды. Ничего хитрого тут нет. Это учёт, сделанный по порядку, — ровно то, что люди делают плохо, а код хорошо.
Теперь поменяйте одну деталь. Пусть все три провайдера будут нездоровы. Шаг 6 перестаёт фильтровать и отдаёт всех троих на сортировку по цене. Платёж всё равно уйдёт. Это одно поведение стоит вашей выручке больше, чем любое правило маршрутизации, которое вы когда-нибудь напишете.
Кто этим пользуется
Мерчанты, переросшие одного провайдера, и площадки, которые проводят деньги за других.
На практике это четыре группы:
Те, кто продаёт за границу. Провайдер, отличный дома, через две страны часто средний. Местные карты, местные методы и местные правила ведут к местным провайдерам. Вдруг их у вас четыре.
Подписки. Их выручка держится на продлениях, а продления срываются по скучным причинам: карта просрочена, банк отклонил первую попытку, эмитент в три ночи ведёт себя иначе. Попытка через другого провайдера стоит им реальных денег.
Рисковые вертикали. Тревел, игры, маркетплейсы отключают без долгих слов. Второй живой провайдер для них не роскошь. Это то, что держит продажи.
Площадки и маркетплейсы. Они проводят деньги за продавцов и берут на себя гео и риск всех своих продавцов сразу.
Обратите внимание, что общего у этих групп. Это не размер. Малому мерчанту, который продаёт в шести странах, оркестрация нужна больше, чем крупному с одним рынком и одним нормально работающим провайдером.
Где оно ломается на практике
Страницы вендоров кончаются на счастливом сценарии. Вот то, что кусается после запуска.
Резервная попытка не бесплатна
Повторить отклонённый платёж через второго провайдера звучит как чистая польза. Это не так.
Часть отказов окончательна. Если карту украли или счёт закрыт, второй провайдер откажет тоже. Вы заплатили за ещё один запрос, добавили секунды к оформлению и получили вторую строку в отчёте. Хуже того, часть эмитентов читает повторы по одной карте как признак мошенничества.
Повторяйте отказы, которые значат «не сейчас». Не повторяйте те, что значат «нет». Платформа, которая повторяет всё подряд, — это не умная маршрутизация, а дорогой шум.
Дешёвый не всегда дешёвый
Отсортировать по цене легко. Посчитать эту цену правильно — нет.
Живая цена зависит от платёжной системы и типа карты. Плюс от суммы и метода. Провайдер, дешёвый на местном дебете, бывает дороже на иностранном кредите. Если платформа сортирует по плоской ставке, она уверенно выберет не того и покажет вам опрятный отчёт об этом.
Спрашивайте, как считается цена конкретного платежа, а не тарифа в договоре.
Оценка здоровья отстаёт
Здоровье меряется по окну. У нас это час по умолчанию. Окно — компромисс, а не настройка, которую можно поставить и забыть.
Короткое окно реагирует быстро и дёргается на шум. Длинное устойчиво, но медленно замечает провайдера, который начал падать десять минут назад. В любом случае оценка описывает недавнее прошлое, а не эту секунду.
Сверка становится сложнее
Один провайдер — один файл выписки. Пять провайдеров — пять файлов, пять графиков, пять способов назвать возврат и пять наборов комиссий, снятых до зачисления.
Слой сводит вид платежей. Вид денег он сам не сводит. Спрашивайте, что происходит после расчётов, а не только до авторизации.
Одна интеграция становится одной зависимостью
Вы убрали пять интеграций. Вы добавили одно место, через которое теперь идёт каждый платёж.
Обычно это верный размен. Но всё же размен. Спрашивайте про историю доступности, что бывает во время релиза и сможете ли вы достучаться до провайдера напрямую, если слой лежит.
Чего оркестрация не лечит
Стоит сказать прямо, потому что категорию продают так, будто она лечит всё.
Плохой процент одобрений сама по себе она не поднимет. Маршрутизация ведёт платёж к тому, кто вероятнее его одобрит. Если все ваши провайдеры отклоняют один и тот же трафик по одной причине, маршрутизация лишь размажет отказы ровнее. Лечить надо причину отказа, а не маршрут.
Из зоны действия PCI DSS она вас не выводит. Это делает то, как вы обращаетесь с данными карт, и это отдельное решение. Слой, сквозь который летят открытые номера карт, оставляет вас ровно там, где вы были.
Человека, отвечающего за платежи, она не заменяет. Правила фиксируют решения. Принимать их, смотреть на результат и менять, когда рынок уехал, всё равно кому-то надо. Команды, купившие платформу и не назначившие ответственного, получили более дорогую версию того, что было.
Слабый провайдер сильнее не станет. Если у вашего эквайера плохое покрытие на рынке, роутер впереди покрытия ему не добавит. Он лишь упростит отправку этого трафика в другое место.
Нужна ли вам платформа оркестрации
Скорее всего нет, если у вас один провайдер, один рынок и нормальный процент одобрений. Ставить слой туда, где всё работает, значит добавить движущихся частей и не решить ничего.
Нужна, когда верны хотя бы два пункта:
- У вас уже два провайдера или больше. Кто-то уже маршрутизирует между ними. Сейчас этот кто-то — разработчик с условием в коде.
- Вы теряете продления или продажи на отказах, которые никто не разбирает. Если в компании никто не назовёт три главные причины отказов — это и есть сигнал.
- Падение провайдера остановит вашу выручку. Не замедлит. Остановит.
- Вы выходите на рынки, где ваш провайдер слаб. Местные методы обычно и толкают вас с места.
- Комиссии стали строкой, о которой спрашивают. Как только цена транзакции становится вопросом от руководства, маршрут по цене перестаёт быть теорией.
И честная версия обратного случая. Если вы делаете несколько сотен платежей в месяц в одной стране, усилия принадлежат вашему checkout, а не маршрутизации. Выигрыш там больше и дешевле.
Простейшая проверка займёт у вас минуту. Откройте отчёт за прошлый месяц и ответьте на три вопроса, не обращаясь ни к кому. Сколько провайдеров вы использовали? Какой у вас процент одобрений в худшей стране? Кто в вашей команде поменяет маршрут, если основной провайдер ляжет завтра в десять утра?
Ответили за минуту на все три — оркестрация вам пока не нужна, платежи у вас под контролем. Пошли за ответом к разработчику хотя бы на один — вы уже платите за отсутствие этого слоя, просто не отдельным счётом.
Как выбирать провайдера оркестрации
Задавайте вопросы, на которые трудно ответить слайдом. Пять ниже отделяют продукты, которые маршрутизируют, от тех, что об этом только рассказывают.
1. Что именно читает ваша проверка возможностей? Вы спрашиваете, значит ли «поддерживается» таблицу для рынка или ветку кода, которая работает в три ночи. Пример с Click to Pay выше — форма этой проблемы, и своя версия есть у каждой платформы.
2. Как считается цена конкретного платежа? Слушайте, прозвучат ли платёжная система и тип карты. И отдельно — сумма с методом. Если в ответе один процент на провайдера — маршрутизация по цене тут для вида.
3. Что будет, когда все провайдеры выглядят нездоровыми? Верный ответ: платёж всё равно уйдёт. Любой другой означает платформу, которая завалит ваш трафик, защищая свою метрику.
4. Какие отказы вы повторяете и где этот список? Вам нужен конкретный перечень, который можно править, а не «наш умный движок решает сам».
5. Что я заберу с собой, если уйду? Спросите отдельно про сохранённые токены карт. Токены, работающие только внутри одной платформы, — это способ удержания, что бы ни было в договоре.
Как сравнить ответы
Пять вопросов дают пять историй. Оценивайте их в баллах, иначе сравнение не переживёт совещания.
| Ответ на вопрос 1–5 | Балл |
|---|---|
| Назвали конкретный механизм, файл или поле, которые можно проверить потом | 2 |
| Описали поведение верно, но общо | 1 |
| Переформулировали вопрос или ответили на другой | 0 |
Всего 10 баллов. Семь и выше — продукт, который уже сталкивался с этими задачами. Меньше четырёх значит, что демо опережает инженерию, и разрыв найдёте именно вы.
Оценивайте в тот же день, пока следующий звонок не смешал ответы. И запишите дословно ответ на третий вопрос — про всех нездоровых провайдеров. Именно его потом переписывают.
Ещё две вещи, которые стоит проверить, хотя они и не про маршрутизацию. Спросите, кто отвечает, когда провайдер поменял API и коннектор сломался. И попросите показать модель отчётности до подписания: именно в ней ваши финансисты будут жить каждый месяц.
Сравнение игроков рынка вы найдёте в payment orchestration platforms compared. Разницу между оркестрацией и обычным шлюзом смотрите в payment orchestration vs payment gateway.
Что сделать на этой неделе
Проект для этого не нужен. Вам нужны три числа, и все три уже есть в ваших отчётах.
Посмотрите процент одобрений в разрезе стран, а не общий. Общие 92% спокойно прячут 60% на одном рынке, где эмитент режет иностранные карты. Именно этот разрез запустил больше проектов по оркестрации, чем любая презентация вендора.
Посчитайте главные причины отказов. Возьмите прошлый месяц, сгруппируйте по коду причины и посмотрите на тройку лидеров. Потом спросите, какие из них спасла бы попытка через другого провайдера.
Проговорите падение провайдера на бумаге. Пройдите сценарий: основной провайдер лежит два часа в самый нагруженный день. Кто это заметит, как именно и на что переключится? Если в ответе есть слово «релиз» — разрыв вы уже нашли.
Эти три числа скажут больше любой таблицы. Если они указывают на проблему с маршрутизацией, следующий шаг — понять, кому вообще маршрутизировать.
Наш справочник провайдеров показывает эквайеров и методы оплаты по странам и вертикалям. Посмотрите в нём, кто реально работает на рынках, куда вы идёте, прежде чем начинать переговоры.