This project uses AWS Textract, DynamoDB, SES, and S3 to automatically process receipt images uploaded to an S3 bucket. When a new receipt is uploaded, this Lambda function:
- Extracts structured data using Amazon Textract
- Saves the extracted data to DynamoDB
- Sends an HTML-formatted email notification using Amazon SES
- Triggered automatically by new S3 uploads
- Intelligent field extraction using
analyze_expenseAPI from Textract - Saves full receipt metadata and line items to DynamoDB
- HTML email notifications with vendor, total, date, and item breakdown
- Resilient error handling with clear logs
- Easy to configure using environment variables
- AWS Lambda
- Amazon Textract
- Amazon S3
- Amazon DynamoDB
- Amazon SES
- AWS account
- Verified email in Amazon SES (for both sender and recipient)
- IAM Role with permissions for:
- Textract:
textract:AnalyzeExpense - S3:
s3:GetObject,s3:HeadObject - DynamoDB:
dynamodb:PutItem - SES:
ses:SendEmail
- Textract:
Configure the following Lambda environment variables:
| Variable | Description |
|---|---|
DYNAMODB_TABLE |
Name of the DynamoDB table (e.g. Receipts) |
SES_SENDER_EMAIL |
Verified SES sender address |
SES_RECIPIENT_EMAIL |
Destination email for receipt summaries |
Automated-Receipt-Processing-System
├── lambda.py
├── Lambda Function Explanation.pdf
├── README.md
└── screenshots/










