Skip to content

Создание ордера 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)

alt text

🔘 Способ 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_idstringУникальный идентификатор ордера в системе клиента.
order_sideenumТип операции ордера. В текущей версии API доступно только значение "Buy" - создание ордера на прием.
button_nameenum, nullableВторой способ указания платежного метода. См. Типы платежных методов на форме. Если оставить поле пустым, в форме будут предложены доступные платежные методы (Первый способ)
payment_method_idenum, nullableИдентификатор платежного метода (Третий способ указания платежного метода). Для просмотра списка доступных методов можно воспользоваться Получение платежных методов.
Если оставить поле пустым, в форме будут предложены доступные платежные методы (Первый способ)
method_typeenum, nullableЧетвертый способ указания платежного метода. См. Типы платежных методов на форме.
nspk_codeenum, nullableЧетвертый способ указания платежного метода. См. Типы платежных методов на форме (только с method_type)
amountdecimalЦелевая сумма ордера (без учета комиссии сервиса).
redirect_urlurl, nullableСтраница для перенаправления клиента после успешного закрытия сделки.
Если оставить поле пустым - перенаправления не произойдёт
support_urlurl, nullableСсылка, которая будет доступна пользователю для обращения к поддержке.
Если оставить поле пустым, кнопка обращения в службу поддержки отображаться не будет.
user_idstring, nullableИдентификатор пользователя для работы антифрод системы (блокирует массовые заявки от одного пользователя)
unique_amountbool, 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