A build-to-order Business Central extension that runs collection rounds, tracks every container and skip on hire, captures weighbridge tickets against real material grades, and turns all of it into contract invoices by lift, weight or fixed periodic charge. ECOSIRE builds, installs and supports it for your tenant after a scoping call. Built to order by ECOSIRE for Dynamics 365 BC (build-to-order) — indicative price from $499.00 USD; request a quote for a scoped proposal.
Illustrative previewA build-to-order Business Central extension that runs collection rounds,
tracks every container and skip on hire, captures weighbridge tickets against real material grades, and turns all of it into contract invoices by lift, weight or fixed periodic charge.
ECOSIRE builds, installs and supports it for your tenant after a scoping call.
No DIY setup — a working app, built, installed and supported by ECOSIRE.
Start with a one-time build price. We scope it with you at kickoff.
ECOSIRE builds, configures and installs it on your Dynamics 365 Business Central.
You go live in about 2–4 weeks, with a post-launch support window.
Waste collection is a business where the invoice is assembled from field events, not from sales orders. A round leaves the depot with forty stops on it, some lifted, some blocked by a parked car, some contaminated and rejected. A 12-yard skip goes out on Tuesday, sits on a driveway for nine days and comes back the following Thursday — and the hire clock, the exchange, and the disposal weight are three separate billable things. A tipper crosses the weighbridge at 14:20 with a gross of 18.4 tonnes and a tare from this morning, and the net becomes a disposal cost at a transfer station or a revenue line for a load of baled OCC. Dynamics 365 Business Central handles the accounting end of all this perfectly well — customers, dimensions, posting groups, recurring sales lines, VAT, service items — but it has no concept of a round, a container on hire, a weighbridge ticket, a material grade with a contamination deduction, or a gate fee that flips sign depending on whether the material is a cost or a commodity. Operators bridge that gap with a weighbridge package that exports a CSV, a route sheet in Excel, and a monthly billing run that someone reconciles by hand for three days.
What ECOSIRE builds is an AL extension for your Business Central tenant that closes that gap inside the system of record. The core is a small set of new tables — Container, Container Movement, Collection Round, Round Stop, Weighbridge Ticket, Material Grade, Service Agreement Line — each with its own list and card pages, its own permission sets, and full Dimension Set integration so every movement, ticket and lift carries Route, Vehicle, Site and Material dimensions into the G/L. Containers are registered with a serial or barcode/RFID identifier, a type and capacity, an owning depot, and a status that only ever changes through a posted Container Movement — delivered, exchanged, collected, returned to yard, written off — so the on-hire register is a derived, auditable position rather than a spreadsheet someone maintains. Round planning works from service agreements: a codeunit expands each agreement's frequency pattern (weekly, fortnightly, every fourth Tuesday, on-call) into dated Round Stop records, sequences them, and publishes the round to drivers.
Technically it is a proper extension, not a modification of the base app. Weighbridge integration is the part that decides whether the whole thing works, so we build it against how your bridge actually behaves: an API page exposed over the standard REST API v2.0 / OData v4 endpoint for indicators that can POST, a job queue entry polling a watched folder or SFTP drop for indicators that can only write a text file, or a small serial-to-HTTP gateway where the bridge is genuinely offline. Every inbound ticket lands in a staging table, is matched to a vehicle, container, customer and material grade, and is either auto-accepted or held for a weighbridge operator to resolve — first-weight and second-weight tickets are paired, tares are validated against the vehicle's registered tare with a tolerance, and duplicate ticket numbers are rejected outright. Billing is a codeunit that walks completed stops and accepted tickets for a period and produces sales invoice lines under the pricing model on the agreement: per lift, per tonne with banded or stepped rates, minimum charge, container rental per day or per week with part-period proration, excess-weight surcharge, contamination charge, and a rebate line where a recycled grade is worth money to the customer rather than costing them. Event subscribers on the base sales posting codeunits stamp every generated line back to its source event, so an invoice query can always answer "which ticket and which stop is this line?". Everything compiles against the current Business Central release wave and runs on both SaaS (per-tenant extension or AppSource-track app) and on-premises; where you already run Power BI or Power Apps, the API pages are the surface a driver app or a route-profitability dashboard consumes through Dataverse or a direct connector.
This is a build-to-order product, not an AppSource download — you do not buy it and install it this afternoon. It starts with a scoping call where we go through your rounds, your container fleet, your weighbridge make and how it talks, your material grades and who they are sold to, and the exact pricing clauses in your two or three most awkward contracts, because the contract that makes billing hard is always the one left out of the requirement document. We write that up as a signed scope, build the extension against your Business Central version, and hand you a UAT build on a sandbox loaded with a slice of your real agreements and a week of real weighbridge tickets so you can run a parallel billing period and compare invoices line by line against what you produced manually. Typical delivery is two to four weeks from confirmed scope, longer only where the weighbridge integration needs on-site work or the contract model has more exotic clauses than scoping surfaced. You receive the full AL source, the git repository, the deployment and configuration documentation, and a post-go-live support window — you are never locked out of the code that produces your invoices.
Runs twenty to eighty vehicles across mixed municipal and commercial rounds and needs to know, per round and per vehicle, what was actually lifted versus what was planned. Buys this to replace route sheets in Excel and to get missed-collection and no-access evidence into the same system the invoice comes out of.
Spends days each month reconciling weighbridge exports against contract terms before invoices can go out, and carries the risk of undercharging on excess weight and overcharging on container rental. Buys this to make the billing run reproducible, auditable and defensible when a customer queries a tonnage line.
Owns the bridge, the tickets and the material grades, and is the person a driver argues with when a tare looks wrong. Needs first/second weight pairing, tare tolerance checks and a resolution queue for unmatched tickets, rather than a CSV that goes to finance and is never seen again.
Already runs Business Central for finance and does not want a second operational system with its own database and integration to keep alive. Buys a proper AL extension with permission sets, API pages and source code handover so it upgrades through release waves like any other part of the tenant.
| Criterion | ECOSIRE | Custom Build | Competitor | Dynamics 365 Business Central Native |
|---|---|---|---|---|
| Fit to your contract and pricing model | Built from your actual agreements, including the awkward clauses surfaced at scoping | Exactly what you specify, assuming your team can specify waste billing precisely first time | Whatever pricing shapes the vendor chose to support; the rest becomes a manual adjustment | Recurring sales lines and standard price lists only — no per-lift, per-tonne or banded logic |
| Weighbridge connection | API page, job queue file poller, or serial gateway — chosen to match your actual indicator | Built once for your bridge; a second depot with a different make is a fresh project | Usually one supported protocol; your bridge either matches it or you buy middleware | None. Tickets arrive as a CSV somebody keys or imports by hand |
| Container and skip fleet tracking | Registry plus posted movement ledger, so the on-hire position is derived and auditable | Achievable, but the movement-ledger design is the part DIY projects usually skip | Often present, sometimes with a fixed container taxonomy you must adopt | Fixed assets or serialised items — no on-hire, exchange or yard-return concept |
| Time from decision to running system | Typically 2-4 weeks from confirmed scope, including UAT on a sandbox | Months, and dependent on your AL developer's availability across the whole build | Install in hours, then weeks of configuration and workarounds for what it does not cover | Available immediately, but the gap is filled by Excel and manual reconciliation |
| Source code and ownership | Full AL source plus git repository handed over; you can rebuild it without us | You own it outright — and you own the whole maintenance burden with it | Compiled .app only; you cannot change behaviour the vendor did not anticipate | Microsoft's code; extensible but not modifiable |
| Business Central release wave upgrades | Recompiled and regression-tested per wave under a support agreement, or by your team from source | Your responsibility every wave, forever, including deprecated object handling | Vendor's schedule, which may lag the wave you need to move to | Handled by Microsoft; nothing custom to break |
| Traceability from invoice line back to field event | Event subscribers stamp source ticket and stop references onto every posted line | Only if the requirement was written down; commonly found missing during the first dispute | Typically traceable inside the app, less so once posted into the G/L | No link exists — the invoice line is whatever the billing clerk typed |
| Reporting and Power Platform surface | API pages designed as the integration contract for Power BI, Power Apps and Dataverse | Buildable, though API design is usually deferred and then retrofitted awkwardly | Vendor's own dashboards; external access varies and is sometimes licensed separately | Standard BC APIs only — no round, ticket, container or material entities to report on |
This is a build-to-order extension, not a download. Typical delivery is two to four weeks from confirmed scope — that clock starts when the scoping write-up is signed off, not when you first contact us. Straightforward builds where the weighbridge already posts to an HTTP endpoint and the contract model is per-lift and per-tonne land at the shorter end. Longer timelines happen where the indicator needs on-site work, where several depots use different bridge makes, or where the contract model contains unusual clauses. We tell you which end of the range you are on before you commit, and we do not start the build until the scope is agreed in writing.
Three ways, and we pick based on what your indicator can actually do. If it can make HTTP calls, it posts tickets to an API page on the standard REST API v2.0 / OData v4 endpoint. If it can only write a text or CSV file, a job queue entry polls a watched folder or SFTP drop on a schedule you set. If it is genuinely offline serial-only, we build a small gateway that reads the port and forwards to the same API page. In all three cases the ticket lands in the same staging table and goes through the same matching, tare-validation and duplicate-rejection logic, so downstream behaviour is identical regardless of how it arrived. We confirm your bridge make and protocol during scoping.
You get a post-go-live support window covering defect fixes and configuration adjustment on the delivered scope. Beyond that we offer an ongoing support and maintenance agreement including recompilation and regression testing against each Business Central release wave, since Microsoft ships two major waves a year and deprecates objects on a published schedule. Because you hold the full AL source and the git repository, you are never dependent on us — your own team or another partner can maintain it. New functionality outside the original scope is quoted as a change or follow-on phase, not absorbed silently into support.
Yes. It is a standard AL extension using table extensions, page extensions, codeunits and event subscribers — no base application modification and no direct SQL. On SaaS it deploys as a per-tenant extension, or as an AppSource-track app if you want it packaged that way. On-premises it deploys the same way through extension management. The only component that differs is the weighbridge connection: a SaaS tenant cannot read a local folder directly, so an offline bridge on SaaS needs the small gateway component running on your network.
Bring the awkward ones to the scoping call — the contract that makes billing hard is always the one left out of the requirement document. The engine ships with per-lift, per-tonne with banded and stepped rates, minimum charges, container rental with part-period proration, excess-weight surcharge, contamination charge, and customer rebate lines where a recycled grade is worth money to the customer. Anything genuinely outside that set is priced as part of the build rather than refused, but it has to be identified during scoping; clauses discovered after the scope is signed become a change request.
We check during scoping. We ask for your extension list and object ID range allocation, build inside a range reserved for you, and review any extension that also subscribes to the sales posting or item ledger events we touch. Where a genuine overlap exists we tell you before the build starts and adjust the design rather than discover it during UAT. The UAT sandbox is loaded with your real extension set precisely so integration conflicts surface before go-live.
Yes. You receive the complete AL source and the git repository with full commit history, branch and tag structure, and build instructions. Nothing is delivered as a compiled-only .app you cannot rebuild. This is deliberate: this extension produces your invoices, and being locked out of the code that produces your invoices is an unacceptable business risk.

A true finite-capacity APS engine for Dynamics 365 Business Central that builds optimized, executable schedules respecting machines, labor, tooling and material availability simultaneously. Built, installed and supported by ECOSIRE as a per-tenant AL extension.

A build-to-order AL extension that supercharges Business Central's native MRP/MPS with demand-driven forecasting, bulk SKU parameter management, and supply-vs-demand pegging — so planners replan thousands of items in minutes. Built, installed as a per-tenant extension, and supported by ECOSIRE.


A custom-built AL extension that adds an AI Copilot to Business Central — natural-language queries over your ledger data, anomaly and fraud detection, cash-flow forecasting and automated variance narratives. Built, installed per-tenant and supported by ECOSIRE.
A build-to-order Business Central extension that runs collection rounds, tracks every container and skip on hire, captures weighbridge tickets against real material grades, and turns all of it into contract invoices by lift, weight or fixed periodic charge. ECOSIRE builds, installs and supports it for your tenant after a scoping call.