> For the complete documentation index, see [llms.txt](https://docs.newlandsgate.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.newlandsgate.com/primery/primer-integracii.md).

# Пример интеграции

Для создания заказа требуется сформировать цифровую подпись по алгоритму HMAC-SHA256, используя временную метку, тело запроса и необходимые заголовки аутентификации.

#### **Формирование цифровой подписи**

```python
def generate_signature(secret: str, payload: str) -> tuple[str, str]:
    ts = str(int(time.time()))
    string_to_sign = ts + payload
    signature = hmac.new(secret.encode(), string_to_sign.encode(), hashlib.sha256).hexdigest()
    return signature, ts
```

#### Описание

1. **Timestamp** - текущее время в секундах (UNIX timestamp), преобразованное в строку
2. **Строка для подписи** - правила формирования:

| Тип запроса      | Content-Type        | Формат строки            | Пример                                       |
| ---------------- | ------------------- | ------------------------ | -------------------------------------------- |
| POST с JSON body | application/json    | timestamp + JSON payload | 1634567890{"amount":"1000","currency":"RUB"} |
| POST с FormData  | multipart/form-data | timestamp + path         | 1634567890/v1/disputes                       |
| GET запросы      | -                   | timestamp + ""           | 1634567890                                   |

3. **Signature** - HMAC-SHA256 от строки с использованием секретного ключа.

#### **Обязательные поля**:

| Параметр            | Описание                                                                                        | Пример                                 |
| ------------------- | ----------------------------------------------------------------------------------------------- | -------------------------------------- |
| amount              | Сумма в валюте                                                                                  | 1000.50                                |
| requisite\_type     | Тип реквизита                                                                                   | card                                   |
| *idempotency\_key*  | <p><em>Уникальный идентификатор запроса (формат UUID)</em><br><br><em>Техническое поле</em></p> | *22da768b-0e56-4245-81c3-e5008e1a7b54* |
| customer\_requisite | Реквизит получателя                                                                             | 2200123456789012                       |

*Примечание: для некоторых типов перевода в обязательные поля может попасть страна*

Пример формирования idempotency\_key:

```python
import uuid
idempotency_key = str(uuid.uuid4())
print(idempotency_key)
```

idempotency\_key действителен 15 минут с момента создания сделки.

#### Опциональные поля:

* `currency` — валюта (по умолчанию RUB).
* `merchant_order_id` — ваш внутренний ID выплаты.
* `customer_name` — имя получателя.
* `customer_requisite_card` — телефон и последние 4 цифры карты (например `"79999999999 / 2442"`, макс 100 символов).
* `bank_code` — код банка для фильтрации (например `"Sber"`, `"Tinkoff"`). Для `mobileMoney` обязателен: код оператора (Orange/Wave/MTN/Moov).
