Pular para o conteúdo principal

Cross-check

Not yet checked on the product

This chapter was written from the product's source code and has not yet been checked by a person on a running Cogneris. If what you see on screen differs, the screen is right — please tell your Cogneris contact so the chapter can be corrected.

Compares values of a case with each other — a field of one document against a field of another document, against what the customer typed in the form, or against process data — and publishes a verdict for each rule and for the whole case. A divergence never rejects a case: it marks the case for human review.

PaletteNodes › Cross-check
OutputsOne output. The phase never branches; it writes a decision (pass or review) that a later phase reads — see Use the decision.
Content statusFrom source; not observed (workflow-fe f88c5c1, workflow-be 6703373, comparison rules from vision-be fce7fcc, 2026-10-22)

When to use it​

  • After Extraction (or Zero Shot), when two documents of the same case must agree — the name on the ID and on the proof of address, the amount on the proposal and on the payslip.
  • When a document must agree with the form — the document number the customer typed against the one read off the ID.
  • Before Manual Review, so the reviewer sees which rules diverged and on which documents.

The Identity verification and Business onboarding workflow templates include this phase.

What happens in a run​

  1. The case is gathered. The phase reads the documents of the run with their type, template, checklist slot and extracted fields, the form answers, and the process data. Extracted fields are addressable by their full dotted path and by their short name (for example both caderneta.distrito and distrito). Placed after a Manual Review, the phase still finds the documents and fields of the phases before the review.
  2. Each rule is resolved into pairs of values. For each side (Compare and With):
    • Document: every document of the case that fills the chosen role. The role is matched by checklist slot first, then by template, then by classified document type. If several documents fill it, each pairing is a separate comparison (a document is never compared with itself). At most 10 pairings per rule are compared; when a rule has more, the rest are dropped and the rule's reason says truncated_to_10_combinations.
    • Form answer: the value of that form answer.
    • Process data: the value of that process field. Process data includes identifier, requester.name and today (the day the check runs, yyyy-MM-dd).
  3. The pairs are compared. Every pair is compared by its rule's Comparison (see Comparisons). All non-face rules go to the comparison service in a single call; face rules go to the face-matching service, one call per pairing.
  4. Each rule gets one verdict: match, mismatch, inconclusive or notApplicable, combined from its pairings as described in How a rule's verdict is combined.
  5. The case gets one decision: pass when no rule is mismatch or inconclusive; otherwise review. Rules that are notApplicable do not prevent a pass.
  6. Implicated documents are marked. Every document involved in a rule that did not match is recorded with the ids of those rules, so the review screen can show the reviewer why the document is in front of them.

The phase adds a crossCheck block to the run's data: decision, a summary (total, match, mismatch, inconclusive, notApplicable), and one entry per rule in checks (rule id, name, comparison, verdict, score, method deterministic or ai, reason, and the values compared). When the case has face rules and no earlier Facematch phase ran, the face results are also published as a facematch block, so the review screen can show the face conference.

Comparisons​

ComparisonHow two values are comparedCan Let AI settle close calls decide it?
Person nameName particles are ignored. The same names, or the same names in another order, match. When one name is contained in the other (also abbreviated, such as an initial for a first name), or they share at least half their names, the pair is a close call. Otherwise they do not match. Accept a surname changed by marriage is passed with the pair; the first, rule-based pass does not use it, so it only matters for close calls settled by AI.Yes
TextEqual when they are the same ignoring case, accents and extra spaces. Any other difference is a close call.Yes
ExactCharacter-for-character equality. No normalization.No
Document numberOnly the digits are compared. Equal digits match. A masked number matches when it shows at least 4 digits and they are the end of the other number. Other differences do not match. A value with no digits is inconclusive.No
DateBoth values are read as dates; the same day matches, a different day does not. A date that cannot be read (for example written out in words) is a close call.Yes
AmountBoth values are read as numbers, in either 1.234,56 or 1,234.56 style, ignoring currency symbols. They match when the difference is within the tolerance: the absolute tolerance when it is set (it wins), otherwise the percentage of the larger value, otherwise zero. A value that cannot be read is inconclusive.No
AI judgementAlways decided by AI, using the question you write for the pair.Always
Face matchCompares the face on the Compare document with the face on the With document. Put the selfie on With. Both sides must be documents. No face found, more than one face, or a failed call is inconclusive.No

A side with no value — the document does not carry the field — makes the pair inconclusive, never a mismatch.

A close call is decided by AI when Let AI settle close calls is on. When it is off, close calls come back inconclusive and go to review.

How a rule's verdict is combined​

