Invoice lines in Autotask

Appxite

Introduction

This article explains what happens in Autotask after a successful sync from the Platform — where to find the synced data, how Platform fields map to Autotask entities, and how to verify from within Autotask that each line arrived correctly. It covers both recurring and non-recurring Invoice Lines.

This article covers lines with Sync Status = Synced. Lines with Sync Status = Skipped, Failed, or Not Synced weren't posted to Autotask and won't appear as described here. For details on diagnosing those statuses, see Autotask integration: System Logs and troubleshooting.

In this article

How Platform concepts map to Autotask entities

The Platform and Autotask use different names and data structures for the same billing concepts. The table below shows the complete mapping, which is also reflected on the Settings → Dictionary tab.

Platform concept Autotask entity Notes
Organization Company / Account Mapped manually on the Organizations tab. Multiple Platform Organizations can map to the same Autotask Company.
Contract Recurring Service Contract (contractType = 7) Only Recurring Service type contracts are supported. Mapped manually on the Contracts tab, or auto-created if the toggle is enabled.
Offer / Product Service (Services entity) Mapped manually on the Products tab. References the Services entity — not the Autotask Products entity, which is a separate entity used for non-recurring catalog items.
Recurring Invoice Line (Cycle Fee, Purchase Fee) Contract Service + Contract Service Adjustment One Contract Service per subscription, adjusted month-over-month via Contract Service Adjustments. The Adjustment is a Create-only operation.
Non-recurring Invoice Line (Usage Fee, Correction, User Correction, Item Fee, One Time Fee) Contract Charge One Contract Charge per invoice line, created once and never updated. Requires a Material Code (Billing Code) from Settings → Configuration.
Charge Start Date Effective Date / Date Purchased For recurring lines: always the first day of the invoice month. For non-recurring lines: the exact charge start date.
Charge End Date Cancellation Date / Billing Period End Date Passed through from the Platform as-is. No date reshaping rules are applied.
Material Code mapping Billing Code (billingCodeID on Contract Charges) Configured in Settings → Configuration → Material Code Mappings. Required for every non-recurring line.

Services and Products are two completely separate entities in Autotask with different REST API endpoints, different field sets, and different purposes. The Platform's Products mapping tab maps Offers to Autotask Services — not to Autotask Products. This naming difference is reflected in the Dictionary tab.

Recurring lines in Autotask

Recurring Invoice Lines (Cycle Fee, Purchase Fee) are posted to Autotask through two related entities working together: a Contract Service and a Contract Service Adjustment.

How it works

When a recurring line syncs for the first time, the integration creates a Contract Service — the permanent association between the mapped Autotask Service and the Recurring Service Contract. On every subsequent sync for the same subscription, the existing Contract Service is reused — a new one is never created for the same subscription.

The integration then posts a Contract Service Adjustment — a quantity change record that adjusts the Contract Service's unit count. The adjustment value is the delta: desired quantity minus the current Autotask unit count. If the quantity, price, and cost already match what Autotask holds, no adjustment is posted and the line is simply marked Synced.

Note: A Contract Service Adjustment is a Create-only operation in Autotask — it can't be queried, updated, or deleted once posted. The Platform doesn't rely on Autotask returning an adjustment ID to confirm success; instead it validates the resulting state by reading the Contract Service Units for that billing period. To verify a posted adjustment from within Autotask, check the Services tab on the contract rather than looking for an adjustment record.

Where to find recurring synced data in Autotask

In Autotask, navigate to the Contracts module → Search Contracts → open the relevant Contract → Services tab.

On the Services tab you'll see one row per mapped Autotask Service that has been added to the contract. The columns to verify:

