Skip to content
CRM / Billing & Field Service

B2B CRM & Billing: Quote-to-Cash, Field Service & Customer Portal

A full commercial-lifecycle platform for a UK B2B services company: quote, contract, engineer site visit, invoice, payment, credit note, bank reconciliation and reporting, plus a self-service portal for their own customers.

Client
Undisclosed — a UK B2B services company
Country
United Kingdom
Attribution
Delivered by Softwiz Infotech
Sector
CRM / Billing & Field Service
CRM / Billing & Field ServiceUnited Kingdom
CRM & Billing.NET 10 / ASP.NET Core · EF Core 10 + SQL Server · React 19 + TypeScript · Hangfire

The Client & Their Context

The client supplies and maintains equipment for business customers across the UK, on contract rather than by one-off sale. Their commercial life runs in one long line: a quotation goes out, a contract is signed, a billing schedule starts running, engineers visit sites, and money comes back as payments, credit notes and bank settlements. Every one of those steps used to live in a different place.

The Problem

Most CRM software covers one slice of that line and hands the rest to a spreadsheet or a second system, which means the same figures get re-keyed and quietly diverge. Billing is where that hurts most: contracts have their own durations, frequencies and anchor dates, customers want to know what they will be charged before they sign, and a scheduled generator that misses a weekend loses a billing day without anyone noticing until the month closes. On top of that, field engineers and customers both needed access without either group seeing anything they should not.

What We Built

  • Quote-to-cash as one line: a quotation becomes a contract without re-keying, the contract generates its own invoice schedule, and payments reconcile back against those invoices.
  • A billing engine with configurable contract duration, billing frequency, anchor months and billing days, showing every future invoice date and amount before anyone signs.
  • Configurable invoice numbering — prefix, suffix, yearly or monthly reset — with live preview and a controlled re-seed, and an independent sequence for credit notes.
  • A scheduled draft-invoice generator with period de-duplication and multi-day back-fill, so a weekend or an outage cannot silently lose a billing day.
  • Field service: engineers record site visits against a contract through admin-defined checklists with photo evidence, and office staff approve or reject each sheet before it becomes billable. Engineer-recorded payments stay pending until an administrator approves them.
  • Bank reconciliation importing GoCardless settlement CSVs, matching rows against customers and invoices, recording the payments and reporting whatever it could not match, with a full import history behind it.
  • A customer portal on the same application: invitation-based onboarding with time-limited single-use links, invoice PDFs, payment history and forward billing schedule, with strict tenancy isolation so staff and portal identities never cross.
  • Engineering hardening throughout: notifications queued to an outbox and dispatched by a background worker with retry and rate limiting rather than sent on the request thread, PDFs re-rendered from live data on every download, uploads validated by binary signature rather than file extension, and long-range reports queued as background jobs so the UI never blocks.

Outcome & Scale

  • 20 functional modules, 35 controllers, roughly 180 versioned REST endpoints, 56 domain entities and 36 EF Core migrations.
  • 550+ xUnit tests including integration tests against a real HTTP pipeline, 322 Vitest component tests and 31 Playwright end-to-end specs.
  • Pre-commit hooks run lint, typecheck and unit tests, pre-push runs the end-to-end suite, CI runs everything on every push, and the build fails on any compiler or analyser warning.

We do not publish client quotations. Most of this work sits under NDA. If you would like to speak to someone who has worked with us, ask for a reference and we will arrange an introduction.

Have a System Like This?

Tell us what it does today and we will tell you honestly what is worth doing next: building, modernising, or wiring AI into it.

2 weeks · fixed scope · fee credited if you proceed
Send an enquiryChat on WhatsApp