Skip to content

Platform

One confirmation season, screen by screen.

Everything below is the real product — real screens, real button labels, in the order a season presents them. Four people touch a confirmation: the audit team, the client's CFO, the third-party responder, and the reviewing partner. This page follows the season through each of them.

Chapter 1 · the audit team

The audit team's season

From client ledger to evidence pack without leaving the platform. Ten steps, most of them minutes.

Step 1: Set up the client and the engagement

Create the audited entity under Clients — name, registration number (IČO or KvK), country — and invite the client's CFO as a signer from the same card. Then create the engagement: client × fiscal period, currency, materiality and performance materiality. Performance materiality is not decoration — it becomes the default ISA 530 sampling interval later.

Step 2: Import the client ledger — any Czech, Dutch or English export

Upload CSV or XLSX straight from Pohoda, Money S3, Helios, Exact Online, Twinfield, AFAS or SAP-style exports. The two-step import previews the file, auto-suggests a column mapping from Czech, Dutch and English headers, and handles "1 234,56", "1.234,56", "(500)", dd-mm-yyyy dates and mixed code pages — Windows-1250 and Windows-1252 are told apart by scoring, not guessed. Rows the parser cannot read are rejected with the reason and the raw cell, never silently skipped. Re-importing never destroys evidence: prior rows are superseded, not deleted, and the supersession is event-logged.

Import kinds: AR balances · AP balances · Bank balances · Open items · Subsequent receipts.

Step 3: Generate an ISA 530 sample the partner can defend

One click runs Monetary Unit Sampling over positive balances — systematic PPS with the interval defaulting to performance materiality, top stratum always selected — plus explainable risk rules: round amounts, duplicate counterparty-amount pairs, off-hours postings. Every selected item stores a plain-language reason for the working paper, and the random seed is stored, so the exact sample is re-derivable at review. Curate items, then a partner approves — which locks the roster.

Engagement workspace: the status funnel, the client-data imports card — import-kind and file-encoding selects, with Auto-detect telling Czech (Windows-1250) from Dutch (Windows-1252) exports, above the imported ledger files — and the samples card headed “Samples (ISA 530: MUS + risk rules)” showing an approved five-item sample with its sampling interval, random seed and per-item selection reasons.Engagement workspace: the status funnel, the client-data imports card — import-kind and file-encoding selects, with Auto-detect telling Czech (Windows-1250) from Dutch (Windows-1252) exports, above the imported ledger files — and the samples card headed “Samples (ISA 530: MUS + risk rules)” showing an approved five-item sample with its sampling interval, random seed and per-item selection reasons.
One client-period on one screen: the status funnel, the imported ledger with its file-encoding auto-detection, and the ISA 530 sample drawn from it — sampling interval, stored random seed and per-item selection reasons.

Step 4: Build the batch and assign responders from a verified directory

Create a batch from the approved sample — one confirmation per included item, carrying the ledger balance — or add confirmations by hand for any of the five kinds the platform sends: bank, receivables, payables, legal, or a general balance — with the batch's own as-of date, deadline, reminder policy and letter language: Czech, English or Dutch, end to end. A legal request is an ISA 501 inquiry to the company's lawyers — litigation, claims and assessments, unbilled fees — and it carries no balance anywhere: the letter asks its questions, the row holds no figure, and the portal offers none to confirm. Every responder contact carries provenance (auditor-entered, client-provided, published channel, prior response, AI-suggested) and a verification tier: unverified → MX-checked (an automated pre-check on the e-mail domain, explicitly not the ISA 505 control) → auditor-verified → network-verified. Dispatch is refused below auditor-verified unless an override reason is recorded, and it lands on the audit trail — the ISA 505 / AS 2310 control, applied by the platform rather than written in a policy PDF. A curated directory — Czech banks and insurers, and Dutch banks — is shared with every firm; each entry's legal name and registration number is verified against the public register (ARES, DNB), with the institution's published confirmation channel cited where one was found, and role addresses require a cited published source. AI can suggest published channels, but suggestions are never used automatically — an auditor must verify first.

Step 5: Send the client authorization for signature

From the batch, Send for signature: the platform generates the information-release letter listing every counterparty and e-mails the client's signer a secure signing link — name, e-mail, title, one click. Until it is signed, not one confirmation in the batch can be dispatched.

