>

Documentation

Learn everything you'll ever need to get the most out of BillKit

>
Invoice Processing

BillKit's core feature is its ability to automatically extract expense data from your invoice files using artificial intelligence. Instead of manually typing in vendor names, amounts, dates, and line items, you simply upload your invoices and let BillKit do the work for you. This guide explains how to set up AI processing and use it effectively.

What is AI Invoice Processing?

AI invoice processing uses machine learning models from Claude (Anthropic) or OpenAI to read your invoice files and extract structured data automatically. Think of it as having a data entry assistant that can read PDFs and images, understand what they contain, and create expense records in seconds.

What AI extracts from invoices:

  • Vendor name, address, email, phone, tax ID, and website
  • Invoice number, PO Number and any reference numbers
  • Invoice date and due date
  • Subtotal, tax amount, tax rate, shipping, discount, and total
  • Currency
  • Payment method
  • Line items (individual products/services on the invoice)
  • Suggested category (based on line item analysis)

How it works:

  1. You upload invoice files (PDF, PNG, JPEG, or HEIC)
  2. Files are queued and validated
  3. You click "Process All" to start AI extraction
  4. BillKit sends each file to your chosen AI service (Claude or OpenAI)
  5. The AI reads the invoice and returns structured JSON data
  6. BillKit creates an expense record with the extracted information
  7. If AI confidence is below the set threshold (default 60%) or category/vendor cannot be reliably determined, the expense is flagged for manual review

Processing speed:

  • Each invoice typically takes 2-6 seconds to process
  • You can process files singly (manual) or all (in batches of 3 at a time)
  • Multiple invoices can be uploaded at once

Setting Up AI Processing

Before you can process any invoices, you need to set up your AI provider and API key.

Step 1: Choose an AI Provider

BillKit supports two AI providers:

Anthropic (Claude)

  • Native PDF support (up to 32 MB, 100 pages)
  • Image support (JPEG, PNG, WebP)
  • Cost: ~£0.01-£0.04 per invoice (approximately)
  • Recommended for best invoice extraction accuracy

OpenAI (ChatGPT)

  • Native PDF support (up to 32 MB, 100 pages)
  • Image support with automatic resizing
  • Cost: ~£0.009-£0.03 per invoice (approximately)
  • Recommended for faster processing speed

Which should you choose?

Both work exceptionally well for invoice processing. Claude tends to be slightly more accurate for complex invoice layouts, while OpenAI is often marginally faster. Try either one - you can switch providers anytime in settings without losing your existing data.

Set your AI Provider and API Key

AI providers require an API key - think of this as a password that lets BillKit send your invoices to their service for processing. You need to sign up for an account and create an API key.

Check the settings and preferences documentation to learn how to setup your AI Provider of choice.


Uploading Invoice Files

Now that your AI is configured, you can start uploading invoices.

Supported File Types

BillKit supports four file formats:

PDF (.pdf)

  • Up to 100 pages per file
  • Maximum 32 MB file size
  • Multi-page PDFs are fully supported (all pages sent to AI)
  • Best for official invoices from vendors

PNG (.png)

  • Image format for screenshots and scanned invoices
  • Maximum 32 MB file size
  • Transparency supported

JPEG (.jpeg, .jpg)

  • Image format for photos and scanned invoices
  • Maximum 32 MB file size
  • Most common format for mobile phone photos

HEIC (.heic)

  • Apple's high-efficiency image format (iPhone/iPad photos)
  • Maximum 32 MB file size
  • Automatically converted to JPEG before AI processing

File size warnings:

  • Files over 10 MB show a warning (still accepted, but may take longer to process)
  • Files over 32 MB are rejected
  • PDFs with more than 100 pages are rejected

How to upload files

You can add files to BillKit using two different methods.

Method 1: Drag and Drop

  1. Ensure a business is selected (check business name in sidebar)
  2. Click "Upload Files" in the sidebar under Process Files section
  3. Find your invoice(s) file in Finder
  4. Drag the file(s) from Finder onto the drop zone area
  5. The drop zone highlights when you drag files over it
  6. Release the mouse button to drop the file(s)

The file(s) appear in the table below the drop zone.

Method 2: Click to Browse

  1. Click "Upload Files" in the sidebar
  2. Click anywhere on the drop zone area
  3. A file picker dialog opens
  4. Navigate to your invoice file(s)
  5. Click "Open"

The file(s) appear in the table below the drop zone.

Multiple File Upload

Both methods above support multiple files at once:

  • Drag and drop: Select multiple files in Finder and drag them all at once
  • File picker: Hold Command (⌘) and click multiple files, then click "Open"

All selected files are added to the upload queue.


Understanding the Upload Queue

When you upload files, they appear in a table showing their properties. This is your upload queue - files waiting to be processed.

