# Billing and Subscription Management

How subscriptions, seats, invoices, and cancellation work. For plan prices see
[Pricing](/pricing).

## Where billing lives

Everything is managed in the app under **Settings → Organisation → Billing**:

- Upgrade from trial (monthly or yearly)
- Change the number of workspaces
- Add or remove team member seats
- Open the customer portal

Payments are processed by Stripe. The **Manage subscription** button opens the
Stripe customer portal, where you can update the payment method, download
invoices, and cancel.

## How the subscription is structured

- **Workspaces** are the billing quantity of the Pro plan. Adding a workspace
  increases the quantity; removing one decreases it on the next billing cycle.
- **Team member seats** are a separate line item, billed monthly ($12/member) or
  yearly ($120/member). The organisation owner does not use a seat.
- Workspaces and seats can be on different billing intervals (for example,
  yearly workspaces with monthly seats).

## Trials

New accounts get a 14-day free trial with the full product. When the trial ends,
upgrade from the billing page to continue. Your data, connected accounts, and
scheduled posts are kept.

## Invoices and receipts

Invoices are issued by Stripe and available in the customer portal (**Settings →
Organisation → Billing → Manage subscription**). Each invoice lists workspaces
and member seats as separate line items.

## Cancellation

Cancel from the Stripe customer portal. The subscription stays active until the
end of the current billing period; after that, posting, the API, and the inbox
pause until you reactivate. Your workspaces, history, and connected accounts are
not deleted.

## Credits and X link posts

Your organisation has a prepaid **credits** balance (Settings → Organisation →
Billing → Credits) used for the only things that cost us real per-use money:
**X (Twitter) posts whose text contains a link**, and **X DMs in the Social
Inbox** (an opt-in add-on).

X's API pricing (effective April 2026) bills a post containing a URL at $0.20
instead of $0.015. We pass that single fee through at X's exact rate, zero
markup:

| Action | Cost |
|--------|------|
| X post without a link | Free |
| X post containing a link | **20 credits** ($0.20, X's exact rate) |
| X thread | 20 credits per tweet that contains a link; link-free tweets are free |
| X DM received in the Social Inbox (opt-in) | **1 credit** ($0.010, X's exact rate) |
| X DM reply sent from the Social Inbox | **2 credits** (covers X's $0.015 send fee) |
| Everything else on X (analytics, scheduling, media) | Free |
| All other platforms | Free, unchanged |

X DMs are off by default; how the opt-in works and what happens when the balance
runs out is covered in [X direct messages](/inbox#x-direct-messages).

How it works:

- 1 credit = €0.01. Top up €5–500 from the Credits tab; optional auto-refill
  keeps the balance above a threshold you choose. The Credits tab also lists
  ways to earn free credits.
- The post editor (and the API/MCP create response, via the `warnings` array)
  shows the exact cost before you schedule. Enforcement has been live since
  **August 14, 2026**: an X link post without enough credits returns
  `402 x_credits_insufficient` instead of publishing.
- Credits are only deducted after the post successfully publishes to X: a
  failed publish attempt never touches your balance (X itself only bills
  successful requests). For threads, only the tweets that actually posted
  are charged.
- If the balance can't cover a post at publish time, **only the X target
  fails** with a clear message; every other selected platform publishes
  normally. Top up and press Retry on the post. A daily check also emails the
  organisation owner when upcoming scheduled X link posts exceed the balance.

Only the posts that actually cost extra are charged, at a rate you can verify
against [X's public API pricing](https://docs.x.com/x-api/getting-started/pricing);
everything else on X stays free for everyone.

## API access and billing

API keys belong to your account, not to a plan tier: every active subscription
(and trial) has full API, SDK, CLI, and MCP access. If the subscription lapses,
API requests fail until it is reactivated; keys do not need to be recreated.

Questions about an invoice or a charge:
[support@omnisocials.com](mailto:support@omnisocials.com).
