Skip to main content
Ready to Invoice

Edit an Invoice Line

This popup window lets you review and manually correct the details of an individual charge before sending it to HaloPSA. It is used when a line coming from Pax8 (or another distributor) needs adjustments to price, quantity, product, assi...

Last updated 24 days ago

This popup window lets you review and manually correct the details of an individual charge before sending it to HaloPSA. It is used when a line coming from Pax8 (or another distributor) needs adjustments to price, quantity, product, assigned company, or billing configuration before it becomes an invoice or a recurring invoice.

When to use this screen

  • When the product or company automatically detected by the system is incorrect and you need to correct it manually.
  • When the price, cost, or quantity that came from the distributor needs to be adjusted before billing the customer.
  • When you want to "freeze" (override) a price, cost, or margin value so it isn't overwritten during the next distributor import.
  • When you need to mark a line as Track Cost Only, meaning a charge that is only used to track cost and profitability internally, without showing on the customer's final invoice.
  • When you want to review the status and result of the last processing of that line, or where it comes from if it was created by a charge assignment rule.
  • When you need to check the HaloPSA client ID and HaloPSA item ID behind the client and item names, to confirm a mapping against HaloPSA β€” or to find out why a line is not being sent.
  • When a product name is too vague to tell what the charge is, and you need to read the distributor's own description of it.

What it shows

The window is organized into sections:

Invoice Line Information

FieldDescription
Source CompanyCompany name as it appears on the distributor's original invoice. Read-only.
Halo CompanyHaloPSA client this charge will be assigned to. Can be changed to correct an incorrect mapping.
HaloPSA client IDShown in small type directly under the Halo Company picker. The picker shows a name, and two clients in HaloPSA can share a name β€” the ID cannot, so this is what you check a mapping against. If no client is assigned, it reads "No HaloPSA client assigned" instead.
Source ProductOriginal product name from the distributor. Read-only.
Halo ProductHaloPSA product/item this charge will be linked to. Must exist in HaloPSA and be configured to sync with your accounting platform.
HaloPSA item IDSame idea, under the Halo Product picker. If the item is ever cleared it turns red and reads "No HaloPSA item assigned β€” this line will not be sent" β€” not a cosmetic warning: a line with no HaloPSA item is skipped when the invoice is sent, which is the usual reason a charge never reaches HaloPSA. Pick an item again before saving. Note you cannot arrive at this dialog in that state: opening Edit on a line that has no HaloPSA item is refused with "Halo product is not assigned!", so use Assign Halo Product in the charges grid for those.
Distributor descriptionA full-width block showing the distributor's own wording for this charge, when it sent any. It is often the only thing that says what a line really is: a product called just "Surcharge" turns out to be "1.0% credit card surcharge for August invoice" once you can read it. Read-only, and it is not saved with the line β€” it is the distributor's text.
Source SKUOriginal distributor SKU, used to identify and map products. Read-only.
Halo SKUSKU that will appear on the HaloPSA invoice line (reference for accounting reconciliation).
Tax codeTax code that will be applied to this line.

Prices and Quantities

FieldDescription
Qty OrderNumber of units billed on this line.
Unit PricePrice per unit charged to the customer. It can show up to 6 decimals: when Pax8's unit price does not add up to Pax8's total, BillingBot uses total Γ· quantity so HaloPSA bills the same amount (see Pricing Resolution Guide).
Unit CostYour cost per unit paid to the distributor.
Total PriceTotal revenue for the line (Qty Order Γ— Unit Price). Calculated automatically and read-only.
Net AmountTotal cost for the line (Qty Order Γ— Unit Cost). Calculated automatically and read-only.
Qty FreeFree or promotional units included; not charged but shown on the invoice for reference.
Price override (product)Read-only. Shows whether Price Override is enabled for this product in Edit Map Product; change it there.
Cost override (product)Read-only. Shows whether Cost Override is enabled for this product in Edit Map Product.
Margin override (product)Read-only. Shows whether Margin Override is enabled for this product in Edit Map Product.
Track Cost OnlyIf enabled, the line is sent to Halo as a grouped charge ("bundle") only for cost tracking: it does not appear on the customer's final invoice (only on the recurring invoice), useful for costs included within a managed service. Changing it here does two things β€” see What Track Cost Only does when you change it here below.

Status Information

FieldDescription
StateCurrent processing status of the line (for example, pending, published, error). Read-only.
ResultResult of the last processing action; shows success confirmation or error detail. Read-only.
Invoice DateDate the distributor issued the charge, used to calculate the billing period. Read-only.

Assigned Charge Information (only if applicable)

This section only appears if the line was generated by a charge assignment rule (for example, a split or redistribution of charges between companies). It shows, read-only:

  • Assignment Source Company: the original company the charge was assigned from.
  • Assignment Source Product: the original product the charge was assigned from.
