| Issuing software | Creator and Producer compared with the issuer's known invoices | Word, Canva, a PDF editor or a Python script where the vendor uses its ERP |
| File writing style | Object order, compression, cross reference table: the library that wrote the PDF | An invoice born in Chrome rewritten by MuPDF, qpdf or pypdf, whatever Producer it shows |
| Displayed and stored text | Each amount compared with its character map | 50,900.00 on screen, 50,400.00 in the file |
| Versions and dormant objects | Versions appended at the end of the file, old page content | The original number and date found under the new ones |
| Fonts | Embedded fonts, subsets and encoding, compared with the vendor's template | A font added next to the template's own to retype an amount |
| Image | On a scan or photo: cloned areas, white patches, text laid over, AI generation | Bank details or a total pasted over the original image |
| Arithmetic | Lines, subtotal, sales tax, freight, credits and total due | A correct total on wrong lines, a tax rate that does not match the amount |
| Invoice number and PO | Number sequence, invoice and due dates, purchase order reference | A number outside the vendor's sequence, a PO that does not exist |
| Vendor and bank details | Name and EIN against the W-9 on file, routing number, account against your vendor master file | A name that does not match the EIN, a new account, a bank in another state or country |
| Duplicates | Vendor, amounts, lines and period compared with invoices already received | The same service under another number, or sent again as a scan |