Skip to main content
Moment Plugins are pre-built integrations that extend the Moment platform into the systems your business already runs on. Instead of writing custom API code to push transactions into your accounting ledger or to accept Moment payments inside your storefront checkout, you install a plugin, authenticate once, and the data flow is handled for you. Each plugin is built and maintained by Moment. Updates to the underlying Moment APIs are reflected in the plugin without requiring any change on your side. Authentication uses the standard OAuth flow of the partner platform (Xero, Intuit, Wix, Shopify) so credentials never leave the partner.
Plugins are an extension of the Moment SDK surface. They use the same APIs documented under Collect, but expose them through the partner platform’s native UI.

Available plugins

Xero Accounting

Accepted payments for your invoice in Xero with Moment.

QuickBooks Accounting

Accepted payments for your invoice in QuickBooks with Moment.

WooCommerce

Native Moment payment gateway for WooCommerce stores on WordPress.

Wix

Native Moment payment provider for Wix storefronts and Wix Payments checkout.

Shopify

Coming soon. Native Moment payment app for Shopify Checkout.

Xero Accounting

Marketplace: PLACEHOLDER_XERO_APP_STORE_URL Install: PLACEHOLDER_MOMENT_DASHBOARD_INSTALL_URL
The Xero plugin lets you accept payment for Xero invoices using Moment. Connect your Xero organization once. For any approved invoice in Xero, the plugin attaches a Moment-hosted payment link to the Pay now button on the invoice. The customer pays with card or APMs. When the payment succeeds, Moment fires payment_session.completed to the plugin, the plugin posts a Payment against the Xero invoice for the captured amount, and Xero closes the invoice (AUTHORISED flips to PAID).
Xero invoice with Moment Pay now button

What it does

  • Reads AUTHORISED invoices from your Xero organization.
  • Creates a Moment Payment Session sized to the invoice AmountDue, in the invoice currency, with external_reference set to the Xero InvoiceID.
  • Replaces Xero’s default Pay now provider on the invoice email and online invoice view with the Moment-hosted payment link.
  • Listens for payment_session.completed from Moment. On receipt, posts a Xero Payment against the matching InvoiceID. If the captured amount equals AmountDue, the invoice closes. If less, the invoice stays open with the remainder due.

Flow

  1. Merchant approves an invoice in Xero.
  2. Plugin creates a Moment Payment Session carrying external_reference.
  3. Customer opens the Xero invoice email or online view, clicks Pay now, lands on Moment Checkout, completes payment.
  4. Moment delivers payment_session.completed to the plugin.
  5. Plugin posts a Xero Payment against the invoice. Invoice closes when fully paid.

Setup

  1. From the Moment dashboard, open Plugins, Xero, click Connect.
  2. Authorize Moment in Xero. Pick the Xero organization.
  3. Pick which Xero invoice branding theme should embed the Moment Pay now link.
  4. Enable. New AUTHORISED invoices get the Moment payment link from that point on.
Moment dashboard Xero connect screen

Permissions

Xero scopes requested: accounting.transactions, accounting.contacts.read, accounting.settings.read, offline_access. Revoke from the Xero Connected apps page at any time.

QuickBooks Accounting

Marketplace: PLACEHOLDER_INTUIT_APP_STORE_URL Install: PLACEHOLDER_MOMENT_DASHBOARD_INSTALL_URL
QuickBooks invoice with Moment payment link
The QuickBooks plugin lets you accept payment for QuickBooks Online invoices using Moment. Connect your Intuit company once. For any open QuickBooks Invoice, the plugin generates a Moment-hosted payment link the customer can pay through. When the payment succeeds, Moment fires payment_session.completed, the plugin creates an Intuit Payment object linked to the invoice, and the invoice Balance drops to zero, marking it paid.

What it does

  • Pulls open Invoices from QuickBooks Online (Balance > 0) for the connected company (realmId).
  • Creates a Moment Payment Session for the invoice Balance, in the invoice CurrencyRef.value, with metadata.qb_invoice_id set to the Intuit Invoice.Id and metadata.qb_realm_id set to the connected realmId.
  • Stamps the Moment payment link onto the QuickBooks invoice using a custom field, so it appears on the emailed invoice template (replaces the Intuit Payments Pay now flow).
  • Listens for payment_session.completed from Moment. Creates an Intuit Payment object via the QuickBooks Online API:
    • CustomerRef = invoice CustomerRef
    • TotalAmt = captured amount from the Moment session
    • Line[0].LinkedTxn[0] = { TxnId: <Invoice.Id>, TxnType: "Invoice" }
    • DepositToAccountRef = bank account chosen during plugin setup
    • PaymentRefNum = Moment payment_session.id (also used for idempotency)
    • PrivateNote = method label (card, paycode, payshap)
  • Partial captures post a partial Payment, leaving the invoice open for the remainder.

