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.
- África do Sul Passaporte photo (35 × 45 mm)
- África do Sul Visto photo (35 × 45 mm)
- Arábia Saudita Visto photo
- Argentina Passaporte photo (40 × 40 mm)
- Argentina Visto photo (40 × 40 mm)
- Armênia Autorização de residência photo (35 × 45 mm)
- Armênia Passaporte da Armênia photo (35 × 45 mm)
- Austrália Passaporte photo (35 × 45 mm)
- Bangladesh Visto photo (35 × 45 mm)
- Belarus Visto photo (35 × 45 mm)
- Brasil Passaporte photo (50 × 70 mm)
- Brasil Visto photo (35 × 45 mm)
- Bulgária Passaporte photo (35 × 45 mm)
- Bulgária Visto photo (35 × 45 mm)
- Chile Autorização de residência photo
- Chipre Visto photo (35 × 45 mm)
- Coreia do Sul Passaporte photo (35 × 45 mm)
- Coreia do Sul Visto photo (35 × 45 mm)
- Croácia Passaporte da Croácia photo (35 × 45 mm)
- Croácia Visto photo (35 × 45 mm)
- Dinamarca Carteira de motorista photo (35 × 45 mm)
- Dinamarca Passaporte photo (35 × 45 mm)
- Egito Passaporte do Egito photo (51 × 51 mm)
- Egito Visto photo (51 × 51 mm)
- Eslovênia Passaporte photo (35 × 45 mm)
- Eslovênia Visto Nacional D photo (35 × 45 mm)
- Estônia Foto para documentos photo (40 × 50 mm)
- Estônia Visto / foto consular photo (40 × 50 mm)
- Filipinas Passaporte photo
- Filipinas Visto photo (51 × 51 mm)
- Finlândia Carteira de Identidade photo (36 × 47 mm)
- Finlândia Passaporte photo (36 × 47 mm)
- Grécia Passaporte da Grécia photo (40 × 60 mm)
- Hungria Passaporte photo (35 × 45 mm)
- Indonésia Visto photo
- Irlanda Passaporte photo (35 × 45 mm)
- Irlanda Visto photo (35 × 45 mm)
- Itália Carteira de Identidade photo (35 × 45 mm)
- Japão Passaporte photo (35 × 45 mm)
- Japão Visto photo (35 × 45 mm)
- Lituânia Carteira de Identidade photo (35 × 45 mm)
- Lituânia Passaporte photo (35 × 45 mm)
- Malásia Passaporte photo (35 × 50 mm)
- Malta Passaporte photo (30 × 40 mm)
- México Visto photo
- Nigéria Passaporte photo (35 × 45 mm)
- Nova Zelândia Passaporte photo
- Paquistão Visto photo (35 × 45 mm)
- Romênia Visto C / Schengen photo (35 × 45 mm)
- Romênia Visto Nacional D photo (30 × 40 mm)
- Singapura Passaporte photo
- Suíça Carteira de Identidade photo (35 × 45 mm)
- Suíça Passaporte photo (35 × 45 mm)