Accounts Payable Internal Controls Checklist: Nine Controls, Ordered by What They Prevent
Most AP control checklists list thirty items and rank none of them. Nine controls in priority order, each with the specific failure it prevents, the evidence an auditor will ask for, and whether it survives being run by hand.
Ken
AI Finance Assistant
What is an Accounts Payable Internal Controls Checklist?
An accounts payable internal controls checklist is the ordered list of checks that stand between an invoice arriving and money leaving, each one paired with the specific failure it prevents and the evidence it leaves behind. It is not a list of everything an AP team could do. A checklist is useful only if it tells you what to implement first, because no team implements twenty controls in a quarter, and the three that stop money leaving wrongly are worth more than the seventeen that tidy the process.
The list below is ordered by consequence, not by process stage. Controls one to three stop a payment that should never have been made. Four to six catch one that already was. Seven to nine make the first six provable to somebody who was not there.
Why ordering is the whole job
The standard AP controls checklist is organised by where it sits in the invoice lifecycle — receipt, coding, approval, payment, reconciliation. That ordering is convenient for writing the document and useless for implementing it, because it puts a GL coding check next to a bank detail verification as though they were comparable.
What happens next is predictable. A team reads thirty items, implements the ones that are cheap, and defers the ones that require changing who does what. The cheap ones are almost always detective and administrative. The expensive ones are almost always the preventive controls that stop money leaving. Six months later the checklist is 70% complete and the exposure has not moved.
There is a second failure worth naming. Every control you add costs attention, and attention is finite per invoice. Fifteen manual checkpoints does not mean fifteen checks. It means an AP clerk on invoice number forty of the day performing a ritual. Five controls that actually run beat fifteen that are initialled.
Tier one: the controls that stop money leaving wrongly
These three prevent a payment that should never have happened. If you implement nothing else this quarter, implement these.
1. Separate vendor master maintenance from payment release
The failure it prevents: one person creating or editing a payee record and then releasing money to it. That is the shortest path from a keyboard to a bank account, and it needs no forged invoice, no collusion, and no unusual amount — just the ability to change where an existing vendor's money goes and then approve the run.
How it works: the permission to add or amend a vendor record and the permission to release a payment batch must sit with different people. Not different roles on an org chart. Different logins, enforced by the system, with no shared account and no "she covers for him when he is out".
Evidence an auditor asks for: the system permission matrix showing the two rights are never held by one user, plus a user-change log for the period. They will also ask about temporary access grants — the covering arrangement during leave is where this control usually dies, and an auditor who has seen it before will ask specifically.
Does it survive manual operation? Partially. The separation itself is a policy decision and holds at any size. What does not survive manually is the evidence: without system-enforced permissions, all you can show is a document saying the duties are separated. See segregation of duties in accounts payable for how to structure this on a small team.
2. A verified change-of-bank-details procedure
The failure it prevents: paying a real invoice, for a real amount, to an account that belongs to somebody else. This is the single most expensive email an AP team receives, and it is structurally invisible to every downstream check: the vendor is real, the invoice is real, the amount is contracted, the approver is correct. Nothing looks wrong until the actual vendor calls about a missing payment.
How it works: the vendor is frozen for payment in the system while the change is pending. Somebody calls the vendor on a number already held in the vendor master — never a number in the request, the signature block, or the attached letterhead. A second person, not the one who received the request, approves the change. The disposition is recorded: who called, which number, from which record, on what date.
Evidence an auditor asks for: the log of bank detail changes for the period, and for a sample of them, proof of the callback and the identity of the approver. The finding they write is almost never "no procedure exists". It is "the procedure exists and three changes in the sample have no recorded verification", because a control that was silently skipped looks identical in the log to one that never fired.
Does it survive manual operation? Yes, and it has to. The callback is the one control on this list that works because a human leaves the system and uses a different channel. No automation replaces it. What a system contributes is the freeze, the enforced second approver, and the field that makes an unrecorded disposition visible.
3. Three-way matching with a defined tolerance
The failure it prevents: paying for goods or services you did not receive, and paying a price nobody agreed. Matching the purchase order, the goods receipt and the invoice is what turns an invoice from an assertion into a verified obligation.
How it works: the invoice matches an approved PO on price and quantity, and a receipt confirms the goods arrived. The word doing the work is tolerance. A match rule with no stated tolerance either blocks on every rounding difference and gets overridden into meaninglessness, or has an informal tolerance that lives in the head of whoever is clearing exceptions. Write it down: a percentage, an absolute cap, and which of the two binds. Then track how often it is exceeded, because a tolerance that is never hit is too loose.
Evidence an auditor asks for: the match rate for the period, the documented tolerance, and — the part teams are unprepared for — the population of invoices that were paid without a match, with a reason for each. A 92% match rate is not a good answer on its own. The question is what happened to the other 8%.
Does it survive manual operation? Below roughly 200 invoices a month, yes. Above it, no. Manual three-way matching does not fail loudly; it degrades into spot-checking, and spot-checking a population where the exceptions are the point is close to no control at all. This is the clearest case on the list where volume converts a real control into theatre.
Tier two: the controls that catch what already went out
These do not prevent the payment. They shorten the time between a wrong payment and someone knowing about it, which is what determines whether the money is recoverable.
4. Duplicate detection across the full history
The failure it prevents: paying the same obligation twice — usually a vendor resending an invoice that was already in flight, or the same document arriving by email and by post with different reference formatting.
How it works: every incoming invoice is checked against at least twelve months of history on vendor, amount, date and invoice number, with fuzzy handling of reference formatting. Exact-match-only detection misses the common case, because the duplicate is rarely byte-identical.
Evidence an auditor asks for: the duplicates caught in the period and their disposition, and the recovery log for any that were paid.
Does it survive manual operation? No. A person cannot check an invoice against twelve months of history. What manual review catches is the duplicate that arrives the same week, which is the easy one.
5. Vendor statement reconciliation
The failure it prevents: the errors that are invisible from inside your own ledger — an invoice you never received, a credit note never applied, a payment the vendor says never arrived.
How it works: quarterly for your top vendors by spend, comparing their statement against your AP ledger and investigating every difference. The point is that it is the only control on this list that uses a record you did not create.
Evidence an auditor asks for: the reconciliations performed, the differences found, and how each one was resolved.
Does it survive manual operation? Yes. This one is genuinely manual work at any size, and a small team can run it on twenty vendors in an afternoon.
6. Bank reconciliation by someone outside AP
The failure it prevents: a payment that left the bank without a matching entry in the ledger, which is what payment file tampering and unauthorised manual payments look like from the outside.
How it works: monthly, within a few business days of close, performed by somebody who does not prepare payments.
Evidence an auditor asks for: the completed reconciliations, the reconciling items with ages, and the identity of the preparer relative to the AP team.
Does it survive manual operation? Yes, provided the independence holds. On a three-person finance team the independence is the hard part, not the reconciliation.
Tier three: the controls that make the other six provable
7. A complete audit trail, including dispositions
The failure it prevents: being unable to demonstrate that any of the above happened. This is not a bookkeeping nicety — a control you cannot evidence is treated as a control that did not run.
How it works: every invoice carries a timestamped record of receipt, entry, each approval with the approver's identity, any change to invoice data with before and after values, and payment execution. Critically, it records dispositions and not just outcomes: not "verified" in a field, but who verified, against what, and when. See what an AP audit trail has to contain.
Evidence an auditor asks for: a sample of invoices traced end to end, and every override with a reason attached.
Does it survive manual operation? No. Email approvals scattered across mailboxes are the most common audit finding in AP for a reason: they are incomplete by construction, and nobody discovers which threads are missing until the sample is pulled.
8. Approval thresholds that route by risk, not only by amount
The failure it prevents: a large but routine invoice consuming senior attention while an unusual small one passes unexamined. Amount is a proxy for risk, and a poor one on its own.
How it works: thresholds by amount, plus routing rules for the categories where amount is misleading — a first payment to a new vendor, a payment following a bank detail change, an invoice with no PO, a category that has never been bought before.
Evidence an auditor asks for: the approval matrix, and a sample showing invoices were routed according to it rather than around it.
Does it survive manual operation? In principle yes, in practice rarely, because the routing decision happens under time pressure at the moment an invoice arrives.
9. Exception review with a named owner and a visible age
The failure it prevents: the slow death of every control above. Unmatched invoices, held payments and pending verifications accumulate in a queue, month end arrives, and someone clears the backlog in one sitting. Every control fired. None of them was applied.
How it works: the exception queue has one owner, each item shows how long it has been open, and the ageing is reported to somebody outside AP. Track exception categories monthly and remove the causes rather than reprocessing the symptoms.
Evidence an auditor asks for: the queue ageing over the period and the bulk-clearance events, which are visible in any decent log and which they will look for.
Does it survive manual operation? Yes, if the ageing is visible. A queue whose age nobody can see is not being managed.
The checklist in one table
| # | Control | The failure it prevents | Evidence to produce | Holds up manually? |
|---|---|---|---|---|
| 1 | Vendor master separate from payment release | One person redirecting a real vendor's money | Permission matrix, user-change log, temporary grants | Policy yes, evidence no |
| 2 | Verified change-of-bank procedure | A correct invoice paid to the wrong account | Change log plus callback disposition per change | Yes, and it must be manual |
| 3 | Three-way match with a stated tolerance | Paying for goods not received or at the wrong price | Match rate, written tolerance, unmatched population with reasons | Only under ~200 invoices a month |
| 4 | Duplicate detection over 12 months | The same obligation paid twice | Duplicates caught, disposition, recovery log | No |
| 5 | Vendor statement reconciliation | Errors invisible from inside your own ledger | Reconciliations, differences, resolutions | Yes |
| 6 | Independent bank reconciliation | Payments that left without a ledger entry | Completed reconciliations, ageing of reconciling items | Yes, if independence holds |
| 7 | Audit trail with dispositions | Being unable to prove any of the above | End-to-end trace on a sample, every override with a reason | No |
| 8 | Risk-based approval routing | Unusual invoices passing unexamined | Approval matrix and a routed sample | Rarely |
| 9 | Exception queue with owner and age | Month-end bulk clearance that voids everything | Queue ageing, bulk-clearance events | Yes, if age is visible |
If your finance team is three people
Perfect segregation is arithmetically impossible below about five people in finance, and pretending otherwise produces a policy document nobody follows. Compensating controls are the honest answer:
- If one person handles both invoice entry and payment preparation, require a second signature on every payment above a low threshold and have someone outside finance — an owner, a board member — review a weekly exception report.
- Keep controls two and five manual and rigorous. They are the two that work best at small scale, and neither needs software.
- Accept that controls three, four and seven will not hold by hand, and treat that as a stated, dated exposure rather than a gap you have talked yourself out of.
Write the compensating control down, including what it does not cover. An auditor treats a documented compensating control very differently from an undocumented gap, and SOX compliance in accounts payable turns almost entirely on whether the reasoning was recorded at the time.
When to revisit the list
- Invoice volume crosses roughly 200 a month. This is where manual matching and duplicate detection stop working, and the change is gradual enough that nobody announces it.
- A new payment rail is added. ACH, wire and virtual card each carry a different fraud path, and the controls above were written against the ones you already had.
- Finance staff turn over. Institutional knowledge about which vendors warrant a second look leaves with the person who had it.
- An audit, a SOC 2 assessment, or diligence is scheduled. Not because the deadline matters, but because it is the one moment the organisation will fund the change.
One reason not to add controls: somebody bypassed an existing one. Adding a tenth control to a process where three are being overridden makes the overrides harder to see. Find out why the control was bypassed first.
Key Takeaways
- Definition: the ordered list of checks between an invoice arriving and money leaving, each paired with the failure it prevents and the evidence it leaves.
- Order first: controls 1 to 3 stop money leaving wrongly. Everything else shortens the time to discovery or makes the first three provable.
- The manual line: three-way matching, duplicate detection and the audit trail degrade into theatre at volume. The bank-change callback is the opposite — it works because a human leaves the system.
- What auditors actually find: not a missing control, but a missing disposition. An override with no recorded reason is indistinguishable from a control that never ran.
Related Terms
- Segregation of Duties in Accounts Payable — how to structure control one when the team is too small for it
- SOX Compliance for Accounts Payable — the documentation standard the evidence column is written against
- Three-Way Matching — control three in detail, including how to set the tolerance
- Vendor Master Data Management — where the phone number control two depends on has to already exist
- AP Audit Trail — what a defensible record contains, and why dispositions matter more than outcomes
Related Topics
Ready to automate your invoices?
See how Ken can extract invoice data in seconds, right in Slack. No credit card required.