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.
In live mode
clearanceNo is upper-cased before it is sent to the NBI source. Sandbox matching runs on the value exactly as you send it, so nbisandbox-0000001 does not match NBISANDBOX-0000001 and is answered as a no-match.Verified
VERIFIED — Clearance found and current
VERIFIED — Clearance found and current
RequestResponse — HTTP
200clearanceExpiry is always returned as yyyy-mm-dd.VERIFIED — Clearance found and current, with middle name
VERIFIED — Clearance found and current, with middle name
RequestResponse — HTTP
200middlename is only present when the clearance holder has one. Treat it as optional.Rejected
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 but expired
REJECTED — Clearance found but expired
RequestResponse — HTTP The clearance exists, so the holder’s details are still returned, but it is no longer current. Do not treat the presence of
200lastname or clearanceNumber as a pass — branch on isValid or verificationStatus.REJECTED — Clearance found but expired, with middle name
REJECTED — Clearance found but expired, with middle name
RequestResponse — HTTP
200REJECTED — Clearance not found
REJECTED — Clearance not found
RequestResponse — HTTP No record exists for this clearance number, so only
200isValid is returned.REJECTED — Not found, unmatched payload fallback
REJECTED — Not found, unmatched payload fallback
RequestResponse — HTTP This clearance number matches no documented scenario, so it takes the no-match fallback — identical to the not-found rejection above apart from
200transactionId and metadata. Fire it once to confirm that an unknown clearance never reaches the live NBI 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 — Clearance number not a string
VALIDATION_FAILED — Clearance number not a string
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_nbi_clearance plan returns HTTP 403 — both enforced in sandbox exactly as in live. See Sandbox introduction for their envelopes.
