There is no license information available for the latest version (3.4.0) of this package.

Integrates Omnipay with Laravel and provides an easy configuration.

3.4.0 2022-02-24 22:23 UTC

This package is auto-updated.

Last update: 2022-11-28 23:18:19 UTC


Total Downloads Latest Version

Integrates the Omnipay PHP library with Laravel to make Configuring multiple payment tunnels a breeze!

Composer Configuration

Include the laravel-omnipay package as a dependency in your composer.json:

composer require ignited/laravel-omnipay "3.*"

Note: You don't need to include the omnipay/common in your composer.json - it is a requirement of the laravel-omnipay package.

Omnipay recently went refactoring that made it so that each package is now a seperate repository. The omnipay/common package includes the core framework. You will then need to include each gateway as you require. For example:

composer require omnipay/eway "3.*"

Alternatively you can include every gateway by requring:

composer require omnipay/omnipay "3.*"

Note: this requires a large amount of composer work as it needs to fetch each seperate repository. This is not recommended.

Laravel 5

Add a ServiceProvider to your providers array in config/app.php:

'providers' => [



Add the Omnipay facade to your facades array:

	'Omnipay' => Ignited\LaravelOmnipay\Facades\OmnipayFacade::class

Finally, publish the configuration files:

php artisan vendor:publish --provider="Ignited\LaravelOmnipay\LaravelOmnipayServiceProvider" --tag=config


For Lumen add the following in your bootstrap/app.php


Copy the laravel-omnipay.php file from the config directory to config/laravel-omnipay.php

And also add the following to bootstrap/app.php


Guzzle 6

If you are using Guzzle 6 you need to require the following package.

composer require php-http/guzzle6-adapter

Guzzle 7 now implements a PSR http client compliant adapter. So there is no need to include this.


Once you have published the configuration files, you can add your gateway options to the config file in config/laravel-omnipay.php.

PayPal Express Example

Here is an example of how to configure password, username and, signature with paypal express checkout driver

'gateways' => [
    'paypal' => [
        'driver'  => 'PayPal_Express',
        'options' => [
            'username'  => env( 'OMNIPAY_PAYPAL_EXPRESS_USERNAME', '' ),
            'password'  => env( 'OMNIPAY_PAYPAL_EXPRESS_PASSWORD', '' ),
            'signature' => env( 'OMNIPAY_PAYPAL_EXPRESS_SIGNATURE', '' ),
            'solutionType' => env( 'OMNIPAY_PAYPAL_EXPRESS_SOLUTION_TYPE', '' ),
            'landingPage'    => env( 'OMNIPAY_PAYPAL_EXPRESS_LANDING_PAGE', '' ),
            'headerImageUrl' => env( 'OMNIPAY_PAYPAL_EXPRESS_HEADER_IMAGE_URL', '' ),
            'brandName' =>  'Your app name',
            'testMode' => env( 'OMNIPAY_PAYPAL_TEST_MODE', true )


$cardInput = [
	'number'      => '4444333322221111',
	'firstName'   => 'MR. WALTER WHITE',
	'expiryMonth' => '03',
	'expiryYear'  => '16',
	'cvv'         => '333',

$card = Omnipay::creditCard($cardInput);
$response = Omnipay::purchase([
	'amount'    => '100.00',
	'returnUrl' => 'http://bobjones.com/payment/return',
	'cancelUrl' => 'http://bobjones.com/payment/cancel',
	'card'      => $cardInput


This will use the gateway specified in the config as default.

However, you can also specify a gateway to use.


$response = Omnipay::purchase([
	'amount' => '100.00',
	'card'   => $cardInput


In addition you can take an instance of the gateway.

$gateway = Omnipay::gateway('eway');


This package is open-sourced software licensed under the MIT license.