HubSpot + Moneris integration

Moneris processes card payments and runs subscriptions for Canadian merchants. What a HubSpot sync can read from its REST API, and which card data stays put.

Connects by API

Scope this integration Book a scoping call Estimate the cost

Is there an official Moneris + HubSpot integration?

No. Moneris appears nowhere in the HubSpot App Marketplace as of September 2026, and HubSpot's own payment tools process on Stripe. We recommend a custom API integration on the Moneris API: an hourly read of new payments, subscription callbacks and a nightly re-read of open records, at 70 to 150 build hours. The card number, its last four digits and the expiry stay with Moneris.

Recommended route
Custom API integration
Build effort
70 to 150 hours
In the HubSpot App Marketplace?
No listed app
Typical elapsed time
4 to 8 weeks

Marketplace checked September 2026.

Why teams connect Moneris to HubSpot

Moneris is the processor behind a large share of Canadian card payments: by its own count one in three transactions in the country, at more than 325,000 points of commerce. For a Moneris merchant selling online, the charge, the stored card and the subscription schedule all live inside Moneris. The sales and service teams working in HubSpot see none of it, so a failed renewal or a card payment that clears never reaches the person who owns the customer.

The books can already see it: Moneris announced its own QuickBooks connector in May 2026 to copy transaction data into QuickBooks, and nothing equivalent reaches the CRM. HubSpot’s own payment tools do not close the gap for a Moneris merchant either. HubSpot payments is open to businesses in Canada, the US and the UK, and it uses Stripe infrastructure; the other option HubSpot offers is connecting a Stripe account. Either one means moving processing to Stripe rather than connecting the processor the business already has.

One rule shapes every design here: card data stays with Moneris. HubSpot’s Product and Services Catalog keeps full card numbers and card security codes out of its Sensitive Data feature altogether, and admits the last four digits only as Sensitive Data, an Enterprise feature. The Moneris API returns a card’s first six to eight digits, its last four and its expiry with each payment, so the sync discards them and carries ids, amounts, dates, statuses and the card brand.

What syncs

Five rows, every one flowing into HubSpot. Moneris customers become contacts. Each payment becomes a HubSpot payment, the object HubSpot’s Payments API offers for revenue collected elsewhere, which cannot charge a card itself. Its statuses have no value for a cancelled or held authorization, so Moneris’s own status, from AUTHORIZED to CANCELED, sits in a custom property beside HubSpot’s. Refunds are separate Moneris records that update the payment they reverse. Subscriptions take a custom object on Enterprise and deal properties below it, and every decline or pause raises a task.

Each row matches on its Moneris id, held in a custom HubSpot property. The order id looks like the obvious home for a HubSpot deal id, but Moneris lets no two purchases or pre-authorizations share one, so a deal paid in two instalments cannot use its id for both. The deal id goes in customData instead, which takes up to ten values of 50 characters and comes back on every payment read. Email is no key either: Create Customer requires only an idempotency key, so a Moneris customer may have no email at all.

Objects that sync between Moneris and HubSpot
Source object HubSpot object Direction Match key Notes
Customer Contact Into HubSpot Moneris customer id in a custom HubSpot property A customer with a company name also attaches to that HubSpot company.
Payment Payment Into HubSpot Moneris payment id in a custom payment property, with the deal id carried in customData Amounts arrive in cents and are converted once, and Moneris's own status rides in a custom property.
Refund Payment Into HubSpot Refund id, applied to the payment that holds its Moneris payment id It marks that payment refunded or partially refunded, and an independent refund with no payment raises a task.
Subscription Custom object Into HubSpot Moneris subscription id Below Enterprise, which custom objects need, the status and next billing date sit on the deal instead.
Declined or paused subscription Engagement Into HubSpot Subscription id and status, one task per change Moneris sends no callback for a decline, so the nightly re-read raises the task for the record's owner.

Architecture

Moneris documents three online payment interfaces, and the build reads through the newest. The classic Gateway API, keyed on a store ID and API token, now sits on Moneris’s Legacy Portal, and its calls process transactions and report on the open batch, with none that lists past ones. Moneris Checkout, the hosted form, takes JSON naming an action at one endpoint and reports each result through browser callbacks and a receipt request. The Moneris API is RESTful JSON behind OAuth 2.0 client credentials, with list and read calls for payments, refunds, customers and subscriptions.

The service holds read scopes only, so it cannot charge or refund, and it sends the merchant’s 13-character id and a pinned Api-Version header on every call. Each hour it lists payments and refunds created since its watermark, in windows of at most a day and pages of 20 behind a cursor. Every write is keyed on a Moneris id, so replaying a window rewrites the same records. Lists filter on creation alone, so each night it re-reads, by id, every payment still authorized or processing and every live subscription. Subscription callbacks prompt the same re-read, and every write passes a field allowlist.

Card data travels from the browser to Moneris's hosted frame and never to the sync. An hourly reader lists new payments and refunds, a nightly pass re-reads open records by id and subscription callbacks trigger the same read, so the consumer writes only allowlisted fields, upserted on Moneris ids.

