PO Matching
Match purchase orders to bills and track fulfillment status.
Overview
Axiomatic's PO matching module links purchase orders to vendor bills, giving you visibility into whether orders are fully, partially, or over-billed. Purchase orders originate from on-chain protocol transactions, and matching is performed in the AP module.
Purchase Order Workflow
Purchase orders are created as finalized transition proposals with event type purchase_order through the Axiomatic protocol. Each PO carries:
- Amount — the expected total
- Effective date — the order date
- Reference — a PO number or identifier
- Counterparty — the vendor name
Once finalized on-chain, POs appear in the AP matching tab as available for matching against incoming bills.
Matching POs to Bills
Navigate to AP → Matching to access the matching interface.
The page displays two lists:
- Unmatched POs — purchase orders not yet linked to a bill
- Unmatched Bills — bills without a PO association
To match:
- Select a purchase order from the PO list
- Select a bill from the bills list (potential matches highlight automatically based on amount similarity)
- Click Match Selected
The system compares the bill amount to the PO amount and assigns a match status.
Match Statuses
| Status | Condition | Description |
|---|---|---|
| MATCHED | Bill amount ≈ PO amount (within $0.005) | Exact match — the bill fulfills the PO |
| PARTIAL | Bill amount < PO amount | Under-billed — the bill covers part of the PO |
| OVER | Bill amount > PO amount | Over-billed — the bill exceeds the PO amount |
Matched bills display a color-coded badge in the AP bills list:
- MATCHED — green
- PARTIAL — amber
- OVER — red
Auto-Match Suggestions
When you open the matching tab, the system analyzes unmatched POs and bills and suggests potential matches based on:
- Amount proximity — PO and bill amounts within 1% of each other
- Date proximity — PO and bill dates within 30 days
Suggested matches appear with a reason label (e.g. "Exact amount match", "Amount within 0.5%", "Date within 12 days"). These are suggestions only — you must confirm each match manually.
Unmatching Bills
To remove a PO-to-bill link:
- Find the matched bill in the Matched Bills section
- Click Unmatch
This clears the purchaseOrderId, poMatchStatus, and matchedAmount from the bill, returning both the PO and bill to the unmatched lists.
API Reference
See the PO Matching API Reference for endpoint details.