{"name":"CloudPayments API","vendor":"CloudPayments","industry":"finance","summary":"Программный интерфейс платёжного сервиса CloudPayments для приёма карточных платежей. Через API проводят оплату по криптограмме карты и по сохранённому токену (рекуррентные платежи), подтверждают, отменяют и возвращают платежи, управляют подписками и выставляют счета со ссылкой на оплату. О результатах платежей сервис сообщает уведомлениями (вебхуками) на сайт магазина.","docsUrl":"https://developers.cloudpayments.ru/#api","coverage":{"included":[],"excluded":[]},"scenarios":[{"id":"prinyat-oplatu-kartoy-na-sayte","title":"Принять оплату картой на сайте","summary":"Одностадийная оплата: данные карты шифрует скрипт CloudPayments на странице, сервер магазина проводит платёж по криптограмме.","steps":["На странице оплаты подключи скрипт Checkout: он принимает данные карты и отдаёт криптограмму — сами данные карты на твой сервер не попадают.","С сервера проведи платёж: POST /payments/cards/charge с Amount, Currency, IpAddress плательщика, CardCryptogramPacket, InvoiceId (номер заказа) и AccountId. Авторизация — Basic: Public ID и API Secret. Передай заголовок X-Request-ID, чтобы повтор запроса не создал второй платёж.","Если банку нужна 3-D Secure, ответ придёт с Success: false и Model с AcsUrl, PaReq и TransactionId. Отправь покупателя POST-формой на AcsUrl с MD = TransactionId, PaReq и TermUrl — адресом возврата на твой сайт.","Когда покупатель вернётся на TermUrl с MD и PaRes, заверши оплату: POST /payments/cards/post3ds с TransactionId и PaRes.","Успех запроса (Success) — не то же самое, что успех оплаты: статус транзакции смотри в Model.Status, причину отказа — в коде ошибки (например, 5051 — недостаточно средств)."],"code":"curl -X POST https://api.cloudpayments.ru/payments/cards/charge \\\n  -u '<Public ID>:<API Secret>' \\\n  -H 'Content-Type: application/json' \\\n  -H 'X-Request-ID: order-1042-try-1' \\\n  -d '{\n        \"Amount\": 1500.00,\n        \"Currency\": \"RUB\",\n        \"IpAddress\": \"203.0.113.7\",\n        \"CardCryptogramPacket\": \"<криптограмма из Checkout>\",\n        \"InvoiceId\": \"1042\",\n        \"AccountId\": \"user_42\",\n        \"Description\": \"Оплата заказа № 1042\",\n        \"Email\": \"buyer@example.ru\"\n      }'","language":"bash","methods":["POST /payments/cards/charge","POST /payments/cards/post3ds"]},{"id":"dvuhstadiynaya-oplata-zablokirovat","title":"Двухстадийная оплата: заблокировать и списать позже","summary":"Деньги замораживаются при заказе и списываются после сборки — или возвращаются на карту, если товара нет.","steps":["Проведи авторизацию вместо списания: POST /payments/cards/auth с теми же параметрами, что и одностадийная оплата. Деньги заблокируются на карте.","Когда заказ собран, подтверди списание: POST /payments/confirm с TransactionId и Amount. Сумма может быть меньше заблокированной — например, если часть товара закончилась.","Если заказ отменён, сними блокировку: POST /payments/void с TransactionId.","Для оплат по сохранённой карте в двухстадийной схеме — /payments/tokens/auth, подтверждение тем же /payments/confirm."],"code":"# Подтвердить списание (сумма — не больше заблокированной)\ncurl -X POST https://api.cloudpayments.ru/payments/confirm \\\n  -u '<Public ID>:<API Secret>' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"TransactionId\": 455, \"Amount\": 65.98}'\n\n# Или отменить блокировку\ncurl -X POST https://api.cloudpayments.ru/payments/void \\\n  -u '<Public ID>:<API Secret>' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"TransactionId\": 455}'","language":"bash","methods":["POST /payments/cards/auth","POST /payments/tokens/auth","POST /payments/confirm","POST /payments/void"]},{"id":"podpiska-i-spisaniya-po-sohranennoy","title":"Подписка и списания по сохранённой карте","summary":"Ежемесячная оплата сервиса или списание без участия покупателя по карте, сохранённой при первой оплате.","steps":["Первая оплата — обычная, по криптограмме, обязательно с AccountId (идентификатором пользователя у тебя). После успешной оплаты CloudPayments вернёт токен карты в данных транзакции и в Pay-уведомлении — сохрани его.","Для регулярных списаний создай подписку: POST /subscriptions/create с Token, AccountId, Description, Amount, Currency, RequireConfirmation, StartDate (в UTC, в будущем), Interval (Day, Week, Month) и Period. Сохрани Id подписки из ответа.","Для разовых списаний без подписки используй POST /payments/tokens/charge с Token, AccountId, Amount и TrInitiatorCode = 0 (списание инициирует магазин); для оплаты по расписанию — PaymentScheduled = 1.","Отключить подписку: POST /subscriptions/cancel с Id.","Токен работает только на том терминале (Public ID), где был получен."],"code":"curl -X POST https://api.cloudpayments.ru/subscriptions/create \\\n  -u '<Public ID>:<API Secret>' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n        \"Token\": \"<токен карты>\",\n        \"AccountId\": \"user_42\",\n        \"Description\": \"Подписка на сервис example.ru\",\n        \"Email\": \"user@example.ru\",\n        \"Amount\": 399,\n        \"Currency\": \"RUB\",\n        \"RequireConfirmation\": false,\n        \"StartDate\": \"2026-11-01T09:00:00\",\n        \"Interval\": \"Month\",\n        \"Period\": 1\n      }'","language":"bash","methods":["POST /payments/tokens/charge","POST /subscriptions/create","POST /subscriptions/cancel"]},{"id":"vernut-dengi-pokupatelyu","title":"Вернуть деньги покупателю","summary":"Полный или частичный возврат по заказу.","steps":["Найди платёж по номеру заказа: POST /v2/payments/find с InvoiceId. Если по заказу было несколько операций, вернётся последняя — возьми TransactionId оплаты.","Сделай возврат: POST /payments/refund с TransactionId и Amount — суммой возврата (можно меньше суммы оплаты). Если магазин отправляет чеки через CloudPayments, передай состав чека возврата в JsonData.","В ответе — TransactionId операции возврата; сохрани его рядом с заказом.","Возвраты по транзакциям старше года не проводятся."],"code":"curl -X POST https://api.cloudpayments.ru/v2/payments/find \\\n  -u '<Public ID>:<API Secret>' -H 'Content-Type: application/json' \\\n  -d '{\"InvoiceId\": \"1042\"}'\n\ncurl -X POST https://api.cloudpayments.ru/payments/refund \\\n  -u '<Public ID>:<API Secret>' -H 'Content-Type: application/json' \\\n  -d '{\"TransactionId\": 455, \"Amount\": 500}'","language":"bash","methods":["POST /payments/refund","POST /v2/payments/find"]},{"id":"vystavit-schet-ssylkoy-na-oplatu","title":"Выставить счёт ссылкой на оплату","summary":"Оплата без корзины на сайте: отправить клиенту ссылку в мессенджер, по почте или SMS.","steps":["Создай счёт: POST /orders/create с Amount, Description, Email и InvoiceId. Чтобы CloudPayments сам отправил ссылку, добавь SendEmail = true (или Phone и SendSms).","В ответе Model.Url — ссылка на страницу оплаты, её можно отправить клиенту самостоятельно.","SuccessRedirectUrl и FailRedirectUrl вернут клиента на твой сайт после оплаты.","Об оплате узнавай из Pay-уведомления: по InvoiceId найди счёт у себя."],"code":"curl -X POST https://api.cloudpayments.ru/orders/create \\\n  -u '<Public ID>:<API Secret>' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n        \"Amount\": 4900.0,\n        \"Currency\": \"RUB\",\n        \"Description\": \"Консультация 24 октября\",\n        \"Email\": \"client@example.ru\",\n        \"InvoiceId\": \"INV-305\",\n        \"SendEmail\": true,\n        \"SuccessRedirectUrl\": \"https://example.ru/paid\"\n      }'","language":"bash","methods":["POST /orders/create"]},{"id":"prinimat-uvedomleniya-ob-oplate","title":"Принимать уведомления об оплате и сверять платежи","summary":"Pay-, Fail- и Check-уведомления сообщают о результате оплаты; сверка за период ловит то, что могло потеряться.","steps":["Укажи адреса уведомлений в личном кабинете. Проверяй подлинность каждого: HMAC-SHA256 от тела запроса с ключом API Secret, в base64, должен совпасть с заголовком Content-HMAC (или X-Content-HMAC).","На Check-уведомление (до списания) отвечай {\"code\":0}, чтобы принять платёж, или кодом 10–13, 20, чтобы отклонить (неверный заказ, сумма и т. д.). На Pay и Fail тоже отвечай {\"code\":0}, иначе CloudPayments будет повторять уведомление до 100 раз.","Сомневаешься в статусе — запроси транзакцию: POST /payments/get с TransactionId.","Раз в день сверяй операции за период: POST /v2/payments/list с CreatedDateGte, CreatedDateLte и PageNumber — 100 записей на страницу."],"code":"import base64, hashlib, hmac\n\ndef is_valid(body: bytes, header_hmac: str, api_secret: str) -> bool:\n    digest = hmac.new(api_secret.encode(), body, hashlib.sha256).digest()\n    return hmac.compare_digest(base64.b64encode(digest).decode(), header_hmac)\n\n# В обработчике: if not is_valid(request.body, request.headers[\"Content-HMAC\"], API_SECRET): вернуть 403\n# Затем обновить заказ по InvoiceId и ответить {\"code\": 0}","language":"python","methods":["POST /payments/get","POST /v2/payments/list"]}],"baseUrls":[{"label":"Боевой","url":"https://api.cloudpayments.ru"}],"auth":{"type":"basic","description":"HTTP Basic Auth: логин — Public ID, пароль — API Secret. Оба значения есть в личном кабинете. Без заголовка авторизации или с неверными данными API возвращает HTTP 401 Unauthorized. API Secret нужно хранить в защищённом месте.\n\nПараметры передаются методом POST в теле запроса: `application/x-www-form-urlencoded` («ключ=значение») или `application/json`. Ответ всегда JSON и содержит как минимум `Success` и `Message`.","example":"{ \"Success\": false, \"Message\": \"Invalid Amount value\" }"},"methods":[{"id":"POST /test","title":"Тестовый метод","httpMethod":"POST","path":"/test","description":"Проверка взаимодействия с API. Параметров нет, в ответ возвращается статус запроса.","params":[],"requestExample":"","responseExample":"{\"Success\":true,\"Message\":\"bd6353c3-0ed6-4a65-946f-083664bf8dbd\"}","docsUrl":""},{"id":"POST /payments/cards/charge","title":"Оплата по криптограмме (одностадийная)","httpMethod":"POST","path":"/payments/cards/charge","description":"Оплата по криптограмме платёжных данных, сформированной скриптом Checkout. Для двухстадийной схемы тот же набор параметров отправляется на `/payments/cards/auth`. Если нужна 3-D Secure аутентификация, в ответе будет `Success: false` и в `Model` — `AcsUrl`, `PaReq`, `TransactionId`.\n\nПример ответа (некорректный запрос):\n\nПример ответа (требуется 3-D Secure):\n\nПример ответа (транзакция принята, сокращён):","params":[{"name":"Amount","in":"body","type":"Number","required":true,"description":"Сумма платежа, разделитель точка, не больше 2 знаков после точки; не меньше 0.01"},{"name":"Currency","in":"body","type":"String","required":false,"description":"Валюта: RUB/USD/EUR/GBP, по умолчанию RUB"},{"name":"IpAddress","in":"body","type":"String","required":true,"description":"IP-адрес плательщика"},{"name":"CardCryptogramPacket","in":"body","type":"String","required":true,"description":"Криптограмма платёжных данных"},{"name":"Name","in":"body","type":"String","required":false,"description":"Имя держателя карты латиницей"},{"name":"PaymentUrl","in":"body","type":"String","required":false,"description":"Адрес сайта, с которого вызывается скрипт checkout"},{"name":"InvoiceId","in":"body","type":"String","required":false,"description":"Номер счёта или заказа"},{"name":"Description","in":"body","type":"String","required":false,"description":"Описание оплаты в свободной форме"},{"name":"CultureName","in":"body","type":"String","required":false,"description":"Язык уведомлений: ru-RU, en-US"},{"name":"AccountId","in":"body","type":"String","required":false,"description":"Идентификатор пользователя; нужен для создания подписки и получения токена"},{"name":"Email","in":"body","type":"String","required":false,"description":"E-mail для квитанции об оплате"},{"name":"Payer","in":"body","type":"Object","required":false,"description":"Данные плательщика: FirstName, LastName, MiddleName, Birth, Street, Address, City, Country, Phone, Postcode"},{"name":"JsonData","in":"body","type":"Json","required":false,"description":"Произвольные данные транзакции; инструкции для подписки или онлайн-чека оборачиваются в объект cloudpayments"},{"name":"SaveCard","in":"body","type":"bool","required":false,"description":"Вернуть карточный токен после успешной оплаты (работает при включённой настройке «Сохранение токена карты» в ЛК)"},{"name":"X-Request-ID","in":"header","type":"String","required":false,"description":"Уникальный ключ для идемпотентности"}],"requestExample":"{\n    \"Amount\":10,\n    \"Currency\":\"RUB\",\n    \"InvoiceId\":\"1234567\",\n    \"IpAddress\": \"123.123.123.123\",\n    \"Description\":\"Оплата товаров в example.com\",\n    \"AccountId\":\"user_x\",\n    \"Name\":\"CARDHOLDER NAME\",\n    \"CardCryptogramPacket\":\"01492500008719030128SM...\",\n    \"Payer\":\n      {\n        \"FirstName\":\"Тест\",\n        \"LastName\":\"Тестов\",\n        \"Phone\":\"+71234567890\"\n    }\n}","responseExample":"{\"Success\":false,\"Message\":\"Amount is required\"}","docsUrl":""},{"id":"POST /payments/cards/auth","title":"Оплата по криптограмме (двухстадийная)","httpMethod":"POST","path":"/payments/cards/auth","description":"Те же параметры и ответы, что у `/payments/cards/charge`. Деньги блокируются и списываются только после вызова `/payments/confirm`.","params":[],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /payments/cards/post3ds","title":"Завершение оплаты после 3-D Secure","httpMethod":"POST","path":"/payments/cards/post3ds","description":"Плательщика отправляют POST-формой на `AcsUrl` с параметрами `MD` (= `TransactionId`), `PaReq` и `TermUrl`. После аутентификации он возвращается на `TermUrl` с `MD` и `PaRes`, после чего вызывается этот метод. В ответ приходит информация об успешной или отклонённой транзакции.","params":[{"name":"TransactionId","in":"body","type":"Long","required":true,"description":"Значение параметра MD"},{"name":"PaRes","in":"body","type":"String","required":true,"description":"Значение одноимённого параметра"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /payments/tokens/charge","title":"Оплата по токену (рекарринг)","httpMethod":"POST","path":"/payments/tokens/charge","description":"Оплата по токену, полученному при оплате по криптограмме или через Pay-уведомление. Для двухстадийной схемы — `/payments/tokens/auth`. Токен работает только на том терминале (publicId), где был получен.","params":[{"name":"Amount","in":"body","type":"Number","required":true,"description":"Сумма платежа, не больше 2 знаков после точки"},{"name":"Currency","in":"body","type":"String","required":false,"description":"Валюта, по умолчанию RUB"},{"name":"AccountId","in":"body","type":"String","required":true,"description":"Идентификатор пользователя"},{"name":"TrInitiatorCode","in":"body","type":"Int","required":true,"description":"Инициатор списания: 0 — ТСП, 1 — держатель карты"},{"name":"PaymentScheduled","in":"body","type":"Int","required":false,"description":"Оплата по расписанию: 0 — без расписания (по умолчанию), 1 — по расписанию"},{"name":"Token","in":"body","type":"String","required":true,"description":"Токен"},{"name":"InvoiceId","in":"body","type":"String","required":false,"description":"Номер счёта или заказа"},{"name":"Description","in":"body","type":"String","required":false,"description":"Назначение платежа"},{"name":"IpAddress","in":"body","type":"String","required":false,"description":"IP-адрес плательщика"},{"name":"Email","in":"body","type":"String","required":false,"description":"E-mail для квитанции"},{"name":"Payer","in":"body","type":"Object","required":false,"description":"Данные плательщика"},{"name":"JsonData","in":"body","type":"Json","required":false,"description":"Произвольные данные транзакции"}],"requestExample":"{\n    \"Amount\":59,\n    \"Currency\":\"RUB\",\n    \"InvoiceId\":\"1234567\",\n    \"Description\":\"Оплата товаров в example.com\",\n    \"AccountId\":\"user_x\",\n    \"TrInitiatorCode\": 0,\n    \"PaymentScheduled\": 1,\n    \"Token\":\"success_1111a3e0-2428-48fb-a530-12815d90d0e8\"\n}","responseExample":"","docsUrl":""},{"id":"POST /payments/tokens/auth","title":"Оплата по токену (двухстадийная)","httpMethod":"POST","path":"/payments/tokens/auth","description":"Те же параметры, что у `/payments/tokens/charge`; требует последующего подтверждения через `/payments/confirm`.","params":[],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /payments/confirm","title":"Подтверждение оплаты","httpMethod":"POST","path":"/payments/confirm","description":"Подтверждение платежа, проведённого по двухстадийной схеме.","params":[{"name":"TransactionId","in":"body","type":"Long","required":true,"description":"Номер транзакции в системе"},{"name":"Amount","in":"body","type":"Number","required":true,"description":"Сумма подтверждения в валюте транзакции"},{"name":"JsonData","in":"body","type":"Json","required":false,"description":"Данные транзакции, в том числе для онлайн-чека"}],"requestExample":"{\"TransactionId\":455,\"Amount\":65.98}","responseExample":"{\"Success\":true,\"Message\":null}","docsUrl":""},{"id":"POST /payments/void","title":"Отмена оплаты","httpMethod":"POST","path":"/payments/void","description":"","params":[{"name":"TransactionId","in":"body","type":"Long","required":true,"description":"Номер транзакции в системе"}],"requestExample":"{\"TransactionId\":455}","responseExample":"{\"Success\":true,\"Message\":null}","docsUrl":""},{"id":"POST /payments/refund","title":"Возврат денег","httpMethod":"POST","path":"/payments/refund","description":"Возвраты по транзакциям старше года не проводятся.","params":[{"name":"TransactionId","in":"body","type":"Long","required":true,"description":"Номер транзакции оплаты"},{"name":"Amount","in":"body","type":"Number","required":true,"description":"Сумма возврата в валюте транзакции"},{"name":"JsonData","in":"body","type":"Json","required":false,"description":"Данные транзакции, в том числе для онлайн-чека"}],"requestExample":"{\"TransactionId\":455, \"Amount\": 100}","responseExample":"{\n    \"Model\": {\n        \"TransactionId\": 568\n    },\n    \"Success\": true,\n    \"Message\": null\n}","docsUrl":""},{"id":"POST /payments/get","title":"Просмотр транзакции","httpMethod":"POST","path":"/payments/get","description":"Детализация транзакции по номеру.","params":[{"name":"TransactionId","in":"body","type":"Long","required":true,"description":"Номер транзакции"}],"requestExample":"{\"TransactionId\":897749645}","responseExample":"","docsUrl":""},{"id":"POST /v2/payments/find","title":"Проверка статуса платежа","httpMethod":"POST","path":"/v2/payments/find","description":"Поиск платежа по номеру заказа. Если найдено несколько платежей, возвращается последняя операция. Новый метод ищет по всем операциям, включая возвраты и выплаты на карту; старый адрес — `/payments/find`.","params":[{"name":"InvoiceId","in":"body","type":"String","required":true,"description":"Номер заказа"}],"requestExample":"{\"InvoiceId\":\"123456789\"}","responseExample":"{\"Success\":false,\"Message\":\"Not found\"}","docsUrl":""},{"id":"POST /payments/list","title":"Список транзакций за день","httpMethod":"POST","path":"/payments/list","description":"","params":[{"name":"Date","in":"body","type":"String","required":true,"description":"Дата создания операций"},{"name":"TimeZone","in":"body","type":"String","required":false,"description":"Код временной зоны, по умолчанию UTC"}],"requestExample":"{\"Date\":\"2014-08-09\", \"TimeZone\": \"MSK\"}","responseExample":"","docsUrl":""},{"id":"POST /v2/payments/list","title":"Список транзакций за период","httpMethod":"POST","path":"/v2/payments/list","description":"Результат сортируется по CreatedDate от старых к новым, 100 записей на страницу.","params":[{"name":"CreatedDateGte","in":"body","type":"Date","required":true,"description":"Начальная дата создания операций"},{"name":"CreatedDateLte","in":"body","type":"Date","required":true,"description":"Конечная дата создания операций"},{"name":"PageNumber","in":"body","type":"Number","required":true,"description":"Номер страницы, от 1"},{"name":"TimeZone","in":"body","type":"String","required":false,"description":"Код временной зоны, по умолчанию UTC"},{"name":"Statuses","in":"body","type":"String Array","required":false,"description":"Статусы: Authorized, Completed, Cancelled, Declined; по умолчанию все"}],"requestExample":"{\n    \"PageNumber\": 1,\n    \"CreatedDateGte\":\"2021-03-09T00:00:00+03:00\",\n    \"CreatedDateLte\":\"2021-03-10T00:00:00+03:00\",\n    \"TimeZone\": \"MSK\",\n    \"Statuses\": [\"Authorized\", \"Completed\", \"Cancelled\", \"Declined\"]\n}","responseExample":"","docsUrl":""},{"id":"POST /subscriptions/create","title":"Создание подписки","httpMethod":"POST","path":"/subscriptions/create","description":"Подписка на рекуррентные платежи по токену карты. В ответ возвращается идентификатор подписки.\n\nПример ответа (сокращён):","params":[{"name":"Token","in":"body","type":"String","required":true,"description":"Токен карты, выданный после первого платежа"},{"name":"AccountId","in":"body","type":"String","required":true,"description":"Идентификатор пользователя"},{"name":"Description","in":"body","type":"String","required":true,"description":"Назначение платежа"},{"name":"Email","in":"body","type":"String","required":false,"description":"E-mail плательщика"},{"name":"Amount","in":"body","type":"Number","required":true,"description":"Сумма платежа"},{"name":"Currency","in":"body","type":"String","required":true,"description":"Валюта: RUB/USD/EUR/GBP"},{"name":"RequireConfirmation","in":"body","type":"Bool","required":true,"description":"true — платежи по двухстадийной схеме"},{"name":"StartDate","in":"body","type":"DateTime","required":true,"description":"Дата и время первого платежа в UTC, в будущем"},{"name":"Interval","in":"body","type":"String","required":true,"description":"Интервал: Day, Week, Month"},{"name":"Period","in":"body","type":"Int","required":true,"description":"Период; вместе с интервалом: 1 Month — раз в месяц, 2 Week — раз в две недели"},{"name":"MaxPeriods","in":"body","type":"Int","required":false,"description":"Максимальное количество платежей"},{"name":"CustomerReceipt","in":"body","type":"json","required":false,"description":"Состав онлайн-чека"}],"requestExample":"{\n   \"token\": \"477BBA133C182267FE5F086924ABDC5DB71F77BFC27F01F2843F2CDC69D89F05\",\n   \"accountId\": \"user_x\",\n   \"description\": \"Ежемесячная подписка на сервис example.com\",\n   \"email\": \"user@example.com\",\n   \"amount\": 399,\n   \"currency\": \"RUB\",\n   \"requireConfirmation\": false,\n   \"startDate\": \"2021-11-02T21:00:00\",\n   \"interval\": \"Day\",\n   \"period\": 5\n}","responseExample":"{\n    \"Model\": {\n        \"Id\": \"sc_221da6421dc44dbd2cc3464f6f083\",\n        \"AccountId\": \"user_x\",\n        \"Amount\": 399,\n        \"Currency\": \"RUB\",\n        \"Interval\": \"Day\",\n        \"Period\": 5\n    },\n    \"Success\": true,\n    \"Message\": null\n}","docsUrl":""},{"id":"POST /subscriptions/cancel","title":"Отмена подписки","httpMethod":"POST","path":"/subscriptions/cancel","description":"","params":[{"name":"Id","in":"body","type":"String","required":true,"description":"Идентификатор подписки"}],"requestExample":"{\"Id\":\"sc_cc673fdc50b3577e60eee9081e440\"}","responseExample":"{\"Success\":true,\"Message\":null}","docsUrl":""},{"id":"POST /orders/create","title":"Создание счёта со ссылкой на оплату","httpMethod":"POST","path":"/orders/create","description":"Формирует ссылку на оплату и при необходимости отправляет её плательщику по e-mail, SMS или Viber.\n\nПример ответа (сокращён):","params":[{"name":"Amount","in":"body","type":"Number","required":true,"description":"Сумма платежа"},{"name":"Currency","in":"body","type":"String","required":false,"description":"Валюта, по умолчанию RUB"},{"name":"Description","in":"body","type":"String","required":true,"description":"Назначение платежа"},{"name":"Email","in":"body","type":"String","required":false,"description":"E-mail плательщика"},{"name":"RequireConfirmation","in":"body","type":"Bool","required":false,"description":"true — двухстадийная схема"},{"name":"SendEmail","in":"body","type":"Bool","required":false,"description":"Отправить письмо со ссылкой"},{"name":"InvoiceId","in":"body","type":"String","required":false,"description":"Номер заказа"},{"name":"AccountId","in":"body","type":"String","required":false,"description":"Идентификатор пользователя"},{"name":"OfferUri","in":"body","type":"String","required":false,"description":"Ссылка на оферту"},{"name":"Phone","in":"body","type":"String","required":false,"description":"Телефон плательщика"},{"name":"SendSms","in":"body","type":"Bool","required":false,"description":"Отправить SMS со ссылкой"},{"name":"SendViber","in":"body","type":"Bool","required":false,"description":"Отправить сообщение в Viber"},{"name":"CultureName","in":"body","type":"String","required":false,"description":"Язык уведомлений"},{"name":"SubscriptionBehavior","in":"body","type":"String","required":false,"description":"Платёж с подпиской: CreateWeekly, CreateMonthly"},{"name":"SuccessRedirectUrl","in":"body","type":"String","required":false,"description":"Редирект при успешной оплате"},{"name":"FailRedirectUrl","in":"body","type":"String","required":false,"description":"Редирект при неуспешной оплате"},{"name":"JsonData","in":"body","type":"Json","required":false,"description":"Данные транзакции, в том числе для онлайн-чека"}],"requestExample":"{\n    \"Amount\":10.0,\n    \"Currency\":\"RUB\",\n    \"Description\":\"Оплата на сайте example.com\",\n    \"Email\":\"client@test.local\",\n    \"RequireConfirmation\":true,\n    \"SendEmail\":false\n}","responseExample":"{\n    \"Model\": {\n        \"Id\": \"gASGZVgUN21hcpPF\",\n        \"Number\": 2130,\n        \"Amount\": 10.0,\n        \"Currency\": \"RUB\",\n        \"Url\": \"https://orders.cloudpayments.ru/d/gASGZVgUN21hcpPF\"\n    },\n    \"Success\": true,\n    \"Message\": null\n}","docsUrl":""}],"codeExamples":[],"errors":[{"code":"401","description":"Нет заголовка аутентификации или неверные данные"},{"code":"429","description":"Превышено число одновременных запросов"},{"code":"5001","description":"Refer To Card Issuer — отказ эмитента проводить онлайн-операцию"},{"code":"5005","description":"Do Not Honor — отказ эмитента без объяснения причин"},{"code":"5006","description":"Error — отказ сети или неправильный CVV-код"},{"code":"5012","description":"Invalid Transaction — карта не предназначена для онлайн-платежей"},{"code":"5013","description":"Amount Error — слишком маленькая или слишком большая сумма"},{"code":"5014","description":"Invalid Card Number — некорректный номер карты"},{"code":"5030","description":"Format Error — неверно сформирована транзакция на стороне эквайера"},{"code":"5034","description":"Suspected Fraud — подозрение на мошенничество"},{"code":"5041","description":"Lost Card — карта потеряна"},{"code":"5043","description":"Stolen Card — карта украдена"},{"code":"5051","description":"Insufficient Funds — недостаточно средств"},{"code":"5054","description":"Expired Card — карта просрочена или неверный срок действия"},{"code":"5057","description":"Transaction Not Permitted — ограничение на карте"},{"code":"5061","description":"Exceeds Approval Amount — превышена сумма по карте"},{"code":"5065","description":"Exceed Withdrawal Frequency — превышен лимит операций"},{"code":"5082","description":"Incorrect CVV — неверный CVV-код"},{"code":"5091","description":"Timeout — эмитент недоступен"},{"code":"5096","description":"System Error — ошибка банка-эквайера или сети"},{"code":"5204","description":"Unable To Process — операция не может быть обработана"},{"code":"5206","description":"Authentication failed — 3-D Secure авторизация не пройдена"},{"code":"5207","description":"Authentication unavailable — 3-D Secure авторизация недоступна"}],"limits":"- Не больше 150 000 полей в одном запросе.\n- Таймаут ответа API — 5 минут.\n- Одновременных запросов: до 5 для тестовых терминалов, до 30 для боевых; сверх лимита — HTTP 429.\n- `Amount` не меньше 0.01.\n- `/v2/payments/list` — 100 записей на страницу.","gotchas":["`Success` в ответе показывает только успешность запроса, а не статус транзакции. Статус транзакции смотрят в поле `Model.Status` или в уведомлениях.","Идемпотентность включается заголовком `X-Request-ID` с уникальным значением; результат хранится 1 час, новый запрос требует нового значения.","Если в целочисленное поле передать дробное число, ошибки не будет: значение математически округлится.","Токен работает только на том терминале (publicId), где был получен.","Финальный статус оплаты по токену СБП приходит только в Pay- и Fail-уведомлениях, а не в ответе на запрос.","Для ТСП с MCC 4814 обязателен телефон плательщика в `Payer.Phone` (только цифры, например `+71234567890`), иначе банки отклоняют операции.","Pay, Fail, Recurrent, Cancel, Confirm, Refund-уведомления повторяются до 100 раз (интервалы 1, 2, 5, 10, 30 минут), если сервер магазина недоступен или ответил кодом, отличным от нуля; таймаут ответа — 30 секунд.","Подлинность уведомлений проверяют по заголовкам `X-Content-HMAC` и `Content-HMAC`: HMAC-SHA256 от тела запроса (для GET — от строки параметров) в UTF-8, ключ — API Secret, результат в base64.","Уведомления приходят с адресов 185.98.81.0/28, 87.251.91.160/27, 46.46.175.96/27, 46.46.168.160/27, 162.55.174.97/32, 91.216.178.243/32.","Ответ на Check-уведомление: `{\"code\":0}` — принять платёж; коды 10, 11, 12, 13, 20 отклоняют его (неверный InvoiceId, AccountId, сумма, платёж не принят, просрочен)."],"slug":"cloudpayments","version":2,"updatedAt":"2026-10-24T17:05:32.578Z","sources":[{"title":"API","url":"https://developers.cloudpayments.ru/#api","kind":"research","addedAt":"2026-10-12T08:17:37.506Z"},{"title":"Идемпотентность API","url":"https://developers.cloudpayments.ru/#idempotentnost-api","kind":"research","addedAt":"2026-10-12T08:17:37.506Z"},{"title":"Оплата по криптограмме","url":"https://developers.cloudpayments.ru/#oplata-po-kriptogramme","kind":"research","addedAt":"2026-10-12T08:17:37.506Z"},{"title":"Оплата по токену","url":"https://developers.cloudpayments.ru/#oplata-po-tokenu-rekarring","kind":"research","addedAt":"2026-10-12T08:17:37.506Z"},{"title":"Уведомления","url":"https://developers.cloudpayments.ru/#uvedomleniya","kind":"research","addedAt":"2026-10-12T08:17:37.506Z"},{"title":"Проверка уведомлений","url":"https://developers.cloudpayments.ru/#proverka-uvedomleniy","kind":"research","addedAt":"2026-10-12T08:17:37.506Z"},{"title":"Коды ошибок","url":"https://developers.cloudpayments.ru/#kody-oshibok","kind":"research","addedAt":"2026-10-12T08:17:37.506Z"},{"title":"Вставленный текст","url":"","kind":"import","addedAt":"2026-10-12T08:17:37.506Z"},{"title":"scenarios-cloudpayments.md","url":"","kind":"import","addedAt":"2026-10-24T17:05:24.208Z"}],"logoUrl":null}