Knowledge Base / PROCUREMENT
Coupa
Vendor: Coupa Software · Enterprise
Coupa is a cloud-based Business Spend Management (BSM) platform from Coupa Software. It unifies procurement, sourcing, contract management, invoicing/accounts payable, expense, and supply-chain planning in a single SaaS suite. This entry focuses on the procurement (P2P), invoicing (AP), and supplier catalog (INV) modules exposed through the Coupa Core REST API.
Accounts Payable (AP)
Vendor invoices, payments, settlements
Activities
- Supplier Creates Invoice - Supplier submits invoice via Coupa Supplier Portal or cXML (coupa 'invoices').
- Receive Invoice - Invoice received/indexed in Coupa (status -> 'approved' or 'draft').
- Match Invoice to PO - Three-way match links invoice lines to PO/receipt (coupa 'matched' flag).
- Match Invoice to Receipt - Invoice lines matched to goods receipt for 3-way match.
- Approve Invoice - Invoice approved for payment (status -> 'approved').
- Reject Invoice - Invoice rejected back to supplier (status -> 'rejected').
- Set Payment Terms - AP sets/overrides 'payment_terms' on the invoice.
- Generate Payment - Coupa Pay or external payment run (status -> 'paid' once settled).
- Process Supplier Payment - Payment executed via Coupa Pay / ERP push ('payments' resource).
- Apply Credit Note - Credit memo applied against invoice.
- Close Invoice - Invoice settled and closed (status -> 'closed' / 'paid').
Case attributes
- Invoice Total (number) - Invoice header total.
- Currency (string) - Invoice currency.
- Invoice Date (date) - Supplier invoice date.
- Due Date (date) - Payment due date after terms.
- Invoice Number (string) - Coupa invoice ID / supplier invoice number.
- Po Number (string) - Linked purchase order number.
- Invoice Status (string) - draft/approved/rejected/paid/closed.
- Match Status (string) - 3-way match outcome.
- Payment Status (string) - Paid vs pending vs blocked.
- Supplier (string) - Supplier on the invoice.
Process-mining benefits (historical)
- Quantify invoice intake cycle time [Efficiency]: Measure Supplier Creates Invoice to Receive Invoice elapse time to find where invoices are stalling in intake - whether in the supplier-side submit, cXML routing, or AP indexing. Reveals the unused headroom before the matching step even begins.
- Pinpoint three-way match failures [Compliance]: Count invoices whose Match Invoice to PO or Match Invoice to Receipt failed - every failed 3-way match is a duplicate, price, or quantity risk. Group by supplier and approver to see which suppliers most frequently ship invoices that mismatch the PO or receipt.
- Measure early-payment-discount capture [Cash]: Compare Set Payment Terms and Generate Payment timings against early-payment-discount windows to see how much discount value is being left on the table. Late Generate Payment after a discount cutoff is a hard cash loss you can recover.
- Identify supplier-side rejection rates [Service]: Count Reject Invoice events per supplier to flag the suppliers whose invoices most often fail Match Invoice to Receipt or Approve Invoice. Each rejection is a supplier call, a credit note, and a delayed close - direct supplier-relationship cost.
- Track credit-note leakage [Cost]: Sum Apply Credit Note volume relative to Process Supplier Payment to spot suppliers where credit notes are a chronic pattern rather than a one-off. Persistent credit notes often indicate pricing or delivery disputes that should be solved upstream, not absorbed cycle after cycle.
- Benchmark invoice-to-pay cycle per approver [Efficiency]: Average Approve Invoice to Close Invoice cycle per approver to surface bottlenecks in your AP approval chain. A small number of approvers with long tails is the difference between a 5-day and a 25-day pay cycle.
Process-mining benefits (action)
- Live exceptions worklist for failed matches [Service]: Push a daily worklist of invoices whose Match Invoice to PO or Match Invoice to Receipt failed, assigned to the AP clerk responsible for that supplier. Resolve a failed 3-way match the day it lands, not at month-end reconciliation.
- Trigger payment run before discount cutoffs [Cash]: Alert the AP team when an invoice with an early-payment discount is approaching its Generate Payment cutoff - a same-day trigger can save the discount. The Set Payment Terms event carries the discount window; react on it, not at the next scheduled run.
- Block duplicate supplier invoice intake [Compliance]: Detect when Receive Invoice is invoked on a (supplier, invoice number) pair that already exists in the invoice table and stop the second intake before it reaches Approve Invoice. Duplicate invoices are the most common AP overpayment vector.
- Auto-route invoices by supplier to AP owners [Efficiency]: Use the supplier on each incoming Receive Invoice to route the Approve Invoice step to the named AP clerk for that supplier. Removes a manual triage step and shortens the time-to-approval, especially for high-volume suppliers.
- Hold payments for at-risk suppliers [Cost]: When Apply Credit Note or Reject Invoice rates for a supplier cross a threshold, hold Generate Payment for that supplier's open invoices pending a review. Stops a leak while it is still small rather than absorbing the cost across many invoices.
- Escalate invoices stuck in approval [Service]: Surface invoices that have been sitting in Approve Invoice longer than your SLA so the named approver is nudged the same day. Each stalled approval is a delayed Close Invoice and a supplier who is one step closer to stopping shipment.
Data tables
- invoices - Supplier invoices
- purchase_orders - Purchase orders
- suppliers - Suppliers
Inventory Management (INV)
Stock movements, transfers, adjustments, valuation
Activities
- Create Catalog Item - Catalog admin creates an item (Coupa 'items' resource, status='active').
- Submit Catalog Item - Item submitted to a catalog (coupa catalog assignment).
- Approve Catalog Item - Catalog steward approves item for publication.
- Publish Catalog - Catalog published to requisitioners ('catalog' status='published').
- Update Catalog Item - Existing item refreshed (price/content change).
- Disable Catalog Item - Item deactivated/delisted ('items' status -> 'inactive').
- Refresh Catalog - Scheduled refresh / re-sync of a punchout/hosted catalog.
- Review Catalog Items - Periodic review by the category owner.
- Archive Catalog - Catalog retired (status -> 'archived').
Case attributes
- Unit Price (number) - List/contract price per unit.
- Catalog Name (string) - Catalog the item belongs to.
- Currency (string) - Pricing currency.
- Item Number (string) - Coupa item ID / SKU.
- Item Name (string) - Display name of the catalog line.
- Item Status (string) - Active / inactive catalog item status.
- Supplier (string) - Supplier owning the item.
Process-mining benefits (historical)
- Measure catalog onboarding cycle time [Efficiency]: Time Create Catalog Item through Publish Catalog per supplier to find which suppliers' catalogs take longest to onboard - a slow prior approval or a queued Refresh Catalog is what keeps a supplier's items off the requisitioner's screen for weeks.
- Audit publish/decline decisions [Compliance]: Compare Approve Catalog Item vs Disable Catalog Item counts per category owner to surface reviewers who decline a high share of submitted items. A skewed approval ratio often flags an unclear category policy or a reviewer bottleneck rather than a real supplier-quality issue.
- Quantify catalog staleness [Service]: Measure time since last Refresh Catalog per published catalog to flag stale price/file content. Each catalog that has not Refreshed in a long window is effectively running on outdated pricing - and is the most common cause of PO-vs-invoice price mismatches in procurement.
- Track item deactivation churn [Cost]: Count Disable Catalog Item events per supplier to find items that come and go frequently - high disable/reactivate churn on a supplier's catalog is a hidden cost in maintenance, stale shopping-cart links for requisitioners, and procurement support tickets.
- Benchmark reviewer backlogs per category [Efficiency]: Average Submit Catalog Item to Approve Catalog Item per reviewer to surface reviewers carrying an outsized share of pending items. The tail of a small number of reviewers is the single biggest driver of catalog-onboarding lead time.
- Catch dormant archived catalogs [Compliance]: Find catalogs that reached Archive Catalog but still have active item rows in the item table - meaning requisitioners could still pick a defunct item. Each orphan active item under an archived catalog is a compliance gap you can clean up.
Process-mining benefits (action)
- Catalog item publication worklist [Service]: Push a daily worklist of items sitting in Submit Catalog Item awaiting Approve Catalog Item, routed to the category owner. A request sitting in review is a supplier item the requisitioners cannot buy yet - close the loop the same day.
- Trigger scheduled refresh for stale catalogs [Efficiency]: When a published catalog has not seen Refresh Catalog within its expected cadence, alert the catalog admin to re-trigger the punchout/hosted refresh. A missed refresh is the most common cause of an out-of-date price buyers don't notice until invoice match.
- Flag high-churn item disable events [Cost]: Alert procurement when Disable Catalog Item events for a supplier spike relative to that supplier's baseline - a spike often signals a discontinued line or a contract renegotiation underway, and lets sourcing step in before requisitioners lose access to a key item.
- Block active items under archived catalogs [Compliance]: Run Review Catalog Items against the parent catalog status each day and surface any item row still active under an Archive Catalog event - those rows must be disabled before they land on a new requisition. Compliance rather than cleanup.
- Auto-route new items to category owners [Efficiency]: Use the supplier on each Create Catalog Item to route the Approve Catalog Item step directly to the named category owner instead of a shared queue. Removes a manual triage step and shortens the time-to-publish for items in the highest-volume categories.
- Notify on publication back-out [Service]: When Publish Catalog is followed within a short window by Disable Catalog Item or Update Catalog Item, signal the catalog admin - a near-immediate re-action after publish is almost always a missed approval check or a wrong-file publish you can roll back before requisitioners see it.
Data tables
- items - Catalog items
- suppliers - Suppliers
Procure-to-Pay (P2P)
Full procurement cycle from requisition through invoice payment
Activities
- Create Requisition - Requester creates a requisition (Coupa 'requisitions' resource, status='draft').
- Submit Requisition - Requisition submitted for approval (status -> 'pending_approval').
- Approve Requisition - Manager approves per approval chain (status -> 'approved').
- Reject Requisition - Approver rejects back to requester (status -> 'pending_approval' rejected, or 'denied').
- Auto-Approve Requisition - Below-threshold pre-approval rule auto-approves (status -> 'approved').
- Convert Requisition to PO - Approved requisition auto-converts to a purchase order (Coupa 'purchase_orders').
- Create Purchase Order - Buyer creates or amends the PO directly (status -> 'pending_approval').
- Approve Purchase Order - PO approved and dispatched (status -> 'ordered'/'sent_to_supplier').
- Send PO to Supplier - PO dispatched via cXML/email to the supplier (coupa 'transmit_po').
- Receive Goods - Goods receipt recorded against PO (PO receipt, status -> 'received').
- Cancel Purchase Order - PO cancelled (status -> 'cancelled').
- Close Purchase Order - PO fulfilled and closed (status -> 'closed'/'completed').
Case attributes
- Total Amount (number) - Header total.
- Approver (string) - Named approver in chain.
- Currency (string) - Transaction currency.
- Po Number (string) - Resulting PO number.
- Requisition Number (string) - Coupa requisition number/ID.
- Requester (string) - Submitter.
- Requisition Status (string) - draft/pending_approval/approved/denied.
- Supplier (string) - Supplier on resulting PO.
Process-mining benefits (historical)
- Spot requisition-to-PO stalls [Efficiency]: Mine Submit Requisition to Convert Requisition to PO timestamps in Coupa to pinpoint requisitions that sat in approval chains longer than your target. Reveals where the source-to-PO cycle stalls, whether in the Requester's lane or an Approver's queue.
- Quantify requisition rejection loops [Service]: Count Reject Requisition events after Approve Requisition to see how often requisitions bounce back, which approver rejects most, and how long it takes to re-submit. Cuts the cycle leakage that silently inflates procurement lead time.
- Audit auto-approval threshold bypass [Compliance]: Compare Auto-Approve Requisition vs Approve Requisition rates per dollar band to confirm the below-threshold auto-approval rule is firing as configured - and catch split-requisitions that were manually broken to dodge an approval step.
- Measure unplanned PO changes after dispatch [Cost]: Track Cancel Purchase Order and PO version bumps between Approve Purchase Order and Receive Goods to find PO churn - each cancellation or re-issue is a price renegotiation or supplier disruption that costs money and trust.
- Benchmark supplier on-time receipt performance [Efficiency]: Join Send PO to Supplier to Receive Goods timings per supplier to rank delivery reliability. The Send-PO-to-receipt interval is a contractual SLA you can act on at renewal - and it highlights the suppliers dragging the whole P2P pipeline.
- Detect maverick buys outside Coupa [Compliance]: Flag requisitions where the resulting Create Purchase Order and supplier pair never appears in the approved catalog, or where the requester used a free-form item line instead of a catalog item - the core on/off-contract spend pattern for procurement compliance.
Process-mining benefits (action)
- Live requisition approval worklist [Service]: Push a daily worklist of requisitions that have been in Approve Requisition longer than your SLA, routed to the named approver. Each aging requisition today is a delayed PO and a requester who is waiting - close the loop before it ages.
- Trigger auto-approval rule tuning [Efficiency]: When Auto-Approve Requisition rates drop below target per category, surface it to the procurement ops team the same day - a rule drift often means a category owner changed spending bands or a new supplier was added without an auto-approval path.
- Block split-requisition alerts in real time [Compliance]: Alert procurement when a single requester submits multiple requisitions to the same supplier on the same day just under the Approve Purchase Order threshold - the classic approval-dodging pattern you can stop before the PO is dispatched.
- Monitor PO dispatch failures [Cost]: Watch Send PO to Supplier events for failures or long delays in dispatching to the supplier - a stuck PO dispatch becomes a Cancel Purchase Order or a missed delivery window, which is direct cost. Alert the buyer within hours, not weeks.
- Track open receipts against PO promises [Service]: Maintain a live view of Receive Goods owed against dispatched POs past their promised delivery date, escalated to the buyer. Catching a missed receipt early lets you expedite or substitute before the requesting department is impacted.
- Close loop on stale open POs [Efficiency]: Surface purchase orders that have been Received but never reached Close Purchase Order within the expected window - often a missing final receipt line or a quantity dispute. Each open PO is a backlog leak and a possible duplicate invoice risk.
Data tables
- po_lines - PO line items
- purchase_orders - Purchase orders
- requisitions - Purchase requisitions
- suppliers - Suppliers
Explore this interactively in the mindzie Knowledge Base.