AnyPay is a PHP and Laravel library that puts more than 40 payment gateways behind one unified API, for developers who need to support several providers without writing a separate integration for each.
Instead of learning a different SDK for every bank or PSP, you write the checkout flow once and switch providers by changing a driver name. Every gateway follows the same purchase → pay → verify sequence.
The package bundles drivers for the major Iranian bank and PSP gateways (Mellat, Melli/Sadad, Saman, Parsian, Pasargad, Saderat, Zarinpal, IDPay, Zibal and others), wallet and installment (BNPL) providers (Azki, Etebarino, Walleta, Digipay, Vandar, Toman), and international gateways such as PayPal and Bitpay. It ships with Laravel auto-discovery — service provider and facade — and also works in plain PHP projects.
- More than 40 payment gateways behind one driver-based interface.
- The same
purchase(),pay()andverify()flow regardless of gateway. - Dedicated exceptions for invalid payments, failed purchases, and missing drivers or invoices.
- Configuration passed inline or loaded from a published config file.
- Payment lifecycle events you can hook into.
- Auto-registered Laravel service provider and
Anypayfacade; usable standalone. - Supports card gateways as well as BNPL and installment providers.
The following drivers are bundled under src/Drivers/:
| Aqayepardakht | Asanpardakht | Atipay | Azki (installment) |
| Behpardakht (Mellat) | Bitpay | Digipay | Etebarino (installment) |
| Fanavacard | Gooyapay | IDPay | Irankish |
| Jibit | Local | Minipay | Nextpay |
| Omidpay | Parsian | Pasargad | Payfa |
| Pay.ir | PayPal | Payping | Paystar |
| Poolam | Rayanpay | Sadad (Melli) | Saman |
| SEP (Saman Electronic) | Sepehr (Saderat) | Sepordeh | Sizpay |
| Toman | Vandar | Walleta (installment) | Yekpay |
| Zarinpal | Zibal |
| Component | Technology |
|---|---|
| Language | PHP >= 7.2 |
| Framework | Laravel (service provider and facade; works standalone) |
| HTTP client | Guzzle |
| Utilities | Carbon (dates), Ramsey UUID, chillerlan/php-cache |
| Install | Composer (PSR-4: Morpheusadam\Anypay\) |
- PHP 7.2 or higher
- Composer
composer require morpheusadam/AnyPayIn Laravel, the service provider and Anypay facade are auto-discovered; no manual registration is required.
$config = ['driver' => 'gatewayName', 'api_key' => 'your_api_key'];
$anypay = new Morpheusadam\Anypay\Anypay($config);
$invoice = new Morpheusadam\Anypay\Invoice();
$invoice->amount(1000); // amount in Rials
$anypay->via('gatewayName')->purchase($invoice)->pay();$config = ['api_key' => 'your_api_key'];
$gateway = 'gatewayName';
$amount = 1000; // amount in Rials
try {
$anypay = new Morpheusadam\Anypay\Anypay($config);
$response = $anypay->payWith($gateway, $amount, $config);
echo $response->getContent(); // payment response details
} catch (Exception $e) {
echo 'Payment error: ' . $e->getMessage();
}try {
$anypay = new Morpheusadam\Anypay\Anypay($config);
$receipt = $anypay->verify();
echo 'Payment confirmed. Transaction ID: ' . $receipt->getTransactionId();
} catch (Exception $e) {
echo 'Verification error: ' . $e->getMessage();
}use Morpheusadam\Anypay\Facades\Anypay;
$invoice = (new Invoice)->amount(1000);
Anypay::via('driverName')->purchase($invoice, function ($driver, $transactionId) {
// store $transactionId against the order
});Open an issue or submit a pull request to add a gateway driver, fix a bug, or improve the docs.
Distributed under the MIT License. See LICENSE for full terms.
Morpheus Adam — web developer, PHP, Laravel, Go.
- GitHub: morpheusadam
- Website: sam.zeonic.me
- Email: morpheusadam95@gmail.com