Описание API #
API предназначен для обеспечения взаимодействия партнеров с HB.BY. Аутентификация осуществляется по уникальному API-ключу (токену).
Взаимодействие осуществляется на клиент-серверной технологии RESTful. Партнер выступает в роли клиента, отправляет HTTP-запросы на сервер API. Данные передаются в кодировке UTF-8. В ответ на HTTP-запрос сервер отправляет HTTP-ответ клиенту в JSON-формате.
Формат запроса #
Во всех запросах передаются обязательные параметры:
version – версия API;
x-api-token – API-ключ (токен) доступа к серверу.
Параметр version должен передаваться в строке запроса.
Параметр x-api-token должен передаваться в заголовке запроса.
Для получения доступа к генерации API-токенов необходимо являться партнером HB.BY. После, в личном кабинете станет доступен раздел «API-токены».
Формат ответа #
Любой ответ от сервера представлен в JSON-формате. В случае успешного выполнения запроса возвращается необходимый набор ключей и значений, предназначенный для конкретного ответа на запрос.
Пример ответа при успешном выполнении операции (получение списка счетов):
{
"invoices": [
{
"invoice_id": 99268,
"invoice_number": "СФ-1221379-02",
"order_id": 28877,
"creation_date": "28.08.2025",
"expiration_date": "27.09.2025",
"amount": 39.00,
"currency_id": 500,
"state": "WaitingForPayment"
}
]
}
В случае ошибки валидации (код ответа 400) возвращается JSON, содержащий:
{
"message": "Поле 'Домен' должно быть заполнено."
}
Возможные коды ошибок о выполнении операций:
400 – некорректный запрос;
401 – неавторизованный запрос;
404 – метод или данные не найдены;
500 – внутренняя ошибка сервера.
При успешном запросе возвращается 200 код ответа. Тело ответа в виде JSON возвращается в тех случаях, когда у метода указаны параметры ответа.
Структура документации #
Поддерживаемые методы
В API используются стандартные HTTP-методы:
GET – получение информации;
POST – создание или отправка данных;
PUT – полное обновление существующих данных;
DELETE – удаление данных.
Каждый метод указан в описании запроса.
Структура описания метода
Описание метода включает следующие разделы:
- название и назначение метода – краткое описание действия;
- метод и адрес запроса – указывается HTTP-метод и полный URL;
- параметры запроса – список параметров, которые могут быть переданы в URL;
- тело запроса – список параметров, которые могут быть переданы в формате JSON;
- тело ответа – структура возвращаемых данных в формате JSON;
- пример запроса – готовый пример вызова API;
- пример ответа – пример JSON-объекта, который вернёт API.
Таблицы параметров
Для запроса и ответа параметры оформлены в виде таблиц, где каждая строка описывает один параметр.
- Имя – название параметра.
- Вложенность – путь параметра в структуре (например, body, pricelists[i]).
- Тип – тип данных (например, string, integer, array«object»).
- Описание – пояснение назначения параметра.
Обязательные параметры выделяются звёздочкой (*) рядом с типом.
Например:
- string* – обязательный строковый параметр;
- array«string*» – обязательный массив строк.
Если параметр не имеет звёздочки (*), то он считается необязательным, и может либо отсутствовать, либо иметь значение NULL.
ВАЖНЫЕ ПАРАМЕТРЫ API И ИХ ЗНАЧЕНИЯ
tariff_id (идентификатор тарифа)
Что это: уникальный идентификатор тарифного плана (строка или число), который однозначно определяет тариф на услуги (например, хостинг, VPS и т.д.).
Допустимые значения: строковые или числовые идентификаторы, возвращаемые методами списка тарифов (не задавайте значения "вслепую", используйте API для получения актуального списка).
Поведение: при указании tariff_id API проверяет, доступен ли тариф для выбранных параметров (currency, period_unit_count и т.д.). Если тариф не найден или недоступен – возвращается 404 или 400.
Связанные методы:
GET /v1/orders/hostings/tariffs – получить список тарифов и их tariff_id.
currency_id (идентификатор валюты)
Что это: внутренний идентификатор валюты в системе (целое число), используемый API для выбора цен и формирования счетов.
Допустимые значения: целые числа, возвращаемые методом списка валют (например: 200, 300, 400, 500). Не подставляйте значения вручную – получайте актуальные currency_id через API.
Поведение: выбор currency_id влияет на отображаемые цены, доступность способов оплаты и возможные тарифы/прайс-листы. При указании несуществующей валюты API вернёт ошибку (обычно 400 или 404 в зависимости от метода).
Связанные методы:
GET /v1/billing/currencies – получить список валют и их currency_id.
service_id (идентификатор услуги)
Что это: уникальный идентификатор услуги в системе (например, хостинг, почта и т.п.), используемый для фильтрации тарифов и формирования заказа.
Допустимые значения: целые идентификаторы, возвращаемые методом получения услуг (пример: 195 для Unix-хостинга). Не задавайте вслепую – получите список через API.
Поведение: при передаче service_id в запросе методы, выдающие тарифы, вернут тарифы только для указанной услуги; некорректный service_id приведёт к пустому списку или ошибке 400/404.
Связанные методы:
GET /v1/orders/services – получить список услуг и их service_id.
GET /v1/orders/hostings/tariffs?service_id={id} – получить тарифы для конкретной услуги.
period_type (единица периода)
Что это: единица измерения периода оплаты (строка), определяющая интерпретацию значения периода/period (например, month, year).
Допустимые значения: строковые метки типа month, year (в примерах встречается month для хостинга и year для доменных зон).
Поведение: поле period_type определяет, в каких единицах указаны поля period / period_unit_count / min_period / max_period. Несоответствие единиц при передаче периода приводит к ошибке валидации.
Связанные методы:
GET /v1/orders/hostings/tariffs – в ответе у тарифов возвращается period_type.
GET /v1/orders/domains/zones – у зон доменов возвращается period_type (например, year).
available_periods / prices (доступные периоды и цены)
Что это: у тарифов присутствует массив вариантов стоимости – либо как available_periods, либо в структуре prices (массив объектов с полями period и price), который показывает, какие значения period_unit_count поддерживаются и по каким ценам.
Допустимые значения: массив целых чисел для available_periods (например [1, 3, 6, 12]) или массив объектов { "period": integer, "price": number } в prices.
Поведение: при создании заказа вы должны выбирать period_unit_count, который присутствует в available_periods/prices. Попытка указать неподдерживаемый период вернёт 400 с сообщением о недопустимом периоде. Цены в prices уже могут учитывать скидки (например, при оплате за 12 месяцев).
Связанные методы:
GET /v1/orders/hostings/tariffs – возвращает prices/available_periods.
GET /v1/billing/pricelists/{number}/tariffs – узнать цены тарифов с учётом скидок для разных периодов.
price / prices (стоимость)
Что это: числовое значение стоимости для конкретного периода в объекте prices тарифа.
Допустимые значения: числовые значения (например 6.00, 33.00), соответствуют валюте, указанной полем currency_id.
Поведение: значение price указывается в ответе на запросы тарифов/зон и уже учитывает применимые скидки для указанного периода; при расчёте окончательной суммы используйте именно возвращаемые API значения. При отсутствии цены для выбранного периода – попытка создания заказа приведёт к ошибке.
Связанные методы:
GET /v1/orders/hostings/tariffs – возвращает prices.
GET /v1/orders/domains/zones – возвращает registration_price, renew_price и сопутствующие поля.
Ключевые параметры, которые часто вызывают вопросы. Рекомендуется читать этот подраздел перед работой с методами API – он даёт необходимый контекст и снимает двусмысленности.
period_unit_count (период оплаты услуги)
Что это: параметр указывает, на сколько месяцев клиент оплачивает услугу за один платёж. Значение относится к количеству месяцев.
Допустимые значения: целые числа от 1 до 36.
Типичные варианты: 1, 3, 6, 12, 24.
Ограничения и поведение: набор доступных значений зависит от выбранного тарифа. Для некоторых тарифов доступны только фиксированные периоды (например, [1, 3, 6, 12]), а попытка указать неподдерживаемый период (например, 24 при недоступности этого периода) приведёт к HTTP 400 с сообщением: "Данный период оплаты не поддерживается для выбранного тарифа".
Скидки и цены: при оплате за 12 месяцев может применяться скидка. Эти скидки уже учтены в цене, возвращаемой методом расчёта стоимости, поэтому вам не нужно вручную корректировать цену в запросе при указании period_unit_count = 12.
Гибкость: хотя допустимы любые целые значения в диапазоне, реальные поддерживаемые периоды для конкретного тарифного плана нужно проверять через API.
Пример: если для тарифа "Старт" доступны периоды 1, 3, 6, 12, то указание period_unit_count = 24 вернёт ошибку 400 и сообщение об ошибке.
Связанные методы:
GET /v1/orders/hostings/tariffs – получить список тарифов и их available_periods (массив доступных значений period_unit_count).
GET /v1/billing/pricelists/{number}/tariffs – узнать цены тарифов с учётом скидок для разных периодов.
POST /v1/orders/hostings + расчёт стоимости – при создании заказа указывайте period_unit_count и проверяйте ответ на предмет валидности периода.
Платежи, счета и акты #
Получить список валют #
Метод запроса: GET
Адрес: https://api.hb.by/v1/billing/currencies
Тело ответа:
| Имя | Вложенность | Тип | Описание |
|---|
| currencies | body | array«object*» | Список актов |
| currency_id | currencies[i] | integer* | ID валюты |
| currency_code | currencies[i] | string* | Код валюты |
| currency_name | currencies[i] | string* | Название валюты |
cURL запрос:
# Оригинальный пример запроса (сохранён):
json
// GET https://api.hb.by/v1/billing/currencies
Успешный ответ (200 OK):
json
{
"currencies": [
{
"currency_id": 200,
"currency_code": "USD",
"currency_name": "Доллар США"
},
{
"currency_id": 300,
"currency_code": "RUB",
"currency_name": "Российский рубль"
},
{
"currency_id": 400,
"currency_code": "EUR",
"currency_name": "Евро"
},
{
"currency_id": 500,
"currency_code": "BYN",
"currency_name": "Белорусский рубль"
}
]
}
Что означают поля в ответе:
- currencies — массив объектов/значений.
- currency_id — идентификатор валюты.
- currency_code — код валюты.
- currency_name — название валюты.
Получить список прейскурантов #
Метод запроса: GET
Адрес: https://api.hb.by/v1/billing/pricelists
Параметры запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| as_of_date | query | string | От заданной даты |
Тело ответа:
| Имя | Вложенность | Тип | Описание |
|---|
| pricelists | body | array«object*» | Прейскурант |
| number | pricelists[i] | string* | Номер |
| description | pricelists[i] | string* | Описание |
| as_of_date | pricelists[i] | string* | Дата |
cURL запрос:
# Оригинальный пример запроса (сохранён):
json
// GET https://api.hb.by/v1/billing/pricelists?as_of_date=01.01.2025
Успешный ответ (200 OK):
json
{
"pricelists": [
{
"number": "1",
"description": "Тарифы на хостинг",
"as_of_date": "01.01.2025"
},
{
"number": "2",
"description": "Тарифы на домены",
"as_of_date": "04.09.2024"
},
{
"number": "3",
"description": "Тарифы на дополнительные услуги",
"as_of_date": "01.01.2024"
},
{
"number": "4",
"description": "Тарифы на SSL-сертификаты",
"as_of_date": "01.02.2024"
},
{
"number": "8",
"description": "Тарифы на электронную почту",
"as_of_date": "01.01.2024"
},
...
}
Что означают поля в ответе:
- pricelists — массив прейскурантов.
- number — номер прейскуранта.
- description — описание.
- as_of_date — дата, с которой актуальны данные (формат DD.MM.YYYY).
Получить список тарифов прейскуранта #
Метод запроса: GET
Адрес: https://api.hb.by/v1/billing/pricelists/{number}/tariffs
Параметры запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| number | path | integer* | Конкретный номер |
| as_of_date | query | string | От заданной даты |
Тело ответа:
| Имя | Вложенность | Тип | Описание |
|---|
| number | body | integer* | Номер |
| description | body | string* | Описание |
| as_of_date | body | string* | Дата |
| tariffs | body | array«object*» | Тарифы |
| tariff_id | tariffs[i] | integer* | ID тарифа |
| tariff_name | tariffs[i] | string* | Название тарифа |
| service_id | tariffs[i] | string* | Общее имя услуги |
| archived | tariffs[i] | boolean* | Архивирован |
| period_type | tariffs[i] | string* | Период оплаты |
| currency_id | tariffs[i] | integer* | Валюта |
| prices | tariffs[i] | array«object*» | Стоимость |
| period | tariffs[i].prices[i] | integer* | Период оплаты |
| price | tariffs[i].prices[i] | number* | Стоимость |
cURL запрос:
# Оригинальный пример запроса (сохранён):
json
// GET https://api.hb.by/v1/billing/pricelists/1/tariffs?as_of_date=01.01.2025
Успешный ответ (200 OK):
json
{
"number": 1,
"description": "Тарифы на хостинг",
"as_of_date": "01.01.2025",
"tariffs": [
{
"tariff_id": 100,
"tariff_name": "Домашний",
"service_id": "10",
"archived": true,
"period_type": "month",
"currency_id": 500,
"prices": [
{
"period": 1,
"price": 5.90
},
{
"period": 2,
"price": 11.80
},
{
"period": 3,
"price": 17.17
},
{
"period": 4,
"price": 22.66
},
{
"period": 5,
"price": 28.03
},
{
"period": 6,
"price": 33.63
},
{
"period": 12,
"price": 63.72
},
{
"period": 24,
"price": 120.36
},
{
"period": 36,
"price": 169.92
}
]
},
...
]
}
Что означают поля в ответе:
- number — номер.
- description — описание.
- as_of_date — дата, по которую актуальны данные (формат DD.MM.YYYY).
- tariffs — (array of object) — массив объектов/значений.
- tariff_id — идентификатор тарифа.
- tariff_name — название тарифа.
- service_id — идентификатор услуги.
- archived — перенесён ли тариф в архив.
- period_type — тип периода.
- currency_id — идентификатор валюты.
- prices — массив объектов/значений.
- period — период (в единицах period_type).
- price — стоимость/цена.
Получить список счетов #
Метод запроса: GET
Адрес: https://api.hb.by/v1/billing/invoices
Параметры запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| order_id | query | integer | ID заказа |
| invoice_id | query | integer | ID счета |
Тело ответа:
| Имя | Вложенность | Тип | Описание |
|---|
| invoices | body | array«object*» | Список счетов |
| invoice_id | invoices[i] | integer* | ID счета |
| invoice_number | invoices[i] | string* | Номер счета |
| order_id | invoices[i] | integer* | ID заказа |
| creation_date | invoices[i] | string* | Дата формирования |
| expiration_date | invoices[i] | string* | Дата истечения |
| amount | invoices[i] | number* | Сумма счета |
| currency_id | invoices[i] | integer* | Валюта |
| state | invoices[i] | string* | Статус |
cURL запрос:
# Оригинальный пример запроса (сохранён):
json
// GET https://api.hb.by/v1/billing/invoices?order_id=28877&invoice_id=99268
Успешный ответ (200 OK):
json
{
"invoices": [
{
"invoice_id": 99268,
"invoice_number": "СФ-1221379-02",
"order_id": 28877,
"creation_date": "28.08.2025",
"expiration_date": "27.09.2025",
"amount": 39.00,
"currency_id": 500,
"state": "WaitingForPayment"
}
]
}
Что означают поля в ответе:
- invoices — массив счетов.
- invoice_id — уникальный идентификатор счёта.
- invoice_number — номер счёта.
- order_id — идентификатор заказа, к которому привязан счёт.
- creation_date — дата формирования счёта.
- expiration_date — дата истечения срока действия/оплаты счёта.
- amount — сумма счёта.
- currency_id — идентификатор валюты, в которой указана сумма.
- state — текущий статус счёта.
Получить список платежей #
Метод запроса: GET
Адрес: https://api.hb.by/v1/billing/payments
Параметры запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| order_id | query | integer | ID заказа |
| invoice_id | query | integer | ID счета |
Тело ответа:
| Имя | Вложенность | Тип | Описание |
|---|
| payments | body | array«object*» | Список платежей |
| payment_id | payments[i] | integer* | ID платежа |
| invoice_id | payments[i] | integer* | ID счета |
| payment_date | payments[i] | string* | Дата платежа |
| amount | payments[i] | number* | Сумма оплаты |
cURL запрос:
# Оригинальный пример запроса (сохранён):
json
// GET https://api.hb.by/v1/billing/payments?invoice_id=99232
Успешный ответ (200 OK):
json
{
"payments": [
{
"payment_id": 57565,
"invoice_id": 99232,
"payment_date": "21.08.2025",
"amount": 6.00
}
]
}
Что означают поля в ответе:
- payments — массив объектов/значений.
- payment_id — идентификатор платежа.
- invoice_id — идентификатор счёта для оплаты.
- payment_date — дата платежа (формат DD.MM.YYYY).
- amount — сумма/оплачиваемая сумма.
Получить список актов #
Метод запроса: GET
Адрес: https://api.hb.by/v1/billing/statements
Параметры запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| order_id | query | integer | ID заказа |
| statement_id | query | integer | ID акта |
Тело ответа:
| Имя | Вложенность | Тип | Описание |
|---|
| statements | body | array«object*» | Список актов |
| statement_id | statements[i] | integer* | ID акта |
| statement_number | statements[i] | string* | Номер акта |
| order_id | statements[i] | integer* | ID заказа |
| from_date | statements[i] | string* | Отчет от |
| to_date | statements[i] | string* | Отчет по |
| amount | statements[i] | number* | Сумма акта |
| currency_id | statements[i] | integer* | Валюта |
cURL запрос:
# Оригинальный пример запроса (сохранён):
json
// GET https://api.hb.by/v1/billing/statements?order_id=29426&statement_id=161708
Успешный ответ (200 OK):
json
{
"statements": [
{
"statement_id": 161708,
"statement_number": "ОУ-1221930-02",
"order_id": 29426,
"from_date": "01.04.2025",
"to_date": "23.07.2027",
"amount": 49.00,
"currency_id": 500
}
]
}
Что означают поля в ответе:
- statements — (array of object) — массив объектов/значений.
- statement_id — идентификатор акта/документа.
- statement_number — номер акта/документа.
- order_id — уникальный идентификатор заказа в системе HB.BY.
- from_date — дата начала периода/от (формат DD.MM.YYYY).
- to_date — дата конца периода/по (формат DD.MM.YYYY).
- amount — сумма/оплачиваемая сумма.
- currency_id — идентификатор валюты.
Получить список актов по партнерской программе #
Метод запроса: GET
Адрес: https://api.hb.by/v1/billing/partner-statements
Параметры запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| statement_id | query | integer | ID акта |
Тело ответа:
| Имя | Вложенность | Тип | Описание |
|---|
| partner_statements | body | array«object*» | Список актов |
| partner_statement_id | partner_statements[i] | integer* | ID акта |
| partner_statement_number | partner_statements[i] | string* | Номер акта |
| from_date | partner_statements[i] | string* | Отчет от |
| to_date | partner_statements[i] | string* | Отчет по |
cURL запрос:
# Оригинальный пример запроса (сохранён):
json
// GET https://api.hb.by/v1/billing/partner-statements?statement_id=1062
Успешный ответ (200 OK):
json
{
"partner_statements": [
{
"partner_statement_id": 1062,
"partner_statement_number": "ОУ-ПД-16298-001",
"from_date": "01.07.2021",
"to_date": "31.07.2026"
}
]
}
Что означают поля в ответе:
- partner_statements — список актов по партнерской программе.
- partner_statement_id — уникальный идентификатор акта.
- partner_statement_number — номер акта (человеко-читаемый код документа).
- from_date — дата начала отчетного периода по акту.
- to_date — дата окончания отчетного периода по акту.
Получить публичный URL счета #
Метод запроса: GET
Адрес: https://api.hb.by/v1/billing/invoices/{id}/url
Параметры запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| id | path | integer* | ID счета |
Тело ответа:
| Имя | Вложенность | Тип | Описание |
|---|
| url | body | string* | Url |
cURL запрос:
# Оригинальный пример запроса (сохранён):
json
// GET https://api.hb.by/v1/billing/invoices/99268/url
Успешный ответ (200 OK):
json
{
"url": "https://hb.by/s/{some short url resource}"
}
Что означают поля в ответе:
- url — публичная ссылка (URL) на ресурс.
Получить публичный URL акта #
Метод запроса: GET
Адрес: https://api.hb.by/v1/billing/statements/{id}/url
Параметры запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| id | path | integer* | ID акта |
Тело ответа:
| Имя | Вложенность | Тип | Описание |
|---|
| url | body | string* | Url |
cURL запрос:
# Оригинальный пример запроса (сохранён):
json
// GET https://api.hb.by/v1/billing/statements/161708/url
Успешный ответ (200 OK):
json
{
"url": "https://hb.by/s/{some short url resource}"
}
Что означают поля в ответе:
- url — публичная ссылка (URL) на ресурс.
Получить публичный URL партнерского акта #
Метод запроса: GET
Адрес: https://api.hb.by/v1/billing/partner-statements/{id}/url
Параметры запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| id | path | integer* | ID акта |
Тело ответа:
| Имя | Вложенность | Тип | Описание |
|---|
| url | body | string* | Url |
cURL запрос:
# Оригинальный пример запроса (сохранён):
json
// GET https://api.hb.by/v1/billing/partner-statements/1062/url
Успешный ответ (200 OK):
json
{
"url": "https://hb.by/s/{some short url resource}"
}
Что означают поля в ответе:
- url — публичная ссылка (URL) на ресурс.
Заказы #
Структура запроса при оформления заказа #
Базовые поля (обязательны для любого заказа)
Эти поля указываются всегда, независимо от типа заказчика.
period_unit_count – количество единиц периода оплаты (целое число).
currency_id – идентификатор валюты в системе.
phone – контактный телефон.
email – контактный электронный адрес.
domain – домен к заказу. Для заказов домена и SSL. При заказе SSL вместо domain можно использовать csr
tariff_id – тарифный план услуги.
Реквизиты по типам заказчика
Физическое лицо (Natural person)
Обязательные поля для реквизитов физического лица:
natural_person_requisites.last_name – фамилия заказчика;
natural_person_requisites.first_name – имя заказчика;
natural_person_requisites.middle_name – отчество заказчика;
natural_person_requisites.address – адрес заказчика.
Для доменов в зонах BY/БЕЛ/RU/SU/РФ дополнительно:
whois_person_requisites – паспортные/идентификационные данные администратора домена.
Шаблон:
{
"period_unit_count": 1,
"currency_id": 500,
"phone": "+375291234567",
"email": "user@mydomain.by",
"domain": "mydomain.by",
"natural_person_requisites": {
"last_name": "Иванов",
"first_name": "Иван",
"middle_name": "Иванович",
"address": {
"postal_code": "220000",
"country_code": "BY",
"region": "Минская область",
"city": "Минск",
"street": "ул. Домбровская",
"building": "д. 9",
"room": "кв. 10"
}
},
"whois_person_requisites": {
"citizenship": "BY",
"series": "BM",
"number": "1234567",
"organization": "РОВД Октябрьского р-на г. Минска",
"identity_number": "1234567A901PB4",
"date_of_issue": "10.10.2005"
}
}
Индивидуальный предприниматель (ИП)
Обязательные поля для ИП:
individual_businessman_requisites.ucn – УНП / ИНН;
individual_businessman_requisites.last_name – фамилия заказчика;
individual_businessman_requisites.first_name – имя заказчика;
individual_businessman_requisites.middle_name – отчество заказчика;
individual_businessman_requisites.legal_address – юридический адрес.
Рекомендуемые (необязательные):
individual_businessman_requisites.postal_address – почтовый адрес (если не указан, копируется из юридического).
individual_businessman_requisites.bank_requisites – банковские реквизиты.
Для доменов в зонах BY/БЕЛ/RU/SU/РФ дополнительно:
whois_person_requisites – пасспортные данные администратора домена;
whois_company_requisites – данные организации-администратора домена.
Шаблон:
{
"period_unit_count": 1,
"currency_id": 500,
"phone": "+375291234567",
"email": "owner@mydomain.by",
"domain": "mydomain.by",
"individual_businessman_requisites": {
"ucn": "190123456",
"last_name": "Иванов",
"first_name": "Иван",
"middle_name": "Иванович",
"legal_address": {
"postal_code": "220000",
"country_code": "BY",
"region": "Минская область",
"city": "Минск",
"street": "ул. Ленина",
"building": "10",
"room": "оф. 5"
},
"postal_address": {
"postal_code": "220000",
"country_code": "BY",
"region": "Минская область",
"city": "Минск",
"street": "ул. Ленина",
"building": "10",
"room": "оф. 5"
},
"bank_requisites": {
"bank_name": "MyBank",
"swift": "MYBNBY22",
"iban": "BY00MYBN30120000000000000000"
}
},
"whois_person_requisites": {
"citizenship": "BY",
"series": "BM",
"number": "1234567",
"organization": "РОВД Октябрьского р-на г. Минска",
"identity_number": "1234567A901PB4",
"date_of_issue": "10.10.2005"
},
"whois_company_requisites": {
"registration_number": "123456789",
"registration_organization": "Мингорисполком",
"registration_issue_number": "0000001",
"registration_issue_date": "01.02.2020",
"is_government_company": false
}
}
Юридическое лицо (Компания)
Обязательные поля для юридического лица:
juridical_person_requisites.ucn – УНП / ИНН.
juridical_person_requisites.company_name – полное наименование компании (с формой собственности).
juridical_person_requisites.executive_last_name – фамилия руководителя.
juridical_person_requisites.executive_first_name – имя руководителя.
juridical_person_requisites.executive_middle_name – отчество руководителя;
juridical_person_requisites.post_of_executive – должность руководителя.
juridical_person_requisites.legal_address – юридический адрес.
Рекомендуемые (необязательные):
juridical_person_requisites.postal_address – почтовый адрес (если не указан, копируется из юридического).
juridical_person_requisites.bank_requisites – банковские реквизиты.
Для доменов в зонах BY/БЕЛ/RU/SU/РФ дополнительно:
whois_company_requisites – данные организации-администратора домена.
Шаблон:
{
"period_unit_count": 1,
"currency_id": 500,
"phone": "+375291234567",
"email": "it@mydomain.by",
"domain": "mydomain.by",
"juridical_person_requisites": {
"ucn": "190123456",
"company_name": "ООО «Компания»",
"executive_last_name": "Иванов",
"executive_first_name": "Иван",
"executive_middle_name": "Иванович",
"post_of_executive": "Директор",
"legal_address": {
"postal_code": "220000",
"country_code": "BY",
"region": "Минская область",
"city": "Минск",
"street": "пр. Победителей",
"building": "7",
"room": "оф. 101"
},
"postal_address": {
"postal_code": "220000",
"country_code": "BY",
"region": "Минская область",
"city": "Минск",
"street": "пр. Победителей",
"building": "7",
"room": "оф. 101"
},
"bank_requisites": {
"bank_name": "MyBank",
"swift": "MYBNBY22",
"iban": "BY00MYBN30120000000000000000"
}
},
"whois_company_requisites": {
"registration_number": "123456789",
"registration_organization": "Мингорисполком",
"registration_issue_number": "0000001",
"registration_issue_date": "01.02.2020",
"is_government_company": false
}
}
Получить доступные услуги #
Метод запроса: GET
Адрес: https://api.hb.by/v1/orders/services
Тело ответа:
| Имя | Вложенность | Тип | Описание |
|---|
| services | body | array«object*» | Список услуг |
| service_id | services[i] | string* | ID услуги |
| canonical_name | services[i] | string* | Каноническое наименование |
| name | services[i] | string* | Наименование |
cURL запрос:
# Оригинальный пример запроса (сохранён):
json
// GET https://api.hb.by/v1/orders/services
Успешный ответ (200 OK):
json
{
"services": [
...
{
"service_id": 195,
"canonical_name": "UnixHosting",
"name": "Unix-хостинг"
},
...
]
}
Что означают поля в ответе:
- services — список доступных услуг в системе.
- service_id — уникальный идентификатор услуги.
- canonical_name — каноническое (внутреннее) имя услуги.
- name — наименование услуги, отображаемое в интерфейсе.
Получить доступные тарифы хостинга #
Метод запроса: GET
Адрес: https://api.hb.by/v1/orders/hostings/tariffs
Параметры запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| currency_id | query | integer | ID валюты |
| service_id | query | integer | ID услуги |
Тело ответа:
| Имя | Вложенность | Тип | Описание |
|---|
| tariffs | body | array«object*» | Список тарифов |
| tariff_id | tariffs[i] | integer* | ID тарифа |
| tariff_name | tariffs[i] | string* | Название тарифа |
| service_id | tariffs[i] | string* | Общее имя услуги |
| period_type | tariffs[i] | string* | Период оплаты |
| prices | tariffs[i] | array«object*» | Стоимость |
| period | tariffs[i].prices[i] | integer* | Период оплаты |
| price | tariffs[i].prices[i] | number* | Стоимость |
cURL запрос:
# Оригинальный пример запроса (сохранён):
json
// GET https://api.hb.by/v1/orders/hostings/tariffs?currency_id=500&service_id=195
Успешный ответ (200 OK):
json
{
"tariffs": [
{
"tariff_id": 566,
"tariff_name": "Unix Старт",
"service_id": 195,
"period_type": "month",
"prices": [
{
"period": 1,
"price": 6.00
},
...
]
},
...
]
}
Что означают поля в ответе:
- tariffs — список доступных тарифов хостинга.
- tariff_id — целочисленный уникальный идентификатор тарифа.
- tariff_name — читаемое название тарифа.
- service_id — идентификатор услуги в системе.
- period_type — единица измерения периода оплаты.
- prices — варианты стоимости для разных периодов оплаты.
- period — период оплаты в единицах, указанных в period_type.
- price — стоимость за указанный period.
Получить доступные тарифы электронной почты #
Метод запроса: GET
Адрес: https://api.hb.by/v1/orders/corporate-mails/tariffs
Параметры запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| currency_id | query | integer | ID валюты |
Тело ответа:
| Имя | Вложенность | Тип | Описание |
|---|
| tariffs | body | array«object*» | Список тарифов |
| tariff_id | tariffs[i] | integer* | ID тарифа |
| tariff_name | tariffs[i] | string* | Название тарифа |
| service_id | tariffs[i] | string* | Общее имя услуги |
| period_type | tariffs[i] | string* | Период оплаты |
| prices | tariffs[i] | array«object*» | Стоимость |
| period | tariffs[i].prices[i] | integer* | Период оплаты |
| price | tariffs[i].prices[i] | number* | Стоимость |
cURL запрос:
# Оригинальный пример запроса (сохранён):
json
// GET https://api.hb.by/v1/orders/corporate-mails/tariffs?currency_id=500
Успешный ответ (200 OK):
json
{
"tariffs": [
{
"tariff_id": 1805,
"tariff_name": "Почта-5",
"service_id": 150,
"period_type": "month",
"prices": [
{
"period": 1,
"price": 4.50
},
...
]
},
...
]
}
Что означают поля в ответе:
- tariffs — список доступных тарифов на корпоративную почту.
- tariff_id — целочисленный уникальный идентификатор тарифа.
- tariff_name — читаемое название тарифа.
- service_id — идентификатор услуги в системе.
- period_type — единица измерения периода оплаты.
- prices — варианты стоимости для разных периодов оплаты.
- period — период оплаты в единицах, указанных в period_type.
- price — стоимость за указанный period.
Получить доступные SSL-сертификаты #
Метод запроса: GET
Адрес: https://api.hb.by/v1/orders/ssl-certificates/tariffs
Параметры запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| currency_id | query | integer | ID валюты |
Тело ответа:
| Имя | Вложенность | Тип | Описание |
|---|
| tariffs | body | array«object*» | Список тарифов |
| tariff_id | tariffs[i] | integer* | ID тарифа |
| tariff_name | tariffs[i] | string* | Название тарифа |
| service_id | tariffs[i] | string* | Общее имя услуги |
| period_type | tariffs[i] | string* | Период оплаты |
| prices | tariffs[i] | array«object*» | Стоимость |
| period | tariffs[i].prices[i] | integer* | Период оплаты |
| price | tariffs[i].prices[i] | number* | Стоимость |
cURL запрос:
# Оригинальный пример запроса (сохранён):
json
// GET https://api.hb.by/v1/orders/ssl-certificates/tariffs?currency_id=500
Успешный ответ (200 OK):
json
{
"tariffs": [
{
"tariff_id": 7027,
"tariff_name": "GlobalSign AlphaSSL Domain",
"service_id": 60,
"period_type": "year",
"prices": [
{
"period": 1,
"price": 39.00
}
]
},
...
]
}
Что означают поля в ответе:
- tariffs — список доступных тарифов на SSL-сертификаты.
- tariff_id — целочисленный уникальный идентификатор тарифа.
- tariff_name — название тарифа/пакета.
- service_id — идентификатор услуги в системе.
- period_type — единица измерения периода оплаты.
- prices — варианты цены для разных периодов оплаты.
- period — период оплаты указанный в period_type.
- price — стоимость за указанный period.
Получить доступные доменные зоны #
Метод запроса: GET
Адрес: https://api.hb.by/v1/orders/domains/zones
Параметры запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| currency_id | query | integer | ID валюты |
Тело ответа:
| Имя | Вложенность | Тип | Описание |
|---|
| domain_zones | body | array«object*» | Список доменных зон |
| domain_zone_id | domain_zones[i] | integer* | ID зоны |
| name | domain_zones[i] | string* | Название зоны |
| min_period | domain_zones[i] | integer* | Минимальный период заказа |
| max_period | domain_zones[i] | integer* | Максимальный период заказа |
| actual_registration_tariff_id | domain_zones[i] | integer* | ID тарифа регистрации |
| registration_price | domain_zones[i] | number* | Стоимость регистрации |
| actual_renew_tariff_id | domain_zones[i] | integer* | ID тарифа продления |
| renew_price | domain_zones[i] | number* | Стоимость продления |
| period_type | domain_zones[i] | string* | Период оплаты |
cURL запрос:
# Оригинальный пример запроса (сохранён):
json
// GET https://api.hb.by/v1/orders/domains/zones?currency_id=500
Успешный ответ (200 OK):
json
{
"domain_zones": [
{
"domain_zone_id": 1,
"name": "by",
"min_period": 1,
"max_period": 2,
"actual_registration_tariff_id": 2000,
"registration_price": 33.00,
"actual_renew_tariff_id": 2001,
"renew_price": 33.00,
"period_type": "year"
},
...
]
}
Что означают поля в ответе:
- domain_zones — список доступных доменных зон/ТЛД.
- domain_zone_id — целочисленный уникальный идентификатор зоны.
- name — имя зоны/суффикса (например, by, com, net).
- min_period — минимальный разрешённый период заказа.
- max_period — максимальный разрешённый период заказа.
- actual_registration_tariff_id — идентификатор текущего тарифа/предложения для регистрации в этой зоне.
- registration_price — цена регистрации.
- actual_renew_tariff_id — идентификатор текущего тарифа для продления в этой зоне.
- renew_price — цена продления.
- period_type — единица измерения периода, то есть в каких единицах указаны min_period / max_period.
Получить все заказы #
Метод запроса: GET
Адрес: https://api.hb.by/v1/orders
Параметры запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| order_number | query | string | Номер заказа |
| order_id | query | integer | ID заказа |
| from_order_date | query | string | С даты оформления |
| to_order_date | query | string | По дату оформления |
| service_id | query | integer | ID услуги |
Тело ответа:
| Имя | Вложенность | Тип | Описание |
|---|
| orders | body | array«object*» | Список заказов |
| order_id | orders[i] | integer* | ID заказа |
| service_id | orders[i] | integer* | ID услуги |
| number | orders[i] | string* | Номер заказа |
| state | orders[i] | string* | Статус услуги |
| order_datetime | orders[i] | string* | Дата оформления заказа |
| complete_date | orders[i] | string | Дата выполнения заказа |
| expiration_date | orders[i] | string | Дата истечения заказа |
| currency_id | orders[i] | integer* | ID валюты |
| period_unit_type | orders[i] | string* | Тип периода оплаты |
| period_unit_count | orders[i] | integer* | Количество единиц периода оплаты |
| paid | orders[i] | boolean* | Статус оплаты |
| completed | orders[i] | boolean* | Статус выполнения |
| business_entity_type | orders[i] | string* | Тип заказчика в реквизитах |
cURL запрос:
# Оригинальный пример запроса (сохранён):
json
// GET https://api.hb.by/v1/orders
Успешный ответ (200 OK):
json
{
"orders": [
{
"order_id": 99999,
"service_id": 30,
"number": "СФ-1222161",
"state": "NewOrder",
"order_datetime": "10.10.2025 20:31",
"complete_date": null,
"expiration_date": null,
"currency_id": 500,
"period_unit_type": "year",
"period_unit_count": "1",
"paid": false,
"completed": false,
"business_entity_type": "NaturalPerson"
},
...
]
}
Что означают поля в ответе:
- orders — список заказов.
- order_id — уникальный идентификатор заказа.
- service_id — идентификатор услуги, на которую оформлен заказ.
- number — номер (код) заказа.
- state — текущий статус заказа/услуги.
- order_datetime — дата и время оформления заказа.
- complete_date — дата выполнения заказа; может быть пустой (null), если ещё не выполнен.
- expiration_date — дата истечения заказа; может быть пустой (null), если не применимо.
- currency_id — идентификатор валюты, в которой указаны суммы по заказу.
- period_unit_type — единица периода оплаты (тип периода).
- period_unit_count — количество единиц периода оплаты.
- paid — признак оплаты заказа (оплачен/не оплачен).
- completed — признак того, что заказ выполнен.
- business_entity_type — тип заказчика в реквизитах.
Домены #
Получить доступность одного или нескольких доменов #
Метод запроса: POST
Адрес: https://api.hb.by/v1/domains/check
Тело запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| domains | body | array«string*» | Домены |
| - | body | string* | Значение |
Тело ответа:
| Имя | Вложенность | Тип | Описание |
|---|
| results | body | array«object*» | Результаты проверки |
| domain | results[i] | string* | Домен |
| is_available | results[i] | boolean* | Статус доступности |
| is_premium | results[i] | boolean* | Статус премиальности |
| state | results[i] | string* | Статус в реестре |
cURL запрос:
# Оригинальный пример запроса (сохранён):
json
// POST https://api.hb.by/v1/domains/check
{
"domains": [
"hb.by"
]
}
Успешный ответ (200 OK):
json
{
"results": [
{
"domain": "hb.by",
"is_available": false,
"is_premium": false,
"state": "NotAvailable"
}
]
}
Что означают поля в ответе:
- results — список объектов с результатами проверки доменов.
- domain — домен, который проверяли.
- is_available — доступен ли домен для регистрации (true/false).
- is_premium — является ли домен премиальным (true/false).
- state — строка, указывающая текущий статус домена в реестре.
Получить сертификат владения доменом #
Метод запроса: GET
Адрес: https://api.hb.by/v1/domains/{orderId}/certificate
Параметры запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| orderId | path | integer* | ID заказа |
Тело ответа:
| Имя | Вложенность | Тип | Описание |
|---|
| url | body | string* | Url |
cURL запрос:
# Оригинальный пример запроса (сохранён):
json
// GET https://api.hb.by/v1/domains/29303/certificate
Успешный ответ (200 OK):
json
{
"url": "some url"
}
Что означают поля в ответе:
- url — публичная ссылка (URL) на ресурс.
Получить список NS серверов домена #
Метод запроса: GET
Адрес: https://api.hb.by/v1/domains/{orderId}/dns/servers
Параметры запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| orderId | path | integer* | ID заказа |
Тело ответа:
| Имя | Вложенность | Тип | Описание |
|---|
| servers | body | array«object*» | Список NS-серверов |
| ns | servers[i] | string* | NS |
| ip | servers[i] | string | IP |
cURL запрос:
# Оригинальный пример запроса (сохранён):
json
// GET https://api.hb.by/v1/domains/29303/dns/servers
Успешный ответ (200 OK):
json
{
"servers": [
{
"ns": "ns1.hb.by",
"ip": null
},
{
"ns": "ns2.hb.by",
"ip": null
}
]
}
Что означают поля в ответе:
- servers — список серверов имён.
- ns — имя сервера имён.
- ip — IP-адрес сервера (может быть null, если адрес не указан).
Удалить NS сервера домена #
Метод запроса: DELETE
Адрес: https://api.hb.by/v1/domains/{orderId}/dns/servers
Параметры запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| orderId | path | integer* | ID заказа |
cURL запрос:
# Оригинальный пример запроса (сохранён):
json
// DELETE https://api.hb.by/v1/domains/29303/dns/servers
Обновить список NS серверов домена на виртуальный хостинг #
Метод запроса: PUT
Адрес: https://api.hb.by/v1/domains/{orderId}/dns/servers/hosting
Параметры запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| orderId | path | integer* | ID заказа |
cURL запрос:
# Оригинальный пример запроса (сохранён):
json
// PUT https://api.hb.by/v1/domains/29303/dns/servers/hosting
Обновить список NS серверов домена на расширенный редактор #
Метод запроса: PUT
Адрес: https://api.hb.by/v1/domains/{orderId}/dns/servers/editor
Параметры запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| orderId | path | integer* | ID заказа |
cURL запрос:
# Оригинальный пример запроса (сохранён):
json
// PUT https://api.hb.by/v1/domains/29303/dns/servers/editor
Обновить список NS серверов домена на указанные #
Метод запроса: PUT
Адрес: https://api.hb.by/v1/domains/{orderId}/dns/servers/custom
Параметры запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| orderId | path | integer* | ID заказа |
Тело запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| servers | body | array«object*» | Список NS-серверов |
| ns | servers[i] | string* | NS |
| ip | servers[i] | string | IP |
cURL запрос:
# Оригинальный пример запроса (сохранён):
json
// PUT https://api.hb.by/v1/domains/29303/dns/servers/custom
{
"servers": [
{
"ns": "ns1.mydomain.by",
"ip": "100.100.100.100"
},
{
"ns": "ns2.mydomain.by",
"ip": "200.200.200.200"
}
]
}
Что означают поля в запросе:
- servers — список серверов имён.
- ns — имя сервера имён.
- ip — IP-адрес сервера (может быть null, если адрес не указан).
Получить список DNS записей домена #
Метод запроса: GET
Адрес: https://api.hb.by/v1/domains/{orderId}/dns/records
Параметры запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| orderId | path | integer* | ID заказа |
Тело ответа:
| Имя | Вложенность | Тип | Описание |
|---|
| records | body | array«object*» | Список записей |
| record_id | records[i] | integer* | ID записи |
| type | records[i] | string* | Тип записи |
| ttl | records[i] | integer* | Тип записи |
| value | records[i] | string* | Значение |
cURL запрос:
# Оригинальный пример запроса (сохранён):
json
// GET https://api.hb.by/v1/domains/29303/dns/records
Успешный ответ (200 OK):
json
{
"records": [
{
"record_id": 1000,
"type": "A",
"ttl": 86400,
"value": "www 100.100.100.100"
}
]
}
Что означают поля в ответе:
- record_id — уникальный идентификатор записи.
- type — тип записи.
- ttl — время жизни записи в секундах.
- value — значение записи (содержимое, на которое указывает запись).
Добавить NS запись #
Метод запроса: POST
Адрес: https://api.hb.by/v1/domains/{orderId}/dns/records/ns
Параметры запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| orderId | path | integer* | ID заказа |
Тело запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| ttl | body | integer* | TTL |
| host | body | string* | Хост (поддомен) |
| ns | body | string* | NS-сервер |
cURL запрос:
# Оригинальный пример запроса (сохранён):
json
// POST https://api.hb.by/v1/domains/29303/dns/records/ns
{
"ttl": 60,
"host": "ns1",
"ns": "ns1.mydomain.by"
}
Что означают поля в запросе:
- ttl — время жизни записи в секундах.
- host — имя хоста или поддомена, для которого создаётся запись.
- ns — полный домен сервера имён, на который должна указывать запись.
Удалить NS запись #
Метод запроса: DELETE
Адрес: https://api.hb.by/v1/domains/{orderId}/dns/records/ns/{id}
Параметры запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| orderId | path | integer* | ID заказа |
| id | path | integer* | Значение |
cURL запрос:
# Оригинальный пример запроса (сохранён):
json
// DELETE https://api.hb.by/v1/domains/29303/dns/records/ns/1000
Добавить A запись #
Метод запроса: POST
Адрес: https://api.hb.by/v1/domains/{orderId}/dns/records/a
Параметры запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| orderId | path | integer* | ID заказа |
Тело запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| ttl | body | integer* | TTL |
| host | body | string* | Хост (поддомен) |
| ipv4 | body | string* | IPv4 |
cURL запрос:
# Оригинальный пример запроса (сохранён):
json
// POST https://api.hb.by/v1/domains/29303/dns/records/a
{
"ttl": 60,
"host": "www",
"ipv4": "100.100.100.100"
}
Что означают поля в запросе:
- ttl — время жизни записи в секундах.
- host — поддомен/метка, для которой создаётся A-запись.
- ipv4 — IPv4-адрес в формате x.x.x.x.
Удалить A запись #
Метод запроса: DELETE
Адрес: https://api.hb.by/v1/domains/{orderId}/dns/records/a/{id}
Параметры запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| orderId | path | integer* | ID заказа |
| id | path | integer* | Значение |
cURL запрос:
# Оригинальный пример запроса (сохранён):
json
// DELETE https://api.hb.by/v1/domains/29303/dns/records/a/1000
Добавить AAAA запись #
Метод запроса: POST
Адрес: https://api.hb.by/v1/domains/{orderId}/dns/records/aaaa
Параметры запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| orderId | path | integer* | ID заказа |
Тело запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| ttl | body | integer* | TTL |
| host | body | string* | Хост (поддомен) |
| ipv6 | body | string* | IPv4 |
cURL запрос:
# Оригинальный пример запроса (сохранён):
json
// POST https://api.hb.by/v1/domains/29303/dns/records/aaaa
{
"ttl": 60,
"host": "www6",
"ipv6": "2001:0db8:85a3:0000:0000:8a2e:0370:7334"
}
Что означают поля в запросе:
- ttl — время жизни записи в секундах.
- host — имя хоста или поддомена, для которого создаётся запись.
- ipv6 — IPv6-адрес, на который должна указывать запись.
Удалить AAAA запись #
Метод запроса: DELETE
Адрес: https://api.hb.by/v1/domains/{orderId}/dns/records/aaaa/{id}
Параметры запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| orderId | path | integer* | ID заказа |
| id | path | integer* | Значение |
cURL запрос:
# Оригинальный пример запроса (сохранён):
json
// DELETE https://api.hb.by/v1/domains/29303/dns/records/aaaa/1000
Добавить CNAME запись #
Метод запроса: POST
Адрес: https://api.hb.by/v1/domains/{orderId}/dns/records/cname
Параметры запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| orderId | path | integer* | ID заказа |
Тело запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| ttl | body | integer* | TTL |
| host | body | string* | Хост (поддомен) |
| canonical | body | string* | Каноническое имя |
cURL запрос:
# Оригинальный пример запроса (сохранён):
json
// POST https://api.hb.by/v1/domains/29303/dns/records/cname
{
"ttl": 60,
"host": "www",
"canonical": "mydomain.by"
}
Что означают поля в запросе:
- ttl — время жизни записи в секундах.
- host — поддомен/метка, для которой создаётся CNAME.
- canonical — каноническое имя, на которое будет указывать CNAME.
Удалить CNAME запись #
Метод запроса: DELETE
Адрес: https://api.hb.by/v1/domains/{orderId}/dns/records/cname/{id}
Параметры запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| orderId | path | integer* | ID заказа |
| id | path | integer* | ID записи |
cURL запрос:
# Оригинальный пример запроса (сохранён):
json
// DELETE https://api.hb.by/v1/domains/29303/dns/records/cname/1000
Добавить MX запись #
Метод запроса: POST
Адрес: https://api.hb.by/v1/domains/{orderId}/dns/records/mx
Параметры запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| orderId | path | integer* | ID заказа |
Тело запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| ttl | body | integer* | TTL |
| host | body | string* | Хост (поддомен) |
| mail_server | body | string* | Почтовый сервер |
| priority | body | integer* | Приоритет |
cURL запрос:
# Оригинальный пример запроса (сохранён):
json
// POST https://api.hb.by/v1/domains/29303/dns/records/mx
{
"ttl": 60,
"host": "ml",
"mail_server": "mail.mydomain.by",
"priority": 10
}
Что означают поля в запросе:
- ttl — время жизни записи в секундах.
- host — поддомен или метка, к которому привязана запись.
- mail_server — полный домен почтового сервера, на который нужно направлять почту.
- priority — приоритет почтового сервера; меньшее значение = более высокий приоритет.
Удалить MX запись #
Метод запроса: DELETE
Адрес: https://api.hb.by/v1/domains/{orderId}/dns/records/mx/{id}
Параметры запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| orderId | path | integer* | ID заказа |
| id | path | integer* | ID записи |
cURL запрос:
# Оригинальный пример запроса (сохранён):
json
// DELETE https://api.hb.by/v1/domains/29303/dns/records/mx/1000
Добавить TXT запись #
Метод запроса: POST
Адрес: https://api.hb.by/v1/domains/{orderId}/dns/records/txt
Параметры запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| orderId | path | integer* | ID заказа |
Тело запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| ttl | body | integer* | TTL |
| host | body | string* | Хост (поддомен) |
| text | body | string* | Текстовое значение |
cURL запрос:
# Оригинальный пример запроса (сохранён):
json
// POST https://api.hb.by/v1/domains/29303/dns/records/txt
{
"ttl": 60,
"host": "_spf",
"text": "v=spf1 +mx +a -all"
}
Что означают поля в запросе:
- ttl — время жизни записи в секундах.
- host — имя хоста или поддомена, для которого создаётся запись.
- text — текстовое значение записи.
Удалить TXT запись #
Метод запроса: DELETE
Адрес: https://api.hb.by/v1/domains/{orderId}/dns/records/txt/{id}
Параметры запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| orderId | path | integer* | ID заказа |
| id | path | integer* | ID записи |
cURL запрос:
# Оригинальный пример запроса (сохранён):
json
// DELETE https://api.hb.by/v1/domains/29303/dns/records/txt/1000
Добавить SRV запись #
Метод запроса: POST
Адрес: https://api.hb.by/v1/domains/{orderId}/dns/records/srv
Параметры запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| orderId | path | integer* | ID заказа |
Тело запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| ttl | body | integer* | TTL |
| host | body | string* | Хост (поддомен) |
| service | body | string* | Сервис |
| protocol | body | string* | Протокол |
| target | body | string* | Цель |
| port | body | integer* | Порт |
| priority | body | integer* | Приоритет |
| weight | body | integer* | Вес |
cURL запрос:
# Оригинальный пример запроса (сохранён):
json
// POST https://api.hb.by/v1/domains/29303/dns/records/srv
{
"ttl": 60,
"host": "service",
"service": "sip",
"protocol": "tcp",
"target": "sipserver.mydomain.by",
"port": 5060,
"priority": 0,
"weight": 10
}
Что означают поля в запросе:
- ttl — время жизни записи в секундах.
- host — имя хоста или поддомена, для которого создаётся запись.
- service — название сервиса.
- protocol — протокол.
- target — адрес сервера, к которому должна указывать SRV-запись.
- port — номер порта на целевом сервере.
- priority — приоритет записи; меньшие значения означают более высокий приоритет.
- weight — относительный вес записи при одинаковом приоритете.
Удалить SRV запись #
Метод запроса: DELETE
Адрес: https://api.hb.by/v1/domains/{orderId}/dns/records/srv/{id}
Параметры запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| orderId | path | integer* | ID заказа |
| id | path | integer* | ID записи |
cURL запрос:
# Оригинальный пример запроса (сохранён):
json
// DELETE https://api.hb.by/v1/domains/29303/dns/records/srv/1000
Типичные сценарии использования #
Метод запроса: POST
Адрес: https://api.hb.by/v1/orders/hostings
ТИПИЧНЫЕ СЦЕНАРИИ РАБОТЫ С ЗАКАЗАМИ
Сценарий: Создание заказа хостинга для нового клиента
Этот сценарий описывает полный цикл создания заказа, когда у вас есть только базовые данные клиента.
Шаг 1: Получите список доступных тарифов хостинга
Вызов: GET /v1/orders/hostings/tariffs
В ответе содержатся объекты тарифов с полями tariff_id и prices. Массив prices содержит информацию о доступных периодах (period_unit_count или period) и их стоимости – оттуда берём tariff_id и поддерживаемые периоды.
Шаг 2: Узнайте, какие периоды оплаты поддерживаются для выбранного тарифа
В ответе метода из Шага 1 найдите объект тарифа по tariff_id и посмотрите prices или available_periods. Пример: [1, 3, 6, 12] – это допустимые значения period_unit_count (в месяцах или годах, в зависимости от period_type).
Шаг 3: Проверьте доступность домена (если требуется регистрация/привязка домена)
Вызов: POST /v1/domains/check с массивом доменов.
В ответе поле is_available для каждого домена укажет, можно ли регистрировать домен. Если домен занят – предложите альтернативы или используйте существующий домен клиента.
Шаг 4: Получите список валют и выберите currency_id
Вызов: GET /v1/billing/currencies – найдите currency_id нужной валюты (например BYN). От выбора валюты могут зависеть доступные способы оплаты и цены.
Шаг 5: Соберите реквизиты юридического лица
Для юридического лица обязательно заполнить juridical_person_requisites (УНП/идентификатор, название компании, данные руководителя, юридический адрес). Проверьте требования для зоны/услуги (некоторые услуги требуют дополнительные поля).
Шаг 6: Создайте заказ хостинга
Вызов: POST /v1/orders/hostings с собранными данными: tariff_id, period_unit_count, currency_id, контакты, domain (если есть), juridical_person_requisites.
В ответе – order_id, invoice_id и часто invoice_url.
Шаг 7: Получите ссылку на оплату счёта
Вызов: GET /v1/billing/invoices/{invoice_id}/url – в ответе будет публичная ссылка для оплаты счёта.
Типичные ошибки и рекомендации при оформлении заказов
- **Всегда получайте актуальный (**tariff_id) **список тарифов (
GET /v1/orders/.../tariffs) перед оформлением.
- Проверяйте
prices/available_periods в ответе тарифа, чтобы узнать допустимые значения period_unit_count.
- Проверка домена должна быть отдельным шагом: не создавать заказ с доменом, который занят.
Получить заказы хостинга #
Метод запроса: GET
Адрес: https://api.hb.by/v1/orders/hostings
Параметры запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| order_number | query | string | Номер заказа |
| order_id | query | integer | ID заказа |
| from_order_date | query | string | С даты оформления |
| to_order_date | query | string | По дату оформления |
| service_id | query | integer | ID услуги |
Тело ответа:
| Имя | Вложенность | Тип | Описание |
|---|
| orders | body | array«object*» | Список заказов |
| order_id | orders[i] | integer* | ID заказа |
| service_id | orders[i] | integer* | ID услуги |
| number | orders[i] | string* | Номер заказа |
| state | orders[i] | string* | Статус услуги |
| order_datetime | orders[i] | string* | Дата оформления заказа |
| complete_date | orders[i] | string | Дата выполнения заказа |
| expiration_date | orders[i] | string | Дата истечения заказа |
| currency_id | orders[i] | integer* | ID валюты |
| period_unit_type | orders[i] | string* | Тип периода оплаты |
| period_unit_count | orders[i] | integer* | Количество единиц периода оплаты |
| paid | orders[i] | boolean* | Статус оплаты |
| completed | orders[i] | boolean* | Статус выполнения |
| business_entity_type | orders[i] | string* | Тип заказчика в реквизитах |
| advanced | orders[i] | object | Значение |
| tariff_id | orders[i].advanced | integer | Тариф |
cURL запрос:
# Оригинальный пример запроса (сохранён):
json
// GET https://api.hb.by/v1/orders/hostings
Успешный ответ (200 OK):
json
{
"orders": [
{
"order_id": 99999,
"service_id": 195,
"number": "СФ-1222161",
"state": "NewOrder",
"order_datetime": "10.10.2025 20:31",
"complete_date": null,
"expiration_date": null,
"currency_id": 500,
"period_unit_type": "month",
"period_unit_count": "1",
"paid": false,
"completed": false,
"business_entity_type": "NaturalPerson",
"advanced": {
"tariff_id": 566
}
},
...
]
}
Что означают поля в ответе:
- orders — список заказов.
- order_id — уникальный идентификатор заказа.
- service_id — идентификатор услуги, связанной с заказом.
- number — номер заказа / счёта.
- state — текущий статус заказа.
- order_datetime — дата и время оформления заказа.
- complete_date — дата выполнения заказа.
- expiration_date — дата окончания действия услуги/сертификата.
- currency_id — идентификатор валюты, в которой выставлен счёт.
- period_unit_type — тип единицы периода оплаты.
- period_unit_count — количество единиц периода оплаты.
- paid — логическое значение: заказ оплачен (true) или нет (false).
- completed — логическое значение: заказ завершён (true) или нет (false).
- business_entity_type — тип заказчика в реквизитах.
- advanced — объект с дополнительными свойствами заказа.
- tariff_id — идентификатор тарифа внутри блока advanced.
Метод запроса: POST
Адрес: https://api.hb.by/v1/orders/corporate-mails
ТИПИЧНЫЕ СЦЕНАРИИ РАБОТЫ С КОРПОРАТИВНОЙ ПОЧТОЙ
Сценарий: Оформление корпоративной почты
- Получите тарифы:
GET /v1/orders/corporate-mails/tariffs?currency_id={id}.
- Проверьте домен (если почта на своём домене):
POST /v1/domains/check.
- Выберите валюту:
GET /v1/billing/currencies.
- Заполните реквизиты клиента.
- Создайте заказ:
POST /v1/orders/corporate-mails – получите invoice_url.
Получить заказы электронной почты #
Метод запроса: GET
Адрес: https://api.hb.by/v1/orders/corporate-mails
Параметры запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| order_number | query | string | Номер заказа |
| order_id | query | integer | ID заказа |
| from_order_date | query | string | С даты оформления |
| to_order_date | query | string | По дату оформления |
Тело ответа:
| Имя | Вложенность | Тип | Описание |
|---|
| orders | body | array«object*» | Список заказов |
| order_id | orders[i] | integer* | ID заказа |
| service_id | orders[i] | integer* | ID услуги |
| number | orders[i] | string* | Номер заказа |
| state | orders[i] | string* | Статус услуги |
| order_datetime | orders[i] | string* | Дата оформления заказа |
| complete_date | orders[i] | string | Дата выполнения заказа |
| expiration_date | orders[i] | string | Дата истечения заказа |
| currency_id | orders[i] | integer* | ID валюты |
| period_unit_type | orders[i] | string* | Тип периода оплаты |
| period_unit_count | orders[i] | integer* | Количество единиц периода оплаты |
| paid | orders[i] | boolean* | Статус оплаты |
| completed | orders[i] | boolean* | Статус выполнения |
| business_entity_type | orders[i] | string* | Тип заказчика в реквизитах |
| advanced | orders[i] | object | Значение |
| tariff_id | orders[i].advanced | integer | Тариф |
cURL запрос:
# Оригинальный пример запроса (сохранён):
json
// GET https://api.hb.by/v1/orders/corporate-mails
Успешный ответ (200 OK):
json
{
"orders": [
{
"order_id": 99999,
"service_id": 150,
"number": "СФ-1222161",
"state": "NewOrder",
"order_datetime": "10.10.2025 20:31",
"complete_date": null,
"expiration_date": null,
"currency_id": 500,
"period_unit_type": "month",
"period_unit_count": "1",
"paid": false,
"completed": false,
"business_entity_type": "NaturalPerson",
"advanced": {
"tariff_id": 1805
}
},
...
]
}
Что означают поля в ответе:
- orders — список заказов.
- order_id — уникальный идентификатор заказа.
- service_id — идентификатор услуги, связанной с заказом.
- number — номер заказа / счёта.
- state — текущий статус заказа.
- order_datetime — дата и время оформления заказа.
- complete_date — дата выполнения заказа.
- expiration_date — дата окончания действия услуги/сертификата.
- currency_id — идентификатор валюты, в которой выставлен счёт.
- period_unit_type — тип единицы периода оплаты.
- period_unit_count — количество единиц периода оплаты.
- paid — логическое значение: заказ оплачен (true) или нет (false).
- completed — логическое значение: заказ завершён (true) или нет (false).
- business_entity_type — тип заказчика в реквизитах.
- advanced — объект с дополнительными свойствами заказа.
- tariff_id — идентификатор тарифа внутри блока advanced.
Метод запроса: POST
Адрес: https://api.hb.by/v1/orders/ssl-certificates
ТИПИЧНЫЕ СЦЕНАРИИ РАБОТЫ С SSL
Сценарий: Покупка SSL для домена
- Получите тарифы:
GET /v1/orders/ssl-certificates/tariffs?currency_id={id} – выберите tariff_id.
- Подготовьте
CSR или укажите domain.
- Проверьте доступность/регистрацию домена при необходимости.
- Создайте заказ:
POST /v1/orders/ssl-certificates с tariff_id, domain/csr, period_unit_count, currency_id.
Получить заказы SSL-сертификатов #
Метод запроса: GET
Адрес: https://api.hb.by/v1/orders/ssl-certificates
Параметры запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| order_number | query | string | Номер заказа |
| order_id | query | integer | ID заказа |
| from_order_date | query | string | С даты оформления |
| to_order_date | query | string | По дату оформления |
Тело ответа:
| Имя | Вложенность | Тип | Описание |
|---|
| orders | body | array«object*» | Список заказов |
| order_id | orders[i] | integer* | ID заказа |
| service_id | orders[i] | integer* | ID услуги |
| number | orders[i] | string* | Номер заказа |
| state | orders[i] | string* | Статус услуги |
| order_datetime | orders[i] | string* | Дата оформления заказа |
| complete_date | orders[i] | string | Дата выполнения заказа |
| expiration_date | orders[i] | string | Дата истечения заказа |
| currency_id | orders[i] | integer* | ID валюты |
| period_unit_type | orders[i] | string* | Тип периода оплаты |
| period_unit_count | orders[i] | integer* | Количество единиц периода оплаты |
| paid | orders[i] | boolean* | Статус оплаты |
| completed | orders[i] | boolean* | Статус выполнения |
| business_entity_type | orders[i] | string* | Тип заказчика в реквизитах |
| advanced | orders[i] | object | Значение |
| domain | orders[i].advanced | string | Домен |
| use_csr | orders[i].advanced | boolean | Признак использования пользовательского CSR |
| tariff_id | orders[i].advanced | integer | Тариф (наименование SSL-сертификата) |
| valid_from_date | orders[i].advanced | string | Дата начала действия сертификата |
| valid_till_date | orders[i].advanced | string | Дата окончания действия сертификата |
cURL запрос:
# Оригинальный пример запроса (сохранён):
json
// GET https://api.hb.by/v1/orders/ssl-certificates
Успешный ответ (200 OK):
json
{
"orders": [
{
"order_id": 99999,
"service_id": 60,
"number": "СФ-1222161",
"state": "NewOrder",
"order_datetime": "10.10.2025 20:31",
"complete_date": null,
"expiration_date": null,
"currency_id": 500,
"period_unit_type": "year",
"period_unit_count": "1",
"paid": false,
"completed": false,
"business_entity_type": "NaturalPerson",
"advanced": {
"domain": "mydomain.by",
"use_csr": false,
"tariff_id": 7027,
"valid_from_date": null,
"valid_till_date": null
}
},
...
]
}
Что означают поля в ответе:
- orders — список заказов; каждый элемент представляет отдельный заказ.
- order_id — уникальный идентификатор заказа.
- service_id — идентификатор услуги, по которой создан заказ.
- number — номер заказа.
- state — текущий статус услуги/заказа.
- order_datetime — дата и время оформления заказа.
- complete_date — дата выполнения заказа.
- expiration_date — дата истечения услуги/заказа.
- currency_id — идентификатор валюты, в которой выставлен счёт.
- period_unit_type — тип единицы периода оплаты.
- period_unit_count — количество единиц периода оплаты.
- paid — логическое значение: признак того, что заказ оплачен.
- completed — логическое значение: признак того, что заказ выполнен.
- business_entity_type — тип заказчика в реквизитах.
- advanced — объект с дополнительными значениями, связанными с заказом.
- domain — доменное имя (внутри блока advanced), к которому относится заказ.
- use_csr — признак использования пользовательского CSR.
- tariff_id — идентификатор тарифа или наименование SSL-сертификата.
- valid_from_date — дата начала действия сертификата.
- valid_till_date — дата окончания действия сертификата.
Метод запроса: POST
Адрес: https://api.hb.by/v1/orders/domains
ТИПИЧНЫЕ СЦЕНАРИИ РАБОТЫ С ДОМЕНАМИ
Сценарий: Проверка и регистрация домена
- Получите список доступных зон и тарифов:
GET /v1/orders/domains/zones?currency_id={id} – возьмите actual_registration_tariff_id, min_period, max_period.
- Проверьте доступность домена:
POST /v1/domains/check.
- Соберите WHOIS/паспортные данные (если требуется) – заполните
natural_person_requisites или juridical_person_requisites.
- Создайте заказ:
POST /v1/orders/domains с domain, tariff_id, period_unit_count, currency_id и реквизитами.
- Получите
invoice_id и invoice_url для оплаты.
Получить заказы доменов #
Метод запроса: GET
Адрес: https://api.hb.by/v1/orders/domains
Параметры запроса:
| Имя | Вложенность | Тип | Описание |
|---|
| order_number | query | string | Номер заказа |
| order_id | query | integer | ID заказа |
| from_order_date | query | string | С даты оформления |
| to_order_date | query | string | По дату оформления |
Тело ответа:
| Имя | Вложенность | Тип | Описание |
|---|
| orders | body | array«object*» | Список заказов |
| order_id | orders[i] | integer* | ID заказа |
| service_id | orders[i] | integer* | ID услуги |
| number | orders[i] | string* | Номер заказа |
| state | orders[i] | string* | Статус услуги |
| order_datetime | orders[i] | string* | Дата оформления заказа |
| complete_date | orders[i] | string | Дата выполнения заказа |
| expiration_date | orders[i] | string | Дата истечения заказа |
| currency_id | orders[i] | integer* | ID валюты |
| period_unit_type | orders[i] | string* | Тип периода оплаты |
| period_unit_count | orders[i] | integer* | Количество единиц периода оплаты |
| paid | orders[i] | boolean* | Статус оплаты |
| completed | orders[i] | boolean* | Статус выполнения |
| business_entity_type | orders[i] | string* | Тип заказчика в реквизитах |
| advanced | orders[i] | object | Значение |
| domain | orders[i].advanced | string | Домен |
| registered | orders[i].advanced | boolean | Признак регистрации |
| renewed | orders[i].advanced | boolean | Признак продления |
| registration_tariff_id | orders[i].advanced | integer | Привязанный тариф регистрации |
| renew_tariff_id | orders[i].advanced | integer | Привязанный тариф продления |
cURL запрос:
# Оригинальный пример запроса (сохранён):
json
// GET https://api.hb.by/v1/orders/domains
Успешный ответ (200 OK):
json
{
"orders": [
{
"order_id": 99999,
"service_id": 30,
"number": "СФ-1222161",
"state": "NewOrder",
"order_datetime": "10.10.2025 20:31",
"complete_date": null,
"expiration_date": null,
"currency_id": 500,
"period_unit_type": "year",
"period_unit_count": "1",
"paid": false,
"completed": false,
"business_entity_type": "NaturalPerson",
"advanced": {
"domain": "mydomain.by",
"registered": false,
"renewed": false,
"registration_tariff_id": 2000,
"renew_tariff_id": 2001
}
},
...
]
}
Что означают поля в ответе:
- orders — список найденных заказов доменов.
- order_id — уникальный идентификатор заказа в системе.
- service_id — идентификатор услуги, к которой относится заказ.
- number — номер/код заказа.
- state — текущий статус заказа/услуги.
- order_datetime — дата и время оформления заказа.
- complete_date — дата выполнения заказа.
- expiration_date — дата истечения/окончания действия заказа/услуги.
- currency_id — идентификатор валюты, в которой выставлен счёт/оплата.
- period_unit_type — единица периода оплаты.
- period_unit_count — количество единиц периода оплаты.
- paid — признак оплаты: true если заказ оплачен, false — если нет.
- completed — признак завершения/выполнения заказа: true — выполнен, false — не выполнен.
- business_entity_type — тип заказчика в реквизитах.
- advanced — дополнительный объект с расширенными данными.
- domain — доменное имя, к которому относится заказ.
- registered — признак, что домен зарегистрирован (true) или ещё не зарегистрирован (false).
- renewed — признак продления домена.
- registration_tariff_id — идентификатор тарифа, использованного при регистрации домена.
- renew_tariff_id — идентификатор тарифа, использованного при продлении домена.