CloudPayments API: Двухстадийная оплата: заблокировать и списать позже

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

Деньги замораживаются при заказе и списываются после сборки — или возвращаются на карту, если товара нет.

  1. Проведи авторизацию вместо списания: POST /payments/cards/auth с теми же параметрами, что и одностадийная оплата. Деньги заблокируются на карте.
  2. Когда заказ собран, подтверди списание: POST /payments/confirm с TransactionId и Amount. Сумма может быть меньше заблокированной — например, если часть товара закончилась.
  3. Если заказ отменён, сними блокировку: POST /payments/void с TransactionId.
  4. Для оплат по сохранённой карте в двухстадийной схеме — /payments/tokens/auth, подтверждение тем же /payments/confirm.
# Подтвердить списание (сумма — не больше заблокированной)
curl -X POST https://api.cloudpayments.ru/payments/confirm \
  -u '<Public ID>:<API Secret>' \
  -H 'Content-Type: application/json' \
  -d '{"TransactionId": 455, "Amount": 65.98}'

# Или отменить блокировку
curl -X POST https://api.cloudpayments.ru/payments/void \
  -u '<Public ID>:<API Secret>' \
  -H 'Content-Type: application/json' \
  -d '{"TransactionId": 455}'

Базовые 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/cards/auth — Оплата по криптограмме (двухстадийная)

Те же параметры и ответы, что у /payments/cards/charge. Деньги блокируются и списываются только после вызова /payments/confirm.

POST /payments/tokens/auth — Оплата по токену (двухстадийная)

Те же параметры, что у /payments/tokens/charge; требует последующего подтверждения через /payments/confirm.

POST /payments/confirm — Подтверждение оплаты

Подтверждение платежа, проведённого по двухстадийной схеме.

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

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

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

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

{"Success":true,"Message":null}

POST /payments/void — Отмена оплаты

Параметр Где Тип Обяз. Описание
TransactionId body Long да Номер транзакции в системе

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

{"TransactionId":455}

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

{"Success":true,"Message":null}

Нюансы

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


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