---
title: "Import CSV Expense Invoices - Implementation Guide"
canonical: "https://kb.myframeworks.com.au/space/FRAM/197427202/Import%20CSV%20Expense%20Invoices%20-%20Implementation%20Guide"
format: markdown
---
The **Import CSV Expense Invoices** function allows you to import supplier expense invoices in bulk from CSV files. This automated process scans a specified directory for CSV files and processes them to create expense invoices in Frameworks.

Common use cases include:

- Importing expense invoices from external accounting systems.
- Processing bulk expense invoice data from third-party suppliers.
- Automating recurring expense invoice entries.
- Importing expense allocations across multiple companies and GL accounts.
- Scheduling multiple import tasks for different suppliers or invoice types (by creating separate scheduled tasks with different configurations).

The **Import CSV Expense Invoices** function is part of the scheduled task system and runs automatically at regular intervals when configured. Once set up, upload your CSV file to the designated directory for it to be processed.

> ✅ Refer to [Expense Invoice Entry](https://sterlandsupport.atlassian.net/wiki/spaces/FRAM/pages/28404012) for information about manually entering individual expense invoices.

**Who performs this:** System Administrator

**Prerequisites:**

- Access to the Payables module.
- General Ledger accounts are configured.
- The server directories for import and archive exist.

> ✅ Refer to [File Upload](https://sterlandsupport.atlassian.net/wiki/spaces/FRAM/pages/28404710) for information about creating directories.

## Implementation Sequence

This guide walks you through the complete implementation in the correct order:

> Macro (toc)

---

## 1. Prepare your CSV File

Prepare your CSV file according to the structure below, ensuring all required fields are included and data is formatted correctly. You can include multiple detail lines for a single invoice by using the same supplier code and invoice number across multiple rows.

### Configuration Steps

Prepare a comma-delimited CSV file using the following column structure in this exact order:

| Column | Field Name | Data Type | Description | Required |
| --- | --- | --- | --- | --- |
| A | CompanyNumber | Integer | Company code (if allocating across multiple companies) | No |
| B | BranchNumber | Integer | Branch code for the transaction | Yes |
| C | SupplierCode | Text | The unique supplier code as defined in Frameworks | Yes |
| D | InvoiceDate | Date | Invoice date in DD/MM/YYYY format | Yes |
| E | InvoiceNumber | Text | The supplier's invoice number | Yes |
| F | Narrative | Text | Description of the expense line item | Yes |
| G | InvoiceTotalInc | Decimal | Invoice total INCLUDING GST (tax-inclusive amount) | Yes |
| H | InvoiceTotalGST | Decimal | GST (tax) amount for the invoice | Yes |
| I | LineNumber | Integer | Line number for the invoice detail row | Yes |
| J | GLAccount | Integer | General Ledger account code to post the expense | Yes |
| K | LineTotalExc | Decimal | Line total EXCLUDING GST (tax-exclusive amount) | Yes |
| L | basCode | Text | BAS (Business Activity Statement) code for reporting | No |
| M | AnalysisCode | Text | Analysis code for additional reporting dimensions | No |

**Sample CSV file:**

```
CompanyNumber,BranchNumber,SupplierCode,InvoiceDate,InvoiceNumber,Narrative,InvoiceTotalInc,InvoiceTotalGST,LineNumber,GLAccount,LineTotalExc,basCode,AnalysisCode
1,10,SPOTLA,11/04/2025,INV49298,test,1000,90.91,1,680000010,409.09,00,ATCODE
1,10,SPOTLA,11/04/2025,INV49298,test,1000,90.91,2,670300010,500,00,FTCLN

```

The system validates that the allocated line amounts plus GST across all lines and companies match the `InvoiceTotalInc` value for each invoice. If they don't, the following error displays: `Allocated Amounts + GST of all lines do not match the Invoice Amount.`

### Result

Your CSV file is ready to upload to the designated directory for processing.

---

## 2. Upload your CSV File

Upload your CSV file to the server directory you will configure as the **Directory to Scan**. The scheduled task monitors this location and processes any CSV files it finds. The method you choose depends on how your expense invoice files are generated.

### Configuration Steps

Use one of the following methods to upload your CSV file.

**Method 1: Manual upload using File Upload utility**

Use this method when you manually prepare CSV files or receive them via email.

1. Click the **Frameworks Menu** and navigate to **Utilities > File Upload** from the navigation tree.
2. Navigate to your designated import directory by clicking the **Folder** icon.
3. Click **Upload File** to begin the upload process.
4. In the **File Upload** window, either:
  - Click **Browse** to search for your CSV file using the file explorer, or
  - Drag and drop your CSV file within the dotted outline.
5. Verify the **File Name** section displays the correct file name.
6. Click **Upload** to upload the file to the server.

**Method 2: Automated download using FTP Scheduler**

Use this method when your expense supplier provides files via SFTP and you want to automate the download process. The [FTP Scheduler](https://sterlandsupport.atlassian.net/wiki/spaces/FRAM/pages/218857486) automatically downloads CSV files from a remote SFTP site directly to your designated import directory. This is ideal when your expense supplier publishes files to an SFTP server, you want to eliminate manual file handling, or files are generated on a regular schedule by an external system.

1. Click the **Frameworks Menu** and navigate to **System Administration > Task Scheduler > Schedulable Tasks > FTP Scheduler**.
2. On the **Scheduled FTP Settings** tab, configure the connection:
  - **User Name** and **Password:** Enter the username and password for the supplier's SFTP server.
  - **Host Order Directory:** Enter the directory path on the remote SFTP site where files are located.
  - **FTP Site** and **Port:** Enter the server address and port number.
  - **Script Path:** Update the path to use the `fw_sftp_poll.sh` script to download files from remote sites.
  - **File Path:** Enter the same path you configure in the **Directory to Scan** field for the **Import CSV Expense Invoices** task.
3. On the **Schedule** tab, schedule the FTP task to run before your import task runs, allowing time for files to download. Update the **Task Description** field to help identify why you configured the task to run.
4. Click **Submit** to activate the FTP schedule.

> ⚠️ - You can upload multiple files with a total size limit of 500 MB.
> ⚠️ - Both methods require a folder to exist on the server before uploading. Refer to [File Upload](https://sterlandsupport.atlassian.net/wiki/spaces/FRAM/pages/28404710) to create a new directory if required.
> ⚠️ - We recommend the FTP Scheduler runs at least 15–30 minutes before the **Import CSV Expense Invoices** task to allow sufficient time for file downloads. Refer to [FTP Scheduler](https://sterlandsupport.atlassian.net/wiki/spaces/FRAM/pages/218857486) for more information.

### Result

The scheduled task processes the file during its next scheduled run.

---

## 3. Configure the Import

The import is configured once by your system administrator or designated user. Once configured, the scheduled task runs automatically at regular intervals.

### Configuration Steps

![image-20260320-084706.png](media://86b1192d-35af-4c5d-bbf8-16259e5ca118)

1. Click the **Frameworks Menu** and navigate to **Payables > Utilities & Scheduled Tasks > Import CSV Expense Invoices** from the navigation tree.
2. On the **Import Criteria** tab, configure the following fields:
  - **Company:** Select the company for which invoices will be imported. The **Company** drop-down menu displays all companies available to the logged-in user. The default selection is the current session company.
  - **Directory to Scan:** Enter the full path to the directory where CSV files will be placed for import (example: `/frameworks/tenants/feature/dmp/` or `/frameworks/tenants/feature/dmp/ExpenseInvoices`). The system monitors this location for new files.
  - **Archive Directory:** Enter the full path to the directory where processed CSV files will be moved after successful import (example: `/frameworks/tenants/feature/dmp/archive`). This maintains a record of imported files and prevents the same file from being processed multiple times.
  - **Filename/Pattern:** Specify the filename or filename pattern for files to be imported (example: `SupplierExpenseInvoices.csv`). Use wildcards if needed to match multiple files.
  - **Post Invoices:** Enable this checkbox to automatically post the imported invoices to the General Ledger. When disabled, invoices are created but remain unposted, allowing for review before posting.
  - **Report Only:** Enable this checkbox to perform a validation check without creating invoice records. The system validates all data in the CSV file and reports any errors or warnings, but does not create invoice records in Frameworks or move files to the archive directory. The **Post Invoices** checkbox is disabled while **Report Only** is enabled. Use **Report Only** to test your CSV file structure and identify data issues before committing the import.

> ⚠️ There is no facility to include attachments in the CSV import. When the system flag **APSuppInvAtt** is enabled, the following behaviour applies:
> ⚠️ 
> ⚠️ - When **Post Invoices** is enabled, a log error is generated and invoices are created in **Expense Invoice Entry** but are not posted.
> ⚠️ - When **Report Only** is enabled, the error log indicates that there is no attachment.
> ⚠️ 
> ⚠️ When **APSuppInvAtt** is disabled, invoices are imported and posted as normal.

> ✅ Refer to [APSuppInvAtt](https://sterlandsupport.atlassian.net/wiki/spaces/FSS/pages/590479366) for more information.

### Result

The import is configured and ready to be scheduled.

---

## 4. Schedule the Import

Once the import criteria are configured, schedule the task to run automatically at regular intervals. You can create multiple scheduled tasks with different configurations if you need to import different CSV file types or from different suppliers.

### Configuration Steps

![image-20260320-084732.png](media://0e7a4c1f-87bb-4add-bfd4-375429f0e959)

1. Click the **Schedule** tab.
2. Configure the schedule settings:
  - **Task Description:** Enter a meaningful description that identifies this specific import task.
  - **Execute By:** Select the user account that will execute the task.
  - **Frequency:** Set how often the task runs. Options are One time, Daily, Weekly, Monthly or Repeating.
  - **Start:** Set the date and time when the task first runs.
  - **Time Zone:** Select the time zone for the scheduled task.
  - **Send Notification:** Enable this checkbox to send a notification when the task completes.
  - **Notify:** Enter the user to notify when the task completes.
  - **Send Email:** Enable this checkbox to send an email notification when the task completes.
3. Click **Submit** to save the schedule and activate the task.

> ⚠️ When scheduling multiple import tasks for different suppliers or invoice types, ensure each task has a unique and descriptive **Task Description**. This makes it easier to monitor and troubleshoot individual tasks in the Task Scheduler Queue.

### Result

The scheduled task is active and runs at the configured intervals. The **Output** tab displays the **Task ID**, a **Log** of task activity and any **Generated Reports** produced by the import.

> ✅ Refer to [Scheduled Task - Scheduling and Output](https://sterlandsupport.atlassian.net/wiki/spaces/FRAM/pages/28402256) for detailed information about scheduling tasks.

---

## After Setup: Daily Workflow

Once the import is configured and scheduled, your typical daily workflow is: prepare your CSV file, name it `SupplierExpenseInvoices.csv` (or match your configured filename pattern), upload it to the designated **Directory to Scan**, and the scheduled task processes it automatically at the next scheduled run. Review the **Task Scheduler Queue** to confirm successful processing and check the **Archive Directory** to verify the file was moved after processing.

---

> ✅ ## Related Information
> ✅ 
> ✅ - [Monitor CSV Expense Invoice Import](https://sterlandsupport.atlassian.net/wiki/spaces/FRAM/pages/597524495) - Viewing task progress and resolving error messages.
> ✅ - [File Upload](https://sterlandsupport.atlassian.net/wiki/spaces/FRAM/pages/28404710) - Uploading files to the Frameworks server.
> ✅ - [Task Scheduler](https://sterlandsupport.atlassian.net/wiki/spaces/FRAM/pages/28395250) - Managing and monitoring scheduled tasks.
> ✅ - [Expense Invoice Entry](https://sterlandsupport.atlassian.net/wiki/spaces/FRAM/pages/28404012) - Manually creating expense invoices.
> ✅ - [FTP Scheduler](https://sterlandsupport.atlassian.net/wiki/spaces/FRAM/pages/218857486) - Automating file downloads from SFTP.
> ✅ - [APSuppInvAtt](https://sterlandsupport.atlassian.net/wiki/spaces/FSS/pages/590479366) - Mandatory attachment flag for supplier invoice posting.

---

## System Settings Reference

| **Setting** | **Type** | **Description** |
| --- | --- | --- |
| **APSuppInvAtt** | Flag | When **APSuppInvAtt** is enabled, attachments are mandatory when posting supplier invoices. CSV imports cannot include attachments, so invoices may be created but not posted. |