Skip to content

Manual Review

Not every check can be decided by a machine: a registry may be down, an ID scheme may have no automatic source, or you may simply want a human verdict on record. These checks land in the Manual Review Queue (VAT Checker → Manual Review Queue), where an operator resolves them into a normal, permanently stored result.

The Manual Review Queue with a validation waiting for an operator

A validation request enters the queue when:

  • Mode is Manual — chosen per check, per schedule, or as the default mode in Settings. The request skips the registry entirely and waits for a human.
  • An automatic check fails — the registry stayed unreachable after all retries — and “Send to manual review when an automatic validation fails” is enabled (the default; configurable in Settings and per schedule). If it’s disabled, a failure result (e.g. Source unavailable) is stored instead.
  • No automatic source applies — the ID scheme has no registry integration, or the required provider isn’t part of your plan.

When a request enters the queue, the notification recipients get an email, and the taxvalidation.validation.manual-review-required webhook fires. Requests stay in the queue until resolved — there is no expiry.

Open a request via its Review button. The form shows what was submitted (ID, company, address) and lets you record the verdict:

The Submit manual result form with outcome, per-field match status, provider response, and comment

SectionFields
OutcomeValid, Invalid, Source unavailable, Not supported, or Unknown
MatchOne verdict per field — company name, address (overall), street, postal code, city, region, country code — each Match / No match / Partial match / Not requested / Not provided / Unknown
Provider response (optional)What the source actually returned, verbatim: company, address fields, a source reference (e.g. a registry confirmation number), and a provider message
CommentInternal note about the decision (max. 2,048 characters)

Submit result completes the review. The stored result is marked with verification method Manual and records you as the actor — auditors can always tell a human verdict from a registry response. The completed request leaves the queue, and the usual validation.completed (and, for Invalid, validation.invalid) webhooks fire.

Manual reviews don’t consume an extra validation — the check was already metered when it was created. Resolving requests requires the member or admin role.

Sometimes a check happens entirely outside the system — a confirmation letter from a tax office, a registry checked by phone, a verification done before you used the VAT Checker. VAT Checker → Validation Results → Record result stores such a verdict without any request:

FieldNotes
Country code / VAT-IDResolves to (or creates) the tax identifier
OutcomeValid, Invalid, Unknown, Source unavailable, Not supported
Company nameOptional
Checked atOptional — backdate to when the verification actually happened
CommentOptional internal note
Address detailsOptional

Directly recorded results count as one validation and appear in the results list with provider Manual, alongside automatic checks.

Which Project members are emailed about pending reviews (and other events like failed validations) is configured under VAT Checker → Settings → Notification recipients — only members of the Project can be selected. If the list is empty, nobody is emailed; the webhook still fires.

The VAT Checker Settings page with notification recipients and default validation behavior

The Settings page (visible to admins) also holds the two defaults that drive manual review:

  • Default validation modeAutomatic or Manual; applies whenever a check is started without an explicit mode (dashboard, API, and schedules).
  • Send to manual review when an automatic validation fails — the Project-wide fallback behavior (default: on).