# Invoice Automation SOP — [Company name]

Document status: [Draft / In review / Approved] · Applies from: [date] ·
Owner: [role] · Review cycle: [quarterly]

This procedure covers the supplier invoice **as a document**: how it arrives,
how it is registered, read, checked, coded, posted and reconciled. Approval of
the spend itself, the payment run, and changes to payee master data are governed
by the separate [Accounts Payable Processing SOP].

## Purpose

Turn every supplier invoice that reaches [Company name], on any channel, into a
correctly coded posted record with the original document retrievable against it
— and make an explicit, written decision about what happens at each level of
extraction confidence, so that no figure enters the ledger without either
passing a validation check or being seen by a named person.

## Scope

In scope: arrival across [AP mailbox], [supplier portal(s)], [scan inbox] and
forwarded attachments; registration and identity; document classification;
field extraction; validation; duplicate detection; coding to account and cost
centre; posting to [accounting system]; reconciliation against supplier
statements.

Out of scope: approval routing for spend commitment, payment preparation and
release, and supplier bank-detail changes ([Accounts Payable Processing SOP]);
customer invoices we raise ([Billing SOP]); employee expense claims ([Expenses
SOP]); credit control ([AR SOP]).

## Owner

- Accountable for the day-to-day procedure: [AP Clerk].
- Accountable for coding rules and the chart of accounts mapping:
  [Management Accountant].
- Reviewing and approving changes to thresholds: [Financial Controller].
- Escalation for supplier-facing rejections: [AP Lead].

Nobody may hold both the extraction-review role and the payee-maintenance role
in [accounting system].

## Trigger

Event triggers:

- A message with one or more attachments arrives in [AP mailbox].
- A new document appears in [supplier portal] on the [daily 09:00] sweep, for
  portals that do not notify.
- A batch is scanned into [scan inbox].
- A colleague forwards an invoice from their own mailbox to [AP mailbox].

Scheduled triggers:

- [Daily 09:00] portal sweep.
- [Weekly, Monday] supplier statement reconciliation for statements received.
- [Working day 2] month-end sweep for documents registered but not yet posted.

## Inputs

| Input | System of record | Required |
| --- | --- | --- |
| The original document file, unmodified | [Document store] | Yes |
| Channel, sender and arrival timestamp | [Document store] | Yes |
| Supplier master: legal name, trading names, tax ID, default currency | [Accounting system] | Yes |
| Chart of accounts and cost centre list, with valid combinations | [Accounting system] | Yes |
| Coding history: what this supplier was coded to previously | [Accounting system] | Where it exists |
| Open purchase orders and goods receipts | [Purchasing system] | For PO-backed spend |
| Supplier statement | [AP mailbox / portal] | Monthly, where sent |

## Prerequisites

- Every channel that can receive an invoice is enumerated and watched. An
  unwatched channel is not a slow path, it is an invisible one.
- Supplier master records carry a default currency and a tax ID. Validation
  rules below depend on both.
- Confidence bands (D1) and the validation tolerance (D5) are written down and
  approved by [Financial Controller] before anything runs unattended.
- Retention is configured so the original document and its posted record stay
  retrievable for [retention period], independently of the mailbox or portal it
  arrived through.
- A named person is on the exception queue every working day.

## Steps

1. **Receive.** Take the document from the channel. Store the original bytes
   unmodified. Never let a downstream step overwrite the source file.
2. **Register.** Assign an internal document identifier, and record channel,
   sender, arrival timestamp and file hash. Registration happens before anything
   reads the content, so a document that later fails is still accounted for.
3. **Fingerprint for duplicates.** Compute a channel-independent fingerprint
   from supplier identity, invoice number, invoice date and gross total once
   those are known. → Decision **D2**.
4. **Classify.** Decide what the document is: supplier invoice, credit note,
   statement, delivery note, dunning letter, or not an accounting document at
   all. → Decision **D3**. Anything not an invoice leaves this procedure here.
5. **Split.** Where one file holds several documents, split it into separate
   registered documents, each inheriting the parent identifier as its origin.
   Where one document spans several pages, keep it whole.
6. **Extract fields.** Read supplier identity, invoice number, invoice date, due
   date, currency, net, tax, gross, tax ID, PO reference and line items. Each
   field carries its own confidence and a reference to where on the page it was
   read from. A field that was not found is recorded as absent, never as an
   empty string.
7. **Validate.** Run the checks that do not need judgment: line items sum to the
   stated net; net plus tax equals gross; tax rate is one of [permitted rates];
   currency matches the supplier default or is on the supplier's permitted list;
   invoice date is not in the future and not older than [age limit]; the
   supplier exists on the master file; the invoice number has not been seen
   before. → Decision **D5**.
8. **Route by confidence.** Apply the bands in D1 to decide whether the document
   posts untouched, goes to a person for a specific field, goes to a person in
   full, or is rejected to the supplier.
9. **Code.** Assign account, cost centre and, where used, project. Follow the
   supplier's established coding where the line description matches a known
   pattern. → Decision **D4**. A new account and cost centre combination is
   never assigned silently.
10. **Post.** Write the document to [accounting system] against the internal
    document identifier, so that a repeat attempt updates rather than
    duplicates. Attach the original document to the posted record.
11. **Hand over.** PO-backed invoices continue into matching and approval under
    the [Accounts Payable Processing SOP]. This procedure has no authority to
    commit spend.
12. **Reconcile.** On receipt of a supplier statement, compare it line by line
    against posted documents for that supplier. Surface only the residue:
    statement lines with no posted document, posted documents absent from the
    statement, and amount differences outside D5 tolerance.

