Invoice lines in Autotask
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
- Recurring lines in Autotask
- Non-recurring lines in Autotask
- Platform to Autotask field mapping
- How to verify a synced line
- Known limitations
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. |
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. |
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.
- 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.
- 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.
- 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.
- 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.
- 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.
Related content
Was this article helpful?
Articles in this section
- Autotask integration overview
- How to obtain Autotask credentials
- Autotask Setup Guide
- First steps with the Autotask integration
- Autotask integration: Mapping organizations, products and contracts
- Autotask integration: Loading and syncing invoice lines
- Invoice lines in Autotask
- Autotask integration: System Logs and troubleshooting
Add comment
Please sign in to leave a comment.