← All projects

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.

Accounting System

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.

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.

Deliverables

  • ▸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

  • ▸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

Impact

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.

Tech stack

ASP.NET Core 8SQL ServerHotChocolate GraphQLREST APIsJWTEF CoreDapper

Want something similar?

I build production systems like Accounting System—from architecture through launch. Tell me what you need.

Contact me →