> ## Documentation Index
> Fetch the complete documentation index at: https://ownpay.org/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> OwnPay is licensed under AGPL-3.0 and is completely free - no licensing fees.
> Production docs URL: https://ownpay.org/docs - append .md to any page URL for clean markdown.
> OwnPay requires PHP 8.3+, MySQL/MariaDB, and Redis.
> MCP server available at https://ownpay.org/docs/mcp for programmatic documentation queries.
> Use root-relative links (e.g. /quickstart) for internal navigation - do NOT include /docs prefix.
> Plugin development: consult /developer/plugins/ pages for correct interfaces and manifests.
> Canonical locations: API auth = /api/authentication, webhook verification = /api/webhooks, rate limits = /resources/rate-limiting, transaction statuses = /fundamentals/payment-flow.
> The documentation uses the Diataxis framework: Tutorials (learning), How-to (tasks), Reference (lookup), Explanation (understanding).

# Balance Verification

> Reconcile your double-entry ledger by comparing system-recorded balances against recalculated totals to catch any discrepancies.

Balance Verification lets you compare the balances stored in OwnPay's double-entry ledger against independently recalculated totals. This is essential for financial integrity and catching any data inconsistencies.

<Info>
  For background on how the double-entry ledger works, see [Ledger](/docs/fundamentals/ledger).
</Info>

## Run a verification

<Steps>
  <Step>
    Navigate to **Reports > Balance Verification** in the left sidebar.
  </Step>

  <Step>
    Select a **Brand** from the dropdown. If you operate a single brand, it is pre-selected.
  </Step>

  <Step>
    Choose a **Date Range**. The verification recalculates every transaction within this window.
  </Step>

  <Step>
    Click **Verify**. OwnPay sums all debit and credit entries from raw transaction data and compares the result against the stored running balance.
  </Step>
</Steps>

## Understanding the results

The verification report displays:

| Field                  | Description                                              |
| ---------------------- | -------------------------------------------------------- |
| **System Balance**     | The running balance stored in the ledger accounts        |
| **Calculated Balance** | The sum recalculated from individual transaction entries |
| **Difference**         | System Balance minus Calculated Balance (should be zero) |
| **Status**             | Matched or Mismatched                                    |

A **Matched** status means your ledger is consistent. All debits and credits sum correctly.

## What to do if balances don't match

If the verification shows a mismatch:

1. **Check for manual ledger adjustments** - Review the [audit log](/docs/reports/audit-log) for any `ledger.adjustment` actions in the selected period
2. **Verify no transactions were deleted** - OwnPay prevents transaction deletion, but direct database modifications could cause inconsistencies
3. **Check for partial refunds** - Ensure partial refunds were recorded with the correct amounts using `bcmath` precision
4. **Run the verification again** - Exclude the most recent day to isolate when the discrepancy started

<Warning>
  Never manually edit database tables to fix a balance mismatch. Contact {{supportEmail}} if you cannot identify the root cause. Incorrect manual fixes can compound the discrepancy.
</Warning>

<Tip>
  Schedule a weekly balance verification as part of your operational routine. Small discrepancies are easier to investigate when the time window is narrow.
</Tip>

## Related Pages

* [Ledger](/docs/fundamentals/ledger) - How the double-entry system works
* [Audit Log](/docs/reports/audit-log) - Review actions that may have affected balances
* [Dashboard](/docs/reports/dashboard) - High-level financial metrics


## Related topics

- [Features and Capabilities](/docs/resources/features.md)
- [Dashboard](/docs/reports/dashboard.md)
- [Ledger UI](/docs/payments/ledger.md)
- [Ledger - Double-Entry Bookkeeping for Payments](/docs/fundamentals/ledger.md)
- [Audit Log](/docs/reports/audit-log.md)
