Создание ордера FORM
Создает форму для оплаты и возвращает ссылку.
http
POST /api/v1/form/createТипы платежных методов на форме
Существует 4 способа указать платежный метод при создании формы. Выберите наиболее подходящий для вашего случая:
🧭 Способ 1: Без указания метода (общий)
При использовании этого способа пользователь самостоятельно выбирает метод оплаты на форме.
json
{
"client_order_id": "test_order_123",
"order_side": "Buy",
"amount": "1000",
"unique_amount": false,
"user_id": "test_user123"
}Когда использовать:
Если нет необходимости указывать конкретный банк/метод. На форме отображаются кнопки с выбором метода оплаты, пользователю предоставлена возможность выбрать способ оплаты самостоятельно. При указании button_name кнопка способа/банка будет предвыбрана (Способ 2)

🔘 Способ 2: С указанием button_name (предвыбор кнопки)
При использовании этого метода передается поле button_name для выбора банка, с которого будет произведена оплата пользователем.
json
{
"client_order_id": "test_order_123",
"order_side": "Buy",
"button_name": "Sberpay", // Указывается банк пользователя, например Сбер
"amount": "1000",
"unique_amount": false,
"user_id": "test_user123"
}Когда использовать:
Если есть необходимость указать банк пользователя. В таком случае этап с выбором метода и банка пропускается, кнопка предвыбрана при создании формы, подсказки и диплинки на форме отображаются только по указанному банку.
Возможные значения для поля button_name:
AlfaPay; SberPay; TPay; VTBPay
🎯 Способ 3: По ID платежного метода
Используйте конкретный payment_method_id для точного выбора банка или агрегатного метода.
json
{
"client_order_id": "test_order_123",
"order_side": "Buy",
"payment_method_id": "2ec6dbd6-49a5-45d0-bd6d-b0134ee4639a", // агрегатный метод СБП
"amount": "1000",
"unique_amount": false,
"user_id": "test_user123"
}Когда использовать:
Если нужен конкретный банк / агрегатный метод и у вас уже есть наши ID или вы готовы их использовать. Данный способ позволяет работать с абсолютно всеми платежными методами в системе.
🚀 Способ 4: По типу метода
Используйте method_type для агрегатных методов без указания конкретного банка. Опционально добавьте nspk_code для указания конкретного банка.
json
{
"client_order_id": "test_order_123",
"order_side": "Buy",
"method_type": "SBP",
"nspk_code": "bank100000000004", // Т-банк
// Если необходимо создать ордер по конкретному банку
"amount": "1000",
"unique_amount": false,
"user_id": "test_user123"
}Когда использовать:
Для максимальной быстрой интеграции, гибкости в использовании НСПК кодов напрямую (нет необходимости маппить payment_method_id).
Пример запроса
bash
curl -X POST "https://api.luckypay.pro/api/v1/form/create" \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key" \
-d '{
"order_data": {
"client_order_id": "test_order_123",
"order_side": "Buy",
"amount": "5543",
"user_id": "user_123"
},
"redirect_url": "https://www.google.com/",
"support_url": "https://www.google.com/"
}'Параметры тела запроса (body)
| Параметр | Тип | Описание |
|---|---|---|
| client_order_id | string | Уникальный идентификатор ордера в системе клиента. |
| order_side | enum | Тип операции ордера. В текущей версии API доступно только значение "Buy" - создание ордера на прием. |
| button_name | enum, nullable | Второй способ указания платежного метода. См. Типы платежных методов на форме. Если оставить поле пустым, в форме будут предложены доступные платежные методы (Первый способ) |
| payment_method_id | enum, nullable | Идентификатор платежного метода (Третий способ указания платежного метода). Для просмотра списка доступных методов можно воспользоваться Получение платежных методов. Если оставить поле пустым, в форме будут предложены доступные платежные методы (Первый способ) |
| method_type | enum, nullable | Четвертый способ указания платежного метода. См. Типы платежных методов на форме. |
| nspk_code | enum, nullable | Четвертый способ указания платежного метода. См. Типы платежных методов на форме (только с method_type) |
| amount | decimal | Целевая сумма ордера (без учета комиссии сервиса). |
| redirect_url | url, nullable | Страница для перенаправления клиента после успешного закрытия сделки. Если оставить поле пустым - перенаправления не произойдёт |
| support_url | url, nullable | Ссылка, которая будет доступна пользователю для обращения к поддержке. Если оставить поле пустым, кнопка обращения в службу поддержки отображаться не будет. |
| user_id | string, nullable | Идентификатор пользователя для работы антифрод системы (блокирует массовые заявки от одного пользователя) |
| unique_amount | bool, nullable | Уникализация суммы. Для повышения конверсии при выдаче реквизитов рекомендуется передавать параметр со значением true. В этом случае будут подобраны реквизиты с суммой в диапазоне от amount до amount + 9, а новая сумма появится при созданной сделке на форме и в КБ. Настоятельно рекомендуем использовать этот параметр при запросе реквизитов на «круглые» суммы (например, 1000, 2000 и т.д.). |
Пример ответа 201
json
{
"success": true,
"message": null,
"form_data": {
"session_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"form_url": "https://domain.at/?session_id=3fa85f64-5717-4562-b3fc-2c963f66afa6",
"order_data": {
"client_order_id": "test_order_123",
"order_side": "Buy",
"method_id": null,
"amount": "5543.00",
"user_id": "user_123",
"unique_amount": false
},
"support_url": "https://google.com/",
"redirect_url": "https://google.com/"
}
}Описание ошибок
- 409 - На терминале не активирована платежная форма, обратитесь к администратору
- 429 - Лимит запросов / блокировка антифродом по user_id