Rover connects your software to every waste hauler.

Signs in to a hauler portal
DashboardInvoicesServicesPay nowSettings
Invoice #DateAmount
4881209/011,284.10
4890109/08962.00
4901709/151,284.10
invoice_number 48812 total 1,284.10 document invoice-48812.pdf 3 rows read · 3 PDFs saved

hauler-a · signed in, found the invoice table, saved the PDFs · example data

invoice_number
48812
invoice_date
2026-09-01
total
1,284.10
amount_due
1,284.10
account_name
Site 14 Depot
service
8 yd front load, weekly
document
invoice-48812.pdf · sha256:9f3c…

the same fields for every hauler, whatever the portal calls its columns

Monlive
Tuelive
Wedlive
Thulive
Frilive
Thu 02:00 · hauler-a · 2 new invoices, 2 PDFs
Thu 02:00 · hauler-e · invoice 48812 changed
change amount_due 1,284.10 → 0.00 · payments → 1,284.10 · event sent

every version kept · changes are flagged against last week

DashboardInvoicesServicesBilling ▾
Invoice #Balance due
488121,284.10
48901962.00
step 04 · "Invoices" in side menu → not found → fixed
+ open "Billing" › "Invoices"
+ column "Balance due" · same values as last week
read complete · 2 invoices, 2 PDFs

a fix is kept only if it gets all the same data · you can review every fix

What are we paying for service at site 14?
› latest_records · hauler-a · customer: you · site 14
1,284.10 a month for an 8 yd front load, weekly, at Site 14 Depot. Source: invoice 48812, checked Thu 02:00.

MCP tools · latest_records, changes, record_history, invoice_text, portal_health, coverage

GET /v1/invoices · Authorization: Bearer $ROVER_TOKEN
# → 200
{ "records": [{ "invoice_number": "48812",
  "amount_due": 0.00, "document_ref": "sha256:9f3c…" }] }
POST https://your.app/rover · X-Rover-Signature: sha256=…
invoice 48812 changed · amount_due → 0.00

API and signed webhooks · the same records, in your product

Rover signs in to each hauler portal on schedule and sends invoices, services and PDFs to your systems.

For developers →For AP and operations teams →

It carries the billing data you depend on, from portals that were never built to share it. Rover already pulls accounts, invoices and PDFs from live hauler portals, and it kept working when those portals changed.

What you can do with the data

Audit each invoice when it lands

An AI agent checks it against the service you pay for.

Spot a rate change

Rover alerts your systems when an invoice amount changes.

Answer questions about any site

Ask "What are we paying at site 14?" and get the invoice.

Feed AP and ESG reporting

Every hauler's invoices arrive in one format, with the PDF attached.

tools your AI agent can call
  1. latest_recordsthe latest invoices and accounts
  2. changeswhat changed, field by field
  3. record_historyevery past version of a record
  4. invoice_textthe PDF, as text
  5. portal_healthis this hauler working right now
  6. coveragewhich data this hauler offers
MCP tools · every answer names its source invoiceAlso available by API and webhooks

How Rover gets your hauler data

what Rover pulls from each portal
  1. Accountspulled
  2. Invoices, every pagepulled
  3. Statement PDFspulled
  4. Locations and servicespulled
  5. Work orders, where offeredpulled
  6. Pay · Autopay · Settingsnever clicked

Give Rover a portal address and a login. How it works.

this week
on the schedule you setscheduled checks use no AI

Each check repeats the same steps, and Rover keeps every past version. See all the fields.

the portal changed

When a portal changes, Rover fixes itself. See it happen.

Built to be trusted with your logins

  • Read-only by design

    Saved steps only sign in, read and download.

  • Your logins stay locked

    Encrypted with AES-256-GCM and opened only to sign in.

  • Each customer is kept separate

    Enforced in the API, so no other customer sees your data.

See all nine design decisions