Перевірка зв'язку
Найпростіший запит у всьому API: він нічого не змінює, нічого не читає й ні від чого не залежить. Потрібен, щоб одним викликом відповісти на питання «зв'язок є, адреса правильна, токен робочий?» — і відділити проблему мережі чи налаштування від проблеми у ваших даних.
Пінг проходить той самий шлях, що й будь-яка робоча операція: та сама
адреса, той самий заголовок X-API-Token, та сама авторизація.
Тому його відповідь доводить не лише доступність сервера, а й те, що ваш
токен прийнято, а базу обслуговують. Якщо пінг відповідає
ok: true — можна переходити до обміну; якщо ні, далі йти
немає сенсу, лагодити треба тут.
Запит
Тіло запиту не читається взагалі — можна надіслати порожній об'єкт
{} або не надсилати тіло зовсім. Метод обов'язково
POST: на GET сервер відповість 405,
як і на решті адрес API.
{}
{
"ok": true,
"api_version": "2.0",
"server_time": "2026-07-28T09:47:45+03:00"
}
| Поле | Що означає |
|---|---|
| ok | Завжди true. Якщо запит дійшов до обробки, пінг успішний
за визначенням — відмовляти йому нема в чому. |
| api_version | Версія контракту, яку обслуговує сервер (зараз 2.0).
Це єдине місце, де версія віддається у явному вигляді. |
| server_time | Поточний час сервера у форматі контракту часу — зі зсувом поясу. Потрібен лише для самодіагностики: порівняйте його з власним годинником, якщо підозрюєте розходження. На обмін це поле не впливає, і викликати пінг перед кожним обміном заради нього не треба. |
Коли викликати
Пінг корисний саме там, де інакше довелося б гадати за непрямими ознаками:
| Ситуація | Що дає пінг |
|---|---|
| Налаштування нового клієнта | Перевірити адресу й токен до того, як надсилати реальні дані. Помилку в налаштуванні видно відразу, і вона не залишає слідів в обліку. |
| Кнопка «Перевірити підключення» в обробці | Готовий безпечний виклик для інтерфейсу: нічого не створює й не змінює, натискати можна скільки завгодно. |
| Діагностика під час збою обміну | Відділити «не працює зв'язок або токен» від «не прийняли дані». Пінг пройшов, а вивантаження ні — річ у даних, а не в каналі. |
| Моніторинг | Легка регулярна перевірка того, що API живий: не торкається бази й не створює бізнес-об'єктів. |
Чого пінг не робить: не створює й не продовжує сесію (її в API немає) і не перевіряє, чи вивантажено таблицю штрих-кодів.
Як читати відповідь
Коди тут ті самі, що й у всьому API (повна таблиця — у розділі «З чого почати»), але в пінга вони читаються особливо прямо: кожен указує на конкретну причину, чому обмін не поїде.
| Код | Що це означає для вас |
|---|---|
200 |
Усе гаразд: адреса правильна, токен прийнято, базу обслуговують. Можна працювати. |
401 |
Токен не передано або він невідомий. Перевірте заголовок
X-API-Token у налаштуваннях обміну. |
403 |
Токен правильний, але обслуговування бази припинено. Причина —
у полі block_reason; питання вирішується з оператором
ComboPocket, технічне налаштування тут ні до чого. |
429 |
Спрацював захист від перебору токенів: з вашої адреси надійшло
занадто багато невдалих спроб авторизації. Повторіть через час,
указаний у заголовку Retry-After (у секундах). |
404 / 5xx |
До застосунку справа не дійшла: неправильна адреса публікації або сервер недоступний. Перевірте адресу; якщо вона точно правильна — це на нашому боці. |
Приклади виклику
Той самий запит різними мовами. Фрагмент можна покласти прямо під кнопку «Перевірити підключення» вашої обробки чи сервісу.
перевірка підключенняСоединение = Новый HTTPСоединение("combopocket.online",, , , , 60,
Новый ЗащищенноеСоединениеOpenSSL);
Запрос = Новый HTTPЗапрос("/v2/exchange/ping");
Запрос.Заголовки.Вставить("X-API-Token", ТокенБазы);
Запрос.Заголовки.Вставить("Content-Type", "application/json; charset=utf-8");
Запрос.УстановитьТелоИзСтроки("{}", КодировкаТекста.UTF8);
Ответ = Соединение.ОтправитьДляОбработки(Запрос);
Если Ответ.КодСостояния = 200 Тогда
Сообщить("Підключення встановлено");
ИначеЕсли Ответ.КодСостояния = 401 Тогда
Сообщить("Токен не прийнято - перевірте налаштування обміну");
ИначеЕсли Ответ.КодСостояния = 403 Тогда
Сообщить("Обслуговування бази припинено - зверніться до оператора");
Иначе
Сообщить("Сервіс недоступний, код " + Ответ.КодСостояния);
КонецЕсли;
Зверніть увагу: ОтправитьДляОбработки не викидає виключення
за кодом 4xx — відповідь треба читати самостійно.
перевірка підключенняcurl -X POST "https://combopocket.online/v2/exchange/ping" \
-H "X-API-Token: 11111111-2222-3333-4444-555555555555" \
-H "Content-Type: application/json; charset=utf-8" \
-d "{}"
Додайте -i, щоб побачити HTTP-код разом із тілом відповіді.
перевірка підключення$ch = curl_init('https://combopocket.online/v2/exchange/ping');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => '{}',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'X-API-Token: ' . $tokenBazy,
'Content-Type: application/json; charset=utf-8',
],
]);
$body = json_decode(curl_exec($ch), true);
$code = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
curl_close($ch);
echo ($code === 200 && $body['ok'])
? 'Підключення встановлено'
: "Сервіс недоступний, код $code";
перевірка підключенняimport requests
response = requests.post(
"https://combopocket.online/v2/exchange/ping",
headers={"X-API-Token": token_bazy},
json={},
timeout=60,
)
if response.status_code == 200 and response.json()["ok"]:
print("Підключення встановлено")
else:
print(f"Сервіс недоступний, код {response.status_code}")
перевірка підключенняconst response = await fetch("https://combopocket.online/v2/exchange/ping", {
method: "POST",
headers: {
"X-API-Token": tokenBazy,
"Content-Type": "application/json; charset=utf-8",
},
body: "{}",
});
const data = await response.json();
console.log(response.status === 200 && data.ok
? "Підключення встановлено"
: `Сервіс недоступний, код ${response.status}`);
перевірка підключенняusing var http = new HttpClient();
http.DefaultRequestHeaders.Add("X-API-Token", tokenBazy);
var response = await http.PostAsync(
"https://combopocket.online/v2/exchange/ping",
new StringContent("{}", Encoding.UTF8, "application/json"));
var body = await response.Content.ReadAsStringAsync();
var ok = JsonDocument.Parse(body).RootElement.GetProperty("ok").GetBoolean();
Console.WriteLine(response.IsSuccessStatusCode && ok
? "Підключення встановлено"
: $"Сервіс недоступний, код {(int)response.StatusCode}");
Тіло приходить із будь-яким кодом, тож якщо вам достатньо факту
«вийшло або ні», можна обмежитися перевіркою поля ok
і не розбирати коди взагалі.