Process

Every document present,
valid, and agreeing with the others.

A case file arrives as a heap: bundled scans, phone photos, documents past their window, sometimes a document belonging to somebody else. Holofin splits them, classifies them, reads them, then judges the case: what is missing, who owes it, and what does not line up from one document to the next.

Documents recognised from their content, never their filenameGaps listed participant by participant
CASE-2026-1174Credit application
INCOMPLETE
Completeness8 / 11
Identity documentApplicant
1 / 1
Payslips3 distinct months
3 / 3
Proof of addressGuarantor
missing
Payslip employer = contract employer
KO
Proof of address older than 3 months
in review

The verdict is recomputed on every document received, every corrected value, and every registry lookup that lands.

Today

The checking is done by eye,
document by document, case by case.

A case handler opens a file, runs down a list held in their head, checks the dates, compares two names, then writes to the customer. The work is repetitive, and that is exactly why things slip through it.

Documents arrive as a heap

An eighteen-page PDF, two photos taken at an angle, an email with four attachments. Nothing is named, nothing is sorted.

Documents past their window

A proof of address from last year, a company registration extract eight months old, a residence permit that expired last week. The date is printed on the page; somebody still has to look at it.

Identities that do not line up

The bank statement is in a married name, the identity document in a birth name, and the payslip names a third employer again.

Chasing in instalments

You ask for one document, it arrives, and it uncovers the next one that is missing. Three round trips later the case has taken two weeks.

Documents that are not authentic

A payslip whose net pay was edited inside the PDF, a statement whose closing balance was corrected. Complete, the document is; authentic is a different question.

Documents read

The documents in a case file
are read together, not one at a time.

Each document type has its own fields and its own internal checks. In a completeness check, what matters most is what they say to each other.

Identity document

The reference identity of the case: the one every other document has to confirm.

Payslip

Employer, pay period, gross and net. Three payslips means three distinct months, and gross minus deductions has to give the net that is printed.

Bank statement

Account holder, IBAN and period. A statement in somebody else's name is a gap, not a detail.

Employment contract

Employer, role, start date and contract type. The payslips have to name the same employer as the contract.

Proof of address

A dated document, whatever form your policy accepts. How fresh it has to be is part of the policy, not a habit.

Company registration extract

For a business case: legal name, registered address, officers and VAT number, to be held against the rest of the file.

Steps

From an unsorted upload
to a verdict that explains itself.

Five steps, always the same five, whatever shape the case file arrives in.

1

Intake

The case arrives over the API, from an upload portal, over SFTP, or into a dedicated mailbox. PDFs, images, bundled scans, photos taken on a phone: everything comes in through the same door.

2

Split and classify

A single file is cut into separate documents, then each document is recognised for what it is. The filename is never used as a source of truth: the decision is taken on what the pages contain.

3

Read

Each document returns its fields, together with the area of the page the value was read from. That traceability earns its keep later: a comparison that fails can be followed back to the pixels that produced it.

4

Check

Presence, validity and consistency are evaluated together, once per participant. The rules come from your policy, not from a generic checklist shipped with the product.

5

Verdict

One state per case, and the list of gaps that explains it: what is missing, who to ask for it, and what does not agree. Precise enough that a single follow-up covers the lot.

Controls

A checklist knows what it expects.
This one knows who owes it.

Requirements belong to participants, not to the file. A co-applicant brings their own identity document; a guarantor brings a different set entirely. The same policy therefore expects a different pile depending on who is actually on the case.

Presence

Is everything expected here, in the right quantity, for every participant?

  • Participants are declared as a type and a count: one borrower who may be one or two people, at most one guarantor.
  • Three statements means three distinct periods, not the same month sent three times.
  • Some documents are only required under a condition: the account holder's identity document, and only when the statement is not in the applicant's own name.

Validity

Is each document still acceptable, and does it hold together on its own terms?

  • Freshness: a company registration extract issued within three months, a proof of address from the current quarter, an identity document that has not expired.
  • Legibility: a cropped or blurred photo is reported as unreadable rather than read badly.
  • Arithmetic inside the document: gross minus deductions has to give the printed net, and the VAT on an invoice has to follow from its own lines.
  • A bank statement has to balance: opening + credits - debits = closing, and the running balance has to hold line by line.
  • Identifiers are recomputed, not eyeballed: IBAN check digits by mod-97 as ISO 13616 defines them, card numbers by Luhn.

Consistency

Do the documents contradict each other, or contradict what the customer declared?

  • The account holder on the statement is the person on the identity document.
  • The employer on the payslips is the employer on the employment contract.
  • The address on the proof of address is the declared address, allowing for the ways an address gets written.
  • The income on the payslips is the income the statement credits, within the tolerance you set.

These rules are written in plain language by the people who own the policy, then compiled: the compiled line is shown next to the description, so it can be read back and argued with.

Validation

A document can look immaculate on screen
and be wrong in five different places.

No single control is enough on its own. Holofin inspects every file, then every case, through five complementary levels: from the bytes of a PDF up to the consistency of a whole case file.

01

Structural

Has the file been tampered with?

On any PDF

Metadata, successive saves, layers and masking rectangles, fonts and pixels. No prior model needed: it runs on the first document you send.

02

Issuer-specific

Does it look like what this issuer produces?

Per issuer

A fingerprint learned from a handful of authentic documents per issuer: producing engine, embedded fonts, logo position, page geometry. Where an issuer prints a signed barcode or digital seal, this is also where it is decoded, its signature verified, and the sealed values compared with the ones printed on the page.