Autotask Services tab column Maps from Platform What to check
Service Name PSA Product Name (mapped Autotask Service) Matches the Service selected on the Platform's Products tab for this Offer.
Units Invoice Line Quantity (rounded to whole number) Reflects the desired quantity from the Platform invoice line. Quantities are always whole numbers — fractional quantities are rounded before posting.
Unit Price Invoice Line Revenue (per unit) The per-unit price sent by the Platform. Treated as final — Autotask's own proration isn't applied on top.
Unit Cost Invoice Line Cost (per unit) The per-unit cost sent by the Platform.
Effective Date Charge Start Date (first day of invoice month) Always the 1st of the invoice month — never a mid-month date. This ensures the adjustment lands as a full-period change without triggering Autotask's mid-cycle proration.
[SCREENSHOT PLACEHOLDER: Autotask — Recurring Service Contract Services tab showing a synced Service with unit count, unit price, and effective date]

Note: The Prorated Transactions table at the bottom of the Services tab is empty for lines synced from the Platform. This is expected — because the effective date is always the 1st of the month, Autotask doesn't generate prorated entries. Any real proration (for example, a subscription that starts partway through a month) is calculated by the Platform and billed separately as a one-time Contract Charge, not through this table.

Deep link from the Platform

On the Mapping → Contracts tab and on the Mapping → Invoices tab, the PSA Agreement Name and PSA Agreement ID columns display as blue hyperlinks for mapped rows. Clicking either link opens the corresponding Recurring Service Contract directly in Autotask in a new browser tab, taking you straight to the contract where you can verify the Services tab.

Non-recurring lines in Autotask

Non-recurring Invoice Lines (Usage Fee, Correction, User Correction, Item Fee, One Time Fee) are posted to Autotask as Contract Charges — individual billable cost entries attached directly to the Recurring Service Contract.

How it works

Each non-recurring line produces exactly one Contract Charge, created once and never updated. The Platform stores the returned Autotask charge ID on the invoice line — on any subsequent sync attempt for the same line, the integration confirms the charge still exists in Autotask and marks the line Synced without posting again.

Caution: Because Contract Charges are write-once, you must make any correction to an already-synced non-recurring line directly in Autotask. Re-syncing the line from the Platform doesn't push updated values — it only confirms the existing charge record still exists.

A Correction or User Correction line is posted as an independent Contract Charge — it isn't linked to the original Contract Service or Contract Charge it corrects. It stands entirely on its own in Autotask. To trace what a correction relates to, use the Platform invoice data.

Where to find non-recurring synced data in Autotask

To view Contract Charges directly, in Autotask navigate to the Contracts module → Search Contracts → open the relevant Contract → Charges tab.

Each row on the Charges tab is one Contract Charge. The columns to verify:

Autotask Charges tab column Maps from Platform What to check
Name / Description Offer Name / Invoice Line description Identifies the charge on the contract.
Quantity Invoice Line Quantity Sent exactly as recorded — no rounding applied for non-recurring lines.
Unit Price Invoice Line Revenue (per unit) The per-unit revenue value from the Platform invoice line at creation time only.
Unit Cost Invoice Line Cost (per unit) The per-unit cost value from the Platform invoice line at creation time only.
Billing Code Material Code mapping (Settings → Configuration) The Material Code configured for this Charge Type. If missing at sync time, the line fails rather than posting without a Billing Code.
Date Purchased / Charge Date Charge Start Date (exact date) The exact charge start date from the Platform — not rounded to month start, unlike recurring lines.
[SCREENSHOT PLACEHOLDER: Autotask — Recurring Service Contract Charges tab showing synced Contract Charges with Billing Code and amounts]

To approve and post Contract Charges for invoicing within Autotask, navigate to the Contracts module → Invoices & Adjustments → Approve & Post.

Running Approve & Post is part of your standard Autotask billing workflow. It isn't triggered by the Platform.

Platform to Autotask field mapping

The table below shows precisely which Platform field value is sent to which Autotask field, for both recurring and non-recurring paths.

