Skip to content

Быстрый старт ​

Получить доступ ​

Попросите оператора выдать URL API, тестовый ключ, режим клиентов (managed или aggregate), список разрешённых зон и sandbox-данные реестра. Для live дополнительно согласуйте валюту, тарифы, способ расчётов и пополнение оптового баланса. Исходящий IP вашего сервера должен входить в allowlist ключа, если она настроена.

Ключ создаётся оператором и показывается целиком только при выдаче или ротации. Храните его в серверном secret storage. Не помещайте ключ в браузер, мобильное приложение, Git, URL или журнал запросов.

bash
export RESELLER_API_BASE='https://api.b.websoft.kz/api/reseller/v1'
# Значение получить у оператора; строка ниже не является действующим ключом.
export RESELLER_API_TOKEN='rsl_test_REPLACE_KEY.REPLACE_SECRET'

curl --fail-with-body --silent --show-error \
  "$RESELLER_API_BASE/context" \
  -H "Authorization: Bearer $RESELLER_API_TOKEN" \
  -H 'Accept: application/json'

В исходнике руководства URL задан шаблоном, который портал заменяет значением DOCS_API_URL при сборке/запуске. Оператор должен настроить этот адрес для нужного окружения; перед отправкой ключа проверьте доверенный origin опубликованного примера.

Сверьте data.credential.environment, scopes, rate_limit_per_minute и data.provider.customer_mode. Не продолжайте тестовые записи, если вернулся live. 401 означает проблему аутентификации; 403 может означать запрещённый IP, состояние реселлера, план или недостаточные права; 404 также возможен, когда API отключён оператором. Подробности в обработке ошибок.

Необходимые права ​

СценарийScopes
Каталог и проверка доменаcatalog.read, domains.read
Клиенты и контактыcustomers.read, customers.write, contacts.read, contacts.write
Регистрацияquotes.create, orders.create, domains.register, orders.read, domains.read
Чтение услугservices.read
Продлениеquotes.create, domains.renew, domains.read
Переносquotes.create, domains.transfer, domains.read
Восстановлениеquotes.create, domains.restore, domains.read
NS, контакты, блокировки, приватность, gluedomains.manage, domains.read
Код переносаdomains.auth-code, domains.read для чтения результата
Удалениеdomains.delete, domains.read
Подтверждение владельцаdomains.verify
Уведомленияwebhooks.read, webhooks.manage
Баланс и движения, только livebalance.read, billing.read
Обращения, только livetickets.read, tickets.write
Заказ хостингаquotes.create, orders.create, hosting.order

Для включения автопродления нужны одновременно domains.manage и domains.renew; для выключения достаточно domains.manage. Scopes не заменяют поддержку операции регистратором.

Первый запрос с телом ​

Даже проверка доступности использует POST и требует идемпотентный ключ. Пример ниже проверяет один домен, не регистрирует его.

bash
CHECK_KEY="$(node -e 'console.log(crypto.randomUUID())')"
curl --fail-with-body --silent --show-error \
  "$RESELLER_API_BASE/domains/check" \
  -H "Authorization: Bearer $RESELLER_API_TOKEN" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -H "Idempotency-Key: $CHECK_KEY" \
  --data-raw '{"domain":"example.kz"}'

Результат проверки не резервирует имя и может измениться до регистрации. Для новой проверки создаётся новый ключ; для повтора потерянного ответа прежней проверки сохраняются старый ключ и те же байты тела. Не генерируйте ключ внутри автоматической повторной попытки.

Порядок подключения ​

  1. Получить контекст и убедиться в тестовом окружении.
  2. Прочитать каталог, выбрать доступную зону и период.
  3. Создать клиента, если используется managed; в aggregate клиент назначен оператором.
  4. Создать контакт и сохранить его UUID.
  5. Проверить имя, получить quote, создать заказ.
  6. Дождаться результата регистрации, затем проверить чтение, NS и продление в sandbox.
  7. Подключить подписанные webhooks и резервную периодическую сверку.
  8. Выполнить приёмочные проверки, затем получить отдельный live-ключ.

Тестовое окружение не является офлайн-симулятором: оно может обращаться к тестовому серверу регистратора. Нужны его действительные тестовые контакты и разрешённые домены. Тестовые UUID и ключи не переносятся в live. Баланс, ledger и tickets в test запрещены.