# Создание инвойса и проведения платежа \[deprecated]

#### Документация: Работа с API для создания инвойса и проведения платежа

***

#### **1. Общая информация**

API предоставляет возможность управлять инвойсами: создавать новые инвойсы и проводить платежи по ним.

**Базовый URL:**\
`https://api.client.nbcgate.tech`

***

#### **2. Этапы работы**

**Шаг 1. Создание инвойса**

Метод используется для создания нового инвойса с указанием суммы, валюты, продукта и других данных.

**URL запроса:**\
`POST /invoice/create`

**Пример запроса (cURL):**

```bash
curl -X 'POST' \
  'https://api.client.nbcgate.tech/invoice/create' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "amount": 100,
  "coin_id": 1,
  "id": 12345,
  "product_id": 67890
}'
```

**Описание параметров тела запроса:**

| Поле         | Тип    | Описание                                 | Пример значения |
| ------------ | ------ | ---------------------------------------- | --------------- |
| `amount`     | number | Сумма инвойса                            | 100             |
| `coin_id`    | number | Идентификатор валюты (например, 1 — USD) | 1               |
| `id`         | number | Уникальный идентификатор pay\_link       | 12345           |
| `product_id` | number | Идентификатор продукта                   | 67890           |

**Пример ответа (JSON):**

```json
{
  "success": true,
  "invoice_id": 12345,
  "message": "Invoice created successfully"
}
```

**Описание ответа:**

* `success` (boolean): Статус операции.
* `invoice_id` (number): Уникальный идентификатор созданного инвойса.
* `message` (string): Описание результата.

***

**Шаг 2. Проведение платежа по инвойсу**

Метод используется для оплаты ранее созданного инвойса.

**URL запроса:**\
`POST /invoice/pay`

Обновим документацию для метода **`/invoice/pay`** с учетом нового формата ответа.

***

#### **Метод: Проведение платежа по инвойсу**

Метод используется для оплаты ранее созданного инвойса. В ответе возвращается информация о платеже, включая адрес для перевода средств, сумму, комиссию и дополнительные данные.

***

**URL запроса:**

`POST /invoice/pay`

***

**Пример запроса (cURL):**

```bash
curl -X 'POST' \
  'https://api.client.nbcgate.tech/invoice/pay' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "idInvoice": 12345
}'
```

***

#### **Тело запроса:**

| Поле        | Тип    | Обязательное | Описание                         | Пример значения |
| ----------- | ------ | ------------ | -------------------------------- | --------------- |
| `idInvoice` | number | Да           | Уникальный идентификатор инвойса | 12345           |

***

**Пример успешного ответа:**

```json
{
  "address": "TRDkc3pmPnvYZ2UiDsmModEitJp7akTVyy",
  "amount": "444.274652",
  "rate": 0.116482,
  "name": "Tron Shasta Testnet",
  "code": "TRX"
}
```

***

#### **Описание полей ответа:**

| Поле                       | Тип     | Описание                                                            |
| -------------------------- | ------- | ------------------------------------------------------------------- |
| `address`                  | string  | Адрес кошелька, на который необходимо перевести средства.           |
| `amount`                   | string  | Сумма перевода в указанной криптовалюте.                            |
| `rate`                     | float64 | Обменный курс валюты относительно базовой валюты инвойса.           |
| `name`                     | string  | Название сети криптовалюты (например, Tron Shasta Testnet).         |
| `code`                     | string  | Код криптовалюты, в которой осуществляется перевод (например, TRX). |
| `transferCommissionWeis`\* | float64 | (Если доступно) Размер комиссии за перевод в единицах криптовалюты. |

> \*Поле `transferCommissionWeis` может быть включено в зависимости от настроек API или контекста запроса.

***

**Пример использования ответа:**

Получив ответ, вы можете:

1. Отправить сумму `amount` на адрес `address` через выбранный криптовалютный кошелек.
2. Убедиться, что используется правильный код валюты (`code`) и сеть (`name`).

***

#### **Обработка ошибок:**

| Код ответа | Описание                  | Возможные причины                   |
| ---------- | ------------------------- | ----------------------------------- |
| 400        | Неверный запрос           | Отсутствие обязательного параметра. |
| 404        | Инвойс не найден          | Указан несуществующий `idInvoice`.  |
| 500        | Внутренняя ошибка сервера | Проблемы на стороне сервера.        |

***

#### **3. Полный пример выполнения двух запросов**

1. Создайте инвойс:

   ```bash
   curl -X 'POST' \
     'https://api.client.nbcgate.tech/invoice/create' \
     -H 'accept: application/json' \
     -H 'Content-Type: application/json' \
     -d '{
     "amount": 100,
     "coin_id": 1,
     "id": 12345,
     "product_id": 67890
   }'
   ```

   **Результат:**

   ```json
   {
     "success": true,
     "invoice_id": 12345,
     "message": "Invoice created successfully"
   }
   ```
2. Проведите платеж:

   ```bash
   curl -X 'POST' \
     'https://api.client.nbcgate.tech/invoice/pay' \
     -H 'accept: application/json' \
     -H 'Content-Type: application/json' \
     -d '{
     "idInvoice": 12345
   }'
   ```

   **Результат:**

   ```json
   {
     "success": true,
     "message": "Payment processed successfully"
   }
   ```

***

#### **4. Ошибки и их обработка**

При работе с API возможно получение следующих ошибок:

| Код ответа | Описание                  | Возможные причины                   |
| ---------- | ------------------------- | ----------------------------------- |
| 400        | Неверный запрос           | Отсутствие обязательных параметров. |
| 404        | Инвойс не найден          | Указан несуществующий `idInvoice`.  |
| 500        | Внутренняя ошибка сервера | Проблемы на стороне сервера.        |