What the API allows

API style
REST
Authentication
OAuth 2.0
Webhooks
Partial
Changed-since filter
Partial
Sandbox
Yes
Rate limit
Not documented

Developer documentation developer.moneris.com

Three ways to connect

What decides the route here is where checkout runs today. A store taking cards through the Moneris API, with Hosted Tokenization keeping the card number inside Moneris’s frame, gives a sync everything it needs. A store on Moneris Checkout, or on one of the cart plug-ins Moneris features beside it, may not: Moneris does not say whether those payments appear in the new API’s lists, so discovery tests that on the merchant’s own account. Where they do not, the receipt request the checkout’s server already makes can hand each result to the sync as well.

A custom API integration covers both cases. Moneris’s partner directory lists no iPaaS connector, so middleware on an iPaaS would call the REST API through generic HTTP steps and rebuild the token handling, the day-long windows and the card-field allowlist in each flow. HubSpot’s own payment tools process on Stripe, so choosing them means leaving Moneris.

  • iPaaS

    Avoid

    Moneris's partner directory lists no iPaaS connector, so middleware there would call the REST API through generic HTTP steps and rebuild the token handling, the day-long windows and the card-field allowlist in each flow.

  • Marketplace app

    Avoid

    Nothing in the HubSpot App Marketplace carries the Moneris name, and HubSpot payments and a connected Stripe account both process on Stripe, so either one means leaving Moneris rather than connecting it.

What breaks and how we prevent it

Card digits in every read

Every payment, refund and subscription the Moneris API returns carries the card’s first six to eight digits, its last four and its expiry, and so does the payment inside a callback. Together they can leave as few as four digits of a 16-digit number unknown. The allowlist keeps the card brand alone, and a check on each write rejects anything shaped like card digits.

Declined renewals send nothing

Moneris calls back after a successful subscription payment only, and RECURRING_PAYMENT_CONFIRMED is its one documented event type, so a declined renewal arrives in silence. The subscription’s status, whose values include DECLINED and DECLINED_RETRY, is where it shows: the nightly re-read checks it and tasks the owner. A subscription created without a callbackUrl gets one through Update Subscription.

A callback with no signature

Moneris documents no signature and no retry schedule for the callback, so a post can be forged or lost. The receiver keeps the event id, reads the payment with its own token and writes only what the API returns, and the hourly read picks up any charge whose callback never came.

Cents written as dollars

Moneris sends amounts as integers in cents, so 10.59 arrives as 1059, and HubSpot’s payment amount takes the decimal. Copied straight across, every payment lands a hundred times too large. The mapper converts once, beside the currency, and the sandbox’s penny values give known amounts to test against.

Day-long windows on every list

The payment, refund and subscription lists take a created_from and a created_to no more than a day apart and return 20 records a page at most, so a year of history is 365 windows read through the cursor. Moneris publishes no rate limit, only X-RateLimit and Retry-After headers on a 429 answer, and the backfill paces itself by them.

Our approach

  1. Scope. We find where checkout runs today, check on the merchant’s own account whether its payments reach the API’s lists, and agree which declines and pauses each owner hears about.
  2. Architect. We fix the field allowlist, the Moneris ids as keys, customData as the carrier of the deal id, and whether subscriptions get a custom object or deal properties.
  3. Build. The reader, the callback receiver and the consumer are written against the sandbox at api.sb.moneris.io with read-only scopes, and a portal allowlist refuses any HubSpot portal not on it.
  4. Validate. We push approvals and declines through the Penny Value Simulator, where the cents decide the response, compare each day’s counts with the API’s lists, and scan every written property for card-shaped values.
  5. Operate. Production credentials need a developer portal account on the merchant’s own Moneris email, and sandbox applications do not carry over, so the merchant’s admin creates them at cutover. We rotate through the second client secret Moneris allows and alert on any Sunset header.

Common questions

Is there a Moneris app in the HubSpot App Marketplace?

No. A marketplace search for Moneris returned no result of any kind in September 2026. Moneris's own partner directory lists point-of-sale, booking, loyalty and accounting partners, its own QuickBooks connector among them, and no HubSpot integration. Connecting the two starts with scoping a build: which checkout the store runs, and which Moneris records the people in HubSpot need to see.

Can HubSpot payments charge cards through Moneris?

No. HubSpot's knowledge base says HubSpot payments, open to businesses located in Canada, the US and the UK, uses Stripe infrastructure to process payments, and the other processing option it describes is a connected Stripe account. Neither routes a charge through Moneris, so a business staying with Moneris keeps checkout and subscriptions there and syncs the results into HubSpot's payment records.

Which Moneris API should a new HubSpot integration use?

The Moneris API, the RESTful generation at api.moneris.io that Moneris's developer portal leads with. It authenticates with OAuth 2.0 client credentials and can list and read payments, refunds, customers and subscriptions. The classic Gateway API now sits on Moneris's Legacy Portal with no call that lists past transactions, and Moneris Checkout reports each result through browser callbacks and a receipt request.

