Как оформить подписку на сервисы через Revolut Business API

Если ты управляешь бизнесом и хочешь автоматизировать подключение платёжных сервисов — например, SaaS-платформ, CRM, бухгалтерских систем — через Revolut Business API, то ты на правильном пути. Но тут не всё так просто, как в инструкции для фрилансера. Я видел, как компании тратили недели на попытки подключить Stripe, QuickBooks или Xero через Revolut, потому что не понимали, где и как именно нужно ставить точки над «i». В этой статье — пошагово, без воды, как делают те, кто уже прошёл этот путь.

Зачем вообще использовать Revolut Business API для подписок?

Revolut Business API — это не просто способ оплачивать счёт. Это инструмент для автоматизации регулярных платежей между твоим бизнесом и сторонними сервисами. Например:

  • Автоматически оплачивать подписку на Notion, Slack, HubSpot или Airtable каждое 1-е число месяца;
  • Переводить деньги на аутсорс-бухгалтера или юриста по графику;
  • Интегрировать оплату подписок в твою внутреннюю систему учёта — чтобы не вбивать вручную каждый платеж.

В отличие от ручного перевода или карты, API позволяет:

  • Управлять платежами программно — через код;
  • Получать статусы оплат: «успешно», «отклонено», «ожидает подтверждения»;
  • Связывать платежи с внутренними ID — например, с номером клиента или заказа;
  • Автоматически перезапускать проваленные платежи (если на счету не хватило денег).

Но это не «включил и забыл». Нужно понимать, как это работает — и что может пойти не так.

Что тебе нужно, чтобы начать

Перед тем как писать код или звонить в поддержку — собери три вещи:

  1. Аккаунт Revolut Business — не личный, не Premium, именно Business. Должен быть активен и иметь хотя бы один бизнес-счёт в EUR, GBP или USD.
  2. Доступ к API — его не дают автоматически. Нужно подать заявку через веб-интерфейс: «Business» → «API» → «Request Access». Обычно ответ приходит за 1–3 рабочих дня.
  3. Технический контакт — кто-то в твоей команде должен уметь работать с REST API, понимать, что такое OAuth 2.0, JSON и вебхуки. Если такого нет — найми фрилансера на 2–3 часа для настройки.

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

Как именно оформить подписку через API

Вот как это выглядит на практике — шаг за шагом.

Шаг 1: Получи API-ключи

После одобрения доступа ты получишь:

  • Client ID — идентификатор твоего приложения;
  • Client Secret — пароль для аутентификации;
  • Webhook Secret — ключ для проверки подлинности уведомлений от Revolut.

Эти ключи — как пароль от банковского сейфа. Никому не передавай. Не хранить в GitHub, не вбивать в Google Sheets. Используй секрет-менеджер: Vault, AWS Secrets Manager или даже зашифрованный файл на сервере.

Шаг 2: Выбери тип платежа

Revolut Business API поддерживает два типа регулярных платежей:

Тип Когда использовать Ограничения
Recurring Payment Фиксированная сумма, фиксированный график (например, $99/мес) Только для подписок, где сумма не меняется. Нельзя менять сумму без нового запроса.
One-time Payment + Scheduled Trigger Переменная сумма, например, 120,85, $150 — в зависимости от использования Требует отдельного API-вызова каждый раз. Не «подписка» в классическом смысле, но гибче.

Если ты платишь за облачный сервер — где стоимость зависит от использования — выбирай второй вариант. Если ты просто оплачиваешь Notion — первый.

Шаг 3: Создай подписку

Чтобы создать подписку, отправь POST-запрос на эндпоинт:

POST https://api.revolut.com/business/v1/recurring-payments

Тело запроса (JSON):

{
  "amount": 120.00,
  "currency": "USD",
  "interval": "MONTHLY",
  "start_date": "2024-07-01",
  "merchant_reference": "NOTION-2024-07",
  "description": "Notion Business Subscription",
  "payer_account_id": "acc_abc123",
  "payee_account_id": "acc_xyz789",
  "payee_name": "Notion, Inc.",
  "payee_country": "US"
}

Обрати внимание на:

  • interval — может быть DAILY, WEEKLY, MONTHLY, QUARTERLY, ANNUALLY.
  • start_date — не может быть в прошлом. Только сегодня или позже.
  • merchant_reference — твой внутренний ID. Он нужен, чтобы ты мог потом найти этот платеж в логах.
  • payee_account_id — это не email, а ID счёта получателя в Revolut. Его нужно получить заранее через API или вручную в интерфейсе.

