CloudPayments API: POST /payments/cards/charge — Оплата по криптограмме (одностадийная)

Оплата по криптограмме платёжных данных, сформированной скриптом Checkout. Для двухстадийной схемы тот же набор параметров отправляется на /payments/cards/auth. Если нужна 3-D Secure аутентификация, в ответе будет Success: false и в Model — AcsUrl, PaReq, TransactionId.

Пример ответа (некорректный запрос):

Пример ответа (требуется 3-D Secure):

Пример ответа (транзакция принята, сокращён):

Параметр Где Тип Обяз. Описание
Amount body Number да Сумма платежа, разделитель точка, не больше 2 знаков после точки; не меньше 0.01
Currency body String нет Валюта: RUB/USD/EUR/GBP, по умолчанию RUB
IpAddress body String да IP-адрес плательщика
CardCryptogramPacket body String да Криптограмма платёжных данных
Name body String нет Имя держателя карты латиницей
PaymentUrl body String нет Адрес сайта, с которого вызывается скрипт checkout
InvoiceId body String нет Номер счёта или заказа
Description body String нет Описание оплаты в свободной форме
CultureName body String нет Язык уведомлений: ru-RU, en-US
AccountId body String нет Идентификатор пользователя; нужен для создания подписки и получения токена
Email body String нет E-mail для квитанции об оплате
Payer body Object нет Данные плательщика: FirstName, LastName, MiddleName, Birth, Street, Address, City, Country, Phone, Postcode
JsonData body Json нет Произвольные данные транзакции; инструкции для подписки или онлайн-чека оборачиваются в объект cloudpayments
SaveCard body bool нет Вернуть карточный токен после успешной оплаты (работает при включённой настройке «Сохранение токена карты» в ЛК)
X-Request-ID header String нет Уникальный ключ для идемпотентности

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

{
    "Amount":10,
    "Currency":"RUB",
    "InvoiceId":"1234567",
    "IpAddress": "123.123.123.123",
    "Description":"Оплата товаров в example.com",
    "AccountId":"user_x",
    "Name":"CARDHOLDER NAME",
    "CardCryptogramPacket":"01492500008719030128SM...",
    "Payer":
      {
        "FirstName":"Тест",
        "LastName":"Тестов",
        "Phone":"+71234567890"
    }
}

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

{"Success":false,"Message":"Amount is required"}

Базовые 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" }

Нюансы

Сценарии с этим методом


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