# OCR Results

A successfully processed request returns HTTP `200` with `status` set to `ok`.

```json
{
  "code": 200,
  "status": "ok",
  "result": {
    "nik": "3173050101900001",
    "nama": "BUDI SANTOSO",
    "tanggal_lahir": "01-01-1990",
    "tempat_lahir": "JAKARTA",
    "pekerjaan": "KARYAWAN SWASTA",
    "kewarganegaraan": "WNI",
    "agama": "ISLAM",
    "jenis_kelamin": "LAKI-LAKI",
    "status_perkawinan": "KAWIN",
    "golongan_darah": "O",
    "provinsi": "DKI JAKARTA",
    "kota": "JAKARTA SELATAN",
    "kecamatan": "KEBAYORAN BARU",
    "kelurahan": "SENAYAN",
    "alamat": "JL CONTOH NO 1",
    "rt_rw": "001/002",
    "masa_berlaku": "SEUMUR HIDUP"
  },
  "balance": 100,
  "transaction_id": "019c1234-5678-7abc-8def-0123456789ab",
  "message": "get data successfully"
}
```

## Response envelope

| Field | Type | Description |
| --- | --- | --- |
| `code` | integer | HTTP-compatible response code. |
| `status` | string | `ok` when OCR processing completes. |
| `result` | object | Demographic fields extracted from the KTP. Fields that cannot be extracted may be omitted. |
| `balance` | integer | Remaining service balance. Postpaid integrations return `100`. |
| `transaction_id` | string | Privy's transaction identifier. |
| `message` | string | `get data successfully` for a successful request. |

## Extracted fields

The `result` object can contain `nik`, `nama`, `tanggal_lahir`, `tempat_lahir`,
`pekerjaan`, `kewarganegaraan`, `agama`, `jenis_kelamin`,
`status_perkawinan`, `golongan_darah`, `provinsi`, `kota`, `kecamatan`,
`kelurahan`, `alamat`, `rt_rw`, `dinas`, `masa_berlaku`, and `waktu_terbit`.

OCR output is extracted text, not an independent authoritative verification of
the individual's identity.
