Case study
Automated Accounts Payable Invoice Processing
Turning repetitive invoice review into an exception-based workflow.
Supplier names, account codes, invoice values, approval limits, file names, and identifiers shown in the supporting visuals are fictionalized to demonstrate the implemented workflow without exposing confidential business information.
Accounts-payable invoice processing often looks simple from the outside. In practice, it can involve repetitive document review, supplier-specific rules, accounting allocation, tax treatment, approval thresholds, and constant exceptions.
I designed and built an automated invoice-processing workflow to handle the predictable work while keeping uncertain cases in human hands.
The problem
Recurring transportation and operating invoices required manual review to identify the supplier, capture invoice numbers, dates, and totals, separate tax and fuel surcharges, determine accounting allocation, check approval criteria, identify missing or unusual information, and retain supporting records for audit purposes.
Different suppliers used different invoice formats, and those formats could change over time. A reliable solution therefore needed to automate routine decisions without assuming every invoice would fit a perfect template.
My role
I handled the project from business problem through implementation:
- Identified the automation opportunity.
- Mapped the existing workflow.
- Defined accounting and approval requirements.
- Designed the control and exception model.
- Developed the Python automation.
- Tested different invoice formats.
- Investigated parsing failures.
- Refined supplier-specific handling.
- Designed the output and audit structure.
Understanding the problem
One of the most important design decisions was separating three types of logic:
Document parsing — how information is located on a particular supplier’s invoice.
Accounting rules — how that supplier’s charges should be allocated.
Approval rules — what conditions allow an invoice to proceed automatically.
This separation matters because invoice layouts are less stable than the underlying business rules. When a supplier changes its document format, parsing can be adjusted without redesigning the accounting treatment or approval controls.
The solution
I developed a configurable Python workflow that processes incoming PDF invoices through a structured series of checks. The system:
- Identifies the supplier.
- Applies supplier-specific document parsing rules.
- Extracts key invoice information.
- Assigns accounting treatment.
- Validates totals and required fields.
- Checks approval parameters.
- Routes exceptions for human review.
- Stamps successfully processed PDFs.
- Creates a structured audit record.

The workflow separates predictable checks from the exceptions that require human review.
The workflow was deliberately designed around a fail-closed approach. If important information cannot be determined reliably, the invoice is not automatically approved. It is sent to a review queue with a clear reason.

A processed output makes the configured accounting treatment and decision traceable.
Implementation
The goal was not to eliminate human involvement. It was to use human attention where it was actually valuable.
Routine invoices that satisfy all required checks can proceed through the normal workflow. Cases such as an unknown supplier, missing tax, an unexpected fuel surcharge, reconciliation problems, or amounts outside normal approval parameters are automatically surfaced for review.

The workflow fails closed when it cannot establish a reliable decision.
The workflow also includes controls for required fields, supplier-specific treatment, accounting reconciliation, configurable tolerances, approval thresholds, explicit exception codes, preservation of source documents, human-review queues, and structured audit records.

Batch evidence records both the completed work and the cases held for review.
Results
The process was redesigned from document-by-document manual review into an exception-based workflow.
Rather than treating every invoice equally, the system handles predictable cases consistently and directs human attention toward the transactions that actually require interpretation or investigation.
No quantitative time-saving, accuracy-rate, or annual-savings claim is made here because those outcomes were not formally measured and verified.
What this demonstrates
This project is an example of the type of work I focus on: taking a repetitive operational process, understanding the underlying business rules and controls, and turning it into practical, maintainable automation without removing the safeguards that matter.