VibeFox Moneris for OpenCart — Help
Requirements
OpenCart: 3.0.x (tested on 3.0.5.0) or 4.0.2 and later (tested on 4.1.0.3).
PHP: 8.0 or later.
Currency: CAD for a Canadian Moneris account, USD for a legacy Moneris USA account. The payment method is shown only when the checkout currency is the account currency.
HTTPS and PCI DSS: card numbers are entered on your checkout page and pass through your server. Live payments require HTTPS and PCI DSS SAQ D compliance. If you cannot meet that, use a hosted payment page solution instead.
Moneris account: you need the Store ID and API Token of your Moneris Gateway store from the Moneris Merchant Resource Center > Admin > Store Settings. For testing, the public Moneris test store is filled in by default. Test credentials and test cards are on the Moneris developer portal.
VibeFox license key: bought on vibefox.net. One key works on one domain.
Installation
The download is one zip file with the packages for both OpenCart versions. Unpack it on your computer. It contains README.txt, the OpenCart 3 package wcp_moneris_gateway-oc3-(version).ocmod.zip and the OpenCart 4 package wcp_moneris_gateway.ocmod.zip. Install only the package for your OpenCart version. The license key is the same for both versions.
OpenCart 3
1. In the admin go to Extensions > Installer, click Upload and choose the file wcp_moneris_gateway-oc3-(version).ocmod.zip. The extension has no OCMOD modifications, so Extensions > Modifications does not need a refresh. Instead of the installer you can copy the contents of the upload folder of this package into the root folder of your store.
2. Go to Extensions > Extensions and choose the type Payments. Find VibeFox Moneris Gateway and click Install (the green + button). Your admin user needs the right to modify the payment extensions list.
3. Click Edit (the pencil button) to open the settings page. Paste your VibeFox license key into License key in the license block at the top of the page and click Activate (see License key).
4. Choose the account country and enter the Live Store ID and Live API Token. Test mode is on by default and uses the public test store (store5 / yesguy for Canada, monusqa002 / qatoken for the US).
5. Choose the transaction type and the card logos, then turn on Enable / Disable and click Save.
6. Place a test order with a Moneris test card, then turn off Test mode.
OpenCart 4
1. In the admin go to Extensions > Installer, click Upload and choose the file wcp_moneris_gateway.ocmod.zip. Do not rename the file: OpenCart 4 takes the extension code from the file name, and a renamed package does not work.
2. The package appears in the list of installed extensions on the same page. Click Install (the green + button) next to it.
3. Go to Extensions > Extensions and choose the type Payments. Find VibeFox Moneris Gateway, click Install (the green + button), then Edit (the pencil button).
4. Enter the license key and the settings as in steps 3 to 6 for OpenCart 3. The settings page and its fields are the same in both versions.
A new install starts with the payment method turned off and test mode on.
Configuration
All settings are on the extension page: Extensions > Extensions > Payments > VibeFox Moneris Gateway > Edit. The sections are listed on the left; the Save button under the list saves the whole page. Above the settings the page shows Moneris gateway is in TEST MODE. No real charges will be made. while test mode is on. In live mode it warns you when the live fields contain Moneris test credentials (the payment method is then hidden at checkout) and when SSL is not enabled for the store (on OpenCart 4, when the storefront address starts with http://). It also warns you when the payment method is enabled but the Store ID or API Token of the current mode is empty, and when the default store currency is not the currency of the Moneris account; in both cases the payment method is hidden at checkout. Without the right to modify the extension the page shows the settings but cannot save them.
When you save, Title must have 1 to 128 characters, Sort Order must be a whole number and Total must be a number of 0 or greater. If a value is wrong, the page shows the error and nothing is saved.
Moneris
Enable / Disable: Enable Moneris Gateway turns the payment method on or off. Default: off.
Title: the payment method title shown to the customer. It is also the payment method name stored in the order. Default: Credit card (Moneris). In test mode, (Test Mode) is added to the title. Required.
Description: the text shown above the card fields on the Confirm Order step. Default: Pay securely with your credit card.
Sort Order: the position of Moneris among the payment methods at checkout. Leave it empty or enter a whole number.
Geo Zone: offer the card form only for payment addresses in the selected geo zone. Default: All zones. Geo zones are set up in System > Localisation > Geo Zones.
Total: the checkout total, in the default currency of the store, that an order must reach before the payment method is offered. Leave it empty to offer it for any total.
Moneris account
Your Store ID and API Token are in the Moneris Merchant Resource Center under Admin > Store Settings. Test credentials and test cards are on the Moneris developer portal. The section links to both.
Moneris account country: Canadian accounts charge in CAD, US accounts in USD. The payment method is shown only when the order currency matches. Default: Canada (CAD).
Test mode: uses the Moneris QA gateway and the test credentials; no real charges are made. Refunds, captures and voids are always sent to the environment the payment was made in. Customers see TEST MODE: use a Moneris test card, no real charges are made. above the card fields. Default: on.
Live Store ID: the production Store ID, for example monca01234.
Live API Token: the production API Token.
Test Store ID: the public Moneris test store: store5 (Canada) or monusqa002 (US). Default: store5.
Test API Token: the public test token: yesguy (Canada) or qatoken (US). Default: yesguy.
Saved API tokens are never shown again. The field stays empty and shows Saved — leave empty to keep it. Type a new value only to change it. To remove a saved token, tick Clear the saved token on save under the field and click Save.
Payment
Transaction type: how the card is charged. Default: Purchase.
Card logos: the card brands shown with the payment method at checkout: Visa, Mastercard, Discover, American Express, JCB. Accepted brands depend on your Moneris account. Default: Visa and Mastercard.
Orders
OpenCart creates the order at the Confirm Order step without a status (a missing order). The order gets a status only after Moneris has answered. Each field below lists your OpenCart order statuses.
Order Status After Payment: the card was charged (a purchase, or the capture of a pre-authorization). Default: Processing.
Authorized Status: a pre-authorization: the funds are only reserved, not charged yet. Capture them in the order tab or by setting a paid status. Default: Pending.
On Hold (Review) Status: manual review is required: the amount Moneris processed differs from the order, or Moneris did not answer and the Status Check failed too (the card may have been charged). A note explains why. Default: Pending, because OpenCart has no On hold status. You can create your own statuses in System > Localisation > Order Statuses and select them here and in Authorized Status.
Canceled Status: set by Void pre-authorization (cancel order) in the order tab. Setting an order to this status releases (voids) an uncaptured pre-authorization. Default: Canceled.
Refunded Status: set after the payment is fully refunded from the order tab. Setting an order to this status also releases an uncaptured pre-authorization. Default: Refunded.
Advanced
Debug log: logs API requests and responses to wc_mng_debug.log.php in the OpenCart logs folder (storage/logs). The file cannot be opened from the web. Card number, CVV, expiry and API token are masked. Errors are always logged, also while it is off. 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 extension removes the gateway settings and the log. The Moneris data of orders (needed for captures and refunds) always stays. Default: off.
Import / Export
Export: Download JSON saves the settings as a JSON file. API tokens are not exported.
Import: paste previously exported JSON and click Import to restore the settings. Saved API tokens are kept.
Checkout
At the Payment Method step the customer chooses the payment method (by default Credit card (Moneris)). At the Confirm Order step the customer sees your description, the card logos and the fields Card number, Expiry (MM/YY) and Card code (CVC). All three fields are required. On OpenCart 4 the customer picks the payment method with the Choose button of the payment method block, in the window Payment method options; the card fields then appear in the order confirmation block at the bottom of the checkout page, above the Confirm Order button. When the customer clicks Confirm Order, your server sends the card to Moneris for the order total and gets the result at once. There is no redirect and no webhook. The card data is used for this one request only; it is never stored, and the log shows only the last four digits.
The order gets its status only from an approved Moneris answer, the standard OpenCart way, with the usual order e-mails and stock update. The cart is emptied and the customer sees the OpenCart order success page. With Pre-Authorization the order waits in the Authorized Status until you capture the funds. If Moneris processed a different amount than the order total, the order gets the review status with a note.
If the card is declined, the customer stays at the Confirm Order step with Your card was declined and the reason from Moneris, and can check the card details or use another card. The order keeps no status; the decline reason is also written to the log. If Moneris could not process the request (for example a wrong Store ID or API Token), the customer sees The payment could not be processed. Please try again or use another payment method. The reason is written to the log. Wrong card fields give short messages such as Please enter your card details., Invalid card number. or Invalid card expiry date., and nothing is sent to Moneris.
A second click while a payment is being processed shows A payment for this order is already being processed. Please wait a moment and check your order status before trying again. OpenCart 3 creates a new order every time the Confirm Order step is shown, OpenCart 4 keeps one order for the checkout, and after a declined card the customer pays the same order. Either way the extension treats all orders of one cart as one payment: a cart that was already paid, or whose result is unknown, is never charged again, and the customer is sent to the success page. OpenCart 4 keeps the order in the checkout until the success page is shown. If that order already has a status and the cart holds products again (for example the payment went through, but the success page was not shown, and the customer added products), or the order was cancelled, refunded or voided meanwhile, the customer is taken back to the checkout page on Confirm Order, and the next Confirm Order pays a new order. Above the checkout page the customer sees This order was cancelled or refunded by the store, so it cannot be paid again. Please check your cart and confirm the new order. when the order was closed, or This order has already been paid, and your cart now holds a new purchase. Please check your cart and confirm the new order. when it was paid for an earlier cart.
If Moneris does not answer (network error or timeout), the extension sends a Status Check to Moneris with the same Moneris order ID to find out whether the transaction went through. If Moneris has no such transaction, the customer can pay again. If the Status Check gets no answer either, the order gets the review status with a note naming the Moneris order ID, and the customer is not invited to pay a second time. If the payment went through but the order status could not be set, the customer sees Your payment was received, but the order could not be completed automatically. Please contact us — do not pay again.
The extension has no saved cards or Moneris Vault, no subscriptions, no Apple Pay, Google Pay or Interac Online, no Moneris Checkout or Hosted Tokenization, no 3-D Secure, AVS or Kount and no multi-currency pricing.
Orders and refunds
Order statuses
No status (missing order): the card was declined or not processed. The customer can pay again. In Sales > Orders such orders are shown only with the filter Order Status set to Missing Orders.
Order Status After Payment (default Processing): the purchase was approved, or a pre-authorization was captured. A note shows the amount, the Moneris Trans ID and the receipt.
Authorized Status (default Pending): a pre-authorization was approved and waits for capture.
On Hold (Review) Status (default Pending): the processed amount differed from the order total, or Moneris did not confirm the result. The notes explain it.
Canceled Status (default Canceled): for a pre-authorized order, the reserved funds were released (void).
Refunded Status (default Refunded): the payment was fully refunded through the extension.
Notes are entries in the order History that the customer does not see.
VibeFox Moneris Gateway tab
In Sales > Orders open an order paid with Moneris. At the bottom of the order page, next to History and Additional, the VibeFox Moneris Gateway tab shows the Trans ID (and the pre-authorization Trans ID after a capture), the Moneris order ID, the Receipt, the Transaction type and its state (not captured, captured or released), the Account / environment with a Test mode label for test payments, the Card with the auth code, the amounts Authorized / charged / refunded, the capture, void and refund buttons, the refund history and the Moneris notes of the order. For an unconfirmed payment the tab asks you to look up the Moneris order ID in the Merchant Resource Center. The tab is shown to users who have access to the extension; capture, void and refund need the right to modify the extension (set in System > Users > User Groups).
Capture and void
To capture a pre-authorization, click Capture payment in the tab and confirm Capture the pre-authorized amount through Moneris?, or change the order status with Add History to a paid status such as Order Status After Payment or another OpenCart processing or complete status. The order total, minus refunds, is captured; it cannot be higher than the authorized amount. After a capture with the button the order gets Order Status After Payment. If Moneris refuses the capture, the status is not changed, no e-mail is sent, Add History shows the reason instead of a success message, and a note explains it: Moneris: status not changed — the pre-authorization could not be captured with the reason. Moneris pre-authorizations expire after a few days, so capture them in time.
To release the funds, click Void pre-authorization (cancel order) and confirm, or set the order to the Canceled Status. Setting the order to the Refunded Status also releases an open pre-authorization. If the release fails, a note asks you to release it in the Merchant Resource Center.
These status hooks also work while the extension is switched off (but installed), so pre-authorizations made before can still be captured and released.
Refunds
In the VibeFox Moneris Gateway tab enter the Amount (the amount not refunded yet is filled in), optionally a Reason (optional), and click Refund via Moneris. Confirm the question Refund this amount through Moneris? This cannot be undone. Full and partial refunds are supported. Refunds are limited to the amount Moneris actually charged, so after an amount mismatch you can refund up to what the customer paid, not the order total. A pre-authorization can be refunded only after it was captured; before that, void it to release the funds. The refund is sent to the environment and account the payment was made in, so that mode's credentials must still be filled in. If Moneris does not accept the refund, the tab shows Refund failed with the reason and no refund is recorded. A successful refund is added to the refund history and the notes with the Moneris Trans ID. A full refund sets the order to the Refunded Status; a partial refund does not change the status. Capture, void and refund change the order status directly, without notifying the customer and without returning products to stock, like a manual status change.
Product returns in Sales > Returns do not send money back through Moneris.
License key
The extension works with a VibeFox license key from vibefox.net. The license block License — VibeFox Moneris Gateway is the first block on Extensions > Extensions > Payments > VibeFox Moneris Gateway > Edit, 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 store. Below them are the line Product: opencart-payment-moneris and the link Manage licenses and domains in your account, which opens your vibefox.net account. Only admin users with the Modify permission for the extension can change the key. The texts of the block follow the admin 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 store address changes, or after you free a domain slot in your account, click Check now. If the license server cannot be reached, the extension keeps working on the last known status.
One key works on one domain: the store address from the OpenCart configuration. Removing the key from the store does not free its domain slot. Free the slot in your vibefox.net account.
Without an active key, Moneris 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. An admin user who is logged in to the admin in the same browser still sees the payment method in the store, marked (unlicensed — visible to admins only), so you can set up and test the extension before you buy a key. On OpenCart 4 this preview is not available: the store does not see the admin login, so without an active key the payment method is hidden for everybody. After you have opened the Edit page once, a reminder appears on the admin Dashboard. Close it with × to hide it for 7 days. Existing orders are not affected: captures, voids and refunds of earlier payments work.
When a license expires, the extension keeps working, but updates and support need a renewal. The status is checked again automatically when you open the admin Dashboard or the Edit page: once a day for the first 14 days after the key is entered, then once a week. No cron job is needed. Uninstalling the extension always removes the license key and license status.
Troubleshooting
Moneris does not appear at checkout: check that the license is active, Enable / Disable is on and the current mode has a Store ID and API Token. In live mode the live fields must contain your production credentials, not Moneris test credentials. Check that the checkout currency is the account currency (CAD for Canada, USD for a US account), that the payment address is in the selected Geo Zone and that the order reaches the Total set in the settings.
The payment went through, but the order is in the review status: the extension has no webhook; the result comes only from the Moneris answer. Read the Moneris notes in the tab. If Moneris did not confirm the result, Moneris did not answer and the Status Check failed too. Look up the Moneris order ID in the Merchant Resource Center: if the transaction is there, ship the order (and refund it there if needed); if not, cancel the order or ask the customer to pay again. If the amount differed, check the order and fulfil it or refund the payment.
The customer sees This payment method is not available. Please reload the checkout page.: the checkout session no longer matches the order, the payment method was turned off meanwhile, or the credentials of the current mode are missing (or live mode uses Moneris test credentials).
The customer sees This payment method does not support the order currency.: the order currency is not the Moneris account currency.
The customer sees an error when paying: look at the Log field on the extension page. Errors are always written; turn on Debug log to see the full requests and responses.
Capture fails: the order has no pre-authorization waiting for capture, the order total is zero, or the amount is higher than the authorized amount. Moneris pre-authorizations also expire after a few days.
Refund, capture or void fails with a message about the mode or account: the payment was made in test or live mode, and the credentials of that mode are not set, or the payment was made with a Moneris account of the other country. Enter the credentials, or process the payment in the Merchant Resource Center.
Card-testing attacks: direct card forms are a target for card testing. Use the eFraud or velocity rules in your Moneris account and a CAPTCHA or rate-limiting extension for your store.
Uninstall
Go to Extensions > Extensions, choose the type Payments and click Uninstall (the red − button) next to VibeFox Moneris Gateway. The license key and license status of this extension are always removed. OpenCart always removes its own settings of the extension: Enable / Disable, Sort Order, Geo Zone, Total and the order statuses of the Orders section, which return to their defaults on a re-install. The OpenCart events of the extension are removed too, so status changes no longer capture or release pre-authorizations. If Delete data on uninstall is on, the other gateway settings (title, description, account country, test mode, Store IDs and API tokens, transaction type, card logos, logging) and the log are removed. If it is off, they are kept for a later re-install. The Moneris transactions and refunds are always kept, so orders paid before can still be captured or refunded after a re-install. Existing orders keep their payment notes.
On OpenCart 4, to remove the files of the extension as well, go to Extensions > Installer after the uninstall and click Uninstall (the orange − button) next to VibeFox Moneris Gateway in the list of installed extensions, then Delete (the red bin button) to remove the uploaded package.
Moneris is a trademark of its respective owner. This extension is not affiliated with or endorsed by Moneris.
