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

# Recurring Invoices

> Set up schedules that create customer invoices automatically each week, month, quarter, or year, run them on demand, pause them, and review what each schedule has generated.

Use **Sales > Invoices > Recurring** when a customer is billed the same way on a regular schedule, such as a monthly
retainer, a service plan, or a standing rental. A schedule remembers the customer, the lines, and how often to bill. On
each due date Arcus creates the invoice for you, so nobody has to type it again.

You can reach the page from **Sales > Invoices > Recurring**, from the command palette, and from the recurring section
of the accounting dashboard. Its sibling, **Sales > Invoices > All Invoices**, is where the invoices a schedule creates
land. See [Invoice Management](/support/invoices/management).

## Before You Start

* You need **View Orders** to open the page and read the schedules and their run history.
* Creating, editing, pausing, resuming, deactivating, running, and reactivating schedules all need **Create Orders**. The buttons are not hidden, so a role without it sees the page, and Arcus refuses the change when you try.
* The schedule window loads the revenue accounts for its lines from your chart of accounts, which needs **View Accounting**. Without it the revenue account list does not load.
* The customer must already exist as a customer account. See [Account Management](/support/accounts/management).
* A schedule that posts its invoices needs an open accounting period for each invoice date, because posting records the sale in the ledger.

<Note>
  A schedule is a template, not an invoice. Changing it never rewrites invoices it already created; it only changes the
  invoices created from the next run on.
</Note>

## Read the Page

The page opens on the list of schedules, with four summary tiles above it.

* **Monthly run-rate**: the active recurring revenue, with every active schedule's amount converted to a monthly figure.
* **Active schedules**: how many schedules are running. Select it to open the **Active** tab.
* **Due to run**: active schedules whose next run is today or earlier. Select it to open the **Due** tab.
* **Paused**: schedules that are switched off. Select it to open the **Paused** tab.

The tabs are **All**, **Active**, **Due**, and **Paused**, each with a count. **Due** overlaps **Active**, because a due
schedule is also an active one. An **Attention** tab appears only when Arcus finds a schedule that fits none of the
others, and is normally hidden. Search matches the schedule name or the customer.

The columns are **Row #**, **Name**, **Customer**, **Amount**, **Frequency**, **Next Run**, **Last Run**, and **Status**.
Use the Columns menu to hide, restore, or reorder them, and the saved views menu to keep a layout. Name stays visible.
Select a column heading to sort, and the link in your address bar keeps your tab, search, sort, and page so a teammate
sees the same list.

Under a schedule's name you may see small labels:

* **Ends** or **Ended** with a date, when the schedule has an end date.
* **Draft only**, when the schedule creates drafts instead of posting.
* **Auto-email**, when each posted invoice is emailed to the customer.

A **Next Run** date in red with **(due)** means the schedule is active and that date has passed. **Status** is **Active**
or **Inactive**.

When every schedule is inactive, a banner reads **Active: 0 / Total** with the count and says **All recurring invoice
schedules are inactive. No invoices will be auto-generated until at least one is reactivated.** If the list cannot load
you see **Failed to load recurring invoices.** with a **Retry** button. With no schedules at all the page says **No
recurring invoices** and **Create a schedule to auto-generate customer invoices**; with a tab or search that matches
nothing it says **No schedules match this filter**.

## Create a Schedule

1. Select **New Recurring Invoice**.
2. Enter a **Name** such as "Monthly retainer", and choose the **Customer**. Add a **Description** if it helps your team.
3. Choose the **Frequency**: **Weekly**, **Monthly**, **Quarterly**, or **Annually**.
4. Set the **Next Run Date**, the first date an invoice should be created.
5. Choose **Payment Terms**, or leave **(use customer default)** so each invoice takes the customer's own terms.
6. Optionally set an **End Date**. It must be on or after the next run date, or the window says **End date must be on or after the next run date.**
7. Optionally enter **Shipping** to add the same shipping charge to each invoice.
8. Decide what happens when an invoice is created:
   * Leave **Post invoice on generate (GL + AR)** checked to post each invoice so it counts as a receivable at once. Uncheck it to create a draft proforma for someone to review and post.
   * **Email the invoice to the customer on generate** sends each posted invoice to the customer. It is available only while posting is on, and says **(requires posting)** otherwise.
9. Under **Line Items**, pick the **Revenue Account** for each line, add a **Description**, a **Qty**, and a **Rate**. Use **Add Line** for more lines and the trash button to remove one. A schedule always keeps at least one line. The total of the lines is shown under the table, before tax.
10. Select **Create Schedule**. You see **Schedule created**.

The button stays off until the window has a name, a customer, a next run date, and at least one line with a positive
amount; hovering it says so. Tax is not part of the schedule: it is calculated through your tax connection each time an
invoice is posted. If the customer has no shipping address or the tax calculation fails, the invoice keeps the tax amounts
on its lines, so check the first generated invoice.

To change a schedule, select its row or **Edit**, change the fields, and select **Save Changes**. You see **Schedule
updated**.