Если всё правильно — получишь ответ с status: "PENDING_APPROVAL". Это значит, что Revolut проверяет получателя. Обычно это занимает 1–2 часа. Иногда — до 24 часов, если получатель — новая компания.

Шаг 4: Подтверди подписку

После одобрения ты получишь вебхук (уведомление) на URL, который ты указал при настройке API. Пример:

{
  "event_type": "RECURRING_PAYMENT_APPROVED",
  "recurring_payment_id": "rp_123456",
  "merchant_reference": "NOTION-2024-07",
  "status": "ACTIVE"
}

Тебе нужно:

  1. Проверить подпись вебхука (с помощью Webhook Secret), чтобы убедиться, что это действительно Revolut;
  2. Обновить статус в своей системе — например, пометить подписку как «активна»;
  3. Уведомить пользователя, если это клиентский сервис.

Если вебхук не пришёл — не жди. Проверь статус вручную через GET-запрос:

GET https://api.revolut.com/business/v1/recurring-payments/rp_123456

Шаг 5: Обрабатывай ошибки

Платеж может провалиться по разным причинам:

  • На счёте не хватает денег — статус FAILED_INSUFFICIENT_FUNDS;
  • Получатель отменил подписку — FAILED_PAYEE_REJECTED;
  • Счёт получателя заблокирован — FAILED_PAYEE_ACCOUNT_BLOCKED;
  • Неправильный ID — INVALID_REQUEST.

Когда платеж провалился — ты получишь вебхук с event_type: "RECURRING_PAYMENT_FAILED". Твоя задача — не игнорировать его.

Сделай автоматический retry: если не хватило денег — попробуй снова через 24 часа. Если ошибка «неправильный счёт» — отправь уведомление администратору. Не жди, пока клиент скажет: «Мы перестали получать доступ».

Что выбрать: Revolut API или прямая интеграция с сервисом?

Вот реальный сценарий. Ты хочешь оплачивать:

  • Slack — $10/человек/мес
  • Notion — $8/человек/мес
  • Google Workspace — $6/человек/мес

Ты можешь:

  • Вариант A: Подключить каждую систему через их собственный API (Slack Billing API, Notion API, Google Admin API) — и платить напрямую им.
  • Вариант B: Собрать все платежи в Revolut Business API — и платить им через один центральный канал.

Сравни:

Критерий Прямая интеграция (Slack, Notion и т.д.) Revolut Business API
Сложность Высокая — нужно интегрироваться с каждым сервисом отдельно Одна интеграция — и ты можешь платить любому, кто имеет счёт в Revolut
Гибкость Ограничена — только те сервисы, которые поддерживают API-оплату Любой бизнес с Revolut Business — даже если он не имеет API
Управление Разрозненные интерфейсы, разные логи Один центр — все платежи, статусы, отчёты
Риск Если Slack изменит API — всё сломается Если Revolut изменит API — ты переписываешь один модуль
Поддержка Ты общаешься с 3 разными службами поддержки Только с Revolut

Выбирай Revolut API, если:

  • Ты платишь 5+ сервисам;
  • Суммы и получатели меняются;
  • Ты хочешь единый отчёт по всем подпискам;
  • Ты не хочешь держать 5 разных API-ключей в разных местах.

Выбирай прямую интеграцию, если:

  • Ты платишь только одному сервису (например, только Slack);
  • У этого сервиса есть отличная поддержка автоматических платежей;
  • Ты хочешь точный контроль над тарифами и лицензиями (например, автоматическое добавление/удаление пользователей).

Частые ошибки — и как их избежать

Я видел десятки кейсов, где всё шло не так. Вот основные ошибки:

  1. Используют личный Revolut аккаунт — API не работает с личными аккаунтами. Только Business. Это частая ошибка у стартапов, которые думают, что «у меня же бизнес».
  2. Не проверяют ID счёта получателя — берут email или название компании. Нужен именно acc_... — иначе ошибка INVALID_PAYEE_ACCOUNT.
  3. Игнорируют вебхуки — думают, что если запрос отправлен — всё хорошо. Нет. Статус может меняться. Без вебхуков ты не узнаешь, что платеж провалился.
  4. Не обрабатывают ошибки — платеж провалился, но система не уведомила ни админа, ни клиента. Через неделю клиент пишет: «Вы отключили сервис».
  5. Пишут платежи вручную в Excel — потом не можешь понять, кто за что платил. Всё должно быть связано с merchant_reference.
  6. Пытаются платить в RUB — Revolut Business API не поддерживает рубли для регулярных платежей. Только USD, EUR, GBP.

