Создать заказ
Новое/order/createЭтот метод API v3 заменяет такие методы API v2 (они ещё работают):
Создать заказ (черновик)
Формирует цену на выбранные позиции на сервере и сохраняет её в качестве черновика в течение 30 минут. Денежные средства не перечисляются, и токен не требуется.
{"action": "new", "product": "shared",
"options": {"count": 10, "period": "1m", "traffic": 100, "countries": {"UA": 5, "DE": 5}},
"client": {"total": "9.00", "currency": "USD"}}
Примечания
action:new— покупка продукта,topup— пополнение баланса (options: {amount, currency}).- В
optionsиспользуются ключи каталога:count,period(1w,2w,1m,1y),traffic(ГБ),countries,geo_service,ip_score,unlimited_ips. - Отправляйте
client.totalс рассчитанной вами ценой:client_check.matchedуказывает, совпадает ли она с ценой на сервере. - Если значение параметра выходит за пределы допустимого диапазона, возвращается статус
422 option_out_of_rangeс указанием допустимого диапазона.
Способ запроса
Параметры запроса
| Идентификатор | Правила | Пример |
|---|---|---|
| action | requiredstring | new |
| productНе обязательно | nullablestring | shared |
| optionsНе обязательно | nullablearray | [] |
| clientНе обязательно | nullablearray | [] |
| client.totalНе обязательно | required_with:clientnumeric | 0 |
| client.currencyНе обязательно | nullablestringsize:3 | "USD" |
| client.catalog_versionНе обязательно | nullablestring | 0 |
Примеры кода
1const baseUrl = "https://api.stableproxy.com/v3";2const response = await fetch(baseUrl + "/order/create", {3 method: "POST",4 headers: {5 "Content-Type": "application/json"6 },7 body: JSON.stringify({8 "action": "new",9 "product": "shared",10 "options": "[]",11 "client": "[]",12 "client.total": "0",13 "client.currency": "\"USD\"",14 "client.catalog_version": 015 })16});17const data = await response.json();Примеры ответов
{
"data": {
"order": {
"id": "990dd34a-0165-4641-ab9d-94bea1007fe0",
"action": "new",
"product": "shared",
"status": "draft",
"expires_at": "2026-10-06T15:46:32Z",
"options": {
"count": 10,
"period": "1m",
"traffic": 100,
"countries": [],
"geo_service": "overall",
"ip_score": 0,
"unlimited_ips": false
},
"price": {
"currency": "USD",
"total": "1.96",
"total_usd": "1.96",
"lines": [
{
"key": "ips",
"amount_usd": "0.80"
},
{
"key": "traffic",
"amount_usd": "1.00"
}
],
"unit": {
"ip": "0.08",
"one_gb": null
},
"adjustments": [
{
"key": "sale",
"amount": "0.00"
}
]
},
"client_check": {
"matched": false,
"client_total": "1.20",
"difference": "0.76",
"catalog_stale": true
}
}
},
"meta": []
}{
"error": {
"code": "option_out_of_range",
"message": "An option is outside the allowed range.",
"details": {
"count": {
"min": 1,
"max": 2000
}
}
}
}