Skip to main content
Integrations

Monthly and annual quote terms and HaloPSA invoicing

How a monthly or yearly term on a quote line reaches HaloPSA when you create a sales order, how those lines appear on recurring invoices, and what you still do in Halo to start billing.

Written By Bram Fofana

Last updated 7 days ago

On a quote, monthly and yearly are a billing Term on each line β€” how often that line is charged β€” not the same as the quote Contract duration (how long the deal runs). When a HaloPSA tenant accepts the quote and someone clicks Create sales order, Salesbuildr writes that Term onto each selected sales-order line. HaloPSA still needs Add recurring invoice on that sales order before recurring invoices are generated.

This article is for tenants connected to HaloPSA. ConnectWise and Autotask handle recurring lines differently β€” see Other PSAs.

How monthly and yearly are chosen on the quote

Each catalog product has a Term under Sellable information (Products β†’ open the product β†’ Edit). The usual enabled values are One-time, Weekly price, Monthly price, Quarterly price, and Yearly price. HaloPSA tenants can also receive longer periods from Halo (for example 6-month or multi-year licenses); those still store on the product even when they are not offered in the dropdown.

When you add the product to a quote, the line keeps the Term it had at add time. Changing the catalog later does not rewrite lines already on a quote.

To change Term on a live quote:

  1. Open the line (or use Spreadsheet View and edit the Term column).
  2. Set Term to Monthly price or Yearly price (or another recurring period).
  3. Save.

You can also set Term for several lines at once from Spreadsheet View with Edit field…. After a quote is sent, retract it before changing lines.

Contract duration is a separate quote setting (β‹― β†’ Manage Settings). It is a number of months or years. It drives recurring totals on the proposal and, later, how many times Halo should bill a recurring sales-order line. A new quote can pick up the opportunity’s value in months when that is set; you can still change it on the quote. See Quote Editor.

Quote totals group lines by Term β€” one-time, monthly, yearly, and so on. Turn on Show Total Details (also labelled Show one time and recurring total summary) if the buyer should see those rows separately.

Halo catalog items that look recurring but arrive as one-time

Halo’s Is a Recurring Item flag is not enough. Salesbuildr sets product Term from that flag and the item’s Default Billing Period on the Halo item itself (not the item Billing tab, which is accounting). If Default Billing Period is missing, the product imports as one-time even when Is a Recurring Item is Yes.

Fix the Halo item, then run Settings β†’ Integrations β†’ HaloPSA β†’ Products β†’ Synchronize products and services. Existing quote lines keep the Term they stored when they were added β€” edit those lines or remove and re-add the product. First-time Halo connection: HaloPSA Setup.

Approval does not start Halo billing

When the quote is Approved, Salesbuildr updates the opportunity and the linked Halo quotation. It does not create a Halo sales order or a recurring invoice.

The Halo quotation already carries each line’s billing period and period count (same math as the sales order). Linking a sales order to that quotation does not copy those fields onto the order β€” Create sales order writes them again from the Salesbuildr quote.

Fulfillment is a separate click. See From won quote to delivered order.

Create the sales order

  1. Open the approved quote.
  2. Click Create sales order.
  3. Select the lines that belong on this order β€” products, services, labour, bundle children, and enabled add-ons. Every selected line must already be linked to a Halo item.
  4. Optionally set a title, date, and internal note.
  5. Confirm. Salesbuildr creates the sales order in HaloPSA in the background.

You can create more than one sales order from the same quote, with a different selection each time. Each line can sit on only one order. Dialog fields: Fulfillment Tickets.

What Salesbuildr writes on each Halo sales-order line

Quote lineHalo sales-order line
Monthly priceIs a Recurring Item on, Billing period Monthly, Number of periods = contract duration in months
Yearly priceIs a Recurring Item on, Billing period Yearly, Number of periods = how many years fit in the contract duration (a 36-month duration sends 3)
Quarterly, weekly, or another recurring TermThe matching Halo billing period, with period count calculated the same way
One-time (or a blank Term)Is a Recurring Item off, no billing period, Number of periods 0
Recurring Term with no Contract durationRecurring, with the matching billing period, and Number of periods 0 (open-ended)

