a Sagan program ยท currently in private beta

Vendor Invoice Reconciliation Agent

The review screen shows every vendor invoice line flagged for quantity drift or unmatched customer, so your billing admin assigns, approves, and clicks once to update Autotask contract quantities.
before

Every month your billing administrator opens five vendor invoices in different formats, manually maps each line to the right customer and service in Autotask, checks for quantity drift from last month and from the contract, and manually updates contract quantities before billing runs. This process takes approximately 30 hours per week.

after

Your billing administrator receives a reconciliation dashboard pre-populated with all vendor data, fuzzy-matched to Autotask customers, flagged for quantity drift against two benchmarks, and ready for review. She assigns unmatched lines, approves clean rows, overrides quantities with a reason, and clicks 'push to production' to generate the export or trigger contract updates. The entire process is compressed into a single review session.

managed services / IT services / MSP / data reconciliation / invoice matching / billing operations / PAX8 API / Autotask REST API / Agent Mail / Railway / SQLite / OpenRouter /  managed services / IT services / MSP / data reconciliation / invoice matching / billing operations / PAX8 API / Autotask REST API / Agent Mail / Railway / SQLite / OpenRouter / 
the problem

Stop spending 30 hours a month cross-referencing vendor invoices against Autotask contracts.

Every month your billing administrator opens five vendor invoices in different formats, maps each line to the right customer and service, checks for quantity drift from last month and from the contract, then manually updates Autotask contract quantities before billing runs.

01
Multi-format vendor data

PAX8 API responses, PDF invoices, Excel sheets, and email attachments arrive in different structures with no unified schema.

02
Name variants across systems

The same customer appears as 'Bit by Bit LLC' in one vendor invoice and 'Bit by Bit' in Autotask, requiring manual deduplication.

03
Two reconciliation benchmarks

Each line must be checked against both the contracted quantity and last month's billed quantity to catch under-billing from either angle.

the math, if you want to look

Eliminate the monthly reconciliation bottleneck.

proof 01
30 hours per week saved

Eliminates the multi-hour monthly slog of cross-referencing PDF, Excel, CSV, and API vendor invoices against Autotask contracts.

proof 02
Single review screen

All flagged items, unmatched lines, and approved changes appear in one dashboard instead of scattered across five vendor portals and spreadsheets.

proof 03
Catch drift from two angles

Compares each line against both contract quantity and last month's billed quantity, surfacing under-billing risks before they reach the customer.

proof 04
Handles name variants automatically

AI fuzzy matching identifies when 'Bit by Bit LLC' and 'Bit by Bit' are the same customer, reducing manual deduplication work.

The agent pulls vendor data via API where available, parses uploaded files, matches every line to its Autotask customer and service using AI fuzzy matching, applies configurable exception rules for edge cases like acquired entities, compares each line against contract quantity and prior month's billing, and surfaces a clean reconciliation dashboard where your billing administrator reviews, approves, and manually triggers quantity updates.

how it works

How the agent works

The agent runs monthly to pull vendor data, match it to your customers, flag discrepancies, and prepare a reconciliation dashboard for your billing administrator.

step 01
Pull vendor data via API and file upload

The agent pulls invoice line items from PAX8 API for your confirmed vendors and accepts manual upload or email delivery for vendors without API access.

step 02
Parse and classify each line

Every line is parsed and classified as assigned (attributed to a specific customer) or unassigned (lump sum or no attribution).

step 03
Deduplicate customer names

AI fuzzy matching identifies when the same customer appears under different name variants across vendor invoices and Autotask, reducing manual resolution work.

step 04
Apply configurable exception rules

Edge cases like acquired entities still running under their old name are handled by a rules framework that can be updated without code changes.

step 05
Reconcile against two benchmarks

Each assigned line is compared against both the Autotask contract quantity and last month's billed quantity. Any deviation triggers a flag.

step 06
Surface a review dashboard

Your billing administrator sees all flagged items, unmatched lines, and approved changes in a single screen. She assigns customers to unmatched lines, bulk-approves clean rows, and overrides quantities with a reason.

step 07
Explicit approval before any update

The agent never auto-pushes updates. Your billing administrator clicks a 'push to production' button to generate the reconciliation export or trigger contract quantity updates.

