La nostra clientela è molto varia, dagli imprenditori locali alle grandi multinazionali. Per questo vogliamo essere il più flessibili possibile con il ‘payment gateway’uniforme. Per chi desidera il massimo della flessibilitá, consigliamo il payment gateway attraverso i nostri API (procedure per i programmatori), nel caso siate meno tecnici, offriamo diversi plug in pronti all`uso che potrete utilizzare senza conoscenza tecnica con l`aiuto di una pratica guida.

Inoltre, i nostri solution partners hanno creato soluzioni standard, con le quali Pay.nl si occupa dei pagamenti. Infine offriamo la possibilitá di generare un link di pagamento tramite il Pannello dell`Amministratore, link che potrete inviare via mail al cliente per completare la transazione. Su questa pagina troverete la spiegazione su come intregrare i metodi di pagamento.

Come desiderate integrare i metodi di pagamento?


  • Plugin

    Con i nostri plugin pronti all`uso potrete aggiunere al vostro webshop o website, in poche e semplici mosse, diverse opzioni di pagamento. Per decine di sistemi e-commerce offriamo plugin come Magento.

    PIÙ INFO

  • Soluzioni hosting

    Non avete un server per il vostro webshop, ma vi servite di un webshop online? Potete comunque utilizzare le nostre soluzioni. Offriamo diversi collegamenti con partner di hosting.

    PIÙ INFO

  • Impostazioni proprie

    Volete carta bianca per quanto riguarda l`integrazione dei nostri metodi di pagamento? Allora potete mettervi al lavoro con i SDK o gli API di Pay.nl. Ci sono diversi esempi di codici a disposizione e istruzioni.

    PIÙ INFO

  • Link di pagamento

    Avete fatture, email o entrate di blog alle quali volete aggiungere un link per il pagamento? Potrete generarlo con pochi clic e senza conoscenza tecnica, dove deciderete voi l`importo e le opzioni per il pagamento.

    PIÙ INFO

1. Plugin

  • Magento

    Magento è un sistema di webshop molto usato. Pay.it ha sviluppato un plugin gratuito per Magento che potrete installare in pochi minuti.

    DIVENTA CLIENTE
  • OpenCart

    Anche per questo sistema di e-commerce, semplice e molto utilizzato, offriamo un plugin che potrete usare gratuitamente.

    DIVENTA CLIENTE
  • WooCommerce

    WooCommerce è un modulo di webshop per il famoso sistema CMS Wordpress. Il plugin gratuito per WooCommerce è stato sviluppato da Pay.it.

    DIVENTA CLIENTE
  • Shoptrader.nl

    Collegamenti realizzati da Shoptrader

    DIVENTA CLIENTE
  • CCV Shop

    Collegamenti realizzati da Pay.it

    DIVENTA CLIENTE
  • 3. Soluzioni hosting

    I partner di hosting hanno sviluppato per voi collegamenti standard con la nostra piattaforma. Senza dover installare plugin, in pochi clic potrete creare un collegamento con il nostro sistema immettendo i vostri service ID e i token API.

3. Impostazioni proprie

Possibile personalizzare tramite le nostre API & SDK



3.1 SDK

