ðŠŠ OCR āļāļąāļāļĢāļāļĢāļ°āļāļēāļāļāđāļāļĒ
āļĒāļīāļāļāļĩāļāđāļāļāļĢāļąāļāļŠāļđāđ API OCR āļāļąāļāļĢāļāļĢāļ°āļāļēāļāļāđāļāļĒ āđāļ§āļāļĢ āđāļāļąāļ 3.5 āļāļķāđāļāđāļāđāļāļāļĨāļīāļāļ āļąāļāļāđ AI āļāļĩāđāļāļąāļāļāļēāđāļāļĒ āļāļĢāļīāļĐāļąāļ āđāļāđāļāļāļāđāđāļāļāđāļāđāļĨāļĒāļĩ āļāļģāļāļąāļ API āļāļāļāđāļĢāļēāļāļāļāđāļāļāļĄāļēāđāļāļ·āđāļāļāļķāļāļāđāļāļĄāļđāļĨāļāđāļāļāļ§āļēāļĄāļāļēāļāļāļąāđāļāļāđāļēāļāļŦāļāđāļēāđāļĨāļ°āļāđāļēāļāļŦāļĨāļąāļāļāļāļāļāļąāļāļĢāļāļĢāļ°āļāļēāļāļāđāļāļĒāļāđāļ§āļĒāļāļ§āļēāļĄāđāļĄāđāļāļĒāļģāđāļĨāļ°āļĢāļ§āļāđāļĢāđāļ§ API āļāļāļāđāļĢāļēāļŠāļāļąāļāļŠāļāļļāļāļĢāļđāļāđāļāļāđāļāļĨāđ JPEG, JPG, PNG, HEIC, HEIF āđāļĨāļ° PDF āđāļĨāļ°āļŠāļēāļĄāļēāļĢāļāļāļĢāļ°āļĄāļ§āļĨāļāļĨāļĢāļđāļāļ āļēāļāļāļąāļāļĢāļāļĢāļ°āļāļēāļāļāđāļāđāļ āļēāļĒāđāļ 1-2 āļ§āļīāļāļēāļāļĩ
āļāļāļĨāļāļāđāļāđāļāļēāļ Demoâ
āļāļāļĨāļāļāđāļāđ AI Demo
āđāļāđāļēāļŠāļđāđāļĢāļ°āļāļāļŦāļĢāļ·āļāļŠāļĢāđāļēāļāļāļąāļāļāļĩāļāļĢāļĩāđāļāļ·āđāļāđāļāđāļāļēāļ AI Demo āđāļĨāļ°āļŠāļģāļĢāļ§āļ API āļāļĩāđāļāļĢāļāļāļĨāļąāļāļāļāļāđāļĢāļē
āļĢāļąāļ 50 āđāļāļĢāļāļīāļāļāļĢāļĩ (IC) āđāļĄāļ·āđāļāļŠāļĄāļąāļāļĢāļŠāļĄāļēāļāļīāļ!
āđāļāļĢāđāļĄāļāļąāļāļŦāļĄāļāđāļāļ 31 āļāļąāļāļ§āļē āļāļĄ 2568
āđāļĢāļīāđāļĄāļāđāļāđāļāđāļāļēāļâ
-
āļāđāļāļāļģāļŦāļāļāđāļāļ·āđāļāļāļāđāļ
- API key āļāļēāļ āđāļāđāļāļāļāđāđāļāļāđāļāđāļĨāļĒāļĩ
- āļĢāļđāļāļ āļēāļāļāļąāļāļĢāļāļĢāļ°āļāļēāļāļāđāļāļĒ (āļāđāļēāļāļŦāļāđāļē/āļāđāļēāļāļŦāļĨāļąāļ)
- āļĢāļđāļāđāļāļāđāļāļĨāđāļāļĩāđāļĢāļāļāļĢāļąāļ: JPEG, JPG, PNG, HEIC, HEIF, PDF
- āļāļāļēāļāđāļāļĨāđāļŠāļđāļāļŠāļļāļ: 10MB
-
āđāļĢāļīāđāļĄāļāđāļāđāļāđāļāļēāļāļāļĒāđāļēāļāļĢāļ§āļāđāļĢāđāļ§
- āļāļĢāļ°āļĄāļ§āļĨāļāļĨāļĢāļ§āļāđāļĢāđāļ§ (1-2 āļ§āļīāļāļēāļāļĩāļāđāļāļāļąāļāļĢ)
- āļāļēāļĢāļāļķāļāļāđāļāļāļ§āļēāļĄāļāļĩāđāđāļĄāđāļāļĒāļģāļŠāļđāļ (98.13% āļāļĩāđāļĢāļ°āļāļąāļāļāļąāļāļāļĢāļ°)
- āļĢāļāļāļĢāļąāļāļĢāļđāļāđāļāļāđāļāļĨāđāļŦāļĨāļēāļāļŦāļĨāļēāļĒ
-
āļāļļāļāļŠāļĄāļāļąāļāļīāļŦāļĨāļąāļ
- āļāļēāļĢāļāļķāļāļāđāļāļĄāļđāļĨāļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļ āļĢāļ§āļĄāļāļķāļ:
- āđāļĨāļāļāļĢāļ°āļāļģāļāļąāļ§āļāļĢāļ°āļāļēāļāļ
- āļāļ·āđāļ-āļāļēāļĄāļŠāļāļļāļĨ (āđāļāļĒāđāļĨāļ°āļāļąāļāļāļĪāļĐ)
- āļ§āļąāļāđāļāļīāļ
- āļĻāļēāļŠāļāļē
- āļāļĩāđāļāļĒāļđāđ
- āļ§āļąāļāļāļĩāđāļāļāļāļāļąāļāļĢāđāļĨāļ°āļ§āļąāļāļŦāļĄāļāļāļēāļĒāļļ
- āļĢāļāļāļĢāļąāļāļāļąāđāļāļāđāļēāļāļŦāļāđāļēāđāļĨāļ°āļāđāļēāļāļŦāļĨāļąāļāļāļāļāļāļąāļāļĢāļāļĢāļ°āļāļēāļāļ
- āļāļąāļ§āđāļĨāļ·āļāļāđāļāļāļēāļĢāļŠāđāļāļāļ·āļāļāđāļāļāļ§āļēāļĄ OCR āļāļą āđāļāđāļāļīāļĄāđāļĨāļ°āļĢāļđāļāļ āļēāļāļāļĩāđāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļĨāđāļ§
- āļĢāļđāļāđāļāļāļāļēāļĢāļāļāļāļŠāļāļāļ JSON āļāļĩāđāļĒāļ·āļāļŦāļĒāļļāđāļ
- āļāļēāļĢāļāļķāļāļāđāļāļĄāļđāļĨāļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļ āļĢāļ§āļĄāļāļķāļ:
-
āļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒāđāļĨāļ°āļāļēāļĢāļāļāļīāļāļąāļāļīāļāļēāļĄāļāđāļāļāļģāļŦāļāļ
- āļŠāļāļāļāļĨāđāļāļāļāļąāļ GDPR āđāļĨāļ° PDPA
- āđāļĄāđāļĄāļĩāļāļēāļĢāđāļāđāļāļāđāļāļĄāļđāļĨāļŦāļĨāļąāļāļāļēāļāļāļĢāļ°āļĄāļ§āļĨāļāļĨ
āļāļĢāļļāļāļēāđāļāļāļĩāđāļŦāļāđāļē āļāļēāļĢāļāļąāļāļāļēāļĢ API Key āđāļāļ·āđāļāļāļđ API Key āļāļĩāđāļĄāļĩāļāļĒāļđāđāļāļāļāļāļļāļāļŦāļĢāļ·āļāļāļ API Key āđāļŦāļĄāđ
āļāļąāļ§āļāļĒāđāļēāļâ
āļāđāļēāļāļŦāļāđāļēâ
āļāļģāļāļ:â
curl -X POST https://api.iapp.co.th/v3/store/ekyc/thai-national-id-card/front
-H "apikey: YOUR_API_KEY"
-F "file=@/path/to/idcard.jpg"
āļāļēāļĢāļāļāļāļŠāļāļāļ:â
{
"address": "XXXXXX XXXX X āļ.āļŦāļāļāļāļāļĢāļ·āļ āļ.āļāļēāļāļĨāļ°āļĄāļļāļ āļ.āļāļĨāļāļļāļĢāļĩ",
"alley": "",
"detection_score": 0.981011797984441,
"district": "āļāļēāļāļĨāļ°āļĄāļļāļ",
"en_dob": "XX Mar 1957",
"en_expire": "XX Mar 2025",
"en_fname": "XXXXXX",
"en_init": "Mrs.",
"en_issue": "26 Jul 2016",
"en_lname": "Lopez",
"en_name": "Mrs. XXXXXX Lopez",
"error_message": "",
"face": "/9j/4AAQ...UAFFFFAH/9k=", # Base64 āļāļāļāļĢāļđāļāļ āļēāļāļāđāļēāļĒ
"gender": "Female",
"home_address": "XXXXX XXX",
"house_no": "XXXXXX",
"id_number": "34117XXXXXX334",
"id_number_status": 1,
"lane": "",
"postal_code": "20150", # āļāļķāļāļĄāļēāļāļēāļāļāļēāļāļāđāļāļĄāļđāļĨāļāļąāļāđāļāļĄāļąāļāļī
"process_time": 1.3018648624420166, # āļ§āļīāļāļēāļāļĩ
"province": "āļāļĨāļāļļāļĢāļĩ",
"religion": "",
"request_id": null,
"road": "",
"sub_district": "āļŦāļāļāļāļāļĢāļ·āļ",
"th_dob": "XX āļĄāļĩ.āļ. 2500",
"th_expire": "XX āļĄāļĩ.āļ. 2568",
"th_fname": "XXXXX",
"th_init": "āļāļēāļ",
"th_issue": "XX āļ.āļ. 2559",
"th_lname": "āđāļĨāđāļāļ",
"th_name": "āļāļēāļ XXXXX āđāļĨāđāļāļ",
"village": "",
"village_no": "7"
}
āļāđāļēāļāļŦāļĨāļąāļâ
āļāļģāļāļ:â
curl --location --request POST 'https://api.iapp.co.th/v3/store/ekyc/thai-national-id-card/back' \
--header 'apikey: {Your API Key}' \
--form 'file=@"path/to/id-card-back.jpg"'
āļāļēāļĢāļāļāļāļŠāļāļāļ:â
{
"back_number": "JT0-XXXXXXX-05",
"detection_score": 0.99846746524175,
"process_time": 1.370201416015625
}
āļāļļāļāļŠāļĄāļāļąāļāļīāđāļĨāļ°āļāļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļâ
āļāļļāļāļŠāļĄāļāļąāļāļīāļŦāļĨāļąāļâ
- āļāļēāļĢāļāļķāļāļāđāļāļāļ§āļēāļĄāļāļĩāđāđāļĄāđāļāļĒāļģāļŠāļđāļ (āļāļ§āļēāļĄāđāļĄāđāļāļĒāļģāļĢāļ°āļāļąāļāļāļąāļāļāļĢāļ° 98.13%)
- āđāļ§āļĨāļēāļāļĢāļ°āļĄāļ§āļĨāļāļĨāļĢāļ§āļāđāļĢāđāļ§ (1-3 āļ§āļīāļāļēāļāļĩāļāđāļāļāļąāļāļĢ)
- āļĢāļāļāļĢāļąāļāļĢāļđāļāđāļāļāđāļāļĨāđāļŦāļĨāļēāļāļŦāļĨ āļēāļĒ (JPEG, JPG, PNG, HEIC, HEIF, PDF)
- āļāļēāļĢāļāļĢāļāļāļāļąāļāđāļĨāļ°āļŦāļĄāļļāļāļāļąāļāļĢāļāļąāļāđāļāļĄāļąāļāļī
- āļŠāđāļāļāļ·āļāļāļĨāđāļāļāļāļāļāđāļāļ (bounding boxes) āđāļĨāļ°āļāļ°āđāļāļāļŠāļģāļŦāļĢāļąāļāļāļīāļĨāļāđ
- āļŠāđāļāļāļ·āļāļĢāļđāļāļ āļēāļ base64 āļāļāļāļāļąāļāļĢāđāļĨāļ°āļāļīāļĨāļāđ
- āļŠāđāļāļāļ·āļāļāđāļāļāļ§āļēāļĄ OCR āļāļąāđāļāđāļāļīāļĄ
- āļĢāļāļāļĢāļąāļāļāđāļēāļāļŦāļĨāļąāļāļāļāļāļāļąāļāļĢāđāļāļĒāđāļĄāđāļĄāļĩāļāļīāļ
āļāļīāļĨāļāđāļāļĩāđāļĢāļāļāļĢāļąāļâ
āļāđāļēāļāļŦāļāđāļēâ
| āļāļīāļĨāļāđ | āļāļĢāļ°āđāļ āļ | āļāļģāļāļāļīāļāļēāļĒ |
|---|---|---|
| address | String | āļāļĩāđāļāļĒāļđāđāļāļāļāļąāļāļĢāļāļĢāļ°āļāļēāļāļ |
| detection_score | float | āļāļ°āđāļāļāļāļēāļĢāļāļĢāļ§āļāļāļąāļāļāļīāļĨāļāđāļāļĩāđāđāļāļĩāđāļĒāļ§āļāđāļāļ |
| district | String | āļāļ·āđāļāļāļģāđāļ āļ/āđāļāļāļāļāļāļąāļāļĢāļāļĢāļ°āļāļēāļāļ |
| en_dob | String | āļ§āļąāļāđāļāļīāļ āđāļāđāļāļ āļēāļĐāļēāļāļąāļāļāļĪāļĐ |
| en_expire | String | āļ§āļąāļāļŦāļĄāļāļāļēāļĒāļļ āđāļāđāļāļ āļēāļĐāļēāļāļąāļāļāļĪāļĐ |
| en_fname | String | āļāļ·āđāļāļāđāļ āđ āļāđāļāļ āļēāļĐāļēāļāļąāļāļāļĪāļĐ |
| en_init | String | āļāļģāļāļģāļŦāļāđāļēāļāļ·āđāļ āđāļāđāļāļ āļēāļĐāļēāļāļąāļāļāļĪāļĐ |
| en_issue | String | āļ§āļąāļāļāļĩāđāļāļāļāļāļąāļāļĢ āđāļāđāļāļ āļēāļĐāļēāļāļąāļāļāļĪāļĐ |
| en_lname | String | āļāļēāļĄāļŠāļāļļāļĨ āđāļāđāļāļ āļēāļĐāļēāļāļąāļāļāļĪāļĐ |
| en_name | String | āļāļ·āđāļāļāđāļāđāļĨāļ°āļāļēāļĄāļŠāļāļļāļĨ āđāļāđāļāļ āļēāļĐāļēāļāļąāļāļāļĪāļĐ |
| error_message | String | āļāđāļāļāļ§āļēāļĄāđāļŠāļāļāļāđāļāļāļīāļāļāļĨāļēāļ |
| face | String | āļŠāļāļĢāļīāļāļāļąāļāļāļĢāļ° Base64 āļāļĩāđāđāļāļĨāļāļāļēāļāļĢāļđāļāļ āļēāļ |
| gender | String | āđāļāļĻ |
| home_address | String | āļāļĩāđāļāļĒāļđāđāļāļēāļĄāļāļ°āđāļāļĩāļĒāļāļāđāļēāļāļāļāļāļąāļāļĢāļāļĢāļ°āļāļēāļāļ |
| id_number | String | āđāļĨāļāļāļĢāļ°āļāļģāļāļąāļ§āļāļĢāļ°āļāļēāļāļ |
| postal_code | String | āļĢāļŦāļąāļŠāđāļāļĢāļĐāļāļĩāļĒāđ |
| process_time | String | āđāļ§āļĨāļēāļāļĢāļ°āļĄāļ§āļĨāļāļĨ (āļ§āļīāļāļēāļāļĩ) |
| province | String | āļāļ·āđāļāļāļąāļāļŦāļ§āļąāļāļāļāļāļąāļāļĢāļāļĢāļ°āļāļēāļāļ |
| religion | String | āļĻāļēāļŠāļāļēāļāļāļāļąāļāļĢāļāļĢāļ°āļāļēāļāļ |
| sub_district | String | āļāļ·āđāļāļāļģāļāļĨ/āđāļāļ§āļāļāļāļāļąāļāļĢāļāļĢāļ°āļāļēāļāļ |
| th_dob | String | āļ§āļąāļāđāļāļīāļ āđāļāđāļāļ āļēāļĐāļēāđāļāļĒ |
| th_expire | String | āļ§āļąāļāļŦāļĄāļāļāļēāļĒāļļ āđāļāđāļāļ āļēāļĐāļēāđāļāļĒ |
| th_fname | String | āļāļ·āđāļāļāđāļ āđāļāđāļāļ āļēāļĐāļēāđāļāļĒ |
| th_init | String | āļāļģāļāļģāļŦāļāđāļēāļāļ·āđāļ āđāļāđāļāļ āļēāļĐāļēāđāļāļĒ |
| th_issue | String | āļ§āļąāļāļāļĩāđāļāļāļāļāļąāļāļĢ āđāļāđāļāļ āļēāļĐāļēāđāļāļĒ |
| th_lname | String | āļāļēāļĄāļŠāļāļļāļĨ āđāļāđāļāļ āļēāļĐāļēāđāļāļĒ |
| th_name | String | āļāļ·āđāļāļāđāļāđāļĨāļ°āļāļēāļĄāļŠāļāļļāļĨ āđāļāđāļāļ āļēāļĐāļēāđāļāļĒ |
āļāđāļēāļāļŦāļĨāļąāļâ
| āļāļīāļĨāļāđ | āļāļĢāļ°āđāļ āļ | āļāļģāļāļāļīāļāļēāļĒ |
|---|---|---|
| back_number | String | āļŦāļĄāļēāļĒāđāļĨāļāđāļĨāđāļāļāļĢāđāļāļāļāđāļēāļāļŦāļĨāļąāļāļāļąāļāļĢāļāļĢāļ°āļāļēāļāļ |
āļāļīāļĨāļāđāļāļēāļĢāļāļāļāļŠāļāļāļāļāļąāđāļ§āđāļâ
| āļāļīāļĨāļāđ | āļāļĢāļ°āđāļ āļ | āļāļģāļāļāļīāļāļēāļĒ |
|---|---|---|
| detection_score | Float | āļāļ°āđāļāļāļāļ§āļēāļĄāđāļāļ·āđāļāļĄāļąāđāļ (0-1) |
| error_message | String | āļāđāļāļāļ§āļēāļĄāđāļŠāļāļāļāđāļāļāļīāļāļāļĨāļēāļāļŦāļēāļāļāļģāļāļāđāļĄāđāļŠāļģāđāļĢāđāļ |
| process_time | Float | āđāļ§āļĨāļēāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļāđāļāļ§āļīāļāļēāļāļĩ |
API Endpointsâ
| Endpoint | Method | āļāļģāļāļāļīāļāļēāļĒ | āļĢāļēāļāļē |
|---|---|---|---|
POST /v3/store/ekyc/thai-national-id-card/frontLegacy: /thai-national-id-card/v3.5/front | POST | āļāļķāļāļāđāļāļĄāļđāļĨāļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļāļāļēāļāļāđāļēāļāļŦāļāđāļēāļāļāļāļāļąāļāļĢāļāļĢāļ°āļāļēāļāļāđāļāļĒ | 1.25 IC āļāđāļāļāļģāļāļ |
POST /v3/store/ekyc/thai-national-id-card/backLegacy: /thai-national-id-card/v3.5.1/back | POST | āļāļķāļāļāđāļāļĄāļđāļĨāļāļēāļāļāđāļēāļāļŦāļĨāļąāļāļāļāļāļāļąāļāļĢāļāļĢāļ°āļāļēāļāļāđāļāļĒ | 0.75 IC āļāđāļāļāļģāļāļ |
API Referenceâ
Thai National ID Card Endpointsâ
1. Thai National ID Card - Front Sideâ
POST /v3/store/ekyc/thai-national-id-card/front
āļāļķāļāļāđāļāļĄāļđāļĨāļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļāļāļēāļāļāđāļēāļāļŦāļāđāļēāļāļāļāļāļąāļāļĢāļāļĢāļ°āļāļēāļāļāđāļāļĒ
Request Headersâ
| āļāļ·āđāļ | āļāļĢāļ°āđāļ āļ | āļāļģāđāļāđāļ | āļāļģāļāļāļīāļāļēāļĒ |
|---|---|---|---|
| apikey | string | āđāļāđ | API key āļāļāļāļāļļāļ |
Request Body (multipart/form-data)â
| āļāļēāļĢāļēāļĄāļīāđāļāļāļĢāđ | āļāļĢāļ°āđāļ āļ | āļāļģāđāļāđāļ | āļāļģāļāļāļīāļāļēāļĒ |
|---|---|---|---|
| file | File | āđāļāđ | āļāđāļāļĄāļđāļĨāđāļāļāļēāļĢāļĩāļāļāļāļĢāļđāļāļ āļēāļ (āļāđāļēāļāļŦāļāđāļē) |
| fields | String | āđāļĄāđ | āļāļąāļ§āđāļĨāļ·āļāļāđāļāļāļēāļĢāđāļĨāļ·āļāļāļāļīāļĨāļāđāđāļāļāļēāļĢāļŠāđāļāļāļāļ |
| options | String | āđāļĄāđ | āļāļąāļ§āđāļĨāļ·āļāļāđāļāļāļēāļĢāđāļĨāļ·āļāļāđāļāļĢāļ·āđāļāļāļĄāļ·āļāđāļĨāļ°āļāļąāđāļāļāđāļēāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨ |
2. Thai National ID Card - Back Sideâ
POST /v3/store/ekyc/thai-national-id-card/back
āļāļķāļāļāđāļāļĄāļđāļĨāļāļēāļāļāđāļēāļāļŦāļĨāļąāļāļāļāļāļāļąāļāļĢāļāļĢāļ°āļāļēāļāļāđāļāļĒ
Request Headersâ
| āļāļ·āđāļ | āļāļĢāļ°āđāļ āļ | āļāļģāđāļāđāļ | āļāļģāļāļāļīāļāļēāļĒ |
|---|---|---|---|
| apikey | string | āđāļāđ | API key āļāļāļāļāļļāļ |
Request Body (multipart/form-data)â
| āļāļēāļĢāļēāļĄāļīāđāļāļāļĢāđ | āļāļĢāļ°āđāļ āļ | āļāļģāđāļāđāļ | āļāļģāļāļāļīāļāļēāļĒ |
|---|---|---|---|
| file | File | āđāļāđ | āļāđāļāļĄāļđāļĨāđāļāļāļēāļĢāļĩāļāļāļāļĢāļđāļāļ āļēāļ (āļāđāļēāļāļŦāļĨāļąāļ) |
| options | String | āđāļĄāđ | āļāļąāļ§āđāļĨāļ·āļāļāđāļāļāļēāļĢāđāļĨāļ·āļāļāđāļāļĢāļ·āđāļāļāļĄāļ·āļāđāļĨāļ°āļāļąāđāļāļāđāļēāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨ |
āļāļąāļ§āđāļĨāļ·āļāļāļāļĩāđāļĄāļĩāđāļŦāđāđāļāđāļāļēāļâ
not_crop_card- āļāđāļēāļĄāļāļēāļĢāļāļĢāļāļāļāļąāļāļāļąāļāļĢnot_rotate_card- āļāđāļēāļĄāļāļēāļĢāļŦāļĄāļļāļāļāļąāļāđāļāļĄāļąāļāļīget_bbox- āļŠāđāļāļāļ·āļāļāļīāļāļąāļāļāļĨāđāļāļāļāļāļāđāļāļget_image- āļŠāđāļāļāļ·āļāļĢāļđāļāļ āļēāļāļāļĩāđāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļĨāđāļ§get_original- āļŠāđāļāļāļ·āļāļĢāļđāļāļ āļēāļāļāđāļāļāļāļąāļ
āļĢāļđāļāđāļāļāļāļēāļĢāļāļāļāļŠāļāļāļāļŠāļģāļŦāļĢāļąāļāļāļąāļ§āđāļĨāļ·āļāļāļāļĩāđāļĄāļĩāđāļŦāđāđāļāđāļāļēāļâ
āđāļĄāļ·āđāļāđāļāđāļāļąāļ§āđāļĨāļ·āļāļāļāļĩāđāļĄāļĩāđāļŦāđāđāļāđāļāļēāļ āļāļēāļĢāļāļāļāļŠāļāļāļ JSON āļāļ°āļĄāļĩāļāļīāļĨāļāđāđāļāļīāđāļĄāđāļāļīāļĄāļāļēāļĄāļāļąāļ§āđāļĨāļ·āļāļāļāļĩāđāđāļĨāļ·āļāļ:
āļāļēāļĢāļāļāļāļŠāļāļāļāļāļĢāđāļāļĄāļāļąāļ§āđāļĨāļ·āļāļ get_bboxâ
āļŠāđāļāļāļ·āļāļāļīāļāļąāļāļāļĨāđāļāļāļāļāļāđāļāļāļŠāļģāļŦāļĢāļąāļāđāļāđāļĨāļ°āļāļīāļĨāļāđāļāļĩāđāļāļĢāļ§āļāļāļāđāļāļĢāļđāļāđāļāļ [x1, y1, x2, y2] āļāļĢāđāļāļĄāļāļ°āđāļāļāļāļ§āļēāļĄāđāļāļ·āđāļāļĄāļąāđāļ:
{
"bbox": {
"address": [
[[119, 292, 376, 334], 0.991],
[[75, 330, 255, 362], 0.999]
],
"card": [[[0, 0, 713, 462], 0.99]],
"en_dob": [[[370, 235, 526, 266], 0.999]],
"face": [[[544, 218, 708, 407], 0.999]]
// āļāļīāļāļąāļāļāļīāļĨāļāđāļāļ·āđāļāđ...
}
}
āļāļēāļĢāļāļāļāļŠāļāļāļāļāļĢāđāļāļĄāļāļąāļ§āđāļĨāļ·āļāļ get_imageâ
āļŠāđāļāļāļ·āļāļĢāļđāļāļ āļēāļāļāļĩāđāļāļĢāļāļāļāļąāļāđāļāđāļēāļĢāļŦāļąāļŠ base64 āļŠāļģāļŦāļĢāļąāļāđāļāđāļĨāļ°āļāļīāļĨāļāđāļāļĩāđāļāļĢāļ§āļāļāļ:
{
"image": {
"address": ["/9j/4AAQSk...", "/9j/4AAQSk..."],
"card": ["/9j/4AAQSk..."],
"face": ["/9j/4AAQSk..."],
"id_number": ["/9j/4AAQSk..."]
// āļĢāļđāļāļ āļēāļāļāļīāļĨāļāđāļāļ·āđāļāđ...
}
}
āļāļēāļĢāļāļāļāļŠāļāļāļāļāļĢāđāļāļĄāļāļąāļ§āđāļĨāļ·āļāļ get_originalâ
āļŠāđāļāļāļ·āļāļāđāļēāļāđāļāļāļāļąāļāļāđāļāļāļāļąāđāļāļāļāļāļāļēāļĢāđāļāđāđāļāļāļąāļāđāļāļĄāļąāļāļī (āļāļĩāđāđāļāļīāļāļāļķāđāļāđāļāļāļąāđāļāļāļāļāļŦāļĨāļąāļāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨ) āļāļĩāđāļāļĢāļ§āļāļāļāļāļēāļāļāļą āļāļĢ:
{
"original": {
"address": "XXXXX XXXXX X āļ.āļŦāļāļāļāļāļĢāļ·āļ āļ.āļāļēāļāļĨāļ°āļĄāļļāļ āļ.āļāļĨāļāļļāļĢāļĩ",
"en_dob": "XX Mar. 1957",
"en_expire": "XX Mar. 2025",
"th_name": "āļāļēāļ XXXXXX āđāļĨāđāļāļ"
// āļāđāļēāļāļīāļĨāļāđāļāđāļāļāļāļąāļāļāļ·āđāļāđ...
}
}
āļāļēāļĢāļāļāļāļŠāļāļāļāļāļ°āļĢāļ§āļĄāļāļīāļĨāļāđāļĄāļēāļāļĢāļāļēāļ āđāļāđāļ detection_score, error_message āđāļĨāļ° process_time āđāļŠāļĄāļ āđāļāļĒāđāļĄāđāļāļģāļāļķāļāļāļķāļāļāļąāļ§āđāļĨāļ·āļāļāļāļĩāđāđāļāđ
āļĢāļŦāļąāļŠāļāđāļāļāļīāļāļāļĨāļēāļâ
āļāđāļāļāļ§āļēāļĄāđāļŠāļāļāļāđāļāļāļīāļāļāļĨāļēāļāđāļāļāļēāļ°â
Thai National ID Card Front Sideâ
| āļĢāļŦāļąāļŠāļŠāļāļēāļāļ° | āļāđāļāļāļ§āļēāļĄāļŠāļāļēāļāļ° | āļāļģāļāļāļīāļāļēāļĒ |
|---|---|---|
| 420 | NO_ID_CARD_FOUND | āđāļāļĨāđāļĢāļđāļāļ āļēāļāđāļĄāđāđāļāđāļāļąāļāļĢāļāļĢāļ°āļāļēāļāļ |
| 421 | IMAGE_ERROR_UNSUPPORTED_FORMAT | āđāļĄāđāļŠāļēāļĄāļēāļĢāļāļāļĢāļ°āļĄāļ§āļĨāļāļĨāļĢāļđāļāļ āļēāļāđāļāđ āļĢāļđāļāđāļāļāđāļāļĨāđāļāļēāļāđāļĄāđāļĢāļāļāļĢāļąāļāļŦāļĢāļ·āļāđāļāļĨāđāđāļŠāļĩāļĒāļŦāļēāļĒ |
| 422 | INVALID_IMAGE_SIZE | āļāļāļēāļāļāļāļāļĢāļđāļāļ āļēāļāļāļĩāđāļāļąāļāđāļŦāļĨāļāđāļĄāđāđāļāđāļāđāļāļāļēāļĄāļāđāļāļāļģāļŦāļāļ |
| 424 | PLEASE_VERIFY_ID_CARD_NUMBER | āļŦāļĄāļēāļĒāđāļĨāļāļāļąāļāļĢāļāļĢāļ°āļāļēāļāļāļĄāļĩ 13 āļŦāļĨāļąāļ āđāļāđāđāļĄāđāļāļđāļāļāđāļāļ āļĢāļŦāļąāļŠāļāļāļāļŠāļāļāļ 424 āļāļ°āđāļŠāļāļāđāļĄāļ·āđāļāđāļāđāļāļąāļ§āđāļĨāļ·āļāļ id_check |
| 425 | CANNOT_READ_ID_CARD_NUMBER_CLEARLY | āļŦāļĄāļēāļĒāđāļĨāļāļāļąāļāļĢāļāļĢāļ°āļāļēāļāļāļĄāļĩāļāđāļāļĒāļāļ§āđāļē 13 āļŦāļĨāļąāļ āļĢāļŦāļąāļŠāļāļāļāļŠāļāļāļ 425 āļāļ°āđāļŠāļāļāđāļĄāļ·āđāļāđāļāđāļāļąāļ§āđāļĨāļ·āļāļ id_check |
| 426 | IMAGE_ERROR_UNSUPPORTED_BLACK_WHITE_IMAGE | āđāļāđāļāļąāļ§āđāļĨāļ·āļāļ gray_check āđāļāļ·āđāļāļāļĢāļ§āļāļŠāļāļāļĢāļđāļāļ āļēāļāļāļēāļ§āļāļģāđāļĨāļ°āļ āļēāļāļŠāļĩāđāļāļē |
Thai National ID Card Back Sideâ
| āļĢāļŦāļąāļŠāļŠāļāļēāļāļ° | āļāđāļāļāļ§āļēāļĄāļŠāļāļēāļāļ° | āļāļģāļāļāļīāļāļēāļĒ |
|---|---|---|
| 430 | NO_ID_CARD_FOUND | āđāļāļĨāđāļĢāļđāļāļ āļēāļāđāļĄāđāđāļāđāļāļąāļāļĢāļāļĢāļ°āļāļēāļāļ |
| 431 | IMAGE_ERROR_UNSUPPORTED_FORMAT | āđāļĄāđāļŠāļēāļĄāļēāļĢāļāļāļĢāļ°āļĄāļ§āļĨāļāļĨāļĢāļđāļāļ āļēāļāđāļāđ āļĢāļđāļāđāļāļāđāļāļĨāđāļāļēāļāđāļĄāđāļĢāļāļāļĢāļąāļāļŦāļĢāļ·āļāđāļāļĨāđāđāļŠāļĩāļĒāļŦāļēāļĒ |
| 432 | INVALID_IMAGE_SIZE | āļāļāļēāļāļāļāļāļĢāļđāļāļ āļēāļāļāļĩāđāļāļąāļāđāļŦāļĨāļāđāļĄāđāđāļāđāļāđāļāļāļēāļĄāļāđāļāļāļģāļŦāļāļ |
| 434 | LASER_NUMBER_NOT_FOUND | āđāļĄāđāļŠāļēāļĄāļēāļĢāļāļāļĢāļ§āļāļāļąāļāļŦāļĄāļēāļĒāđāļĨāļāđāļĨāđāļāļāļĢāđāļāļāļāđāļēāļāļŦāļĨāļąāļāļāļąāļāļĢāļāļĢāļ°āļāļēāļāļāđāļāđ |
| 435 | CANNOT_READ_LASER_NUMBER_CLEARLY | āļŦāļĄāļēāļĒāđāļĨāļāđāļĨāđāļāļāļĢāđāļĄāļĩāļāđāļāļĒāļāļ§āđāļē 12 āļŦāļĨāļąāļ āļĢāļŦāļąāļŠāļāļāļāļŠāļāļāļ 435 āļāļ°āđāļŠāļāļāđāļĄāļ·āđāļāđāļāđāļāļąāļ§āđāļĨāļ·āļāļ id_check |
| 436 | IMAGE_ERROR_UNSUPPORTED_BLACK_WHITE_IMAGE | āđāļāđāļāļąāļ§āđāļĨāļ·āļāļ gray_check āđāļāļ·āđāļāļāļĢāļ§āļāļŠāļāļāļĢāļđāļāļ āļēāļāļāļēāļ§āļāļģāđāļĨāļ°āļ āļēāļāļŠāļĩāđāļāļē |
āļāđāļāļāļ§āļēāļĄāđāļŠāļāļāļāđāļāļāļīāļāļāļĨāļēāļāļāļąāđāļ§āđāļâ
| āļĢāļŦāļąāļŠāļŠāļāļēāļāļ° | āļāđāļāļāļ§āļēāļĄāļŠāļāļēāļāļ° | āļāļģāļāļāļīāļāļēāļĒ |
|---|---|---|
| 404 | REQUESTED_URL_NOT_FOUND | āđāļĄāđāļāļāđāļŠāđāļāļāļēāļ API āđāļāļāļģāļāļ |
| 405 | METHOD_NOT_ALLOWED | āļāļ·āđāļāđāļĄāļāļāļ (GET, POST) āđāļ URL āđāļĄāđāļāļđāļāļāđāļāļ |
| 413 | FILE_IS_TOO_LARGE: (more than 2 MB) | āļāļāļēāļāđāļāļĨāđāđāļŦāļāđāđāļāļīāļāđāļ |
| 427 | LONG_TIME_TO_PROCESS | āđāļāļīāļĢāđāļāđāļ§āļāļĢāđāđāļāđāđāļ§āļĨāļēāļāļēāļāđāļāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨ |
| 428 | LONG_TIME_TO_REQUEST | āđāļāļĨāđāļāļāļāđāļĢāļāļāļīāļ§āļāļēāļāđāļāļīāļāđāļ |
| 461 | NO_FILE_ATTACHED | āđāļĄāđāđāļāđāđāļāļāđāļāļĨāđ |
| 560 | SERVER_IS_BUSY: (Please try again in a few seconds.) | āđāļāļīāļĢāđāļāđāļ§āļāļĢāđāļāļģāļĨāļąāļāļāļĢāļ°āļĄāļ§āļĨāļāļĨāļāļģāļāļāļāļģāļāļ§āļāļĄāļēāļ |
| 563 | ID_CARD_API_NOT_SUPPORT_THIS_IMAGE | API āļĄāļĩāļāđāļāļāļīāļāļāļĨāļēāļāđāļāļāļĢāļ°āļāļ§āļāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨ |
āļāļąāļ§āļāļĒāđāļēāļāđāļāđāļâ
Curlâ
curl -X POST https://api.iapp.co.th/v3/store/ekyc/thai-national-id-card/front \
-H "apikey: YOUR_API_KEY" \
-F "file=@/path/to/file.jpg"
Pythonâ
import requests
url = "https://api.iapp.co.th/v3/store/ekyc/thai-national-id-card/front"
payload = {
'options': 'get_bbox,get_image'
}
files = [
('file',('id-card.jpg',open('path/to/id-card.jpg','rb'),'image/jpeg'))
]
headers = {
'apikey': 'YOUR_API_KEY'
}
response = requests.request("POST", url, headers=headers, data=payload, files=files)
print(response.json())
JavaScriptâ
const axios = require("axios")
const FormData = require("form-data")
const fs = require("fs")
const form = new FormData()
form.append("file", fs.createReadStream("path/to/id-card.jpg"))
form.append("options", "get_bbox,get_image")
const config = {
method: "post",
url: "https://api.iapp.co.th/v3/store/ekyc/thai-national-id-card/front",
headers: {
apikey: "YOUR_API_KEY",
...form.getHeaders(),
},
data: form,
}
axios(config)
.then((response) => console.log(JSON.stringify(response.data)))
.catch((error) => console.log(error))
PHPâ
<?php
$curl = curl_init();
$post_data = array(
'file'=> new CURLFile('path/to/id-card.jpg'),
'options' => 'get_bbox,get_image'
);
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.iapp.co.th/v3/store/ekyc/thai-national-id-card/front',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $post_data,
CURLOPT_HTTPHEADER => array(
'apikey: YOUR_API_KEY'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
?>
Swiftâ
import Foundation
let headers = [
"apikey": "YOUR_API_KEY"
]
let parameters = [
[
"name": "file",
"fileName": "path/to/id-card.jpg"
],
[
"name": "options",
"value": "get_bbox,get_image"
]
]
let boundary = "Boundary-\(UUID().uuidString)"
var body = ""
var error: Error? = nil
for param in parameters {
if let fileName = param["fileName"] {
let fileContent = try? String(contentsOfFile: fileName, encoding: .utf8)
body += "--\(boundary)\r\n"
body += "Content-Disposition:form-data; name=\"\(param["name"] ?? "")\""
body += "; filename=\"\(fileName)\"\r\n"
body += "Content-Type: image/jpeg\r\n\r\n"
body += fileContent ?? ""
} else {
body += "--\(boundary)\r\n"
body += "Content-Disposition:form-data; name=\"\(param["name"] ?? "")\"\r\n\r\n"
body += param["value"] ?? ""
}
}
let postData = body.data(using: .utf8)
var request = URLRequest(url: URL(string: "https://api.iapp.co.th/v3/store/ekyc/thai-national-id-card/front")!,timeoutInterval: Double.infinity)
request.addValue("YOUR_API_KEY", forHTTPHeaderField: "apikey")
request.httpMethod = "POST"
request.httpBody = postData
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data else {
print(String(describing: error))
return
}
print(String(data: data, encoding: .utf8)!)
}
task.resume()
Kotlinâ
import okhttp3.*
import java.io.File
val client = OkHttpClient()
val mediaType = MediaType.parse("image/jpeg")
val file = File("path/to/id-card.jpg")
val body = MultipartBody.Builder().setType(MultipartBody.FORM)
.addFormDataPart("file", file.name, RequestBody.create(mediaType, file))
.addFormDataPart("options", "get_bbox,get_image")
.build()
val request = Request.Builder()
.url("https://api.iapp.co.th/v3/store/ekyc/thai-national-id-card/front")
.addHeader("apikey", "YOUR_API_KEY")
.post(body)
.build()
client.newCall(request).execute().use { response ->
println(response.body()?.string())
}
Javaâ
import java.io.File;
import okhttp3.*;
public class Main {
public static void main(String[] args) {
OkHttpClient client = new OkHttpClient().newBuilder().build();
MediaType mediaType = MediaType.parse("image/jpeg");
RequestBody body = new MultipartBody.Builder().setType(MultipartBody.FORM)
.addFormDataPart("file", "id-card.jpg",
RequestBody.create(mediaType, new File("path/to/id-card.jpg")))
.addFormDataPart("options", "get_bbox,get_image")
.build();
Request request = new Request.Builder()
.url("https://api.iapp.co.th/v3/store/ekyc/thai-national-id-card/front")
.method("POST", body)
.addHeader("apikey", "YOUR_API_KEY")
.build();
try {
Response response = client.newCall(request).execute();
System.out.println(response.body().string());
} catch(Exception e) {
e.printStackTrace();
}
}
}
Dartâ
import 'package:http/http.dart' as http;
void main() async {
var request = http.MultipartRequest('POST',
Uri.parse('https://api.iapp.co.th/v3/store/ekyc/thai-national-id-card/front'));
request.files.add(await http.MultipartFile.fromPath(
'file', 'path/to/id-card.jpg'));
request.fields['options'] = 'get_bbox,get_image';
request.headers.addAll({
'apikey': 'YOUR_API_KEY'
});
http.StreamedResponse response = await request.send();
if (response.statusCode == 200) {
print(await response.stream.bytesToString());
} else {
print(response.reasonPhrase);
}
}
