EGN Pay

EGN Pay — единый платёжный сервис экосистемы EGN. Ваш сервис создаёт платёж одним HTTP-запросом, получает ссылку https://pay.egnetwork.ru/p/pay_… и отправляет на неё пользователя. На странице оплаты пользователь видит сумму и QR-код СБП (на телефоне — кнопку «Оплатить в приложении банка»), при необходимости — кнопку оплаты картой. После оплаты ваш сервис получает подписанный вебхук, а пользователь возвращается на return_url.

Ключи терминала Т-Банка, подписи запросов, статусы и повторы уведомлений живут только здесь — в сервисах их больше нет.

Как это работает

Ваш сервис                    EGN Pay                          Т-Банк / НСПК
    │  POST /api/v1/payments     │                                   │
    │ ─────────────────────────▶ │  Init + GetQr                     │
    │  { payment_url, id }       │ ────────────────────────────────▶ │
    │ ◀───────────────────────── │                                   │
    │                            │                                   │
    │  302 → payment_url         │   пользователь платит по QR (СБП) │
    │ ──────────── пользователь ─▶ ───────────────────────────────▶  │
    │                            │  уведомление CONFIRMED            │
    │                            │ ◀──────────────────────────────── │
    │  webhook payment.succeeded │                                   │
    │ ◀───────────────────────── │                                   │
    │  пользователь → return_url │                                   │

Быстрый старт

1. Получите ключи

Администратор создаёт сервис в админке и выдаёт вашему отделу доступ. Войдите в админку через EGN ID, откройте сервис и выпустите ключи:

  • egn_test_… — тестовый ключ (деньги не списываются),
  • egn_live_… — боевой ключ,
  • whsec_… — секрет для проверки подписи вебхуков.

2. Создайте платёж

curl https://pay.egnetwork.ru/api/v1/payments \
  -H "Authorization: Bearer egn_test_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 49900,
    "order_id": "order-1042",
    "description": "Подписка Pro на 1 месяц",
    "return_url": "https://example.egnetwork.ru/billing/done",
    "customer": { "email": "user@example.com" },
    "metadata": { "user_id": "u_123" }
  }'

amount — в копейках: 49900 = 499,00 ₽.

Ответ (201 Created):

{
  "id": "pay_8fK2mQ1xZbY7cV3nT0aR",
  "object": "payment",
  "livemode": false,
  "status": "pending",
  "amount": 49900,
  "payment_url": "https://pay.egnetwork.ru/p/pay_8fK2mQ1xZbY7cV3nT0aR",
  "order_id": "order-1042",
  "expires_at": "2026-10-27T13:00:00.000Z"
}

3. Отправьте пользователя на payment_url

Сделайте редирект (HTTP 302) или откройте ссылку в WebApp/боте.

4. Примите вебхук

На webhook_url сервиса придёт POST с событием payment.succeeded. Проверьте подпись X-EGN-Signature (см. Вебхуки) и выдайте пользователю товар. Выдавайте товар только по вебхуку или по GET /api/v1/payments/{id}, а не по факту возврата на return_url — URL возврата может открыть кто угодно.

Разделы

Markdown-версия этой страницы: /docs/index.md