Importing Order Payments from a CSV File
After you bring your sales history into BarSight, the orders still need to show whether they were paid. The Import Payments CSV tool records a payment against each order that is already in BarSight, so your paid and unpaid orders match your records. It reads a simple file with one row per order, shows you a preview of which orders it found, and then adds the payments.
Before You Start
- The orders must already be in BarSight. Payments are only recorded against existing orders. If you are bringing in your history, import the orders first. See Importing Brewery Orders.
- You need full access to the Orders page. The import options only appear for people who have it.
- Have the amount received for each order. This tool records money that was already collected somewhere else. It does not charge anyone.
What the Import Does and Does Not Do
- It adds one payment per row to the matching order. Every payment is recorded with the first payment type in your list, which is Cash unless you have renamed it.
- It does not handle partial payments. See When the Payment Is Less Than the Order below before you import one.
- It does not update payments you already have. An order that already has a paid payment is skipped, which also makes it safe to run the same paid file again.
- It does not create orders or customers. A row that does not match an order is skipped without a message.
Step 1: Prepare Your CSV File
The quickest way to get the format right is to start from our sample file. It holds a payment for each of the five orders in the sample file from the orders import guide, so you can try the two together.
Open it in your spreadsheet program, replace the example rows with your own payments, and save it as a CSV again. Keep the first row as it is, because BarSight uses it to work out which column is which.
Columns BarSight Recognizes
Headings must be typed exactly as shown, including capital letters. Column order does not matter.
| Column Heading | Required? | What to Enter |
|---|---|---|
Customer |
Yes | The customer's name, spelled exactly as it is in BarSight. Buyer also works as a heading. |
Order Number |
Yes | The order's number. Reference Number also works as a heading. Never leave a cell blank, because a blank number matches any unpaid order for that customer and date. |
Date |
Yes | The order's date, as 2026-01-12. It must be the same date the order has in BarSight. Order Date also works as a heading. |
Total |
Yes | The amount received, as a plain number such as 752.50. A leading $ is fine, but do not use a thousands comma. Without this column BarSight records a payment of zero and treats the whole order as a shortfall. |
Payment Status |
Yes | Use paid in lower case. See below. |
Payment Date |
No | The day the money was received, as 2026-01-30. Without the column, the payment is dated the same day as the order. If you include the column, fill in every row, because a blank cell can make the payment fail. |
Sales Rep |
No | An employee's email address or first name. The payment, and the order, are credited to that employee. Email addresses are safest, because part of a first name can match the wrong person. If nobody matches, the payment is credited to the person importing. |
Other headings the importer recognizes, such as Discount, Tax1, Tax2, Tax3, GST, BC PST, Deposit, Government Deposit, Adjustment and Id, are accepted but not used for payments.
[SCREENSHOT: The sample CSV open in Excel with the header row highlighted]
Payment Status
The Payment Status decides whether the payment counts as paid. BarSight treats a row as paid only when the cell holds one of these exactly:
paid,yes,trueorsuccess, all in lower case- the number
1
Anything else is recorded as not paid. That includes Paid with a capital letter, unpaid, overpaid, partially_paid and an empty cell. The same happens if your file has no Payment Status column at all, so always include it. A payment recorded as not paid does not mark the order as paid, and it does not stop the order from being matched again.
One Row Per Order
Use one row per order, with the total amount received for the whole order. If your source file lists one row per product line, add the lines together first. A pivot table, or a sum grouped by order number, does this quickly.
This matters because BarSight skips an order once it has a paid payment. With one row per line, only the first line of each order would be imported, and it would carry only that line's amount. Rows marked unpaid do not trigger that skip, so every line of an order would be imported as a separate unpaid payment. The preview checks each row on its own, so every line shows as matched even though only the first would be used.
When the Payment Is Less Than the Order
BarSight compares the Total with the order's total. What happens next depends on which is bigger:
- The payment matches or is more than the order. The payment is recorded as it is.
- The payment is less than the order. BarSight treats the difference as an after-the-fact discount. It adds a credit called Discount to the order for the difference and lowers the order's total to the amount you paid.
That second case applies to every row, whether or not it is marked paid. It means this tool is not suited to partial payments. Leave those rows out of the file, and record them in BarSight by hand. If an order's total in BarSight is not what you expect, check it before you import, because the comparison is made against the total BarSight holds.
Step 2: Upload the File
- Navigate to Brewery → Orders.
- Open the Settings menu in the toolbar and choose Import Payments CSV.
- In the Import Payments window, choose your file under CSV File.
- Click Upload.
[SCREENSHOT: Orders page Settings menu open with Import Payments CSV highlighted]
Step 3: Review the Preview
BarSight shows your file as a table before anything is saved. Column headings show the name each one was matched to, and a column it could not match says -Unused-. Check that Customer, Order Number, Date, Total and Payment Status are all matched.
The first column, Match, tells you what will happen to each row. Hover over a cell to read the reason.
| Match | What it means |
|---|---|
| Matched | BarSight found an unpaid order for that customer with that order number and date. The payment will be recorded. The hover text also warns if the amount is less than the order total, and says how large the Discount credit will be. Ignore that warning on rows marked No match or Already Paid, because those rows are skipped. |
| Already Paid | The customer has an order with that number that already has a paid payment, so the row will be skipped. The date is not checked for this message. |
| No match | No unpaid order was found. The hover text says which of the customer, order number and date did not agree. The row will be skipped. |
| - | The preview cannot check the row because the Customer, Order Number or Date column is missing. |
[SCREENSHOT: Import preview showing a Matched row, an Already Paid row and a No match row with the hover text visible]
If anything looks wrong, close the window, fix your file and upload it again. Nothing has been saved yet.
Step 4: Import
- Click Import into Database at the top of the preview.
- BarSight records the payments and returns you to the Orders page. It does not show a count of what was imported.
- Open a few of the orders and check that the payment appears.
Each payment is labelled with text like Imported payment of $752.50 to order #123, so you can recognize imported payments later. The number after the # is BarSight's own order id and not your order number.
If You Use QuickBooks
If your account sends orders to QuickBooks, a paid payment is queued to be sent to QuickBooks as well, once its order has been sent. If those payments are already recorded in QuickBooks, contact BarSight support before you import so we can mark them as already handled and avoid double entries.
Moving From Another System
If you are switching from another brewery system, you need an export that shows what was paid on each order. Check the preview for -Unused- headings, because exports from other systems change over time.
From Ollie
An Ollie sales export already uses headings BarSight recognizes: Reference Number, Date, Buyer, Payment Status, Total and Sales Rep. You can edit that file instead of starting over, but three things need attention:
- It has one row per product line, and in the exports we have seen,
Totalis the total of that line. Add the lines together so you have one row per order with the order's full amount. - Payment Status uses
paid,unpaid,overpaidandpartially_paid. Onlypaidis read as paid. Changeoverpaidtopaid, and delete the rows that areunpaidorpartially_paid, since those are not complete payments. - There is no payment date. Without a
Payment Datecolumn every payment is dated the same day as its order. Add the column if you have the real dates.
From Ekos
The Ekos sales export we have seen lists what was sold and does not include payment information, so it cannot be used for this import. Export a paid invoices or payments report from Ekos instead, and name the columns using the headings above. The importer does not accept the sales export's Number, Company or Delivery Date headings, so rename them to Order Number, Customer and Date.
Ollie and Ekos are trademarks of their respective owners. BarSight is not affiliated with or endorsed by either company. Their names are used here only to describe which files this importer can read.
Tips and Best Practices
- Import orders before payments, and keep the details identical. The customer name, order number and order date in your payments file must match the orders you imported, character for character.
- Use the full order number. BarSight looks for orders whose number contains the text you give, so
10could match1001and pick the wrong order. - Add a Payment Date column. Your payments will then carry the day the money arrived and not the order date, which keeps your payment history accurate.
- Write
paidin lower case. Spreadsheet programs sometimes capitalize the first letter of a cell, which turns the payment into an unpaid one. - Compare totals before you upload. Put your Total next to the order totals in BarSight. Any row that is lower will create a Discount credit.
- Keep the original export. You will want it if you need to compare what BarSight recorded with what you started with.
Troubleshooting
Problem: I see "Invalid CSV Upload file (0 rows found), please try again."
Solution: The file is not a real CSV or is empty. Use Save As, choose CSV (Comma delimited), and make sure the name ends in .csv.
Problem: Every row says "No match".
Solution: Hover over a cell to see which part did not agree. The usual causes are a customer name spelled differently, an order date that is not in the 2026-01-12 form or differs from the order's date, or orders that have not been imported yet.
Problem: Rows say "Already Paid".
Solution: The order already has a paid payment, usually from an earlier import of the same file. Nothing more is needed.
Problem: The orders still show as unpaid after the import.
Solution: The Payment Status was not read as paid. Check for a capital letter, a missing column, or a word other than paid. Contact support so the payment records can be corrected, because importing the file again adds a second set rather than fixing the first.
Problem: A "Discount" credit appeared on an order.
Solution: The Total in your file was lower than the order's total, and BarSight booked the difference as a discount. Contact support to have the credit removed, and make sure partial payments are left out of the file next time.
Problem: An amount is wrong or a Discount is far too large.
Solution: The Total probably has a thousands comma, such as 1,250.00. Remove the commas, or format the column as a plain number, and contact support to correct the affected orders.
Problem: A payment landed on the wrong order.
Solution: The order number in your file matched part of another order's number for the same customer and date. Contact support to move the payment, and use full order numbers next time.
Problem: The first column heading says -Unused-, even though it is spelled correctly.
Solution: Some programs add an invisible marker to the start of the file when you save as CSV UTF-8. Save as plain CSV (Comma delimited) instead.