ProofAgeDevTool
Config?
POST/api/v1/verifications/photo

Verifica da foto

Invia una foto per age assurance low-friction. Il sistema stima la fascia di età, valuta liveness passiva, rileva spoof e media sintetici, e restituisce una decisione a soglia. È il flusso più veloce e meno invasivo.

Headers obbligatori

AuthorizationBearer {token}
X-Channel-Id{channel_id}
X-Api-Key{api_key}

Content-Type: multipart/form-data

Parametri richiesta

NomeTipoReq.Note
photofileobbligatoriojpeg, png, webp — max 10 MB

Requisiti media

photo

Formati:JPEG, PNG, WebPMax:10 MBRisoluzione min:200×200 px
  • Volto frontale ben centrato, occhi aperti
  • Buona illuminazione — evita controluce o ombre sul viso
  • No occhiali da sole, cappelli o altro che copre il viso
  • Sfondo neutro preferibile, foto nitida e non mossa

Campi risposta (200 / 201)

CampoTipoDescrizione
iduuidID della verifica generata
modestring"photo"
decisionstring"pass" | "fail" | "review_required"
review_requiredbooleantrue se la decisione è ambigua
estimated_agefloatstima numerica dell'età [0–100] — non è una certezza, MAE ~4.5 anni
age_bandstringes. "18-24" — fascia stimata, non età esatta
confidencefloataffidabilità della fascia [0–1]
reasonsarraycause della decisione (es. low_liveness_score)
document_fallback_availablebooleanse il doc fallback è abilitato per l'account
receipt_iduuidID della receipt firmata
completed_atISO8601timestamp completamento

Codici di errore

402Crediti insufficienti
403Mode "photo" non abilitato per questo account
422File mancante o formato non valido
503AI service temporaneamente non raggiungibile

Esempio cURL

curl -X POST https://api.proofage.eu/api/v1/verifications/photo \
  -H "Authorization: Bearer {token}" \
  -H "X-Channel-Id: {channel_id}" \
  -H "X-Api-Key: {api_key}" \
  -F "photo=@/path/to/selfie.jpg"

Regole ProofAge EU/UK

  • Le decisioni sono sempre pass / fail / review_required
  • age_band è una stima a soglia — non espone l'età esatta come certezza
  • Synthetic/deepfake risk sono segnali antifrode, non prove assolute
  • Soglie: liveness ≥ 70% · spoof/synthetic ≤ 40% · deepfake ≤ 50%
  • Nessun dato biometrico esce dai container — processing 100% locale