ai agent · estimator console inputs transform outputs public preview
inputs
PAX8 API vendor invoice line items +

Invoice line items retrieved from PAX8 for the confirmed vendors. Each line includes company name, SKU, quantity, and unit price.

PDF vendor invoices +

Uploaded manually or delivered via email. Parsed using AI to extract line items, customer attribution, and quantities.

Autotask contract service quantities +

Retrieved via REST API. Serves as the first reconciliation benchmark.

Autotask billing items from prior month +

Retrieved via REST API. Serves as the second reconciliation benchmark for month-over-month drift detection.

Autotask company master list +

Used as the source of truth for customer names and IDs during fuzzy matching.

Configurable exception rules +

Rules defined by your team (e.g., 'treat GIS as Ascent Data') that override default matching logic for known edge cases.

transformation
Parse vendor invoices +

AI extracts line items, customer labels, SKUs, quantities, and unit prices from PDFs and Excel files into a normalized schema. PDFs are processed per document section; Excel files use column-header detection.

Deduplicate and normalize customer names +

AI fuzzy matching identifies when the same Ascent customer appears under different name variants (e.g., 'Bit by Bit LLC' = 'Bit by Bit'). High-confidence matches are auto-assigned; low-confidence matches are surfaced to the billing administrator for confirmation.

Apply configurable exception rules +

Rules framework applies aliases, name patterns, and skip rules before reconciliation runs. Allows your team to handle acquired entities, name variants, and other edge cases without code changes.

Classify assigned vs. unassigned lines +

Each line is classified as assigned (attributed to a specific customer) or unassigned (lump sum or no attribution). Unassigned lines are surfaced for manual assignment.

Reconcile against two benchmarks +

For each assigned line, compare vendor quantity against both the Autotask contract service quantity and last month's billed quantity. Flag any deviation with a specific reason (e.g., 'Vendor qty 39, contract qty 38, exceeds contract').

Aggregate into reconciliation dashboard +

All vendor data, matched customers, reconciliation results, and flags are compiled into a single dashboard organized by customer and service.

outputs
Reconciliation dashboard +

Single screen showing all vendor lines, matched customers, contract quantities, last-month quantities, flags, and approval status. Color-coded by state (green=match, yellow=in-review, red=flagged, gray=approved).

Flagged items for review +

Lines with quantity drift, unmatched customers, or exception-rule triggers. Each flag includes the specific reason and the two benchmark values for comparison.

Unmatched line assignment picker +

Interface for the billing administrator to manually assign customers to lines the agent could not match. Includes search and bulk-assign options.

Reconciliation export +

Phase 1 output: a structured Excel or PDF summary of approved changes (customer, service, old quantity, new quantity, delta) that the billing administrator uses as a reference for manual Autotask entry.

Audit log +

Non-deletable record of every reconciliation run, including timestamp, user, flagged items, overrides, and final approval.

draft ready for estimator review _
tech used
PAX8 API for vendor billing dataAutotask REST API for contract and billing recordsAgent Mail for PDF invoice ingestionAI fuzzy matching for customer name deduplicationSQLite for reconciliation history and exception rules
tool alternatives
ConnectWise PSA (alternative to Autotask for contract management)Manual email parsing (alternative to Agent Mail for invoice delivery)
honest qualification

Is this for you?

built for you if
  • + Managed services providers (MSPs) - Ascent Data and similar MSPs that resell services from multiple upstream vendors and need to reconcile monthly vendor invoices against Autotask contracts.
  • + Billing administrators - Angie and similar accountants who own the monthly reconciliation process and need a single review screen instead of five vendor portals and spreadsheets.
  • + Teams with 5-10 upstream vendors - The agent is optimized for MSPs with a manageable vendor count where API access is available for some vendors and manual upload covers the rest.
  • + Organizations using Autotask PSA - The agent integrates directly with Autotask REST API for contract and billing data. Other PSA platforms require custom integration.
  • + Teams that need staged write access - The agent supports read-only Phase 1 (export generation) and gated Phase 2 (direct Autotask updates) so you can validate accuracy before enabling contract quantity writes.
