VibeFox Conekta for WooCommerce — Help
Requirements
WordPress: 6.0 or later.
WooCommerce: 8.0 or later, installed and active. The plugin refuses to activate without it.
PHP: 8.0 or later.
Currency: the store currency must be MXN or USD. For other currencies the payment method is hidden.
Conekta account: you need the private API keys of your Conekta account (test and live) and a webhook in the Conekta panel (see Configuration). Only the private keys are used. The public key is not needed, because the payment happens on the Conekta hosted checkout.
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_conekta_gateway folder to /wp-content/plugins/ by FTP.
2. Click Activate.
3. Open the settings: WooCommerce > Settings > Payments > Conekta > 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 your test and live private keys, choose the mode and add the webhook in the Conekta panel (see Configuration).
6. Turn on Enable / Disable and save. Test a payment in test mode, then untick Test mode.
Configuration
All settings are on one page: WooCommerce > Settings > Payments > Conekta. Above the fields the page warns you when Conekta is enabled but the private key of the current mode is empty (the payment method is then hidden at checkout) and when the store currency is not MXN or USD. While test mode is on it shows Test mode is on: payments are simulated with the test private key. When you save an enabled gateway without the key of the current mode, an error message asks you to enter it.
General
Enable / Disable: Enable Conekta payments turns the payment method on or off. Default: off.
Title: the payment method name the customer sees at checkout. Default: Conekta.
Description: the text shown under the payment method at checkout. Default: Pay securely with card, OXXO cash or SPEI transfer. You will be redirected to Conekta to complete your payment.
Payment methods: the methods offered on the Conekta payment page. Default: card, cash and bank transfer. Cash, SPEI and BNPL are available for MXN orders only (USD orders get cards only) and must be enabled in your Conekta account. If nothing is selected, card is used.
API keys
Copy your private keys from the Conekta panel under Developers > API keys. Test and live keys are different.
Test mode: Enable test mode uses the test private key. No real money is charged and a TEST MODE badge is shown at checkout. Refunds always use the key of the mode the payment was made in. Default: on.
Test private key: the private API key from the test mode of your Conekta account.
Live private key: the private API key from the production mode of your Conekta account. Keep it secret.
Each Conekta order remembers its mode: notifications and refunds use the matching key. Keep both keys filled in while old test orders are still open.
Webhook
The webhook tells your store about payments made after the customer left the Conekta page, for example OXXO or SPEI payments. In the Conekta panel go to Developers > Webhooks and add the URL shown in this section for test and for live mode. It looks like https://your-site/wc-api/webhook_wc_conekta/.
Select these events:
The webhook body only tells the plugin which Conekta order changed. Every notification is verified by reading the order back from the Conekta API with the private key of its mode; the webhook Digest signature header is not used. Notifications for Conekta orders that were not created by this store for that order are acknowledged and ignored. Without the webhook, an order is confirmed only when the customer comes back to the store after paying, or on the next payment attempt for the same order.
Advanced
Debug log: Log API calls and notifications writes details to WooCommerce > Status > Logs, source wcp_conekta_gateway. Errors are always logged. Logs never contain API keys or customer contact data. Default: off.
Delete data on uninstall: Remove the settings, Conekta order references and logs when the plugin is deleted. Default: off.
Checkout
The customer chooses the payment method (by default Conekta) and places the order. The plugin creates a Conekta order for the order total in the order currency, with the order items, shipping, taxes and discounts, and sends the customer to the Conekta hosted checkout. There the customer pays with one of the allowed methods.
After paying, the customer returns to your store. The order is marked paid only after Conekta confirms it: the plugin reads the order from the Conekta API when the webhook arrives and when the customer comes back. If the payment cannot be confirmed yet, the order received page shows We are confirming your payment with Conekta. The order will be updated automatically — please do not pay again. When the customer chose OXXO or SPEI and got a payment reference, the order goes On hold and the page shows Your Conekta payment reference has been issued. The order will be confirmed as soon as the payment is received.
If the payment is declined, the order is marked Failed and the customer returns to the Pay for order page with The Conekta payment was not completed. Please try again or choose another payment method. If the checkout expired or was cancelled, the customer sees The Conekta payment has expired or was cancelled. Please place the order again. When the customer pays an order again, an open Conekta checkout with the same amount is reused; otherwise the previous one is cancelled in Conekta before a new one is created, so an old link cannot be paid twice. If the previous checkout was already paid, the payment is recorded instead of charging again.
If Conekta cannot start the payment, the customer sees a short message, for example The payment could not be started. Please try again in a moment or choose another payment method. The technical reason is 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 texts are translated into Spanish (Mexico).
The plugin takes payments on the Conekta page only. It has no card form on your checkout page, no saved cards, subscriptions, pre-authorization and capture or monthly installments (MSI).
Orders and refunds
Order statuses
Pending payment: the customer was sent to Conekta and has not paid yet. The order note shows the Conekta order and the mode.
Processing: Conekta confirmed the payment with the same amount and currency (orders with only virtual downloadable products become Completed, the WooCommerce default). The order note shows the payment method (for example the card brand and last four digits, OXXO / cash or SPEI transfer), the Conekta order and the charge. The transaction ID of the order is the Conekta charge ID.
On hold, waiting for OXXO or SPEI: the customer got a payment reference. The order becomes Processing when Conekta reports the payment.
On hold after payment: the amount or currency received from Conekta does not match the order, a test-mode payment arrived while the store is in live mode (no real money was collected), or the payment arrived for an order that was already cancelled. The order note explains it. Check the payment, then complete the order or refund it. An order that is only pre-authorized in Conekta is also put on hold with a note to capture or void it in the Conekta panel.
Failed: the payment was declined. The note shows the reason. The customer can pay again.
Cancelled: the current Conekta checkout expired or was cancelled.
A paid or refunded order is never downgraded or re-opened. If another Conekta payment arrives for an order that is already paid, a WARNING note asks you to refund it in the Conekta panel.
Refunds
Open the order, click Refund, enter the amount and click Refund via Conekta (the button shows the payment method title). Full and partial refunds are supported. The refund goes to the Conekta order that holds the payment and uses the key of the mode the payment was made in, so that key must be set. If Conekta 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 amount, mode, Conekta order, refund ID and reason.
Refunds made in the Conekta panel arrive by the webhook and are added as a note with the amount refunded in Conekta and in WooCommerce. They are not recorded as WooCommerce refunds automatically. Record them manually without Refund via Conekta. A chargeback reported by Conekta is also added as a note.
License key
The plugin works with a VibeFox license key from vibefox.net. The license block is at the top of WooCommerce > Settings > Payments > Conekta. 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, Conekta 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
Conekta does not appear at checkout: check that the license is active, Enable / Disable is on, the private key of the current mode is filled in (Test private key in test mode, Live private key in live mode) and the store currency is MXN or USD. The settings page shows a warning for each of these.
The payment went through, but the order stays Pending payment: the webhook is not working. In the Conekta panel check that the webhook exists for the mode you use (test or live), that its URL is exactly the one shown in the settings and that the events are selected. Check that the private key of that mode is set, because every notification is verified with it. The order is also confirmed when the customer returns to the store, or when the customer tries to pay the same order again.
Webhook answers Temporarily unavailable: the Conekta API could not be reached, the private key of the order's mode is missing, or the order was being processed by another request. Conekta retries the webhook.
Webhook answers Verification failed, Invalid payload or Invalid order id: the Conekta API did not confirm the order, or the notification was not a valid Conekta order event.
Webhook answers Ignored: the notification belongs to a Conekta order that was not created by this store for that order (for example another shop or a payment link on the same account), or to another object than an order.
The customer sees We could not check the status of your previous payment attempt: the previous Conekta checkout of the order could not be read, so a new one is not created to avoid a double payment. Try again in a moment.
The customer sees Payment gateway is not configured: the private key of the current mode is missing.
Order is On hold: read the order notes. The customer has not paid the OXXO or SPEI reference yet, the amount or currency did not match, or a test-mode payment arrived while the store is in live mode.
Refund fails with a message about test or live mode: the payment was made in that mode, and its private key is not set. Enter it and try again.
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 readme lists the filter wc_ckt_supported_currencies for the list of currencies.
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 Conekta references stored on orders 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.
Conekta is a trademark of its respective owner. This plugin is not affiliated with or endorsed by Conekta.
