From supply-chain
Activate for: invoice, reconcile, reconciliation, three-way match, two-way match, invoice processing, AP, accounts payable, purchase order match, goods receipt match, invoice exception, price variance, quantity variance, duplicate invoice, invoice approval, invoice hold, invoice dispute, PO mismatch, over-invoiced, under-delivered, missing PO. NOT for: bank reconciliation (use banking plugin), vendor assessment (use vendor-assessment), spend category analysis (use spend-analysis).
npx claudepluginhub panaversity/agentfactory-business-plugins --plugin supply-chainThis skill uses the workspace's default tool permissions.
- NEVER approve an invoice that has not been matched against a PO
Validates vendor invoices against contract terms, scope of work, market rates. Checks arithmetic, rate compliance, scope authorization, duplicates, GL coding, NTE/caps. Assigns APPROVED, APPROVED WITH FLAGS, or HOLD FOR REVIEW.
Reconciles Pax8 cloud subscriptions against Xero or QuickBooks Online invoices to identify billing gaps, unbilled subscriptions, quantity mismatches, and margin discrepancies.
Activate for: bank reconciliation, nostro reconciliation, suspense account, GL reconciliation, provision reconciliation, inter-company reconciliation, nostro break, unmatched item, reconciling item, MT940, MT950, MT942, aged items, reconciliation certificate, suspense clearing, four-way reconciliation, IFRS 9 provision reconciliation, settlement break, trade reconciliation, position break, GL-to-risk reconciliation. NOT for: IFRS 9 ECL model calculation (use ifrs9-ecl), capital adequacy reporting (use basel-capital), AML transaction monitoring (use aml-typologies).
Share bugs, ideas, or general feedback.
Three-way match requires: Document 1: Invoice (from vendor) Document 2: Purchase Order (from ERP) Document 3: Goods Receipt / Service Confirmation (from operations)
TWO-WAY MATCH (acceptable only for):
NEVER approve a direct materials invoice without goods receipt confirmation.
TASK: [e.g. Invoice Reconciliation -- INV-2024-0847]
VENDOR TIER: [Strategic / Tactical / Commodity / Bottleneck / Unclassified]
CONFIGURATION: [Loaded: supply-chain.local.md / Not configured]
DATA SOURCES: [ERP / AP system / Manual input]
Extract structured data from invoice (PDF, email, EDI, manual entry):
MANDATORY FIELDS TO EXTRACT: Vendor name: [Exact legal name -- match against vendor master] Vendor ID: [Cross-reference ERP vendor master] Invoice number: [For duplicate detection] Invoice date: [Check against late submission rules] PO reference: [Required for matching -- flag if absent] Line items: [Description / quantity / unit / unit price / line total] Total amount: [Verify arithmetic: sum of lines + tax = total] Payment terms: [Match against contracted terms] Bank details: [Flag if different from vendor master -- fraud risk]
VALIDATION CHECKS AT EXTRACTION: Arithmetic check: do line items sum to invoice total? Vendor name match: does invoice name match ERP vendor master? Duplicate check: has this invoice number been submitted before? Late submission: is invoice date within the configured day limit? Bank detail change: are bank details the same as vendor master?
FLAG IMMEDIATELY IF: RED Bank details differ from vendor master -> FRAUD ALERT -- do not process; contact vendor by phone (not email) to verify; escalate to Finance Director RED Duplicate invoice number -> REJECT; notify vendor RED Invoice > configured days old -> REJECT; notify vendor of late submission policy RED Vendor not in approved vendor list -> HOLD; escalate to Procurement
MATCH EACH LINE ITEM AGAINST: Document A: Invoice line (what vendor claims to be owed) Document B: Purchase Order line (what was authorised to buy) Document C: Goods Receipt / Service Confirmation (what was actually received)
QUERY ERP via MCP:
MATCH CLASSIFICATION PER LINE ITEM:
MATCHED -- all within tolerance Invoice qty = GR qty (within tolerance) Invoice price = PO price (within tolerance) -> Auto-approve this line
PRICE VARIANCE -- OUTSIDE TOLERANCE Invoice price != PO price, outside tolerance -> Route to Procurement; require vendor price justification
PRICE VARIANCE -- WITHIN TOLERANCE Invoice price != PO price, but within configured tolerance -> Auto-approve with flag to Finance (audit trail)
QUANTITY VARIANCE -- OVER-INVOICED Invoice quantity > GR confirmed quantity -> Hold over-invoiced portion; investigate with warehouse/vendor
QUANTITY VARIANCE -- GOODS RECEIPT PENDING Invoice quantity matches PO but GR not yet received/confirmed -> Hold invoice; alert warehouse for GR confirmation; set 5-day follow-up reminder
PO NOT FOUND Invoice references a PO that does not exist in ERP -> Hold entire invoice; route to Procurement for retrospective PO or rejection decision
DUPLICATE DETECTED Same vendor, same amount, within configured days of prior invoice -> Reject; notify vendor; log as potential fraud attempt if persistent
UNAUTHORISED CHARGE Line item has no corresponding PO line -> Reject this line; notify vendor; request credit note
FOR EACH EXCEPTION TYPE, APPLY ROUTING RULES:
Price variance -- within tolerance: Action: Auto-approve with Finance notification Log: Exception register (for pattern monitoring) Owner: Finance (automated)
Price variance -- outside tolerance (< escalation threshold): Action: Route to category manager for approval Deadline: 3 business days Owner: Category manager + Procurement
Price variance -- outside tolerance (> escalation threshold): Action: Route to CPO for approval Deadline: 5 business days Owner: CPO
Quantity variance -- over-invoiced: Action: Hold excess; investigate with warehouse team Deadline: 5 business days to confirm GR or reject Owner: Warehouse + Finance
GR pending: Action: Hold invoice; alert warehouse; 5-day auto-reminder If unresolved at 10 days: escalate to Operations Manager Owner: Warehouse -> Finance on resolution
PO not found (> materiality threshold): Action: Route to Procurement for retrospective PO or rejection Deadline: 3 business days Owner: Procurement
Duplicate invoice: Action: Reject immediately; notify vendor; log incident Owner: Finance (automated)
Fraud alert (bank details changed): Action: STOP all processing; escalate to Finance Director immediately Owner: Finance Director
LOG FOR EVERY INVOICE:
PATTERN DETECTION (run weekly): Same exception from same vendor > 3x in 30 days: -> Flag as systematic issue; recommend vendor data alignment meeting
Price variance on same line item > 2 consecutive invoices: -> Flag as contract non-compliance; initiate commercial review
GR pending rate > 15% of invoices from one vendor: -> Flag as goods receipt process issue (warehouse or vendor despatch?)
INVOICE RECONCILIATION: [Invoice Number] | [Vendor]
================================================================
Invoice date: [Date] PO matched: [PO number or NOT FOUND]
Processing: [Date] GR matched: [GR number or PENDING/NONE]
LINE ITEM ANALYSIS:
Item [N]: [Description] -- [Qty] @ [Price]
PO price: [X] Invoice price: [X]
Price variance: [+/-X] ([+/-X]%)
GR qty: [N] confirmed
Invoice qty: [N]
Qty variance: [+/-N units]
TOLERANCE: [+/-X% configured for this category]
STATUS: [MATCHED / WITHIN TOLERANCE / EXCEPTION TYPE]
Action: [Specific action required]
RECONCILIATION SUMMARY:
Approved for payment: [X]
On hold (pending GR): [X]
Disputed (variance): [X]
Rejected (unauthorised): [X]
Original invoice total: [X]
RECOMMENDED PAYMENT: [X]
VENDOR COMMUNICATION: [Drafted -- see /vendor-communicate]
AUDIT LOG: [Saved to exception register]
================================================================
ALL OUTPUTS REQUIRE REVIEW BY A QUALIFIED PROFESSIONAL BEFORE USE IN BUSINESS DECISIONS.