LensReading which lens this session carries.
All contracts

CTR-AP-AUTOMATION · version 2

Invoice Capture and AP Automation — Supplier invoices

The highest-volume contract on the estate and the one the AI GBS towers depend on most directly.

RatifiedIn contract

What the contract says

These are the terms the connector is generated against. A source that stops matching them is a drift finding, not a silent data change.

Entity
Supplier invoice · bidirectional
Primary key
invoiceId
Declared volume
82,000 records a day
Freshness commitment
30 min
Owner
M. Okonjo · Shared Services Technology
Vendor
Basware · high criticality · modeled
Cardinality
One invoice to many lines and to at most one purchase order. An invoice with no purchase order is valid and routes to the non-PO exception class.
Write-back rule
Block, unblock and coding proposal are in scope. Payment release is not, and never will be under this contract.

Review state

Neither review is performed by the team that wrote the contract.

Security reviewApproved
R. Osei · Jul 16, 2026
Privacy reviewApproved
Helena Marsh · Jul 22, 2026

Validation and drift

Drift is only detectable on a contract that has been read against a sample.

Last validatedAug 9, 2026 · 9 d ago
15,000 records read in the sample.
Validated against 15,000 captured invoices. Shape held.

The field list

6 fields · 1 key · 0 personal. The validation rule on each row is what admits or rejects a record at the staging boundary.

FieldSourceTargetTypeFlagsDriftValidation
Invoice idinvoice.idinvoice.refuuid
keyinternal
In contractSource-generated. Idempotence key for the whole feed.
Supplier idinvoice.supplierIdinvoice.supplierRefstring(10)
internal
In contractMust resolve to an active supplier record.
Gross amountinvoice.grossAmountinvoice.grossdecimal(15,2)
internal
In contractPositive. Credit notes arrive as a separate document type, not as a negative invoice.
Currencyinvoice.currencyinvoice.currencystring(3)
internal
In contractISO 4217. An unknown code quarantines the invoice.
Captured image referenceinvoice.docRefinvoice.imageRefstring(120)
internal
In contractPointer only. The image itself stays in the source system and is never copied into the spine.
Confidence scoreocr.confidenceinvoice.captureConfidencedecimal(4,3)
internal
In contractBetween 0 and 1. Below 0.82 the invoice is admitted but flagged for the exception queue rather than straight-through.

What has passed the staging boundary against this contract

3 batches · 13,297 arrived · 13,062 admitted · 189 quarantined · 46 rejected

BatchArrivedInAdmittedQuarantinedRejectedResultGate
STG-0006Aug 18, 08:004,4104,3571934Partly admitted4,357 admitted · 19 quarantined · 34 rejected outright.
STG-0007Aug 18, 07:004,2854,1421430Partly admitted4,142 admitted · 143 quarantined · 0 rejected outright.
STG-0008Aug 18, 06:004,6024,5632712Partly admitted4,563 admitted · 27 quarantined · 12 rejected outright.

Rejects raised against these batches

5 reasons covering 235 records. Each one names a field, what was observed and what the contract expected.

Currency code not in the declared standard34 records · 1 h oldFix at source
Observed: 2 codes that are not ISO 4217
Expected: An ISO 4217 code
STG-0006 · field currency · queue reject · M. Okonjo
Capture confidence above the declared range19 records · 1 h oldOpen, no owner
Observed: Values above 1 on 19 documents
Expected: Between 0 and 1
STG-0006 · field captureConfidence · queue quarantine · no owner assigned
Counterparty not matched to the supplier master143 records · 2 h oldOwner assigned
Observed: Scanned invoices with no supplier number on the face
Expected: An active supplier record
STG-0007 · field supplierId · queue quarantine · M. Okonjo
Currency code not in the declared standard12 records · 3 h oldFix at source
Observed: A single non-standard code
Expected: An ISO 4217 code
STG-0008 · field currency · queue reject · M. Okonjo
Capture confidence above the declared range27 records · 3 h oldOpen, no owner
Observed: Values above 1 on 27 documents
Expected: Between 0 and 1
STG-0008 · field captureConfidence · queue quarantine · no owner assigned

Replay windows

1 window recorded against this contract.

RPL-002Completed
Connector defect · Jul 22, 2026 to Jul 23, 2026
The capture confidence field was truncated to two decimals for one day, pushing borderline invoices into the exception queue.
9,140 replayed · 8,871 held at the idempotence key · 0 duplicates created

Write-back routes into this system

2 routes designed against Invoice Capture and AP Automation.

release-for-payment · InvoiceDesigned, never live
WB-AP-01 · agent · authority PR9-AUTH-A1 · policy PR9-POL-200
4 attempted · 0 written to a production system
request-supplier-clarification · InvoiceDesigned, never live
WB-AP-02 · agent · authority PR9-AUTH-A1 · policy PR9-POL-200
2 attempted · 0 written to a production system

What goes stale when this feed does

4 asserted figures depend on Invoice Capture and AP Automation. The rule on each row is what the surface does when the feed misses its commitment.

FigureWhere it is shownRoleOn staleNote
Transactions processed each weekAI GBS towerscontributingMark it staleInvoice capture is the largest single stream in the count.
Supplier invoice value clearedReconciliation ledger REC-01contributingMark it staleCapture supplies the document side of the match.
Touchless processing rateAI GBS towersprimaryMark it staleStraight-through invoices are counted at capture. A stale capture feed freezes the rate at yesterday.
Units held in intake quarantineIntake qualityprimaryMark it staleMost held units are captured documents. A stale capture feed makes the queue look shorter than it is.
What this contract is, and what it is not

A contract, a validation rule, a freshness commitment and a replay path are real mechanisms and they are what this wave builds. What they are not is a connection. No connector on this estate is attached to a customer instance, so every batch, every replay and every write-back attempt recorded here ran against a modeled extract or a sandbox, and the registry keeps saying modeled.

The last validation read 15,000 records 9 days ago, which is 18% of a single day at the declared volume. A sample proves the shape of what it read and nothing beyond it.