> For the complete documentation index, see [llms.txt](https://kb.bevica.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kb.bevica.com/bevica-select/opening-balances-inventory/bevica_select_-_sales_ledger_opening_balances_template.md).

# Sales Ledger Opening Balances Template

### Before you start

* Understanding the Configuration Worksheet: [Configuration Worksheet](/bevica-select/bevica_select_training/bevica_select_-_excel_template_data_migration.md#configuration-worksheet).
* Understanding Excel templates: [Excel Template Data Migration](/bevica-select/bevica_select_training/bevica_select_-_excel_template_data_migration.md#excel-template-data-migration).
* Understanding how financial opening balance imports work: [Bevica Select - Finance Data Migration Overview](/bevica-select/opening-balances-inventory/bevica_select_-_finance_data_migration_overview.md).
* Customers must exist.

### Create a manual journal

If you would prefer to create the opening sales ledger balance journal manually rather than importing a template, navigate to the General Journal and open the ZZ-DM journal batch. Populate the columns listed below except for:

* `Journal Template Name`
* `Journal Batch Name`
* `Line No.`

### Template

The template is a pre-formatted spreadsheet with the fields you need to create your opening sales ledger transactions within Bevica.

You will need a list of open sales ledger transactions from your old finance system. Only bring across open transactions, e.g., invoices, payments, credits, etc., that have not yet been matched off. If an invoice has been part paid, you need to bring across the remaining amount, not the original amount.

The total of the open transaction amounts must equal the sales ledger control account in your old system.

The template has the following fields:

<table data-header-hidden="false" data-header-sticky><thead><tr><th width="167">Field ID/  Field Name</th><th width="161">Related Table</th><th width="143">FieldType</th><th>Note</th></tr></thead><tbody><tr><td>1 <code>Journal Template Name</code></td><td>(82) Gen. Journal Template</td><td>Code 20 (Mandatory)</td><td>Enter GENERAL</td></tr><tr><td>51 <code>Journal Batch Name</code></td><td>(232) Gen. Journal Batch</td><td>Code 20 (Mandatory)</td><td>Enter ZZ-DM</td></tr><tr><td>2 <code>Line No.</code></td><td></td><td>Integer (Mandatory)</td><td>Must be a unique number per line. Line numbers normally start with 10000 and increment by 10000.</td></tr><tr><td>5 <code>Posting Date</code></td><td></td><td>Date (Mandatory)</td><td>Use either the original transaction Posting Date or set all Posting Dates to the day before go-live. <strong>When validating your data migration, run an aged debt report and customer statements to ensure the migrated data appears correctly.</strong></td></tr><tr><td>76 <code>Document Date</code></td><td></td><td>Date (Mandatory)</td><td>Either use the Document Date of the original transaction. <strong>The Due Date is calculated based on the Document Date and the customer's payment terms.</strong></td></tr><tr><td>6 <code>Document Type</code></td><td></td><td>Option (Mandatory)</td><td>Invoice; Credit Memo; Payment; Refund</td></tr><tr><td>7 <code>Document No.</code></td><td></td><td>Code 20 (Mandatory)</td><td>The transaction reference, e.g., invoice number.</td></tr><tr><td>77 <code>External Document No.</code></td><td></td><td>Code 35 (Optional)</td><td>Populate this if you have another reference to bring across.</td></tr><tr><td>3 <code>Account Type</code></td><td></td><td>Option (Mandatory)</td><td>Enter Customer</td></tr><tr><td>4 <code>Account No.</code></td><td>(18) Customer</td><td>Code 20 (Mandatory)</td><td>The customer number.</td></tr><tr><td>8 <code>Description</code></td><td></td><td>Text 100 (Mandatory)</td><td>Enter a relevant description.</td></tr><tr><td>12 <code>Currency Code</code></td><td>(4) Currency</td><td>Code 10 (Optional)</td><td>Only populate this field if the transaction is in a foreign currency, e.g. EUR, USD.</td></tr><tr><td>13 <code>Amount</code></td><td></td><td>Decimal (Mandatory)</td><td>Enter the outstanding amount of the transaction. Must be a debit amount (positive) for invoices and refunds, and a credit amount (negative) for credit memos and payments. If it is a foreign currency transaction this is the amount in the foreign currency.</td></tr><tr><td>14 <code>Amount (LCY)</code></td><td></td><td>Decimal (Optional)</td><td>Leave blank if the transaction is in local currency. Populate it with the local currency amount if the transaction is in foreign currency. The system will then work out the exchange rate based on the 'Amount' and 'Amount (LCY)' values.</td></tr><tr><td>11 <code>Bal. Account Type</code></td><td></td><td>Option (Mandatory)</td><td>Enter G/L Account</td></tr><tr><td>63 <code>Bal. Account No.</code></td><td>(15) G/L Account</td><td>Code 20 (Mandatory)</td><td>Enter ZZ9910</td></tr><tr><td>38 <code>Due Date</code></td><td></td><td>Date (Optional)</td><td>The Due Date is calculated based on the Document Date and the customer's payment terms. This may be different from the due date on the transaction in your old system therefore you may prefer to enter the Due Date and not use the defaulted date.</td></tr><tr><td>Dimensions</td><td></td><td>(Optional)</td><td>Enter the relevant dimensions. Any value entered here must already exist in its related table.</td></tr></tbody></table>

### Upload the journal

Once the template has been applied, navigate to the General Journal **ZZ-DM** batch and check that the journal holds the same information as the data migration template used.

* Ensure all columns you have imported data into are visible (with the exception of Journal Template Name, Journal Batch Name, and Line No.).
* Have all the lines been imported?
* Select a number of lines at random, including some foreign currency ones if you have any. Are they all correct and are the `Amount` and `Amount (LCY)` values both correct?
* Export the journal lines to Excel and make sure the details look correct, including dates and values.
* Select **Process** then **Reconcile**. Check the **Net Change in Jnl.** value against account ZZ9910. This should match the total of your sales ledger control account in your old system. If this doesn't match, but the total of the file you uploaded does match, then something isn't correct with the journal lines. Try checking lines one by one to see where the issue lies, especially foreign currency lines.
* Select **Post/Print** then **Preview Posting**. Check the entries that will be posted look correct.

### Post the journal

Before posting any opening balances, it is a good idea to copy the company as a backup, so you have a point to return to if there are problems once the **General Journal** has been posted. See [Bevica Select - Creating new Bevica companies](/bevica-select/bevica-select-data-migration/bevica_select_-_creating_new_bevica_companies.md) for information on how to do this.

### Reconcile

Once posted, the entries need to be reconciled with the values from your old system. The following should be checked:

* Balance on customer accounts. Check that the figures on your old system and Bevica match. On the Customer List page, you will see the `Balance (LCY)` field which will be the total for that customer in your local currency.
* Run the Aged Accounts Receivable report and check that the totals and ageing columns are correct. Note these will only match your old system if you have brought across the same due dates.
* Check the General Ledger 'Sales Ledger' balance on ZZ9910 and 2310.

Another trusted user, rather than the person who created and posted the opening balance, should perform these checks. They should do this using their own data source from your previous system and not rely on the migration files you used in case there were errors on those.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://kb.bevica.com/bevica-select/opening-balances-inventory/bevica_select_-_sales_ledger_opening_balances_template.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
