Back

VibeFox GoPay for WooCommerce — Help

Requirements

WordPress: 6.0 or later.

WooCommerce: 7.6 or later, installed and active. The plugin refuses to activate without it.

PHP: 8.0 or later.

Currency: GoPay accepts CZK, EUR, PLN, USD, GBP, HUF, RON and BGN. With another currency the payment method is hidden at checkout.

GoPay account: you need the GoID, Client ID and Client Secret of your GoPay merchant account. They are in the integration settings of the account. The sandbox (test) account has its own credentials. Nothing has to be set up in the GoPay account for notifications, but your store must be reachable from the internet.

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_gopay_gateway folder to /wp-content/plugins/ by FTP.

2. Click Activate.

3. Open the settings: WooCommerce > Settings > Payments > GoPay > 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. Enter the sandbox GoID, Client ID and Client Secret, keep Test Mode on and turn on Enable/Disable.

6. Place a test order. When everything works, enter the production credentials and untick Test Mode.

Configuration

All settings are on one page: WooCommerce > Settings > Payments > GoPay. Under the gateway description the page shows Sandbox mode — test payments only or Production mode — real payments. It warns you when the GoID, Client ID or Client Secret of the current mode is missing, and when GoPay does not accept the store currency. In both cases GoPay is not offered at checkout. In the list of payment methods the gateway is marked as needing setup until the current mode has its credentials. When you save, the cached GoPay access tokens are cleared, so new credentials are used at once.

Enable/Disable: Enable GoPay payment gateway turns the payment method on or off. Default: off.

Title: the payment method title displayed at checkout. Default: GoPay.

Description: the payment method description displayed at checkout. Default: Pay securely via GoPay - cards, wallets, bank transfers.

API credentials

GoID, Client ID and Client Secret are shown in your GoPay merchant account (integration settings). The sandbox (test) account has its own credentials. The API documentation is at doc.gopay.com.

Test Mode: Enable sandbox/test mode sends payments to gw.sandbox.gopay.com with the sandbox credentials. No real money is charged. Untick it to accept real payments with the production credentials (gate.gopay.cz). Default: on.

Sandbox GoID: the GoID of your GoPay sandbox (test) account.

Sandbox Client ID: the OAuth Client ID of the sandbox account.

Sandbox Client Secret: the OAuth Client Secret of the sandbox account.

Production GoID: your GoPay merchant ID (GoID).

Production Client ID: the OAuth Client ID from GoPay.

Production Client Secret: the OAuth Client Secret from GoPay.

A GoID contains digits only, for example 8123456789. If you enter something else, the page shows an error and the previous value is kept.

Payment

Payment Page Language: the language of the GoPay payment page. Default: Automatic (site language, then billing country). Automatic uses the language of your site; if GoPay does not have it, the billing country decides, and English is used otherwise. You can also fix one of 19 languages: Czech, English, Slovak, German, Polish, Hungarian, Romanian, Bulgarian, Croatian, Slovenian, Estonian, Latvian, Lithuanian, French, Italian, Spanish, Portuguese, Ukrainian or Russian.

Order Status After Payment: the order status set when the payment is confirmed. The status is set at once, with one status change and one customer e-mail.

Processing: the WooCommerce default (default).
Completed: every paid order becomes Completed.

Payment notifications

The notification tells your store that a payment has been made. The notification URL is sent to GoPay with every payment, so nothing has to be set up in the GoPay account. The settings show the URL. It looks like https://your-site/?gopay-api=gopay_payment_notification. It must be reachable from the internet: no password protection, maintenance mode or firewall in front of it.

GoPay notifications carry only the payment ID and no signature. Every notification is verified by asking the GoPay API for the payment state, and the payment must be one the plugin created for an order of your store. When the state cannot be read from GoPay, your store answers with an error and GoPay repeats the notification. Without notifications, an order is confirmed only when the customer comes back to the store after paying.

Advanced

Logging: Enable logging writes GoPay events to WooCommerce > Status > Logs, source wcp_gopay_gateway. Errors are always logged. Credentials, tokens, card data and the customer's e-mail, phone and address are never logged. Default: off.

Delete Data on Uninstall: Delete plugin settings, cached access tokens and log files when uninstalled. When on, deleting the plugin removes the gateway settings, the cached GoPay access tokens and the logs. Default: off.

Checkout

The customer chooses the payment method (by default GoPay) and places the order. The plugin creates a GoPay payment for the order total in the order currency, with the order items, shipping and fees, and sends the customer to the GoPay payment page. There GoPay offers the payment methods enabled on your GoPay account, such as payment cards, Apple Pay, Google Pay and bank transfers. The customer's billing name, e-mail, phone and address are passed to GoPay; empty fields are not sent. The payment shows at GoPay as Order and the order number.

After paying, the customer returns to your store. The order is marked paid only after GoPay confirms it: by the notification or by a request to the GoPay API when the customer returns. A notification and a return arriving at the same moment are handled one after the other, so the order is never completed twice. When the payment is confirmed, the customer lands on the order received page.