Table columns

  • File Name - Original file name (e.g. "Invoice_2025_001.pdf")
  • Attributes - File properties (e.g. "10 pages" for PDFs, resolution for images)
  • File Size - Size in KB or MB (e.g. "2.3 MB")
  • File Type - Format (PDF, PNG, JPEG, HEIC)
  • Status - Either "Valid" (ready to process) or an error message in red
  • Action - "Delete" button to remove file from queue

Valid files:

Files that pass validation show "Valid". These can be processed.

Invalid files

Files that fail validation show as "Invalid" in red and are often due to:

  • File too large (max 32 MB)
  • PDF has too many pages (max 100)
  • Invalid file type
  • File is corrupted or unreadable

Hover your mouse over the "Invalid" text to see the the reason for the file not being valid.

Duplicate files

BillKit recognises when attempting to upload or process duplicate files. It matches these based on the file name and the file size. if both are the same, this constitutes a duplicate. When uploading a duplicate, the Status colum will show as "Duplicate" in red. Duplicate files cannot be processed.

Invalid files cannot be processed - you'll need to remove them or fix the issue.

Removing files

Click the "Delete" button in the Action column to remove a file from the queue. A confirmation dialog will appear. Continue deletion by clicking the "Delete" button.

Clearing all files

If you want to remove all files from the queue at once, click the "Clear All" button in the toolbar at the top (trash can icon). A confirmation dialog appears showing the count of files to be deleted. Continue deletion by clicking the "Clear All" buton.


Processing Invoices

Once you have valid files in the upload queue, you're ready to extract expense data.

Processing All Files

This is the most common workflow - process all valid files in one batch.

To process all files

  1. Ensure you have valid files in the upload queue
  2. Click the "Process Files" button in the toolbar at the top right
  3. A confirmation dialog appears showing how many files will be processed
  4. Review the count
  5. Click "Process Files" to confirm

After clicking Process Files:

  • Validates all files in the queue
  • Moves valid files to the Processing Queue
  • Shows a success message overlay
  • Automatically navigates you to the Queued file screen

Invalid files remain in the upload queue and are not processed.


Understanding the Processing Queue

The Queued Files screen shows files currently being processed or waiting to be processed by AI.

To view the processing queue:

  • Click "Queued Files" in the sidebar (under Process Files)

Table columns

  • File Name - Original file name
  • Attributes - File properties (pages, resolution, etc.)
  • File Size - Size in KB or MB
  • File Type - Format (PDF, PNG, JPEG)
  • Status - Current processing state (see below)
  • Added - When the file was added to the queue
  • Delete - Remove file from queue (only available when not processing)
  • Process - Process individual file, or retry if failed

Processing statuses

  • Pending - Waiting to be processed (shows "Process" button)
  • Processing - Currently being sent to AI (shows spinner/progress indicator)
  • Completed - Successfully processed and expense created (file removed from queue automatically)
  • Failed - Processing failed with error (shows "Retry" button, error message in red on hover)

Real-time updates

The table updates automatically as files are processed. You'll see status changes in real-time without refreshing.


Processing Individual Files

Instead of processing all files at once, you can process them one at a time.

To process a single file:

  1. Click "Processing Queue" in the sidebar
  2. Find the file you want to process in the table
  3. Click the "Process" button in the Process column
  4. The status changes to "Processing" with a spinner
  5. Wait for processing to complete (2-7 seconds typically)
  6. The file disappears from the queue when complete (expense created)

When to use single-file processing:

  • Testing AI extraction with one invoice before processing many
  • Processing high-priority invoices first
  • Retrying a failed file after fixing an issue

Handling Failed Processing

Sometimes AI processing fails. Common reasons:

  • Network connection interrupted
  • AI service temporarily unavailable
  • Invoice file is corrupted or unreadable
  • Invoice is in an unsupported language
  • API key is invalid or expired
  • Invoice format is too complex for AI to parse

When processing fails

  • The file remains in the Processing Queue
  • Status shows "Failed" in red
  • Hover over the status to see the error message (tooltip)
  • A "Retry" button appears in the Process column (orange colour)

To retry a failed file

  1. Click the "Retry" button in the Process column
  2. The file is re-processed from scratch
  3. Status changes to "Processing" again
  4. Wait for completion

If retry fails again

  • Check your API key is valid (Settings → AI tab)
  • Ensure you have internet connectivity
  • Try manually creating the expense instead (see Managing Expenses guide)
  • Check the file isn't corrupted by opening it in Preview/Adobe Acrobat

Processing Completion and Next Steps

When all files in the Processing Queue have been processed:

Automatic success overlay

A large success message appears over the screen:

  • Green checkmark icon
  • All files processed message
  • Redirecting to expenses... subtitle
  • Overlay fades after 3.5 seconds

Automatic navigation

BillKit automatically takes you to either:

  • Pending Review screen - If any processed expenses need review
  • All Expenses screen - If none of the processed expenses need review

You can immediately review expenses without manually navigating.


AI Confidence Scores