Platform field Recurring (Contract Service Adjustment) Non-recurring (Contract Charge)
Organization mapping contractID (must be contractType = 7) contractID (same contract)
Product mapping (Offer → Service) serviceID (references Services.id) Not applicable — Contract Charges don't reference a Service
Quantity unitChange (delta: desired − current Autotask units, rounded to whole number) unitQuantity (exact value, no rounding)
Revenue (per unit) adjustedUnitPrice unitPrice
Cost (per unit) adjustedUnitCost unitCost
Charge Start Date effectiveDate (set to 1st of invoice month) datePurchased (exact charge start date)
Material Code mapping Not used on Contract Service Adjustments billingCodeID (required; resolved from Settings → Configuration)

For recurring lines, the effectiveDate is always set to the first day of the invoice month — never a mid-month date. This is intentional: it ensures the adjustment is treated as a full-period change rather than triggering Autotask's own mid-cycle proration, which would result in double-billing on top of the Platform's already-calculated amounts.

How to verify a synced line

Use this step-by-step checklist to confirm a specific Invoice Line was posted correctly.

  1. In the Platform, go to Mapping → Invoices and confirm the line's Sync Status badge shows Synced. Note the PSA Agreement Name / PSA Agreement ID, PSA Product Name, Charge Type, Quantity, and Revenue values for that row.
  2. To open the contract directly in Autotask, click the PSA Agreement Name hyperlink on the Invoices or Contracts tab. Alternatively, in Autotask navigate to the Contracts module → Search Contracts → search by contract name or Account name.
  3. For a recurring line (Cycle Fee, Purchase Fee): open the Services tab. Find the row for the mapped Service. Confirm the Units match the expected quantity (Platform Quantity, rounded to whole number), the Unit Price matches Platform Revenue, and the Effective Date is the 1st of the invoice month.
  4. For a non-recurring line (Usage Fee, Correction, User Correction, Item Fee, One Time Fee): open the Charges tab. Find the row with the matching description, amount, and date. Confirm the Billing Code matches the Material Code configured for that Charge Type in Settings → Configuration.
  5. If a line shows Sync Status = Synced on the Platform but the expected entry can't be found in Autotask, check that you're looking at the correct contract (the one linked via the PSA Agreement ID hyperlink) and the correct tab (Services for recurring, Charges for non-recurring). If still missing, open Logs & Monitoring on the Platform and filter by the relevant timestamp to review the sync log entry.

Known limitations

  • Contract Service Adjustments can't be queried. Autotask's ContractServiceAdjustment entity is Create-only — it can't be retrieved via the API once posted. To confirm a recurring line was posted, check the unit count on the contract's Services tab rather than looking for an adjustment record.
  • Non-recurring lines are write-once. Once a Contract Charge is created for a line, re-syncing doesn't update its values. You must make any correction directly in Autotask.
  • Quantities are rounded to whole numbers for recurring lines. The Platform can track fractional quantities; Autotask contract service units must be whole numbers. Rounding is applied at the point of posting. Non-recurring line quantities aren't rounded.
  • No automatic Autotask proration. The Platform treats invoice amounts as final. The effective date for recurring adjustments is always set to the 1st of the month to avoid triggering Autotask's mid-cycle proration on top of the Platform's own pre-calculated amounts. Any proration calculated by the Platform appears as a separate non-recurring line.
  • Corrections aren't linked to the original charge. A Correction or User Correction line creates an independent Contract Charge in Autotask. It isn't associated with the Contract Service or Contract Charge it relates to.
  • No automatic creation of Autotask Companies. Only existing Autotask Companies can be mapped to a Platform Organization. The integration can't create a new Company in Autotask on a customer's behalf.

Summary

After a successful sync from the Platform, recurring Invoice Lines appear on the Contracts module → Contract → Services tab as Contract Services with their unit count updated via a Contract Service Adjustment. Non-recurring Invoice Lines appear on the Charges tab as individual Contract Charges. The PSA Agreement Name hyperlink on the Platform's Contracts and Invoices tabs takes you directly to the relevant contract in Autotask. For details on the sync process itself, see Autotask integration: Loading and syncing invoice lines.

Was this article helpful?

0 out of 0 found this helpful

Add comment

Please sign in to leave a comment.