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.
Verified
VERIFIED — sample 1
VERIFIED — sample 1
RequestResponse — HTTP
200VERIFIED — sample 2
VERIFIED — sample 2
RequestResponse — HTTP
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 — sample 1
REJECTED — sample 1
RequestResponse — HTTP
200REJECTED — sample 2
REJECTED — sample 2
RequestResponse — HTTP
200REJECTED — Not verified, unmatched payload fallback
REJECTED — Not verified, unmatched payload fallback
RequestResponse — HTTP This number matches no documented scenario, so it takes the no-match fallback — identical to the documented rejections above apart from
200transactionId and metadata. Fire it once to confirm that an unknown number never reaches the live SSS 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 — Number missing
VALIDATION_FAILED — Number missing
RequestResponse — HTTP
400VALIDATION_FAILED — Number not a string
VALIDATION_FAILED — Number not a string
RequestResponse — HTTP Send
400crnSsNumber as a JSON string, not a number.VALIDATION_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_social_security plan returns HTTP 403 — both enforced in sandbox exactly as in live. See Sandbox introduction for their envelopes.