Every expense created by AI processing includes a confidence score from 0-100. This indicates how certain the AI is about the extracted data. Please review the confidence score setting documentation to learn how to configure your threshold.

How confidence is calculated

The AI considers:

  • How clear the text is in the invoice (scanned vs typed)
  • Whether expected fields are present (vendor name, total, date)
  • Consistency between fields (subtotal + tax = total?)
  • Vendor matching confidence (how well the vendor name matches existing vendors)
  • Category suggestion confidence (how well line items match category patterns)

What happens with low-confidence expenses

Expenses that are below the set threshold (default 60%):

  • The expense is created but flagged as required required
  • It appears in the "Pending Review" screen
  • You must manually review it before it's considered complete
  • A badge count appears next to "Pending Review" in the sidebar

What happens with high-confidence expenses

Expenses that meet or exceed the set threshold (default 60%):

  • Are created and ready to use immediately
  • Do not appear in Pending Review
  • Appear in Expenses list right away
  • Can still be edited if you spot errors later

Vendor Matching

During AI processing, BillKit attempts to match the extracted vendor name against your existing vendors.

How Vendor Matching Works

Exact match:
If the AI extracts "Amazon UK" and you have a vendor called "Amazon UK", it matches perfectly.

Fuzzy match:
If the AI extracts "Amazon UK Ltd" and you have a vendor called "Amazon", BillKit recognises these as the same and uses your existing vendor.

Multiple partial matches:
If the AI finds multiple possible matches (e.g. "Amazon", "Amazon UK", "Amazon Ltd"), it chooses the closest match based on string similarity.

No match found:
If the AI extracts "Joe's Plumbing" and you have no vendor with that name, BillKit saves the expense under your default vendor, but extracts and stores as much vendor information available. This information can then be used to create a new vendor during the review process.

Improving vendor matching

  • Use full official company names for vendors (not abbreviations)
  • Add comprehensive vendor information (address, tax ID, website) to help future matching

Category Matching

During AI processing, BillKit attempts to match the invoice with a category you already have. If AI is unable to decide the correct category it will record a suggested category which can be created during review.

How Category Suggestions Work

The AI analyses the line items on the invoice to suggest a category. For example:

  • If line items mention "printer paper", "staplers", "pens", it might suggest "Office Supplies"
  • If line items mention "hotel", "flights", "taxi", it might suggest "Travel"
  • If line items mention "Facebook Ads", "Google AdWords", it might suggest "Marketing"

Category matching:

  • BillKit sends a list of all available categories to the AI
  • AI will determine the most suitable category from the list
  • If AI decides that none of the categories related to the expense are suitable:
    • The business default category is used
    • AI will suggest a new category which can be used during review

Low-confidence category suggestions:

If AI decides that none of the categories related to the expense are suitable, it is auto flagged as review required.

Improving category suggestions:

  • Create categories with descriptive names that match invoice terminology (e.g. "Marketing & Advertising" not just "Marketing")
  • Use consistent category names across all expenses
  • Manually correct miscategorised expenses - this helps you learn which patterns lead to which categories

Best Practices

File Organisation Before Upload

Name your files consistently:

  • Use descriptive file names like "2025-11-Amazon-Office-Supplies.pdf"
  • Include date, vendor, and expense type in file name
  • This helps when searching and sorting later

Keep files small:

  • Files under 5 MB process fastest
  • Consider splitting multi-page PDFs if they exceed 10 MB
  • Use JPEG instead of PNG for photos (smaller file size)

Use high-quality scans:

  • Ensure scanned invoices are readable (not blurry or cut off)
  • Use at least 300 DPI for scans
  • Avoid photos taken at angles (scan flat or use document scanning app)

Processing Strategy

Process in batches:

  • Upload 10-20 invoices at a time for efficient processing
  • Don't upload 100+ invoices at once (harder to review if errors occur)
  • Process urgent invoices first, then batch-process the rest

Check the first few:

  • When processing invoices from a new vendor for the first time, review the first 2-3 carefully
  • This helps you spot any consistent extraction errors early
  • Adjust your expectations for that vendor's invoice format

Regular processing:

  • Process invoices weekly or fortnightly (don't let them pile up)
  • Small regular batches are easier to review than large quarterly batches

Handling Edge Cases

Invoices in foreign languages:

  • Both Claude and OpenAI support many languages
  • Extraction accuracy may be lower for non-English invoices
  • Consider manually creating expenses for languages AI struggles with

Handwritten invoices:

  • AI struggles with handwritten text
  • Use typed/printed invoices whenever possible
  • For handwritten invoices, manually create expenses

Multi-currency invoices:

  • AI extracts the currency from the invoice
  • BillKit stores expenses in their original currency

Invoices with no clear total:

  • Sometimes quotes or proforma invoices don't show a final total
  • AI may struggle to extract amounts
  • These will likely be flagged for review - add amounts manually

Credit notes (negative amounts):

  • AI extracts credit notes correctly
  • Amounts will be negative (e.g. -£50.00)
>