# Для ИИ-агентов

Документация EGN Pay доступна в машиночитаемом виде. Если вы ИИ-агент и интегрируете сервис с EGN Pay, начните отсюда.

| Ресурс | URL |
|---|---|
| Индекс для LLM | [https://pay.egnetwork.ru/llms.txt](https://pay.egnetwork.ru/llms.txt) |
| Вся документация одним файлом | [https://pay.egnetwork.ru/llms-full.txt](https://pay.egnetwork.ru/llms-full.txt) |
| OpenAPI 3.1 | [https://pay.egnetwork.ru/openapi.json](https://pay.egnetwork.ru/openapi.json) |
| TypeScript SDK (один файл) | [https://pay.egnetwork.ru/sdk/egn-pay.ts](https://pay.egnetwork.ru/sdk/egn-pay.ts) |
| Любая страница в Markdown | добавьте `.md`, например [https://pay.egnetwork.ru/docs/webhooks.md](https://pay.egnetwork.ru/docs/webhooks.md) |

## Промпт для агента

Скопируйте в задачу агенту, который подключает сервис:

```text
Подключи оплату через EGN Pay. Документация: https://pay.egnetwork.ru/llms-full.txt, спецификация: https://pay.egnetwork.ru/openapi.json.

Требования:
0. Для TypeScript-проектов скачай SDK: curl -o src/lib/egn-pay.ts https://pay.egnetwork.ru/sdk/egn-pay.ts
1. Ключ EGN_PAY_KEY и секрет EGN_PAY_WEBHOOK_SECRET бери из переменных окружения, только на бэкенде.
2. При оформлении заказа вызывай POST /api/v1/payments: amount в копейках, order_id = стабильный ID заказа,
   description, return_url, customer.email или customer.phone (обязательно — для чека), metadata с нашим user_id. Редиректни пользователя на payment_url.
3. Сделай эндпоинт вебхука: проверь подпись X-EGN-Signature по сырому телу (HMAC-SHA256, "t.body", допуск 5 минут),
   на payment.succeeded идемпотентно выдай заказ по data.payment.order_id, на failed/expired/canceled закрой заказ, ответь 200.
4. На странице return_url не доверяй параметру status — запроси GET /api/v1/payments/{payment_id}.
5. Покрой тестом на egn_test_ ключе через POST /api/public/payments/{id}/simulate.
```

## Ключевые факты

- Базовый URL API: `https://pay.egnetwork.ru/api/v1`
- Аутентификация: `Authorization: Bearer egn_live_…` / `egn_test_…`
- Суммы — целые числа в копейках, валюта RUB
- Идемпотентность — по `order_id` в пределах сервиса и режима
- Вебхуки: `X-EGN-Signature: t=…,v1=hex(HMAC_SHA256(secret, t + "." + body))`
- Статусы: `pending`, `succeeded`, `failed`, `expired`, `canceled`, `partially_refunded`, `refunded`
