VibeFox Conekta for PrestaShop — Help
Requirements
PrestaShop: 8.0 to 9.x.
PHP: 8.0 or later. The module refuses to install on older PHP versions.
Currency: the cart 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 the back office go to Modules > Module Manager and click Upload a module. Choose the module ZIP file.
2. When the upload finishes, click Configure, or find VibeFox Conekta Gateway in the module list later and click Configure.
3. Paste your VibeFox license key into License key in the license block at the top of the Configure page and click Activate (see License key).
4. Enter your test and live private keys, choose the mode and add the webhook in the Conekta panel (see Configuration).
5. Turn on Enable / Disable and click Save. Test a payment in test mode, then turn off Test mode.
On install the module creates two order statuses, Awaiting Conekta payment and Conekta payment on hold. PrestaShop offers a new payment module for all currencies, countries and customer groups. You can limit them in Payment > Preferences.
Configuration
All settings are on the module page: Modules > Module Manager > VibeFox Conekta Gateway > Configure. Each section has its own Save button, which saves the whole page. 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 shop's default 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, a warning asks you to enter it.
Conekta
Enable / Disable: Enable Conekta payments turns the payment method on or off. Default: off.
Title: the payment method name the customer sees at checkout. It is also the payment method name stored in the order. Default: Conekta. Required.
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, and the page warns you about it when you save.
API keys
Copy your private keys from the Conekta panel under Developers > API keys. Test and live keys are different.
Test mode: uses the test private key. No real money is charged and a TEST MODE badge with No real charges will be made. is shown under the payment method 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.
Saved keys are never shown again. The field stays empty and shows Saved — leave empty to keep it. Type a new value only to change it.
Clear saved keys: tick a key and click Save to remove it. An empty field keeps the saved value.
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 shop about payments, for example OXXO or SPEI payments made after the customer left the Conekta page. In the Conekta panel go to Developers > Webhooks and add the URL shown in the Webhook field of the API keys section, for test and for live mode. With friendly URLs it looks like https://your-shop/module/wcp_conekta_gateway/webhook, possibly with a language code such as /en/. Copy the URL exactly as the settings show it.
Select these events (they are also listed in the settings):
The webhook body only tells the module 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 shop for that cart are acknowledged and ignored. Without the webhook, an order is created only when the customer comes back to the shop after paying, or on the next payment attempt for the same cart.
Advanced
Debug log: logs API calls and notifications to logs/wc_ckt_debug.log.php in the module folder. The file cannot be opened from the web. Errors and warnings are always logged, even when this switch is off. Logs never contain API keys or customer contact data. Default: off.
Log: shows the size and the latest entries of the log. Click Clear log to empty it.
Delete data on uninstall: when on, uninstalling the module removes the settings and the log. The Conekta transactions and refunds, the order statuses and the orders are always kept, so old orders can still be confirmed and refunded after a re-install. Default: off.
Checkout
At the payment step the customer chooses the payment method (by default Conekta) and confirms. The module creates a Conekta order for the cart total in the cart currency, with the products, gift wrapping, discounts, tax and shipping, and sends the customer to the Conekta hosted checkout. The payment shows on the Conekta page as Order # and the cart number. There the customer pays with one of the allowed methods. No order exists yet at this point.
After paying, the customer returns to your shop. The order is marked paid only after Conekta confirms it: the module reads the order from the Conekta API when the webhook arrives and when the customer comes back. The order is then created and the customer sees the standard order confirmation page with Your payment with Conekta has been received. When the customer chose OXXO or SPEI and got a payment reference, the order is created as Awaiting Conekta payment 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 reference later expires, the order is cancelled and its confirmation page shows Your Conekta payment was not completed. Please contact us about this order.
If the payment cannot be confirmed yet when the customer comes back, a Payment confirmation page shows We are confirming your payment with Conekta. The order will be updated automatically — please do not pay again. and a Check again button. The webhook creates the order as soon as it arrives.
If the payment is declined, no order is created and the customer is back at checkout with The Conekta payment was not completed. Please try again or choose another payment method. If the checkout expired or was cancelled, the message is The Conekta payment has expired or was cancelled. Please try again. The cart is kept. When the customer pays 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 order is created instead of charging again.
If Conekta cannot start the payment, the customer stays at checkout with a short message, for example The payment could not be started. Please try again in a moment or choose another payment method. Validation messages from Conekta, such as a minimum amount, are shown as Conekta sends them. The technical reason is written to the log.
The webhook works while the shop is in maintenance mode and is not blocked by the country restriction of your shop.
The module 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
No order yet: the customer was sent to Conekta and has not paid, the payment was declined, or Conekta has not confirmed the payment yet. Only the cart exists.
Payment accepted: Conekta confirmed the payment with the same amount and currency. The payment is recorded with the Conekta charge ID as the transaction ID, and a 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.
Awaiting Conekta payment: the customer got an OXXO or SPEI payment reference. The order becomes Payment accepted when Conekta reports the payment.
Conekta payment on hold: the amount or currency received from Conekta does not match the cart (for example, the cart was changed after the payment started), a test-mode payment arrived while the shop is in live mode (no real money was collected), or the payment arrived for an order that was already cancelled. The note explains it, and the payment is recorded with the amount actually paid. Check the order, then fulfil it or refund the payment. 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.
Canceled: the OXXO or SPEI reference of an awaiting order expired, or its Conekta order was cancelled.
Refunded: the payment was fully refunded through the module.
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.
Conekta payment block
The order page shows a Conekta payment block with the Conekta order, the charge, the payment status, the amount paid and refunded, a Test mode badge for test payments, the refund history and the Conekta notes of the order.
Refunds
In the Conekta payment block enter the amount (the amount not refunded yet is filled in), optionally a reason, and click Refund via Conekta. Confirm the question Refund this amount through Conekta? This cannot be undone. Full and partial refunds are supported. You need the right to edit orders. Refunds are limited to the amount and currency Conekta actually charged, so after an amount mismatch you can refund up to what the customer paid, not the order total. 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, the block shows the error and no refund is recorded. A successful refund is added to the refund history and the notes with the amount, mode, Conekta order, refund ID and reason. A full refund sets the order to Refunded. A partial refund does not change the status. Refunds are available once Conekta has reported the payment.
The module does not create credit slips. The standard PrestaShop refund buttons of the order page do not send money back through Conekta.
Refunds made in the Conekta panel arrive by the webhook and are added as a note with the amount refunded in Conekta and in PrestaShop. They are not recorded automatically. Update the order manually without Refund via Conekta. A chargeback reported by Conekta is also added as a note.
License key
The module works with a VibeFox license key from vibefox.net. The license block License — VibeFox Conekta Gateway is the first block on Modules > Module Manager > VibeFox Conekta Gateway > Configure, above the settings. Paste the key into License key and click Activate. After that the block shows the key masked, the status (for example the date the license is active until and your domain) and the buttons Check now to check the status again, Change key to enter another key and Remove key to remove the key from this shop. Below them are the line Product: presta-payment-conekta and the link Manage licenses and domains in your account, which opens your vibefox.net account. Only employees with the Configure permission for the module can change the key. The texts of the block follow the back office language (English and Russian are included).
If the key is not accepted, the block says why, for example Key not found, This key belongs to another product, Domain limit reached or License expired on a date. After the shop address changes, or after you free a domain slot in your account, click Check now. If the license server cannot be reached, the module keeps working on the last known status.
One key works on one domain: the domain of the main shop, also in a multistore setup. Removing the key from the shop 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. The PrestaShop storefront does not know that you are logged in to the back office, so the payment method is hidden for you too: you can set up the module before you buy a key, but not test it at checkout. A reminder appears in Modules > Module Manager on the Alerts tab. Existing orders are not affected: payments already started are still confirmed, and refunds work.
When a license expires, the module keeps working, but updates and support need a renewal. The status is checked again automatically while you work in the back office: once a day for the first 14 days after the key is entered, then once a week. No cron job is needed. Uninstalling or resetting the module always removes the license key and license status.
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 cart currency is MXN or USD. The settings page shows a warning when the key is missing or the shop currency is not supported. In Payment > Preferences check that the module is allowed for the cart currency, the customer's country and the customer's group.
The payment went through, but no order was created: 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 created when the customer returns to the shop, or when the customer tries to pay the same cart again.
Webhook answers Temporarily unavailable: the Conekta API could not be reached, the private key of the order's mode is missing, the cart was being processed by another request, or the order could not be created (for example, the module is disabled). Conekta retries the webhook. Look at the Log field for the reason.
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 shop for that cart (for example another shop or a payment link on the same account), or to another object than an order.
The webhook URL shows Method not allowed in the browser: this is normal. The URL accepts only requests from Conekta.
The customer sees We could not check the status of your previous payment attempt: the previous Conekta checkout of the cart 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.
The customer sees Payment verification failed: the return link from Conekta did not match the cart. Check the order in the Conekta panel; the webhook still confirms a real payment.
Order is Awaiting Conekta payment or Conekta payment on hold: read the Conekta notes in the order block. The customer has not paid the OXXO or SPEI reference yet, the amount or currency did not match, a test-mode payment arrived while the shop is in live mode, or the payment is only pre-authorized.
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.
For developers, the README lists the hooks actionWcpConektaSupportedCurrencies, actionWcpConektaOrderRequest, actionWcpConektaAllowedPaymentMethods and actionWcpConektaRefundReason.
Uninstall
Go to Modules > Module Manager, open the menu next to VibeFox Conekta Gateway and choose Uninstall. The license key and license status of this module are always removed. If Delete data on uninstall is on, the settings and the log are removed. If it is off, all settings are kept for a later re-install. The Conekta transactions and refunds and the order statuses Awaiting Conekta payment and Conekta payment on hold are always kept, so orders paid before can still be refunded after a re-install. Existing orders keep their payment notes and transaction IDs.
Conekta is a trademark of its respective owner. This module is not affiliated with or endorsed by Conekta.