How quickly does a Moneris payment reach HubSpot?

A subscription charge arrives when its callback does, once the sync has re-read it. Other payments and refunds land with the hourly read of records created since the last run. Changes to records that already exist, such as a completed pre-authorization, a cancellation or a paused subscription, arrive with the nightly re-read, because Moneris's lists filter on creation time only.

What happens when a Moneris subscription callback is lost or sent twice?

A duplicate changes nothing. Each callback carries an event id, which Moneris says can be used to detect duplicates, and every record is upserted on its Moneris id. A lost callback is not fatal either: Moneris documents no retry schedule, so the hourly read of payments created in that window picks up the charge, and the nightly pass settles subscription statuses.

Can Moneris card details be stored in HubSpot?

Only the card brand. HubSpot's Product and Services Catalog excludes full card numbers and card security codes from Sensitive Data, and admits the last four digits only as Sensitive Data, an Enterprise feature. The Moneris API returns the first six to eight digits, the last four and the expiry with each payment, and the sync drops all of them before anything is written.

Who owns Moneris?

Moneris describes itself as a joint venture created by RBC and BMO. In August 2026 Francisco Partners agreed to buy it from the two banks, subject to approvals under Canada's Retail Payment Activities Act and Competition Act, with closing expected by the end of the first quarter of the banks' 2027 fiscal year. Moneris says its head office and technology infrastructure stay fully resident in Canada.

How many hours does a Moneris and HubSpot integration take?

Plan on 10 to 20 hours of discovery and 70 to 150 hours of build for customers, payments, refunds, subscriptions and decline tasks, with the hourly read, the callback receiver, the nightly re-read and a sandbox rehearsal. Discovery spends most of its hours on two questions: which checkout the store runs, and whether its payments appear in the Moneris API's lists.

Partnerships and accreditations

  • HubSpot Elite Solutions Partner
  • HubSpot Custom Integration Accreditation
  • HubSpot CRM Data Migration Accreditation
  • HubSpot Solutions Architecture Design Accreditation

HubSpot accreditations

  • HubSpot Onboarding Accreditation
  • HubSpot Academy Accreditations

Industry specializations

  • HubSpot Healthcare Industry Specialist
  • HubSpot Financial Services Industry Specialist
  • HubSpot Manufacturing Industry Specialist
  • HubSpot Quote to Cash Capability

Partnerships

  • Anthropic Solutions Partner

Trust and compliance

We design integrations to support the security and privacy rules your business works under, and we build them on independently audited platforms.

How we build

  • Sandbox first. We build and test in a sandbox before anything reaches production.
  • Fail-closed allowlists. An integration runs only against the HubSpot accounts it is approved for.
  • Least-privilege access. Each integration gets only the API scopes it needs.
  • Secrets in a vault. Keys and tokens live in a secrets vault, never in plain text.
  • Sensitive data scoped early. Discovery covers sensitive data, access controls and any BAA or data-processing needs.
  • A compliance package for regulated industries: audit logging, field-level encryption and sensitive-data handling.

Scope a Moneris integration

Send the systems, the direction and the record volume. We reply with a scope and an effort band within one business day.

  • Moneris

Type any system and its version, such as Sage 300 or Sage 50. Press Enter or a comma after each one.

Add more detail (optional)

Optional. A sentence or two about the workflow is enough.

We use these answers to scope the work and for nothing else. Privacy policy.

Prefer to talk it through first? Book a technical scoping call

Talk to the people who build these

  • Nijat
  • Sean
  • Prash

Book a scoping call

Sources
  1. Moneris Developer Hub developer.moneris.com
  2. Introduction developer.moneris.com
  3. Getting Started developer.moneris.com
  4. Authentication & API Keys developer.moneris.com
  5. Recurring Billing developer.moneris.com
  6. Response Handling developer.moneris.com
  7. Penny Value Simulator developer.moneris.com
  8. Purchase with Payment Token developer.moneris.com
  9. List Payments developer.moneris.com
  10. Retrieve Payment developer.moneris.com
  11. Create Payment developer.moneris.com
  12. List Refunds developer.moneris.com
  13. Create Subscription developer.moneris.com
  14. Update Subscription developer.moneris.com
  15. Create Customer developer.moneris.com
  16. Setup Guide developer.moneris.com
  17. Open Totals | Moneris Developers legacy-developer.moneris.com
  18. Moneris API and Moneris Developer Portal | Moneris moneris.com
  19. About Us | Canadian Payment Processor | Moneris moneris.com
  20. Moneris announces acquisition by Francisco Partners moneris.com
  21. Moneris announces integration solution with Intuit QuickBooks | Moneris Media Room moneris.com
  22. Moneris Partner Integrations | Moneris moneris.com
  23. HubSpot Product & Services Catalog legal.hubspot.com
  24. Set up HubSpot payments knowledge.hubspot.com
  25. Connect Stripe as a payment processor in HubSpot knowledge.hubspot.com
  26. Payments API - HubSpot docs developers.hubspot.com
  27. Create and edit custom objects knowledge.hubspot.com