VibeFox Nets Nexi for PrestaShop — Help
Requirements
PrestaShop: 8.0 to 9.x.
PHP: 8.0 or later with the cURL extension. The module refuses to install on older PHP versions or without cURL.
Nets account: you need the secret keys of your Nets Easy account (test and live). Only the secret keys are used. The checkout keys are not needed, because customers pay on the Nets hosted payment page.
Currencies and payment methods: the module does not restrict currencies or countries itself. Use the currencies enabled in your Nets account; an unsupported currency is reported by Nets when the payment is created. Which payment methods the customer sees depends on your Nets contract, country and currency.
HTTPS for webhooks: Nets only calls public HTTPS addresses of at most 256 characters without "&", so your shop needs HTTPS and friendly URLs to receive webhooks. On other shops the payment is still confirmed when the customer returns to the shop or with the status check on the order page.
VibeFox license key: bought on vibefox.net. One key works on one domain.
Installation
1. In the back office go to Modules > Module Manager and click Upload a module. Choose the module ZIP file.
2. When the upload finishes, click Configure, or find VibeFox Nets Nexi Gateway in the module list later and click Configure.
3. Paste your VibeFox license key into License key in the license block at the top of the Configure page and click Activate (see License key).
4. Copy the test secret key from the Nets Easy test portal and paste it into Test Secret Key (see Configuration).
5. Turn on Enable/Disable, keep Test Mode on, click Save and place a test order. Then enter the live secret key and turn off Test Mode.
On install the module creates the order status Nets payment on hold. PrestaShop links a new payment module only to the countries that are active at install time. Check the currencies, countries and customer groups of the module in Payment > Preferences.
Configuration
All settings are on the module page: Modules > Module Manager > VibeFox Nets Nexi Gateway > Configure. Each section has its own Save button, which saves the whole page. Above the fields the page warns you when the secret key of the selected mode is missing, for example Nets Nexi: enter the Test Secret Key — the payment method is hidden at checkout until the key of the selected mode is set., and shows Nets Nexi is in test mode: payments go to the Nets test environment and no real money is charged. while test mode is on.
Nets Nexi (Nordics)
The section title shows TEST or LIVE for the selected mode.
Enable/Disable: Enable Nets Nexi Gateway turns the payment method on or off. Default: off.
Title: the payment method title displayed to customers during checkout. It is also the payment method name stored in the order. Default: Nets Easy. Required: an empty title gives the error Enter a title for the payment method. and nothing is saved.
Description: the payment method description displayed to customers during checkout. Default: Pay securely with Nets Easy.
API keys
Copy the secret keys from the Nets Easy portal under Company > Integration: the test portal (test.portal.dibspayment.eu) for the test key and the live portal (portal.dibspayment.eu) for the live key. The checkout keys are not needed.
Test Mode: test mode uses test.api.dibspayment.eu with the test secret key; live mode uses api.dibspayment.eu with the live secret key. Refunds and captures of an order always use the environment in which it was paid. Default: on. While it is on, customers see Test mode: no real money will be charged. under the payment method.
Test Secret Key: your Nets test environment secret API key.
Live Secret Key: your Nets live environment secret API key.
Saved keys are never shown again. The field stays empty and shows Saved — leave empty to keep it. Type a new value only to change it.
Clear saved secrets: tick a key and click Save to remove it. An empty field keeps the saved value.
Payment
Webhooks: Nets notifications (webhooks) are registered automatically with every payment. There is nothing to configure in the Nets portal. The section shows the address they are sent to. With friendly URLs it looks like https://your-shop/module/wcp_nets_nexi_gateway/webhook, possibly with a language code such as /en/. If the address is not a public HTTPS address, the section warns you that the shop does not receive webhooks; payments are then confirmed when the customer returns to the shop or with Nets: check payment status and capture on the order page. These events are registered:
Each webhook must carry the random secret that the module created for that payment. Webhooks without the correct secret are rejected. The webhook only tells the module which payment changed: the payment itself is always read from the Nets API with the secret key of the environment it was made in. The webhook works while the shop is in maintenance mode and is not blocked by the country restriction of your shop.
Order Status After Payment: the status of the order once Nets has confirmed and charged the payment.
Advanced
Debug log: logs API calls and payment status changes to logs/nng_debug.log.php in the module folder. The file cannot be opened from the web. Errors are always logged. Keys and customer data are not logged. Default: off.
Log: shows the size and the latest entries of the log. Click Clear log to empty it.
Delete Data on Uninstall: deletes the module settings and logs when the module is uninstalled. Payment data stored on orders is always kept. Default: off.
Checkout
At the payment step the customer chooses the payment method (by default Nets Easy) and confirms. The module creates a Nets payment for the cart total in the cart currency, with the products, shipping, gift wrapping and discounts as order lines, and sends the customer to the Nets hosted payment page. The payment reference at Nets is the cart number. The customer's e-mail, name, address and phone number are passed to Nets when Nets accepts their format. The terms and conditions page of your checkout is linked on the Nets page (the shop home page if none is set). No order exists yet at this point.
After paying, the customer returns to your shop. The order is marked paid only after Nets confirms it: the module reads the payment from the Nets API, compares the reserved amount and currency with the cart, charges the reservation and only then creates the order. This happens on the webhook or when the customer comes back, whichever is first. The customer then sees the standard order confirmation page. If the payment could not be confirmed yet (Nets could not be reached, or another request was confirming it at that moment), a Payment confirmation page shows Your Nets payment is being confirmed. Your order will be created as soon as it is confirmed — please do not pay again. with the buttons Check again and Back to checkout.
If the customer cancels on the Nets page, they return to the checkout with The Nets payment was cancelled. You can try again or choose another payment method. If nothing was paid, the message is The payment was not completed. You can try again or choose another payment method. The cart is kept. On a new attempt the module first checks the previous payment; if it is already paid, the order is created instead of a new payment. Otherwise the previous Nets session is closed before a new one starts.
If Nets cannot start the payment, the customer stays at checkout with a short message, for example Nets could not start the payment with the details of this order. Please check your address and phone number, or choose another payment method., This payment method is temporarily unavailable. Please choose another payment method. or The payment service could not be reached. Please try again in a moment. A cart total of zero gives The order total must be greater than zero to pay with Nets. The details are written to the log.
The module uses the hosted payment page only. It has no embedded on-page Nets checkout, no subscriptions or recurring payments, no saved cards, no invoice fees, no authorize-only mode and no partial captures per shipment.
Orders and refunds
Order statuses
No order yet: the customer was sent to Nets and has not paid, or the payment is not confirmed yet. Only the cart exists.
Payment accepted or Delivered: Nets confirmed and charged the payment. The status follows Order Status After Payment. The payment is recorded with the Nets payment ID as the transaction ID, and a note shows the payment ID, the charge ID and the payment method.
Nets payment on hold: the amount or currency at Nets differs from the cart (not captured), the capture was declined, or the customer paid after the order had been cancelled (reserved, not captured). The note explains it. Nothing is captured automatically. After reviewing the order, capture with Nets: check payment status and capture, or cancel the reservation in the Nets portal.
Canceled: the reservation of an order on hold was cancelled, for example in the Nets portal.
Refunded: the payment was fully refunded through the module.
Repeated webhooks and reloads never charge twice or add duplicate notes, and a paid order is never changed again by Nets events. If an old payment link is completed for an order that is already paid, the second reservation is released automatically; if it was already charged, a note asks you to refund it in the Nets portal.
Nets Easy payment block
The order page shows a Nets Easy payment block with the payment ID, the charge ID, the environment (with a Test environment badge for test payments), the status, the amounts reserved and charged at Nets, the order total and the amount refunded, the refund history and the Nets notes of the order. The buttons of the block work for every employee who may edit orders; access to the Modules pages is not needed.
Nets: check payment status and capture: shown for orders that are not paid yet. It reads the payment from Nets and captures a reservation that matches the order, also after a failed capture or after you have reviewed an order on hold. If nothing changes, a note explains why, for example that the customer has not completed the payment yet.
Refunds
In the Nets Easy payment block enter the amount (the amount not refunded yet is filled in), optionally a reason, and click Refund via Nets. Confirm the question Refund this amount through Nets? This cannot be undone. Full and partial refunds are supported once the payment is charged; a payment that is only reserved can be cancelled in the Nets portal. The refund goes to the charge of the order in the environment in which it was paid. If Nets does not accept the refund, the block shows the error and no refund is recorded. A successful refund is added to the refund history and the notes with the Nets refund ID. A full refund sets the order to Refunded; a partial refund does not change the status.
The module does not create credit slips. The standard PrestaShop refund buttons of the order page do not send money back through Nets. Refunds made in the Nets portal are not synchronised; update the order manually if needed.
License key
The module works with a VibeFox license key from vibefox.net. The license block License — VibeFox Nets Nexi Gateway is the first block on Modules > Module Manager > VibeFox Nets Nexi Gateway > Configure, above the settings. Paste the key into License key and click Activate. After that the block shows the key masked, the status (for example the date the license is active until and your domain) and the buttons Check now to check the status again, Change key to enter another key and Remove key to remove the key from this shop. Below them are the line Product: presta-payment-nets-nexi and the link Manage licenses and domains in your account, which opens your vibefox.net account. Only employees with the Configure permission for the module can change the key. The texts of the block follow the back office language (English and Russian are included).
If the key is not accepted, the block says why, for example Key not found, This key belongs to another product, Domain limit reached or License expired on a date. After the shop address changes, or after you free a domain slot in your account, click Check now. If the license server cannot be reached, the module keeps working on the last known status.
One key works on one domain: the domain of the main shop, also in a multistore setup. Removing the key from the shop does not free its domain slot. Free the slot in your vibefox.net account.
Without an active key, Nets is not shown to customers at checkout. If a payment is started anyway, the customer sees This payment method is not available. Please choose another one. The PrestaShop storefront does not know that you are logged in to the back office, so the payment method is hidden for you too: you can set up the module before you buy a key, but not test it at checkout. A reminder appears in Modules > Module Manager on the Alerts tab. Existing orders are not affected: payments already started are still confirmed, and refunds work.
When a license expires, the module keeps working, but updates and support need a renewal. The status is checked again automatically while you work in the back office: once a day for the first 14 days after the key is entered, then once a week. No cron job is needed. Uninstalling or resetting the module always removes the license key and license status.
Troubleshooting
Nets Nexi does not appear at checkout: check that the license is active, Enable/Disable is on and the selected mode has a secret key: Test Secret Key in test mode, Live Secret Key in live mode. The settings page shows a warning when the key is missing. In Payment > Preferences check that the module is allowed for the cart currency, the customer's country and the customer's group.
The payment went through, but no order was created: the webhook did not reach your shop. Check that the shop uses HTTPS and friendly URLs, so that the address in Webhooks is a public HTTPS address without "&", and that the secret key of the payment's environment is set. The order is also created when the customer returns to the shop after paying.
Webhook answers Unauthorized: the webhook did not carry the secret of that payment. Webhooks are only accepted with the secret registered with the payment.
Webhook answers Busy, retry later, Payment lookup failed or Payment not reserved yet: another request was confirming the same cart, the Nets API could not be reached, or the reservation was not visible yet. Nets retries the webhook automatically.
Webhook answers Order could not be created, retry later: the order could not be created, for example because the module is disabled. Turn on Debug log to see the reason.
The webhook URL shows Method not allowed in the browser: this is normal. The address accepts only requests from Nets.
The customer sees an error when choosing Nets: turn on Debug log and look at the Log field on the module page. This payment method is temporarily unavailable. Please choose another payment method. usually means a wrong or missing secret key. A rejected currency is reported by Nets in the log.
Order is Nets payment on hold after payment: read the Nets notes in the block. If the capture was declined, retry with Nets: check payment status and capture or charge it in the Nets portal. If the amount or currency differs, check the payment in the Nets portal. If the customer paid after cancellation, review the order and capture or cancel the reservation.
Refund via Nets is missing or fails: refunds are only possible after the payment has been charged; the block then shows a charge ID. A refund uses the secret key of the environment in which the order was paid, so that key must be set; otherwise the block says which environment's key is missing.
Uninstall
Go to Modules > Module Manager, open the menu next to VibeFox Nets Nexi Gateway and choose Uninstall. The license key and license status of this module are always removed. If Delete Data on Uninstall is on, the module settings and the log are removed. If it is off, all settings are kept for a later re-install. The Nets payment data of orders (payments, charges and refunds) and the order status Nets payment on hold are always kept, so orders paid before can still be refunded after a re-install. Existing orders keep their payment notes and transaction IDs.
Nets, Nets Easy and Nexi are trademarks of their respective owners. This module is not affiliated with or endorsed by Nets or Nexi.
