Payment

πŸ“˜

Prerequisites

  1. Register your Merchant Portal account and follow the steps to obtain your Nello Pay API credentials and Webhook API access.
  2. Have an active bank account in the country where you plan to integrate to test your connection.
🚧

Swagger documentation can be found here for NelloPay πŸ’»

Getting Started with Nello Pay

Follow these key steps to integrate Nello Pay into your application:


Complete the Setup of Your Merchant Portal Account

Follow our step-by-step onboarding guide to get started with Nello Pay.


Add Nello Pay as a Payment Option

Payment Button Design

Adding a button to initiate the payment process is one way to enable payments for your end users. The Pay Button must follow the Neonomics Design Toolkit.

Brand Assets

Download Neonomics brand assets here πŸ‘‰πŸ» Neonomics Brand Assets

Ensure your payment button follows our design guidelines for consistency and user trust.


Handle User Interactions

Server-Side Implementation

When a user clicks the "Pay by Bank" button, your server should create a checkout request. Here are examples in different programming languages:

<?php
$curl = curl_init();  

$YOUR_DOMAIN = "http://localhost";  

$postData = [
  "referenceId" => "46cc77a44f0f40f8b7877c78d8bbd8e0", //Your Reference
  "amount" => 20.00,
  "currency" => "NOK",
  "successUrl" => "$YOUR_DOMAIN/success",
  "failUrl" => "$YOUR_DOMAIN/fail",
  "cancelUrl" => "$YOUR_DOMAIN/cancel",
  "remittanceInfo" => "Sweatshirt Order #85", // Remittance Information
  "language" => "EN",
  "country" => "NO"
];  

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://checkout.sandbox.neonomics.io/api/v1/checkout-requests',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => json_encode($postData),
  CURLOPT_HTTPHEADER => array(
    'api-key: 09e4201c-9ddb-4b65-bc95-975b7373qwer', // Your API Key
    'Content-Type: application/json',
    'Accept: application/json'
  ),
));

$response = curl_exec($curl);
curl_close($curl);

$redirectUrl = json_decode($response, true)['redirectUrl'];
header("Location: $redirectUrl");
?>

Create Checkout Request

API Endpoints

Method: POST

HTTP Path: /api/v1/checkout-requests

Request Parameters

❗️

Important: Only one of the two RemittanceInfo parameters can be populated, not both.

Required Parameters

ParameterTypeDescription
referenceIdSTRINGYour internal order or transaction ID
amountNUMBERPayment amount (e.g., 20.50)
currencySTRINGCurrency codes (ISO 4217) - NOK, EUR, SEK, DKK
successUrlSTRINGURL for user redirection in case of success
cancelUrlSTRINGURL for user redirection when checkout is cancelled
remittanceInfoStructured ❗OBJECTStructured payment data (KID, INVOICE, OCR)
remittanceInfo ❗STRINGMessage included in payment (max 140 chars)

Optional Parameters

ParameterTypeDescription
endToEndIdSTRINGAuto-generated if not provided (max 35 chars)
creditorAccountOBJECTDifferent payee account than the one registered in the merchant portal
countrySTRINGCountry codes (ISO 3166-1 alpha-2)
languageSTRINGLanguage codes (ISO 639-1 alpha-2)
paymentScheduledDateSTRINGDate for scheduled payment (YYYY-MM-DD)
maxScheduledDateSTRINGMaximum selectable date in the date-picker
scheduledDateEditableSTRINGTO_SET_DATE or FIXED
failUrlSTRINGURL for failed payment redirection
clientNameSTRINGDisplay name shown to end user
creditorAddressOBJECTRequired for cross-border payments
bankIdSTRINGFor client-hosted bank selection
singleScaPaymentBOOLEANSingle SCA payment support
autoRedirectBOOLEANAuto-redirect on successful payment

Request Examples

Request Header:

api-key: 31mkl-hfy23-312kj-f8qw…

Request Body:

{
  "referenceId": "41212",
  "remittanceInfo": "Ord #41212",
  "amount": 20,
  "currency": "EUR",
  "creditorAccount": {
    "creditorName": "Bob Huws",
    "iban": "NO9386011117947"
  },
  "successUrl": "https://merchant.neonomics.io/order/41212/success",
  "failUrl": "https://merchant.neonomics.io/order/41212/fail",
  "cancelUrl": "https://merchant.neonomics.io/order/41212/cancel",
  "language": "EN",
  "country": "NO"
}

API Response

Response Body:

{
  "redirectUrl": "https://checkout.neonomics.io/api/v1/checkoutrequests/JkuOIJ/app",
  "id": "0a15025d-824a-19c6-8182-7d5ab472002f"
}

The redirectUrl is where the end user is redirected to start the payment flow; this should be opened on the client side.

🏁

Note: The redirectUrl will only be active for 15 minutes. Each payment flow also times out after 15 minutes of the user's last activity.


Next Steps

Once the user has started the payment flow, you will receive notifications via the webhook you have set up. See the documentation here, and you will see updates in your merchant portal.

Congratulations, you have integrated NelloPay! 🏁