Skip to main content

Add Documents to an Import - Upload a ZIP and Link It

Import your expense data first, then send the invoices and receipts afterwards as a single ZIP archive. VAT4U matches the files to the expenses, shows you the matching before linking and then attaches each document to corresponding expense.

Written by VAT4U Support

What this is for

Many customers have their expense data in one place and the scans in another. The data comes out of an ERP, a travel tool or an accounting system as a CSV or Excel file. The documents sit in a folder on a network drive, in a DMS export, or in a ZIP somebody sent over - not behind a URL VAT4U can reach.

Splitting the work in two is the natural way to import both:

  1. Import the data. Get the expenses into VAT4U - amounts, dates, vendors, countries, categories. This is the part that decides what is potentially claimable.

  2. Add the documents. Upload the expense documents as a ZIP and let VAT4U attach each file to the expense it belongs to.

The only thing phase 1 has to do for phase 2 to work is tell VAT4U where to look for the file name of each expense's document. You map a column that matches (see how matching works below) the file name as Document URL in the import wizard, and instead of a url address you simply put the file name - INV-10231.pdf, or INV-10231, or whatever your folder calls it.

VAT4U will try to fetch those documents at import time, as it does for any import with a Document URL column, and will not be able to do - a bare file name is not something it can download. That is expected. Those rows end up marked as failed in the import's document statuses, and they are exactly the rows this feature fills in.


Before you start

Three things have to be true, or the upload option will not be offered:

The import included documents

It was run as I have both data and scans/images, with a Document URL column mapped. An import run for data only has nothing to attach documents to

The data import has finished

The import status is Success. Documents can only be linked to expenses that exist

Your documents are named after the Document URL values

See How matching works below - the names do not have to be identical, but they do have to be recognisable

Preparing the ZIP

Maximum size

3 GB per archive

More than 3 GB?

Split the documents into several archives and repeat the upload. There is no limit on the number of archives per import

Folders

Allowed, up to 5 levels deep. The folder structure is ignored — only file names are matched

File types

PDF, JPG, JPEG, PNG, TIF, TIFF, HEIC, HEIF, BMP, GIF

Password-protected archives

Not supported. Entries that are encrypted are skipped

Anything else in the archive - a spreadsheet, a .msg file, macOS __MACOSX junk, hidden files, empty files - is skipped and listed back to you with the reason, so you can see what was ignored rather than wonder.

Uploading and linking

1. Open the import


Open the Imports list, find the import and open it. In the Documents import status section you will see Upload documents (ZIP).
​

The same button is available inside the Document statuses table, next to Retry failed and Fetch canceled documents - use whichever you have open.

2. Upload the archive

Drag the ZIP onto the drop area, or click to pick it. The file is uploaded straight to secure storage - it does not pass through the application - and you get a progress bar with the transferred size.

Keep the window open until the upload finishes. Closing it cancels the upload; you will be asked to confirm before it does.

If you have uploaded archives for this import before, they are listed under Previous uploads for this import with their status and result, and you can reopen any of them.

3. Wait for the matching

VAT4U unpacks the archive and matches every file against the Document URL values of the import. For a large archive this takes a few minutes.

You can close the window and come back later - the next time you open Upload documents (ZIP) for this import, the archive is reopened where it left off.

4. Review the matching

Once the analysis is done you get a summary and a preview table. Nothing has been linked yet.

The summary tells you how many of the documents with a failed fetch found a file, how many files in the archive were usable, how many matched and how many did not, and how many files were skipped - with a Show skipped files link listing each one and why.

The table has four columns:

Column

What it shows

Invoice ID

The expense the document will be attached to, as a link that opens the expense in a new tab. Use it to spot-check a few rows before importing everything

Imported Document URL

The value that came in from your file - what VAT4U searched for

Files that will be linked

The file(s) found in the archive, with their size. More than one file means they will be merged into a single document, in archive order

Status

Import one to link that row on its own; afterwards Linking…, Linked, or Failed with a Retry button

5. Link the documents

Click Import all (N) to link every pending row, or Import one on a single row to try it first.

The table then refreshes itself every few seconds. Rows tick green as their document is attached. You can leave the window and come back - the linking continues in the background.

How matching works

A file matches when its name answers the imported Document URL value. Comparison ignores upper and lower case, and the folder the file sits in is irrelevant.

Imported value

Matches a file called

Why

INV-10231.pdf

INV-10231.pdf

Identical

INV-10231

INV-10231.pdf

Same name, extension supplied by the file

INV-10231.pdf

scan_INV-10231_page2.pdf

The file name contains the imported name

/exports/2025/INV-10231.pdf

INV-10231.pdf

Folders and URL prefixes are stripped — only the file name is used

INV-10231.pdf___INV-10231-b.pdf

both files, merged into one document

___ separates several documents for one expense

Two consequences worth knowing:

  • One file can serve several expenses — a shared receipt split across expenses is linked to each of them.

  • One expense can take several files — they are merged into a single document in the order they appear in the archive.

Values shorter than four characters only ever match exactly. Otherwise an imported value of 12 would attach itself to half the archive.

What happens after a document is linked

Nothing special, and that is the point. A document linked from a ZIP goes through the same processing as a document VAT4U downloaded itself:

  • several files merged into one document

  • images converted to PDF

  • e-invoices detected and their data read

  • the import's smart checks run on the expense

So the end result is indistinguishable from an import where the documents had been fetched in the first place.

Good to know

Only failed documents are offered. Documents that are already attached, or still being fetched, never appear in the table and are never replaced. You cannot overwrite a good document by accident. If a file in your archive matched an expense that already has its document, it is counted in the summary as skipped.

You can upload as many archives as you like. Each one is analysed against whatever is still missing at that moment. This is how you cover more than 3 GB, and how you send a second batch after chasing up the documents that were missing from the first.

The archive itself is not kept. Once it has been unpacked and matched, the ZIP is deleted. The documents extracted from it are kept, as expense documents.

Nothing is linked until you ask. Uploading and reviewing changes nothing. The preview is a genuine dry run.

Troubleshooting

What you see

What it means

This import has no remote documents to link

The import was run without a mapped Document URL column, so there is nothing to match file names against. The documents have to be added to the expenses another way, or the import re-run with the column mapped

Documents can be uploaded once the data import has completed

The data import is still running or did not succeed. Wait for it to finish

The table is empty, or far fewer rows than expected

The file names in the archive do not resemble the imported Document URL values. Open the Document statuses table, look at a few failed rows, and compare what is in the Document URL column with what your files are actually called

Files appear under "skipped files"

They are not an accepted document type, are empty, password-protected, hidden, nested deeper than five folders, or larger than 200 MB. The reason is shown next to each one

This archive was never fully uploaded

The upload was interrupted. Start again and keep the window open until it completes

A row shows Failed

The document was found but could not be processed — a corrupt file is the usual cause. Hover the status for the reason and use Retry

Did this answer your question?