A payment document, read against the data we hold

Upload an MT103, a pacs.008 or a bank payment confirmation. We read what is on it, then put each fact to the reference data we keep for cross-border payments: the BIC directory, the correspondent routes banks publish and the routes we have observed, sanctions lists, and the record the payment network holds for the reference the document carries.

The report names every check and gives its result. Where a check cannot be answered, it says so in words instead of guessing.

The report, as it comes out

Below is the report our engine produces, with sample banks in place of real ones. The sentences in it are the engine's own words, not a description of them.

Sample report Consistent with SWIFT records Read as a SWIFT customer credit transfer (an MT103, or its ISO 20022 successor, pacs.008).

Checks

  • Passed. Read as a whole, the layout and wording of the document match ordinary bank or SWIFT output.
  • Passed. The document carries a UETR.
  • Passed. The UETR has the structure of a reference SWIFT issues.
  • Passed. The SWIFT gpi tracker holds a record for this UETR.
  • Passed. The amount on the document matches the amount the SWIFT gpi record holds for this UETR.
  • Passed. Every bank code on the document matches a bank in the SWIFT directory.
  • No finding. No wording pattern known from non-genuine documents matched. This is not a positive finding.
  • Passed. The sender and receiver in the message header agree with the banks in fields 52A and 57A.
  • Passed. Every account on the document in the form of an IBAN passes the IBAN checksum.
  • Passed. Field 32A has the form SWIFT requires: a six-digit date, a currency code and an amount.
  • No finding. No command-prompt or menu text was found. This is not a positive finding.
  • No finding. No template text was found in the party and account fields. This is not a positive finding.

Correspondent chain

  • SAMPLE SENDING BANK (BANKDEFF) publishes SAMPLE BENEFICIARY BANK (BANKUS33) as a correspondent for USD.

Sanctions

Sanctions screening is reported beside this result and never changes it. It covers only the names read off the document.

What this means

This says the document is internally consistent and agrees with the records we can see. It is not confirmation that a payment was made or that money arrived. We are not a bank and we are not a party to this payment. Confirm any payment with your own bank before you release goods, property or funds.

The checks available line up with a real payment, but still confirm receipt with your own bank before you release goods, property, or funds.

This is an informational consistency check against SWIFT/GPI records, not legal advice. Confirm any payment directly with your own bank before you release goods, property, or funds.

What each check reads from

A document on its own can only be checked against itself. These are the outside facts we already keep for cross-border payments, and what each one can settle about one document.

  • The BIC directory. Every live bank code, its status, its country and the town the directory gives for it. A code on the document either resolves to a bank or it does not, and the report says which.
  • Correspondent routes, as banks publish them. Settlement instructions are filed per currency, so the question for each hop is whether the sending bank publishes a correspondent account with the next bank in the currency on the document. Our correspondent banking data
  • Correspondent routes, as we have observed them. Banks under-publish, and an instruction nobody filed looks exactly like a relationship that does not exist. So the same hop is also put to the routes we have seen on other payment documents since December 2025. A route we have seen before withdraws that negative; it never adds a positive, because a copied route is the easiest thing in the world to copy.
  • The payment network record. Where the document carries a UETR, the reference is looked up on the network and the amount on the document is compared with the amount the record holds. An absent record is reported as absent, with the note that a new record can take time to appear.
  • Sanctions lists. The party names read off the document are screened, and a possible match is reported beside the result rather than folded into it. A name match alone does not mean a party is sanctioned. Our sanctions screening
  • The document's own structure. An account in IBAN form has check digits that either hold or do not. An MT message header either agrees with the banks named in its own fields or does not. Field 32A either has the shape the message standard requires or does not.
  • The file, where there is one. A born-digital PDF carries the tool that produced it and the dates it was created and modified. Bank template engines are known to us and are not read as editing. A photograph or a screenshot has no such file, and the report says that rather than scoring it.

What the report will not say

  • It does not tell you a document is fake. It names the checks that did not line up and leaves the judgement where it belongs, with you and your bank.
  • It does not tell you money arrived. We are not a bank and we are not a party to your payment. Every report ends by telling you to confirm with your own bank before you release goods, property or funds.
  • It does not guess at a check it cannot run. A check with no answer is reported as having no answer, in plain words, and an absence of findings is never dressed up as a clean result.
  • It does not mention anyone else. No report names another customer, another account, or how many documents like yours we have seen.
Validate a document The reader lives inside the app, so you will be asked to create an account first. Who we are and who runs this is on our about page.

Questions

Which documents can be read?

Payment documents: an MT103, its ISO 20022 successor pacs.008, a bank payment confirmation, a transfer receipt from a banking app, or a photograph or screenshot of one. A PDF, a JPEG, a PNG or a plain text message all work. Invoices and transport documents are not read today.

Does the report say whether a document is genuine?

No. It names each check and gives its result, and it says in words what it could not answer. Whether to act on a document is your decision, and the report tells you to confirm any payment with your own bank before you release goods, property or funds.

What happens when a check cannot be answered?

It says so. A photograph of a screen has no file to examine, so the file checks report that rather than guessing. A reference the network has no record of is reported as absent, with the note that a new record can take time to appear and that an absent record is not proof of anything on its own.

What is the correspondent chain check?

A cross-border payment is handed from one bank to the next through correspondent banks. For each hop the report asks whether the sending bank publishes a correspondent account with the next bank in that currency, and whether we have seen that route on other payment documents before. Banks under-publish, so a route we have seen before withdraws the negative rather than adding a positive.

Is anything about my document shown to anyone else?

No. No report ever names another customer, another account, or how many documents resembling yours we have seen. Where a check draws on what we have seen before, it says only that, and nothing that could identify who sent it.

Put one document to the data

Upload a payment confirmation and read the report. Every check is named, every answer we cannot give is marked as one, and the last line always sends you back to your own bank.