The client's ten minutes

Step 6: Dispatch — verified, attributable, never undoable

Dispatch authorized confirmations e-mails each assigned responder a request letter with a QR code, the secure portal link, and a unique reply-to intake address — with the signed authorization attached. Contacts on paper-only workflows get a print-ready letter that still carries the QR, so even a posted letter can be answered digitally. Every letter and every e-mail is the firm's own business document, not a vendor's: it carries the firm's registered name, seat and registration number — and its register entry and audit licence where the firm has recorded them — labelled the way the firm's own jurisdiction labels them, and the request comes from the firm. Dispatch is blocked until the seat, the registration number and a phone and mailbox a recipient can verify the request with are all on record, because every letter must name the auditor it comes from. The result reports exactly what was sent and what was skipped, and why.

The dispatch dialog over the batch screen, headed “Dispatch authorized confirmations?”: it emails the assigned responders or generates paper/QR letters for every authorized confirmation, states that it cannot be undone, and warns that confirmations whose contact is not verified and carries no recorded override are skipped.The dispatch dialog over the batch screen, headed “Dispatch authorized confirmations?”: it emails the assigned responders or generates paper/QR letters for every authorized confirmation, states that it cannot be undone, and warns that confirmations whose contact is not verified and carries no recorded override are skipped.
The dialog states the consequence before the send: e-mail or paper/QR, no undo, and the rule that skips an unverified contact.

Step 7: Track the season from the status funnel

Batch view shows response rate, overdue count and median days outstanding over a colour-coded funnel of the 16 tracked states this batch is actually in. Bounces surface automatically on the affected row. The reminder policy is set per batch by the audit team — which days after dispatch a reminder goes out, when a silent counterparty is marked unresponsive, and whether automated chasing runs at all. The defaults are deliberately patient, and responders who work through their own portal or on paper are never chased by automated e-mail. A counterparty is certified unresponsive only after the chase has run, and never before the date the letter itself gave it to reply — the verdict cannot precede the request.

Step 8: Review what the AI couldn't prove

Responses run through OCR, extraction constrained to a fixed set of fields, and a verbatim verifier: a number "found" must literally appear in the document text, and validators check currency, as-of date and line-item arithmetic. Only a full validator pass with an exact ledger match, from a sender the request was actually addressed to, auto-accepts. Everything else lands here — source document beside the extracted-versus-ledger comparison — for Accept as extracted, Accept with corrections or Reject. Each item is locked to one reviewer, so two reviewers cannot double-process it. There is no synthetic confidence percentage anywhere: the only confidence shown is the OCR engine's own per-field measurement, labeled as such, and no decision keys on it.

Review queue listing two extractions that failed automated verification, each with counterparty, extraction method, extracted balance beside ledger balance, and the failed check named.Review queue listing two extractions that failed automated verification, each with counterparty, extraction method, extracted balance beside ledger balance, and the failed check named.
Two extractions that failed automated verification, extracted balance beside ledger balance, the failed check named. Captured against the stub extraction pipeline the dev stack runs — the extraction-method column says so verbatim, and the record always names the engines that actually ran.

Step 9: Reconcile, explain variances, close non-responders

Reconciliation is deterministic first — exact, within-tolerance, currency-mismatch — with semantic name matching (legal suffixes stripped, similarity scored) when the responder states a different name. For variances, the platform scans open items and subsequent receipts for classic in-transit and timing candidates and drafts an explanation the auditor must rewrite or confirm — labeled AI draft — not audit evidence until you confirm or rewrite it. Non-responders flow to alternative procedures with auto-assembled subsequent-receipts evidence and a coverage percentage — and a conclusion the platform refuses to write at all.