Flow

  1. Merchant creates and sends an Invoice in QuickBooks Online.
  2. Plugin sees the open Invoice and creates a Moment Payment Session with metadata.qb_invoice_id and metadata.qb_realm_id.
  3. Customer pays via the Moment link on the invoice.
  4. Moment delivers payment_session.completed to the plugin.
  5. Plugin POSTs /v3/company/{realmId}/payment to the QuickBooks Online API with the linked Invoice. Invoice Balance drops to zero.

Setup

  1. From the Moment dashboard, open Plugins, QuickBooks, click Connect.
  2. Intuit’s OAuth 2.0 consent screen opens. Pick the QuickBooks company. The plugin stores the realmId, access_token, and refresh_token returned by Intuit. Tokens are refreshed automatically (Intuit access tokens expire in 1 hour, refresh tokens in 100 days).
  3. Pick the bank account (DepositToAccountRef) where the Payment object should land.
  4. Optional: pick the QuickBooks class or department to tag every created Payment with. Useful for multi-location books.
  5. Enable. Open invoices from that point on get a Moment payment link.
Moment dashboard QuickBooks connect screen

Intuit-native details

  • Environment: Sandbox companies hit sandbox-quickbooks.api.intuit.com, production hits quickbooks.api.intuit.com. The plugin picks the host from the Intuit OAuth discovery document, so the same install works for sandbox testing and live use.
  • Minor version: All requests pin minorversion=70 to lock the wire format and avoid drift when Intuit ships new minor versions.
  • Currency: The Moment Payment Session uses the invoice CurrencyRef.value. If the QuickBooks company has multicurrency disabled, only the company’s home currency is supported.
  • Multi-entity: One Moment connection maps to one Intuit realmId. To support multiple QuickBooks companies, install the plugin once per company.
  • Rate limits: Intuit caps the QuickBooks Online API at 500 requests per minute per realmId. The plugin batches reads and backs off on 429 automatically.

Permissions

OAuth scope requested: com.intuit.quickbooks.accounting. Revoke from the Intuit My Apps page (appcenter.intuit.com/app/connect/oauth2/accountInfo).

WooCommerce

Marketplace: PLACEHOLDER_WORDPRESS_PLUGIN_DIRECTORY_URL Direct download: PLACEHOLDER_MOMENT_DASHBOARD_DOWNLOAD_URL
Moment payment option on WooCommerce checkout
The WooCommerce plugin is a WordPress plugin that registers Moment as a payment gateway inside WooCommerce. Once activated, Moment shows up alongside the merchant’s other gateways on the WooCommerce checkout page, and order, refund, and subscription flows are wired into the standard WooCommerce admin.

What it does

  • Adds Moment as a gateway under WooCommerce, Settings, Payments. Toggle it on to expose Moment on the storefront checkout.
  • Renders card, paycode, and payshap options inside the WooCommerce checkout block (or the legacy shortcode checkout) without redirecting the buyer off site.
  • Creates a Moment Payment Session for each WooCommerce order at the moment the buyer clicks Place order, and ties the resulting payment_id to the WooCommerce order via post meta.
  • Compatible with WooCommerce Subscriptions: stores the Moment payment token against the subscription and rebills on the renewal schedule.
  • Supports the WooCommerce Block Checkout, the legacy shortcode checkout, and the WooCommerce REST API for headless setups.

How it works

//TODO
WooCommerce Moment gateway settings

Requirements

  • WordPress 6.0 or later, WooCommerce 8.0 or later, PHP 7.4 or later.
  • HTTPS on the storefront (required by Moment Checkout and by WooCommerce for any live payment gateway).
  • WooCommerce Subscriptions 5.0 or later if you need recurring billing.

Wix

Marketplace: PLACEHOLDER_WIX_APP_MARKET_URL Install: PLACEHOLDER_MOMENT_DASHBOARD_INSTALL_URL
Moment in Wix checkout
Buyers see Moment’s supported payment methods directly inside the standard Wix checkout flow with no redirects out of the storefront.

How it works

  1. Open the Moment dashboard, choose Plugins, Wix, and click Connect.
  2. Authorize the Moment app from the Wix App Market.
  3. Pick the Wix site to connect. The plugin registers Moment as a payment provider on that site.
  4. Toggle Moment on under Accept Payments in the Wix dashboard.
Wix Accept Payments with Moment enabled
The Moment Payment Session lifecycle is mapped onto the Wix Payments Provider transaction states (Pending, Approved, Declined, Refunded, Cancelled) so the storefront UI stays accurate without polling.

Limitations

  • Only available for Wix sites on a Business or eCommerce premium plan, since Wix only exposes the Payments Provider API on those tiers.
  • Multi-currency stores are supported, but the merchant’s Moment account must have settlement currencies enabled for each storefront currency.

Shopify

Coming soon.