Bulk Import — Opening Balances
For: Anyone setting starting balances for existing customers & vendors
Upload opening balances (starting amounts owed) for customers and vendors that already exist, per branch, from an Excel/CSV-style sheet. Each row ties one customer/vendor to one branch.
Warning: This tool does not create customers, vendors, or branches. It only sets a starting balance. If the customer/vendor doesn't exist yet, set it up first.
How it works
Every bulk upload has two steps. You run the same sheet through a Check first, fix anything it flags, then run it again to actually Apply the balances.
| Step | What it does |
|---|---|
| 1. Check (recommended) | Reviews your entire sheet and lists every row with a problem — without saving anything. Fix the issues and check again. |
| 2. Apply | Once every row passes, upload again to actually apply the balances. |
Danger: Applying is all-or-nothing: if even one row has a problem, nothing is recorded — the whole batch is rolled back. Check first.
Warning: One prerequisite is only caught at the final step, not at Check: each customer/vendor must already have a receivable/payable account assigned. If one is missing, the whole Apply fails with a message naming that customer — even if the Check step passed. Make sure accounts are assigned before you Apply.
Required in every row
These must be filled in correctly on every row:
| Field | What's needed |
|---|---|
| Customer Number | The number of a customer/vendor that already exists (exact match). Not created here. |
| Branch Name | The name of an existing branch (see the matching note below). |
| Opening Balance | The starting amount. Up to 2 decimal places. Can be positive or negative. |
Optional fields with rules
These are optional — but if you fill them in, they must follow these rules:
| Field | Rule if you fill it in |
|---|---|
| Sign (positive / negative) | For a customer, a positive amount means they owe you. For a vendor, a positive amount means you owe them (a payable). A negative amount is the reverse (a credit). |
| A 0 or blank balance | Always accepted — treated as 'nothing to do' and never conflicts with anything on record. |
| Decimals | At most 2 decimal places. |
Must match existing records
Customer Number must match exactly. Branch Name is matched against existing company branches (case-insensitive); note it is matched company-wide rather than strictly under that one customer.
| Field | What it must match |
|---|---|
| Customer Number | Must exactly match an existing customer/vendor number (case-sensitive). |
| Branch Name | Matched against your company's branches by name, case-insensitively. If the branch isn't already attached to the customer, it is attached when you Apply. |
Duplicates & uniqueness
| Situation | What happens |
|---|---|
| That branch already has an opening balance on record | Rejected — you can only set a branch's opening balance once. |
| That branch already has activity (its current balance isn't zero) | Rejected — once a branch has moved past its starting point, an opening balance can't be set. |
| The same Customer + Branch appears twice in your sheet | Rejected — list each customer/branch pairing only once per upload. |
| Opening Balance is 0 or blank | Always accepted — never conflicts with anything already on record. |
Common mistakes
If a row is rejected, it is usually for one of these reasons:
| If this happens… | …here's what it means |
|---|---|
| Customer Number missing or doesn't match | The customer/vendor must already exist — check the number, or add it first. |
| Branch Name missing or doesn't match | The branch must already exist in the company — check spelling. |
| Opening Balance isn't a valid number or has >2 decimals | Enter a plain number (positive or negative), rounded to 2 decimals. |
| Branch already has an opening balance or has activity | You can set an opening balance only once, before any activity — these are caught at Check. |
| Same customer + branch appears twice in the sheet | List each pairing only once. |
| Customer has no receivable/payable account | Assign one first — this is caught only at Apply and fails the whole upload, naming the customer. |
What happens on the final step
- •For each non-zero row, if the branch wasn't already attached to the customer, it is added along with its opening balance.
- •The opening balance becomes that branch's starting point — both its 'opening' figure and its 'current' figure begin at the amount you entered.
- •An accounting entry is posted to the customer's receivable (or vendor's payable) ledger, so the balance is reflected in your accounts from day one, with the offset to an opening-balance adjustment.
- •The whole batch is written together in a single transaction — if anything fails, nothing is saved.
Recommended way to work
- Make sure each customer/vendor already has a receivable/payable account assigned.
- Build your sheet with customer numbers, branch names, and the opening balance for each.
- Run the Check step first and review the problem rows.
- Fix each issue and re-check until every row passes.
- Only then run Apply to record the opening balances.
- Tip: if someone else imports a balance for the same customer and branch between your Check and Apply, your row can still be rejected at the last moment — just check again before retrying.