OneFor – Payment Gateway

Description

OneFor – Payment Gateway connects your WooCommerce store to OneFor so customers can pay online after checkout.

After placing an order, customers are taken to a branded OneFor payment page where they can pay with a credit or debit card, scan a QR code with the OneFor app, or sign in with their OneFor account. Orders are updated automatically when OneFor sends a webhook notification after payment.

Features

  • Single WooCommerce payment method at checkout
  • Card, QR code, and OneFor sign-in on the OneFor payment page
  • Staging and production API environments
  • Dedicated admin settings page with connection test
  • Webhook endpoint with HTTP Basic Auth for order status updates
  • WooCommerce Checkout Blocks support
  • Compatible with WooCommerce custom order tables (HPOS)
  • EUR orders supported

Requirements

  • WordPress 6.1 or higher
  • WooCommerce 7.0 or higher
  • PHP 7.4 or higher
  • HTTPS on your store
  • OneFor merchant API credentials
  • Store currency set to EUR

External services

This plugin connects to OneFor payment services so customers can complete checkout payments and so your store can receive payment status updates.

What it is used for

  • Creating payment sessions when a customer chooses OneFor at WooCommerce checkout
  • Redirecting the customer to OneFor-hosted payment pages (card, QR code, or OneFor sign-in)
  • Verifying API credentials from the plugin settings page (Test connection)
  • Receiving server-to-server webhook notifications when OneFor reports a payment result
  • Processing refunds through the OneFor API when initiated from WooCommerce

What data is sent, and when

  • When a customer pays: After checkout, your store sends the WooCommerce order ID, order total, currency (EUR), return URL, and merchant order reference to the OneFor API (api.staging.app.onefor.com or api.app.onefor.com). If configured, your merchant account number is also sent. API requests are authenticated with the API username and password you enter in the plugin settings.
  • When you click Test connection: Your API username and password are sent to the OneFor API to verify the connection.
  • When a refund is processed: The payment session ID is sent to the OneFor API.
  • On the OneFor payment pages: The customer completes payment on OneFor’s website or app. Any card, account, or identity data entered there is handled by OneFor, not stored by this plugin.
  • Webhook (incoming): OneFor sends payment status updates to your WordPress site. The plugin does not send customer location or tracking data to OneFor.

This plugin does not collect GPS location or track site visitors. It only communicates with OneFor when payment-related actions occur.

OneFor Terms of Service and Privacy Policy

  • Terms of Service: https://www.onefor.com/web/en/legalDocuments
  • Privacy Policy: https://www.onefor.com/web/en/privacyPolicy
  • Cookie policy: https://www.onefor.com/web/en/cookiePolicy
  • Imprint: https://www.onefor.com/web/en/imprint
  • Security & protection: https://www.onefor.com/web/en/security-posts
  • Complaint policy: https://www.onefor.com/web/en/compliantPolicy

Installation

  1. Upload the plugin files to /wp-content/plugins/onefor-payment-gateway, or install the plugin through the WordPress plugins screen.
  2. Activate the plugin through the Plugins screen in WordPress.
  3. Go to OneFor – Payment Gateway in the WordPress admin menu.
  4. Enter your OneFor API username and password.
  5. Copy the webhook URL shown in settings and provide it to OneFor so they can notify your store when payments complete.
  6. Set webhook key and webhook secret to match what OneFor configured for your merchant account.
  7. Enable the gateway and save your settings.
  8. Use Test connection to verify your API credentials before going live.
  9. Switch from staging to production when you are ready.

FAQ

Do I need a OneFor merchant account?

Yes. You need API credentials from OneFor before the gateway can create payment sessions.

Which currencies are supported?

OneFor currently supports EUR. The gateway is only available at checkout when your store currency is EUR.

How does the webhook work?

OneFor sends a server-to-server POST request to your store after a payment is processed. The plugin verifies the request using HTTP Basic Auth with your webhook key and secret, then updates the related WooCommerce order.

