Создание ордера H2H
Создает новый ордер в системе и возвращает информацию о нем.
http
POST /api/v1/order/Способы указания платежного метода
Существует 2 способа указать платежный метод при создании ордера. Выберите наиболее подходящий для вашего случая:
🎯 Способ 1: По ID платежного метода (рекомендуемый)
Используйте конкретный payment_method_id для точного выбора банка или агрегатного метода.
json
{
"client_order_id": "test_order_123",
"order_side": "Buy",
"payment_method_id": "2ec6dbd6-49a5-45d0-bd6d-b0134ee4639a", // агрегатный метод СБП
"amount": "1000",
"user_id": "test_user123"
}Когда использовать:
Если нужен конкретный банк / агрегатный метод и у вас уже есть наши ID или вы готовы их использовать. Данный способ позволяет работать с абсолютно всеми платежными методами в системе.
🚀 Способ 2: По типу метода (упрощенный)
Используйте method_type для агрегатных методов без указания конкретного банка. Опционально добавьте nspk_code для указания конкретного банка.
json
{
"client_order_id": "test_order_123",
"order_side": "Buy",
"method_type": "SBP",
//"nspk_code": "bank100000000004", // Т-банк
// Если необходимо создать ордер по конкретному банку, например - выплату по СБП
"amount": "1000",
"user_id": "test_user123"
}Когда использовать:
Для максимальной быстрой интеграции, гибкости в использовании НСПК кодов напрямую (нет необходимости маппить payment_method_id).
На данный момент способ работает только для RUB
Какой способ выбрать?
- Способ 1 - если у вас уже есть маппинг на наши ID методов или вы готовы их использовать
- Способ 2 - для максимально быстрой интеграции, а так же простого подключения выплат СБП (если у вас уже используются НСПК коды)
⚠️ Важно
- Используйте только один из способов в запросе
- Агрегатный метод SBP работает только для приема платежей (Buy)
- Способ 2 с указанием
nspk_codeподдерживает не все банки (только те, у которых есть НСПК коды) - Для работы с выплатами (Sell) используйте рекомендации по работе с выплатами
Пример запроса
bash
curl -X POST https://api.payscrow-cascade.io/api/v1/order/ \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key" \
-d '{
"client_order_id": "test_order_123",
"order_side": "Buy",
"payment_method_id": "8fe3669a-a448-4053-bc4b-43bb51cb3e9d,
"amount": "1000",
"user_id": "test_user123"
}'Параметры тела запроса (body)
| Параметр | Тип | Описание |
|---|---|---|
| client_order_id | string | Уникальный идентификатор ордера в системе клиента. |
| order_side | enum | Buy - клиент создает ордер на прием (пользователь отправляет деньги) Sell - клиент создает ордер на вывод (пользователь принимает деньги). |
| payment_method_id | enum, nullable | Способ 1: ID платежного метода. См. Получение платежных методов |
| method_type | enum, nullable | Способ 2: Тип агрегатного метода. См. Типы платежных методов |
| nspk_code | string, nullable | Способ 2: НСПК код банка (только с method_type) |
| amount | decimal | Целевая сумма ордера (без учета комиссии сервиса). |
| customer_name | string, nullable | Имя клиента. Не рекомендуется использовать параметр, если нет реального имени пользователя |
| customer_payment_account | string, nullable | Счет клиента для выбранного платежного метода в формате Типы платежного метода, для перевода на него средств (Sell) null для ордеров Buy |
| user_id | string, nullable | Идентификатор пользователя для работы антифрод системы (блокирует массовые заявки от одного пользователя) |
| unique_amount | bool, nullable | Уникализация суммы. Для повышения конверсии при выдаче реквизитов рекомендуется передавать параметр со значением true. В этом случае будут подобраны реквизиты с суммой в диапазоне от amount до amount + 9, а новая сумма вернётся в ответе в поле amount. Настоятельно рекомендуем использовать этот параметр при запросе реквизитов на «круглые» суммы (например, 1000, 2000 и т.д.). |
Пример ответа 201
json
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"client_order_id": "1234",
"currency": "RUB",
"method_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"method_name": "Сбербанк",
"initial_method_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"order_side": "Buy",
"amount": "1000.00",
"fee": "15.0",
"status": "Completed",
"holder_name": "Иванов Иван Иванович",
"holder_account": "4627100101654724",
"customer_name": "Петров Петр Петрович",
"customer_account": null,
"payment_link": null,
"created_at": "2024-07-04T15:40:20.569613Z",
"updated_at": "2024-07-06T13:27:56.717Z",
"expires_at": "2024-07-08T15:40:20.569613Z"
}Описание ошибок
Ошибки клиента:
400
Payment method ID or payment type is requiredВ запросе не указан платежный метод
402 - Недостаточный баланс для Sell ордера
404
Payment method not foundУказан несуществующий платежный метод, для просмотра списка доступных методов можно воспользоваться Получение платежных методов
429 - Лимит запросов / блокировка антифродом по user_id
Серверные ошибки:
500
No available traders that match order requirements. Please, try again later or change order parameters.Нет доступных реквизитов на указанные параметры ордера, попробуйте другие суммы / платежные методы или обратитесь к администратору за информацией о конверсии на выдачу