paynl / omnipay-paynl
Pay.nl driver for the Omnipay payment processing library
Installs: 68 237
Dependents: 1
Suggesters: 0
Security: 0
Stars: 2
Watchers: 7
Forks: 20
pkg:composer/paynl/omnipay-paynl
Requires
- ext-json: *
 - omnipay/common: ~3
 
Requires (Dev)
- monolog/monolog: ^1.23
 - omnipay/tests: ~3
 - php-coveralls/php-coveralls: ^2.1
 
This package is auto-updated.
Last update: 2025-10-04 14:38:14 UTC
README
PAY. Omnipay driver
Description
PAY. driver for the Omnipay payment processing library
Available payment methods
| Bank Payments | Creditcards | Gift cards & Vouchers | Pay by invoice | Others | 
|---|---|---|---|---|
| iDEAL + QR | Visa | VVV Cadeaukaart | AfterPay | PayPal | 
| Bancontact + QR | Mastercard | Webshop Giftcard | Achteraf betalen via Billink | WeChatPay | 
| Giropay | American Express | FashionCheque | Focum AchterafBetalen.nl | AmazonPay | 
| MyBank | Carte Bancaire | Podium Cadeaukaart | Capayable Achteraf Betalen | Cashly | 
| SOFORT | PostePay | Gezondheidsbon | in3 keer betalen, 0% rente | Pay Fixed Price (phone) | 
| Maestro | Dankort | Fashion Giftcard | Klarna | Instore Payments (POS) | 
| Bank Transfer | Cartasi | GivaCard | SprayPay | Przelewy24 | 
| Tikkie | De Cadeaukaart | YourGift | Creditclick | Apple Pay | 
| Multibanco | Paysafecard | Payconiq | ||
| Huis en Tuin Cadeau | 
Requirements
PHP 5.6 or higher
Installation
Installing
In command line, navigate to the installation directory of Omnipay
Enter the following command:
composer require league/omnipay:^3 paynl/omnipay-paynl
The plugin is now installed
Setup
- Create a new php file
 - Use the following code:
 
# require autoloader
require_once('vendor/autoload.php');
 
use Omnipay\Omnipay;
 
# Setup payment gateway
$gateway = Omnipay::create('Paynl');
 
$gateway->setApiToken('abcdefgdjwaiodjwaodjaowidwad');
$gateway->setTokenCode('AT-0000-0000');
$gateway->setServiceId('SL-0000-0000');
- Enter the TokenCode, API token and serviceID (these can be found in the PAY. Admin Panel --> https://admin.pay.nl/programs/programs
 - Save the file
 - Require the file where you wish to use the plugin.
 
Go to the Manage / Services tab in the PAY. Admin Panel to enable extra payment methods.
Update instructions
In command line, navigate to the installation directory of Omnipay
Enter the following command:
composer update league/omnipay:^3 paynl/omnipay-paynl
The plugin has now been updated
Usage
PAY. items
# Use PAY. Item class
use Omnipay\Paynl\Common\Item;
# Add items to transaction
$arrItems = array();
$item = new Item();
$item->setProductId('SKU01')
        ->setProductType('ARTICLE')
        ->setVatPercentage(21)
        ->setDescription('Description')
        ->setName('PAY. article')
        ->setPrice('10')
        ->setQuantity(4);
$arrItems[] = $item;
$item = new Item();
$item->setProductId('SHIP01')
        ->setProductType('SHIPPING')
        ->setVatPercentage(21)
        ->setDescription('Description')
        ->setName('PAY. shipping')
        ->setPrice('5')
        ->setQuantity(1);
$arrItems[] = $item;
$item = new Item();
$item->setProductId('SKU02')
        ->setProductType('DISCOUNT')
        ->setVatPercentage(21)
        ->setDescription('Description')
        ->setName('PAY. promotion')
        ->setPrice('1')
        ->setQuantity(1);
$arrItems[] = $item;
Start a transaction
# Send purchase request
$response = $gateway->purchase(
    [
        'amount' => '46.00',
        'currency' => 'EUR',
        'transactionReference' => 'referenceID1',
        'clientIp' => '192.168.192.12',
        'returnUrl' => 'http://www.yourdomain.com/return_from_pay.php',
        'items' => $arrItems,
        'card' => array(
            'firstName' => 'Example',
            'lastName' => 'User',
            'gender' => 'M',
            'birthday' => '01-02-1992',
            'phone' => '1111111111111111',
            'email' => 'john@example.com',
            'country' => 'NL',
            'shippingAddress1' => 'Shippingstreet 1B',
            'shippingAddress2' => '',
            'shippingCity' => 'Shipingtown',
            'shippingPostcode' => '1234AB',
            'shippingState' => '',
            'country' => 'NL',
            'billingFirstName' => 'Billingexample',
            'billingLastName' => 'Billinguser',
            'billingAddress1' => 'Billingstreet 1B',
            'billingAddress2' => '',
            'billingCity' => 'Billingtown',
            'billingPostcode' => '1234AB',
            'billingState' => '',
            'country' => 'NL'                     
        )
    ]
)->send();
 
# Process response
if ($response->isSuccessful()) {
     
    # Payment was successful
    var_dump($response);
 
} elseif ($response->isRedirect()) {
     
    # Redirect to offsite payment gateway
    $response->redirect();
     
} else {
 
    # Payment failed
    echo $response->getMessage();
}
Refund a transaction
$response = $gateway->refund([
    'transactionReference' => "PAY. transactionId",
    'amount' => '46.00',
    'currency' => 'USD',
    'transactionId' => 765897
])->send();
if ($response->isSuccessful()) {
    # Refund was successful
    print_r($response);
} else {
    # Refund failed
    echo $response->getMessage();
}
Capture a transaction
$response = $gateway->capture([
    'transactionReference' => "PAY. transactionId",
    'items' => $arrItems
])->send();
if ($response->isSuccessful()) {
    # Capture was successful
    print_r($response);
} else {
    # Capture failed
    echo $response->getMessage();
}
Support
Contact us: support@pay.nl