> ## Documentation Index
> Fetch the complete documentation index at: https://docs.momentco.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> Pre-built integrations that connect Moment to accounting and commerce platforms

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.

<Note>
  Plugins are an extension of the Moment SDK surface. They use the same APIs documented under [Collect](/api-reference/collect/payment_sessions/overview), but expose them through the partner platform's native UI.
</Note>

***

## Available plugins

<div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-2 gap-6">
  <Card title="Xero Accounting" icon="book" href="#xero-accounting">
    Accepted payments for your invoice in Xero with Moment.
  </Card>

  <Card title="QuickBooks Accounting" icon="calculator" href="#quickbooks-accounting">
    Accepted payments for your invoice in QuickBooks with Moment.
  </Card>

  <Card title="WooCommerce" icon="cart-shopping" href="#woocommerce">
    Native Moment payment gateway for WooCommerce stores on WordPress.
  </Card>

  <Card title="Wix" icon="globe" href="#wix">
    Native Moment payment provider for Wix storefronts and Wix Payments checkout.
  </Card>

  <Card title="Shopify" icon="shop">
    Coming soon. Native Moment payment app for Shopify Checkout.
  </Card>
</div>

***

## Xero Accounting

<Info>
  **Marketplace**: PLACEHOLDER\_XERO\_APP\_STORE\_URL
  **Install**: PLACEHOLDER\_MOMENT\_DASHBOARD\_INSTALL\_URL
</Info>

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

<Frame caption="PLACEHOLDER: Xero invoice showing the Moment Pay now button">
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/momentholdingslimited/images/plugins/xero-placeholder.png" alt="Xero invoice with Moment Pay now button" />
</Frame>

### What it does

* Reads `AUTHORISED` invoices from your Xero organization.
* Creates a Moment [Payment Session](/documentation/collect/payment-sessions/overview) 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.

<Frame caption="PLACEHOLDER: Moment dashboard, Plugins, Xero connect screen">
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/momentholdingslimited/images/plugins/xero-setup-placeholder.png" alt="Moment dashboard Xero connect screen" />
</Frame>

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

<Info>
  **Marketplace**: PLACEHOLDER\_INTUIT\_APP\_STORE\_URL
  **Install**: PLACEHOLDER\_MOMENT\_DASHBOARD\_INSTALL\_URL
</Info>

<Frame caption="PLACEHOLDER: QuickBooks Online invoice with Moment payment link">
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/momentholdingslimited/images/plugins/quickbooks-placeholder.png" alt="QuickBooks invoice with Moment payment link" />
</Frame>

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](/documentation/collect/payment-sessions/overview) 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.

<Frame caption="PLACEHOLDER: Moment dashboard, Plugins, QuickBooks connect screen">
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/momentholdingslimited/images/plugins/quickbooks-setup-placeholder.png" alt="Moment dashboard QuickBooks connect screen" />
</Frame>

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

<Info>
  **Marketplace**: PLACEHOLDER\_WORDPRESS\_PLUGIN\_DIRECTORY\_URL
  **Direct download**: PLACEHOLDER\_MOMENT\_DASHBOARD\_DOWNLOAD\_URL
</Info>

<Frame caption="PLACEHOLDER: Moment payment option on the WooCommerce checkout page">
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/momentholdingslimited/images/plugins/woocommerce-placeholder.png" alt="Moment payment option on WooCommerce checkout" />
</Frame>

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](/documentation/collect/payment-sessions/overview) 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

<Frame caption="PLACEHOLDER: WooCommerce, Settings, Payments, Moment gateway configuration">
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/momentholdingslimited/images/plugins/woocommerce-setup-placeholder.png" alt="WooCommerce Moment gateway settings" />
</Frame>

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

<Info>
  **Marketplace**: PLACEHOLDER\_WIX\_APP\_MARKET\_URL
  **Install**: PLACEHOLDER\_MOMENT\_DASHBOARD\_INSTALL\_URL
</Info>

<Frame caption="PLACEHOLDER: Moment payment option inside Wix native checkout">
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/momentholdingslimited/images/plugins/wix-placeholder.png" alt="Moment in Wix checkout" />
</Frame>

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.

<Frame caption="PLACEHOLDER: Wix dashboard, Settings, Accept Payments with Moment enabled">
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/momentholdingslimited/images/plugins/wix-setup-placeholder.png" alt="Wix Accept Payments with Moment enabled" />
</Frame>

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

<Info>
  Coming soon.
</Info>

***
