Browse
On this page

Set up an agreement and bill a period

Build a monthly Service Plan, subscribe a client to it, and watch the period turn into a real invoice. See a ticket's billable time sit as unbilled work until it has somewhere to post, run the invoice through the approval queue, approve it, check what the client sees in their own portal, and see what happens when you try to bill the same period twice.

You need An account with edit access to Billing (the owner account from setup has it).

What you will have

  • Create a Service Plan and see what a per-tech, per-device, and flat pricing line each look like on the form.
  • Subscribe a client to the plan and watch the current period show up ready to bill.
  • Know why a ticket's billable time doesn't automatically become an invoice line.
  • Generate the period's invoice from the Approval Queue and read exactly what it's charging for.
  • Approve the invoice and know what that action actually does.
  • See the same invoice in the client's own portal.
  • Watch a second attempt to bill the same period come back empty, on purpose.

Why it works this way

A plan, a subscription and an invoice are three different things. The plan is a pricing template that bills nobody on its own. A subscription is that template attached to one client. An invoice is what a billing run generates from an active subscription for one period - a plan sitting unused in the catalog bills nobody, no matter how well it's priced.

Billing is bill-once-per-period. Voiding an invoice does not reopen its period for a new one - the portal says so before you confirm the void, and re-billing a voided period is its own separate, deliberate action (Regenerate from source), not something voiding triggers automatically. Rejecting a pending invoice is different again: it discards that draft only, and the same period comes back on the next run. Skipping it is different a third way: it uses up the period without ever billing it, for good. Delete is different from all three - it stops existing once an invoice is paid or already void, and on a plan invoice it asks outright whether to hand the period back for next run or leave it billed for good; Void is the one of the four still available on a live, unpaid, approved invoice.

A computed $0 never bills quietly. A plan line with no rate, or a manual quantity that was never set, is skipped and logged as an error rather than written onto the invoice as a real $0 charge - a missing price is a data problem, not a valid bill.

A ticket's billable time attaches to the client's plan the moment the ticket is marked billable, but it only turns into an invoice line once its billing status has both a price and a linked accounting product. A discretionary Discount is not held to that: it needs a QuickBooks item only while QuickBooks is connected, and on an instance with no QuickBooks it bills under its own label.

Every generated invoice is a two-step approval, not a one-click send. It lands in the Approval Queue as Pending Approval first; approving it is the action that numbers it, makes it payable, and pushes it toward accounting. An invoice's status is one of Draft, Pending Approval, Outstanding, Overdue, Paid or Void - ours moved from Pending Approval straight to Outstanding the moment it was approved.

A "true value" line on an invoice is a display-only framing - the list price shown next to a discount line - and never changes what's actually charged. A real, discretionary Discount is a separate record an operator applies on purpose, and the two are never the same thing.

