Skip to content

FreeKassa

FreeKassa — агрегатор с классической SCI-схемой: база не дёргает API вообще, а собирает подписанную ссылку на платёжную страницу pay.fk.money, где юзер сам выбирает способ — карта, СБП, электронные кошельки. Валюта — только RUB. Результат оплаты прилетает вебхуком (ResultURL).

У FreeKassa есть и современный API (api.fk.life) — в базе он подключается отдельным провайдером KassaAI. Это два независимых шлюза, включать можно любой.

Что понадобится

Магазин в мерчант-кабинете FreeKassa. Из его настроек нужны три значения:

  • ID магазинаshop_id;
  • Секретное слово 1 — подписывает ссылку на оплату;
  • Секретное слово 2 — подписывает уведомления о платеже.

Настройка в кабинете

Кабинет → Платежи → карточка FreeKassa:

ПолеЧто этоОбязательное
shop_idID магазина FreeKassaда
secret1Секретное слово 1 — подпись платёжной ссылкида
secret2Секретное слово 2 — подпись вебхукада

Секреты шифруются (Fernet) при сохранении и обратно не показываются. После заполнения включи провайдера тумблером — пока он выключен, вебхук отвечает 404. Кнопка «Тест» для FreeKassa API-пробу не выполняет: правильность ключей проверяется первым платежом. Общие поля карточки (имя в списке оплаты, комиссия для статистики, включённые формы) — в настройках платежей.

Вебхук

В кабинете FreeKassa укажи ResultURL:

https://ваш-домен/api/v1/payments/freekassa

Уведомление приходит POST form-encoded (MERCHANT_ID, AMOUNT, MERCHANT_ORDER_ID, SIGN). Подлинность проверяется MD5-подписью:

SIGN = md5(shop_id:amount:secret2:order_id)

Неверная подпись → 403, уведомление отбрасывается. IP-фильтра нет — достаточно подписи. На валидное уведомление база сама отвечает обязательным для FreeKassa plain-text YES — настраивать это не нужно.

Особенности

  • FreeKassa шлёт только успешные оплаты — любое уведомление с валидной подписью засчитывается как платёж, промежуточных статусов нет.
  • Возвратов по API и рекуррентов нет: возврат из кабинета фиксируется как «ручной», деньги возвращаешь на стороне FreeKassa — см. Возвраты.
  • Целые суммы FreeKassa подписывает без копеек («199», а не «199.00») — база сама приводит сумму к этому формату и в ссылке на оплату, и при проверке подписи вебхука, иначе подписи не сходились бы.
  • Опроса статуса по API у этого шлюза нет: если уведомление не дошло (неверный ResultURL, файрвол), платёж останется в ожидании.

Платёж не пришёл?

Реконсилятор проверяет зависшие платежи каждые 5 минут, но FreeKassa не даёт опроса статуса по API — оплату закрывает только вебхук. Проверь ResultURL и доставку уведомлений — разбор в разделе Вебхуки.

MIT License · сделано для тех, кто продаёт VPN, а не настраивает ботов