Как лучше сделать — рекомендации от практика

Вот что работает на практике:

  • Создай отдельный счёт в Revolut Business только для подписок. Не смешивай его с зарплатами или закупками. Это упростит бухучёт и аудит.
  • Используй один merchant_reference на каждую подписку — например: SLACK-CLIENT-001, NOTION-TEAM-2024. Так ты потом сможешь найти платеж по ID клиента.
  • Настрой уведомления — если платеж провалился, приходи уведомление в Slack или Telegram. Не жди, пока клиент пожалуется.
  • Сделай автоматический retry — если не хватило денег — попробуй снова через 24 часа. 80% таких платежей проходят во второй раз.
  • Храни ключи в секрет-менеджере — даже если ты один разработчик. Даже если «всё на одном сервере». Это не про безопасность — это про привычку. Когда придут ещё 3 человека — ты не будешь искать, где лежит ключ.
  • Сделай тестовый режим — используй sandbox-среду Revolut (если есть) или создай тестовую компанию с нулевым балансом. Проверяй все сценарии: успешный платёж, провал, отмена, блокировка.

Сценарии: что делать в разных ситуациях

Вот как действовать, если:

Ситуация 1: Ты — стартап с 3 подписками

Ты платишь за Slack, Notion, Figma. Суммы фиксированные. У тебя один разработчик.

Решение: Используй Revolut API. Создай одну подписку на каждый сервис. Установи вебхук на простой webhook.site — чтобы видеть, что приходит. Сделай скрипт на Python, который раз в день проверяет статусы. Если что-то упало — пиши в Telegram. Просто, но работает.

Ситуация 2: Ты — SaaS-компания, которая продает подписки клиентам

Ты берёшь $15/мес с клиентов, и за это же время оплачиваешь хостинг, базу данных, поддержку. Тебе нужно, чтобы платежи шли синхронно.

Решение: Не используй Revolut API для оплаты твоих поставщиков через клиентские платежи. Это рискованно. Вместо этого — используй Revolut для своих расходов, а клиентские платежи оставь через Stripe или PayPal. Почему? Потому что если клиент отменит подписку — ты всё равно должен платить хостингу. Нельзя связывать эти два потока. Делай два отдельных канала.

Ситуация 3: Ты — аутсорс-бюро, которое платит за 20 клиентов

Ты управляешь бухгалтерией для 20 компаний. Каждая платит за свою CRM, за свой хостинг. Ты хочешь всё автоматизировать.

Решение: Используй Revolut API, но с merchant_reference вида: CLIENT-007-CRM-2024. Храни все данные в базе. Сделай отчёт, который показывает: «Клиент 7 оплатил CRM 10.07.2024 — статус: ACTIVE». Это сэкономит тебе 10 часов в месяц на ручной проверке.

Итог: что делать прямо сейчас

Если ты хочешь автоматизировать подписки через Revolut Business API — сделай это по шагам:

  1. Убедись, что у тебя есть Revolut Business — не личный аккаунт.
  2. Зайди в панель → «API» → подай заявку на доступ. Жди 1–3 дня.
  3. Получи ключи — и немедленно сохрани их в безопасном месте.
  4. Определи: фиксированная сумма? → используй Recurring Payment. Переменная? → используй One-time Payment с расписанием.
  5. Получи ID счёта получателя — не email, не название. Только acc_....
  6. Создай подписку через API — и проверь статус через вебхук.
  7. Настрой уведомления — чтобы ты знал, когда платеж провалился.
  8. Проверь всё на тестовом счёте — прежде чем запускать в продакшн.

Не пытайся сделать всё сразу. Начни с одной подписки — например, Notion. Убедись, что всё работает. Потом добавь вторую. И третью. Ты не должен быть «супер-инженером» — ты должен быть системным. И это — твоя сила.

Информация в этой статье носит ознакомительный характер. Настройка API и управление финансовыми потоками требуют технических и юридических проверок. Перед внедрением проконсультируйся с техническим специалистом и финансовым консультантом.

Platejigid.ru