Skip to main content
Sandbox payloads for the Stateless Philippines Document Details Extraction endpoint.
When your account is in sandbox mode, the image is never read by the OCR engine. The sandbox identifies the scenario from the exact bytes of the image you send and returns a stored extraction. transactionId and createdAt are generated per request, and metadata is echoed back from your request. See Sandbox introduction for the shared rules.

How scenarios are selected

This endpoint takes an image, not identity fields, so matching works differently from the other sandbox pages:
Sandbox returns sample data, not the contents of your image. Every image without its own scenario returns the same driving license extraction — SANTOS, JUAN DELA CRUZ — whatever card it shows.
Send the base64 strings exactly as shown, either as a JSON body or as a form field. Each one is a small sample image, so a re-encoded, resized or re-saved copy no longer matches and returns the default sample instead.

Verified

Request
Response — HTTP 200
Any image that is not one of the base64 strings on this page returns this response. Use it to test the success path with your own files.
Request
Response — HTTP 200

Review needed

The card was identified, but a required field could not be read. success is true: the extraction completed and, in live mode, is billed. missingFields names what is missing so a reviewer can complete it.
Request
Response — HTTP 200
Request
Response — HTTP 200

Rejected

A rejection is a completed extraction, not an error: success is true and HTTP status is 200. In live mode a rejection is billed. Read the reason from data.errors.errorCode.
Request
Response — HTTP 200
documentType is null when the image is not one of the supported Philippine documents.
Request
Response — HTTP 200
The card was identified as a passport, but its machine-readable zone could not be read. The fields that were read are still returned.

Validation failures

All validation failures return HTTP 400 with code set to VALIDATION_FAILED. They behave identically in sandbox and live.
Request
Response — HTTP 400
transactionId is null and no transaction row is written.
Request
Response — HTTP 400
The stateless endpoint does not filter by card type. Omit documentTypes and read data.fields.documentType from the response instead.
Request
Response — HTTP 400
The image is checked after the transaction is opened, so this response carries a real transactionId and verificationStatus FAILED, but no errors object. A file over 2 MB, or in a format other than JPG, PNG or PDF, returns the same response. Not billed.

Source unavailable

Both scenarios return the same response.
Request
Response — HTTP 500
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. Not billed.
Request
Response — HTTP 500

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_document_details_extraction plan returns HTTP 403 — both enforced in sandbox exactly as in live. See Sandbox introduction for their envelopes.