Editorial policy
Anfas.Pro publishes verified photo requirements for government-issued documents. Our content is used by people whose travel plans, residency status and livelihoods depend on getting these details right. Here is how we keep that responsibility.
Source-first
Every document specification on this site is traced to a primary source: an authority website, an official PDF, an embassy notice, or an ICAO 9303 reference where no national rules are published. The source URL and verification date are visible on each leaf page.
We do not paraphrase from competitor sites. Where we cite a number, we either reproduce the authority's exact phrasing or convert units explicitly (mm ↔ pixels at the declared dpi).
Verification levels
- Official — exact: the authority publishes a numeric specification we reproduce verbatim.
- Official — general: the authority publishes prose guidance which we translate into measurable parameters.
- ICAO baseline (Draft): no national specification is published; we fall back to ICAO 9303 defaults and mark the profile as Draft.
Only profiles at the first two levels are indexed for search. ICAO baseline profiles remain accessible but are excluded from sitemaps.
Editorial review tiers (honest signal)
Every leaf page carries an editorial-review status that reflects what verification work has actually been done — not a marketing-flavoured "all reviewed" claim.
- compile-source-check: photo specification was extracted from the authority page during the initial data compilation, with no further narrative review.
- single-reviewer-cited: the photo specification was compiled and cited by one internal reviewer against current gov-source documentation, with country-unique quirks identified. Pending external review by an independent domain expert. The review strip on each leaf page shows this tier honestly: "Compiled and cited by [reviewer] — pending external review".
- independently-reviewed: reserved for profiles re-verified by a SEPARATE named domain expert (not the original reviewer). At the time of writing, no profile carries this tier — the external editor pipeline is being set up.
By Google YMYL quality-rater standards, a single reviewer signing off 218 documents in a short window does not constitute "independent" review. The three-tier model surfaces this distinction rather than hiding it behind a uniform date stamp.
Rejection-code provenance
Where leaf pages enumerate rejection reasons (e.g. UK P01-P15),
each code carries a provenance tag:
- authority-published: the authority publishes a rejection-code catalogue (UK HMPO, US State Department review criteria, German BSI TR-03121). These codes are reproduced verbatim.
- derived-from-rule: the authority publishes a rule (e.g. "no glasses") and we synthesise a corresponding rejection code with consistent ID format.
- synthesized: a plausible code mnemonic for a common failure mode where the authority does not publish a code catalogue. Useful for cross-referencing within Anfas.Pro; clearly labelled to avoid mistaking it for an authority code.
Automated quality gates
Six checks run before every build, with two more available on demand:
npm run check— schemas, links, snapshots, redirects, sitemaps, jargon, meta budgets.check:a11y— WCAG 2.1 AA via axe-core (10 representative pages).check:cwv— Lighthouse Core Web Vitals against a 9-page sample.check:translations— fails build if any declared locale falls below 100 % label/spec coverage.check:localization— strict per-locale coverage + lint (numeric specs preserved, code IDs preserved, no Cyrillic in non-Cyrillic locales).check:sources— HTTP liveness of every cited authority URL.check:freshness— flags profiles where the reviewer-log entries reference only secondary (non-gov) sources, or where the last verification is over 1 year old.check:consistency— flags drift between the narrative dimension claims (e.g. "40×60 mm") and the underlyingprintSpec(which drives the photo generator).
Build-time locale gating: any locale below 80 % translation coverage
is automatically excluded from publishedLangs — meaning
no HTML is generated for that locale, no sitemap entry is emitted,
and no hreflang tag points to it. This prevents
mixed-language pages from reaching Google.
Freshness and corrections
We re-verify profiles when a country publishes a regulatory update, when a reader reports a change, or on a quarterly review — whichever comes first. The newest verification date is shown on each page and in our sitemaps. If you spot something wrong, write to hello@anfas.pro with the page URL and the source you found; we publish corrections within 7 days and keep a public change log.
What we do not do
- No AI-generated content without expert review. Every page is read end-to-end before publishing.
- No guaranteed acceptance claims. The final decision is always the issuing authority's.
- No image retouching that changes biometric features. Our tool normalises framing, background and exposure — it does not alter facial geometry.
- No advertising or sponsored placement on document specification pages.
Less common but verified document formats
These countries have fewer than three verified specifications on Anfas.Pro. Each link below points to a leaf page with the exact size, background, head ratio, and the official source the spec was traced to.
- Argentina passport photo (40 × 40 mm)
- Argentina visa photo (40 × 40 mm)
- Armenia passport photo (35 × 45 mm)
- Armenia residence permit photo (35 × 45 mm)
- Australia passport photo (35 × 45 mm)
- Bangladesh visa photo (35 × 45 mm)
- Belarus visa photo (35 × 45 mm)
- Brazil passport photo (50 × 70 mm)
- Brazil visa photo (35 × 45 mm)
- Bulgaria passport photo (35 × 45 mm)
- Bulgaria visa photo (35 × 45 mm)
- Chile residence permit photo
- Croatia passport photo (35 × 45 mm)
- Croatia visa photo (35 × 45 mm)
- Cyprus visa photo (35 × 45 mm)
- Denmark driver's license photo (35 × 45 mm)
- Denmark passport photo (35 × 45 mm)
- Egypt passport photo (51 × 51 mm)
- Egypt visa photo (51 × 51 mm)
- Estonia consular photo (40 × 50 mm)
- Estonia document photo (40 × 50 mm)
- Finland id card photo (36 × 47 mm)
- Finland passport photo (36 × 47 mm)
- Greece passport photo (40 × 60 mm)
- Hungary passport photo (35 × 45 mm)
- Indonesia visa photo
- Ireland passport photo (35 × 45 mm)
- Ireland visa photo (35 × 45 mm)
- Italy id card photo (35 × 45 mm)
- Japan passport photo (35 × 45 mm)
- Japan visa photo (35 × 45 mm)
- Lithuania id card photo (35 × 45 mm)
- Lithuania passport photo (35 × 45 mm)
- Malaysia passport photo (35 × 50 mm)
- Malta passport photo (30 × 40 mm)
- Mexico visa photo
- New Zealand passport photo
- Nigeria passport photo (35 × 45 mm)
- Pakistan visa photo (35 × 45 mm)
- Philippines passport photo
- Philippines visa photo (51 × 51 mm)
- Romania national visa (type d) photo (30 × 40 mm)
- Romania schengen visa type c photo (35 × 45 mm)
- Saudi Arabia visa photo
- Singapore passport photo
- Slovenia national visa (type d) photo (35 × 45 mm)
- Slovenia passport photo (35 × 45 mm)
- South Africa passport photo (35 × 45 mm)
- South Africa visa photo (35 × 45 mm)
- South Korea passport photo (35 × 45 mm)
- South Korea visa photo (35 × 45 mm)
- Switzerland id card photo (35 × 45 mm)
- Switzerland passport photo (35 × 45 mm)