Title: ChatSell Payment Gateway with Moneris for WooCommerce
Author: chatsell
Published: <strong>October 18, 2026</strong>
Last modified: October 18, 2026

---

Search plugins

![](https://ps.w.org/chatsell-payment-gateway-with-moneris-for-woocommerce/assets/
banner-772x250.png?rev=3753454)

![](https://ps.w.org/chatsell-payment-gateway-with-moneris-for-woocommerce/assets/
icon-256x256.png?rev=3753454)

# ChatSell Payment Gateway with Moneris for WooCommerce

 By [chatsell](https://profiles.wordpress.org/chatsell/)

[Download](https://downloads.wordpress.org/plugin/chatsell-payment-gateway-with-moneris-for-woocommerce.1.1.1.zip)

 * [Details](https://wordpress.org/plugins/chatsell-payment-gateway-with-moneris-for-woocommerce/#description)
 * [Reviews](https://wordpress.org/plugins/chatsell-payment-gateway-with-moneris-for-woocommerce/#reviews)
 *  [Installation](https://wordpress.org/plugins/chatsell-payment-gateway-with-moneris-for-woocommerce/#installation)
 * [Development](https://wordpress.org/plugins/chatsell-payment-gateway-with-moneris-for-woocommerce/#developers)

 [Support](https://wordpress.org/support/plugin/chatsell-payment-gateway-with-moneris-for-woocommerce/)

## Description

ChatSell Payment Gateway with Moneris for WooCommerce connects your store to the
modern Moneris payment platform (`api.moneris.io`). Card details are entered in 
a Moneris-hosted tokenization iframe and are exchanged for single-use tokens, so
raw card numbers never reach your server — keeping you in the lightest PCI scope(
SAQ A-EP).

**Features**

 * Hosted tokenization iframe on both classic and Cart/Checkout **Blocks** checkout.
 * Charge (capture immediately) or authorize-only, with capture and void from the
   order screen.
 * Full and partial refunds from the WooCommerce order screen.
 * Sandbox and production credential groups with a one-click connection test.
 * Two authentication methods: static API key (`X-API-Key`) or OAuth2 client credentials
   with short-lived bearer tokens.
 * Optional dynamic descriptor and a debug log with all sensitive data redacted.
 * Credentials can be pinned in `wp-config.php` constants and kept out of the database.

**Need more?** The paid [ChatSell Moneris Gateway Pro](https://chatsell.co/moneris-api-for-woocommerce/)
add-on installs alongside this plugin and adds saved cards, 3-D Secure 2, Apple 
Pay and Google Pay on both checkouts, with a 30-day free trial.

This plugin is not affiliated with or endorsed by Moneris Solutions Corporation.“
Moneris” is a trademark of its respective owner.

### Third-party services

This plugin sends data to the following services as part of taking a payment. Enable
it only if these terms are acceptable for your store.

 * **Moneris API** (`api.moneris.io`, sandbox `api.sb.moneris.io`) — receives the
   order amount, currency, billing details, single-use card tokens or wallet tokens,
   and your merchant credentials to create payments, captures, voids, refunds and
   stored payment methods. [Moneris terms](https://www.moneris.com/en/legal/terms-of-use)·
   [Moneris privacy](https://www.moneris.com/en/legal/privacy-statement).
 * **Moneris hosted tokenization** (`www3.moneris.com`, sandbox `esqa.moneris.com`)—
   the card entry iframe shown to shoppers. Card numbers are typed into this Moneris
   page and never reach your server.
    No data is sent to the plugin author.

## Screenshots

[⌊The gateway settings: a status console says whether the card method will appear
at checkout and which environment you are editing.⌉⌊The gateway settings: a status
console says whether the card method will appear at checkout and which environment
you are editing.⌉[

The gateway settings: a status console says whether the card method will appear 
at checkout and which environment you are editing.

[⌊Card payment settings: charge or authorize, card brand icons, dynamic descriptor
and the debug log.⌉⌊Card payment settings: charge or authorize, card brand icons,
dynamic descriptor and the debug log.⌉[

Card payment settings: charge or authorize, card brand icons, dynamic descriptor
and the debug log.

## Installation

 1. Upload the plugin to `/wp-content/plugins/` and activate it, or install it from
    the Plugins screen.
 2. Go to **WooCommerce  Settings  Payments  Moneris API**.
 3. Choose your environment (Sandbox or Production) and enter the Merchant ID and API
    key (or OAuth application ID and client secret) from the Moneris Developer Portal.
 4. Create a Hosted Tokenization profile in the Moneris Merchant Resource Center and
    paste its profile ID.
 5. Click **Test connection**, then enable the gateway.

**Optional: pin credentials in wp-config.php**

Define any of these constants to supply a value from `wp-config.php` instead of 
the database; the matching setting field is then locked:

    ```
    MONERIS_API_WC_SANDBOX_API_KEY, `MONERIS_API_WC_PRODUCTION_API_KEY`, `MONERIS_API_WC_SANDBOX_MERCHANT_ID`, `MONERIS_API_WC_PRODUCTION_MERCHANT_ID`, `MONERIS_API_WC_SANDBOX_CLIENT_ID`, `MONERIS_API_WC_PRODUCTION_CLIENT_ID`, `MONERIS_API_WC_SANDBOX_CLIENT_SECRET`, `MONERIS_API_WC_PRODUCTION_CLIENT_SECRET`, `MONERIS_API_WC_SANDBOX_HT_PROFILE_ID`, `MONERIS_API_WC_PRODUCTION_HT_PROFILE_ID`.
    ```

## FAQ

### Is it free?

Yes. Everything in this plugin is free and fully functional. Saved cards, 3-D Secure
2, Apple Pay and Google Pay are sold separately as the ChatSell Moneris Gateway 
Pro add-on, which installs alongside this plugin and has a 30-day free trial.

### Does card data touch my server?

No. Cards are entered in a Moneris-hosted iframe and exchanged for single-use tokens.
Your server only ever handles tokens and stored payment-method references.

### Does it support the Cart and Checkout blocks?

Yes. The gateway renders in both the classic checkout and the WooCommerce Cart/Checkout
blocks.

### API key or OAuth2 — which should I use?

Either works. OAuth2 client credentials are recommended for production because the
token sent on each request is short-lived; the long-lived secret is only exchanged
with the token endpoint.

### Is 3-D Secure supported?

With the Pro add-on, yes: EMV 3DS 2 with frictionless and challenge flows on both
classic and Blocks checkout, and a configurable policy for when authentication fails
or is unavailable. 3-D Secure must also be enabled on your Moneris account.

### Which Moneris account do I need?

A Moneris merchant account with access to the Moneris API (Developer Portal credentials:
Merchant ID plus API key or OAuth client) and a Hosted Tokenization profile from
the Merchant Resource Center. Apple Pay and Google Pay additionally use your Merchant
Resource Center store ID. This is the newer `api.moneris.io` platform, not the legacy
Moneris Gateway (mpg) API.

### Does it work with High-Performance Order Storage (HPOS)?

Yes. The plugin declares HPOS compatibility and stores all order data through the
WooCommerce order API.

### Which currencies are supported?

Whatever your Moneris merchant account is set up to process; Canadian merchants 
typically process CAD. The amount and currency of the order are sent as-is.

### Does it work outside Canada, for example a US store?

Moneris only provides merchant accounts to businesses based in Canada, so the store
needs a Canadian Moneris account. Your shoppers can be anywhere: cards from the 
US and elsewhere are accepted like any other, and if your Moneris account has USD
settlement the store can charge in USD. A business based outside Canada cannot open
a Moneris account and would need a different processor.

### What happens to my data if I uninstall?

Deleting the plugin removes its settings and cached credentials. Order meta (Moneris
payment IDs, capture and refund records) is kept so past orders remain reconcilable.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“ChatSell Payment Gateway with Moneris for WooCommerce” is open source software.
The following people have contributed to this plugin.

Contributors

 *   [ chatsell ](https://profiles.wordpress.org/chatsell/)
 *   [ chatsellco ](https://profiles.wordpress.org/chatsellco/)

[Translate “ChatSell Payment Gateway with Moneris for WooCommerce” into your language.](https://translate.wordpress.org/projects/wp-plugins/chatsell-payment-gateway-with-moneris-for-woocommerce)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/chatsell-payment-gateway-with-moneris-for-woocommerce/),
check out the [SVN repository](https://plugins.svn.wordpress.org/chatsell-payment-gateway-with-moneris-for-woocommerce/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/chatsell-payment-gateway-with-moneris-for-woocommerce/)
by [RSS](https://plugins.trac.wordpress.org/log/chatsell-payment-gateway-with-moneris-for-woocommerce/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.1.1 – 2026-10-18

 * Tweak: clearer wording about who can use the plugin. Moneris accounts are for
   Canadian businesses; shoppers’ cards can come from anywhere, including the US.
   New FAQ entry on the same point.

#### 1.1.0 – 2026-10-13

 * Renamed to ChatSell Payment Gateway with Moneris for WooCommerce. Settings, credentials,
   order data and the `moneris_api` payment method id are unchanged, so an existing
   install keeps working after the update.
 * Apple Pay, Google Pay, 3-D Secure 2 and saved cards now live in the separate 
   ChatSell Moneris Gateway Pro add-on (30-day free trial). Install it alongside
   this plugin to keep them; this plugin ships card payments only.
 * New: hook points an add-on uses to extend the card method (settings fields and
   sections, checkout scripts, Blocks data, capturable methods, credential constants).
 * Tweak: Plugin Check clean-up — translations are loaded by WordPress, inputs use
   core sanitizers, readme trimmed to five tags and a 150-character summary.

#### 1.0.0 – 2026-09-11

 * Tested with WooCommerce 11.1 and WordPress 7.1; WooCommerce 9.0 or newer and 
   WordPress 6.6 or newer required.
 * Added changelog.txt; uninstall now also clears cached OAuth tokens and wallet
   ticket locks.
 * Fix: Google Pay now asks Google to encrypt the card for Moneris as a participating
   payment gateway, identified by your Merchant Resource Center store ID, instead
   of publishing the Resource Center’s Web Merchant Key as a `DIRECT` public key.
   That key is not a Google public key, so every sheet ran to the end and then failed
   with Google’s “This merchant is having trouble accepting your payment” (OR_BIBED_11).
   New per-environment **Google Pay Store ID** settings, which fall back to the 
   Apple Pay store ID; the Web Merchant Key settings are gone (a previously saved
   value is left in the database, unused). The protocol version is now sent to Moneris
   as `EC_V1`/`EC_V2` rather than Google’s `ECv1`/`ECv2` spelling, which Moneris
   refuses with a generic error. Verified in the Moneris sandbox with a real Google
   Pay test-card token: SUCCEEDED.
 * New: wallet payments are now checked against the amount the shopper actually 
   approved. The store issues the figure an Apple Pay or Google Pay sheet may open
   on and remembers it, and the payment is refused — with nothing charged and a 
   plain explanation — unless that issued figure, the amount the sheet reports having
   displayed, and the order total all agree to the cent. Each issued figure answers
   one payment and is then spent, so it cannot be reused for a second order. Card
   payments are unaffected: they have no separate approval step, and the amount 
   charged has always been the order total the shopper submitted.
 * Fix: on Cart/Checkout Blocks, the Apple Pay and Google Pay buttons now wait for
   the server to confirm the order total before a sheet can open, as the classic
   checkout buttons already did.
 * Fix: on classic checkout, the Apple Pay sheet now opens on the current order 
   total after a shipping or coupon change (for example switching to in-store pickup),
   instead of the amount from when the page first loaded.
 * Fix: a late reply from Moneris’ merchant-validation SDK arriving after the shopper
   closed the Apple Pay sheet no longer logs a console error.
 * Fix: Apple Pay merchant validation now presents the preload ticket Moneris requires
   under Simple Setup. Without it Moneris refused every session with a bare “900”
   and Safari ended the sheet with “Payment not completed”, even with the domain
   registered and verified. The ticket is minted on your server with the new per-
   environment **Merchant Resource Center API Token** setting (the store’s API Token
   under Admin  Store Settings — its general legacy-API token, not an Apple Pay 
   one), which is also pinnable via `MONERIS_API_WC_SANDBOX_MRC_API_TOKEN` / `MONERIS_API_WC_PRODUCTION_MRC_API_TOKEN`.
   Apple Pay stays hidden at checkout until the token is filled in.
 * New: the gateway settings screen is now split into cards with a section rail,
   so Connection, Card payments, Apple Pay, Google Pay and Advanced are each one
   click away instead of one long scroll. A status console at the top carries the
   environment as a switch and says, for the card method and each wallet, whether
   it will appear at checkout and what is still missing. Save changes stays within
   reach at the foot of the screen.
 * New: settings that do not apply are hidden — the environment you are not editing,
   the authentication method you are not using, the 3-D Secure fallback until 3-
   D Secure is on, and a wallet’s credentials until that wallet is switched on. 
   Nothing hidden is discarded when you save.
 * New: credentials are shown in a monospaced face so a transposed digit is visible,
   secrets can be revealed to check them against their source, and the Apple Pay
   verification URL has a copy button. The connection test and domain-file check
   now report a labelled result with the reason, and the console remembers when 
   the connection test last passed.
 * Fix: checkout now shows a spinner and a caption (“Verifying your card with your
   bank…”, “Placing your order…”) while it tokenizes, runs 3-D Secure and places
   the order, instead of only dimming the page — several themes hide WooCommerce’s
   own overlay spinner, which left those waits looking like a dead “Place order”
   button.
 * Fix: the 3-D Secure challenge window shows “Connecting to your bank…” while the
   issuer’s page loads and “Confirming your verification…” after the shopper submits
   their code, so the frame is never blank with nothing happening.
 * New: **Google Pay** at checkout, on both classic and Cart/Checkout Blocks, as
   its own payment method. Uses `DIRECT` tokenization against the Web Merchant Key
   from the Merchant Resource Center, so Moneris decrypts the card and nothing has
   to be uploaded to your server. The button is drawn by Google and appears only
   to shoppers whose browser and device support it; on classic checkout it waits
   until the checkout is complete and the order total has been confirmed by the 
   server, so the sheet never shows a stale amount.
 * New: Google Pay declares the payment as authenticated only for device-bound cards
   that return an issuer cryptogram, so a card stored in a shopper’s Google account
   is not described to Moneris as something it is not.
 * New: **Apple Pay** at checkout, on both classic and Cart/Checkout Blocks, as 
   its own payment method. Uses Moneris’ Simple Setup, so no Apple developer account
   or certificates are needed. Turn it on with the “Offer Apple Pay at checkout”
   setting once your domain is registered in the Merchant Resource Center; the button
   appears only to shoppers whose browser and device support it.
 * Fix: Apple Pay now completes its version 3 session with the real WooCommerce 
   charge result on both classic and Blocks checkout, instead of reporting success
   as soon as Apple returns a token.
 * Fix: Apple Pay now initializes Moneris’ merchant-validation channel when its 
   SDK is loaded after the page is ready, preventing Safari from incorrectly reporting
   that it could not verify the store.
 * Fix: classic checkout keeps Apple Pay behind its field and total gates while 
   address-driven totals are stale, and validates malformed checkout fields before
   opening the sheet.
 * Fix: Apple Pay is no longer offered on the unsupported pay-for-order form.
 * New: card brand icons (Visa, Mastercard, American Express, Discover, Diners Club,
   JCB, UnionPay) beside the payment method at checkout, so shoppers can see which
   cards you take before entering one. Choose which brands appear with the “Card
   Icons” setting; Visa, Mastercard and American Express are shown by default.
 * New: the Apple Pay domain association file is served by the plugin, so registering
   your domain in the Merchant Resource Center no longer requires uploading a file
   to your server.
 * New: “Check domain file” button in the gateway settings reports what is actually
   being served at the verification URL, and names the cause when something else
   is (redirects, subdirectory installs, nginx rules, another provider’s file).
 * New: “Domain Association File” setting — paste the file downloaded from the Merchant
   Resource Center, and paste a replacement here if Moneris ever reissues it. A 
   file already present at /.well-known/ on your server still takes precedence over
   what you paste.

#### 0.4.0

 * New: 3-D Secure 2 (EMV 3DS) authentication at checkout — frictionless and challenge(
   verification prompt) flows on both classic and Blocks checkout.
 * New: “If 3-D Secure fails” policy setting — block the payment (default) or proceed
   without 3-D Secure protection.
 * Authenticated payments carry the 3DS cryptogram to Moneris and record the authentication
   ID and indicator on the order.

#### 0.3.2

 * Fix: on checkouts with a pre-filled address (logged-in customers), the card form
   could stay hidden because a field read empty while the page was still initialising.
   The form is now re-checked after load and AJAX refreshes so it reliably appears.

#### 0.3.1

 * Fix: the card form could stay hidden on some classic checkouts. It now shows 
   by default and only hides while required fields are still incomplete, so it can
   never get stuck.

#### 0.3.0

 * Defer the card form on classic checkout until the required contact, billing and
   shipping fields are complete.
 * Polish the card UI: card-style container, clearer field styling, a secure-payment
   note, and friendlier error styling.

#### 0.2.3

 * Log the hosted-tokenization response code to the browser console when a card 
   fails to tokenize, to aid checkout debugging (no card data is logged).

#### 0.2.2

 * Settings: show only the credential fields for the selected environment and authentication
   method.

#### 0.2.1

 * Show shoppers a specific decline reason (expired card, insufficient funds, over
   limit, contact bank, temporary error) mapped from the Moneris response code; 
   keep the raw reason on the order note for staff.

#### 0.2.0

 * Add WooCommerce Cart/Checkout **Blocks** support (hosted iframe, saved cards,
   save-card option).
 * Add OAuth2 client-credentials authentication as an alternative to the static 
   API key.
 * Support pinning credentials via `wp-config.php` constants (setting fields lock
   when defined).
 * Add a translation template (.pot) and readme.

#### 0.1.1

 * Fix a silent tokenization stall when the checkout refreshed mid-tokenize.

#### 0.1.0

 * Initial release: hosted tokenization, purchase/authorize, capture/void, refunds,
   saved cards, classic checkout.

## Meta

 *  Version **1.1.1**
 *  Last updated **19 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.6 or higher **
 *  Tested up to **7.1.3**
 *  PHP version ** 8.1 or higher **
 * Tags
 * [apple pay](https://wordpress.org/plugins/tags/apple-pay/)[google pay](https://wordpress.org/plugins/tags/google-pay/)
   [moneris](https://wordpress.org/plugins/tags/moneris/)[payment gateway](https://wordpress.org/plugins/tags/payment-gateway/)
   [woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/chatsell-payment-gateway-with-moneris-for-woocommerce/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/chatsell-payment-gateway-with-moneris-for-woocommerce/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/chatsell-payment-gateway-with-moneris-for-woocommerce/reviews/)

## Contributors

 *   [ chatsell ](https://profiles.wordpress.org/chatsell/)
 *   [ chatsellco ](https://profiles.wordpress.org/chatsellco/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/chatsell-payment-gateway-with-moneris-for-woocommerce/)