Sell price and cost go on the Halo line as price and cost. Halo copies those amounts onto the recurring invoice when you create it.

Number of periods is billing cycles, not a copy of the month count. Examples on a 24-month contract: a monthly line sends 24; a yearly line sends 2.

Setup fees, quote shipping, and markup extras on the Halo quotation are not sales-order lines. Shipping: From won quote to delivered order.

If a selected product is not linked to HaloPSA, the whole sales order fails and no incomplete order is created. Sync or link those products first, then retry.

Generate the recurring invoice in HaloPSA

Create sales order does not create a Halo recurring invoice. After the order is in Halo:

  1. Open the sales order in HaloPSA.
  2. Confirm each recurring line: Is a Recurring Item, Billing period, and Number of periods (Halo: Edit β†’ pencil on the line).
  3. Use Halo’s Add recurring invoice action on that sales order.

Halo then builds the recurring invoice from those sales-order lines. Monthly lines invoice every month for the period count you sent; yearly lines invoice once per year for that count. One-time lines stay off the recurring invoice.

Salesbuildr does not start, pause, or post those invoices. Invoice dates, tax, and Halo billing defaults stay in HaloPSA.

If a line is missing a billing period after sync, check the Salesbuildr quote Term and Contract duration, then fix the Halo line. Clicking Create sales order again will not rewrite lines that already synced. Repair those fields in HaloPSA.

Checklist before you expect recurring invoices

Do this in Salesbuildr before you create the sales order:

  1. Term on each recurring line is Monthly price, Yearly price, or another recurring period β€” not One-time.
  2. Contract duration is set when the deal has an end date, so Halo receives a period count. Leave it empty only when billing should be open-ended.
  3. Every selected product shows a Halo link. Unmapped or unsynced products fail the whole order.
  4. The quote is Approved. The button is missing or disabled until then.

Then in HaloPSA:

  1. Open the sales order and check billing period and number of periods on each recurring line.
  2. Click Add recurring invoice.
  3. Confirm the new recurring invoice lists the monthly and yearly lines on the schedules you expected.

Failed syncs appear on the quote’s Halo sync card and under Settings β†’ Tools β†’ Issues. Open the issue, fix the cause, then Retry only when the items are still pending or in error.

A different path: Add items to contract

Add items to contract on an approved quote is not the same as Create sales order.

From the quote sidebar Contract items card you can add service (recurring) lines to an existing Halo client contract, or create a new one. Salesbuildr then creates a linked Recurring Invoice in Halo with those lines as invoice lines β€” you do not click Add recurring invoice on a sales order.

Only service lines that are not already on a PSA contract can be selected. One-time products go through procurement or the sales order, not this dialog.

When you create a new Halo client contract from Salesbuildr, the contract header is created as yearly. Line quantities and prices come from the quote. Confirm the recurring invoice’s billing period in Halo if a line should bill monthly. For per-line monthly versus yearly on a sales order, use Create sales order and then Add recurring invoice.

Contract dialog: Quote Editor.

Other PSAs

You can have one PSA connected at a time.

PSAWhere monthly / yearly goHow recurring invoices start
HaloPSASales-order line Billing period and Number of periods from quote Term and Contract durationAdd recurring invoice on the Halo sales order (or Add items to contract, which creates the invoice)
ConnectWiseOpportunity products with a mapped billing cycle, plus start and end dates from Expected close and Contract durationConvert the opportunity to a Sales Order in ConnectWise Manage. Salesbuildr has no Create sales order button. See Recurring quote lines and ConnectWise Sales Orders
AutotaskRecurring service lines belong on an Autotask Recurring Service contract (Add items to contract). Create ticket writes product ticket charges, not contract servicesAutotask bills from the period type on the Autotask Service linked to the product, not from a period field on the contract push. Confirm that Service in Autotask is monthly or yearly before you quote

See also