SituationRule verdict
A side names a document role that no document of the case fills, and When the document is missing is Send for reviewinconclusive (reason role_not_present)
The same, and When the document is missing is Skip the rulenotApplicable
When several documents match is Any one is enoughmatch if any pairing matches; otherwise mismatch if any pairing does not match; otherwise inconclusive
When several documents match is All must agreemismatch if any pairing does not match; otherwise inconclusive if any pairing is not a match; otherwise match
When several documents match is Only the firstOnly the first document on each side is used, so the rule has one pairing and takes its verdict
The comparison service refuses or fails the call after its retryEvery rule of that call is inconclusive, with the service's reason

When the document is missing applies only to a missing document role. A document that is present but lacks the field is a missing value, which is inconclusive whatever this option says.

The rule reports the pairing that decided its verdict, and lists every pairing tried as evidence.

Use the decision​

The phase has a single output: the run always continues to the next phase. To treat a review differently, either place a Manual Review after it (a manual review that would approve on its own never does so when a cross-check ran — see Manual Review), or add a Conditional that tests the field crossCheck.decision.

When the phase fails​

The phase fails the run only for a structural problem: no rules, or no documents. A temporary failure of the comparison service is retried once; after that, the rules are recorded as inconclusive instead of failing.

Examples​

Three cases, each with the rules a company would set up. The field names are illustrative: yours are the field names of your own extraction templates and the keys of your own form.

Bank: opening an account remotely​

A customer opens an account from their phone. The form asks for their name, document number, date of birth and address; they send their identity card, a proof of address and a live selfie. The bank wants to stop mule accounts — an applicant using someone else's documents, or documents that do not belong together.

Rule nameCompareWithComparisonSettingsWhat it catches
Name on the IDDocument Identity card › full_nameForm answer fullNamePerson name—The applicant typed one name and sent someone else's ID. Names in another order, or with particles left out, still match.
Document numberForm answer documentNumberDocument Identity card › document_numberDocument number—A mistyped or invented number. Dots and dashes do not matter; a masked number matches when its last 4 or more digits agree.
Date of birthDocument Identity card › birth_dateForm answer birthDateDate—A different date — a frequent sign of a borrowed ID.
AddressDocument Proof of address › addressForm answer addressTextLet AI settle close calls onA different address. Abbreviations such as Av. for Avenida are close calls the AI settles.
Proof of address holderDocument Proof of address › holder_nameDocument Identity card › full_namePerson nameAccept a surname changed by marriage onA bill in someone else's name. A married surname is expected, not a fraud sign.
SelfieDocument Identity cardDocument SelfieFace match—The person in the selfie is not the person on the ID.

When every rule matches, the decision is pass and the case continues without a person. When the face does not match, or any rule diverges, the decision is review: the case goes to the Manual Review that follows, and the reviewer sees which rule diverged and on which documents.

Bank CAN on Cogneris: Catching a mule-account application with face match and cross-checks (em inglês) Assistir no YouTube

Insurer: an insurance claim​

A policyholder reports a claim through the Portal and sends the policy, the incident report, the repair invoices, their identity card and a bank statement for the payment. The insurer wants to pay clear claims quickly and send the doubtful ones to an adjuster.

Rule nameCompareWithComparisonSettingsWhat it catches
PolicyholderDocument Policy › holder_nameForm answer fullNamePerson name—A claim filed by someone who is not the policyholder.
Policy numberForm answer policyNumberDocument Policy › policy_numberDocument number—A claim against the wrong policy.
Incident dateForm answer incidentDateDocument Incident report › incident_dateDate—The date told in the form and the date in the report do not agree.
Policy in forceDocument Policy › coverage_periodForm answer incidentDateAI judgementIs the incident date inside the coverage period of the policy?An incident before the policy started or after it ended. A plain Date comparison only checks for the same day, so this question needs the AI.
Amount claimedForm answer amountClaimedDocument Repair invoice › totalAmountTolerance (absolute) 50A claimed amount that differs from the invoice by more than 50.
Invoices addressed to the policyholderDocument Repair invoice › customer_nameForm answer fullNamePerson nameWhen several documents match: All must agreeOne invoice, among several, issued to someone else. With All must agree, a single divergent invoice is enough to send the claim to review.
Bank account holderDocument Bank statement › account_holderDocument Identity card › full_namePerson nameWhen the document is missing: Skip the ruleA payment to someone else's account. The bank statement is optional in this form, so a claim without one is not held for review.

A claim whose rules all match continues straight to payment; any mismatch or inconclusive rule sends it to the adjuster with the divergent documents marked. The video below (in Brazilian Portuguese) follows a claim checked by 14 such rules.

Sinistro, passo a passo (3/6): As 14 regras que conferem um sinistro automaticamente Assistir no YouTube

Bank: a mortgage application​

An applicant sends their last three payslips, their tax return, their identity card and the property's land registry record. The form asks for their declared monthly income and the property's district.