Reconciliations table showing five counterparties with ledger balance, confirmed balance and difference side by side — two exact matches marked verified, one 11 800 CZK difference marked variance explained with its finalized explanation on file, one 80 000 CZK difference marked exception, and one 35 000 CZK difference still pending — above an open variance-explanation panel that reports no matching sub-ledger item and an unexplained remainder of 35 000 CZK, with an AI draft banner reading “AI draft — not audit evidence until you confirm or rewrite it”.Reconciliations table showing five counterparties with ledger balance, confirmed balance and difference side by side — two exact matches marked verified, one 11 800 CZK difference marked variance explained with its finalized explanation on file, one 80 000 CZK difference marked exception, and one 35 000 CZK difference still pending — above an open variance-explanation panel that reports no matching sub-ledger item and an unexplained remainder of 35 000 CZK, with an AI draft banner reading “AI draft — not audit evidence until you confirm or rewrite it”.
Deterministic matching first, and the difference is never hidden: ledger beside confirmed beside the gap, each row carrying its own status. Where the platform drafts an explanation it labels it “not audit evidence until you confirm or rewrite it” and shows the unexplained remainder in full — 35 000 CZK here, with zero sub-ledger items matched. Captured against the stub model the dev stack runs, which the prompt line names verbatim.

Step 10: Working papers and the evidence pack

Per-confirmation working papers (PDF and XLSX) are regenerated from the event log on every fetch — a stale copy is never served. Batch lead schedules summarize per-books, confirmed, difference and status per row. At close-out, Export evidence pack (ZIP) exports one ZIP: manifest, a fresh verification verdict for the audit trail, a provenance log for every extracted figure, signed authorizations and certificates, dispatch letters, response documents, and all working papers — with the engagement's materiality, performance materiality and each batch's ISA 530 sampling basis stated at the top of it, so a regulator reads the basis of the selection before the selection — and it declares anything it could not include rather than asserting completeness. Designed to ISA 505 / AS 2310 documentation requirements.

Two pages of a bilingual Czech/English confirmation working paper, shown side by side. The left sheet, footer “1 / 4”, carries the title “Pracovní list konfirmace / Confirmation working paper” and the engagement header — auditor Ukázka Audit s.r.o., the batch, counterparty Pí Nábytek s.r.o., type “Konfirmace pohledávek / Receivables confirmation”, reference CF-967CC54D and the status “ROZDÍL VYSVĚTLEN / VARIANCE EXPLAINED” — then “1. Odeslaná žádost / Request sent” with channel, dispatch time, recipient, 310 500,00 CZK per books and a table of the dispatches; “2. Přijatá odpověď / Response received” naming the responder and the time; and “3. Extrakce a verifikace / Extraction & verification” with the confirmed 298 700,00 CZK, the as-of date, the discrepancy note and the first rows of the verification checks table. The right sheet, footer “2 / 4”, opens on the tail of that checks table and then, section by numbered section: “4. Odsouhlasení / Reconciliation” showing 310 500,00 CZK per books against 298 700,00 CZK confirmed, an 11 800,00 CZK difference and an explanation naming the invoice behind it; “5. Alternativní postupy / Alternative procedures” recording none; “6. Podpis / Sign-off” reading “Not yet signed off by the partner”; “7. Reference na důkazní materiál / Evidence references” listing the dispatched letter and the signed authorization, each with its SHA-256 digest; and “8. Auditní stopa / Audit trail”, a numbered list of events with actor and UTC timestamp that runs on to the next page.Two pages of a bilingual Czech/English confirmation working paper, shown side by side. The left sheet, footer “1 / 4”, carries the title “Pracovní list konfirmace / Confirmation working paper” and the engagement header — auditor Ukázka Audit s.r.o., the batch, counterparty Pí Nábytek s.r.o., type “Konfirmace pohledávek / Receivables confirmation”, reference CF-967CC54D and the status “ROZDÍL VYSVĚTLEN / VARIANCE EXPLAINED” — then “1. Odeslaná žádost / Request sent” with channel, dispatch time, recipient, 310 500,00 CZK per books and a table of the dispatches; “2. Přijatá odpověď / Response received” naming the responder and the time; and “3. Extrakce a verifikace / Extraction & verification” with the confirmed 298 700,00 CZK, the as-of date, the discrepancy note and the first rows of the verification checks table. The right sheet, footer “2 / 4”, opens on the tail of that checks table and then, section by numbered section: “4. Odsouhlasení / Reconciliation” showing 310 500,00 CZK per books against 298 700,00 CZK confirmed, an 11 800,00 CZK difference and an explanation naming the invoice behind it; “5. Alternativní postupy / Alternative procedures” recording none; “6. Podpis / Sign-off” reading “Not yet signed off by the partner”; “7. Reference na důkazní materiál / Evidence references” listing the dispatched letter and the signed authorization, each with its SHA-256 digest; and “8. Auditní stopa / Audit trail”, a numbered list of events with actor and UTC timestamp that runs on to the next page.
The deliverable an audit file actually needs, generated from the event log rather than assembled by hand. This is where it makes its case: the variance explained against a named invoice, each referenced document carrying its SHA-256 digest, and the event trail printed with actor and UTC time — every section numbered, both languages side by side. Sign-off is shown unsigned; the paper states what has not happened yet as plainly as what has.

