MCP-серверыMCP-серверыCloudPayments APIФинансовая аналитика

CloudPayments через API и MCP: 32 метода, конверт отказа, который не отличает 400 от отклонённой карты, и Public ID, который просят дважды

Разбираем API CloudPayments изнутри: платежи, выплаты, подписки и счета чужого магазина — не биллинг самой Миры, — почему списание по сохранённому токену считается расходом, а обычная оплата картой нет, зачем платёжной ссылке СБП собственный Public ID в теле запроса поверх Basic Auth, и как всё это доступно через MCP-сервер Mira без единой строки кода.

3 сентября 2026 г.4 мин чтения

Обзор

Как и с ЮKassa: это не про то, чем сама Mira принимает вашу оплату подписки — свой биллинг у неё есть и живёт отдельно. Это про ВАШ магазин. Если вы принимаете платежи через CloudPayments, у вас есть личный кабинет со своей парой Public ID и API Secret, и именно этими ключами агент читает и меняет данные ВАШЕЙ кассы — платежи, выплаты, подписки, счета, претензии.

У CloudPayments, в отличие от ЮKassa, нет официальной машиночитаемой спецификации (OpenAPI/Swagger) — только страница документации и неофициальные клиентские библиотеки на GitHub. Пришлось сверять построчно: выгрузить HTML документации в текст и разобрать каждый из 32 разделов «Адрес метода» вручную, а не угадать по названию. Урок команды, который вспоминают на каждом таком коннекторе: у другого банка 12 денежных действий однажды собрали «по смыслу названий», и все получили бы отказ 400 — ревью на выборке этого не заметило.

Mira подключает этот API целиком — 32 действия в восьми разделах — и отдаёт его в Claude через MCP.

Что доступно

Раздел Действий Что даёт
Платежи 8 оплата картой/токеном, 3-D Secure, подтверждение, отмена, возврат
Выплаты 3 по криптограмме карты, по токену, по СБП
Отчёты 7 список и детали транзакций, претензии, токены, безопасная сделка
Подписки 5 рекуррентные платежи: создание, поиск, изменение, отмена
Счета 2 ссылка на оплату по почте: создание, отмена
Настройки уведомлений 2 куда слать вебхуки — не их приём
Платёжные ссылки 4 оплата в один клик — СБП, T-Pay, SberPay, список банков СБП
Проверка ключей 1 подключён ли магазин

Списание по токену — расход, обычное списание — нет

Барьер записи в Mira делит пишущие действия на «просто меняет» и «ещё и тратит деньги». Первое впечатление: любое списание тратит деньги. На деле — наоборот: обычная оплата картой (charge) деньги магазина не тратит — они, наоборот, ПРИХОДЯТ от покупателя, который сам вводит данные карты и жмёт «оплатить». Расход — это только возврат и три вида выплат, где деньги уходят СО счёта магазина.

Особый случай — списание по сохранённой карте без держателя рядом (token_charge, тот же принцип, что у рекуррентных подписок). Деньги тоже приходят магазину, но карту списывают БЕЗ участия человека в этот момент — магазин действует над чужими деньгами без подтверждения держателя здесь и сейчас. Поэтому это действие помечено тратящим наравне с возвратом и выплатой, хотя по направлению денег оно ближе к обычному платежу.

Success: false — это и «плохой запрос», и «карта отклонена»

Документация сама предупреждает: «поле Success не отражает статус транзакции, а лишь свидетельствует об успешности запроса API». На практике это не спасает — пример отклика на ОТКЛОНЁННУЮ картой транзакцию показывает тот же Success: false, что и пример на некорректно сформированный запрос. Разбор ошибки берёт текст из Message, а для карточных операций донабирает Model.CardHolderMessage — человеческую фразу для держателя карты, которой в Message может не быть вовсе.

Public ID просят дважды

Три платёжные ссылки (СБП, T-Pay, SberPay) авторизуются обычным HTTP Basic — и всё равно требуют идентификатор терминала ПОВТОРНО, полем в теле запроса. Разные способы оплаты называют это поле по-разному: PublicId у СБП и SberPay, но publicId со строчной буквы у T-Pay — отправить капитализацию одного вместо другого значит получить отказ на ровном месте. Агент про это поле знать не должен — Mira подставляет его из собственных настроек источника сама.

Отдельно — у SberPay в документации написано прямо: «HTTP Basic Auth для данного метода не требуется, вместо неё используется PublicId в теле». Mira всё равно шлёт обычный Basic — это не мешает и не требует особого случая в коде ради одного метода из тридцати двух.

Чек — не действие, а поле

У ЮKassa есть отдельное действие «создать чек». У CloudPayments — нет. Фискальный чек (54-ФЗ) собирается ВНУТРИ платежа: полем JsonData = {"cloudpayments": {"CustomerReceipt": {...}}} у обычных платежей, но полем CustomerReceipt на ВЕРХНЕМ УРОВНЕ тела у подписок — то же самое поле по смыслу, две разные формы вложенности в зависимости от метода. Разница задокументирована в таблице вызовов инструмента ровно потому, что перепутать её — тихий отказ без объяснения, а не ошибка формата.

Живая проверка

Ключей для боевой пары Public ID/API Secret нет — раздел появится, когда владелец магазина их даст. Разбор адреса и тела, барьер записи, HTTP Basic и подстановка Public ID в тело проверены против собственного HTTP-сервера в тестах (перехват на транспорте — тот же приём, что у ЮKassa, Авито и Ozon Performance), а не против api.cloudpayments.ru.

Новости в Telegram

Подпишитесь на каналы — новые статьи и обзоры каждый день.

Источники

Ещё по теме «MCP-серверы»

MCP-серверы

1С через OData: как достать данные учётной базы без единой строки кода на встроенном языке

Разбираем стандартный OData-интерфейс 1С:Предприятие: чем он отличается от API конкретного сервиса, как узнать, что вообще опубликовано на конкретной базе, как проводить и отменять проведение документов и как всё это работает через MCP-сервер Mira без единой строки кода на встроенном языке.

3 сентября 2026 г.
MCP-серверы

Финтабло через API и MCP: 112 методов финучёта, семь путей без объявленных параметров и почему тут нет отчётов

Разбираем API Финтабло изнутри: 112 методов финансового учёта — ДДС, счета, контрагенты, сделки, зарплата, имущество, ОПиУ, — где спецификация поставщика сама не дописывает параметры пути, почему у четырёх PUT-запросов id дублируется в теле и куда делись отчёты. Всё доступно через MCP-сервер Mira без единой строки кода.

3 сентября 2026 г.
MCP-серверы

InSales через API и MCP: 195 действий на весь интернет-магазин, без единой строки кода

Разбираем публичный REST API платформы интернет-магазинов InSales изнутри: товары и варианты, заказы, клиенты, промокоды, доставка и оплата, страницы и блог, JS-теги витрины — 195 действий в 25 разделах, и почему InSales не публикует машиночитаемую спецификацию, хотя API у неё огромный. Всё это доступно через MCP-сервер Mira без единой строки кода.

3 сентября 2026 г.