Rule nameCompareWithComparisonSettingsWhat it catches
Income on every payslipDocument Payslip › net_salaryForm answer monthlyIncomeAmountTolerance 10 %; When several documents match: All must agreeA declared income no payslip supports, or one payslip that is far off the others. Each of the three payslips is compared with the form.
Name on every payslipDocument Payslip › employee_nameDocument Identity card › full_namePerson nameWhen several documents match: All must agreeA payslip that belongs to someone else.
EmployerDocument Payslip › employerDocument Tax return › employerTextLet AI settle close calls on; When several documents match: Only the firstThe employer on the tax return is not the one paying the salary. ACME, S.A. and Acme SA are close calls the AI settles.
Property districtDocument Land registry record › distritoForm answer propertyDistrictText—The property described in the form is not the one in the registry record.

The income rule shows why When several documents match matters: with Any one is enough, a single payslip close to the declared income would pass; with All must agree, every payslip has to support it.

Bank CAN on Cogneris: Mortgage documents to signed declaration in minutes (em inglês) Assistir no YouTube

Reading the result​

In all three cases the phase adds the same crossCheck block to the run (see What happens in a run): one decision for the case, and one entry per rule in checks with its verdict and the values compared. To route on it, add a Conditional on the field crossCheck.decision, or place a Manual Review after the phase, which never approves on its own a case whose cross-check asked for review.

Configuration​

The panel shows the hint Compare a field of one document against a field of another, or against what the customer typed in the form., one block per rule, Add rule, and Let AI settle close calls.

FieldWhat it doesRequiredFormat / valuesDefaultValidation messages
DescriptionName shown on the node.NoTextCross-check—
Rule nameNames the rule for the reviewer and in the results.NoTextEmpty—
Compare › SourceWhere the first value comes from.YesDocument, Form answer, Process dataDocument—
Compare › DocumentThe document role. Shown when Source is Document.Yes, for DocumentSelect a document…, then the workflow's checklist slots (by title, or Checklist slot #… for a slot without a title), then your templatesSelect a document… (none)Could not load your templates. You can still type a document type and a field name.
Compare › FieldThe field to read. Hidden for Face match. When Document is a template, the field names of the template are suggested.Yes, except for Face matchField name or dotted path; for Form answer the answer's key; for Process data identifier, requester.name or todayEmpty—
With › Source, Document, FieldThe second value, same options as Compare. For Face match, the selfie.As for CompareAs for CompareAs for CompareAs for Compare
ComparisonHow the two values are compared.YesPerson name, Text, Exact, Document number, Date, Amount, AI judgement, Face matchText—
Accept a surname changed by marriageTells the AI that a surname added or replaced by marriage is expected. Shown for Person name.NoOn / offOff—
Tolerance (%)Allowed difference as a percentage of the larger amount. Shown for Amount.NoNumber, 0 or moreEmpty (no tolerance)—
Tolerance (absolute)Allowed absolute difference, in the amount's own unit; wins over the percentage. Shown for Amount.NoNumber, 0 or moreEmpty—
Instruction for the AIThe question for the AI. Shown for AI judgement; the box suggests What should the AI judge about this pair?Yes, for AI judgementTextEmpty—
When several documents matchHow the pairings of a rule are combined.NoAny one is enough, All must agree, Only the firstAny one is enough—
When the document is missingWhat a document role that no document fills means.NoSend for review, Skip the ruleSend for review—
Let AI settle close callsLets the AI decide pairs the rule-based comparison cannot settle. Applies to every rule of the phase.NoOn / offOn—

Checklist slots are offered only once the workflow has been saved.

Buttons and actions​

ButtonWhat happensReversible?
Add ruleAdds an empty rule (Text, both sides Document). It is saved once you change one of its fields.Yes — remove it
× (Remove rule)Removes the rule. The phase's other settings, such as Let AI settle close calls, are kept. With no rule left the panel warns Add at least one rule: a cross-check without rules fails the run.Add the rule again

Common problems​

MessageCauseWhat to do
Could not load your templates. You can still type a document type and a field name.The template list did not load.Reload the editor. The Document list keeps the checklist slots.
Cross-check step has no rules configured. Add at least one rule, or remove the step. (run error)The phase has no rule.Add at least one rule and publish again.
No documents found for cross-check. (run error)The run reached the phase with no documents.Check the phases before it and what the process was started with.
A rule is always inconclusive with reason role_not_presentNo document of the case fills the role — wrong template, or the document type differs from the one classified.Check the role; use Skip the rule if the document is optional.
A rule is inconclusive with reason missing_valueThe document does not carry the field, or the field name is wrong.Check the field name against the extraction result.
A Face match rule is inconclusive with reason face_needs_two_documentsA side of the face rule is not a document.Set both sides to Document.
Reasons starting with rejected: or call_failed:The comparison service refused or failed the call.The case goes to review; the reason names the cause.

Last reviewed 2026-10-22 · Version 1.1.0 · Owner: product-documentation