VibeFox Nets Nexi for WooCommerce — Help
Requirements
WordPress: 6.0 or later.
WooCommerce: 7.0 or later, installed and active. The plugin refuses to activate without it.
PHP: 8.0 or later.
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 plugin does not restrict currencies or countries. 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 site needs HTTPS and pretty permalinks to receive webhooks. On other sites the payment is still confirmed when the customer returns to the store or with the order action.
VibeFox license key: bought on vibefox.net. One key works on one domain.
Installation
1. In WordPress go to Plugins > Add New > Upload Plugin, choose the plugin ZIP file and click Install Now. You can also upload the wcp_nets_nexi_gateway folder to /wp-content/plugins/ by FTP.
2. Click Activate.
3. Open the settings: WooCommerce > Settings > Payments > Nets Nexi (Nordics) > Manage, or click Settings under the plugin name on the Plugins page.
4. Enter your VibeFox license key in the license block at the top of the page and click Activate.
5. Copy the test secret key from the Nets Easy test portal and paste it into Test Secret Key (see Configuration).
6. Turn on Enable/Disable, keep Test Mode on and place a test order. Then enter the live secret key and untick Test Mode.
Configuration
All settings are on one page: WooCommerce > Settings > Payments > Nets Nexi (Nordics). Above the fields the page warns you when the secret key of the selected mode is missing (the payment method is then hidden at checkout), 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. In the list of payment methods, Nets Nexi is marked as needing setup until the selected mode has a secret key.
General
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. Default: Nets Easy.
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: Enable 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.
Test Secret Key: your Nets test environment secret API key.
Live Secret Key: your Nets live environment secret API key.
Payment
Nets notifications (webhooks) are registered automatically with every payment. There is nothing to configure in the Nets portal. This section shows the webhook URL. It looks like https://your-site/wc-api/nng_nets_nexi/. If the URL is not a public HTTPS address, the section warns you that the site does not receive webhooks; payments are then confirmed when the customer returns to the store or with the order action Nets: check payment status and capture. These events are registered:
Each webhook must carry the random secret that the plugin created for that order. Webhooks without the correct secret are rejected. The webhook only tells the plugin which payment changed: the payment itself is always read from the Nets API with your secret key.
Order Status After Payment: the status of the order once Nets has confirmed and charged the payment. The status is set at once, so the customer receives one e-mail.
Advanced
Debug log: Enable debug logging logs API calls and payment status changes to WooCommerce > Status > Logs, source wcp_nets_nexi_gateway. Errors are always logged. Keys and customer data are not logged. Default: off.
Delete Data on Uninstall: Delete the plugin settings and logs when the plugin is deleted. Deactivating the plugin never deletes anything. Payment data stored on orders is always kept. Default: off.
Checkout
The customer chooses the payment method (by default Nets Easy) and places the order. The plugin creates a Nets payment with the order lines, shipping and fees in the order currency and sends the customer to the Nets hosted payment page. The customer's e-mail, name, address and phone number are passed to Nets when Nets accepts their format; your terms and conditions page is linked on the Nets page. In test mode the checkout shows Test mode: no real money will be charged.
The customer pays and returns to the order received page of your store. The order is marked paid only after Nets confirms it: the plugin reads the payment from the Nets API, compares the reserved amount and currency with the order, charges the reservation and only then completes the order. This happens on the webhook, on the customer's return to the order received page, or with the order action Nets: check payment status and capture.
If the customer cancels on the Nets page, they return to the checkout or the Pay for order page with the message The Nets payment was cancelled. You can try again or choose another payment method. A customer can pay an unpaid order again. The plugin first checks the previous payment; if it is already paid, the order is confirmed. Otherwise the previous Nets session is closed before a new one starts. If a payment of the order is held for your review, the customer sees A payment for this order is already being reviewed by the shop. Please contact us instead of paying again.
If Nets cannot start the payment, the customer sees 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. or The payment service could not be reached. Please try again in a moment. The details are written to the log.
The payment method works on the classic checkout, on the Checkout block and on the Pay for order page. It is compatible with WooCommerce High-Performance Order Storage (HPOS).
The plugin 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
Pending payment: the customer was sent to Nets and has not paid yet. The order note shows the Nets payment ID, the amount and the environment.
Processing or Completed: Nets confirmed and charged the payment. The status follows Order Status After Payment. The order note shows the payment ID, the charge ID and the payment method. The transaction ID is the Nets payment ID.
On hold: the amount or currency at Nets differs from the order (not captured), the capture was declined, or the customer paid after the order had been cancelled (reserved, not captured). The order note explains it. After reviewing the order, capture with the order action Nets: check payment status and capture, or cancel the reservation in the Nets portal.
Cancelled: the reservation of the order's latest payment was cancelled, for example in the Nets portal.
Repeated webhooks and reloads never charge twice or add duplicate notes, stock reductions or e-mails, and an order that was paid, refunded or cancelled after payment is never reopened. 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.
Order action
For unpaid orders with a Nets payment, the order actions list has Nets: check payment status and capture. It reads the payment from Nets and captures a matching reservation. If nothing changes, a note explains why, for example that the customer has not completed the payment yet.
Refunds
Open the order, click Refund, enter the amount and click Refund via Nets Easy (the button uses the payment method title). 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, WooCommerce shows the error and no refund is recorded. A successful refund is added to the order notes with the Nets refund ID.
Refunds made directly in the Nets portal are not turned into WooCommerce refunds. If needed, create a manual refund in WooCommerce without Refund via Nets Easy.
License key
The plugin works with a VibeFox license key from vibefox.net. The license block is at the top of WooCommerce > Settings > Payments > Nets Nexi (Nordics). Paste the key into License key and click Activate. The block shows the status, for example the date the license is active until and your domain. Use Check now to check the status again, Change key to enter another key and Remove key to remove it from this site. The link Manage licenses and domains in your account opens your vibefox.net account.
One key works on one domain. Removing the key from a site does not free its domain slot. Free the slot in your vibefox.net account.
Without an active key, Nets Nexi 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. Logged-in store managers still see the payment method, marked (unlicensed — visible to admins only), so you can set up and test the plugin before you buy a key. A reminder appears on the Plugins page and on WooCommerce pages. Existing orders are not affected: payments already started are still confirmed, and refunds work.
When a license expires, the plugin keeps working, but updates and support need a renewal. The status is checked again automatically in the background.
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.
The payment went through, but the order stays Pending payment: the webhook did not reach your store. Check that the site uses HTTPS and pretty permalinks, so that the webhook URL in the Payment section is a public HTTPS address without "&", and that the secret key of the payment's environment is set. Then use the order action Nets: check payment status and capture. The order is also confirmed when the customer returns to the order received page.
Webhook answers Unauthorized: the webhook did not carry the secret of that order. 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 updating the order, the Nets API could not be reached, or the reservation was not visible yet. Nets retries the webhook automatically.
The customer sees an error when placing the order: turn on Debug log and look at WooCommerce > Status > Logs, source wcp_nets_nexi_gateway. 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 On hold after payment: read the order note. If the capture was declined, retry with the order action 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 Easy is missing or fails: refunds are only possible after the payment has been charged. Check the order note for the charge. A refund uses the secret key of the environment in which the order was paid, so that key must be set.
The license block shows an error: follow the message in the block. For example, if the key is already used on another domain, free a slot in your vibefox.net account and click Check now. If the site address changed, click Check now to activate the key for the new domain. If the license server cannot be reached, the plugin keeps working on the last known status.
Uninstall
Deactivating the plugin keeps all data. To remove it, deactivate and delete it on the Plugins page. The license key and license status of this plugin are always removed. The gateway settings and the logs are removed only if Delete Data on Uninstall was on. Otherwise they stay for a later re-install. Existing orders keep their payment notes and transaction IDs.
Nets, Nets Easy and Nexi are trademarks of their respective owners. This plugin is not affiliated with or endorsed by Nets or Nexi.