Chapter 2 · the client’s CFO

The client's ten minutes

The authorization is the legal hinge of the whole season. Confirmatica makes it a magic link, not a vendor envelope.

Step 1: The invitation

The CFO receives a unique signing link by e-mail — no account, no download. The link is single-purpose and expires after 30 days.

Step 2: Read the actual document

The consent letter renders inline as a PDF — every counterparty listed — with its SHA-256 digest printed on the page. The signer's own language leads, with English printed beside it wherever the two differ, because a secrecy release gets filed and forwarded to people who do not read it; an English letter is simply English. What is signed is exactly what the auditor sends, and both sides can prove it.

Client signing page with the authorization PDF rendered inline, its SHA-256 digest, the email verification-code step with its resend counter, an “I need to decline” option, and the CS/EN/NL language toggle in the header.Client signing page with the authorization PDF rendered inline, its SHA-256 digest, the email verification-code step with its resend counter, an “I need to decline” option, and the CS/EN/NL language toggle in the header.
The client signing page: the authorization PDF rendered inline with its SHA-256 digest, the e-mail verification-code step — and declining as a first-class choice, in Czech, English or Dutch.

Step 3: Proving the signer is the signer

Send verification code e-mails a 6-digit code to the signer — proof that the person signing holds the mailbox the auditor wrote to, valid for ten minutes. Every step is recorded as evidence of the signature: sent, viewed, code verified, signed, each with the time it happened.

Step 4: Sign — or decline with a reason

Sign the authorization adds a signature certificate page to the signed document and moves every awaiting confirmation to authorized; the audit team is notified. Decline to sign is first-class: it requires a reason, returns the batch to draft, and notifies the audit team — nothing proceeds on silence. The evidence model follows eIDAS advanced-electronic-signature characteristics — deliberately not a qualified signature, and with no per-envelope vendor cost.

Chapter 3 · the third-party responder

The responder's two minutes

Response rate is won by removing friction. A responder never creates an account, never installs anything, and never has to be told twice how to answer.

Step 1: One letter, two reply channels

The request letter arrives by e-mail — or on paper — with a reference number, a QR code, a secure portal link, and a unique reply-to address. Answer through the portal, or reply to the e-mail; the paper letter's QR code opens that same portal. Both channels end in the same evidence store. Banks that run their own confirmation portals get a workflow type that respects their process and never chases them with automated reminders. A reply that reaches the firm another way — by post, by fax, in the firm's own mailbox, or downloaded from a bank's own confirmation portal — is filed by the auditor onto the confirmation with a statement of which route it came by, the day the firm received it and who received it. That statement is the document's provenance, and it is printed wherever a reviewer weighs the document.

Step 2: The portal: confirm, upload, type, or decline

Four tiles: Confirm as stated (one click, name recorded), Upload our statement (PDF, scans, images, text, CSV or Excel, up to 25 MB), Type the balance with discrepancy notes, or We cannot confirm — a structured refusal with a reason code, recorded as a refusal rather than as silence (ISA 505), which stops the reminders and routes the item to alternative procedures. Czech, English and Dutch, auto-detected from the request, switchable by the reader. On a legal request the two balance choices are not offered at all: the lawyer answers the inquiries in writing, or uploads a document.

Responder portal rendered in Dutch, showing the confirmation request details and its four reply choices — confirm as stated, upload a statement, type the balance, or declare that we cannot confirm — with the CS/EN/NL language toggle in the header and NL selected.Responder portal rendered in Dutch, showing the confirmation request details and its four reply choices — confirm as stated, upload a statement, type the balance, or declare that we cannot confirm — with the CS/EN/NL language toggle in the header and NL selected.
The responder portal (Dutch capture): the request details and the four reply choices — confirm as stated, upload a statement, type the balance, or a structured “we cannot confirm” — with the CS/EN/NL toggle in the header, here switched to NL. The request itself belongs to the fictional Czech demo tenant, which is why a Dutch reader sees a CZK balance.