## Decisions

**D1 — Confidence bands.** For each document, take the lowest confidence among
the fields that change the money (currency, net, tax, gross, supplier identity,
invoice number).

- At or above [high threshold] on all of them, with every validation check
  passed: post without a person.
- At or above [high threshold] except on one field: ask a person for that field
  alone, showing the page region it was read from.
- Below [low threshold] on any money-changing field: full human check, document
  beside the form.
- Below [low threshold] across the document, or unreadable: reject (E1).
- Any validation failure overrides the band. A confident figure that contradicts
  arithmetic is never posted unattended.

**D2 — Duplicate.** Same supplier, same invoice number: duplicate, whatever the
channel. Same supplier, same gross, same invoice date, no invoice number:
suspected duplicate, to a person. Attach the later arrival to the existing
record rather than creating a second one.

**D3 — Classification.** If the document does not state an amount payable by us
to the sender, it is not an invoice. Credit notes go to [credit note handling].
Statements go to step 12. Everything else is returned to [sender] or filed under
[other correspondence].

**D4 — Coding.** Use the supplier's most recent coding where the line
description matches a known pattern for that supplier. Where the pattern is new,
or the combination of account and cost centre has not been used for this
supplier before, route to the cost centre owner (A3) and write the resulting
rule back into this procedure.

**D5 — Validation tolerance.** Rounding differences up to [tolerance amount] on
gross are accepted and posted. Anything above goes to a person as a line-item
mismatch (E5). The tolerance is an amount, not a percentage of the invoice.

**D6 — Rejection.** Reject to the supplier only for: unreadable document,
missing legally required fields for [jurisdiction], or a document that is not
addressed to a [Company name] entity. Never reject for a coding question that we
can answer internally.

## Exceptions

| Code | Exception | Handling |
| --- | --- | --- |
| E1 | Unreadable scan or image | Register, do not extract. Request a re-send from [sender] with the document identifier quoted. Do not guess figures from a partial read. |
| E2 | Several documents in one file, or one document split across files | Split or join into registered documents before extraction. Record the origin file identifier on each. |
| E3 | Currency differs from the supplier default | Never convert automatically. Confirm the currency against the document and the contract with [AP Lead], then record the corrected default. |
| E4 | Missing or invalid tax ID | Post-blocking where [jurisdiction] requires it on a valid invoice. Request a corrected document; do not amend the supplier's document. |
| E5 | Line items do not sum to the stated total | Full human check. Read the printed total, not the computed one, and record which was correct. Transposed digits are the common cause. |
| E6 | Same invoice arrived on two channels | Attach the second arrival to the first record with its own arrival timestamp. Post once. |
| E7 | Not an invoice | Classify, route per D3, close the document. Track the rate: a rising rate usually means a channel is being used for something else. |

Every exception is recorded against the document identifier with its code, who
handled it, and what they decided.

## Approvals

| Ref | Action | Approver |
| --- | --- | --- |
| A1 | Post a document that passed every check inside the bands | None. Sampled review of [n] documents [weekly] by [AP Lead] |
| A2 | Confirm a single repaired field | [AP Clerk] |
| A3 | Accept a new account and cost centre combination | [Cost centre owner] |
| A4 | Post an invoice from a supplier not on the master file | [AP Lead], after onboarding |
| A5 | Reject a document back to the supplier | [AP Clerk], reason recorded |
| A6 | Accept a reconciliation difference above [tolerance amount] | [Financial Controller] |

A3, A4 and A6 remain human approvals permanently, regardless of how well the
automated steps perform.

## Output

- A posted accounting record carrying the internal document identifier.
- The original document, unmodified, attached to that record.
- The extracted fields with their confidence and source page region.
- An exception record where one applied, with its code and its resolution.
- A reconciliation position per supplier per statement period.

## SLA / KPI

| Measure | Definition | Target |
| --- | --- | --- |
| Time to register | Arrival to registered with an identifier | [target] |
| Time to post | Arrival to posted, for documents needing no person | [target] |
| Exception queue age | Oldest unresolved exception | [target] |
| Repair rate | Documents needing at least one field confirmed | Track the trend, not the level |
| Rejection rate by supplier | Documents returned to each supplier | Investigate any supplier above [threshold] |
| Duplicate catches | Second arrivals attached rather than posted | Track; a fall to zero usually means a channel stopped being watched |

Targets are set by [Financial Controller] against your own baseline. Do not
adopt figures from a vendor.

## Audit record

For every document, retain for [retention period]:

- The original file, unmodified, with its hash and arrival metadata.
- The identity of the payee, the amount, the date incurred and a description of
  what was bought — the fields a supporting document is expected to show, kept
  in a form that survives the mailbox the invoice arrived in.
- Proof of payment, linked from the payment record created under the [Accounts
  Payable Processing SOP].
- Who approved what, when, and which version of this procedure was in force.
- The extracted values and their source regions, so a figure in the ledger can
  be traced back to the pixel it came from.

The same expectations apply whether records are kept on paper or in an automated
system. Confirm the retention period that applies to [Company name] with
[accountant / tax adviser]; three years from the filing date is a common
starting point in the United States but is not universal.

## Revision log

| Version | Date | Change | Author |
| --- | --- | --- | --- |
| 0.1 | [date] | Initial draft from the all-agents invoice automation playbook | [name] |
| | | | |

Adapted from the invoice automation playbook at
https://www.all-agents.io/solutions/finance-accounting/invoice-automation —
educational material about process design, not financial, accounting or tax
advice.
