# Тестирование API-запросов в Postman

В этой статье покажем, как подготовить и отправить тестовый API-запрос в Direct API через Postman.

### Что понадобится

Перед началом работы подготовьте:

* доступ в личный кабинет [i-digital Direct](https://direct.i-dgtl.ru/channels-management);
* API-ключ нужного типа, подробнее [как создать API-ключ](https://api.docs.direct.i-dgtl.ru/authorization#api-keys);
* [Postman](https://www.postman.com/downloads/) или его [веб-версию](https://web.postman.co/);
* описание метода, который вы хотите проверить.

### Как работает авторизация

Direct API использует `Bearer`-авторизацию.

В запросе нужно передавать заголовок:

```http
Authorization: Bearer {API_KEY}
```

Где `{API_KEY}` — ключ, созданный в личном кабинете.

Дополнительно для JSON-запросов обычно используется заголовок:

```http
Content-Type: application/json
```

Базовый адрес API:

```
https://direct.i-dgtl.ru/api/v1
```

<figure><img src="/files/Z7Li6QHtN9NJ1BTaYXS3" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}

### Важные особенности Direct API

* Direct API предназначен для вызовов с защищенной серверной части;
* при попытке обращаться к API напрямую из браузера возникнет `CORS`-ошибка;
* при необходимости доступ по API-ключу можно ограничить по IP-адресам через поддержку <support@i-dgtl.ru>;
  {% endhint %}

### Установка и запуск Postman

Для работы с запросами откройте приложение Postman или его веб-версию.

После запуска:

1. Создайте новый запрос.
2. Выберите HTTP-метод, указанный в описании нужного метода API: `GET`, `POST` и другие.
3. Укажите URL запроса.
4. При необходимости добавьте заголовки и тело запроса.

### Проверка соединения

Перед работой с авторизованными методами удобно проверить доступность сервиса через тестовый метод:

```http
GET https://direct.i-dgtl.ru/api/v1/ping
```

Для этого метода авторизация не требуется.

<figure><img src="/files/Dgw57nAtHJNdD4pkFJJ8" alt=""><figcaption></figcaption></figure>

Если сервис доступен, в ответе вернется:

```
PONG
```

Такой запрос помогает убедиться, что соединение с API установлено корректно.

### Пример авторизованного запроса

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

```http
GET https://direct.i-dgtl.ru/api/v1/balance
Authorization: Bearer {API_KEY}
```

В Postman для этого:

1. Выберите метод `GET`.
2. Укажите URL `https://direct.i-dgtl.ru/api/v1/balance`.
3. На вкладке `Headers` добавьте заголовок `Authorization` со значением `Bearer {API_KEY}`.
4. Нажмите `Send`.

<figure><img src="/files/aUtxzR4TCmjEoMPxSinC" alt=""><figcaption></figcaption></figure>

При успешном выполнении в ответе вернется объект с балансом аккаунта, например:

```json
{
  "RUB": 1200.00
}
```

### Как отправить POST-запрос

Если нужный метод работает по `POST`, настройка в Postman будет такой:

1. Выберите метод `POST`.
2. Укажите URL из документации нужного метода.
3. Добавьте заголовок `Authorization: Bearer {API_KEY}`.
4. Добавьте заголовок `Content-Type: application/json`.
5. Перейдите на вкладку `Body`.
6. Выберите режим `raw`.
7. Убедитесь, что выбран формат `JSON`.
8. Вставьте JSON-тело запроса из описания нужного метода.

Общий пример структуры:

```json
{
  "param1": "value",
  "param2": "value"
}
```

<figure><img src="/files/JThuDi8m0ERtOZjGISn7" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
Набор параметров зависит от конкретного метода: отправка сообщения, работа с шаблонами, получение данных по сообщениям, верификация телефона и другие сценарии используют разные поля запроса.
{% endhint %}

### Частые ошибки

{% tabs %}
{% tab title="401" %}

* API-ключ передан неверно;
* ключ был деактивирован;
* ключ был перевыпущен, и старое значение больше не работает;
* запрос отправлен с IP-адреса, который не входит в разрешенный список.

```
{
    "error": {
        "code": 4010,
        "msg": "Not Authenticated"
    }
}

=============================================
{
    "error": {
        "code": 4012,
        "msg": "Bad credentials"
    }
}

=============================================
{
  "error": {
    "code": 4013,
    "msg": "IP not allowed"
  }
}
```

{% endtab %}

{% tab title="403" %}
Использование неподходящего неподходящего типа (токена).

```
{
    "error": {
        "code": 4030,
        "msg": "Access Denied"
    }
}
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}

### Рекомендации по работе с API

* Используйте отдельные API-ключи под разные задачи и сценарии.
* Храните API-ключи только на защищенной серверной стороне.
* Перед тестированием методов с авторизацией сначала проверьте соединение через `ping`.
* Сверяйте тип API-ключа с тем разделом API, который вы используете.
* При копировании JSON внимательно проверяйте синтаксис: лишняя запятая, кавычка или неправильный тип поля приведут к ошибке запроса.
  {% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://api.docs.direct.i-dgtl.ru/testirovanie-api-zaprosov-v-postman.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
