Створити замовлення
Нове/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
}
}
}
}