03

Content

Do the values hold together?

Per document type

Rules belonging to each document type: IBAN check digits by mod-97, Luhn on a card number, VAT arithmetic, the balance equation on a statement, a net that follows from the gross. A document can be structurally clean and still lie.

04

Business

Does it describe something that exists?

External data

Company identifiers, officers and VAT numbers held against verified sources. A perfectly consistent document can describe a company that does not exist, has stopped trading, or is run by somebody else.

05

Case file

Do the documents agree with each other?

Whole case file

Cross-checks from one document to the next — names, income, addresses, IBANs — and comparison with the expected values you already hold. Making one document convincing is feasible; keeping six of them in agreement is a great deal harder.

Levels 01–02: forensic models, with nothing for you to configure.

Levels 03–05: rules written in Hololang, our natural-language rule engine — described by the people who know the policy, not by the engineering team.

Signals from all five levels consolidate into one verdict, each with the evidence behind it: the case passes, goes to review, or stops.

Example

One case file,
scanned into a single 14-page PDF.

An applicant and a guarantor. The file is called case_final_v2.pdf and the pages are in no particular order.

What was identified

Identity documentp. 1–2 · applicant
Payslipsp. 3–5 · 3 months
Employment contractp. 6–9
Proof of addressp. 10
Identity documentp. 11–12 · guarantor
Bank statementsp. 13–14 · applicant

Six documents, two participants, out of one file whose name said nothing at all.

What the verdict says

Missing

Proof of income for the guarantor

The only payslips in the file belong to the applicant. The policy expects proof of income from each participant, so this is a missing document and not a missing field.

Inconsistency

Payslip employer is not the contract employer

"Vallona Ltd" on the payslips, "Vallona Group Ltd" on the employment contract. Both values and the pages they were read from are attached to the gap.

In review

Proof of address five months old

Past the freshness window, but not by much. The case goes to a reviewer instead of being refused on its own.

One follow-up, three points, sent the same day — instead of three follow-ups spread over two weeks.

Decision

Holofin checks and reports.
The decision stays with your teams.

A completeness check does not refuse a case. It says what is missing, what does not agree, and how certain it is. You set the thresholds: what passes on its own, what goes to review, what stops.

An ambiguous case is escalated, never ignored

A married name against a birth name, an address written two different ways, an employer whose legal name has changed: the case goes to review with the reason, the two values that were compared, and the document each one came from.

A rule that no longer applies to anything is reported

When the policy changes and a check ends up covering nothing, it is raised rather than quietly skipped. A control that has stopped running is a hole, not a saving.

Nothing is decided automatically on your behalf

Article 22 of the GDPR governs decisions taken solely by automated means where they carry a legal effect. The verdict is there to prepare the decision, not to take it.

What is kept behind every verdict

Policy version
credit-2026.3
Engine version
hololang 4.2
Date the checks were pinned to
2026-10-02
Value used by each comparison
with its source document and page
Decisions and policy edits
kept append-only

A case judged a year ago can be re-read under the rules that applied at the time: that is what makes the answer defensible in front of an auditor.

Integration

The verdict lands
where the case is already handled.

Nobody wants one more tool to open. The state of the case and its list of gaps go back to the system your teams already work in, in whichever form plugs in fastest.

REST API

You post the case, you read the verdict back. Fields, gaps and sources in the same response.

Webhooks

The case changes state on every document that arrives, and you hear about it without polling in a loop.

SFTP

Drop and collect in batches, for the chains that already run overnight.

Document management system

The split and named documents go back filed, each with its recognised type and the participant it belongs to.

Upload portal

The customer uploads, the check runs immediately, and what is still missing appears before they leave the page.

Dedicated mailbox

For the cases that still arrive as an attachment, without changing anything the sender is used to.

Frequently asked

About completeness checking

No. The filename is never used as a source of truth. Holofin classifies each page on its content, then splits a bundled PDF into separate documents. A single twelve-page scan holding an identity document, three bank statements and a tax assessment is recognised as five documents, even when the file is called scan0001.pdf.
Yes, and that is where it starts. The list is described as a policy: participants (one borrower who may be one or two people, at most one guarantor), the documents each of them owes, the quantities expected and the conditions. The policy is versioned, and the people responsible for it write it in plain language without going through the engineering team.
The case produces a list of gaps that tells three different things apart: a document that is absent, a field that is absent inside a document that is present, and a participant who is absent. Each gap names the person who owes it, so one follow-up covers everything still outstanding instead of arriving in four instalments.
They are two complementary controls. Completeness answers whether everything is here and consistent. Document fraud detection answers whether a given document is authentic. Holofin runs both over the same case: fraud signals surface next to the completeness gaps, inside the same verdict.
The case is escalated explicitly rather than quietly waved through. A married name that differs from a birth name, an address written two different ways, an employer whose legal name has changed: these go to review with the reason, the two values that were compared, and the document each one came from. The decision stays with your teams.
Every evaluation stores the policy version, the engine version, the date the checks were pinned to, and the value each comparison used together with the document it was read from. Decisions and policy edits are kept append-only. A case judged a year ago can be re-read under the rules that applied at the time.

Let us run Holofin on your case files

Send us a handful of real cases, including the ones that gave you trouble. We hand back the list of documents recognised, the gaps, and the inconsistencies, for you to compare with your own.

GDPR compliant European hosting An audit trail behind every verdict
Holofin