> For the complete documentation index, see [llms.txt](https://integration.nbcgate.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://integration.nbcgate.com/sozdanie-intenta-i-provedeniya-platezha-new-oplata-fiatom.md).

# Создание интента и проведения платежа \[new] - оплата фиатом

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

API позволяет создать intent для оплаты через Transak и получить сведения о ранее созданном PaymentIntent по идентификатору.

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

Авторизация: для всех запросов передавайте интеграционный ключ:

* `X-API-Key: <ваш_ключ>`

Заголовки:

* `Content-Type: application/json`
* `Accept: application/json` (рекомендуется)

Префикс маршрутов: все методы ниже — с префиксом `/api/intent/transak/...`.

***

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

#### Шаг 1. Создание intent (Transak)

Метод и URL: `POST /api/intent/transak/create`

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

```bash
curl -X POST 'https://external.api.nbcgate.tech/api/intent/transak/create' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: <ваш_ключ>' \
  -d '{
    "id": 12345,
    "amount": 10000
  }'
```

Тело запроса (`IntentCreateReq`):

| Поле     | Тип    | Обязательное | Описание                                                |
| -------- | ------ | ------------ | ------------------------------------------------------- |
| `id`     | number | да           | Идентификатор pay link                                  |
| `amount` | number | да           | Сумма (целое число; единицы задаются логикой CryptoPay) |

Успешный ответ (200): объект `TransakParams`.

Пример (фрагмент):

```json
{
  "apiKey": "...",
  "cryptoCurrencyCode": "...",
  "defaultPaymentMethod": "...",
  "disableWalletAddressForm": false,
  "fiatAmount": 100.5,
  "fiatCurrency": "USD",
  "network": "...",
  "partnerOrderId": "...",
  "walletAddress": "...",
  "addr": "...",
  "url": "...",
  "isAutoFillUserData": false
}
```

Основные поля ответа (`TransakParams`):

| Поле                       | Тип     | Описание                              |
| -------------------------- | ------- | ------------------------------------- |
| `apiKey`                   | string  | Параметр для Transak                  |
| `cryptoCurrencyCode`       | string  | Код криптовалюты                      |
| `defaultPaymentMethod`     | string  | Способ оплаты по умолчанию            |
| `disableWalletAddressForm` | boolean | Отключение формы адреса кошелька      |
| `fiatAmount`               | number  | Сумма в фиате                         |
| `fiatCurrency`             | string  | Код фиатной валюты                    |
| `network`                  | string  | Сеть                                  |
| `partnerOrderId`           | string  | Идентификатор заказа партнёра         |
| `walletAddress`            | string  | Адрес кошелька                        |
| `addr`                     | string  | Доп. адрес/параметр при необходимости |
| `url`                      | string  | URL виджета/редиректа Transak         |
| `isAutoFillUserData`       | boolean | Автозаполнение данных пользователя    |

***

#### Шаг 2. Получение сведений о PaymentIntent (Transak)

Метод и URL: `POST /api/intent/transak/retrieve`

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

```bash
curl -X POST 'https://external.api.nbcgate.tech/api/intent/transak/retrieve' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: <ваш_ключ>' \
  -d '{
    "id": "pi_xxx_or_transak_order_id"
  }'
```

Тело запроса (`IntentRetrieveReq`):

| Поле | Тип    | Обязательное | Описание                                                      |
| ---- | ------ | ------------ | ------------------------------------------------------------- |
| `id` | string | да           | Идентификатор intent/заказа (формат задаёт CryptoPay/Transak) |

Успешный ответ (200): объект `TransakInfoParams`: блоки `meta` и `data` (подробный состав ответа Transak).

Упрощённый пример:

```json
{
  "meta": {
    "orderId": "..."
  },
  "data": {
    "_id": "...",
    "status": "...",
    "fiatCurrency": "USD",
    "cryptoCurrency": "...",
    "fiatAmount": 0,
    "cryptoAmount": 0,
    "walletAddress": "...",
    "network": "...",
    "transactionHash": "...",
    "transactionLink": "..."
  }
}
```

***

### 3. Полный сценарий

1. `POST /api/intent/transak/create` → `TransakParams` (в т.ч. `url` и параметры Transak).
2. `POST /api/intent/transak/retrieve` с `id` → статус и детали заказа в `TransakInfoParams`.

***

### 4. Ошибки

| HTTP | Когда                                               |
| ---- | --------------------------------------------------- |
| 400  | Некорректный JSON или невалидные поля               |
| 401  | Нет или неверный `X-API-Key`                        |
| 500  | Ошибка при обращении к CryptoPay или разборе ответа |

Формат тела ошибки: `statusCode`, `message`, при необходимости массив `errors` с полем `code`.