If the payment was not completed, was cancelled or has expired, the customer is taken to the Pay for order page with the message The GoPay payment was not completed. You can try again or choose another payment method. or The GoPay payment was cancelled or has expired. You can try again or choose another payment method. A customer can pay an unpaid order again from that page. For an order that is already paid, no second GoPay payment is created.

If GoPay cannot start the payment, the customer sees a short message, for example GoPay could not accept the payment details. Please check your billing details (e-mail, phone, address) or choose another payment method. or GoPay is temporarily unavailable. Please try again in a moment or choose another payment method. The technical reason is added to the order notes.

The payment method works on the classic checkout, on the Cart and Checkout blocks and on the Pay for order page. In sandbox mode the Checkout block shows Sandbox mode: no real payment will be made. It is compatible with WooCommerce High-Performance Order Storage (HPOS).

The customer chooses the payment method on the GoPay page; it cannot be chosen in WooCommerce. The plugin has no subscriptions or recurring payments, no saved cards, no embedded payment form and no capture or void of pre-authorizations from WooCommerce.

Orders and refunds

Order statuses

Pending payment: the customer was sent to GoPay and has not paid yet, or GoPay has not confirmed the payment yet.

Processing or Completed: the payment was confirmed. The status follows Order Status After Payment. The order note shows the GoPay payment ID and the payment instrument. The transaction ID is the GoPay payment ID.

On hold: GoPay confirmed the payment, but the amount or currency differs from the order; or the payment arrived after the order had been cancelled; or the payment is only pre-authorized and the money is not captured yet. The order note explains it. A pre-authorized payment has to be captured in GoPay, and then you complete the order manually.

Failed: the last GoPay payment of an unpaid order was cancelled or expired.

Refunded: the GoPay payment of the order was fully refunded, for example in the GoPay account.

If another payment attempt of an order that is already paid is paid as well, the order is not changed. A note asks you to refund the duplicate in the GoPay account. A similar note is added when a GoPay payment is paid for an order that was already marked as paid without GoPay, for example manually. A paid order that you cancelled or refunded is never reopened by a later notification.

Refunds

Open the order, click Refund, enter the amount and click Refund via GoPay. Full and partial refunds are supported. GoPay accepts partial refunds only 24 hours after the payment. The refund is sent in the mode the payment was made in (sandbox or production), so that mode's credentials must be set. If GoPay refuses the refund, WooCommerce shows GoPay's message and no refund is recorded. A successful refund is added to the order notes. A refund that GoPay accepted for later processing is also noted as accepted.

Refunds made in the GoPay account arrive by notification. A full refund changes the order to Refunded; a partial refund adds a note. They are not recorded as WooCommerce refunds automatically.

License key

The plugin works with a VibeFox license key from vibefox.net. The license block is at the top of WooCommerce > Settings > Payments > GoPay. 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, GoPay 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

GoPay does not appear at checkout: check that the license is active, Enable/Disable is on, the current mode has its GoID, Client ID and Client Secret, and the currency is one of CZK, EUR, PLN, USD, GBP, HUF, RON or BGN. On the Pay for order page the order currency counts. The settings page shows a warning when the credentials or the currency are wrong.

The payment went through, but the order stays Pending payment: GoPay could not reach the notification URL shown in the settings, and the customer did not return to the store. Remove password protection, maintenance mode or firewall rules that block the URL. Check that the credentials of the mode the payment was made in are set, because each notification is verified with them. Look at WooCommerce > Status > Logs, source wcp_gopay_gateway. GoPay repeats notifications that did not get a successful answer.

Notification answers Order not found: the payment was not created by this store, or its order was deleted.

Notification answers Payment state could not be verified: the GoPay API could not be reached or the credentials of that mode are wrong. GoPay repeats the notification.

The customer sees an error when placing the order: open the order notes or turn on Logging. The note shows the GoPay error. Wrong credentials, or credentials of the other mode, are the usual reason. A message about billing details means GoPay did not accept the e-mail, phone or address.

Test payments do not confirm a live order: sandbox and production are kept apart. Each payment is checked in the mode it was created in. Switch Test Mode to the mode you want and use that mode's credentials.

Order is On hold after payment: read the order note. The paid amount or currency differed from the order, the payment came after the order was cancelled, or the payment is only pre-authorized.

Refund fails: read GoPay's message. A partial refund is possible only 24 hours after the payment. A message about the mode means the payment was made in sandbox or production mode and that mode's credentials are not 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.

For developers: the filter gopay_p_payment_payload changes the payment request, and gopay_p_icon changes the payment method icon.

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, the cached access tokens and the logs are removed only if Delete Data on Uninstall was on. Otherwise they stay for a later re-install. The GoPay payment IDs stored on orders are always kept. Existing orders keep their payment notes and transaction IDs.

GoPay is a trademark of its respective owner. This plugin is not affiliated with or endorsed by GoPay.