Opening Balances
Purpose
Opening balances bring the approved balances from the previous accounting system or
cutover workpaper into Supply Weave. An ADMIN manages them at Accounting Setup
-> Opening Balances (/accounting/opening-balances).
The application can preserve imported rows, resolve account codes, check mechanical rules, prevent duplicate posting, create a balanced opening journal, and retain an audit trail. It cannot decide what the balances should be.
The business and its chartered accountant (CA) remain responsible for approving:
- the cutover date and period;
- the source trial balance and account mapping;
- every debit and credit amount;
- retained earnings and any mid-year Revenue or Expense balances;
- tax and VAT, depreciation, accruals, provisions, and other accounting judgments; and
- the workpapers and approvals supporting the import.
Warning:
VALIDATEDmeans the proposed rows passed the application’s rules. It does not mean that the opening balances are complete, correctly classified, audited, or approved by a CA.
Prerequisites
Before selecting New Import:
- Complete the Accounting Setup Checklist.
- Confirm the company Accounting Settings, including the agreed Opening Balance Cutover Date if it has been entered already.
- Generate the fiscal year containing the opening date and confirm that date’s
accounting period is
OPEN. See Fiscal Years and Periods. - Complete the Chart of Accounts. Every imported account code must identify an active leaf account, not a parent heading.
- Review Accounting Readiness and investigate relevant findings. The Readiness page is diagnostic; the posting action recalculates its applicable blockers inside the posting transaction.
- Obtain a CA-approved, exactly balanced source trial balance and account-mapping workpaper.
- Agree who may prepare, review, approve, and post the import. Where practical, the preparer and approver should be different people.
The first successful opening-balance post freezes the cutover date. A later replacement must use that same date.
Choose An Entry Method
Select New Import, enter the approved opening date, and choose one of these tabs:
| Method | UI action | Use when |
|---|---|---|
MANUAL |
Enter rows, then select Create Draft. | The approved list is short or corrections are easier to enter directly. |
CSV |
Select Download Template, complete it, choose the file, then select Upload as Draft. | The approved workpaper contains many accounts or is prepared in a spreadsheet. |
Both methods create the same controlled draft. Neither method posts to the ledger when the draft is created. CSV rows, including malformed source values, are preserved for review rather than silently posted or discarded.
CSV Format
Use Download Template rather than creating a file with different column names. The CSV must contain these exact headers:
account_code,account_name,debit,credit,memo
The upload limit is 5 MB. A manual draft or saved row set can contain at most 10,000 rows.
| Column | Requirement |
|---|---|
account_code |
Required and authoritative. It must exactly match an active leaf account code in Supply Weave. |
account_name |
Informational. It does not select an account or override the name configured in the Chart of Accounts. |
debit |
Enter a non-negative amount with no more than four decimal places, or leave blank when the row is a credit. |
credit |
Enter a non-negative amount with no more than four decimal places, or leave blank when the row is a debit. |
memo |
Optional supporting description for the journal line. |
For every row, exactly one of debit or credit must be greater than zero. Do not
enter a negative amount, put values on both sides, or repeat an account code. Total
debits must equal total credits exactly. Opening balances are posted to the BDT
ledger.
For example, if an approved BDT opening workpaper contains Inventory of BDT
100,000, enter 100000.0000 on the debit side of the approved Inventory account.
The CA-approved credit balances completing that trial balance must also be entered;
do not invent an offset merely to make the import balance.
Status Lifecycle
An opening-balance import moves through this lifecycle:
DRAFT --Validate succeeds--> VALIDATED --Post--> POSTED --Reverse--> REVERSED
|
+--Validate fails--> INVALID --Correct and save--> DRAFT
INVALID can be validated again after correction, and editing a VALIDATED import
returns it to DRAFT.
| Status | Meaning | Available work |
|---|---|---|
DRAFT |
Rows exist but have not passed the latest server validation. | Edit rows, Save Rows, and Validate. |
INVALID |
Validation found one or more row-level or import-level errors. Nothing was posted. | Correct rows, Save Rows, and validate again. |
VALIDATED |
The current normalized rows passed application validation and have a content hash. Nothing has been posted yet. | Obtain approval for this exact fingerprint or edit rows and revalidate. |
POSTED |
The opening journal has been created. The import and its rows are immutable. | Review the posting and reports, or use Reverse under an approved correction process. |
REVERSED |
A compensating reversal journal has been posted. The original and reversal remain in history. | Review both journals and use Create Replacement Draft if corrected balances are required. |
Create And Edit A Draft
Manual Rows
- Open Accounting Setup -> Opening Balances and select New Import.
- On Manual rows, enter the approved opening date.
- Enter each account code, optional account name, debit or credit, and optional memo. Use Add Row or the remove-row button as needed.
- Review the displayed exact totals. The on-screen total is a preparation aid, not server approval.
- Select Create Draft.
CSV Upload
- Open Accounting Setup -> Opening Balances and select New Import.
- On CSV upload, select Download Template.
- Complete the template without renaming the required headers.
- Enter the approved opening date and choose the CSV file.
- Select Upload as Draft.
- Review all imported rows and any preserved parsing errors on the detail page.
Correct Rows
In a DRAFT, INVALID, or VALIDATED import, edit the rows and select Save
Rows. Saving replaces the draft’s row set, resets the status to DRAFT, clears the
previous validation summary and content hash, and requires a new validation.
Do not assume that changing the spreadsheet file changes an existing draft. Upload creates a draft; later corrections shown in the application must be saved with Save Rows.
Validate The Import
Select Validate only after all row changes have been saved. The application checks:
- the opening date belongs to a generated
OPENaccounting period; - the opening date matches the frozen cutover date, if one already exists;
- at least one row exists;
- every account code is present and resolves to an existing account;
- every resolved account is active and is a leaf account;
- each account code occurs only once in the import;
- debit and credit values are non-negative and have no more than four decimal places;
- exactly one side of every row is greater than zero;
- total debit equals total credit exactly; and
- malformed CSV rows and missing required headers are reported.
If any check fails, the import becomes INVALID. Review the messages shown against
the rows, correct the source or mapping with the appropriate owner, select Save
Rows, and validate again. An INVALID import has no ledger effect.
When validation succeeds, the import becomes VALIDATED. Compare its resolved
account codes, row count, exact debit and credit totals, memos, and full content
hash with the approved workpaper before posting.
Content Hash: The Approval Fingerprint
The content hash is a secure fingerprint of the proposed posting. It is calculated from the opening date, BDT, and normalized posting rows. The source filename, CSV row order, entry method, and informational account name do not change the hash. Account identity, account code, debit, credit, or memo changes do change it.
Use the hash as an approval fingerprint:
- Record the validated hash with the approved row count and debit/credit totals.
- Confirm that the Post Opening Balances dialog refers to the same hash.
- If rows are edited, validate again and obtain approval for the new hash.
- If posting reports
CONTENT_HASH_MISMATCH, stop. Return to the draft, review the change, revalidate, and obtain approval for the replacement hash. Do not bypass the mismatch.
The hash proves that the proposed normalized content has not changed between validation and posting. It does not prove that the balances are professionally correct or complete.
Post Opening Balances
Posting creates a real accounting journal and makes the import immutable.
- Confirm the import is
VALIDATEDand matches the CA-approved workpaper and recorded content hash. - Select Post Opening Balances.
- Review the confirmation and select Confirm and Post once.
- Confirm the status changes to
POSTEDand the Posting Trail contains the Original Journal link.
During posting, Supply Weave locks the relevant accounting controls and rechecks the opening period, account activity and leaf status, duplicate accounts, row amounts, exact balance, validation summary, content hash, cutover date, and applicable readiness blockers. If a condition changed after validation, posting is rejected without a partial journal.
The successful post:
- creates one
OPENING_BALANCE_IMPORTjournal dated on the opening date; - creates one journal line for each accepted row;
- freezes the opening-balance cutover date if it was previously blank;
- records the posting actor, time, content hash, and journal link; and
- makes the posted rows uneditable.
Only one opening-balance import may currently be POSTED. Retrying the same posted
import with the same hash returns the existing result instead of creating a second
journal. A posted hash remains reserved even after reversal.
Never edit or delete the journal to correct a posted opening import. Use the controlled reversal and replacement process.
Reverse And Replace
Reverse only with approval and a specific explanation of the error. Reversal does not erase history.
- Confirm that the current UTC date belongs to a generated
OPENaccounting period. The reversal uses the current date and current open period, not the original opening date or period. - Open the
POSTEDimport and select Reverse. - Enter the required nonblank reversal reason and select Confirm Reversal.
- Confirm the import becomes
REVERSEDand the Posting Trail shows both the Original Journal and Reversal Journal. - Verify the reason, actor, timestamp, reports, and Audit Logs.
Supply Weave keeps the original journal, marks it reversed, and creates a separate
OPENING_BALANCE_IMPORT_REVERSAL journal with every debit and credit swapped. Both
entries remain visible in the ledger history and reports for their respective
dates.
If corrected balances are needed, select Create Replacement Draft. The new form copies the reversed import’s date and rows so they can be corrected. Review every copied row; this is a new draft, not an automatic repost. The replacement must use the frozen cutover date and must produce different normalized content, because the original posted hash cannot be reused.
Repeat the full save, validation, CA approval, hash check, posting, report verification, and evidence-retention process.
Audit And Evidence
Supply Weave records controlled audit events for draft creation or upload, row replacement, validation, posting, and reversal. The audit summary retains items such as the import ID, opening date, method, original filename, status, row and error counts, exact totals, content hashes, actor, timestamps, reversal reason, and journal links. Complete source rows and raw CSV contents are not copied into Audit Log metadata.
Retain outside the application:
- the CA-approved source trial balance and account-mapping workpaper;
- cutover approval and the reason for the selected opening date;
- the source CSV and original filename, when applicable;
- import ID, method, row count, and exact debit/credit totals;
- validated and posted content hashes;
- preparer, reviewer, approver, and posting evidence;
- resolved validation errors and approved corrections;
- original and reversal journal IDs and reversal approval, when applicable; and
- reconciled report exports and investigation notes.
The application audit trail supports traceability. It does not replace the source workpaper, approval evidence, or the CA’s professional review.
Verify The Result In Reports
After posting or reversal:
- Open the linked journal and confirm the date, source, accounts, memos, debits, credits, and exact total balance.
- Run the Trial Balance over a range agreed with the CA. The import is posted on its opening date: if the report starts on that same date, the import appears in period movement rather than the pre-range opening columns. Confirm the relevant debit and credit totals reconcile and investigate unresolved accounts or warnings.
- Open relevant General Ledgers and confirm each imported account starts with the approved balance.
- Run the Statement of Financial Position and compare Assets, Liabilities, and Equity with the approved workpaper.
- If the cutover is mid-year, also review Profit & Loss for the CA-approved brought-forward Revenue and Expense treatment.
- Refresh Accounting Readiness and investigate every remaining opening-balance, hierarchy, classification, calendar, or ledger-integrity finding.
- Export and retain the reconciled reports under the approved handover process.
See Financial Reports for report meanings and limitations. A balanced Trial Balance is necessary, but it does not prove that every balance is complete, correctly classified, or audited.
Common Mistakes
- Choosing a date without CA-approved cutover evidence.
- Using an opening date whose accounting period is missing or
CLOSED. - Treating
account_nameas authoritative instead of checkingaccount_code. - Posting to parent or inactive accounts.
- Entering a negative amount, both debit and credit, or neither side on a row.
- Repeating an account code or adding an invented suspense amount only to force equal totals.
- Assuming CSV upload validates or posts automatically.
- Editing rows but forgetting Save Rows before Validate.
- Treating
VALIDATED, a matching hash, or a balanced total as CA approval. - Approving one content hash and posting another.
- Trying to edit a
POSTEDorREVERSEDimport. - Assuming reversal removes the original journal or posts back into the original period.
- Creating a replacement without reconciling the original and reversal first.
- Checking Readiness without verifying the Trial Balance and relevant ledgers.
Responsibility Boundaries
Supply Weave validates file and amount formats, account existence and active-leaf status, duplicate account use, exact debit/credit balance, cutover and period controls, content integrity, posting uniqueness, immutability, reversal mechanics, and audit references.
The ADMIN is responsible for entering the approved source faithfully, checking
the normalized rows and hash, following authorization procedures, posting only the
approved import, investigating errors, and retaining evidence.
The business and its CA remain responsible for the cutover policy, completeness and accuracy of all balances, account mapping and classification, retained earnings, mid-year nominal balances, tax and VAT, depreciation, accruals, provisions, statutory treatment, audit procedures, and final approval.
Related Guides
- Accounting Overview
- Accounting Setup Checklist
- Chart of Accounts
- Accounting Settings
- Fiscal Years and Periods
- Accounting Readiness
- Financial Reports
- Detailed Opening-Balance Import Guide
Return to the Accounting User Guides index.
Reviewed against the application on: 2026-08-21