Does this work with WooCommerce blocks checkout?

Yes. The plugin registers support for WooCommerce Checkout Blocks.

Can I test before going live?

Yes. Enable staging mode in the plugin settings and use your OneFor sandbox credentials.

Reviews

September 22, 2026
Loved it, its super easy and the support is super friendly with setting up the accounts of my clients. Super seamless payment integration.
Read all 1 review

Contributors & Developers

“OneFor – Payment Gateway” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

2.5.55

  • Renamed WooCommerce gateway classes to OneFor_ prefix for Plugin Check compliance; webhook URL unchanged.

2.5.54

  • Improved admin onboarding guidance (signup/support links + webhook setup steps) and fixed settings clearing behavior.

2.5.53

  • Fixed card payment redirect URLs to use the same staging/production hosts as QR and sign-in (app.onefor.com / staging.app.onefor.com)

2.5.52

  • Equalized sidebar card spacing and moved credit card activation above OneFor support

2.5.51

  • Removed phpcs.xml.dist from the plugin package (not permitted on WordPress.org)
  • Always show OneFor support contact details after a successful API connection; credit card activation note only when card is unavailable

2.5.50

  • Fixed setup status badge and alert not updating after saving settings without a page refresh

2.5.49

  • Added OneFor legal and privacy links to the admin settings sidebar; expanded readme legal links

2.5.48

  • Documented OneFor external API usage, data transmission, and legal links in readme.txt

2.5.47

  • Added PHPCS text domain configuration; removed hidden files from the distributable package

2.5.46

  • Fixed PHP 8.2 dynamic property warnings and strengthened API URL migration on load

2.5.45

  • Fixed API URL migration from corebaas hosts and improved test connection errors to show the full request URL

2.5.44

  • Updated API base URLs to api.staging.app.onefor.com/core and api.app.onefor.com/core

2.5.43

  • Restored checkout logo via standard WooCommerce gateway icon without custom HTML in the payment title

2.5.42

  • Removed all checkout UI customization; payment method now uses plain WooCommerce title and description only

2.5.41

  • Stopped checkout HTML from being stored on orders; admin order payment line now always shows plain text

2.5.40

  • Fixed raw HTML showing in WooCommerce admin order payment details

2.5.39

  • Fixed Plugin Check warning on legacy admin settings URL redirect

2.5.38

  • Fixed WooCommerce settings link and legacy admin URL redirect for old onefor-epay-gateway page slug
  • Removed unused legacy payment-waiting assets

2.5.37

  • Renamed main plugin file to onefor-payment-gateway.php to match the WordPress.org slug

2.5.36

  • Plugin Check: fixed i18n translators comments, enqueued payment page assets, and WordPress 7.0 compatibility metadata
  • Raised minimum WordPress version to 6.1 for object cache group support

2.5.35

  • WordPress.org: added License header and aligned text domain with plugin slug

2.5.28

  • Fixed infinite recursion in checkout title filter that could cause a critical site error

2.5.27

  • Fixed page scroll when the mouse is over the sticky admin sidebar

2.5.26

  • Increased spacing between admin settings columns

2.5.25

  • Sticky admin sidebar, improved payment method card layout, and spacing polish

2.5.24

  • Improved checkout logo size and text alignment for classic and blocks checkout

2.5.23

  • Security: added nonce verification for order status polling
  • Security: sanitized query string input and improved output escaping
  • Added readme.txt for WordPress.org submission

2.5.22

  • Faster redirect after successful payment on the payment selection page

2.5.21

  • Updated plugin display name to OneFor – Payment Gateway

2.5.20

  • Fixed payment redirect URL format for QR and sign-in flows

2.5.19

  • Updated session creation payload for OneFor API compatibility

2.5.18

  • Test connection now uses the methods endpoint instead of creating a test session

2.5.17

  • Removed webhook URL from session creation payload per OneFor API guidance

2.5.0

  • Redesigned payment selection page
  • Webhook handling with Basic Auth
  • Staging and production environment support