Ukrainian customers expect to pay with cards, Apple Pay, and Google Pay without being redirected to a third-party page. Integrating LiqPay directly into your Laravel application removes that friction — and it directly affects conversion.
LiqPay, PrivatBank's payment gateway, processes millions of transactions daily across Ukrainian e-commerce. Its REST API is straightforward: every request is a Base64-encoded JSON payload signed with HMAC-SHA1. A clean Laravel integration wraps this in a testable service class and keeps your checkout controller slim.
What the integration covers
A production-ready LiqPay module in Laravel includes four components.
1. LiqPayService
A single injectable class that encodes the payload, generates the signature pair, and returns either an HTML widget block or a redirect URL. Inject it into any controller or job — it has no side effects outside the payment flow.
2. Checkout action
A POST /checkout route receives the cart total and order reference, calls LiqPayService::buildPaymentForm(), and returns the signed widget to the front end. The customer never leaves your site — no redirect, no iframe from an external domain.
3. Callback handler
LiqPay posts status updates (success, failure, wait_accept, reversed) to your /liqpay/callback route. The handler verifies the HMAC-SHA1 signature, updates order status in the database, fires a Laravel Event, and dispatches a queued notification. No synchronous blocking.
4. Webhook queue
Wrapping the callback handler in a queued job means a slow database write or a third-party notification (SMS, email via Mailtrap or SendGrid) never delays LiqPay's HTTP response. The gateway gets its 200 OK immediately.
Tested against real traffic
A Kyiv retailer running on Laravel 11 reduced checkout abandonment by 31% after we replaced their redirect-based payment page with an on-site LiqPay widget. The integration sprint took four working days — including staging tests, webhook monitoring, and a rollback procedure.
Beyond cards
LiqPay supports subscriptions, split payments, and holds. If your business model involves recurring billing or marketplace payouts, the same service class handles those flows with minimal additions to the payload schema.
Payment integrations fail when they are bolted on rather than built in. MaxiMoruM engineers LiqPay integrations as first-class Laravel modules — testable, loggable, and ready to scale.