I nostri SDK sono adatti anche per programmatori che vogliono la massima libertá nell`integrare i nostri metodi di pagamento.

I SDK contengono le funzionalitá più importanti per gestire una transazione. Così con pochi codici potrete avviare una transazione o effettuare un rimborso, processare una richiesta di cambio o stabilire lo stato di una transazione.

Funzione
PHP
ASP .NET
Ruby
Java
require __DIR__ . '/vendor/autoload.php';

# Set configuration
\Paynl\Config::setApiToken('e41f83b246b706291ea9ad798ccfd9f0fee5e0ab');
\Paynl\Config::setServiceId('SL-3490-4320');

# Get available payment methods
$paymentMethods = \Paynl\Paymentmethods::getList();

# Display paymentmethods
var_dump($paymentMethods);
require __DIR__ . '/vendor/autoload.php';

# Set configuration
\Paynl\Config::setApiToken('e41f83b246b706291ea9ad798ccfd9f0fee5e0ab');
\Paynl\Config::setServiceId('SL-3490-4320');

# Start a transaction
$result = \Paynl\Transaction::start(array(
    // required vars
    'amount' => 10,
    'returnUrl' => \Paynl\Helper::getBaseUrl().'/return.php',

    // optional vars
    'exchangeUrl' => \Paynl\Helper::getBaseUrl().'/exchange.php',
    'paymentMethod' => 10,
    'bank' => 1,
    'description' => 'Demo payment',
    'testmode' => 1,
    'extra1' => 'ext1',
    'extra2' => 'ext2',
    'extra3' => 'ext3',
    'products' => array(
        array(
            'id' => 1,
            'name' => 'Your product',
            'price' => 5,
            'tax' => 0.87,
            'qty' => 1,
        ),
        array(
            'id' => 2,
            'name' => 'Other product',
            'price' => 5,
            'tax' => 0.87,
            'qty' => 1,
        )
    ),
    'language' => 'EN',
    'enduser' => array(
        'initials' => 'M',
        'lastName' => 'Pay',
        'gender' => 'M',
        'dob' => '14-05-1999',
        'phoneNumber' => '0612345678',
        'emailAddress' => 'customer@pay.nl',
    ),
    'address' => array(
        'streetName' => 'Test',
        'houseNumber' => '10',
        'zipCode' => '1234AB',
        'city' => 'Test',
        'country' => 'NL',
    ),
    'invoiceAddress' => array(
        'initials' => 'IT',
        'lastName' => 'ITEST',
        'streetName' => 'Istreet',
        'houseNumber' => '70',
        'zipCode' => '5678CD',
        'city' => 'ITest',
        'country' => 'NL',
    ),
));

# Save this transactionid and link it to your order
$transactionId = $result->getTransactionId();

# Redirect the customer to this url to complete the payment
$redirect = $result->getRedirectUrl();
require __DIR__ . '/vendor/autoload.php';

# Set configuration
\Paynl\Config::setApiToken('e41f83b246b706291ea9ad798ccfd9f0fee5e0ab');

$transaction = \Paynl\Transaction::getForReturn();

# Verify the transaction status
if( $transaction->isPaid() || $transaction->isPending()){
    // redirect to thank you page
} elseif($transaction->isCanceled()) {
    // redirect back to checkout
}
require __DIR__ . '/vendor/autoload.php';

# Set configuration
\Paynl\Config::setApiToken('e41f83b246b706291ea9ad798ccfd9f0fee5e0ab');

$transaction = \Paynl\Transaction::getForExchange();

# Verify the transaction status
if($transaction->isPaid()){
    // process the payment
} elseif($transaction->isCanceled()){
    // payment canceled, restock items
}

// required exchange response
echo "TRUE|";
require __DIR__ . '/vendor/autoload.php';

# Set configuration
\Paynl\Config::setApiToken('e41f83b246b706291ea9ad798ccfd9f0fee5e0ab');

$transactionId = $_GET['transactionId']

# Refund a transaction
try{
    $result = \Paynl\Transaction::refund($transactionId, 5);
} catch(\Paynl\Error\Api $e){
    echo $e->getMessage();
}

# Display result
var_dump($result);


I SDK PHP con istruzioni ed esempi si possono scaricare tramite GitHub.

Scaricare SDK
// Set configuration
PAYNLSDK.API.RequestBase.ApiToken = "e41f83b246b706291ea9ad798ccfd9f0fee5e0ab";
PAYNLSDK.API.RequestBase.ServiceId = "SL-3490-4320";

// Get available payment methods
PAYNLSDK.API.PaymentMethod.GetAll.Response response = PAYNLSDK.PaymentMethod.GetAll();
// Set configuration
PAYNLSDK.API.RequestBase.ApiToken = "e41f83b246b706291ea9ad798ccfd9f0fee5e0ab";
PAYNLSDK.API.RequestBase.ServiceId = "SL-3490-4320";

PAYNLSDK.API.Transaction.Start.Request request = PAYNLSDK.Transaction.CreateTransactionRequest("127.0.0.1", "http://example.org/visitor-return-after-payment");
request.Amount = 621;

// Optional Stats data
request.StatsData = new PAYNLSDK.Objects.StatsDetails();
request.StatsData.Info = "your information";
request.StatsData.Tool = "C#.NET";
request.StatsData.Extra1 = "X";
request.StatsData.Extra2 = "Y";
request.StatsData.Extra3 = "Z";

// Initialize Salesdata
request.SalesData = new PAYNLSDK.Objects.SalesData();
request.SalesData.InvoiceDate = DateTime.Now;
request.SalesData.DeliveryDate = DateTime.Now;
request.SalesData.OrderData = new System.Collections.Generic.List();

// Add products
request.SalesData.OrderData.Add(new PAYNLSDK.Objects.OrderData("SKU-8489", "Testproduct 1", 2995, "H", 1));
request.SalesData.OrderData.Add(new PAYNLSDK.Objects.OrderData("SKU-8421", "Testproduct 2", 995, "H", 1));
request.SalesData.OrderData.Add(new PAYNLSDK.Objects.OrderData("SKU-2359", "Testproduct 3", 2499, "H", 1));

// enduser
request.Enduser = new PAYNLSDK.Objects.EndUser();
request.Enduser.Language = "NL";
request.Enduser.Initials = "J.";
request.Enduser.Lastname = "Buyer";
request.Enduser.Gender = PAYNLSDK.Enums.Gender.Male;
request.Enduser.BirthDate = new DateTime(1991, 1, 23, 0, 0, 0, DateTimeKind.Local);
request.Enduser.PhoneNumber = "0612345678";
request.Enduser.EmailAddress = "email@domain.com";
request.Enduser.BankAccount = "";
request.Enduser.IBAN = "NL08INGB0000000555";
request.Enduser.BIC = "";

// enduser address
request.Enduser.Address = new PAYNLSDK.Objects.Address();
request.Enduser.Address.StreetName = "Streetname";
request.Enduser.Address.StreetNumber = "8";
request.Enduser.Address.ZipCode = "1234AB";
request.Enduser.Address.City = "City";
request.Enduser.Address.CountryCode = "NL";

// invoice address
request.Enduser.InvoiceAddress = new PAYNLSDK.Objects.Address();
request.Enduser.InvoiceAddress.Initials = "J.";
request.Enduser.InvoiceAddress.LastName = "Jansen";
request.Enduser.InvoiceAddress.Gender = PAYLSDK.Enums.Gender.Male;
request.Enduser.InvoiceAddress.StreetName = "InvoiceStreetname";
request.Enduser.InvoiceAddress.StreetNumber = "10";
request.Enduser.InvoiceAddress.ZipCode = "1234BC";
request.Enduser.InvoiceAddress.City = "City";
request.Enduser.InvoiceAddress.CountryCode = "NL";

PAYNLSDK.API.Transaction.Start.Response response = PAYNLSDK.Transaction.Start(request);
// Set configuration
PAYNLSDK.API.RequestBase.ApiToken = "e41f83b246b706291ea9ad798ccfd9f0fee5e0ab";
PAYNLSDK.API.RequestBase.ServiceId = "SL-3490-4320";

PAYNLSDK.API.Transaction.Start.Response response;
// Perform transaction to get response object. Alternately you could work with a stored ID

PAYNLSDK.API.Transaction.Info.Response info = PAYNLSDK.Transaction.Info(response.transactionId);
PAYNLSDK.Enums.PaymentStatus result = info.State;

if (PAYNLSDK.Transaction.IsPaid(result) || PAYNLSDK.Transaction.IsPending(result))
{
    // redirect user to thank you page
}
else
{
    // it has not been paid yet, so redirect user back to checkout
}
// Set configuration
PAYNLSDK.API.RequestBase.ApiToken = "e41f83b246b706291ea9ad798ccfd9f0fee5e0ab";
PAYNLSDK.API.RequestBase.ServiceId = "SL-3490-4320";

PAYNLSDK.API.Transaction.Info.Response info = PAYNLSDK.Transaction.Info(response.transactionId);
PAYNLSDK.Enums.PaymentStatus result = info.State;

if (PAYNLSDK.Transaction.IsPaid(result))
{
    // process the payment
}
else
{
  if(PAYNLSDK.Transaction.IsCancelled(result)){
      // payment canceled, restock items
  }
}

response.Write("TRUE| ");
// Optionally you can send a message after TRUE|, you can view these messages in the logs.
// https://admin.pay.nl/logs/payment_state
response.Write("Paid");
  
Disponibile a breve



I C# .NET PHP con istruzioni ed esempi si possono scaricare tramite GitHub.

Scaricare SDK
        
require 'paynl'

# Set configuration
Paynl::Config::setApiToken('e41f83b246b706291ea9ad798ccfd9f0fee5e0ab')
Paynl::Config::setServiceId('SL-3490-4320')

# Get available payment methods
api = Paynl::Paymentmethods.new
options = Hash.new
puts api.getList(options)
        
require 'paynl'

# Set configuration
Paynl::Config::setApiToken('e41f83b246b706291ea9ad798ccfd9f0fee5e0ab')
Paynl::Config::setServiceId('SL-3490-4320')

data = Paynl::Transaction.new
options = Hash.new

# Required values
options.store('amount', 6.21)
options.store('returnUrl', 'http://your.webshop.org/visitor-return-after-payment')
options.store('ipaddress', '127.0.0.1')

# Optional values
options.store('paymentMethod', 10)
options.store('description', 'demo payment')
options.store('testMode', true)
options.store('extra1', 'ext1')
options.store('extra2', 'ext2')
options.store('extra3', 'ext3')

# First product
products = Hash.new
product = Hash.new
product.store('id', '234567')
product.store('price', 1.21)
product.store('tax', 0.21)
product.store('name', 'Testproduct voor de demo tour')
product.store('qty', 1)
products.store(products.length + 1, product)

# Second product
product = Hash.new
product.store('id', '2')
product.store('price', 5.00)
product.store('tax', 0.87)
product.store('name', 'Testproduct 2 voor de demo tour')
product.store('qty', 1)
products.store(products.length + 1, product)
options.store('products', products)

# Enduser data
enduser = Hash.new
enduser.store('initials', 'T')
enduser.store('lastName', 'Test')
enduser.store('gender', 'M')
enduser.store('dob', '14-05-1999')
enduser.store('phoneNumber', '0612345678')
enduser.store('emailAddress', 'test@example.org')
enduser.store('language','EN')
options.store('enduser', enduser)

# Address data
address = Hash.new
address.store('streetName', 'Test')
address.store('houseNumber', '10')
address.store('zipCode', '1234AB')
address.store('city', 'Test')
address.store('country', 'NL')
options.store('address', address)

invoiceAddress = Hash.new
invoiceAddress.store('initials', 'IT')
invoiceAddress.store('lastName', 'ITTest')
invoiceAddress.store('streetName', 'ITest')
invoiceAddress.store('houseNumber', '15')
invoiceAddress.store('zipCode', '1234CC')
invoiceAddress.store('city', 'TTest')
invoiceAddress.store('country', 'NL')
options.store('invoiceAddress', invoiceAddress)

result = data.start(options)

# Store the transaction ID which is in
puts result['transaction']['transactionId']

# Redirect the user to the URL
puts result['transaction']['paymentURL']
        
require 'paynl'

# Set configuration
Paynl::Config::setApiToken('e41f83b246b706291ea9ad798ccfd9f0fee5e0ab')
Paynl::Config::setServiceId('SL-3490-4320')

data = Paynl::Transaction.new
result = data.getTransaction(transactionId)

if Paynl::Helper::transactionIsPaid(result) or Paynl::Helper::transactionIsPending(result)
    # redirect user to thank you page
else
    # it has not been paid yet, so redirect user back to checkout
end                        
        
require 'paynl'

# Set configuration
Paynl::Config::setApiToken('e41f83b246b706291ea9ad798ccfd9f0fee5e0ab')
Paynl::Config::setServiceId('SL-3490-4320')

data = Paynl::Transaction.new
result = data.getTransaction(transactionId)

if Paynl::Helper::transactionIsPaid(result)
    # Process the payment
elsif Paynl::Helper::transactionIsCanceled(result)
    # Payment canceled, restock items
end

puts 'TRUE| '

# Optionally you can send a message after TRUE|, you can view these messages in the logs.
# https://admin.pay.nl/logs/payment_state
puts 'Paid: ' + Paynl::Helper::transactionIsPaid(result).to_s                        
  
Disponibile a breve



I SDK Ruby con istruzioni ed esempi si possono scaricare tramite GitHub.

Scaricare SDK

Un SDK per Java sará disponibile a breve.

3.2 API

Nel caso la lingua di programmazione da voi desiderata non fosse disponibile come SDK, o nel caso abbiate bisogno di più funzionalitá di quelle offerte dal SDK, contattateci direttamente tramite i nostri API.

API token
Service ID
Descrizione
Importo
Metodo di pagamento
Inizia il pagamento
Stato del pagamento

Pay.nl ha un API con più di 250 funzioni. Potrete cosi in maniera automatica darci l`ordine di eseguire un determinato compito.

Gli API più importanti sono i Transaction:start con i quali potete avviare un pagamento, e il Transaction:info per verificare lo stato di un pagameto. In questa dimostrazione vi mostreremo l`attuazione e il funzionamento dei questi due API.

Codice PHP


                            

Risultato API


                            

Elaborare i risultati

Avviate prima di tutto un pagamento attraverso il pulsante "Guarda il demo". Riceverete un transactionld unico che potrá essere utilizzare per ottenere lo stato del pagamento in questione.

Codice PHP


                            

Risultato API


                            

Elaborare i risultati

4. Link per il pagamento

La maniera più semplice di utilizzare la nostra piattaforma è quella di generare link di pagamento. Per questo metodo non avrete bisogno di conoscenze tecniche.

Attraverso il nostro Pannello dell`Amministratore o con la app per smartphone potrete infatti generare un link di pagamento unico per il vostro cliente, nel quale stabilirete l`importo, la durata, una descrizione e il servizio per il quale il pagamento è destinato. myBank, Sofortbanking, carta di credito o uno altro medoto di pagamento? Il cliente potrá scegliere come completare la transazione.

Una volta generato il link di pagamento, potrete utilizzarlo nelle mail, in fatture digitali etc... Le possibilitá sono infinite.