Авторизация

Все методы API требуют HTTP Basic Authentication с учётными данными агента в каждом запросе.

Подключение

Получите в службе поддержки:
  • Учётную запись агента с логином и паролем.
  • Назначенные агенту имена мерчантов.
  • Доступ к нужной среде.
Логин агента и merchantUserName — разные значения. Для авторизации используйте логин и пароль агента, а назначенный merchantUserName передавайте в теле запроса на создание платежа. Пароль мерчанта не нужен.

Заголовок Authorization

Передавайте Authorization: Basic и далее Base64-кодировку строки username:password в UTF-8.
cURL формирует заголовок с помощью --user. Настройте на своём сервере следующие переменные окружения:
ПеременнаяЗначение
RB_API_BASE_URLhttps://rb.d.doma.ai для разработки или https://rb.doma.ai для production
AGENT_USERNAMEЛогин агента, полученный при подключении
AGENT_PASSWORDПароль агента, полученный при подключении
Внимание: Не вводите пароль открытым текстом в команду оболочки, в том числе при присваивании переменной: он может сохраниться в истории команд. Заполняйте AGENT_PASSWORD через скрытый ввод или менеджер секретов. При ручном вызове можно убрать :${AGENT_PASSWORD} из --user, чтобы cURL сам запросил пароль. Переменная сохраняет историю команд без самого пароля, но не защищает от просмотра аргументов процесса или трассировки оболочки. Не включайте трассировку при работе с учётными данными.
Примеры в этом разделе используют эти переменные. Замените примеры реквизитов платежа и мерчанта данными, согласованными при подключении. Храните учётные данные в защищённой конфигурации сервера, а не в репозитории, коде браузера, URL или журналах. Не передавайте пароль и заголовок Authorization в службу поддержки.

Пример запроса

После создания платежа замените UUID в примере на полученный id:
bash
curl --request GET \ --url "${RB_API_BASE_URL%/}/api/agent-payments/d325725f-6c73-4dab-910f-88e3274b66d7" \ --user "${AGENT_USERNAME}:${AGENT_PASSWORD}" \ --header 'Accept: application/json'

Ошибки авторизации

Отсутствующие или некорректные учётные данные, неверный пароль, неизвестный, отключённый или удалённый агент возвращают HTTP 401 с extensions.code: UNAUTHENTICATED и extensions.type: AUTHORIZATION_REQUIRED. Ответ намеренно не различает эти случаи.
json
{ "errors": [ { "message": "Agent authentication required", "extensions": { "code": "UNAUTHENTICATED", "type": "AUTHORIZATION_REQUIRED" } } ] }
Ошибки всех методов используют этот формат с массивом errors. Проверяйте HTTP-статус и extensions.code для определения класса ошибки, а extensions.type — конкретной причины. Не полагайтесь на точный текст message. Ответы могут содержать дополнительные идентификаторы ошибки и запроса; сохраняйте их для диагностики.