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
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).

What it does
- Reads
AUTHORISEDinvoices from your Xero organization. - Creates a Moment Payment Session sized to the invoice
AmountDue, in the invoice currency, withexternal_referenceset to the XeroInvoiceID. - 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.completedfrom Moment. On receipt, posts a XeroPaymentagainst the matchingInvoiceID. If the captured amount equalsAmountDue, the invoice closes. If less, the invoice stays open with the remainder due.
Flow
- Merchant approves an invoice in Xero.
- Plugin creates a Moment Payment Session carrying
external_reference. - Customer opens the Xero invoice email or online view, clicks Pay now, lands on Moment Checkout, completes payment.
- Moment delivers
payment_session.completedto the plugin. - Plugin posts a Xero Payment against the invoice. Invoice closes when fully paid.
Setup
- From the Moment dashboard, open Plugins, Xero, click Connect.
- Authorize Moment in Xero. Pick the Xero organization.
- Pick which Xero invoice branding theme should embed the Moment Pay now link.
- Enable. New
AUTHORISEDinvoices get the Moment payment link from that point on.

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

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 invoiceCurrencyRef.value, withmetadata.qb_invoice_idset to the IntuitInvoice.Idandmetadata.qb_realm_idset to the connectedrealmId. - 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.completedfrom Moment. Creates an IntuitPaymentobject via the QuickBooks Online API:CustomerRef= invoiceCustomerRefTotalAmt= captured amount from the Moment sessionLine[0].LinkedTxn[0]={ TxnId: <Invoice.Id>, TxnType: "Invoice" }DepositToAccountRef= bank account chosen during plugin setupPaymentRefNum= Momentpayment_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
- Merchant creates and sends an Invoice in QuickBooks Online.
- Plugin sees the open Invoice and creates a Moment Payment Session with
metadata.qb_invoice_idandmetadata.qb_realm_id. - Customer pays via the Moment link on the invoice.
- Moment delivers
payment_session.completedto the plugin. - Plugin POSTs
/v3/company/{realmId}/paymentto the QuickBooks Online API with the linked Invoice. InvoiceBalancedrops to zero.
Setup
- From the Moment dashboard, open Plugins, QuickBooks, click Connect.
- Intuit’s OAuth 2.0 consent screen opens. Pick the QuickBooks company. The plugin stores the
realmId,access_token, andrefresh_tokenreturned by Intuit. Tokens are refreshed automatically (Intuit access tokens expire in 1 hour, refresh tokens in 100 days). - Pick the bank account (
DepositToAccountRef) where the Payment object should land. - Optional: pick the QuickBooks class or department to tag every created Payment with. Useful for multi-location books.
- Enable. Open invoices from that point on get a Moment payment link.

Intuit-native details
- Environment: Sandbox companies hit
sandbox-quickbooks.api.intuit.com, production hitsquickbooks.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=70to 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 on429automatically.
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

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_idto 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
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

How it works
- Open the Moment dashboard, choose Plugins, Wix, and click Connect.
- Authorize the Moment app from the Wix App Market.
- Pick the Wix site to connect. The plugin registers Moment as a payment provider on that site.
- Toggle Moment on under Accept Payments in the Wix dashboard.

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.

