InfraForge Docs

InfraNotes Accounting · v0

Welcome

Select a document from the sidebar to read it.

3. Finance Operations

Audience: Business users on Business Financial or Business Full Suite.

Finance Operations is where you record what is actually happening in your business: spending, billing, vendor payments, payroll, projects, assets. It is the day-to-day ground truth that everything else (planning, accounting) builds on.

This page covers nine workflow areas. Pick the one you need; you do not have to read in order.

Workflow What it covers
3.1 Expenses Recording what you spend, attaching receipts, getting reimbursed
3.2 Mileage and per-diem Travel-related expense recording
3.3 Invoices and revenue Sending invoices, tracking payments, late fees
3.4 Clients and contacts Customer records, communications
3.5 Corporate cards Card transactions, matching to expenses
3.6 Vendors and procurement Vendors, purchase orders, three-way matching, payments
3.7 Project finance Projects, milestones, billing, team allocation
3.8 Payroll Pay runs, taxes, deductions, benefits, payslips
3.9 Asset management Registering assets, assignments, depreciation, maintenance

3.1 Expenses

Where: Sidebar → Finance OperationsSpend ManagementExpenses.

Recording an expense

Click New expense and fill in:

  • Amount and currency. Use minor units (e.g., 12.50 USD).
  • Date — when the expense occurred, not necessarily today.
  • Category — pick from your tenant's category list. If a category is missing, an admin can add one.
  • Description — a short note explaining what the expense was for.
  • Project (optional) — link the expense to a project, so it counts against that project's budget and shows up in the project's billing view.
  • Receipt (optional, but recommended) — drag-drop an image or PDF. We'll store it next to the expense for audit and reimbursement.

Click Save. The expense is now in your list. If your role allows, you can also click Submit for approval to send it to your team's approval workflow.

Statuses

Status What it means
Draft Not yet submitted; only you see it.
Submitted Sent for approval. Approver can approve or reject.
Approved Cleared for reimbursement and accounting.
Rejected Approver bounced it; check the rejection note.

Attachments and receipts

You can attach a receipt at expense creation or later. Receipts have their own permissions (expense:attachment:view, expense:attachment:add, expense:attachment:delete) — your admin controls who can see them.

Tax handling

If your category has a tax rate configured, the system computes the tax amount automatically. Multi-jurisdictional tax (different rates by region) is supported through the Settings → Taxes configuration done by an admin.

Bulk import and export

Use Import (top of the expenses page) to bring in expenses from CSV. Use Export to download as CSV or JSON for an external accountant or reporting tool.

Reimbursement

Approved expenses for which you have not yet been reimbursed sit in the Reimbursements page. When your finance team processes reimbursements, the status moves processing → paid. You'll see the payment date and method.

3.2 Mileage and per-diem

