Enterprise accounting API
Accounting System
ASP.NET Core 8 double-entry accounting API—REST + HotChocolate GraphQL, SQL Server, Identity/JWT, and journal-to-ledger workflow.

Background & Context
Finance teams that outgrow spreadsheets need a trustworthy double-entry core before they need a polished SPA. Chart of accounts, balanced journals, posting into the general ledger, fiscal year control, and auditability are the foundation; UI can sit on top once the domain model is solid.
Tekvers built an API-first ASP.NET Core 8 accounting backend—not a full ERP UI. Clients (future admin apps, mobile tools, or partner systems) call REST controllers under api/* or HotChocolate GraphQL at /graphql. Data lives in SQL Server via EF Core Identity and Dapper-backed stored procedures for trial balance and balance sheet. Seeded roles—Admin, Accountant, Auditor, Manager, User—gate the surface.
Honesty matters for this portfolio piece: there is no React (or other) frontend in the repository. Refresh-token persistence and outbound email for password reset are stubs. Income statement and cash-flow report permissions are seeded without matching report implementations. The deliverable is a production-shaped accounting API foundation ready for a UI phase—not a finished commercial ERP suite.
The Challenge
Organizations needed a role-aware double-entry accounting backend—chart of accounts, journal workflow, general ledger, and core financial queries—exposed as integrable APIs without locking the first release to a single UI framework.
The Solution
Accounting System: ASP.NET Core 8 double-entry accounting API—REST + HotChocolate GraphQL, SQL Server, Identity/JWT, and journal-to-ledger workflow. Integrable double-entry core without forcing a premature SPA choice. Tekvers delivered a maintainable enterprise accounting api system for Accounting System using ASP.NET Core 8, SQL Server, HotChocolate GraphQL, REST APIs, with phased rollout, operator workflows, and documentation suited to long-term ownership.
Our Approach
Domain & journal workflow
We modeled CoA types (Asset, Liability, Equity, Revenue, Expense) with parent hierarchy, then journal entries that enforce balanced lines, post into GL via `IGeneralLedgerService`, and require Manager/Admin approval after posting.
Dual API surface + data access
REST controllers cover CoA, journals, GL, currencies, fiscal years, users, and audit. GraphQL adds accounting queries, user/permission mutations, system (currency/FX/fiscal year) operations, and report queries (`trialBalance`, `balanceSheet`, ledger-by-account) via Dapper SPs.
Identity, seeding, and ops hygiene
ASP.NET Core Identity with custom role entity, JWT Bearer (24h), Serilog file/console logging, Swagger in Development, and `/health`. Startup seeds roles, permissions catalog, admin user, USD base currency, and current fiscal year.
What We Delivered
- ASP.NET Core 8 Web API (`net8.0`) with Clean-ish Domain / Application / Infrastructure layering
- REST controllers for auth, users, CoA, journals, GL, currencies, fiscal years, and audit
- HotChocolate GraphQL endpoint for queries/mutations including trial balance and balance sheet
- SQL Server persistence: EF Core migrations + Dapper stored procedures
- JWT authentication and seeded roles (Admin, Accountant, Auditor, Manager, User)
- Journal post/approve/reject workflow with debit/credit validation
- Multi-currency and fiscal-year administration (activate/close)
- Swagger (Development), Serilog, and health endpoint
Outcomes & Impact
- Integrable double-entry core without forcing a premature SPA choice
- Clear separation of transactional entities (EF) vs reporting procedures (Dapper)
- Role-separated access suitable for accountants, managers, and auditors
- Documented gaps (no UI, stub refresh tokens, partial report matrix) for honest roadmap planning
Accounting System gives finance product teams a callable ledger foundation—create accounts, post balanced journals, query GL and core statements—so the next investment is UX and remaining reports, not reinventing double-entry from scratch.
Technology Stack
Services Delivered
Related Case Studies
Guides & articles from this niche
Planning a similar platform? Share your scope and we will map architecture, delivery phases, and a realistic timeline.