200 with isValid set to false.
Values are case-sensitive. transactionId and createdAt are generated per request, and metadata is echoed back from your request. See Sandbox introduction for the full matching rules.
Both
clearanceNo and surname must match a documented scenario exactly, including case. Santos matches the verified scenario below; SANTOS and santos do not, and are answered as a no-match.Verified
VERIFIED — Clearance and surname match
VERIFIED — Clearance and surname match
RequestResponse — HTTP
200VERIFIED — Clearance and compound surname match
VERIFIED — Clearance and compound surname match
RequestResponse — HTTP Send multi-word surnames with their spaces, exactly as printed on the clearance.
200Rejected
A rejection is a completed verification, not an error:success is true and HTTP status is 200. In live mode a rejection is billed.
REJECTED — Clearance found, surname does not match
REJECTED — Clearance found, surname does not match
RequestResponse — HTTP
200REJECTED — Clearance not found
REJECTED — Clearance not found
RequestResponse — HTTP
200REJECTED — Not found, unmatched payload fallback
REJECTED — Not found, unmatched payload fallback
RequestResponse — HTTP This payload matches no documented scenario, so it takes the no-match fallback — identical to the rejections above apart from
200transactionId and metadata. Fire it once to confirm that an unknown clearance never reaches the live PNP source.Validation failures
All validation failures return HTTP400 with code set to VALIDATION_FAILED and the same message; only errors differs. Validation runs before any fixture matching, so these behave identically in sandbox and live. transactionId is null and no transaction row is written.
VALIDATION_FAILED — Clearance number missing
VALIDATION_FAILED — Clearance number missing
RequestResponse — HTTP
400VALIDATION_FAILED — Surname missing
VALIDATION_FAILED — Surname missing
RequestResponse — HTTP
400VALIDATION_FAILED — Trust flow fields sent to a stateless endpoint
VALIDATION_FAILED — Trust flow fields sent to a stateless endpoint
RequestResponse — HTTP
400Source unavailable
Account-level responses
Two further responses are not specific to this endpoint. A missing or invalidAuthorization header returns HTTP 401, and an account without the philippines-national-police plan returns HTTP 403 — both enforced in sandbox exactly as in live. See Sandbox introduction for their envelopes.
