Platform Contracts and ConnectWise Agreements
Introduction
When invoice lines are synced from the Platform to ConnectWise, each line must be attached to a ConnectWise Agreement. On the Platform side, invoice lines belong to an Invoice Contract. These two concepts — Platform Invoice Contract and ConnectWise Agreement — serve a similar purpose (defining the billing relationship with a customer) but they are not the same thing, they exist in different systems, and they do not have a strict one-to-one relationship.
This article explains what each concept is, how they are linked during the integration, and what Partners need to be aware of when managing both systems.
Terminology note
Throughout the ConnectWise integration, the Platform and ConnectWise use different names for related concepts. For contracts and agreements specifically:
| Platform term | ConnectWise term | |
|---|---|---|
| Invoice Contract | ≈ | Agreement |
| Contract ID | → | Referenced in the PSA Agreement Name field mapping |
| Organization | → | Company |
The ≈ symbol is intentional — they are not exactly equivalent. The differences are explained in this article.
1. What is a Platform Invoice Contract?
In the Platform, a Contract is the agreement that defines the billing relationship between two organizations. There are three contract purposes — Invoice, Resell, and Consume. For the ConnectWise integration, only the Invoice Contract is relevant.
An Invoice Contract is created between a Seller (Provider) and a Customer (Consumer). It defines:
- Billing Cycle Day — the day of the month (1–28) when invoices are generated for that Customer
- Currency — the currency used for all invoice lines under this contract
- Contract Type — for example, Distribution Services, CSP, Azure Plan & OneTime
- Organization Name = same customer across multiple rows
- Contract ID = same value across all rows for that customer
- Scroll right to show the Contract ID column if it is not immediately visible
The Invoice Contract is created automatically when a Customer is onboarded on the Platform. Partners do not normally need to create or modify Invoice Contracts — the key attributes to be aware of for the integration are the Currency and the Contract ID.
2. What is a ConnectWise Agreement?
In ConnectWise, an Agreement is the billing container that invoice lines (Additions) are attached to. It defines the billing terms for a specific Company — billing cycle, currency, and invoicing settings. When the Platform syncs invoice lines to ConnectWise, they appear as Additions on the Agreement for the mapped Company.
Key Agreement fields that matter for the integration:
| Field | Why it matters |
|---|---|
| Agreement Name | Appears in the PSA Agreement Name dropdown on the Platform's Mapping → Invoices tab. Used by the integration to identify the correct Agreement when resolving where to post lines. |
| Agreement Type | Must match the Agreement Type selected in Platform Settings → ConnectWise → Configuration. Used to find or create the Agreement during sync. |
| Status | Must be Active. The integration cannot post Additions to a Cancelled Agreement. |
| Currency | Must match the Platform Invoice Contract currency. ConnectWise does not convert currencies — a mismatch posts values in the wrong currency silently. |
| Bill Products | Must be set to Billable for Additions to appear on invoices. |
| Billing Start Date | Acts as a hard floor for Addition Effective Dates — no Effective Date sent by the Platform can be earlier than this date. See Charge-date rules: how they affect Additions in ConnectWise. |
ConnectWise Agreement Details:
3. The key difference: one Agreement per Company
The most important concept to understand about how the integration manages Agreements is the one Agreement per Company rule:
This means the relationship between Platform contracts and ConnectWise Agreements is many-to-one:
In practice this means: if a Customer has both a Distribution Services contract and a CSP contract on the Platform, all invoice lines from both contracts land as Additions under the single Agreement for that Company in ConnectWise. Partners do not need to create separate Agreements per contract type.
4. How the Contract → Agreement mapping is established
The integration stores a mapping record linking each Platform Contract to a ConnectWise Agreement. This mapping is established automatically during the Load phase (when you click Load Invoices) and resolved again during Sync if the mapping was not set during load. Partners can also assign it manually on the Invoices tab.
The resolution follows this order:
The integration checks whether a mapping already exists for this exact combination of Platform Contract ID and ConnectWise Company. If it does, that mapping is reused — no CW API call is made.
Result: Line is posted to the previously mapped Agreement.
No mapping exists for this contract, but the same CW Company already has another contract mapped to an Agreement. The one-Agreement-per-Company rule applies — the new contract mapping is created pointing to that same existing Agreement.
Result: Line is posted to the existing Agreement for this Company. A new Agreement is not created.
No mapping exists for this contract, and this Company has no previously mapped contracts. The integration queries the ConnectWise API and looks for an Agreement whose name matches the Agreement Type name configured in Platform Settings → ConnectWise → Configuration.
Example: if the configured Agreement Type is "Managed Service", the integration looks for an Agreement named "Managed Service" under that Company in ConnectWise.
If found: A mapping is created and the line is posted to that Agreement.
If not found: Move to Step 4.
No Agreement matching the Agreement Type name was found in ConnectWise for this Company. The integration creates a new Agreement automatically. See Section 5 for the exact fields used.
Result: A new Agreement is created in ConnectWise. The Platform's PSA Agreement Name column on the Invoices tab is updated automatically with the new Agreement's name after sync completes.
- The newly created Agreement is visible — its name matches the Agreement Type configured in Platform settings
- Start Date = first day of the charge start month (not the invoice date — for example, if the charge started on 15 May 2026, Start Date = 01 May 2026)
- Status = Active
- If the Company had a pre-existing Agreement (e.g. "Test Agreement"), it is still there alongside the new one
5. What an auto-created Agreement looks like in ConnectWise
When the integration creates a new Agreement in ConnectWise (Step 4 above), it sets the following fields:
| Agreement field in ConnectWise | Value set by the integration |
|---|---|
| Name | The Agreement Type name configured in Platform Settings (e.g. "Managed Service", "Cloud Services") |
| Agreement Type | The Agreement Type ID from Platform Settings |
| Company | The ConnectWise Company ID from the Organization mapping |
| Contact | The Contact ID from the mapped ConnectWise Company, if available — omitted if none exists |
| Start Date | First day of the month of the invoice line's Charge Start Date (e.g. charge starts 15 May 2026 → Start Date = 01 May 2026) |
| No End Date | True — the Agreement has no expiry date |
| Billing Cycle | Monthly |
| Bill To Company | Same ConnectWise Company as the Agreement owner |
| Billing Start Date | Same as Start Date |
| Next Invoice Date | Same as Start Date |
| Taxable | True |
| Status | Active |
| Proration | Enabled immediately after creation — ConnectWise will automatically pro-rate Addition amounts for partial billing periods |
6. Currency: how it flows from Contract to Agreement
Currency is one of the most important alignment points between Platform contracts and ConnectWise Agreements. A mismatch causes invoice lines to be posted in the wrong currency — ConnectWise does not convert currencies automatically and does not warn about mismatches.
Currency = EUR (set at creation)
Currency column shows EUR
Currency must also = EUR
Before syncing invoice lines for a Customer, verify that the Currency shown in the Platform's Mapping → Invoices tab matches the Currency set on the ConnectWise Agreement for that Company.
7. Changing the Contract → Agreement mapping
Partners can change which ConnectWise Agreement a Platform contract's invoice lines are posted to by editing the PSA Agreement Name on the Invoices tab. This can be done per line using the edit (pencil) icon, or across multiple lines using Bulk Update.
What happens automatically
When the PSA Agreement Name is changed for one invoice line, the new mapping is automatically applied to all other Not Synced and Failed lines that share the same Contract ID and Organization. You do not need to update each line individually — the cascade handles it.
Before the edit:
One line edited:
After the sync:
What requires manual action in ConnectWise
When a Contract → Agreement mapping is changed, the integration does not automatically cancel or move the Additions that were previously synced to the old Agreement. Those Additions remain open in ConnectWise and will continue to appear on invoices until manually cancelled.
talog.
1. In ConnectWise, navigate to Finance → Agreements → open the old Agreement → Additions tab.
2. For each Addition that was created by the integration for the affected subscriptions, manually set a Cancelled Date to stop them from billing further. The Cancelled Date should be set to the last day of the final billing period you want to include on the old Agreement.
3. Return to the Platform's Mapping → Invoices tab and re-sync the affected invoice lines. They will now be created as new Additions under the new Agreement.
Summary
Platform Invoice Contracts and ConnectWise Agreements serve similar purposes — defining the billing relationship with a customer — but they are different objects in different systems. The key points to remember:
- The Invoice Contract on the Platform defines the Customer's billing currency and billing cycle day. Its Contract ID appears on the Mapping → Invoices tab and identifies which contract each invoice line belongs to.
- ConnectWise uses one Agreement per Company for all Platform contracts related to that Company. Multiple Platform contracts for the same Customer all post to the same Agreement.
- The Contract → Agreement mapping is established automatically during Load and Sync — the integration searches ConnectWise for an Agreement matching the configured Agreement Type name, and creates one if none is found.
- When a new Agreement is created automatically, its Start Date is the first day of the charge start month, its Billing Cycle is Monthly, and proration is enabled immediately.
- The Platform Invoice Contract's Currency must match the ConnectWise Agreement's Currency. Mismatches post values in the wrong currency without warning.
- Changing the PSA Agreement Name for a contract cascades to all Not Synced and Failed lines for that contract automatically, but does not cancel previously synced Additions on the old Agreement — that cleanup must be done manually in ConnectWise.
Related articles
- Understanding contract types in the Platform — full explanation of Invoice, Resell, and Consume contract purposes
- Setting up the ConnectWise integration — how to configure the Agreement Type in Platform Settings
- ConnectWise integration: Mapping organizations and products — how Organization mapping links Platform customers to CW Companies
- ConnectWise integration: Loading and syncing invoice lines — how to set PSA Agreement Name on the Invoices tab
- Invoice lines in ConnectWise Manage — where to find Additions on Agreements in ConnectWise
- Charge-date rules: how they affect Additions in ConnectWise — how Agreement Billing Start Date affects Effective Dates
- ConnectWise Setup Guide for Partners — CW-side configuration including Agreement Types and currency setup
Was this article helpful?
Articles in this section
- ConnectWise integration overview
- How to obtain ConnectWise credentials
- ConnectWise Setup Guide
- First steps with the ConnectWise integration
- Platform Contracts and ConnectWise Agreements
- Connectwise integration: Mapping organizations and products
- ConnectWise integration: Loading and syncing invoice lines
- Invoice lines in ConnectWise Manage
- Charge-date rules: how they affect Additions in ConnectWise
- ConnectWise integration: System Logs and troubleshooting
Add comment
Please sign in to leave a comment.