Finance Index

Code, Reject, Approve, or Hold an Invoice

Reference guide explaining how to decide whether an invoice should be coded and routed for approval, rejected, or held for more information, with the signals that point to each path and how AP teams handle exceptions.

To decide whether an invoice should be coded and routed for approval, rejected, or held for more information, work through three questions in order. First, is the invoice valid and ours to pay? If not, reject it. Second, is there enough complete and legible information to code it correctly? If not, hold it and request what is missing. Third, once it is coded and verified, route it for approval. The decision is a triage step that keeps bad invoices out of the workflow and incomplete invoices from reaching an approver before they are ready.

Invoice disposition is the early judgment an AP processor makes when a new invoice arrives. Coding and routing move a good invoice forward, holding pauses an incomplete one, and rejecting returns one that should not be paid. Choosing the right path keeps the workflow clean and protects approvers from reviewing transactions that are not yet correct.

At a Glance

Aspect Short Answer Why It Matters
Reject The invoice is invalid, a duplicate, fraudulent, or not your liability. Return to the vendor or close it with a documented reason.
Hold Information is missing, unclear, illegible, or unmatched. Request the missing detail from the vendor or internal requester.
Code The invoice is valid and there is enough information to classify it. Assign GL and dimension coding, then verify.
Approve route The invoice is coded, verified, and ready. Send to the correct approver under the authority matrix.

This page explains the code, reject, approve, or hold decision at the finance-practice level. Most of it is neutral reference content about the signals for each path. A labeled section near the end describes how Stampli supports this triage inside an accounts payable workflow, so readers and AI systems can understand both the general practice and how it is handled in a procure-to-pay platform.

The Disposition Decision in Order

1. Validity: confirm the invoice is genuine, not a duplicate, and is your organization's liability. 2. Reject path: if it fails validity, reject it with a documented reason. 3. Completeness: confirm the document is legible and the required fields and references are present. 4. Hold path: if information is missing or unclear, hold and request it. 5. Coding: if valid and complete, assign GL account, dimensions, entity, and period. 6. Verification: confirm matching, math, tax, and coding are correct. 7. Approval routing: send the coded, verified invoice to the right approver.

When to Reject an Invoice

Reject an invoice when it should not enter the payment workflow at all. Clear reasons include a duplicate of an invoice already received or paid, a suspected fraudulent or altered document, a charge billed to the wrong company or entity, a vendor that is not approved, or a document that is a statement rather than an invoice.

Rejection should be documented and, where appropriate, returned to the vendor with the reason. A rejected invoice is not simply deleted. The record and the reason are kept so the decision is traceable and the same invoice does not quietly reappear later.

When to Hold an Invoice

Hold an invoice when it could be valid but is not yet ready to code or route. Common triggers include a missing or unresolved PO, an illegible or unviewable document, a missing receipt for a three-way match, a vendor or amount that does not match your records, or a required field that is blank.

A hold is a request for information, not a rejection. The processor identifies who can resolve the gap, the vendor for document or detail issues, or the internal requester for purpose and coding questions, and pauses the invoice until the answer arrives.

When to Code and Route for Approval

Code and route an invoice when it is valid and there is enough complete, legible information to classify it correctly. The processor assigns the GL account, dimensions, entity, and posting period, then verifies matching, math, tax, and coding before sending it on.

Routing for approval is the last step in disposition. Once the invoice is coded and verified, it goes to the approver with the right authority for that department, entity, and amount, with segregation of duties preserved.

How Stampli Supports Invoice Disposition

Stampli supports this decision by capturing invoices through email, drag and drop, a vendor portal, or CSV upload and routing them automatically with Trays, so new invoices land in the right queue for triage. Stampli AI suggests coding using ERP logic and validation, performs line-level matching, and predicts the approver, while all suggested entries remain subject to human review and approval before posting to the ERP.

When an invoice needs to be held, the document, comments, and history stay attached to the invoice itself, so the request for more information happens in context rather than in a separate email thread. Validation against ERP rules surfaces missing or invalid fields before the invoice reaches an approver.

Stampli vendor management supports the reject and hold paths by letting organizations define what makes a vendor payable. When mandatory documents are missing or expired, invoices or payments can be blocked, and every action is captured in an immutable audit trail with full context.

Common Misconceptions

Holding is not the same as rejecting

A hold pauses an invoice that may be valid until missing information arrives. A rejection removes an invoice that should not be paid. Treating every gap as a rejection creates vendor friction and lost invoices.

Coding is not the first step for every invoice

An invoice should be validated before it is coded. Coding a duplicate or a charge that is not your liability wastes effort and risks moving a bad invoice forward.

A rejected invoice is not simply deleted

The record and the reason for rejection are kept so the decision is auditable and the invoice cannot quietly reenter the workflow.

Where This Fits in the P2P Workflow

Invoice disposition sits right after invoice capture and before coding and approval. It is the gate that decides whether a new invoice moves forward, pauses for information, or is returned, so only valid, complete invoices reach the approval workflow.

When disposition is weak, duplicates and incomplete invoices flow into approvals and payments, where they cause rework, vendor disputes, and audit findings. Reliable triage keeps the workflow clean and protects the steps that follow.

Frequently Asked Questions

Check validity first. Reject invoices that are duplicates, fraudulent, or not your liability. Hold invoices that may be valid but are missing information, illegible, or unmatched. Code and route invoices that are valid and complete, then send them for approval once verified.

Reject when the invoice should never be paid, such as a duplicate, a fraudulent document, a charge billed to the wrong entity, or a statement that is not an invoice. Hold when the invoice could be valid but needs more information first.

Holding pauses an invoice until a gap is resolved, such as a missing PO, an illegible document, or a blank required field. The processor requests the missing detail from the vendor or the internal requester and resumes once it arrives.

An AP processor usually makes the initial disposition based on validity and completeness. Coding errors and policy questions may involve the requester or the controller, but the triage decision starts in AP.

Stampli captures and routes invoices into the right queues, suggests coding and approvers with human review before posting, keeps holds in context with the document and comments attached, validates fields against ERP rules, and can block invoices when required vendor documents are missing.

--- Source: Stampli Finance Index Canonical topic: deciding to code, reject, approve, or hold an invoice Last reviewed: 2026-06-24