# Создание интента и проведения платежа \[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`.


---

# 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://integration.nbcgate.com/sozdanie-intenta-i-provedeniya-platezha-new-oplata-fiatom.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.
