Documentation Index
Fetch the complete documentation index at: https://docs.loveandpay.io/llms.txt
Use this file to discover all available pages before exploring further.
Главное
В этом руководстве — как создать вебхук в UI, какие события доступны, как проверять HMAC-подпись и обрабатывать retry-логику.Создание вебхука
Откройте раздел в кабинете
Нажмите «Создать вебхук»
Заполните форму:
- URL — куда отправлять POST. Должен быть HTTPS в production.
- События — отметьте нужные галочки (см. список ниже).
- Описание (опционально) — для своих заметок.
Скопируйте секрет
После создания система покажет Webhook Secret — уникальный ключ для этого вебхука. Сохраните его — он нужен для проверки HMAC-подписи входящих запросов.
Секрет можно посмотреть позже в карточке вебхука — он не одноразовый, в отличие от API-секрета.
Доступные события
| Событие | Когда срабатывает |
|---|---|
invoice.paid | Клиент оплатил счёт |
invoice.expired | Истёк час, счёт стал EXPIRED |
invoice.cancelled | Партнёр отменил счёт |
invoice.refunded | Выполнен возврат (полный или частичный) |
kyc.passed | Клиент успешно прошёл KYC |
kyc.rejected | KYC отклонён (failed-verification) |
kyc.manual_review | KYC отправлен на ручную проверку |
Формат payload
POST на ваш URL с JSON-телом и HMAC-заголовком:metadata всегда возвращается из того, что вы передали при создании счёта.
Проверка HMAC-подписи (обязательно!)
Перед обработкой всегда проверяйтеX-LNP-Signature — иначе любой может вам слать фейковые “оплачено”. Подпись = HMAC-SHA256(webhook_secret, timestamp + raw_body).
Доставка и retry
Наш бэк отправляет вебхук сразу при событии. Таймаут — 10 секунд. Если получили не 2xx или request упал, делаем повторы по экспоненте:| Попытка | Через |
|---|---|
| 1 | сразу |
| 2 | +1 минуту |
| 3 | +5 минут |
| 4 | +15 минут |
| 5 | +1 час |
| 6 | +4 часа |
failed, но можно вручную перепослать через «История доставки» в карточке вебхука.
Best practices
- Отвечайте 200 OK немедленно. Обработку (письма клиенту, обновление БД) делайте асинхронно в очереди. Если ответите долго — у вас таймаут, у нас ретрай.
- Только HTTPS в production. HTTP вебхуки технически работают, но Cloudflare/Mintlify-провайдеры могут блокировать.
- Логируйте
X-LNP-Deliveryво всех своих логах — пригодится при разборе спорных случаев с поддержкой. - Проверяйте signature ВСЕГДА, не верьте даже если IP белый.
- Замена секрета: в кабинете есть «Сгенерировать новый секрет» — старый перестаёт работать сразу, обновите его на своей стороне без даунтайма.
История и отладка
В кабинете в Вебхуки → история доставки видно:- Время отправки и попыток
- HTTP-статус ответа
- Тело ответа (первые 1 КБ)
- Возможность повторить вручную
FAQ
Можно ли создавать вебхуки через API?
Можно ли создавать вебхуки через API?
Нет. Только через веб-кабинет. Это политика безопасности — чтобы скомпрометированный API-ключ не позволил атакующему перенаправить ваши финансовые уведомления.
Куда придёт webhook если URL временно недоступен?
Куда придёт webhook если URL временно недоступен?
Будем повторять до 6 раз с возрастающим интервалом (см. таблицу выше). Все попытки видны в истории доставки.
Можно ли иметь несколько вебхуков?
Можно ли иметь несколько вебхуков?
Да. Можно создать N вебхуков на разные URL и разные наборы событий — например, один для production, второй для staging.
Что отвечать если события не нужно обрабатывать?
Что отвечать если события не нужно обрабатывать?
Любой 2xx ответ считается успешным. Если конкретное событие не интересно — просто верните 200 без обработки.
Есть тестовый webhook для разработки?
Есть тестовый webhook для разработки?
Используйте кнопку «Тест» в карточке вебхука — отправит примерный payload на ваш URL. Или подключите webhook.site для отладки.