How It Works
Open the expense form in create mode
The “Scan Receipt” button is only available when creating a new expense (not when editing).
Upload a receipt photo
- Supported formats: JPEG, PNG
- Maximum file size: 10MB
- The image is uploaded to S3 via a presigned URL
Textract analyzes the receipt
AWS Textract’s AnalyzeExpense API extracts:
| Field | Textract Source |
|---|---|
| Amount | TOTAL field |
| Date | INVOICE_RECEIPT_DATE field |
| Description | VENDOR_NAME field |
| Category | Keyword-based suggestion from vendor name |
Category Suggestions
Textract doesn’t directly categorize expenses. TaxHomeBase uses keyword matching on the vendor name to suggest a category:| Keywords | Suggested Category |
|---|---|
| hotel, inn, lodge, airbnb | lodging |
| gas, fuel, shell, bp | travel |
| restaurant, cafe, food | meals |
| parking, garage | parking |
| pharmacy, medical | supplies |
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)
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