Skip to main content
TaxHomeBase uses AWS Textract (OCR) to extract data from receipt photos and auto-fill expense fields. This saves time and helps build an IRS-compliant paper trail.

How It Works

1

Open the expense form in create mode

The “Scan Receipt” button is only available when creating a new expense (not when editing).
2

Upload a receipt photo

  • Supported formats: JPEG, PNG
  • Maximum file size: 10MB
  • The image is uploaded to S3 via a presigned URL
3

Textract analyzes the receipt

AWS Textract’s AnalyzeExpense API extracts:
FieldTextract Source
AmountTOTAL field
DateINVOICE_RECEIPT_DATE field
DescriptionVENDOR_NAME field
CategoryKeyword-based suggestion from vendor name
4

Review auto-filled fields

Only empty fields are populated — if you’ve already entered an amount or date, those values are preserved. Review the auto-filled data and adjust as needed.

Category Suggestions

Textract doesn’t directly categorize expenses. TaxHomeBase uses keyword matching on the vendor name to suggest a category:
KeywordsSuggested Category
hotel, inn, lodge, airbnblodging
gas, fuel, shell, bptravel
restaurant, cafe, foodmeals
parking, garageparking
pharmacy, medicalsupplies
If no keywords match, the category field is left empty for you to select manually.

Viewing Receipts

After saving an expense with a receipt:
  • A camera icon appears on the expense card
  • Click it to open the receipt in an in-app modal
  • The modal loads the image via a presigned S3 download URL
  • Both the Expenses and Expense Reports pages use the same receipt viewer

Receipt Substantiation

The IRS requires receipts for:
  • All expenses over $75
  • All lodging expenses (regardless of amount)
TaxHomeBase’s Expense Reports Insights tab shows your receipt coverage and flags items that are IRS-substantiation requirements without receipts.

Error Handling

The scan process has step-specific error handling:
  • Presign failure — Problem generating the upload URL
  • Upload failure — Problem uploading to S3
  • Textract failure — Problem analyzing the receipt
Each step shows a distinct error message with an inline retry button.