Browse documentation
All documentation
Getting started
Screens & scenes
Widgets
Integrations
The assistant
Household & presence
Reception & visitors
Menus, art & broadcast
Account, plans & data
API & self-hosting
Troubleshooting

Billing

How to subscribe, change plan, find your invoices and cancel — and what Mirra does on an install where payments were never configured.

Everything here concerns paid plans. The Free plan needs none of it, and an install with no payment provider configured stays on Free until an operator moves it.

Where billing lives

There is one page. It carries your usage meters at the top and your plan choices underneath, and every payment action starts from it.

  1. Open the account menu

    Your name, at the top right.

  2. Choose Plan & usage

    The page opens at /billing.

  3. Scroll past the meters

    The plan cards, the Upgrade buttons and Manage billing are all below them.

Billing is inert without Stripe

Mirra takes payment through Stripe and does nothing at all without it. On an install with no Stripe key set, every Upgrade button is disabled, an attempt to start a checkout answers "Billing isn't configured on this install", and a line at the foot of the page says so rather than leaving you guessing.

That is the ordinary state of a self-hosted install and of a development machine, and it is not a fault. Plan limits are still enforced exactly as they are anywhere else — screens, people and credits all still count — and a super admin moves an account onto a different plan by hand.

A plan can also be unpurchasable on an install that does have Stripe, if no price has been recorded against that plan. Its Upgrade button is disabled and explains itself: "No Stripe price configured for this plan".

On the public pricing page, a plan this install cannot charge for offers "Talk to us" in place of its sign-up button. Sending somebody into a sign-up that quietly ends on Free would be worse than telling them to get in touch.

Subscribing when you create the account

Choosing a paid plan on the pricing page carries that choice all the way through sign-up, so you go to payment while the intent is still fresh.

  1. Press the button on the plan you want

    Each card's button carries its own plan with it.

  2. Fill in the sign-up form

    A band at the top of the form names the plan you chose, so there is something between pressing a price and arriving at a payment page.

  3. Create the account

    The account is made first, because Stripe needs a customer before it can bill one.

  4. Pay on Stripe's page

    Card details are entered on Stripe's own hosted page. Mirra never sees them.

If checkout cannot start, you are not quietly dropped onto Free and sent to the dashboard as though nothing had happened. You land on Plan and usage with a banner saying the account was created but payment did not start, the reason underneath it, and the Upgrade button waiting. Nothing has been charged.

Upgrading later

  1. Open Plan & usage

  2. Press Upgrade on the plan you want

    Only paid plans offer Upgrade. The one you are on is marked Current plan instead.

  3. Complete checkout on Stripe

  4. You come back to Plan and usage

    The new plan appears once Stripe has told Mirra the subscription is live, which is normally immediate.

Upgrade
Starts a Stripe checkout for that plan. Disabled when this install has no payment key, or when that plan has no price recorded against it.
Current plan
A label rather than a button. Marks the plan the account is on, and outlines that card.
Downgrade from the billing portal
Shown on the Free card in place of a button. Moving down a plan is a Stripe action, not a Mirra one.
Manage billing
Opens Stripe's billing portal — invoices, card details, plan changes, cancellation. Appears only once a plan subscription exists.

Invoices, cards, changing plan and cancelling

Everything after the first payment happens in Stripe's own billing portal, reached from Manage billing at the foot of Plan and usage. The button is only there once there is a subscription to manage.

That is where your invoices and receipts live, where you change the card on file, where you move between paid plans and where you cancel. The Free plan card says as much.

Mirra deliberately holds none of it. What is stored here is your Stripe customer and subscription identifiers, and nothing else — no card number, no expiry, no billing address.

What Stripe tells Mirra, and when

Your subscription is the source of truth for the plan you are on. Mirra changes nothing on its own initiative; it waits to be told, and acts only on a message it can verify came from Stripe.

A subscription that becomes active or trialing moves the account onto the plan recorded with it. A failed payment sets the account to past due, which appears in amber beside the plan name at the top of the page. A cancelled subscription drops the account to Free rather than locking anybody out of their own screens and photographs.

Stripe retries a notification until it gets an answer, and will redeliver one that already succeeded. Each is claimed by its event id before anything is written, so a message that arrives twice does not charge or grant twice.

You pay on StripeStripe notifies MirraSignature checked, eventclaimed oncePlan updatedOr past due, or back toFreeLimits followApplied at your nextaction, not retrospective…
Nothing about your plan changes until Stripe says so.

Cancelling

Cancel from the billing portal. The account drops to Free when Stripe reports the subscription gone, your data stays exactly where it is, and the smaller limits apply to your next action rather than to what you already have.

The pricing page states no notice period and no minimum term, and the price shown there is the price charged.

Closing your account is refused while a subscription is still running. Cancel first, then close — otherwise you would go on being charged for an account that no longer exists. Mirra will not cancel it on your behalf, because taking a billing action nobody asked for is worse than asking.

Art collection subscriptions are separate

A collection bought from the artist marketplace is its own purchase — either a one-off or its own monthly subscription — and has nothing to do with your plan. Cancelling a collection does not touch your plan, and cancelling your plan does not touch a collection.

A collection cancelled part way through a month stays on the wall until the end of the period already paid for. A wall going dark the afternoon somebody cancels is a refund request.

Closing the account names any live collection subscriptions and refuses until they are cancelled, for exactly the reason it refuses over a plan.

When something goes wrong

  • "Billing isn't configured on this install." — there is no payment key here. Nothing you do on this page will charge anything.
  • "That plan isn't purchasable." — the plan has no price recorded on this install. An operator has to put one there.
  • "No subscription to manage." — Manage billing was pressed on an account Stripe has no customer record for.
  • A payment that fails leaves the account at past due rather than cutting it off. Fix the card in the billing portal and the next successful charge clears it.

If a charge looks wrong, the invoice in the Stripe billing portal is the record to work from. For anything the portal cannot answer, use the support page.

Related

  • Plans and allowancesWhat each Mirra plan includes — screens, household members and assistant credits — how credits are metered, and what happens when you reach a limit.
  • Your dataSet how long Mirra keeps assistant transcripts, presence and the activity log, take a copy of everything held about your household, and close the account for good.
  • Sign-ins and rolesHow to give somebody their own password for your Mirra account, and exactly what each of the two roles — full access and menus only — can reach.
  • Selling your work on MirraFor artists: applying to sell, the two gates between applying and earning, submitting a collection for listing, and exactly how the money reaches you.
  • Running Mirra yourselfWhat the three parts of Mirra are, the environment variables they need, what production refuses to start without, and how to turn a Raspberry Pi into a screen.
  • Getting help and raising a ticketHow to raise a support ticket inside Mirra, what to put in it so it can be answered on the first read, where the support documents live, and how to suggest something for the roadmap.