not for you if
  • - Organizations without API access to vendors - If all vendor invoices arrive as unstructured PDFs with no API option, the agent still works but requires manual upload for every vendor every month.
  • - Teams using ConnectWise or other PSAs - The agent is built for Autotask. Integration with other PSA platforms requires custom development.
  • - Vendors with highly variable invoice formats - If a single vendor changes invoice structure month-to-month without warning, the agent may require re-training on the new format.
  • - Organizations that need auto-push to billing - The agent requires explicit approval from your billing administrator before any update. If you need fully automated reconciliation with no human review, this is not the right fit.
  • - Teams managing 50+ vendors - The agent is optimized for 5-10 vendors. Scaling to 50+ vendors requires architectural changes (e.g., vendor-specific parsers, parallel processing).
pricing

Pricing and build model

to build

The agent is a scoped custom build for Ascent Data. Pricing covers the initial build, prototype approval, and Phase 1 deployment (read-only reconciliation dashboard and export generation). Phase 2 (direct Autotask contract quantity updates) is gated on your approval of agent accuracy and requires a separate sign-off.

then
  • Phase 1 includes: vendor data ingestion (PAX8 API + file upload), customer name deduplication, two-benchmark reconciliation, configurable exception rules, and reconciliation dashboard with export generation.
  • Phase 2 (direct Autotask writes) is optional and requires explicit approval from your systems administrator after agent accuracy is validated.
  • Ongoing usage is billed based on the number of reconciliation runs per month and the volume of vendor lines processed.
  • The agent is designed to be composable so you can eventually white-label or resell the reconciliation workflow to your own MSP customers if desired.
FAQ
How does the agent handle vendor invoices that arrive in different formats?

The agent pulls data via API from PAX8 for your confirmed vendors and accepts manual file upload or email delivery for vendors without API access. Every invoice line is parsed and normalized into a consistent schema, so you don't have to manually map between PDF, Excel, CSV, and portal formats.

What happens if a customer name appears differently on the vendor invoice than in Autotask?

The agent uses AI fuzzy matching to identify when the same customer appears under different name variants (for example, 'Bit by Bit LLC' on a vendor invoice and 'Bit by Bit' in Autotask). High-confidence matches are auto-assigned. Low-confidence matches are surfaced to you for confirmation, and confirmed matches are remembered for future months so you don't have to resolve the same name variant twice.

How does the agent catch under-billing?

The agent compares each vendor invoice line against two benchmarks: the quantity on your Autotask contract and the quantity you billed last month. If either benchmark shows unexpected drift, the line is flagged for your review. This two-angle approach catches under-billing that a single benchmark might miss.

Can the agent automatically update my Autotask contracts?

Phase 1 generates a reconciliation export that you review and use as a reference for manual Autotask entry. Phase 2, available after your systems administrator approves the agent's accuracy, enables direct contract quantity updates via API. You always control when updates happen through an explicit 'push to production' button. The agent never auto-pushes changes without your approval.

What if we recently acquired another company that still operates under its own name?

The agent includes a configurable rules framework where you can define exceptions without code changes. For example, you can tell the agent to treat 'GIS' as 'Ascent Data' so it doesn't flag it as an unknown customer every month. You can add, edit, or delete rules from a settings page anytime.

What does the reconciliation dashboard show?

The dashboard displays all vendor invoice lines for the month, organized by customer. Each line shows the vendor quantity, last month's billed quantity, and your Autotask contract quantity side-by-side. Lines are color-coded by status: green for matches, yellow for in-review, red for flagged items, and gray for approved changes. You can assign customers to unmatched lines, bulk-approve clean rows, override quantities with a reason, and see the full reconciliation picture in one screen.

Is this agent right for our MSP if we use ConnectWise instead of Autotask?

The agent is built specifically for Autotask REST API integration. If you use ConnectWise or another PSA platform, the agent would require custom development to connect to your system. Contact us to discuss integration options for your platform.

How much time does this actually save?

The agent eliminates approximately 30 hours per week of manual reconciliation work by automating vendor data ingestion, customer name matching, and two-benchmark comparison. Your billing administrator moves from opening five vendor portals and spreadsheets to reviewing a single dashboard, assigning unmatched lines, and clicking 'push to production.' The entire monthly process is compressed into a single review session instead of a multi-hour slog.

next step

Ready to eliminate 30 hours of monthly reconciliation work?

Let's schedule a call to review the prototype, validate the reconciliation logic with your billing administrator, and plan Phase 1 deployment.