Overview
Integrating PhilSys face liveness requires a 2-step process.- Capture face liveness with the PhilSys Liveness SDK V3
Start the Philippine government eVerify liveness interface from your website. You provide onlyclientIdandversion. - Call the IDmeta PhilSys Check API using the liveness result
Pass the returnedsession_idasface_liveness_session_idin your PhilSys Check request.
Step 1: Capture PhilSys face liveness
Prerequisites
Before you integrate the SDK:- Ask IDmeta for your company Client ID. You use it as
clientId. - Ask IDmeta to provision both required company plans:
- PhilSys Check
- PhilSys Check Tier 1
- Run the integration in a supported browser with camera access.
- Allow your website’s origin in IDmeta’s CORS configuration.
- Update your Content Security Policy to allow the required IDmeta and government resources.
Add the SDK to your website
Load the SDK before you callIDmetaPhilsysLivenessV3():
Start face liveness
Your Client ID can be found under Profile > API Tokens in your account..
Liveness options
LIVENESS_CANCELLED means the user closed the capture. LIVENESS_FAILED means the government flow ran but could not complete normally. GOV_SERVER_ERROR represents a government SDK or infrastructure outage. NETWORK_ERROR means the IDmeta preflight could not be reached.
Step 2: Call the PhilSys Check API
After liveness is completed, passresult.session_id as face_liveness_session_id in the PhilSys Check API request:
- PhilSys Check Tier 1
- PhilSys Check
- No bearer token is required.
- The endpoint is limited to 300 requests per minute.
- A valid Client ID alone does not grant access. The company must have both required PhilSys plans.
- The endpoint checks access only. It does not reserve or consume credits.
- The returned public key is used internally to start the government liveness SDK.
Expected Results from Face Liveness Capturing SDK
Completed liveness checkTroubleshooting
Invalid Client ID
Invalid Client ID
Confirm that
clientId is the company UUID supplied by IDmeta. Remove leading or trailing spaces. A value that is not a UUID is rejected locally with BAD_REQUEST. An unknown UUID is rejected with INVALID_COMPANY.Missing PhilSys plan access
Missing PhilSys plan access
Ask IDmeta to provision both
scan_qr and philsys_check_tier_1 for your company. The SDK returns PLAN_ACCESS_DENIED if either plan is missing.Camera permission denied
Camera permission denied
Ask the user to allow camera access for your site in the browser settings, then restart the capture. Confirm that the page uses HTTPS in production.
IDmeta network timeout
IDmeta network timeout
CLIENT_TIMEOUT means the IDmeta preflight exceeded the SDK timeout. NETWORK_ERROR means the request could not reach IDmeta. Check the device connection, selected version, firewall, and IDmeta service availability.CORS error
CORS error
Confirm that your exact website origin, including its scheme and port, is allowed by IDmeta. A CORS failure appears in the browser console and is normalized as
NETWORK_ERROR when the preflight cannot complete.Content Security Policy error
Content Security Policy error
Check the browser console for a blocked resource. Update the relevant
script-src, connect-src, frame-src, or img-src directive for the SDK host, selected IDmeta API origin, and required government origins.User cancellation
User cancellation
LIVENESS_CANCELLED is not a service outage. Let the user restart the capture when they are ready.Next steps
PhilSys Check Tier 1
Review the Tier 1 request and response contract.
PhilSys Check
Review the PhilSys Check request and response contract.

