sashalenz / monobank-api
This is my package monobank-api
Fund package maintenance!
Requires
- php: ^8.2
- illuminate/contracts: ^10.0||^11.0||^12.0||^13.0
- spatie/laravel-data: ^4.20
- spatie/laravel-package-tools: ^1.93
Requires (Dev)
- larastan/larastan: ^3.0
- laravel/pint: ^1.29
- nunomaduro/collision: ^8.9
- orchestra/testbench: ^8.22.0||^9.0.0||^10.0.0
- pestphp/pest: ^4.0
- pestphp/pest-plugin-arch: ^4.0
- pestphp/pest-plugin-laravel: ^4.0
- phpstan/extension-installer: ^1.3
- phpstan/phpstan-deprecation-rules: ^2.0
- phpstan/phpstan-phpunit: ^2.0
README
A lightweight and expressive PHP wrapper for the Monobank API. It provides simple methods for accessing public banking information and personal account data.
Installation
You can install the package via composer:
composer require sashalenz/monobank-api
You can publish the config file with:
php artisan vendor:publish --tag="monobank-api-config"
This is the contents of the published config file:
return [
];
Usage
This package provides helpers for all Monobank API requests:
MonobankApi::bank()->currency()– get current currency exchange rates.MonobankApi::personal()->clientInfo()– retrieve information about accounts and cards.MonobankApi::personal()->webhook($url)– register a webhook URL for transaction updates.MonobankApi::personal()->statement($account, $dateFrom, $dateTo = null)– fetch a statement for a specific account and period.
Examples
Currency rates
Retrieve public exchange rates without authentication.
use Sashalenz\MonobankApi\MonobankApi; $rates = MonobankApi::bank()->currency(); foreach ($rates as $rate) { echo $rate->currencyCodeA . ' => ' . $rate->rateBuy . PHP_EOL; }
Client information
Get information about your accounts and cards.
$info = MonobankApi::personal()->token($token)->clientInfo();
Register webhook
Configure a webhook to receive transaction updates.
MonobankApi::personal()->token($token)->webhook('https://example.com/monobank');
Webhook route configuration
The package registers two inbound webhook routes (POST {prefix}/{webhook_key} and
POST {prefix}/{acquiring_webhook_key}). Where and how they mount is fully
configurable (Livewire-style) — set these in config/monobank-api.php or via env:
| Config / env | Default | Purpose |
|---|---|---|
webhook_routes_enabled / MONOBANK_WEBHOOK_ROUTES_ENABLED |
true |
Set false to skip route registration entirely (e.g. when you handle the webhook elsewhere). |
webhook_domain / MONOBANK_WEBHOOK_DOMAIN |
null (any host) |
Constrain the routes to a domain. |
webhook_prefix / MONOBANK_WEBHOOK_PREFIX |
monobank-api |
URL path prefix. |
webhook_middleware / MONOBANK_WEBHOOK_MIDDLEWARE |
[] |
Middleware/guards (env = comma-separated list). |
webhook_key / acquiring_webhook_key |
webhook / acquiring-webhook |
Path segment per controller. |
All defaults preserve the previous behaviour.
Account statement
Fetch the statement for an account within a given period.
$statement = MonobankApi::personal() ->token($token) ->statement($accountId, $dateFrom, $dateTo);
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
The MIT License (MIT). Please see License File for more information.