Menu — Документация

Платёжная форма

Эндпойнты создания операций с UI на стороне платформы

Платёжная форма размещается на стороне платформы и предоставляет конечному клиенту мерчанта интерфейс выбора метода оплаты и просмотра реквизитов. Применяется в сценариях, в которых реализация собственного UI оплаты на стороне мерчанта нецелесообразна.

Предусмотрены два режима создания операции с использованием платёжной формы:

  • prepare — выбор метода оплаты выполняется клиентом непосредственно на форме;
  • full — метод оплаты фиксируется на этапе создания операции, форма отображает реквизиты для перевода.

POST /paymentform/prepare

Создание операции, метод оплаты для которой будет выбран клиентом на форме.

Запрос

curl -X POST https://api.menu.casino/paymentform/prepare \
  -H "Authorization: Bearer $MENU_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "idTransactionMerchant": "order-42",
    "amount": 1500,
    "clientID": "user-7af3",
    "clientIP": "203.0.113.5",
    "clientDateCreated": "2026-05-16T12:00:00Z",
    "integrationMerhcnatData": {
      "webHook": "https://example.com/menu/webhook",
      "redirectGeneralURL": "https://shop.example.com/orders/42",
      "redirectSuccessURL": "https://shop.example.com/orders/42/ok",
      "redirectFailURL":    "https://shop.example.com/orders/42/fail"
    }
  }'

Параметры

ПолеТипОбязательноОписание
idTransactionMerchantstringдаидентификатор операции в системе мерчанта, уникальный в пределах мерчанта
amountdecimalдасумма операции, до четырёх знаков после разделителя
clientIDstringдаустойчивый идентификатор клиента, применяется антифрод‑контролем
clientIPstringдаIP клиента, применяется антифрод‑контролем
clientDateCreatedISO‑8601дадата регистрации клиента, применяется антифрод‑контролем
integrationMerhcnatData.webHookstringнетURL доставки событий смены статуса
integrationMerhcnatData.redirectGeneralURLstringнетURL возврата из формы в магазин
integrationMerhcnatData.redirectSuccessURLstringнетURL возврата после успешной оплаты
integrationMerhcnatData.redirectFailURLstringнетURL возврата после неуспешной оплаты

При отсутствии полей integrationMerhcnatData значения берутся из настроек личного кабинета мерчанта.

Ответ

Успешное создание

{
  "status": "Success",
  "data": {
    "id": "b9e2c8a4-7f1d-4c0a-8e3b-2a4f1d5b6c01",
    "dateAdded": "2026-05-16T12:00:01.001Z",
    "dateUpdated": "2026-05-16T12:00:01.001Z",
    "typeOperation": "payIn",
    "status": "precreated",
    "idTransactionMerchant": "order-42",
    "amountInitial": 1500,
    "amountRandomized": 1500,
    "amount": 1500,
    "amountComission": 0,
    "currency": "RUB",
    "amountInCurrencyBalance": 0,
    "amountComissionInCurrencyBalance": 0,
    "exchangeRate": 0,
    "linkPaymentForm": "https://pf.menu.casino/?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
  },
  "traceID": "3f7c8a91-2b04-4d1e-8c7a-9d6e5f4c3b21"
}

В созданной операции статус precreated сохраняется до момента выбора клиентом метода оплаты на форме.

Значение linkPaymentForm подлежит передаче конечному клиенту мерчанта (перенаправлением или ссылкой). Открытие данного URL инициирует пользовательский сценарий на стороне платёжной формы.

POST /paymentform/full

Создание операции с предопределённым методом оплаты.

Запрос

curl -X POST https://api.menu.casino/paymentform/full \
  -H "Authorization: Bearer $MENU_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "paymentMethod": "sbp",
    "idTransactionMerchant": "order-42",
    "amount": 1500,
    "clientID": "user-7af3",
    "clientIP": "203.0.113.5",
    "clientDateCreated": "2026-05-16T12:00:00Z",
    "integrationMerhcnatData": {
      "webHook": "https://example.com/menu/webhook",
      "redirectSuccessURL": "https://shop.example.com/orders/42/ok",
      "redirectFailURL":    "https://shop.example.com/orders/42/fail"
    }
  }'

Вариант с ecom

curl -X POST https://api.menu.casino/paymentform/full \
  -H "Authorization: Bearer $MENU_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "paymentMethod": "ecom",
    "idTransactionMerchant": "order-ec-512",
    "amount": 4990,
    "clientID": "user-ec-512",
    "clientIP": "203.0.113.5",
    "clientDateCreated": "2026-05-10T11:00:00Z"
  }'

Параметры

Состав параметров идентичен POST /paymentform/prepare с добавлением обязательного поля paymentMethod (см. Методы платежа).

Ответ

Структура ответа идентична POST /paymentform/prepare. Пример для метода sbp:

{
  "status": "Success",
  "data": {
    "id": "c4f9d701-2b3e-4f8a-9c0d-1a2b3c4d5e6f",
    "dateAdded": "2026-05-16T12:00:01.001Z",
    "dateUpdated": "2026-05-16T12:00:01.001Z",
    "typeOperation": "payIn",
    "status": "created",
    "idTransactionMerchant": "order-42",
    "amountInitial": 1500,
    "amountRandomized": 1500,
    "amount": 1500,
    "amountComission": 30,
    "currency": "RUB",
    "amountInCurrencyBalance": 14.95,
    "amountComissionInCurrencyBalance": 0.30,
    "exchangeRate": 100.30,
    "linkPaymentForm": "https://pf.menu.casino/?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
  },
  "traceID": "5b1d3e0a-6f8b-4a72-9e3a-2c0a1f5d4b21"
}

При значении paymentMethod: "ecom" поле linkPaymentForm содержит URL банковской формы оплаты с поддержкой 3‑D Secure:

{
  "status": "Success",
  "data": {
    "id": "e7d2c1a3-8b9f-4d62-9c01-2f3a4b5c6d7e",
    "typeOperation": "payIn",
    "status": "created",
    "idTransactionMerchant": "order-ec-512",
    "amount": 4990,
    "amountComission": 99.80,
    "currency": "RUB",
    "linkPaymentForm": "https://acquirer.example.com/payment/redirect/9b1a..."
  },
  "traceID": "a91f7c20-8b14-4f3a-9d80-1e2a3c4b5d61"
}

Сравнительная характеристика режимов

ПараметрHost‑to‑hostПлатёжная форма
Реализация UI оплатымерчантплатформа
Источник реквизитовответ APIформа
Перенаправление клиентане требуетсятребуется (linkPaymentForm)
Применимость в e‑commerceдада
Применимость в мобильных приложенияхдачерез WebView

Жизненный цикл операции, формат событий webhook и состав ответов GET /operation/... идентичны для всех режимов и описаны в разделах Статусы, Webhooks и Операции.

On this page