Where: Sidebar → Finance OperationsSpend ManagementTravel & Mileage (or under Expenses depending on your tenant's nav).

Mileage and per-diem are special expense types. They are entered like ordinary expenses but with extra fields and automatic calculation.

Mileage

  • Enter the date, the from/to locations, and the distance, or let the system compute distance from the addresses (Google Maps integration).
  • The system applies your tenant's mileage rate (configurable per region per year) to compute the reimbursable amount.

Per-diem

  • Enter the date, the location, and the trip type (domestic, international).
  • The system applies your tenant's per-diem schedule to compute the daily allowance.

Both create regular expense records, so they flow through the same approval, reimbursement, and accounting paths as any other expense.

3.3 Invoices and revenue

Where: Sidebar → Finance OperationsRevenue & BillingInvoices.

Creating an invoice

Click New invoice and fill in:

  • Client — pick an existing client or create one inline.
  • Issue date and due date. The system computes the days-outstanding aging from the due date.
  • Currency.
  • Line items — description, quantity, unit price, optional tax rate.
  • Notes (optional) — visible to the client on the PDF.

Save as draft, then Send to email it to the client. The client receives a PDF and (depending on configuration) a public link to view it without signing in.

Statuses

Status What it means
Draft Not yet sent.
Sent Emailed to client.
Partial Some payments received, but balance remains.
Paid Fully paid.
Overdue Past due date, balance > 0.
Canceled Voided before payment.

Payments

Record a payment from the invoice page (Add payment). You enter amount, method, date. The invoice status updates automatically.

Recurring invoices

For monthly retainers and similar, set up a recurring invoice. Define the frequency, end date or count, and the system creates each invoice on schedule. You can still review and send manually, or set them to auto-send.

Public invoice portal

When an invoice is sent, the system generates a tokenized public link. Your client can view, download, or print the invoice without signing into InfraNotes. Admins can revoke a public link at any time from the invoice's Sharing tab.

Late fees

Configure late-fee rules in Settings → Late fees: flat amount, percentage, grace period. The system applies them automatically to overdue invoices and notifies you.

Archiving

Old paid invoices can be archived to keep your active list clean. Archived invoices remain queryable in reports; they just do not show in the default list. Bulk-archive rules can move invoices automatically after a configurable age.

Invoice number formats

Admins control invoice number format in Settings → Invoice number formats. You can have multiple formats (one per entity, for example) and set a default.

3.4 Clients and contacts

Where: Sidebar → Finance OperationsRevenue & BillingClients.

A client is a customer your business invoices. Clients have:

  • Basic profile (name, email, address, tax ID).
  • One or more contacts (people at the client's organization).
  • Categories and tags for grouping.
  • A communication history (emails and SMS sent through InfraNotes).

You can search clients by name or email, find by email (useful for deduplication), and filter by category or tag.

Communications

Communications sent through InfraNotes (invoice emails, payment reminders, custom messages) are logged on the client's profile. Delivery status (delivered, bounced, opened) is tracked where the provider supports it. Channels supported include email and SMS.

3.5 Corporate cards

Where: Sidebar → Finance OperationsSpend ManagementCards.

If your business issues corporate cards (or imports card statements), this is where transactions land.

Workflow

  1. Set up a card provider — Visa, Mastercard, internal company cards. Configure how transactions are imported (CSV upload, provider API).
  2. Add cards — register each card with the cardholder.
  3. Import transactions — upload a CSV or wait for the next provider sync.
  4. Match to expenses — the system attempts auto-match based on amount + date + merchant. Unmatched transactions go to a review queue.
  5. Confirm or reject matches — confirm correct ones; reject mismatches and create the right expense manually.

Auto-match rules can be customized in Settings → Card matching rules (e.g., "amounts within $1 of each other on the same day from merchant X").

Statuses

Each transaction is unmatched, matched, or under review. Confirmed matches link the card transaction to a specific expense, so when the expense is approved and reimbursed, the loop closes.

3.6 Vendors and procurement

Where: Sidebar → Finance OperationsVendors & Procurement.

The vendor module covers the full procure-to-pay cycle.

Vendor lifecycle

Each vendor goes through these states:

  • Pending — newly created, awaiting approval.
  • Active — approved, can transact.
  • Suspended — temporarily disabled.
  • Under review — flagged for issues; needs decision.
  • Terminated — permanent end of relationship.

You record a vendor's basic info, tax ID, banking info (encrypted), payment terms, currency, and primary contact.

Purchase requisitions

A purchase requisition is an internal request before a purchase order goes to a vendor. Workflow:

  1. Create a requisition (draft) with line items and a justification.
  2. Submit for approval.
  3. Approve or reject (the approval workflow routes through configured approvers).
  4. If approved, convert the requisition into a Purchase Order.

Requisitions are useful when your business wants spending controls before committing to a vendor.

Purchase orders (POs)

A PO is the formal commitment to a vendor. PO state machine:

Draft → Pending Approval → Approved → Sent → Acknowledged →
   Partially Received → Received → Closed
                                 (or Cancelled at most steps)

You attach line items (item, quantity, unit price), required-by date, and any project linkage.

Three-way matching

When goods arrive and a bill comes in, the system performs three-way matching:

  1. Purchase Order (what you ordered)
  2. Goods Receipt (what arrived)
  3. Invoice (what you're being billed)

The system checks line-by-line for quantity, unit price, total amount, tax, and delivery match. Discrepancies are flagged by severity:

  • Low — within tolerance, auto-approved.
  • Medium — needs review.
  • High — needs manager approval.
  • Critical — needs investigation; blocks payment.

Payments

Approved bills move into the payment queue. Payment lifecycle:

Pending → Scheduled → Approved → Processing → Completed
                                          (or Failed, Cancelled)

Payment methods supported: ACH, wire, check, virtual card.

Spend analytics

The vendor module publishes spend analytics that are surfaced in the Planning & Intelligence dashboards (see 04-planning-and-insights.md). Per-vendor totals, period comparisons, top vendors, savings opportunities are all visible there.

ESG compliance

Vendor profiles can include ESG (Environmental, Social, Governance) attributes. Violations can be recorded, remediation plans tracked, and dashboards show your portfolio's ESG posture.

3.7 Project finance

Where: Sidebar → Finance OperationsProject Finance.

If your business runs projects with budgets, milestones, and client billing, this is where you manage them.

Creating a project

A project finance record links a Core project to billing, budget, and team data. Fields:

  • Project name and description.
  • Client — who you're billing.
  • Total budget and total revenue.
  • Revenue model — Fixed Price, Time and Materials, Milestone-Based, or Retainer. The model determines how revenue is recognized.
  • Health metrics (computed): budget variance, schedule performance, financial health score (0-100).

Phases and milestones

A project is divided into:

  • Phases — high-level segments (Planning, Active, On Hold, Completed, Cancelled).
  • Milestones — checkpoints with an amount, a due date, and a status (Pending, In Progress, Completed, Billed, Cancelled).

When a milestone is Completed and approved, you can mark it Billed by linking it to an invoice you create from the milestone. The invoice flows to the client and the revenue is recognized.

Team allocation

Add team members to a project, set their role (Project Manager, Tech Lead, Developer, etc.), capacity percentage (how much of their time is on this project), and whether they're billable. The system tracks utilization across projects.

Scope changes

A scope change is a formal request to alter project parameters (budget, timeline, deliverables). Workflow:

Draft → Submitted → Approved (or Rejected, Cancelled)

Approved scope changes update the project's budget and timeline automatically.

Approvals

Approvals on project finance route through the approval engine. Configurable per entity type:

  • Budget allocations and increases.
  • Progress invoices.
  • Milestone invoices.
  • Scope changes.
  • Phase transitions.
  • Cost-center allocations.

Project workspaces (read-models)

Each project has three workspace pages:

  • Command Center — live status: health, milestones, phases, scope changes, pending approvals.
  • Billing — milestones with billing status and linked invoices.
  • Operations — team members, capacity, available users to add.

These pages aggregate data from across services so you see the full picture in one screen.

Portfolio overview

The portfolio page shows all your projects, key metrics, and which are at risk (HIGH or CRITICAL risk).

3.8 Payroll

Where: Sidebar → Finance OperationsPayroll.

Payroll is for employee compensation, taxes, and benefits.

Employees

Each employee record holds:

  • Personal info (name, contact, SSN encrypted).
  • Employment details (hire date, termination date, employment type — W-2, 1099, contractor, salaried).
  • Pay configuration (frequency, base salary, hourly rate, overtime rate).
  • Department, job title, manager.
  • Tax elections (federal, state, local).

Self-service portal

Employees access My Profile to:

  • View their pay stubs.
  • Download W-2 / 1099 forms (year-end).
  • Update personal info (with admin approval where required).
  • Update tax elections.
  • Update direct deposit info.

Time tracking

Employees can clock in/out and submit timesheets. Time entries can be linked to projects (used by Project Finance for labor cost). Workflow:

Time entries created → Submitted as timesheet → Manager approval → Used in payroll run

Pay periods and payroll runs

Pay periods are configured at tenant level (weekly, bi-weekly, semi-monthly, monthly). For each period:

  1. Create the payroll run.
  2. Calculate — the system pulls time entries, applies salary/hourly logic, computes deductions, computes taxes (federal, state, local, FICA, FUTA, SUTA, multi-jurisdiction), computes benefits.
  3. Approve — review the run; admin only.
  4. Post — final, GL events emitted, employees moved to pay.
  5. Pay — payments distributed (instant, ACH, etc., depending on configuration).

Taxes

The platform handles federal, state, and local income tax withholding; FICA (Social Security + Medicare); FUTA (federal unemployment); SUTA (state unemployment, by state). Multi-jurisdictional support means an employee working remotely across state lines is taxed correctly.

Benefits

Benefit plans (health, 401k, HSA, FSA, life insurance, disability) are configured at tenant level. Employees enroll during open enrollment or qualifying life events. Contributions deduct automatically from each paycheck.

Deductions and garnishments

Deduction types (pre-tax, post-tax, fixed amount, percentage) are configured per tenant. Garnishments are court-ordered deductions, requiring admin role to add.

Year-end forms

The platform generates W-2 forms, 1099-NEC, 1099-MISC for the tax year. Generation is batched and exported for filing. International equivalents available: Mozambique IRPS, South Africa IRP5, Kenya P9, EU country payslips.

Certified payroll

For US construction projects under Davis-Bacon Act / prevailing wage rules, certified payroll reports can be generated, validated, and submitted to the contracting agency.

Payroll dashboard summary

The payroll module publishes a summary endpoint consumed by the business dashboard, giving you a glance at: current period gross/net/employee count, year-to-date totals, next pay date.

3.9 Asset management

Where: Sidebar → Finance OperationsAsset Management.

Assets are durable goods your business owns: equipment, vehicles, buildings, software licenses, etc. The asset module tracks their lifecycle and depreciation.

Asset registry

Each asset has:

  • Asset ID — your internal identifier (often a tag number).
  • Name, description, serial number, model, manufacturer.
  • Category — e.g., IT Equipment, Furniture, Vehicles. Categories form a hierarchy.
  • Location — site / building / floor / room hierarchy.
  • Status — Active, Inactive, Maintenance, Disposed, Lost, Retired.
  • Acquisition date, purchase price, current value, currency.
  • Warranty date.
  • Photos and documents — manuals, warranties, invoices.

QR codes and barcodes

Generate a QR code or barcode for each asset; print and stick to the physical item. Scanning takes you straight to the asset record.

Assignments

You can assign an asset to a person (employee). Assignment tracks:

  • Who has it.
  • When they got it.
  • Expected return date.
  • Purpose / notes.
  • Condition at handover.

When the asset is returned, you record the return and the asset becomes assignable again.

Locations

Locations are hierarchical — Site → Building → Floor → Room. Each location can have its own QR code. Moving an asset between locations is a tracked event.

Maintenance

Maintenance schedules generate work orders at configured intervals. Each work order has a description, cost, and completion record. Maintenance costs roll up against the asset's lifetime cost.

Depreciation

Supported methods:

  • Straight-line — same amount each period.
  • Declining-balance — accelerated.
  • MARS (Modified Accelerated Recovery System) — US tax-aligned with property class (3, 5, 7, 10, 15, 20, 25, 27.5, 39 years).
  • Units of production — depreciation per unit used.
  • Custom — admin-defined formula.

The system computes a depreciation schedule and posts the depreciation expense each period (Business Full Suite users see this in the ledger).

Compliance

Compliance frameworks (e.g., SOX, ISO) can be configured per asset category, with periodic inspections recorded. Results feed compliance dashboards.

ERP integration

Asset data can sync bidirectionally with external ERP systems. Configure sync jobs in Settings → Integrations → ERP.

Bulk import and export

Import existing asset registers via CSV, including all the standard fields plus your custom fields.

Where to go next

  • Plan ahead with budgets, forecasts, scenarios, goals → 04-planning-and-insights.md.
  • Close the books, run reports, reconcile bank accounts → 05-accounting-and-close.md (Business Full Suite only).
  • Manage your account, invite teammates, configure roles → 06-account-and-team.md.
  • Looking up a term → 07-glossary.md.

API_URL=https://staging-api.infranotes.io NEXT_PUBLIC_API_URL=https://staging-api.infranotes.io IAM_ISSUER=https://iam.staging.infranotes.io IAM_JWKS_URL=https://iam.staging.infranotes.io/.well-known/jwks.json npm run dev