## What Each Run Does

When a schedule runs, Arcus creates a new invoice for the customer dated the run date, with the lines, terms, and
shipping from the schedule and a note that it was **Auto-generated by recurring schedule** with the schedule name. It
then moves **Next Run** forward by one period and sets **Last Run**. A monthly schedule keeps its day of the month, so one
that starts on the 31st runs on the last day of shorter months.

Arcus runs every due schedule once a day on its own. You can also run schedules yourself:

* **Run now** on a row (the play button) opens **Run Schedule Now**. It says whether the invoice will be posted or created as a draft, whether it will be emailed, and the date **Next scheduled run advances to**. Select **Run Now** to generate the invoice today. You see **Invoice generated from** the schedule name. Only active schedules offer it.
* **Run All Due** in the page header opens **Run All Due** and generates invoices for every active schedule whose next run date is today or earlier. You see how many were generated out of how many were due, for example **2 of 3 due schedule(s) generated**.

A schedule never creates two invoices for the same run date, so running again the same day does not duplicate it.

If a run is skipped you see **Schedule skipped** with the reason in brackets:

* **skipped\_ended**: the schedule's end date has passed. Arcus also switches the schedule to inactive.
* **skipped\_paused**: the run date falls inside a planned pause window on the schedule. The next run moves to the day after the window.
* **skipped\_duplicate**: an invoice was already created for that date.

If the invoice cannot be created, for example because the accounting period is closed, the run is logged as an error and
Arcus tells you **Invoice generation failed. Check the run history for details.**

## Pause, Resume, and Deactivate

* **Pause** (the pause button) switches an active schedule off without losing it. You see **Schedule paused**. The same button reads **Resume** on an inactive schedule and shows **Schedule resumed**.
* **Reactivate All** appears in the page header when any schedule is inactive. It resumes every inactive schedule that has a future next run date. A schedule whose next run date is already in the past is left alone, so a long-paused schedule does not suddenly bill for old dates. You see **2 schedule(s) reactivated.**, **1 reactivated. 1 skipped (past date).**, **No inactive schedules to reactivate.**, or, when every inactive schedule was skipped and none was resumed, a warning that names how many were skipped, such as **2 schedule(s) skipped -- next run date is in the past.** Edit a skipped schedule's next run date, then resume it.
* **Deactivate** (the trash button) opens **Deactivate Recurring Invoice**, which says the schedule will stop generating invoices and that invoices already created remain. Select **Deactivate** and you see **"Name" deactivated**. A deactivated schedule stays in the list as **Inactive**, and you can resume it later.

## Review What a Schedule Created

Select **Run history** (the clock button) on a row to open **Run History** for that schedule. Each line shows the
**Invoice** number and amount, the **Run date**, the **Trigger**, and the **Status** (**success**, **error**, or a skipped
status). **Trigger** reads **scheduler** for the daily run, **manual\_run\_now** for **Run Now**, and **batch\_run\_all** for **Run All Due**. An error line shows the
reason beside the invoice. With nothing yet it says **No runs yet** and **This schedule has not generated any invoices.**
If it cannot load, you see **Failed to load run history** and **Retry**.

Open the generated invoices from **Sales > Invoices > All Invoices**. A posted one appears with the posted invoices; a
draft one appears on the **Draft** tab until you post it.

## What Happens Behind the Scenes

* **Posting**: a posted invoice records the sale in the general ledger, adds the invoice to accounts receivable, and calculates tax through your tax connection. A draft proforma does none of that until it is posted.
* **Email**: with **Auto-email** on, each posted invoice is emailed to the customer with the PDF attached, and the send is recorded in the customer's communication history.
* **Audit**: creating, editing, running, and deactivating a schedule are each written to the activity history.
* **Live updates**: other users see schedules and run history change without refreshing.

## Common Blocks

* **Run Now is not offered**: the schedule is inactive. Resume it first. If you force it you see **Schedule is not active**.
* **A run was skipped**: read the reason in the message and in the run history.
* **An invoice was not created**: open the run history and read the error. A closed accounting period is the usual cause; change the period or the next run date and run again.
* **Reactivate All skipped a schedule**: its next run date is in the past. Edit the date, then resume it.
* **The customer is not in the picker**: only customer accounts are listed. Check the account type.
* **A change was refused**: your role may not include **Create Orders**.

## Related Articles

<CardGroup cols={2}>
  <Card title="Invoice Management" href="/support/invoices/management">
    Sales > Invoices > All Invoices: review, send, collect, correct, and void the invoices a schedule creates.
  </Card>

  <Card title="Account Management" href="/support/accounts/management">
    Sales > Accounts > Customers: customer terms, addresses, and email.
  </Card>

  <Card title="Recurring Bills" href="/support/accounting/recurring-bills">
    The same idea for the bills you receive from vendors.
  </Card>

  <Card title="AR Management" href="/support/accounting/ar-management">
    Track customer balances, aging, statements, and collections work.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.