New GoGlobal Agentic finance with local expertise in 85+ countries Read the announcement

Importing Bank Transactions

Guide
Admin guides
Reading
5 min read
On this page
  1. 01What is this page about
  2. 02Manual Transaction Import
  3. 03CSV File Format
  4. 04Column Names
  5. 05Transaction Validation
  6. 06Handling Duplicates
  7. 07Data Cleansing
  8. 08Import Processing
  9. 09Transaction Post-Processing
  10. 10Importing to Multiple Accounts
  11. 11Handling Historical Data
  12. 12Excluding Incorrect Transactions
  13. 13File Format Examples
  14. 14Troubleshooting Import Issues
  15. 15Scheduling Regular Imports
  16. 16Best Practices
  17. 17Related Articles

In addition to automatic bank feeds, you can manually import bank transactions from CSV files. This is useful when bank feeds aren't available or for historical data.

What is this page about

This page covers importing bank transactions from a CSV: the columns Light needs, how it validates and cleans your file, what happens after the import, and what to do when a file is rejected. Read it if your bank isn't covered by a feed or you are loading history.

On this page

  • Manual Transaction Import
  • CSV File Format
  • Column Names
  • Transaction Validation
  • Handling Duplicates
  • Data Cleansing
  • Import Processing
  • Transaction Post-Processing
  • Importing to Multiple Accounts
  • Handling Historical Data
  • Excluding Incorrect Transactions
  • File Format Examples
  • Troubleshooting Import Issues
  • Scheduling Regular Imports
  • Best Practices
  • Related Articles

Manual Transaction Import

To manually import transactions from a CSV file:

  1. Go to Accounting → Bank reconciliation and select the account
  2. Open the Unmatched tab
  3. Click the upload icon to open the Upload bank transactions dialog
  4. Drag your CSV file onto the upload area, or click the browse files link to pick it
  5. Click Upload to process the file

Light validates the file format and matches CSV columns to transaction fields by their header names.

CSV File Format

Your CSV must include a header row with these required columns:

Date: transaction date, in YYYY-MM-DD, DD/MM/YYYY, DD.MM.YYYY, or DD-MM-YYYY format

Amount: transaction amount in the account's currency. Use a positive amount for money in and a negative amount for money out. The amount cannot be zero.

Additional optional columns:

  • Payer/Payee Name: payer or payee name
  • Reference: reference number
  • Transaction ID: unique identifier from your bank
  • Memo: free-text memo

Column Names

Light matches CSV columns by their header names, so headers must use the names listed above. Header matching is case-insensitive. Light reads your file as semicolon-separated when the header row contains semicolons, and as comma-separated otherwise.

If your bank's export uses different column names, rename the headers in the file before uploading. Light provides a downloadable CSV template you can use as a starting point.

Transaction Validation

Light validates each transaction before importing:

  • Date format: must be a valid date in one of the supported formats
  • Amount format: must be a valid, non-zero number
  • Required columns: the Date and Amount columns must be present

If validation fails, Light shows which rows have errors, such as "Invalid date on row '3'". Light imports nothing until every error is fixed, so correct the CSV and upload again.

Handling Duplicates

Each CSV upload imports every row it contains, so uploading the same transactions twice creates duplicates. Review your file before uploading, and avoid overlapping date ranges between imports.

For GoCardless feeds specifically, duplicate transactions are detected automatically and marked as Excluded so they don't affect reconciliation. Other feed providers and CSV imports don't auto-detect duplicates, so review your file before uploading.

If you accidentally import duplicates from a CSV, exclude them on the Bank reconciliation page.

Data Cleansing

Light applies some data cleansing during import:

  • Whitespace trimming: removes leading and trailing spaces
  • Amount normalisation: thousands separators written as commas, such as "1,000.50", are removed
  • Date parsing: interprets the supported date formats listed above

Use a period (.) as the decimal separator in amounts, and remove any currency symbols.

Import Processing

Imports run in the background:

  1. Upload the file
  2. The import processes in the background
  3. The sync status is shown above the bank transactions list on the Bank reconciliation page
  4. Once complete, transactions appear in your account

Transaction Post-Processing

After import, transactions are available for reconciliation:

  1. Go to Accounting → Bank reconciliation and select the account
  2. Imported transactions appear with the Unmatched status
  3. Light automatically runs auto-reconciliation after each import
  4. Match any remaining unmatched transactions to accounting entries

Reconciliation is covered in more detail in other articles.

Importing to Multiple Accounts

Each import applies to a single bank account. To import for multiple accounts:

  1. Create separate CSV files for each account
  2. Upload each file to its corresponding account

Handling Historical Data

When importing years of historical data:

  1. Start with oldest transactions: import year by year
  2. Use batch imports: split large files into monthly chunks if needed
  3. Monitor progress: check that all transactions imported successfully
  4. Reconcile by period: reconcile each month as you import it
  5. Build up to current: once historical data is in, ongoing imports are easier

Excluding Incorrect Transactions

To correct an imported bank transaction, exclude it and import a corrected version:

  1. Select it on the Bank reconciliation page
  2. Click Exclude, and the transaction is marked Excluded and taken out of reconciliation
  3. Where needed, re-import a corrected version from an updated CSV

You can undo an exclusion at any time to bring the transaction back into reconciliation.

File Format Examples

CSV with required columns:

Date,Payer/Payee Name,Amount
2024-01-15,Office Supplies Co,-500.00
2024-01-16,Customer Payment,2500.00

CSV with additional details:

Date,Payer/Payee Name,Amount,Reference,Transaction ID,Memo
15/01/2024,Wire Transfer OUT,-10000.00,WIR-12345,TXN-001,Vendor payment
16/01/2024,ACH Deposit,5000.00,ACH-67890,TXN-002,Customer deposit

Troubleshooting Import Issues

"Invalid date on row 'X'": use YYYY-MM-DD, DD/MM/YYYY, DD.MM.YYYY, or DD-MM-YYYY format consistently

"Invalid amount on row 'X'": remove currency symbols, use a period as the decimal separator, and make sure the amount isn't zero

Missing Date or Amount column: the whole import fails and its status shows as failed, naming the column that was missing. Add the header and upload again, or start from Light's template so the names match

Scheduling Regular Imports

For accounts not supported by bank feeds:

  1. Export transactions from your bank monthly
  2. Set a calendar reminder to import
  3. Follow the import process
  4. Reconcile immediately after import

This keeps your Light account current even without automated feeds.

Best Practices

  • Use bank feeds when available: feeds are more reliable than manual imports
  • Validate CSV before upload: check a few rows for correct format
  • Import frequently: weekly or monthly prevents large backlogs
  • Reconcile immediately: reconcile imported transactions soon after each import
  • Keep original export files: archive your bank exports for the audit trail
  • Start from the template: use Light's CSV template so column names match

Was this article helpful?