Готово! Теперь ваше Lovable-приложение принимает платежи через Kaspi Pay.
Готовый промпт для Lovable
Скопируйте и вставьте в чат Lovable — он создаст Edge Functions и UI автоматически
Счета + вебхуки + realtime статусы
2 Edge Functions + таблица
Edge Function create-invoice — создание счетов
Edge Function apipay-webhook — приём вебхуков с HMAC верификацией
Supabase таблица invoices для хранения и realtime обновлений
UI: форма + таблица с живыми статусами
Создай полную интеграцию с платёжной системой ApiPay (Kaspi Pay) с вебхуками и realtime обновлениями.
1. SUPABASE ТАБЛИЦА «invoices»:
CREATE TABLE invoices (
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
apipay_id INTEGER UNIQUE,
amount DECIMAL(12,2) NOT NULL,
phone_number TEXT NOT NULL,
description TEXT,
status TEXT DEFAULT 'pending',
external_order_id TEXT,
paid_at TIMESTAMPTZ,
created_at TIMESTAMPTZ DEFAULT now()
);
ALTER TABLE invoices ENABLE ROW LEVEL SECURITY;
Включи Realtime для этой таблицы.
2. EDGE FUNCTION «create-invoice»:
Endpoint: POST https://bpapi.bazarbay.site/api/v1/invoices
Авторизация: заголовок X-API-Key со значением из Deno.env.get('APIPAY_API_KEY')
Content-Type: application/json
Тело запроса:
{
"amount": number,
"phone_number": string,
"description": string,
"external_order_id": string
}
Ответ API (200):
{
"id": number,
"amount": "15000.00",
"phone_number": "87001234567",
"status": "pending",
"description": "Заказ #1",
"external_order_id": "order_abc",
"created_at": "2026-01-15T10:00:00Z"
}
Edge Function должна:
- Принимать POST {amount, phone_number, description}
- Валидировать: amount 100–1000000, phone_number формат 8XXXXXXXXXX (11 цифр)
- Генерировать external_order_id (UUID)
- Отправлять запрос к API
- Сохранять счёт в таблицу invoices (apipay_id = id из ответа)
- Возвращать результат
- CORS заголовки
3. EDGE FUNCTION «apipay-webhook»:
Эта функция принимает POST-запросы от ApiPay при изменении статуса счёта.
Формат входящего запроса:
- Заголовок X-Webhook-Signature: HMAC-SHA256 подпись тела запроса
- Тело:
{
"event": "invoice.status_changed",
"invoice": {
"id": 42,
"external_order_id": "order_abc",
"status": "paid",
"amount": "15000.00",
"paid_at": "2026-01-15T10:30:00Z"
},
"source": "my-api-key"
}
Верификация подписи:
- Получить секрет: Deno.env.get('APIPAY_WEBHOOK_SECRET')
- Вычислить HMAC-SHA256 от raw body с этим секретом
- Сравнить с заголовком X-Webhook-Signature
- Если не совпадает — вернуть 401
Edge Function должна:
- Проверить подпись HMAC-SHA256
- Обновить запись в таблице invoices: SET status = invoice.status, paid_at = invoice.paid_at WHERE apipay_id = invoice.id
- Вернуть 200 OK
4. UI КОМПОНЕНТЫ:
Страница «Оплата»:
- Форма: Телефон (маска 8 ___ ___ __ __), Сумма (число), Описание (текст)
- Кнопка «Выставить счёт»
- После успеха: уведомление «Счёт отправлен! Клиент получит уведомление в Kaspi»
- Таблица счетов из Supabase с колонками: ID, Сумма, Телефон, Статус, Дата
- Realtime подписка на таблицу invoices — статусы обновляются автоматически
- Статус-бейджи: pending (жёлтый), paid (зелёный), cancelled (серый), expired (красный)
Используй Shadcn UI. Всё на русском языке.
ВАЖНО: Добавь секрет APIPAY_WEBHOOK_SECRET в Lovable Cloud → Secrets (значение из ApiPay.kz → Настройки → Подключение).
Lovable — это no-code платформа для создания веб-приложений с помощью ИИ. Вы описываете что нужно текстом, а Lovable генерирует полноценное приложение с React, TypeScript и Supabase.
Зачем нужна Edge Function? Почему нельзя вызвать API напрямую?
API ключ ApiPay даёт доступ к вашему счёту — создание платежей, возвраты, управление подписками. Если поместить ключ в браузерный код, любой пользователь сможет его увидеть. Edge Function работает на сервере — ключ остаётся в безопасности, а клиент общается только с вашей функцией.
3 тарифа: Старт — 10 000 ₸/мес (до 30 транзакций в день), Бизнес — 25 000 ₸/мес (от 30 в день), Про — 60 000 ₸/мес (от 100 в день). 0% комиссии с платежей. Без скрытых сборов. При превышении лимита блокировки нет — менеджер вам напишет. Все функции включены во все тарифы.
Lovable Cloud обязателен?
Да, для Edge Functions нужен Lovable Cloud с подключённым Supabase. Это единственный безопасный способ хранить API ключ на серверной стороне в Lovable. Бесплатного тарифа Lovable достаточно для начала.
Как тестировать вебхуки?
После деплоя Edge Function apipay-webhook скопируйте её URL (формат: https://<project>.supabase.co/functions/v1/apipay-webhook). Вставьте в ApiPay.kz → Настройки → Подключение. Нажмите «Тест webhook» — ApiPay отправит тестовое событие и покажет результат.
А если я использую другую no-code платформу?
ApiPay работает с любой платформой, которая умеет делать HTTP-запросы. Для платформ без серверной части (Tilda, Webflow) используйте интеграции через Zapier или Make. Подробнее — в общем руководстве по интеграции.
Не получается? Мы поможем!
Если что-то не работает или возникли вопросы по интеграции с Lovable — напишите нам. Мы подскажем или настроим вместе с вами.