Steps

  1. Open Billing > Service Plans and start a new plan.

    Naming it Managed Desktop and setting its type to Core, then adding one recurring item, put a price on Managed Desktop Support without ever touching a Quantity Basis dropdown. Quantity Basis already defaults to Manual - No Audit the moment an item is added - a flat monthly line, one unit, whatever price is typed in. The same dropdown also offers Licensed Users, Total Users, All Devices, Workstations and Servers right there for a per-tech or per-device plan instead of a flat one - Managed Desktop just doesn't need any of them.

    Open Billing > Service Plans and start a new plan.
  2. Save the plan and find it in the Service Plans catalog.

    Managed Desktop now shows up under the Core section of the catalog with 1 item and a status of Active - the same list Add-On, License and Managed SaaS plans live in, each in their own section.

    Save the plan and find it in the Service Plans catalog.
  3. Assign the plan to a client from their Billing > Plans tab.

    Adding Managed Desktop to Bluebird Dental through Add Core creates a subscription - the plan attached to this one client - and put a real period on the client's own Plans page right away: Sep 1 - Oct 1, 2026, Managed Desktop Support at $150 base rate, quantity 1, Monthly Total $150.00 - ready to bill the moment that period is generated. The plan itself never billed anyone; the subscription is what actually owes money.

    Assign the plan to a client from their Billing > Plans tab.
  4. Check the client's Ticket Charges tab for billable ticket time.

    Bluebird Dental's Ticket Charges tab reads Materials $0.00, Time $0.00, Combined $0.00 - not because no time was logged, but because the time that exists there is sitting under a section flagging it as time that won't invoice yet. A ticket's billable minutes attach to the client automatically the moment the ticket is billable; they only turn into a dollar amount once the ticket's billing status carries both a rate and a linked accounting product. Nothing here is connected to QuickBooks, so there's no product to link it to yet. Ticket Charges normally don't wait for anyone to click a button, either - closing a billable ticket is what creates its invoice, and any that slip through still get swept up once a month. A ticket's billing status is what decides any of this in the first place: In Scope means the work is covered by the plan and is never billed, and every other status is billable at whatever rate that status carries. From the client's own side, none of this shows up as a separate bill for the ticket itself - once time like this does turn into an invoice line, it just lands with their other invoices, priced at whatever rate their plan sets for work outside its scope.

    Note: This only shows unbilled ticket TIME and materials. The plan's own recurring charge lives on the Plans tab, not here - the two are billed through separate doors.
    Check the client's Ticket Charges tab for billable ticket time.
  5. Open Billing > Approval Queue and generate the period's invoices.

    Generate Invoices turned Bluebird Dental's Managed Desktop period into one row: Pending Approval, $150.00, source Core, period 2026-09 - sitting in a Core Plans group with an Approve, Reject and Skip action on the row itself. The sidebar under Billing carries five tabs the whole time: Approval Queue for what's waiting on a decision, Invoices for every invoice once it exists, Quotes for what's out to a client for a yes or no, Service Plans for the catalog this period came from, and Discounts for what individual clients get knocked off their bill.

    Open Billing > Approval Queue and generate the period's invoices.
  6. Open the pending invoice and read its line items.

    The invoice itself, still unapproved, shows exactly one line - Managed Desktop - Managed Desktop Support (1 @ $150.00) (Sep 2026) - for $150.00, with a Subtotal and Total that match. Nothing from the Ticket Charges tab rides along on this same invoice; a plan's recurring charge and a client's ticket time are two different invoice sources, never merged onto one bill.

    Open the pending invoice and read its line items.
  7. Approve the invoice.

    Approve asks for confirmation first - This approves $150.00. The invoice is numbered, becomes payable, and is pushed to QuickBooks. It cannot be undone - and confirming it flips the invoice straight to Outstanding, assigns it a real invoice number, and fills in Approved By and Approved On. Nothing here required a real QuickBooks connection to work; the push is attempted and simply has nowhere to go without one.

    Approve the invoice.
  8. Impersonate the client and open their own Billing > Invoices.

    Viewing Bluebird Dental's portal through View as Client shows the identical invoice on their own Invoices list, numbered 4, Outstanding at $150.00, sitting above two earlier voided attempts at the same period and an unrelated older invoice. A client only ever sees an invoice after it's been approved - nothing sitting in the Approval Queue is visible to them, and a voided invoice stays visible to them too, marked Void, rather than disappearing. Their list uses a shorter set of words than the staff side does: Outstanding means it's due and not paid, Overdue means the due date has already passed, Paid means the money came in, and Void means their provider called it off - a click into any row shows the same line items staff see.

    Impersonate the client and open their own Billing > Invoices.
  9. Try to generate the same period's invoice again.

    Clicking Generate Invoices a second time asks to confirm first - All pending invoices are cleared and regenerated fresh from the billing engines. Nothing approved is touched - and confirming it still leaves the queue exactly where it was: Queue is clear, no invoices pending approval. Bluebird Dental's September period is already billed and approved, so there is nothing left to generate for it; billing a period a second time is not something this door will do by accident.

    Try to generate the same period's invoice again.
  10. See a rolled-up add-on bill on its own when there's no Core invoice to join.

    Bluebird Dental's Northwind Seat Add-on has Roll up to Core invoice turned on, but the client's Core invoice for this period is already billed - so there's no due Core invoice this run for it to merge into. The same fallback fires the same way when a client has no Core plan subscription at all: whether the Core invoice is already billed for the period or the client was never subscribed to a Core plan in the first place, the run reaches this add-on with no due Core invoice to attach to, and treats both the same. It bills anyway, as its own Add-On invoice (12 seats @ $6.00 = $72.00): billing it is the point, since holding it back would park a month of money behind a plan that might not be due again for a year. The invoice itself carries no special mark, but the run's own record does - it logs this subscription as billed on its own, the same reason family covered in step 14. The rollup switch stays on, so the moment a Core invoice is due in the same window again, this add-on merges back into it.

    See a rolled-up add-on bill on its own when there's no Core invoice to join.
  11. See a Core invoice actually pull in two different add-ons.

    A Core invoice isn't matched to a rolled-up plan by period label - it's a date window running from the Core plan's own bill day to the day before its next bill day, and any rolled-up plan whose own period lands inside that window merges onto it. Harbor Point Physio's Core plan, Physio Core Care ($120.00), picked up two separate add-ons that both had Roll up to Core invoice on and periods landing in the same window: Physio Add-on A ($20.00) and Physio Add-on B ($25.00, on its own Mid-Month bill day). All three lines sit on one Core invoice - Subtotal and Total $165.00 - each still naming its own plan and month; the invoice is the window, not one shared date. If a rolled-up plan's period doesn't land in any Core window on a given run, it doesn't wait - it bills standalone that period instead, the same as step 10, and the switch stays on for the next window that does capture it.

    See a Core invoice actually pull in two different add-ons.
  12. Approve the Core invoice and see the un-rolled-up add-on stay pending on its own.

    Physio Add-on C has Roll up to Core invoice turned off, so it generated as its own $10.00 Add-On invoice alongside the $165.00 Core invoice from step 11. Approving the Core invoice moves it from Pending Approval to Outstanding and numbers it - Core Plans now shows none for Harbor Point Physio - but that approval only ever flips that one invoice's own status and pushes it to QuickBooks; it never merges anything. Physio Add-on C is still sitting in the Add-On Plans table afterward, Pending Approval, exactly where it was. The usual reasons an add-on stays separate like this: its own Roll up to Core invoice switch is off (this one), its period didn't land in any Core window this run, or the client had no Core invoice due at all. Once a Core invoice IS approved, it can't be reopened to pull in an add-on that missed it - fixing the switch (or waiting for the next window) is what lets the next run catch it, or the two can simply be approved on their own.

    Approve the Core invoice and see the un-rolled-up add-on stay pending on its own.
  13. See an annual plan skip a month it doesn't owe.

    Harbor Freight Annual Coverage bills once a year, not every month - once it's billed for its current term, it produces nothing again until its own anniversary, so a month with no Core invoice due for it to join is expected, not a bug. After approving its first invoice, the subscription's own Plans tab now reads Next bill: Sep 1, 2027, Annual - a full year out. What actually decides this is the subscription's lastBilledDate, the field that says a term was really billed; nextBillDate is only meaningful alongside it; on a subscription that's never billed, nextBillDate is a stale pointer the nightly run corrects on its own, and the real answer for what's owed is the start date, since every period since then is still due.

    See an annual plan skip a month it doesn't owe.
  14. Read the run's own explanation for what it didn't bill.

    The nightly billing run keeps a record of every subscription it passed over and why, not just a bare count. System Logs > Operations, inside that run, expands into a Client / Plan / Why table naming each one: three of Bluebird Dental's subscriptions and one of Summit Legal Group's read already billed for the period due today (the healthy, most common reason - that month already has an invoice), and Harbor Freight Logistics' Core plan reads priced to $0.00, so no invoice was written (a data problem, not a real charge, so nothing is written rather than a false $0 line). The full reason set is a fixed list: besides already billed and priced to $0, a subscription can read not started (its billing start date hasn't arrived yet), nothing owed (today hasn't reached its next billing date), billed on its own (the step 10 case - a rolled-up add-on with no Core invoice to join), period already closed (something else billed or skipped it since the run began), outside the billable range (the month isn't in that plan's owed window), or unexplained (worth reporting). One skipped month never blocks another - a plan owing several months at once still gets one invoice per month - and anything still unbilled shows as a badge on the plan's own row, chargeable later with Run backfill.

    Note: This same breakdown is meant to appear on the Approval Queue itself right after a manual Generate Invoices click, but on this instance it currently doesn't render there - System Logs > Operations is the door that works today.
    Read the run's own explanation for what it didn't bill.

Other ways to do this

A manual, one-off invoice

Billing > Invoices > New Invoice creates a standalone invoice for a client with no plan and no ticket behind it - you type the lines yourself.

There's a one-time charge to bill that isn't a recurring plan and isn't ticket time - a one-off project fee, for instance.

A Quote converted to an invoice

Billing > Quotes > New Quote, sent to the client and Accepted, then Convert - the quote becomes an Outstanding invoice directly, skipping the Approval Queue entirely. Only the lines the client actually ticked come across, tax follows the client's own Tax setup rather than anything typed on the quote, and there's no live link back to the original quote afterward - just an audit trail.

The client agreed to a scoped, priced piece of work ahead of time, and the quote already carries the lines that belong on the bill.

QuickBooks sync

Connect it from Settings > Integrations. QuickBooks Online is the one that actually syncs both ways today; it's what lets a plan's recurring item link to a real accounting product, and it's what a ticket's billing status needs before that ticket's time can turn into an invoice line at all.

The instance already runs QuickBooks and wants invoices, products and payments kept in sync automatically - nothing in this walkthrough needed it connected.

Elise

Ask her directly - create the plan, subscribe the client, generate the period, or approve the invoice - and she runs the same underlying action the buttons in this walkthrough do, not a lookalike shortcut.

Typing "bill Bluebird Dental for September" is faster than clicking through the Approval Queue.

If it did not work

  • If Generate Invoices produces nothing for a client, check the client actually has an ACTIVE subscription in that period - a plan sitting in the catalog with nobody subscribed to it bills nobody.
  • If a line comes out at $0 instead of a real price, that's the never-bill-$0 guard, not a bug: check the item has a rate set, and if its Quantity Basis is manual, that a quantity was actually typed in somewhere.
  • If a ticket's billable time never turns into an invoice line, check its billing status has a linked accounting product - without QuickBooks connected there's no product to link, so the time is expected to sit as unbilled work rather than appear on a bill.
  • If only part of a ticket's time went missing rather than all of it, check the Minimum Billable Minutes setting on Invoice Settings - by default any tech's total under 5 minutes on a ticket is dropped from the invoice entirely, not rounded up to it.

Questions this page answers

What is a Service Plan?

A Service Plan is a template for something you sell. It holds the price, how often it bills, and the lines included each cycle. It bills nobody by itself. Think of it as a product in a catalog, not a bill. Build it first under Billing > Service Plans. Then attach it to a client from their Billing > Plans tab. That gives them a subscription, and a subscription is what makes invoices.

How do a plan, a subscription and an invoice differ?

They are three things, in order. A Service Plan is the template. It holds the price, the cycle and the lines, and it is sold to nobody yet. A subscription puts one plan on one client. It is the record that says this client is on this plan from this date. An invoice is what the billing run makes from an active subscription on its bill day. That is the real bill the client sees. Change the plan later and it moves future invoices for every client on it. A price just for one client lives on that client's own subscription.

How do I build my first Service Plan?

Open Billing > Service Plans and click New Plan. Name it the way you would say it to a client. Set the type, the currency, how often it bills and the bill day. Add your Recurring Items, which are the lines billed each cycle. Add One-Time Charges if the first invoice needs them. Click Save Plan. Then open the client you want to bill. Go to their Billing > Plans tab and click the add button for that plan type. Pick your plan and click Create subscription. That step is what starts billing them. Making the plan alone bills nobody.

What are Client Subscriptions?

This doorway explains that a subscription links one client to one of your Service Plans. It lives on the client record, not here in Settings. This is how recurring billing gets attached to a customer.

How do I subscribe a client to a plan?

Click "Open Clients" on this page, or go straight to Clients. Pick the client. Go to Billing, then Plans. Add a subscription by choosing a Service Plan, or change or cancel an existing one.

How do Ticket Charges work?

Ticket Charges cover two things. One is the products you add to ticket replies. The other is the billable time on the ticket. While the ticket is open, both are held as pending charges. You can see them on the client's Ticket Charges tab, under Materials and Billable Time. When the ticket is CLOSED, one invoice is made for that client right away. It is made already waiting for approval, so it shows up in the Approval Queue. Approving does not make the invoice. It publishes the one that is already there. So a client is billed only once the work is done and a human has looked.

How does billable time get on an invoice?

When a ticket with a billable status closes, one Ticket Charges invoice is made for that client. It waits for approval. It carries both the items issued on the ticket and the billable time. For time, each tech's minutes are added up on their own. Each tech's total is rounded up to your billing unit, then multiplied by the hourly rate. Items carry their own lines. A time line starts with the ticket number and a one sentence plain summary of the work. That summary is drafted by AI from the notes and messages on the ticket. If no AI key is set, or the draft fails, the ticket subject is used instead. The exact minutes and rate always follow. An item line ends with the ticket number in brackets. Everything lands on one invoice, which goes to the Approval Queue for a human to check before it goes out.

Should I void an invoice or delete it?

Void is in the invoice's actions menu. You can void an approved invoice that is not paid. It stops the invoice being money owed. It keeps the number, the lines and the history as a permanent record. Delete wipes the invoice instead. Delete is gone once the invoice is paid or already void. If the invoice used up a plan month, Delete asks you what to do with that month first. If the invoice was pushed to QuickBooks, the void happens in QuickBooks first. If QuickBooks refuses, nothing changes here, so the two never drift apart. Voiding does NOT free the billing period. Nothing bills again on its own. To bill that month again, use Regenerate on the void invoice.

What does Regenerate from source do?

Regenerate throws the invoice lines away and builds them again from today's numbers. It is the same work the nightly run does, but for this one invoice, right now. On a draft or a pending plan invoice, the invoice is rejected and the run happens again for that client. You land on a new pending invoice with today's counts, prices, discounts, proration and tax. A ticket charges invoice is rebuilt in place from the ticket's current items and time. On a void plan invoice it re-opens that month, because voiding alone never frees a month. The void invoice stays as history. Hand edits on the old lines are not kept. That is the point of it. Edit the new invoice if it still needs a touch. Approved, paid and hand built invoices have no Regenerate action.

How do I turn a quote into an invoice?

Open an accepted quote and click Convert to Invoice. The lines, amounts and prices come across. If the client ticked optional items, only the ones they ticked come over. Tax follows the client's own setup on their Billing > Tax tab. That means a QuickBooks tax code when an accounting system is connected, and your local rate when none is. So there is no single fixed rate. The new invoice's Source reads Quote. If the quote was tied to a ticket, it reads Ticket instead. The quote keeps the trail. Its Timeline reads Converted to Invoice, with the date and a link straight to the invoice it became, whether you pressed the button or the quote converted itself when the client accepted. The invoice does not link back to the quote; the audit log holds that side.

What is the Approval Queue?

It lists every invoice the billing engines made that nobody has approved yet. That is plan invoices, backfill invoices and ticket charge invoices. There is no rule about odd amounts or new clients. Auto approve is off out of the box, so everything lands here. Charges from a ticket only arrive once the ticket is CLOSED. Approve gives the invoice a number, makes it payable, and pushes it to QuickBooks. Reject throws the draft away. The month is still owed, so it comes back at the next run. You can also charge it later with Run backfill. Reject does not send anything back for edits. You can edit a pending invoice in place.

What are billing statuses?

The ticket-time billing categories your techs classify labor into (Billable, In-Scope, Warranty, Project-Hours, and any you add). Each status is either in-scope (never billed) or billable, and a billable one carries an hourly rate, a rounding unit (15 to 240 minutes), and a QuickBooks product, so tech time is classified once and rolled into invoices without manual mapping. The status lives on the ticket, not on the invoice or subscription. These are not invoice states like Draft, Sent, or Paid; those are separate. The list sorts by any column; there is no drag ordering here.

What is Min Billable Minutes?

A noise floor for ticket time, not a rounding-up rule: if a technician's total logged time on a ticket is below this many minutes, that time is dropped from the invoice (excluded entirely, it does not round up to N). The default is 5 minutes. Rounding logged time up to an increment is a separate setting, the per-status Billing Unit shown above. This value is edited on Billing & Pricing → Invoice Settings; this page only links there, so there is a single input, not two that sync. Note: because the code parses this value as `parseInt(value) || 5`, entering 0 reverts to the default 5 rather than billing all time, set it to 1 to bill every entry.

What do the invoice statuses mean?

Draft is one you are still writing. Pending Approval is one a billing run made that nobody has approved yet. Outstanding means it is owed. Overdue means it is owed and past its due date. Paid means it is settled. Void means it was withdrawn and is not owed.

What do Skip and Void do?

Skip is in the menu on a plan invoice waiting for approval. It uses up that billing period without billing it, and the period never comes back. Void is in the menu on one that is owed and not yet paid. It withdraws the bill and keeps the number, the lines and the history as a record. Void cannot be undone, and it does not free the billing period.

What billing integrations are supported?

QuickBooks Online is the live accounting provider - invoices, payments, customers, and items sync bidirectionally. Xero is scaffolded but not yet implemented. Each provider exposes the same AccountingProvider contract so business code never imports the vendor SDK directly.

How do I view my invoices?

Open Billing to see every invoice for your organization. Each one shows the amount, the status, the due date, and its line items. Your IT provider creates these from your service plans, from work on your tickets, or by hand, and may keep them in step with their accounting software.

What are the billing tabs?

Billing has five tabs. Approval Queue holds new invoices until you approve them. Invoices lists every invoice, both plan invoices and one-off ones. Quotes is where you draft and send quotes. Service Plans holds the plans you sell. Discounts lists the discounts your clients get.

What do invoice statuses mean?

Outstanding means the bill is due and not paid yet. Overdue means the due date has passed. Paid means the payment came in. Void means your IT provider cancelled it. Click any invoice to see the full detail and its line items.

Why was I billed for a support ticket?

Some work sits outside your service plan. Project work and after-hours help are two examples. That work is marked billable, and it is billed by the time it took. Your plan sets the rate. Any bill for it shows up with your other invoices.

Why did my client's annual add-on not join the May invoice?

An annual plan only makes an invoice in its own billing month. It does not make one every month. If the annual add-on billed in March or April, at the start of the contract, it already produced its whole year of revenue. It will not bill again until the next anniversary. So there was nothing to merge in May. That is correct, not a bug. To check, look at the plan's lastBilledDate. That is the one that says a term was really billed. nextBillDate only means something beside it. On a plan that has never billed it is a stale pointer that the nightly run fixes. There the real answer is the start date, because every period since then is still owed.

How does a rolled up plan find the right Core invoice?

Not by matching period labels. A Core invoice covers a date window on the Core plan's own cycle. It runs from the core's bill day to the day before its next bill day. A rolled up plan joins whichever Core window contains its period. Say a client bills on the 16th. Their Core invoice covers Jul 16 to Aug 15. Their Microsoft 365 licences bill on the 1st, like all synced licence plans. The licence period starting Aug 1 falls inside that window, so it merges onto the July Core invoice. The Core line still reads July and the licence line right below it reads August. Both are right. The invoice is the window, and each line names its own month. If a plan's period does not land in any Core window this run, it does not wait. It bills standalone, the same as an add-on with no Core plan at all. The run records billed on its own against that plan and month. You can see it in the not billed card on the Approval Queue and in System Logs > Operations. The rollup switch stays on, so the next period a Core window does cover, it merges again. A period never waits for a future window. The rollup test only decides WHICH invoice a due period lands on, never whether it bills.

What if a client has add-ons but no Core plan?

The add-on bills on its own, by itself. That happens when the client has no Core plan, or the Core plan has nothing due this cycle. Billing it is the point. Holding it back would park a month of money behind a plan that may not be due for a year. The switch is kept, so once a Core invoice is due in the same window, later cycles merge it again. The invoice carries no special mark, but the run does. It records billed on its own against that plan and month. You can see it in the not billed card on the Approval Queue and in System Logs > Operations. So you can tell why the client got an invoice they did not get last month.

I approved the Core invoice, so why is the add-on still pending?

If the add-on shows as its own invoice in the queue, the merge did not happen when the invoices were made. There are three usual reasons. The add-on may not have Roll up to Core invoice turned on. Its period may not have landed in any Core window this run. Or the client may have had no Core invoice due at all. Approving does not merge anything. It only moves the invoice from pending to outstanding and pushes it to QuickBooks. An approved Core invoice cannot be re-opened to take the add-on. So fix the switch and let the next run catch it, or just approve the two on their own.

Where do I see which plans were not billed?

Look at the not billed card on this page, right after you press Generate Invoices. The same list is in System Logs > Operations, inside the billing run. Both show the client, the plan, the month and the reason. The reasons are a fixed set. Most nights three ordinary ones fill the list. Already billed means that month already has an invoice, which is the healthy state. Not started means the billing start date has not arrived. Nothing owed means today has not reached the next billing date, or Dismiss closed everything in range. None of those three mean anything is wrong. The rest are worth a look. Priced to $0 means the plan worked out a zero total for that month. That is a data problem, not a real charge, so no invoice was written. Billed on its own means a rolled up add-on made its own invoice, because no core plan invoice was due for it to join. The money still billed. Period already closed means something else billed or skipped it since the run began. Outside the billable range means the month is not in that plan's owed window. Unexplained means no reason was recorded, and you should report it. One month never blocks another. A plan billing several months at once makes one invoice for each. Anything still unbilled shows as a badge on the plan row and you can charge it later with Run backfill. This list is capped, and the odd reasons are kept first, so what you see is what matters.

Was this helpful?

Last validated 2026-09-24