Сценарий из mcp-everything. Актуально на 2026-10-24.
Оплата без корзины на сайте: отправить клиенту ссылку в мессенджер, по почте или SMS.
curl -X POST https://api.cloudpayments.ru/orders/create \
-u '<Public ID>:<API Secret>' \
-H 'Content-Type: application/json' \
-d '{
"Amount": 4900.0,
"Currency": "RUB",
"Description": "Консультация 24 октября",
"Email": "client@example.ru",
"InvoiceId": "INV-305",
"SendEmail": true,
"SuccessRedirectUrl": "https://example.ru/paid"
}'
https://api.cloudpayments.ruТип: 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" }
Формирует ссылку на оплату и при необходимости отправляет её плательщику по e-mail, SMS или Viber.
Пример ответа (сокращён):
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
Amount |
body | Number | да | Сумма платежа |
Currency |
body | String | нет | Валюта, по умолчанию RUB |
Description |
body | String | да | Назначение платежа |
Email |
body | String | нет | E-mail плательщика |
RequireConfirmation |
body | Bool | нет | true — двухстадийная схема |
SendEmail |
body | Bool | нет | Отправить письмо со ссылкой |
InvoiceId |
body | String | нет | Номер заказа |
AccountId |
body | String | нет | Идентификатор пользователя |
OfferUri |
body | String | нет | Ссылка на оферту |
Phone |
body | String | нет | Телефон плательщика |
SendSms |
body | Bool | нет | Отправить SMS со ссылкой |
SendViber |
body | Bool | нет | Отправить сообщение в Viber |
CultureName |
body | String | нет | Язык уведомлений |
SubscriptionBehavior |
body | String | нет | Платёж с подпиской: CreateWeekly, CreateMonthly |
SuccessRedirectUrl |
body | String | нет | Редирект при успешной оплате |
FailRedirectUrl |
body | String | нет | Редирект при неуспешной оплате |
JsonData |
body | Json | нет | Данные транзакции, в том числе для онлайн-чека |
Пример запроса:
{
"Amount":10.0,
"Currency":"RUB",
"Description":"Оплата на сайте example.com",
"Email":"client@test.local",
"RequireConfirmation":true,
"SendEmail":false
}
Пример ответа:
{
"Model": {
"Id": "gASGZVgUN21hcpPF",
"Number": 2130,
"Amount": 10.0,
"Currency": "RUB",
"Url": "https://orders.cloudpayments.ru/d/gASGZVgUN21hcpPF"
},
"Success": true,
"Message": null
}
Success в ответе показывает только успешность запроса, а не статус транзакции. Статус транзакции смотрят в поле Model.Status или в уведомлениях.X-Request-ID с уникальным значением; результат хранится 1 час, новый запрос требует нового значения.Payer.Phone (только цифры, например +71234567890), иначе банки отклоняют операции.X-Content-HMAC и Content-HMAC: HMAC-SHA256 от тела запроса (для GET — от строки параметров) в UTF-8, ключ — API Secret, результат в base64.{"code":0} — принять платёж; коды 10, 11, 12, 13, 20 отклоняют его (неверный InvoiceId, AccountId, сумма, платёж не принят, просрочен).Если этого недостаточно — официальная документация: https://developers.cloudpayments.ru/#api Вся интеграция одним документом: https://mcp-everything.ru/integrations/cloudpayments.md