Skip to content

Our Work / Engineering case study

Accounting Operations Workspace

An API-integrated accounting application for AP, AR and month-end close.

All project studies
Accounting workspace / application architecture
GL Accounting softwarePSAVendor APIs / Graph
Accounting work surfaceNext.js / React
APReview bills
Pay / hold / query
Revenue / ARBilling integrity
Cash application
Month-endClose work
Resolve exceptions
NewInvestigatingWaiting onDone
PostgreSQL + Drizzle ORMWork items · decisions · dependencies · history
Azure VM / Docker / Entra ID
Architecture diagramConnected source systems feed the accounting operator's work surface.

BUILD PROFILE

Business context
Mid-market finance & accounting teams
System type
Custom accounting web application
Environment
Microsoft Azure
Microsoft AzureNext.jsMicrosoft Entra IDPostgreSQLGL Accounting softwarePSAMicrosoft GraphAzure Key Vault
Architecture & toolchain

01 / OPERATING CONTEXT

The accounting operator's working environment.

An accounting operator moves between vendor documents, customer billing, payment records and close responsibilities. The information needed for one decision often lives in several systems, and the work continues when an exception needs investigation or an answer from someone else.

Accounting Operations Workspace brings those functions into a custom web work surface. It organizes AP, Revenue / AR and month-end close around the decisions the operator needs to make, backed by integrations to the underlying business systems.

Business rules determine which items need attention and what evidence supports them. The operator can investigate, record a decision, identify a dependency and carry an item through to resolution while retaining the working context.

02 / IMPLEMENTATION SCOPE

Application and service capabilities.

Accounts payable

Review vendor bills, supporting documents, expected invoices and payment considerations. Mark an item to pay, place it on hold or raise a query with the reason attached.

Revenue and receivables

Work through revenue integrity, recurring billing drift, cash application and disputes, with the source records needed to investigate the exception.

Month-end close

Bring close work and outstanding exceptions into the operator's workspace so unresolved dependencies remain connected to the period being closed.

One continuing work record

Keep investigation notes, decisions and waiting-on responsibilities with the item. The next review starts from the work already performed.

03 / ARCHITECTURE & TOOLS

System boundaries and the stack behind them.

Accounting Operations Workspace combines a dedicated web application with an integration and workflow layer on Azure. The interface is built around accounting operations, while connected systems provide the underlying records.

The operator application

A Next.js web application provides the AP, AR and close work surfaces. Microsoft Entra ID supplies sign-in; persisted workflow state carries notes, decisions and dependencies between sessions.

Connected business systems

Connector packages consume GL Accounting software, PSA and vendor APIs. Microsoft Graph supports unattended document intake where email is the source. Source records and document evidence are assembled into domain-specific work items.

Azure runtime and data

An Azure VM hosts the containerized web application behind Caddy. Scheduled jobs run as one-shot containers under systemd timers. PostgreSQL persists operational state; Key Vault holds secrets. A shared Fabric data and ontology layer supports consistent values across Accounting Operations Workspace and Power BI.

Tools, frameworks and their roles

Next.js · React · TypeScript
The accounting operator's web application and typed domain/workflow packages.
PostgreSQL · Drizzle ORM
Persistent work items, actions and notes, with typed data access and schema migrations.
Microsoft Entra ID · Auth.js · Azure Key Vault
Application sign-in and managed secrets for the runtime and integrations.
GL Accounting software · PSA · Microsoft Graph
Accounting and operating-system records, vendor context and mailbox document intake through connector boundaries.
Azure VM · Docker Compose · Caddy · systemd
Container hosting, HTTPS ingress and scheduled one-shot processing jobs.
Microsoft Fabric · Power BI
Shared financial data and ontology supporting the operational application and governed reporting.
pnpm · Turborepo · Vitest
Workspace management, coordinated package builds and domain/database tests.
Domain logic, controls & engineering decisions
  • Vendor documents establish cost evidence; routing information is kept distinct from valuation.
  • Controlled workflow states preserve the difference between active investigation, a dependency and completed work.
  • The shared state model is new, hold_investigating, waiting_on and done. Waiting-on transitions require a defined dependency.
  • Decision records retain actor context and require reasons for holds, queries and hold releases.
  • Connector boundaries separate data acquisition from workflow decisions and the application interface.
  • Operational presentation consumes governed financial values instead of independently recalculating the reporting layer's measures.
  • A mark-to-pay decision records the operator's intention; payment execution is a separate business action.

04 / WORKFLOW WALKTHROUGH

From a vendor bill to a supported payment decision.

One AP journey illustrates the pattern used across the wider accounting work surface.

  1. 01

    Bring the evidence together

    Integrations collect the open bill, vendor documentation and related purchasing context. Missing or unverified supporting information is made visible.

    OUTPUTA bill with its supporting context
  2. 02

    Investigate in the work surface

    The operator checks the document, match results and any existing hold or question without reconstructing the investigation from several tools.

    OUTPUTAn informed review
  3. 03

    Record the decision

    The operator marks the item to pay, holds it or raises a query. Holds and queries carry a reason; waiting work identifies the dependency.

    OUTPUTA payment decision or owned follow-up
  4. 04

    Carry the work forward

    Notes, responsibility and the decision remain with the record as the item progresses. The AP workspace shows what can proceed and what still needs resolution.

    OUTPUTA traceable operating record

05 / SYSTEM OUTPUTS

What the system produces.

Accounting Operations Workspace gives the accounting operator a coherent place to work across AP, AR and close. Information from connected systems becomes an investigation, a decision, an assigned dependency or a completed piece of work.

  • Supported payment decisions
  • Investigated billing and receivables exceptions
  • Recorded notes, owners and dependencies
  • Close work with its supporting context

What would better software
help your team do?

Tell us what needs to work, who needs to use it and which systems are involved.

Discuss a project