CloudPayments API: Вернуть деньги покупателю

Сценарий из mcp-everything. Актуально на 2026-10-24.

Полный или частичный возврат по заказу.

  1. Найди платёж по номеру заказа: POST /v2/payments/find с InvoiceId. Если по заказу было несколько операций, вернётся последняя — возьми TransactionId оплаты.
  2. Сделай возврат: POST /payments/refund с TransactionId и Amount — суммой возврата (можно меньше суммы оплаты). Если магазин отправляет чеки через CloudPayments, передай состав чека возврата в JsonData.
  3. В ответе — TransactionId операции возврата; сохрани его рядом с заказом.
  4. Возвраты по транзакциям старше года не проводятся.
curl -X POST https://api.cloudpayments.ru/v2/payments/find \
  -u '<Public ID>:<API Secret>' -H 'Content-Type: application/json' \
  -d '{"InvoiceId": "1042"}'

curl -X POST https://api.cloudpayments.ru/payments/refund \
  -u '<Public ID>:<API Secret>' -H 'Content-Type: application/json' \
  -d '{"TransactionId": 455, "Amount": 500}'

Базовые URL

Авторизация

Тип: Basic Auth

HTTP Basic Auth: логин — Public ID, пароль — API Secret. Оба значения есть в личном кабинете. Без заголовка авторизации или с неверными данными API возвращает HTTP 401 Unauthorized. API Secret нужно хранить в защищённом месте.

Параметры передаются методом POST в теле запроса: application/x-www-form-urlencoded («ключ=значение») или application/json. Ответ всегда JSON и содержит как минимум Success и Message.

{ "Success": false, "Message": "Invalid Amount value" }

Методы сценария

POST /payments/refund — Возврат денег

Возвраты по транзакциям старше года не проводятся.

Параметр Где Тип Обяз. Описание
TransactionId body Long да Номер транзакции оплаты
Amount body Number да Сумма возврата в валюте транзакции
JsonData body Json нет Данные транзакции, в том числе для онлайн-чека

Пример запроса:

{"TransactionId":455, "Amount": 100}

Пример ответа:

{
    "Model": {
        "TransactionId": 568
    },
    "Success": true,
    "Message": null
}

POST /v2/payments/find — Проверка статуса платежа

Поиск платежа по номеру заказа. Если найдено несколько платежей, возвращается последняя операция. Новый метод ищет по всем операциям, включая возвраты и выплаты на карту; старый адрес — /payments/find.

Параметр Где Тип Обяз. Описание
InvoiceId body String да Номер заказа

Пример запроса:

{"InvoiceId":"123456789"}

Пример ответа:

{"Success":false,"Message":"Not found"}

Нюансы

Другие сценарии


Если этого недостаточно — официальная документация: https://developers.cloudpayments.ru/#api Вся интеграция одним документом: https://mcp-everything.ru/integrations/cloudpayments.md