How to integrate Monobank acquiring into your Laravel e-commerce store
Ukrainian shoppers increasingly prefer Monobank for online payments — the bank holds over 8 million active users and growing. Adding Monobank acquiring to your Laravel store takes roughly two days and opens a payment channel your competitors may still be missing.
What the integration covers
Monobank's Acquiring API provides a straightforward JSON-over-HTTPS interface. You send a create-invoice request with order amount, currency, redirect URL, and webhook endpoint — Monobank returns a payment URL and invoice ID. Your Laravel application stores the invoice ID against the order, then confirms payment via an incoming webhook.
The core workflow in Laravel:
- Create invoice — POST to
https://api.monobank.ua/api/merchant/invoice/createwith your merchant token, order metadata, and webhook URL. - Redirect customer — send the shopper to the
pageUrlreturned by the API. - Handle webhook — Monobank POSTs a signed event to your endpoint when payment status changes. Verify the X-Sign header against your public key, then update the order status in your database.
- Query status on demand — GET
/api/merchant/invoice/status/{invoiceId}for reconciliation jobs.
Implementation in Laravel
A clean implementation wraps the Monobank client in a dedicated service class and fires Laravel events on payment success or failure. Queue a job to send confirmation emails and trigger order fulfillment — keeping the webhook controller thin and response times under 200 ms (Monobank retries if you return anything other than HTTP 200).
// MonobankService.php (simplified)
public function createInvoice(Order $order): string
{
$response = Http::withToken(config('monobank.token'))
->post('https://api.monobank.ua/api/merchant/invoice/create', [
'amount' => $order->total_in_kopiiky,
'ccy' => 980, // UAH
'merchantPaymInfo' => ['reference' => $order->id],
'redirectUrl' => route('checkout.success'),
'webHookUrl' => route('monobank.webhook'),
]);
return $response->json('pageUrl');
} Store the merchant token in .env, never in source control. Use Laravel's config caching in production — php artisan config:cache — so every request reads from memory, not disk.
Business outcome
Monobank acquiring typically settles to your account the next business day. Transaction fees are competitive (commonly 1.5–2%), and the branded checkout page reduces friction for Mono cardholders. Integrating a second acquirer alongside LiqPay or WayForPay also protects revenue when one gateway has downtime.
MaxiMoruM has delivered Monobank acquiring integrations for OpenCart and custom Laravel applications. We handle API setup, webhook security, reconciliation reporting, and production testing end-to-end.
Ready to add Monobank to your store? Contact MaxiMoruM — we scope the integration and estimate delivery on the first call.