Сверка, отчётность и аналитика платежей (Reconciliation)
![Дашборд оплаты и сверка — макет]()
Что такое сверка платежей и зачем она нужна
Сверка платежей (reconciliation) — это сопоставление ваших заказов и транзакций с данными платёжных провайдеров и банковских расчётов. Цель — подтвердить, что каждый платёж учтён, суммы совпадают, комиссии корректны, а возвраты и сторно отражены верно. Без системной сверки легко терять деньги из‑за задержек статусов, дублирования запросов, частичных захватов или ошибок при отменах.
Ключевые задачи, которые решает сверка платежей API:
- единый язык статусов и причин отказа для разных эквайеров;
- непрерывное обновление статусов (от авторизации до списания и возвратов);
- контроль комиссий и итоговых зачислений на расчётный счёт;
- исключение дублей (идемпотентность) и корректная обработка повторов;
- прозрачная отчётность эквайринг для финансовой службы и бухгалтерии;
- аналитика конверсии оплаты и качество платёжного опыта.
Если вы используете несколько банков и агрегаторов, потребность в едином reconciliation увеличивается кратно. Подробнее о стратегиях выбора стека — в обзоре Банки vs агрегаторы.
Как работает reconciliation в API Платежи Онлайн
Мы нормализуем события и статусы из разных источников, синхронизируем их в реальном времени и предоставляем единый слой данных для продукта, аналитики и финансов.
Основа процесса:
Инициация. Вы создаёте платёж (order + payment) через единый протокол. См. Базовая интеграция.
События. Провайдеры отправляют нам события: авторизация, 3‑D Secure, списание, отмена, возврат. Мы приводим их к общей схеме.
Обновления статусов. Ваше приложение получает изменения через вебхуки и/или периодическую сверку по API.
Ежедневная отчётность. Ночная (или инкрементальная) сверка закрывает «хвосты»: поздние списания, частичные возвраты, пересчёт комиссий.
Финальный расчёт. Отражаем итоги по выплатам и комиссиям в отчётах для бухучёта и DWH.
Для проверки логики до выхода в прод используйте Песочницу.
Унификация статусов: карта соответствий провайдеров
Таблица ниже иллюстрирует, как мы сопоставляем статусы разных эквайеров. На стороне API вы работаете с нормализованными значениями, что критично для сверки и отчётности.
| Нормализованный статус |
Сбербанк |
YooMoney |
T‑Bank |
Belarusbank |
Описание |
| pending |
CREATED |
pending |
NEW |
pending |
Платёж создан, ожидает следующего шага |
| authorized |
APPROVED |
waiting_for_capture |
AUTHORIZED |
authorized |
Сумма заблокирована на карте (hold) |
| captured |
DEPOSITED |
succeeded |
CONFIRMED |
captured |
Списание завершено, деньги на пути к зачислению |
| failed |
DECLINED |
canceled |
CANCELED |
failed |
Отказ, списания нет |
| canceled |
CANCELED |
canceled |
CANCELED |
canceled |
Отменено до списания |
| refunded_partial |
REFUNDED (partial) |
refunded (partial) |
PARTIAL_REFUND |
refunded_partial |
Частичный возврат |
| refunded_full |
REFUNDED (full) |
refunded (full) |
REFUNDED |
refunded_full |
Полный возврат |
| reversed |
REVERSED |
— |
REVERSED |
reversed |
Сторнирование/разворот операции |
| chargeback |
CHARGEBACK |
dispute_opened |
CHARGEBACK |
chargeback |
Чарджбэк (претензия банка) |
Примечание: конкретные коды могут отличаться в зависимости от версии API конкретного провайдера. Подробности см. карточки интеграций: Сбербанк эквайринг, YooMoney, T‑Bank, Belarusbank.
Поток данных: вебхуки, polling и отчётные выгрузки
Мы поддерживаем несколько способов доставки обновлений для стабильной сверки:
Вебхуки (рекомендуется). События: payment.created, payment.authorized, payment.captured, payment.failed, refund.succeeded, payout.settled, chargeback.opened. Для защиты от дублей используйте идемпотентность — см. паттерн Webhooks и idempotency.
Polling по окну времени. Инкрементальные выборки по updated_at с «водяным знаком» (watermark) для бэкапов и перезапусков.
Ежедневные отчёты (выгрузки платежей). Автоматически формируем пакетные выгрузки за сутки/неделю/месяц и доставляем в S3/SFTP или отдаём по API.
Рекомендации по расписанию:
- инкрементальная сверка раз в 5–15 минут (операционные дэшборды);
- закрытие дня в 02:00 локального времени мерчанта (финансовая отчётность);
- недельные сводки по чарджбэкам и комиссиям для контроллинга.
Отчётность эквайринг для финансов и бухгалтерии
Система формирует набор стандартных отчётов, чтобы упростить закрытие периода и внутренний аудит:
- Реестр оплат: все операции с нормализованными статусами и идентификаторами (payment_id, order_id, rrn, provider_reference).
- Комиссии эквайринга: расчёт fee_amount/fee_rate на транзакцию и в агрегате. Сопоставление с актами провайдера.
- Реестр возвратов и сторно: full/partial, дата инициирования и фактического списания.
- Отчёт по выплатам/зачислениям: ожидаемые и фактические поступления, лаги, валюта.
- Движение по чарджбэкам: новые, выигранные/проигранные кейсы, net‑влияние на выручку.
Формула для финансового учёта (упрощённо):
Gross Payments − Refunds − Chargebacks − Fees = Net Settlements.
Особенности отражения операций:
- Разделяйте authorization и capture: списание может быть частичным или отложенным.
- Сторно и возвраты обрабатывайте через унифицированный поток — см. Возвраты и развороты.
- Учитывайте 3‑D Secure flow и доп. проверки, влияющие на конверсию и риск — см. PCI DSS и 3‑DS.
Выгрузки платежей и интеграции с DWH
API Платежи Онлайн поддерживает настраиваемые выгрузки платежей в нужных форматах и каналах доставки.
| Формат |
Доставка |
Типичные сценарии |
| CSV, XLSX |
UI, SFTP, S3 |
Финансовая отчётность, обмен с бухучётом |
| JSON Lines |
API, S3 |
Инкрементальные загрузки в DWH/ETL |
| Parquet |
S3 |
Аналитика больших объёмов в ClickHouse/BigQuery |
| Google Sheets |
API |
Операционный мониторинг для нефинансовых команд |
Рекомендуемые поля для аналитики и сверки:
- Идентификаторы: payment_id, order_id, merchant_id, provider, provider_reference, rrn.
- Финансы: amount, currency, fee_amount, fee_rate, settlement_amount, exchange_rate.
- Состояния: status_normalized, created_at, authorized_at, captured_at, settled_at, refunded_at.
- Канал и риск: method, channel (web/app), device, country, ip, 3ds_result, decline_code.
- Клиент и товар: customer_id, subscription_id, product_category, meta.
Если вы строите мобильную воронку оплаты, обратите внимание на SDK для мобильных приложений.
Метрики конверсии и дашборды оплаты
Чтобы управлять выручкой, важны корректные метрики конверсии и прозрачные дашборды оплаты. Мы считаем и визуализируем:
- Initiation rate: начатые платежи / попытки перехода к оплате.
- Authorization rate: успешные авторизации / попытки, отдельно по 3‑DS.
- Capture rate: списания / авторизации.
- Paid conversion (оплачено): списания / начатые платежи.
- 3‑DS challenge rate и pass rate: частота и успешность прохождения 3‑D Secure — см. PCI/3‑DS.
- Decline breakdown: причины отказов по кодам и провайдерам, рекомендации по ретраям.
- A/B по провайдерам и методам: роутинг по одобряемости и комиссиям.
![Воронка оплаты и конверсия — placeholder]()
Пример воронки: initiated → 3DS (optional) → authorized → captured → settled → refunded. Для мобильных и подписочных сценариев дополнительно учитываются ретраи и автообновление карт.
Возвраты, рекуррентные платежи и фрод-аналитика
Рекуррентные платежи. Анализируем первую оплату vs последующие, показатель dunning success (возврат задолженности), churn по картам. Подробности реализации — в разделе Рекуррентные подписки.
Возвраты и сторно. Считаем N‑day refund rate, долю частичных возвратов, эффект на Net Settlements. Настройки потоков — в Refunds & Reversals.
Фрод и чарджбэки. Отслеживаем chargeback ratio, win rate по представлениям (representments), скоринговые триггеры. Алерты и расследования — см. Ошибки и мониторинг.
Примеры сценариев сверки по популярным провайдерам
YooMoney. Частая схема: waiting_for_capture → succeeded или canceled. При частичном захвате отражаем captured_amount < authorized_amount. Интеграция: YooMoney API.
Сбербанк эквайринг. Типично двухфазное списание: APPROVED (hold) → DEPOSITED (capture). Возвраты могут приезжать позже отчёта дня — включайте ночную досверку. Интеграция: Сбербанк Acquiring API.
T‑Bank. Поддерживает динамический 3‑DS и детальные decline codes. Совмещайте авторизационную конверсию и риск‑метрики для оптимального роутинга. Интеграция: T‑Bank API.
Belarusbank. Простая линейка статусов, возможны задержки по settlement. Рекомендуем включать polling на уровне часа. Интеграция: Belarusbank API.
Быстрый старт: 5 шагов к надёжной сверке
Подключите базовую интеграцию и создайте тестовые платежи — см. Основы интеграции и Песочницу.
Включите вебхуки и идемпотентность, настройте ретраи доставки — см. Webhooks & Idempotency.
Настройте выгрузки платежей по расписанию: ежедневные CSV для бухгалтерии и JSONL для DWH.
Соберите дашборды оплаты: конверсия, 3‑DS, отказные коды, комиссии, возвраты.
Добавьте мониторинг ошибок и деградаций — см. Ошибки и мониторинг.
Мониторинг и SLA: на что алертить
- Падение authorization/approval rate у конкретного провайдера или BIN‑группы.
- Всплеск 3‑DS challenge rate или growth отказов по коду «Do not honor».
- Задержки вебхуков >5 минут или рост доли повторных доставок.
- Несоответствие сумм в отчётах по комиссиям vs акты провайдера.
- Ошибки nightly‑выгрузок и лаг в settlement‑данных.
Типовые цели SLA для сверки: 99.9% доставка вебхуков, <15 минут RTO инкрементальной сверки, закрытие дня до 06:00 локального времени.
Итоги и следующий шаг
Сверка платежей API — это не только контроль сумм и статусов, но и фундамент для прозрачной отчётности эквайринг, эффективного роутинга и роста конверсии. Единые статусы, гибкие выгрузки платежей и понятные дашборды оплаты позволяют принять верные решения быстро и подтверждать их цифрами.
Готовы выстроить надёжный reconciliation и аналитику? Начните с основ интеграции и тестов в песочнице, или свяжитесь с нами через поддержку, чтобы получить демо и рекомендации по настройке.