A WooCommerce payment gateway for Vipps and MobilePay payments via QR codes and push notifications. Built for WooCommerce POS (Pro) and standard WooCommerce web checkout.
This gateway uses the Vipps MobilePay ePayment API with two payment flows:
QR Code — Click "Generate QR Code" to display a QR code on screen. The customer scans it with the Vipps or MobilePay app and confirms payment.
Send to Phone — Enter the customer's phone number and click "Send to Phone." The plugin automatically detects the best available method:
- Direct push (preferred) — Sends a payment request straight to the customer's Vipps app. Requires Vipps to enable
PUSH_MESSAGEon your sales unit (see Enabling Direct Push below). - Landing page fallback — If direct push isn't enabled, the plugin opens the Vipps landing page in a new browser tab instead. The landing page handles sending the notification to the customer. Works out of the box with no special approval.
The plugin detects which method is available on the first attempt and remembers the result for 24 hours. If direct push isn't available, you'll see a one-time message asking you to click "Send to Phone" again — after that it works seamlessly.
Both flows poll for payment status every 2 seconds (up to 5 minutes). When the payment is authorized, the order completes automatically.
- Download the latest release from the releases page
- Install via
WP Admin > Plugins > Add New > Upload Plugin - Activate the plugin
- Go to WooCommerce > Settings > Payments > WCPOS Vipps MobilePay
- Enter your Vipps API credentials (see below)
git clone https://github.com/wcpos/wcpos-vipps.git wp-content/plugins/wcpos-vipps
cd wp-content/plugins/wcpos-vipps
composer installYou need credentials from the Vipps MobilePay portal:
| Credential | Description |
|---|---|
| Merchant Serial Number | Your sales unit MSN |
| Client ID | OAuth client ID |
| Client Secret | OAuth client secret |
| Subscription Key | Ocp-Apim-Subscription-Key |
If the official Checkout with Vipps MobilePay plugin is already installed and configured, credentials are imported automatically on first activation.
| Setting | Default | Description |
|---|---|---|
| Auto Capture | Enabled | Capture funds immediately after authorization. Disable for reserve-and-capture workflows. |
| Test Mode | Disabled | Route API calls to apitest.vipps.no using test credentials. |
| Debug Log | Disabled | Log payment events to WooCommerce > Status > Logs and show a live log panel on the checkout screen. |
This gateway is designed to work inside the WooCommerce POS checkout. The payment interface renders on the order-pay page — the same page the POS loads for payment processing. With direct push enabled, the entire flow stays in-page with no external windows. If using the landing page fallback, a single browser tab opens for the customer (see Enabling Direct Push).
- Enable the gateway in
WP Admin > WooCommerce POS > Settings > Checkout - You don't need to enable it in WooCommerce Payments settings for POS-only use
The gateway also works on the standard WooCommerce checkout. Selecting "WCPOS Vipps MobilePay" and clicking "Place Order" creates the order and redirects to the order-pay page, where the QR code and push notification interface appears.
The direct push flow (PUSH_MESSAGE) provides the best checkout experience — the customer gets a notification on their phone without any extra tabs or pages. However, Vipps requires explicit approval on your sales unit before you can use it.
To enable direct push:
- Log in to portal.vippsmobilepay.com
- Contact your Vipps key account manager, partner manager, or customer service
- Tell them: "I need PUSH_MESSAGE enabled on my MSN for use with a POS integration"
Once approved, the plugin detects the change automatically (within 24 hours) and switches to the direct push flow. An admin notice on the gateway settings page will remind you to set this up while you're using the landing page fallback.
When Debug Log is enabled in the gateway settings:
- WooCommerce Logs — All API requests, responses, and errors are written to
WooCommerce > Status > Logswith sourcewcpos-vipps - Live Log Panel — A collapsible textarea appears on the checkout screen showing real-time payment events (both server-side API activity and client-side flow events)
Server-side log entries are buffered per-order in WordPress transients and delivered to the frontend via the existing polling AJAX responses — no extra requests.
| Region | Brand | Currencies |
|---|---|---|
| Norway | Vipps | NOK |
| Denmark, Finland | MobilePay | DKK, EUR |
- WordPress 5.0+
- WooCommerce 5.0+
- PHP 7.4+
- HTTPS (required by Vipps API)
- WooCommerce POS Pro (for POS checkout)
wcpos-vipps.php → Plugin bootstrap, registers gateway
includes/Gateway.php → WC_Payment_Gateway subclass, settings, payment fields
includes/Api.php → Vipps ePayment API client (auth, create, capture, refund, cancel)
includes/AjaxHandler.php → AJAX endpoints for create_payment, check_status, cancel_payment
includes/AdminNotice.php → Admin notice for direct push upgrade nudge
includes/Logger.php → Debug logging with per-order transient buffer
assets/src/ → React/TypeScript frontend (payment UI, hooks, components)
assets/css/payment.css → Payment interface styling (Vipps brand colors)
GPL-3.0-or-later