Step 3: Or just reply to the e-mail

Replying to the unique intake address on the letter routes the message — attachments and all — straight to the right confirmation. If there is no usable attachment, the e-mail body itself becomes the evidence document. Mail that matches nothing is quarantined for a person to route, never silently dropped.

Step 4: What their two minutes buys the audit

A response through the portal — or an e-mail reply from the institution the request was addressed to — upgrades that contact to network-verified, the strongest provenance tier: earned rather than asserted. A reply from anywhere else is still taken as evidence, but it is recorded as a sender mismatch and routed to a human rather than quietly strengthening the contact, because ISA 505 makes a response from an unexpected source exactly the doubt an auditor must resolve. If a responder stays silent, escalating reminders follow the batch policy with the original secure link still valid.

Chapter 4 · the reviewing partner

The reviewing partner

The platform is built around the approvals only a partner can give — and it makes each one inspectable years later.

Step 1: Approvals with teeth

Four things require the partner or firm-admin role and are refused to everyone else. Approve (partner) locks the sample roster: items can no longer be included or excluded, and changing the selection means generating a new sample. Alternative procedures cannot be approved without a substantive auditor conclusion — the refusal quotes ISA 505.12 back at whoever tried: the judgment cannot be automated. Reissuing an unsigned client authorization requires a recorded reason, because it withdraws an instruction already sent to the client's statutory representative. And sign-off is gated the same way, recorded with the user who gave it and the time they did, and cannot be undone.

Step 2: Overrides on the record

Dispatching to a contact below the auditor-verified tier requires a written override reason, written to the audit trail. Editing a verified contact's e-mail resets it to unverified, so the ISA 505 control re-arms itself. Nothing in the directory is deleted: contacts and organizations retire and reactivate, and a GDPR Art. 16 rectification is recorded as one. The design rule everywhere: the machine may propose, verify and assemble — a person decides, and the decision is attributable and timestamped.

Step 3: An audit trail that can be handed to a reviewer

Every recorded change carries who did it and when, and the working paper prints that trail beside the evidence it belongs to. A peer reviewer, an inspector or a regulator reads the file rather than taking the firm's word for it, years after the season closed.

Under the platform

What holds it all up

Licensed, and it runs on the firm's own stack

Confirmatica is licensed software. A licensee deploys on their own infrastructure and is the operator and controller of their instance; Bonfleur provides the licence, customization and maintenance. The screens above are a demonstration instance running synthetic data.

Working papers designed to the standards

Selection rationale per ISA 530, verification controls per ISA 505 / AS 2310, documentation regenerated from the event log — designed to those documentation requirements, and packaged for handover in one ZIP.

How a firm comes to run it

  1. Step 1: A demonstration

    The season described on this site, run on a demonstration instance holding synthetic data. No firm's data is on it.

  2. Step 2: A licence

    A written licence agreement with Bonfleur s.r.o. The licence conversation covers the terms, source escrow, an inventory of every third-party component the software depends on, the deployment runbook and the maintenance agreement — under NDA, alongside the architecture and security documentation.

  3. Step 3: The customizations the firm wants

    Letter wording, the firm's own directory, the ledger formats its clients export, and the storage and e-mail providers of the firm's own stack — scoped and agreed with the firm before deployment, not guessed at in advance.

  4. Step 4: Deployment on the firm's own infrastructure

    The instance runs on the firm's own infrastructure, under the firm's control. The firm is the operator and controller of it; nothing it holds reaches Bonfleur.

  5. Step 5: Support and maintenance

    Bonfleur s.r.o. maintains and supports the deployed instance under the maintenance agreement — updates, fixes and the next season's changes reach the firm's own instance.

Architecture and security documentation is available under NDA.

The walkthrough runs on the platform itself

An enquiry names the firm and the season's volume; what follows is the product described above, on the screens above, on a demonstration instance running synthetic data, rather than a slide deck. A licence, the customizations the firm wants, deployment onto its own infrastructure, and support and maintenance by Bonfleur s.r.o. follow from there.