The problem with recurring revenue in SAP Business One
SAP Business One was designed around discrete transactions: a Sales Order becomes a Delivery, a Delivery becomes an A/R Invoice, and the revenue lands in the period the invoice is posted. That model works when you sell a thing once. It breaks down the moment you sell a twelve-month service contract, a monthly seat-based subscription, or a support agreement with a usage overage.
What happens in practice is a monthly ritual. Somebody keeps the contract list in a spreadsheet — customer, start date, term, monthly value, next billing date, any price increase clause. On the first working day of the month they filter the sheet, duplicate last month's A/R Invoices, adjust the ones where a customer added or removed seats mid-period, calculate the proration by hand, look up usage from an operational system, and post. Then, if the business recognises revenue properly, they post a second set of manual Journal Entries to move the annual amounts out of revenue into deferred revenue and release one twelfth back each month.
Every one of those steps is invisible to SAP Business One. A cancelled contract keeps getting invoiced until someone remembers to delete the row. A mid-month upgrade gets billed from the wrong date. The deferred revenue balance drifts from the contract base because the release schedule lives in a different spreadsheet than the billing schedule. And nobody can answer "what is our contracted recurring revenue and what renews next quarter" from SAP Business One at all.
What ECOSIRE builds
ECOSIRE builds a SAP Business One add-on that makes the contract a first-class object in your company database and drives billing, proration, usage and revenue recognition from it.
Contracts as real objects
Contracts are stored as User-Defined Objects with User-Defined Table backing, so they live inside your company database, appear in SAP Business One's own find and browse behaviour, respect your authorisation setup, and are queryable by standard tools. Each contract links to a Business Partner, carries a start date, term, renewal behaviour, billing frequency, billing day, currency, and a set of contract lines pointing at real Items or service descriptions with their own quantities, rates and price-change rules.
Contract lines can be flat recurring charges, quantity-driven charges where the quantity changes over the term, one-off charges scheduled for a specific billing date, or usage-based charges rated against imported consumption.
Billing run
A scheduled billing run reads every contract due on the run date and generates the A/R Invoices through the DI API or Service Layer, so the resulting documents are ordinary SAP Business One invoices: they number in your normal series, feed your normal ageing and dunning, and post to your normal control accounts. Where your process requires a Sales Order or Delivery in front of the invoice, the run can generate that chain instead.
The run produces a preview before anything is created. The preview lists every contract due, every line, the calculated amount, and any exception — a contract with no valid price, a Business Partner on credit hold, a usage line with no consumption data loaded. Exceptions are held back rather than invoiced wrong, and the run can be re-executed for just the corrected items.
Proration and mid-term change
Mid-term changes are the part hand-built solutions get wrong. The add-on models an amendment against the contract: a seat count changes on the fourteenth of the month, a line is added, a line is cancelled, the whole contract terminates early. Each amendment carries an effective date, and the next billing run calculates the proration from your configured convention — actual days, thirty-day month, or full-period — and produces the credit and charge lines that reconcile the customer to the amended position. The amendment history stays on the contract, so you can see what changed, when, at whose instruction.
Usage-based billing
Usage lines are rated at billing time against consumption imported into a User-Defined Table, either by file upload or by a scheduled pull from the operational system that holds the meter. Rating supports included allowances, overage rates, and tiered or stepped pricing. Imported usage is retained with its source and load timestamp so a disputed invoice line can be traced back to the underlying consumption records rather than re-argued from memory.
Deferred revenue schedules
For every contract line the add-on builds a recognition schedule and posts the deferral and release as Journal Entries through SAP's object layer into the deferred revenue and revenue accounts you configure. Because the schedule is derived from the same contract that drives the billing, the deferred revenue balance and the billing base cannot drift apart. An amendment or an early termination adjusts the remaining schedule rather than leaving an orphaned balance to be written off at year end.
Reporting
Delivered reports cover the contract base, contracted recurring revenue by period and Business Partner, renewals and expiries in a forward window, billing run history with exceptions, usage and rating detail, and the deferred revenue roll-forward reconciling opening balance, additions, releases and adjustments to closing balance. Reports ship as Crystal Reports layouts in the standard reports menu, with query-based views for spreadsheet users.
Who this is for
Managed service providers and IT support businesses billing monthly retainers. Software and SaaS-style businesses on SAP Business One with seat-based or usage-based plans. Equipment businesses selling service and maintenance agreements alongside the hardware. Any SAP Business One site whose recurring revenue currently lives in a spreadsheet that only one person fully understands.
Technical approach
The add-on targets SAP Business One 10.0 on SQL Server and SAP HANA, on-premise or cloud-hosted. Document creation and Journal Entry posting run through the Service Layer and DI API; contracts, amendments, usage and schedules are held in User-Defined Objects, Tables and Fields inside your company database. Approval of a billing run, an amendment or an early termination can be routed through SAP Business One approval procedures. Nothing is written directly to SAP's transactional tables.
How delivery works
1. Scoping call. We map your contract types, billing frequencies, proration convention, price-increase clauses, usage sources, revenue recognition policy and the accounts involved. We look at real examples of your current contracts and your current manual invoices. 2. Fixed quote. You get a written scope covering contract model, billing run behaviour, proration rules, usage rating, recognition schedules and reports, at a fixed price. Out-of-scope items are priced separately before work begins. 3. Build. ECOSIRE builds to that scope. Typical lead time is one working week from sign-off; usage rating with tiered pricing and multiple consumption sources sits at the upper end. 4. Install into your test company. We install into your test or sandbox company database, load a representative sample of your real contracts, and run a parallel billing cycle you can reconcile line by line against the invoices you raised manually. You sign off before production. 5. Install into production. After test sign-off we install into the live company database, migrate your contract base, configure the schedule and accounts, and support the first live billing run alongside your team. 6. Support. A support window is included from go-live, covering defect fixes, configuration questions and help through the first full billing and recognition cycle.
This is a build-to-order product. There is no instant download and no trial — the engine is built for your contract structures and your revenue policy after the quote is accepted.