Decisions
- New reason
selfie.liveness.not_completed: a head movement not completed asks for a retake instead of declining. Where ProofAge’s head-movement check decides a facial age estimation, a person who did not complete the movement in any of the three tries, with no sign of a presentation attack in any of them, was declined withselfie.liveness.failed. The verification now endsresubmission_requestedwithselfie.liveness.not_completed, and the widget explains how to make the movement. A try with signs of a presentation attack still declines, and the attempt limit still applies. If your integration treats everyresubmission_requestedthe same way, nothing changes for you. See Liveness. - A try where the camera never started sending no longer counts toward the three tries of the head-movement check, for example when the person had not yet allowed the camera.
API
- Erase a verification’s personal data through the API.
DELETE /v1/verifications/{id}/personal-dataruns the same erasure as Erase Personal Data in the console and the MCP tools: images, recordings, document fields, analysis results and device data go; the status, reason, dates, audit trail and the fact of the erasure stay. Sendreason_code(data_subject_request,customer_request,retention_policy,test_dataorother) and, withother, areason. Onlyapproved,declined,abandonedandexpiredverifications can be erased; any other status answers422 VERIFICATION_NOT_FINAL. The answer is the verification with itserasurefield set, and a repeat call answers the same way. Right after a decision it can answer409 VERIFICATION_PROCESSINGwithRetry-After. An erasure made this way readsrequested_via: customer. See Data retention and erasure and Error handling. - An erasure now deletes the capture recordings at once, from the console and the MCP server too. Before, they stayed until their 30-day retention ran out.
- SDK releases to match:
@proofage/node0.15.0 (erasePersonalData()),proofage(Python) 0.10.0 (erase_personal_data()),proofage/php-sdk0.10.0 (erasePersonalData()) andproofage/laravel-client0.12.0.
Decisions
- The document step of a facial age estimation now checks for screens and tampering. When a selfie could not confirm the age and the person showed a document, the checks for a document photographed from a screen or altered were not applied, unlike every other document check. They are now, with the same reasons as on other workspaces, such as
document.front.spoof.screen_suspectedanddocument.back.tampering.suspected, and the same single retake when the screen is uncertain. In ProofAge’s records no approved verification would have been decided differently. See Facial age estimation. - A failure of ProofAge’s head-movement check no longer declines. If the check fails on ProofAge’s side after the person finished it (for example, it runs out of time), the verification ends
resubmission_requestedwithverification.processing.failedinstead ofdeclinedwithselfie.liveness.failed.selfie.liveness.failednow always means the check finished and found no live person. No verification was affected so far. See Liveness.
Webhooks and API
- Only the latest webhook can be sent again by hand. Retry and Resend in the console, and the MCP tools
retry-webhook-deliveryandresend-webhook-delivery, now accept only the latest delivery of a verification to an endpoint. An older delivery may carry a status the verification no longer has, such asapprovedafter a reviewer declined it, and sending it again could undo the newer decision in your system. The MCP tools answerSUPERSEDEDfor an older delivery, andlist-webhook-deliveriesreturnscan_resendnext tocan_retry. Automatic retries are not affected, and in a test workspaceget-webhook-delivery-requeststill returns any delivery for replay. See Webhooks. MAX_ATTEMPTS_REACHEDon a retake with no attempts left. A retake afterresubmission_requestedthat would start an attempt over the limit is now refused at upload with422 MAX_ATTEMPTS_REACHEDinstead of opening an attempt past the limit. A new selfie on a facial age estimation that moved to a document already answered this way. Create a new verification. See Error handling.