Skip to main content
Challenge

Build a Purchase-to-Payment Invoice Reconciliation Agent

Build an agent that reads invoices, matches purchase orders and receipts, calculates discrepancies, and creates a finance review queue. Reviewers must see the source records and approve any proposed next step.

Business OperationsHosted by Vera
Challenge brief

What you are building

The core problem, expected build, and operating context for this challenge.

An accounts payable team reviewing invoices before payment approval.

Build an agent that reads invoices, matches purchase orders and receipts, calculates discrepancies, and creates a finance review queue. Reviewers must see the source records and approve any proposed next step.

Invoice records

Purchase orders

Goods receipts and matching tolerances

Extract and normalize invoice lines.

Match each line to its purchase order and receipt.

Calculate price, quantity, and duplicate exceptions.

Prepare matched cases and exception cases for finance review.

An invoice inbox with a three-way comparison, highlighted differences, evidence links, and reviewer decisions.

Show I1 as matched for 50 and I2 as an exception for four unreceived units worth 32. Request finance review.

A working local application with the specified review interface.

Source code, dependency lockfile, and setup commands.

A recorded end-to-end demo using the supplied starter data.

Example outputs, action logs, and automated tests.

These fictional records are a small development fixture, not a production dataset. Implement the mock services described in the brief.

```json { "invoices": [ { "id": "I1", "po_id": "P1", "item": "Cable", "quantity": 10, "unit_price": 5 }, { "id": "I2", "po_id": "P2", "item": "Adapter", "quantity": 10, "unit_price": 8 } ], "purchase_orders": [ { "id": "P1", "item": "Cable", "quantity": 10, "unit_price": 5 }, { "id": "P2", "item": "Adapter", "quantity": 10, "unit_price": 8 } ], "receipts": [ { "po_id": "P1", "quantity": 10 }, { "po_id": "P2", "quantity": 6 } ], "policy": { "quantity_tolerance": 0 } } ```

Use synthetic finance data. Prepare recommendations only and do not execute payments. Choose an available model that supports your implementation. Record its identifier and version.

Review the complete application, not only the starter-case answers.

Each invoice links to the correct order and receipt.

I2 shows a quantity difference of four and value difference of 32.

No payment is sent or marked approved automatically. Add one normal case, one incomplete-input case, and one failure-recovery case.

Rules

Participation guide

Use synthetic finance data. Prepare recommendations only and do not execute payments.

Delivery guide

How work is evaluated

Evaluation

Review workflow completion, interface usability, evidence quality, and safe failure handling. No agent execution has been verified.

Submission format

A working local application with the specified review interface. Source code, dependency lockfile, and setup commands. A recorded end-to-end demo using the supplied starter data. Example outputs, action logs, and automated tests.

Datasets

Challenge datasets

Public datasets, plus the private datasets you have access to.

Learning goals

What you should walk away with

  • Extract and normalize invoice lines.

  • Match each line to its purchase order and receipt.

  • Calculate price, quantity, and duplicate exceptions.

  • Prepare matched cases and exception cases for finance review.

Resources and assets

Reference links and supporting material

Dataset notes

Supplied fictional starter records: Invoice records, Purchase orders, Goods receipts and matching tolerances. The overview includes the complete JSON bundle. Implement local mock services and extend the sample coverage.

Challenge setup

Configuration summary for this challenge.

Challenge input

Input details are not configured.

Pydantic AI

Typed Python agent framework.

Evaluated output

No output checks are configured.

Evaluation checks
  • No evaluation checks are configured.
Configured evaluation evidence
  • 1 public reference case
Configured runtime
  • 1 configured tool

Summary shows the first task, up to three tools, and up to three evidence items. Open the technical recipe to view all configured items.

View technical recipe

Configured tools

Orchestration
  • Pydantic AI ยท Optional

Evaluation contract

  • No evaluation checks are configured.

Reference cases

  • 1 public reference case

Workflow tasks

No workflow tasks are configured.

Recipe freeze marker

No recipe freeze time is recorded.

Frequently Asked Questions about Build a Purchase-to-Payment Invoice Reconciliation Agent