> ## Documentation Index
> Fetch the complete documentation index at: https://docs.idmetagroup.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Philippines UMID / SSN sandbox

> Predetermined API payloads to retrieve every Philippines UMID / SSN status in sandbox mode.

Sandbox payloads for the [Stateless UMID / SSN](https://docs.idmetagroup.com/stateless-verification-api/philippines-government/umid-ssn.md) endpoint.

```http theme={null}
POST /api/v3/verifications/philippines/umid-ssn-passthrough
```

When your account is in sandbox mode, these payloads return the outcomes shown below. Any other valid payload is answered as a no-match — HTTP `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](https://docs.idmetagroup.com/stateless-verification-api/sandbox.md) for the full matching rules.

### Verified

> **VERIFIED — sample 1**
>
> **Request**
>
> ```json theme={null}
> {
>   "documentNumber": "0111111111"
> }
> ```
>
> **Response** — HTTP `200`
>
> ```json theme={null}
> {
>   "success": true,
>   "message": "Philippines UMID/SSN processed successfully",
>   "data": {
>     "isValid": true
>   },
>   "verificationStatus": "VERIFIED",
>   "verificationStatusCode": 3,
>   "transactionId": "<uuid generated per request>",
>   "verificationType": "philippines_umid_ssn",
>   "createdAt": "<UTC timestamp of the request>"
> }
> ```

> **VERIFIED — sample 2**
>
> **Request**
>
> ```json theme={null}
> {
>   "documentNumber": "0222222222"
> }
> ```
>
> **Response** — HTTP `200`
>
> ```json theme={null}
> {
>   "success": true,
>   "message": "Philippines UMID/SSN processed successfully",
>   "data": {
>     "isValid": true
>   },
>   "verificationStatus": "VERIFIED",
>   "verificationStatusCode": 3,
>   "transactionId": "<uuid generated per request>",
>   "verificationType": "philippines_umid_ssn",
>   "createdAt": "<UTC timestamp of the request>"
> }
> ```

### 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 — sample 1**
>
> **Request**
>
> ```json theme={null}
> {
>   "documentNumber": "0999999999"
> }
> ```
>
> **Response** — HTTP `200`
>
> ```json theme={null}
> {
>   "success": true,
>   "message": "Philippines UMID/SSN processed successfully",
>   "data": {
>     "isValid": false
>   },
>   "verificationStatus": "REJECTED",
>   "verificationStatusCode": 1,
>   "transactionId": "<uuid generated per request>",
>   "verificationType": "philippines_umid_ssn",
>   "createdAt": "<UTC timestamp of the request>"
> }
> ```

> **REJECTED — sample 2**
>
> **Request**
>
> ```json theme={null}
> {
>   "documentNumber": "0888888888"
> }
> ```
>
> **Response** — HTTP `200`
>
> ```json theme={null}
> {
>   "success": true,
>   "message": "Philippines UMID/SSN processed successfully",
>   "data": {
>     "isValid": false
>   },
>   "verificationStatus": "REJECTED",
>   "verificationStatusCode": 1,
>   "transactionId": "<uuid generated per request>",
>   "verificationType": "philippines_umid_ssn",
>   "createdAt": "<UTC timestamp of the request>"
> }
> ```

> **REJECTED — Not verified, unmatched payload fallback**
>
> **Request**
>
> ```json theme={null}
> {
>   "documentNumber": "0555555555"
> }
> ```
>
> **Response** — HTTP `200`
>
> ```json theme={null}
> {
>   "success": true,
>   "message": "Philippines UMID/SSN processed successfully",
>   "data": {
>     "isValid": false
>   },
>   "verificationStatus": "REJECTED",
>   "verificationStatusCode": 1,
>   "transactionId": "<uuid generated per request>",
>   "verificationType": "philippines_umid_ssn",
>   "createdAt": "<UTC timestamp of the request>"
> }
> ```
>
> This document number matches no documented scenario, so it takes the no-match fallback — identical to the documented rejections above apart from `transactionId` and `metadata`. Fire it once to confirm that an unknown number never reaches the live source.

### Validation failures

All validation failures return HTTP `400` 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 — Document number missing**
>
> **Request**
>
> ```json theme={null}
> {
>   "documentNumber": ""
> }
> ```
>
> **Response** — HTTP `400`
>
> ```json theme={null}
> {
>   "success": false,
>   "code": "VALIDATION_FAILED",
>   "message": "The request could not be validated. Please check the submitted fields.",
>   "errors": {
>     "documentNumber": ["The document number field is required."]
>   },
>   "transactionId": null,
>   "verificationType": "philippines_umid_ssn",
>   "createdAt": "<UTC timestamp of the request>"
> }
> ```

> **VALIDATION\_FAILED — Document number too short**
>
> **Request**
>
> ```json theme={null}
> {
>   "documentNumber": "012345"
> }
> ```
>
> **Response** — HTTP `400`
>
> ```json theme={null}
> {
>   "success": false,
>   "code": "VALIDATION_FAILED",
>   "message": "The request could not be validated. Please check the submitted fields.",
>   "errors": {
>     "documentNumber": ["The document number field must be at least 10 characters."]
>   },
>   "transactionId": null,
>   "verificationType": "philippines_umid_ssn",
>   "createdAt": "<UTC timestamp of the request>"
> }
> ```
>
> `documentNumber` must be between 10 and 20 characters.

> **VALIDATION\_FAILED — Document number too long**
>
> **Request**
>
> ```json theme={null}
> {
>   "documentNumber": "012345678901234567890"
> }
> ```
>
> **Response** — HTTP `400`
>
> ```json theme={null}
> {
>   "success": false,
>   "code": "VALIDATION_FAILED",
>   "message": "The request could not be validated. Please check the submitted fields.",
>   "errors": {
>     "documentNumber": ["The document number field must not be greater than 20 characters."]
>   },
>   "transactionId": null,
>   "verificationType": "philippines_umid_ssn",
>   "createdAt": "<UTC timestamp of the request>"
> }
> ```

> **VALIDATION\_FAILED — Trust flow fields sent to a stateless endpoint**
>
> **Request**
>
> ```json theme={null}
> {
>   "documentNumber": "0111111111",
>   "trustFlowId": "anything"
> }
> ```
>
> **Response** — HTTP `400`
>
> ```json theme={null}
> {
>   "success": false,
>   "code": "VALIDATION_FAILED",
>   "message": "The request could not be validated. Please check the submitted fields.",
>   "errors": {
>     "trustFlowId": ["The trust flow id field is prohibited."]
>   },
>   "transactionId": null,
>   "verificationType": "philippines_umid_ssn",
>   "createdAt": "<UTC timestamp of the request>"
> }
> ```
>
> > [!WARNING]
> >
> > `trustFlowId` and `trustValidationId` are prohibited on stateless endpoints. Sending either is a validation failure, not a silently ignored field.

### Source unavailable

> **FAILED — UMID / SSN source unavailable, sample 1**
>
> **Request**
>
> ```json theme={null}
> {
>   "documentNumber": "0000000000"
> }
> ```
>
> **Response** — HTTP `500`
>
> ```json theme={null}
> {
>   "success": false,
>   "code": "PH_GOV_UNAVAILABLE",
>   "message": "The Philippine government source is currently unavailable. Please try again later.",
>   "verificationStatus": "FAILED",
>   "verificationStatusCode": 6,
>   "transactionId": "<uuid generated per request>",
>   "verificationType": "philippines_umid_ssn",
>   "createdAt": "<UTC timestamp of the request>"
> }
> ```
>
> There is no `data` key at all. The envelope treats `code` and `data` as mutually exclusive, so a coded failure drops `data` rather than emitting an empty object. Branch on `code`, not on the presence of `data`.

> **FAILED — UMID / SSN source unavailable, sample 2**
>
> **Request**
>
> ```json theme={null}
> {
>   "documentNumber": "0000000001"
> }
> ```
>
> **Response** — HTTP `500`
>
> ```json theme={null}
> {
>   "success": false,
>   "code": "PH_GOV_UNAVAILABLE",
>   "message": "The Philippine government source is currently unavailable. Please try again later.",
>   "verificationStatus": "FAILED",
>   "verificationStatusCode": 6,
>   "transactionId": "<uuid generated per request>",
>   "verificationType": "philippines_umid_ssn",
>   "createdAt": "<UTC timestamp of the request>"
> }
> ```

### Account-level responses

Two further responses are not specific to this endpoint. A missing or invalid `Authorization` header returns HTTP `401`, and an account without the `philippines_umid_ssn` plan returns HTTP `403` — both enforced in sandbox exactly as in live. See [Sandbox introduction](https://docs.idmetagroup.com/stateless-verification-api/sandbox.md#non-verification-responses) for their envelopes.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.