Overview of the dialog with the information, prices, and status sections visible
Overview of the dialog with the information, prices, and status sections visible

What Track Cost Only does when you change it here

Track Cost Only is decided at three levels, most specific first. This dialog is the only place that reaches the first one.

LevelWhere it is setWhat it covers
This line, this monthThis dialogThe one charge you have open, for the current period only
This clientThe charges grid in Prepare BillingEvery line of this product for this client, remembered month to month
Every clientEdit Product MappingEvery client billed this product

When you tick or untick the box here and save, BillingBot does both of the first two at once:

  1. It marks this line as decided by hand, so the next import for the current period will not overwrite it. This is the only level that can single out one line when a client has several lines of the same product.
  2. It stores the answer for this client and this product, so it holds for future months too β€” including a deliberate no. Turning it off is a real "do not bundle this for this client", so it also survives on a product that is bundled for everyone else. It used to be stored only as a deletion, which meant the "off" was lost on the next import.

The line is saved first. The answer for this client and product is stored only if the line was saved: if saving the line fails, nothing is stored for the next months either.

If the charge was moved to this client with Cross-Map Product, the client-level answer is stored for the distributor company the charge originally came from, so it keeps working next month and does not affect this client's own charges of the same product.

If the answer you save is the same as the product's global setting, no client rule is kept β€” there is nothing to remember. That is why you will not always see a new entry in Charge Mappings after saving.

Available Actions

  • "Update Invoice Line": saves the changes made to the line. Sends the updated information to the server and closes the window. If you enabled or disabled Track Cost Only, the two things described in the section above also happen. After saving, the line is reloaded on the previous screen with the updated values.
  • "Cancel": closes the window without saving any changes.
  • Close icon (X) in the top corner: has the same effect as "Cancel"; closes without saving.

None of these actions are irreversible by themselves within this screen: changes are only applied when you press "Update Invoice Line", and this screen does not send the invoice to HaloPSA or delete distributor information.

Step-by-Step Flow

  1. From the screen of invoices ready to send, select the line you want to correct and open the edit option (Edit).
  2. Review the source data (Source Company, Source Product, Source SKU) to confirm which distributor charge you are adjusting.
  3. If the HaloPSA company or product is incorrect, select the correct values in Halo Company and Halo Product.
  4. Adjust Qty Order, Unit Price, Unit Cost, or Qty Free as needed. When you change the unit price, Total Price and Net Amount are recalculated automatically.
  5. A price or cost you type here is kept when new charges are imported. It is replaced if the product is saved in Edit Map Product with an override (or Use Halo Price) enabled, or if this company's charges are reimported. To fix a price for every month, set it on the product instead.
  6. If the charge should only be used for internal cost tracking and should not appear on the customer's invoice, enable Track Cost Only.
  7. Click "Update Invoice Line" to save the changes, or "Cancel" to discard them.
Price and quantity fields with the override and Track Cost Only checkboxes
Price and quantity fields with the override and Track Cost Only checkboxes

Common Errors and How to Resolve Them

  • Error message when saving the line: if an error message appears when you click "Update Invoice Line", it comes directly from the server's response and indicates why the line could not be updated (for example, invalid data or a connection issue). Check the required fields (quantity, price) and try again.
  • "An error was encountered - this has been logged to support.": appears when an unexpected problem occurs while saving the line or loading the assigned charge information. The incident is logged automatically; if the message persists, contact support with the affected company and product.
  • Error when enabling/disabling Track Cost Only: if storing the client-level answer fails, you will see an error message, but the line itself is still updated with the rest of your changes. The line will then show what you asked for while the setting is not remembered for next month. Saving the line again without changing the box does not retry it (the answer is only stored when the box changes), so check Charge Mappings and contact support if the rule is missing. If instead the line itself could not be saved, the client-level answer is not stored at all, so the line and next month stay as they were.
  • "Halo product is not assigned!": you tried to open Edit on a line with no HaloPSA item. This dialog cannot be used to give it one β€” use Assign Halo Product on that line in the charges grid, then come back. The Mapped column in the grid shows which lines are in this state.
  • The line is not being sent to HaloPSA: the usual cause is exactly the above, no HaloPSA item. Check the Mapped column in the charges grid, and the HaloPSA item ID here if the dialog does open.
  • "'...' is not a per-client billing rule.": an internal validation message; it means the screen asked the server to store a rule type that is not one of the per-client billing decisions. It is not something you can cause from normal use β€” report it to support with the company and product involved.
  • Numeric field validations: if you leave the quantity or price fields empty or with invalid values, the form will show validation messages below the field and won't allow saving until they are corrected.