LiqPay + Laravel: integrate native Ukrainian payments and cut cart abandonment
Ukrainian shoppers abandon carts when checkout feels foreign. A seamless LiqPay integration inside your Laravel application removes that friction — keeping buyers on familiar ground and your conversion rate intact.
Why LiqPay belongs in your Laravel stack
LiqPay processes UAH, USD, and EUR payments via Privatbank's infrastructure, used by millions of Ukrainians daily. When your checkout speaks the same language as your customers' banking app, trust goes up and drop-off goes down. For B2C stores and SaaS platforms targeting Ukrainian audiences, it is one of the two essential payment rails alongside Monobank.
How the integration works
Laravel's service container and event system make LiqPay wiring clean and testable. The integration breaks into four parts:
- LiqPayService — a dedicated service class wraps the LiqPay PHP SDK, signs requests with your public/private key pair, and builds the payment form payload.
- Checkout controller — a single POST endpoint generates the signed form and redirects the buyer to LiqPay's hosted checkout page.
- Callback handler — a webhook route (excluded from CSRF middleware) receives the server-to-server callback, verifies the signature, and fires an
OrderPaidevent. - OrderPaid listener — updates order status, triggers fulfilment, and dispatches post-payment notifications via Laravel queues.
// LiqPayService.php (excerpt)
public function buildPaymentData(Order $order): array
{
return [
'version' => 3,
'public_key' => config('liqpay.public_key'),
'action' => 'pay',
'amount' => $order->total,
'currency' => 'UAH',
'description' => "Order #{$order->id}",
'order_id' => $order->id,
'result_url' => route('checkout.success'),
'server_url' => route('liqpay.callback'),
];
} Signature verification uses SHA-1 over base64(private_key + base64(data) + private_key). Always verify before updating any order state.
What you gain
- Instant UAH settlements to your Privatbank account
- Built-in 3DS authentication, reducing chargebacks
- Subscription and invoice payment support for SaaS billing
- Full transaction log in Laravel's database, queryable for finance reports
Timeline
A clean LiqPay integration into an existing Laravel e-commerce project takes 2–3 days: one day for the service and routes, one for the callback logic and queue workers, and one for QA in LiqPay's sandbox.
Ready to integrate?
MaxiMoruM has shipped LiqPay integrations inside Laravel applications serving thousands of Ukrainian buyers. We handle the SDK wiring, signature security, and post-payment workflows — so your team focuses on the business, not the plumbing.