Expense capture
Turn receipts and expense details into a report ready for review.
Expense reporting software for receipt capture, policy checks, approval routing, reimbursements and corporate card reconciliation.
| Report Number | Report Title | Report Date | Total Amount | Violation Count | Status |
|---|---|---|---|---|---|
| ER-55874 | Draft er-862 | 23 Sep | 35,007.68 | 40 | Draft |
| ER-85238 | Held er-818 | 09 Sep | 6,045.03 | 24 | Held |
| ER-67722 | Rejected er-948 | 06 Sep | 22,364.51 | 40 | Draft |
| ER-55379 | Draft er-233 | 21 Sep | 20,652.06 | 37 | Held |
| ER-50233 | Held er-299 | 27 Sep | 17,294.00 | 25 | Draft |
| ER-10944 | Rejected er-608 | 24 Sep | 35,083.61 | 14 | Rejected |
Illustrative records derived from the system specification.
Finance teams, managers and employees managing business expenses and reimbursements.
Defined in the planned system specification.
Expense reporting software for receipt capture, policy checks, approval routing, reimbursements and corporate card reconciliation.
Turn receipts and expense details into a report ready for review.
Make expense rules clear before a report reaches approval.
Keep travel claims connected to their dates, routes and approved rates.
Give each expense decision a clear owner and a lasting record.
Track eligible claims from approval to confirmed payment.
Match company-card spending and close each statement with evidence.
| Report Number | Report Title | Report Date | Total Amount | Violation Count |
|---|---|---|---|---|
| ER-55874 | Draft er-862 | 23 Sep | 35,007.68 | 40 |
| ER-85238 | Held er-818 | 09 Sep | 6,045.03 | 24 |
| ER-67722 | Rejected er-948 | 06 Sep | 22,364.51 | 40 |
| ER-55379 | Draft er-233 | 21 Sep | 20,652.06 | 37 |
| ER-50233 | Held er-299 | 27 Sep | 17,294.00 | 25 |
| ER-10944 | Rejected er-608 | 24 Sep | 35,083.61 | 14 |
Business-purpose approval waits for the manager.
Expense review waits for the finance reviewer.
| Report Number | Report Title | Submitted At | Total Amount | Approved Amount |
|---|---|---|---|---|
| ER-16534 | Submitted er-832 | 25 Sep | 3,836.97 | 11,507.52 |
| ER-82134 | ApprovedByMgr er-981 | 06 Sep | 45,950.92 | 45,125.65 |
| ER-43114 | ApprovedByFinance er-860 | 24 Sep | 29,956.88 | 29,841.27 |
| ER-91233 | Reimbursed er-440 | 26 Sep | 24,046.83 | 24,374.49 |
| ER-13021 | Submitted er-322 | 17 Sep | 21,495.40 | 6,445.86 |
| ER-40914 | ApprovedByMgr er-745 | 28 Sep | 38,493.63 | 25,054.11 |
| Transaction Date | Merchant Name | Amount | MCC | Raw Description |
|---|---|---|---|---|
| 05 Sep | Merchant 409 | 35,930.81 | MCC-280 | Unmatched ct-756 |
| 11 Sep | Merchant 650 | 31,817.19 | MCC-100 | Unmatched ct-661 |
| 04 Sep | Merchant 105 | 29,046.56 | MCC-869 | Unmatched ct-515 |
| 13 Sep | Merchant 909 | 2,594.58 | MCC-624 | Unmatched ct-579 |
| 03 Sep | Merchant 670 | 22,332.89 | MCC-915 | Unmatched ct-296 |
| 14 Sep | Merchant 530 | 22,184.48 | MCC-110 | Unmatched ct-919 |
| Reconciliation Number | Card | Statement Period Start | Statement Period End | Statement Balance |
|---|---|---|---|---|
| CR-54661 | CC-8796 | 13 Sep | 15 Sep | 21,795.87 |
| CR-26417 | CC-9401 | 25 Sep | 29 Sep | 3,600.88 |
| CR-51544 | CC-2151 | 05 Sep | 10 Sep | 40,980.79 |
| CR-25316 | CC-4626 | 13 Sep | 17 Sep | 2,759.48 |
| CR-51237 | CC-5501 | 25 Sep | 29 Sep | 21,241.08 |
| CR-24213 | CC-1328 | 10 Sep | 16 Sep | 7,561.49 |
| Report Number | Submitter | Report Title | Report Date | Total Amount |
|---|---|---|---|---|
| ER-90491 | PP | Held er-648 | 18 Jun | 3,842.81 |
| ER-63663 | GL | Held er-632 | 18 Jun | 8,966.18 |
| ER-22035 | TZ | Held er-614 | 18 Jun | 46,418.60 |
| ER-87931 | AC | Held er-434 | 18 Jun | 20,575.53 |
| ER-19309 | HG | Held er-856 | 18 Jun | 22,546.44 |
| ER-43922 | BS | Held er-629 | 18 Jun | 41,150.53 |
| Reimbursement Number | Employee | Report | Amount | Reimbursement Method |
|---|---|---|---|---|
| RMB-19808 | GT | ER-90185 | 33,228.45 | PayrollAddOn |
| RMB-33536 | VG | ER-64844 | 30,552.70 | SeparateACH |
| RMB-51940 | YM | ER-49416 | 17,900.92 | PayrollAddOn |
| RMB-33995 | VH | ER-47144 | 3,077.92 | SeparateACH |
| RMB-71913 | XY | ER-31138 | 44,594.69 | PayrollAddOn |
| RMB-55913 | EX | ER-27270 | 35,337.56 | SeparateACH |
| Line Date | Report | Category | Vendor | Amount |
|---|---|---|---|---|
| 08 Sep | ER-10242 | EC-6248 | VND-221 | 37,007.35 |
| 12 Sep | ER-14711 | EC-1645 | VND-178 | 30,846.21 |
| 16 Sep | ER-18788 | EC-2884 | VND-611 | 34,879.19 |
| 13 Sep | ER-70528 | EC-2561 | VND-269 | 30,096.69 |
| 29 Sep | ER-47924 | EC-4158 | VND-431 | 45,705.71 |
| 16 Sep | ER-96819 | EC-5285 | VND-358 | 26,531.11 |
| Card | Transaction Date | Merchant Name | Amount | Matched Expense Line |
|---|---|---|---|---|
| CC-4293 | 04 Sep | Merchant 710 | 37,636.14 | EL-9010 |
| CC-8461 | 08 Sep | Merchant 206 | 40,270.17 | EL-3840 |
| CC-8968 | 04 Sep | Merchant 393 | 47,357.14 | EL-1069 |
| CC-8607 | 12 Sep | Merchant 134 | 20,111.74 | EL-7058 |
| CC-8276 | 04 Sep | Merchant 956 | 10,920.18 | EL-6450 |
| CC-8242 | 03 Sep | Merchant 602 | 11,636.26 | EL-9562 |
| Reimbursement Number | Report | Amount | Reimbursement Method | Status |
|---|---|---|---|---|
| RMB-84417 | ER-28432 | 6,587.30 | PayrollAddOn | Pending |
| RMB-85992 | ER-80342 | 20,759.15 | SeparateACH | Scheduled |
| RMB-92775 | ER-51506 | 15,788.51 | PayrollAddOn | Paid |
| RMB-73909 | ER-67188 | 12,284.85 | SeparateACH | Returned |
| RMB-24508 | ER-56196 | 35,369.53 | PayrollAddOn | Pending |
| RMB-96973 | ER-63143 | 31,329.59 | SeparateACH | Cancelled |
| Entry Date | Vehicle.Employee | Vehicle | From Address | To Address |
|---|---|---|---|---|
| 15 Sep | VHC-514 | VHC-2115 | T-10 | H-15 |
| 12 Sep | VHC-213 | VHC-5804 | X-10 | U-3 |
| 13 Sep | VHC-679 | VHC-4137 | P-8 | M-20 |
| 05 Sep | VHC-942 | VHC-8676 | C-18 | T-3 |
| 05 Sep | VHC-414 | VHC-6287 | S-3 | T-2 |
| 07 Sep | VHC-499 | VHC-8188 | L-10 | N-12 |
| Expense Line | Classification | Business Purpose | Attendee Names | Attendee Count |
|---|---|---|---|---|
| EL-8118 | Meal-Travel | BP-270 | AN-848 | 26 |
| EL-1823 | Meal-Client | BP-364 | AN-487 | 39 |
| EL-7441 | Entertainment-Client | BP-457 | AN-123 | 17 |
| EL-1285 | Meal-Office | BP-896 | AN-278 | 27 |
| EL-3683 | Meal-Conference | BP-573 | AN-539 | 39 |
| EL-7967 | Meal-Travel | BP-226 | AN-522 | 16 |
| Report | Report Revision | Step Number | Step Type | Approver |
|---|---|---|---|---|
| ER-26516 | 880 | 660 | Controller | XV |
| ER-80246 | 350 | 660 | Controller | MJ |
| ER-77540 | 610 | 280 | Controller | CY |
| ER-79476 | 370 | 690 | Controller | LM |
| ER-31598 | 870 | 850 | Controller | KY |
| ER-38385 | 530 | 880 | Controller | JJ |
Approved spend rolled up by ExpenseCategories.Group → Category for a selected period. Drills into Department × Submitter and into the per-line ExpenseLines grain. The Controller's monthly landing view; sets the M&E budget conversation.
opens Approved Expense Lines →| Line Date | Report | Category | Vendor | Amount |
|---|---|---|---|---|
| 08 Sep | ER-10242 | EC-6248 | VND-221 | 37,007.35 |
| 12 Sep | ER-14711 | EC-1645 | VND-178 | 30,846.21 |
| 16 Sep | ER-18788 | EC-2884 | VND-611 | 34,879.19 |
| 13 Sep | ER-70528 | EC-2561 | VND-269 | 30,096.69 |
owner Finance Reviewer
Go from the big picture to the details behind it. Open any record to see its status, owner and history.
Illustrative records. Connections and approval states follow the authored specification.
Make every expense easy to submit and review.
Illustrative previews from the system specification.
Keep the purchase, journey and original evidence together.
Capture and submit expensesExplain what needs attention before submission.
Capture and submit expensesSend a stable report revision to the right reviewer.
Capture and submit expensesReview the business purpose within direct-report scope.
Manager reviews the submitted business case; high-value claims also require the configured Controller step.
Approve and reimburse expensesVerify evidence, policy and eligible amounts.
Finance Reviewer completes policy and amount review after the required prior decisions.
Approve and reimburse expensesFollow the selected route to confirmed employee payment.
Approve and reimburse expensesDecision checkpoints where approval stays with your team.
Manager reviews the submitted business case; high-value claims also require the configured Controller step.
Approve and reimburse expensesFinance Reviewer completes policy and amount review after the required prior decisions.
Approve and reimburse expensesHuman approval and system automation have different jobs.
Manager reviews the submitted business case; high-value claims also require the configured Controller step.
Finance Reviewer completes policy and amount review after the required prior decisions.
Receipt capture on uploaded receipts. Workflow receipt-ocr-on-upload — appEventTrigger on Receipts.record.created → invokes the OCR provider, writes back OCRVendor / OCRDate / OCRTotal / OCRMerchantTaxID / OCRConfidence, autofills the ExpenseLine on high-confidence parse, routes LowConfidence / Failed back to the submitter for manual confirmation.
Card feed imports with issuer identity checks. Workflow card-transaction-feed-import — scheduleTrigger daily 04:00 ET → calls the card-program API per active CorporateCards, dedupes by FeedRefID, writes new CardTransactions with Status: Unmatched, emails each Cardholder a justification queue summary.
Transaction matching against expense evidence. Workflow card-txn-to-expense-line-match — appEventTrigger on CardTransactions.record.created and ExpenseLines.record.created/updated (PaymentMethod = CorporateCard) → deterministic matcher (CardLast4 + Amount + TransactionDate ±2 days) then fuzzy matcher (MerchantName ILIKE Vendor); on unique match flips Status: Unmatched → Matched; on conflict surfaces candidates to the Cardholder.
Mileage calculations from the recorded journey. Workflow mileage-calculation-from-google-maps — appEventTrigger on MileageEntries.record.created/updated (FromAddress + ToAddress set, Miles blank) → calls Google Maps Distance Matrix, writes Miles, resolves the active MileageRates row by EntryDate and the applicable effective interval, computes CalculatedReimbursement.
Policy checks on submitted expenses. Workflow policy-violation-flag — appEventTrigger on ExpenseLines.record.created/updated and on ExpenseReports.record.updated (Status: Submitted) → evaluates active PolicyRules scoped to the submitter, writes one PolicyViolations row per breach with Severity = Soft / Hard / Block; Hard requires Justification before submission, Block prevents submission.
Approval routing to the assigned reviewers. Workflow expense-report-approval-routing — appEventTrigger on ExpenseReports.record.updated (Status: Draft → Submitted) → creates the first ExpenseApprovalSteps row (Manager), inserts a Controller decision on HighValue = true before final Finance review, handles approve / reject / hold transitions.
Accounting handoff after complete approval. Workflow gl-post-on-approval — appEventTrigger on ExpenseReports.record.updated (Status: ApprovedByFinance) → aggregates ExpenseLines by GLAccount × BillableTo × Department, posts a balanced JE to fin-accounting under a stable source identity, with AP receiving only a settlement reference for costs already recognized; alternatively AP owns that cost and the expense JE omits it; M&E lines are memo-tagged for the reviewed tax classification.
Reimbursement tracking through the selected payment route. Workflow reimbursement-via-payroll-or-ap — appEventTrigger on ExpenseReports.record.updated (Status: ApprovedByFinance, ApprovalComplete = true, EmployeePayableAmount > 0) → branches on ExpensePolicies.ReimbursementChannel: PayrollAddOn creates Payroll OneTimePayments and writes PayrollOneTimePaymentRef; SeparateACH creates AP PaymentsMade and writes PaymentRunRef; advances Reimbursements.Status as the downstream cycle confirms.
Pattern checks on expense evidence. Workflow fraud-pattern-detection — scheduleTrigger nightly 02:00 ET → scans trailing-90-days submissions for duplicate receipts, split transactions, out-of-window receipts, mileage-over- Maps overrun, and round-number meals under the receipt-required threshold; writes PolicyViolations with RuleType: FraudPattern, pages the Finance Reviewer dashboard.
receipt-expiry-warning — scheduleTrigger weekly Monday 09:00 ET → emails submitters of Draft ExpenseReports older than 60 days; flips reports older than 90 days to Status: Held requiring Finance Reviewer override to submit (company-configured aging rules, not a universal tax deadline). Integrations: inbound from the card program (AmEx Corporate, Visa Commercial, Mastercard Corporate) for the daily CardTransactions feed; from the OCR provider for receipt parsing; from Google Maps Distance Matrix for mileage; from the GSA per-diem publication for the annual PerDiemRates refresh; from the IRS standard-mileage-rate publication for the annual MileageRates refresh; from PM Projects for the BillableTo project list. Outbound to fin-accounting (GL postings on approval), to Payroll (OneTimePayment creation for PayrollAddOn reimbursements), to fin-bill-pay-ap (Bills + PaymentsMade for SeparateACH OOP reimbursements and for monthly corporate-card statement settlement), to the document store (receipt images / PDFs, signed expense report PDFs), and to email (approval notifications, card-transaction-needs- justification pings, reimbursement-paid notices, receipt-expiry warnings).
Oversight role. Reviews high-value reports, audits PolicyViolations trends, signs off CardReconciliations, and owns the relationship with the card program and the reimbursement-channel decision (PayrollAddOn vs SeparateACH).
The post-manager approver. Checks policy compliance, releases the reimbursement, owns the CardTransactions matching backlog, and is the primary preparer on CardReconciliations.
Line manager with scope over direct reports only. The first approver in the chain. Sees aggregate spend for own team but cannot see another team's reports.
Self-service submitter. Files own ExpenseReports, uploads Receipts, captures Mileage, registers own Vehicles. Reads own reimbursement status. Cannot see anyone else's data.
A Permissions attribute on Employee — set true when the Employee has at least one CorporateCards.Cardholder = self row in Status: Active. Inherits all Employee permissions plus card-specific surfaces.
Read-only seat for periodic audit sampling — internal Audit team, external auditor, or controls reviewer. Full visibility across the expense surface; access is audit-logged at the row level.
Start with the question. Follow it to the records behind the answer.
Approved spend rolled up by ExpenseCategories.Group → Category for a selected period. Drills into Department × Submitter and into the per-line ExpenseLines grain. The Controller's monthly landing view; sets the M&E budget conversation.
View Approved Expense LinesApproved spend rolled up by Department × BillableTo (Project) × Category for a selected period. Bridges to PM Projects for client-billable expense recovery and to the Headcount-Cost surface in fin-accounting.
View Approved Expense LinesCount and dollar amount of PolicyViolations by RuleType × Severity × month over trailing 12 months. Highlights repeat-offender categories (alcohol, weekend dining, single-meal cap), drives the policy-tightening review.
Controller / CFO
View Top Policy Violations This MonthTop 25 submitters YTD by ApprovedAmount with category mix, average ticket size, violation rate, and CorporateCard / OutOfPocket split. Used for both reward (sales travel ROI) and audit (anomaly review).
View Approved Expense LinesPer-Employee YTD mileage with miles, rate-per-mile (resolved per EntryDate and applicable effective interval), CalculatedReimbursement, and a flag for any entry where Miles > Google-Maps-computed × 1.15. Supports review of contemporaneous mileage evidence under the applicable policy.
Employee
View Mileage Log (YTD)Per-Card per statement period: StatementBalance, ImportedTransactionsTotal, MatchedTotal, UnmatchedTotal, Difference, Status, and aging of any Disputed CardTransactions. The CardReconciliation close report.
Controller / CFO
View Open Card ReconciliationsPer-line M&E capture: Classification, BusinessPurpose, AttendeeNames, AttendeeCount, DeductiblePercent, DeductibleAmount, and receipt link. Supports review of the applicable documentation requirements and the year-end deductible / non-deductible carve-out.
View M&E Detail (Current Period)Per-report elapsed days at each stage: Submitted → ApprovedByMgr, ApprovedByMgr → ApprovedByFinance, ApprovedByFinance → Reimbursed. Highlights bottleneck steps (which Manager is slow, whether Finance Reviewer is the queue) and feeds the process-improvement review.
Controller / CFO
View Pending ReimbursementsLet your AI agent help with everyday work. Set its permissions during setup and keep approvals with your team.
List the work that needs attention. Keep the approval with the assigned reviewer.
Download agent Agent setup guide$ curl -fsSL https://www.erp.ai/skill.md
› open Expense Reporting System and list records waiting on manager approval
Expense to reimbursement · records listed with owner and age
› approve the first one at manager approval, as its approverHow the system works, what you can configure and how to get started.
Select Start now to create your account. Explore the system specification, or use Proto to configure it for your business.
Receipts retains uploaded images, PDFs and supported forwarded email, with configured OCR suggestions. The employee confirms the extracted details and keeps the original evidence connected to the report.
No. Company-paid charges remain part of the issuer liability. Eligible approved OutOfPocket, Mileage and PerDiem lines contribute to the employee payable. A mixed report preserves that separation.
The configured high-value threshold adds a Controller decision before final Finance approval. Ordinary reports follow the manager and Finance route. Card statement reconciliation has its own Controller sign-off.
Material changes create a new SubmissionRevision and reroute the required decisions. Earlier decisions remain attached to their original revision and cannot authorize the changed claim.
Use reviewed references for the expense date and applicable scope under the company’s policy. Preserve the approved rate basis when later tables change. Do not claim the same covered cost through both an allowance and an actual-cost line.
Only a downstream confirmation identifying the actual reimbursement payment sets Paid. An API acknowledgment, scheduled date or closed payroll run alone is insufficient. Reconcile a returned payment before replacement.
No. Matching connects the issuer charge to expense evidence. Finance prepares the statement balance, Controller signs the reconciliation, and AP confirms the separate payment outcome.
The system stores evidence and configured classifications for review. Reimbursement eligibility and tax deductibility are different decisions. The organization must maintain the applicable dated rules and verify its actual treatment.
This website and the paired skills describe the authored system. Download Proto to configure the application, connect the chosen providers and review the acceptance evidence before launch.
Start with a small policy and employee population you can reconcile.
Read the implementation planController / CFO agrees eligible methods, date-effective rules, exception authority and high-value thresholds.
Controller / CFOFinance Reviewer reconciles employee identities, managers, open claims, card activity and opening statement balances.
Finance ReviewerAdmin applies own-report, direct-report and sensitive-field scope. Controller / CFO verifies independent decisions and delegation.
Controller / CFOFinance Reviewer agrees the accounting owner and selected payroll or AP channel, including identity, acknowledgments and returns.
Finance ReviewerEmployee and Manager trace mixed-method claims, mileage rate boundaries, returned revisions and conditional Controller decisions.
ManagerController / CFO compares approved employee amounts, confirmed payments and approved card statements before expanding the population.
Controller / CFOThe base account and ordinary manual work in ERP.AI's official interface are $0. Viewing, searching, creating, editing, approving, deleting and exporting records in that interface do not consume read or write credits. There is no per-user fee.
Machine work: external API-key requests, imports, workflows, agents and scheduled jobs. Successful external API-key reads and writes use the operation rates below. Starting a managed execution from the interface still starts that metered service.
Pricing and account rules| Machine work | Included per $1 of credit |
|---|---|
| List/filter or get record calls | 20,000 |
| Search or aggregate calls | 4,000 |
| CSV or PDF exports | 100 |
| Record writes | 4,000 |
| Imported or synced records | 200,000 |
| File upload in MB | 2,000 |
| Workflow runs | 2,000 |
| Code-node compute beyond included in CPU-sec | 12,000 |
| Agent executions | 2,000 |
| Scheduled jobs or webhook activations | 20,000 |
Read and write rates apply to successful external API-key requests. Ordinary manual work in the ERP.AI interface is $0.
prepaid creditsSmallest pack $5, purchased credits never expire.
Follow the operating model from the process to the people, records and decisions behind it.
Use Proto to configure this system for your business. Review fields, rules and approvals before releasing changes.
Previews contain illustrative data from the system specification.
We use essential cookies to run the site and optional cookies for features, analytics, and relevant content. See Cookie policy
We use cookies to enhance your experience, analyze site traffic, and serve relevant content. By clicking "Accept All," you agree to our use of cookies. You can customize your preferences at any time.
Learn more about how we use cookiesThese cookies are required for the website to function properly. They ensure security, enable basic features like page navigation, and store user session data. You cannot disable these cookies.
These cookies enable additional features that enhance your experience, such as live chat, video playback, personalized content recommendations, and remembering user preferences.
These cookies help us understand how visitors interact with our site by collecting anonymous usage data. This allows us to measure performance, detect issues, and continuously improve the user experience.
These cookies allow us and advertising partners, including X, to deliver ads tailored to your interests. They track browsing habits across sites to provide relevant advertising and measure ad effectiveness.