Set Up Merchant and Line-Item Fields for Receipts
Configure receipt fields in the dashboard — capture merchant details, tips, taxes, and line items from photos or scans without manual entry.
Ready to set this up? Sign up for PerfectParser and get 20 free credits — no credit card required.
What this guide helps you do
This guide shows how to configure a receipt parser in PerfectParser, capture merchant and payment details, run a test batch, and export expense data. Skip the AI prompt on the first pass if you want PerfectParser to discover every field visible on the receipt before you refine the schema.
Why receipts are hard to parse
Receipts are among the noisiest documents in expense workflows. Thermal paper fades, phone photos crop the edges, and handwritten totals appear on vendor copies. Tips and service charges sit in inconsistent positions — sometimes above tax, sometimes folded into the total — and rounding differences of a cent or two are common. Merchant names may be truncated on narrow rolls, and transaction time is often missing entirely on older POS prints. Item lines on restaurant receipts frequently omit quantity, listing only description and price. A parser schema that treats every receipt like a structured invoice will miss tips or misread faded digits unless field descriptions call out these patterns explicitly.
Recommended Fields
We suggest configuring the following schema fields for your Receipt Parser to capture all essential transaction data.
| Field Name | Type | Description |
|---|---|---|
merchant_name | Text | The name of the store, restaurant, or vendor (e.g., Starbucks, Uber). |
transaction_date | Text | The date the receipt was issued. |
transaction_time | Text | The time of the transaction (if available). |
merchant_address | Text | The physical address or location of the merchant. |
subtotal | Number | The transaction subtotal before taxes and gratuities. |
tax_amount | Number | The sales tax or VAT amount charged. |
tip_amount | Number | Gratuities or tips added to the bill (e.g. for restaurant or taxi receipts). |
total_amount | Number | The final payment amount charged. |
payment_method | Text | The payment type (e.g., Visa 1234, Cash). |
items | Table | Table containing description, quantity, and amount for each purchased item. |
AI Prompt (Optional)
Use this only when you want to guide auto-detect toward a specific set of fields.
If you want PerfectParser to discover additional fields on its own, leave the AI Prompt (Optional) box blank for the first pass, review the detected schema, then add a prompt only if you need tighter consistency.
When you do use a prompt, copy and paste the following instructions into the AI Prompt (Optional) field during setup:
Set up this parser in the dashboard
Create a parser
Go to Parsers → New Parser in the dashboard. Give it a name like "Receipt Parser" and optionally select the document category.
Upload a sample document
Drag and drop a representative receipt (PDF, PNG, or JPEG). Use a real file from your expense workflow — the AI uses it to learn where merchant name, totals, and item lines appear.
Detect fields or use standard fields
Paste the AI Prompt from the section above into the AI Prompt (Optional) box if you want tighter field mapping, then click Auto-Detect. To discover more fields automatically, leave the prompt blank and click Auto-Detect. Or skip auto-detect and add fields manually using the Recommended Fields table above.
Review and save your schema
Check that monetary fields (subtotal, tax_amount, tip_amount, total_amount) are Number, not Text. Confirm transaction_time is included if your policy requires time-of-day. Edit any field names or descriptions, then click Save.
Run a test batch
Navigate to Bulk Extraction, choose how your files are organised, upload a small test set of receipt images, and click Extract All Files. Review the results in Batch History and export to CSV or Excel.
Common mistakes
- Uploading a crisp PDF sample when production files are cropped phone photos — field detection trained on one quality level often underperforms on the other.
- Omitting
tip_amountand expecting it to appear insidetotal_amountwithout a separate field for gratuity reporting. - Skipping
transaction_timewhen your expense policy requires time stamps for meal or mileage audits. - Storing faded thermal totals as Text because auto-detect misclassified them — fix the type to Number and add a field description noting "final amount after tax and tip".
Next steps
Test your first extraction free — sign up for PerfectParser, no credit card needed.
FAQs
Do I need a sample receipt to set up this parser?
Yes. Upload a receipt that reflects your typical source — thermal print from a restaurant, a cropped phone photo, or a scanned PDF. The AI learns field placement from that sample, so match the format you process most often.
Should I add a separate tip_amount field?
Yes, if you process restaurant or taxi receipts. Tips often appear below the tax line and are easy to merge into total_amount if you do not define tip_amount explicitly. Keep subtotal, tax_amount, tip_amount, and total_amount as separate Number fields.
How many credits does setup and a test extraction use?
Parser setup is free. Each page or image processed costs 1 credit. A single receipt photo is 1 credit. New accounts include 20 free credits to validate your schema before running expense batches.
Looking for product features and use cases?