Posting a scanned supplier invoice failed at three separate points, each of which left the clerk with no way forward but re-uploading the document. Exceptions can now be worked in place, and Simulate shows the journal the invoice would post.
Currency and Tax Code Are Resolved Properly
Extraction returns the currency as a three-letter code and nothing ever mapped it to a currency record, so posting failed outright. The code is now resolved, and the posting path walks a ladder of authority — document, purchase order, vendor master, company — refusing by name rather than quietly defaulting.
The tax code picker offered every configuration in the tenant: roughly 300 codes across eleven companies in both directions under near-identical labels, and picking another company’s code reached for an input-tax account that was never configured there. Both pickers now scope to the company and to input tax, the invoice’s company is the vendor’s company rather than the first one in the tenant, and a mismatched code is refused by name before the generic accounting error appears.
Exceptions Are Corrected in Place, and Simulate Shows the Journal
Exceptions could not be worked at all: an active vendor was compared against a status spelling no tenant stores, so every active vendor raised a vendor mismatch nobody could ever clear, and a document in exception could never be re-validated.
Clicking the exceptions cell now opens a correction dialog that edits the data and the GL coding in place and re-validates, resolving only the exceptions whose check actually passes. What gates correcting is the accounting record, not the approval step — an invoice can sit approved with exceptions open, and refusing to correct it there was the dead end. Re-checking a late correction does not demote a document an approver has already signed.
Simulate shows the journal the invoice would post, through the same engine the manual invoice screen uses. The invoice is built in memory and saved separately, so the preview is produced by the code that does the posting and cannot drift from it — and the preview’s blockers are the posting’s refusals, in the same words.