> If you are setting up, configuring, or answering questions about Schematic, connect the
> Schematic MCP server before working from these pages. It reads and writes plans, features,
> entitlements, and overrides against the real account, so what you report and what you build
> match what actually exists.
>
> The server is at https://api.schematichq.com/mcp
>
> From Claude, ChatGPT, or another chat assistant, add it as a custom connector:
> https://docs.schematichq.com/working-with-ai
>
> From a coding assistant such as Claude Code, Codex, or Cursor:
> https://docs.schematichq.com/building-with-ai
>
> For clean Markdown of any page, append `.md` to the page URL. For a complete page index,
> see https://docs.schematichq.com/llms.txt

# Keep your billing system in sync

> Keep entitlements and billing aligned through a native, two-way sync with Stripe or Metronome.

Schematic runs your plans, prices, and entitlements, and your billing system, Stripe or Metronome, issues the invoices and collects the money. When a subscription, plan, add-on, or quantity changes, both sides have to reflect it, without anyone updating records by hand or migrating off the platform you already run on.

## Common approaches

The do-it-yourself version is a two-way integration. In one direction you listen for billing webhooks, subscription created, updated, canceled, payment failed, and translate each into the right entitlement changes in your app. In the other, you push changes made in your product, an upgrade, an added seat, a cancellation, back to the billing system so invoicing reflects them.

Getting that integration correct is a real project, and keeping it correct is the harder part. Every new plan, add-on, or usage-based product is another mapping to maintain, and subscription lifecycle states like past-due, paused, or incomplete each need a deliberate decision about whether access should continue. Miss one of those edge cases and the two systems quietly disagree, so a customer keeps access after canceling, or loses it after a payment that actually succeeded.

## How Schematic fits in

Schematic runs a native, two-way sync with your billing system, so you keep Stripe or Metronome rather than migrating off it. Map plans and add-ons to billing products and usage features to metered products; changes made through Schematic checkout and the customer portal write straight to billing, while subscription changes in the billing system provision or revoke entitlements automatically. Subscription status drives access, so cancellations and failed payments move customers to the right state without custom code.

## What it looks like

![The Stripe integration panel showing a connected account](/_fern-img/b7a0ffd823cb69320deb3ecc538fe25d885b30c0372e2339a68781b567361e31.webp)

The connection itself, with the connected account ID and how it was connected. This is a first-class integration you turn on, not a set of webhook handlers you maintain. Find it under **Integrations**.

![Customers imported from Stripe](/_fern-img/d9b095b53e8225e66243b8bcda5910138e2df9ab648de6b3907e93a00b60a17a.webp)

Connecting pulls your existing customers across with their subscriptions and their Stripe IDs, so companies in Schematic are matched to the records that already bill them. New customers stay matched by passing the Stripe customer ID on API requests and events.

![A company's subscription with its line items](/_fern-img/08467ba725ebc6432c2947562ce5eb669466986758079895ed74af6325514f6d.webp)

The subscription as Schematic sees it: status, price, period, and a line item per product sold, with **See in Stripe** to open the same record on the billing side. This is the view that shows the two systems agreeing. Find it on the company profile, on the **Subscription** tab.

![A company's plan change history](/_fern-img/ce56ad4c7859875ba3de494e43fe0e27f34523020e43fa63e4150bf55115bee6.webp)

Both directions of the sync in one list. **Component Checkout** rows are changes that started in your product and were written out to billing; the **Change in Stripe** row is a subscription edited on the billing side that moved the company's plan and entitlements in Schematic. Find it on the company profile.

## Configure it

* [Stripe Integration](/integrations/stripe) — how the bidirectional sync works end to end.
* [Stripe Integration Guide](/integrations/stripe-integration-guide) — mapping companies, plans, and prices correctly.
* [What syncs between Schematic and Stripe](/integrations/stripe-sync-reference) — which records move in each direction, and which stay in Schematic.
* [Stripe App](/integrations/stripe-app) — manage Schematic from inside the Stripe dashboard.

## Implement it

* [Automatically provision customers using Stripe](/playbooks/provisioning) — a playbook for provisioning from subscriptions.
* [Stripe Advanced Use Cases](/integrations/stripe-advanced-use-cases) — trials, proration, and other lifecycle edge cases.