ð āđāļāļĢāļąāļāļĢāļāļāļāļēāļĢāļŦāļąāļāļ āļēāļĐāļĩ āļ āļāļĩāđāļāđāļēāļĒāļāļāļāđāļāļĒ OCR ð
ð āđāļāļĢāļąāļāļĢāļāļāļāļēāļĢāļŦāļąāļāļ āļēāļĐāļĩ āļ āļāļĩāđāļāđāļēāļĒāļāļāļāđāļāļĒ / āđāļāļĢāļąāļāļĢāļāļ āļ āļāļ. āļāļ§āļī 50
āļĒāļīāļāļāļĩāļāđāļāļāļĢāļąāļāļŠāļđāđ Thai Tax Deduction Certificate OCR API āđāļāļĨāļđāļāļąāļāļāļĩāđāđāļāđāļāļĨāļąāļāļāļāļ AI āļāļĩāđāļāļąāļāļāļēāđāļāļĒ āļāļĢāļīāļĐāļąāļ āđāļāđāļāļāļāđāđāļāļāđāļāđāļĨāļĒāļĩ āļāļģāļāļąāļ āļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļāļķāļāļāđāļāļĄāļđāļĨāļāļēāļāđāļāļĢāļąāļāļĢāļāļāļāļēāļĢāļŦāļąāļāļ āļēāļĐāļĩ āļ āļāļĩāđāļāđāļēāļĒāļāļāļāđāļāļĒ āđāļāļāļŠāļēāļĢāļāļĩāđāļāļ°āļāđāļ§āļĒāđāļŦāđāļāļļāļāļŠāļēāļĄāļēāļĢāļāļāļŠāļēāļāļĢāļ§āļĄāđāļĨāļ°āđāļāđāļāļēāļāļāļĢāļīāļāļēāļĢ OCR āļāļāļāđāļĢāļēāđāļāđāļāļĒāđāļēāļāļĄāļĩāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļ
āļāļāļĨāļāļāđāļĨāļĒ!â
Example Images (Click to try)

Demo key is limited to 10 requests per day per IP
Click here to get your API key
āđāļĢāļīāđāļĄāļāđāļāđāļāđāļāļēāļâ
-
āļāđāļāļāļģāļŦāļāļāđāļāļ·āđāļāļāļāđāļ
- API key āļāļēāļ āđāļāđāļāļāļāđāđāļāļāđāļāđāļĨāļĒāļĩ
- āļĢāļđāļāļ āļēāļāđāļāļĢāļąāļāļĢāļāļāļāļēāļĢāļŦāļąāļāļ āļēāļĐāļĩ āļ āļāļĩāđāļāđāļēāļĒāļāļāļāđāļāļĒ
- āļĢāļđāļāđāļāļāđāļāļĨāđāļāļĩāđāļĢāļāļāļĢāļąāļ: JPEG, JPG, PNG, HEIC, HEIF, PDF
- āļāļāļēāļāđāļāļĨāđāļŠāļđāļāļŠāļļāļ: 10MB
-
āđāļĢāļīāđāļĄāļāđāļāļāļĒāđāļēāļāļĢāļ§āļāđāļĢāđāļ§
- āļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨāļāļĩāđāļĢāļ§āļāđāļĢāđāļ§ (5-10 āļ§āļīāļāļēāļāļĩāļāđāļāđāļāļāļŠāļēāļĢ)
- āļāļēāļĢāļāļķāļāļāđāļāļāļ§āļēāļĄāļāļĩāđāļĄāļĩāļāļ§āļēāļĄāđāļĄāđāļāļĒāļģāļŠāļđāļ
- āļĢāļāļāļĢāļąāļāļĢāļđāļāđāļāļāđāļāļĨāđāļŦāļĨāļēāļĒāļĢāļđāļāđāļāļ
-
āļāļļāļāļŠāļĄāļāļąāļāļīāļŦāļĨāļąāļ
- āļāļēāļĢāļāļķāļāļāđāļāļĄāļđāļĨāļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļāļāđāļēāļāđ āļĢāļ§āļĄāļāļķāļ:
- āļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļāđāļāļĢāļąāļāļĢāļāļ (āļĢāļŦāļąāļŠ, āļ§āļąāļāļāļĩāđ)
- āļāđāļāļĄāļđāļĨāļāļđāđāļāđāļēāļĒ (āļāļ·āđāļ, āļāļĩāđāļāļĒāļđāđ, āđāļĨāļāļāļĢāļ°āļāļģāļāļąāļ§āļāļđāđāđāļŠāļĩāļĒāļ āļēāļĐāļĩ)
- āļāđāļāļĄāļđāļĨāļāļđāđāļĢāļąāļ (āļāļ·āđāļ, āļāļĩāđāļāļĒāļđāđ, āđāļĨāļāļāļĢāļ°āļāļģāļāļąāļ§āļāļđāđāđāļŠāļĩāļĒāļ āļēāļĐāļĩ)
- āļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļāļĢāļēāļĒāđāļāđ (āļāļĢāļ°āđāļ āļ, āļāļģāļāļ§āļāđāļāļīāļ, āļ āļēāļĐāļĩāļāļĩāđāļŦāļąāļāđāļ§āđ)
- āļŠāļĢāļļāļāļāļēāļāļāļēāļĢāđāļāļīāļ (āļĢāļēāļĒāđāļāđāļĢāļ§āļĄ, āļ āļēāļĐāļĩāļāļĩāđāļŦāļąāļāđāļ§āđāļāļąāđāļāļŦāļĄāļ)
- āļĢāļāļāļĢāļąāļāđāļāļāļŠāļēāļĢāļāļąāđāļāđāļāļāļŦāļāđāļēāđāļāļĩāļĒāļ§āđāļĨāļ°āļŦāļĨāļēāļĒāļŦāļāđāļē (PDF)
- āļāļąāļ§āđāļĨāļ·āļāļāđāļāļāļēāļĢāļŠāđāļāļāļ·āļāļāđāļāļāļ§āļēāļĄ OCR āļāđāļāļāļāļąāļāđāļĨāļ°āļĢāļđāļāļ āļēāļāļāļĩāđāļāđāļēāļāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļĨāđāļ§
- āļĢāļđāļāđāļāļāļāļēāļĢāļāļāļāļŠāļāļāļ JSON āļāļĩāđāļĒāļ·āļāļŦāļĒāļļāđāļāļāļĢāđāļāļĄāļāļēāļĢāļāļķāļāļāđāļāļĄāļđāļĨāļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļ
- āļāļēāļĢāļāļķāļāļāđāļāļĄāļđāļĨāļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļāļāđāļēāļāđ āļĢāļ§āļĄāļāļķāļ:
-
āļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒāđāļĨāļ°āļāļēāļĢāļāļāļīāļāļąāļāļīāļāļēāļĄāļāļāļĢāļ°āđāļāļĩāļĒāļ
- āļāļāļīāļāļąāļāļīāļāļēāļĄ GDPR āđāļĨāļ° PDPA
- āļāļļāļāļŠāļīāđāļāļŠāļļāļ API āļāļĩāđāļāļĨāļāļāļ āļąāļĒ
- āđāļĄāđāļĄāļĩāļāļēāļĢāđāļāđāļāļĢāļąāļāļĐāļēāļāđāļāļĄāļđāļĨāļŦāļĨāļąāļāļāļēāļāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨ
API āļāļāļāđāļĢāļēāđāļāđāļĢāļąāļāļāļēāļĢāļāļāļāđāļāļāļĄāļēāđāļāļ·āđāļāļāļąāļāļāļēāļĢāļāļąāļāļĢāļđāļāđāļāļāđāļĨāļ°āđāļāđāļēāđāļāļĢāļāļāļāļāđāļāļĢāļąāļāļĢāļāļāļāļēāļĢāļŦāļąāļāļ āļēāļĐāļĩ āļ āļāļĩāđāļāđāļēāļĒāļāđāļēāļāđ āļāļĩāđāđāļāđāļāļąāļāļāļąāđāļ§āđāļāđāļāļāļĢāļ°āđāļāļĻāđāļāļĒ āđāļāļāļāļģāļĨāļāļ AI āļŦāļĨāļąāļāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļāđāļĢāļąāļāļāļēāļĢāļāļķāļāļāļāđāļŦāđāđāļāđāļēāđāļāđāļāļĢāļāļŠāļĢāđāļēāļāđāļāļāļŠāļēāļĢāļ āļēāļĐāļĩāļāļāļāđāļāļĒāđāļĨāļ°āļŠāļēāļĄāļēāļĢāļāļāļķāļāļāđāļāļĄāļđāļĨāđāļāđāļāļĒāđāļēāļāļāđāļēāđāļāļ·āđ āļāļāļ·āļāđāļĄāđāļāļēāļāđāļāļāļŠāļēāļĢāļāļĩāđāļĄāļĩāđāļŠāļĩāļĒāļāļĢāļāļāļ§āļāļŦāļĢāļ·āļāļŠāđāļāļāđāļĄāđāļāļąāļāđāļāļ
āļāļąāļ§āļāļĒāđāļēāļâ
āļāļĩāđāļāļ·āļāļāļąāļ§āļāļĒāđāļēāļāđāļāļĢāļąāļāļĢāļāļāļāļēāļĢāļŦāļąāļāļ āļēāļĐāļĩ āļ āļāļĩāđāļāđāļēāļĒāļāļāļāđāļāļĒāđāļĨāļ°āļāđāļāļĄāļđāļĨāļāļĩāđāļāļķāļāļāļāļāļĄāļē:

āļāļģāļāļ:â
cURL
curl -X POST https://api.iapp.co.th/ocr/v3/tax-deduction-certificate-prd/file \
-H apikey: YOUR_API_KEY \
-F file=@/path/to/certificate.jpg \
-F return_image=false \
-F return_ocr=false
āļāļĢāļļāļāļēāđāļĒāļĩāđāļĒāļĄāļāļĄ API Portal āđāļāļ·āđāļāļāļđ API key āļāļĩāđāļĄāļĩāļāļĒāļđāđāļāļāļāļāļļāļāļŦāļĢāļ·āļāļāļ API key āđāļŦāļĄāđ
āļāļēāļĢāļāļāļāļŠāļāļāļ:â
{
"message": "success",
"raw": {},
"processed": {
"documentType": "āļŦāļāļąāļāļŠāļ·āļāļĢāļąāļāļĢāļāļāļāļēāļĢāļŦāļąāļāļ āļēāļĐāļĩ āļ āļāļĩāđāļāđāļēāļĒ",
"documentForm": "āļ .āļ.āļ.3",
"bookNumber": "TX63XXXX",
"documentNumber": null,
"taxDeductor": {
"name": "āļāļĢāļīāļĐāļąāļ XXXXXXXXXXXXXXXXXXXX āļāļģāļāļąāļ",
"taxId": "010XXXXXXXX64",
"address": "XXXX XXXXXX XXXXXXXX āđāļāļāļāļāļĄāļāļāļ āļāļĢāļļāļāđāļāļāļĄāļŦāļēāļāļāļĢ 10150"
},
"taxpayer": {
"name": "āļāļēāļĒXXXXX āđāļāđāļāļāļąāļ§āļāļĒāđāļēāļ",
"taxId": "31XXXXXXXX123",
"address": "XXXX XXXXXX XXXXXXXX āđāļāļāļŠāļēāļāļĢ āļāļĢāļļāļāđāļāļāļĄāļŦāļēāļāļāļĢ"
},
"paymentTypes": [
{
"paymentDate": "02/09/63",
"amount": XXXXX.XX,
"withholdingTax": XXXX.XX
}
],
"totalAmount": XXXXX.XX,
"totalTax": XXXX.XX,
"socialSecurity": {
"amount": null,
"year": null
},
"taxPayerMethod": "āļāļāļāļ āļēāļĐāļĩāđāļŦāđāļāļĨāļāļāđāļ"
},
"template": "tax-deduction-certificate-prd",
"iapp": {
"page": 0,
"char": 3260
},
"process_ms": 46649
}
āļāļļāļāļŠāļĄāļāļąāļāļīāđāļĨāļ°āļāļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļâ
āļāļļāļāļŠāļĄāļāļąāļāļīāļŦāļĨāļąāļâ
-
āļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļāļāļŠāļēāļĢ
- āļāļēāļĢāļāļķāļāļāđāļāļāļ§āļēāļĄāđāļĨāļ°āļāļēāļĢāļāļāļāļģāļāđāļāļĄāļđāļĨāļāļĩāđāļĄāļĩāļāļ§āļēāļĄāđāļĄāđāļāļĒāļģāļŠāļđāļ
- āļĢāļāļāļĢāļąāļāļ āļēāļĐāļēāđāļāļĒ
- āđāļ§āļĨāļēāđāļāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨāļāļĩāđāļĢāļ§āļāđāļĢāđāļ§ 25-30 āļ§āļīāļāļēāļāļĩāļāđāļāđāļāļāļŠāļēāļĢ
- āļĢāļāļāļĢāļąāļāļĢāļđāļāđāļāļāļŦāļĨāļēāļĒāļĢāļđāļāđāļāļ (JPEG, JPG, PNG, HEIC, HEIF, PDF)
- āļāļēāļĢāļāļąāļāļāļēāļĢāđāļāļāļŠāļēāļĢāļŦāļĨāļēāļĒāļŦāļāđāļē
- āļāļąāļ§āđāļĨāļ·āļāļāđāļāļāļēāļĢāļŠāđāļāļāļ·āļāļāđāļāļāļ§āļēāļĄ OCR āļāđāļāļāļāļąāļāđāļĨāļ°āļĢāļđāļāļ āļēāļāļāļĩāđāļāđāļēāļāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļĨāđāļ§
- āļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨāļāļĩāđāļŠāļāļāļāļĨāđāļāļāļāļąāļ GDPR āđāļĨāļ° PDPA
-
āļāļēāļĢāļāļķāļāļāđāļāļĄāļđāļĨ
- āļĢāļđāļāđāļāļāļāļēāļĢāļāļāļāļŠāļāļāļ JSON āļāļĩāđāļĒāļ·āļāļŦāļĒāļļāđāļāļāļĢāđāļāļĄāļāļēāļĢāļāļķāļāļāđāļāļĄāļđāļĨāļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļ
āļāļīāļĨāļāđāļāļĩāđāļĢāļāļāļĢāļąāļâ
āļāļīāļĨāļāđ | āļāļĢāļ°āđāļ āļ | āļāļģāļāļāļīāļāļēāļĒ |
---|---|---|
documentType | String | āļāļĢāļ°āđāļ āļāļāļāļāđāļāļāļŠāļēāļĢāļ āļēāļĐāļĩ |
documentForm | String | āļĢāļđāļāđāļāļāđāļāļāļŠāļēāļĢ (āļ .āļ.āļ.1āļ, āļ .āļ.āļ.1āļ āļāļīāđāļĻāļĐ, āļ .āļ.āļ.2, āļ .āļ.āļ.3, āļ .āļ.āļ.2āļ, āļ .āļ.āļ.3āļ, āļ .āļ.āļ.53) |
bookNumber | String | āđāļĨāļāļāļĩāđāļŦāļāļąāļāļŠāļ·āļ |
documentNumber | String | āđāļĨāļāļāļĩāđāđāļāļāļŠāļēāļĢ |
taxDeductor.name | String | āļāļ·āđāļāļāļđāđāļŦāļąāļāļ āļēāļĐāļĩ |
taxDeductor.taxId | String | āđāļĨāļāļāļĢāļ°āļāļģāļāļąāļ§āļāļđāđāđāļŠāļĩāļĒāļ āļēāļĐāļĩāļāļāļāļāļđāđāļŦāļąāļāļ āļēāļĐāļĩ |
taxDeductor.address | String | āļāļĩāđāļāļĒāļđāđāļāļāļāļāļđāđāļŦāļąāļāļ āļēāļĐāļĩ |
taxpayer.name | String | āļāļ·āđāļāļāļđāđāđāļŠāļĩāļĒāļ āļēāļĐāļĩ |
taxpayer.taxId | String | āđāļĨāļāļāļĢāļ°āļāļģāļāļąāļ§āļāļđāđāđāļŠāļĩāļĒāļ āļēāļĐāļĩāļāļāļāļāļđāđāđāļŠāļĩāļĒāļ āļēāļĐāļĩ |
taxpayer.address | String | āļāļĩāđāļāļĒāļđāđāļāļāļāļāļđāđāđāļŠāļĩāļĒāļ āļēāļĐāļĩ |
paymentTypes[].paymentDate | String | āļ§āļąāļāļāļĩāđāļāļģāļĢāļ°āđāļāļīāļ |
paymentTypes[].amount | Number | āļāļģāļāļ§āļāđāļāļīāļāļāļĩāđāļāļģāļĢāļ° |
paymentTypes[].withholdingTax | Number | āļāļģāļāļ§āļāļ āļēāļĐāļĩāļāļĩāđāļŦāļąāļāđāļ§āđ |
totalAmount | Number | āļāļģāļāļ§āļāđāļāļīāļāļāļĩāđāļāļģāļĢāļ°āļāļąāđāļāļŦāļĄāļ |
totalTax | Number | āļāļģāļāļ§āļāļ āļēāļĐāļĩāļāļĩāđāļŦāļąāļāđāļ§āđāļāļąāđāļāļŦāļĄāļ |
socialSecurity.amount | Number | āļāļģāļāļ§āļāđāļāļīāļāļāļĢāļ°āļāļąāļāļŠāļąāļāļāļĄ |
socialSecurity.year | Number | āļāļĩāļāļāļāļāļĢāļ°āļāļąāļāļŠāļąāļāļāļĄ |
taxPayerMethod | String | āļ§āļīāļāļĩāļāļēāļĢāļāļģāļĢāļ°āļ āļēāļĐāļĩ (āļŦāļąāļāļ āļēāļĐāļĩ āļ āļāļĩāđāļāđāļēāļĒ, āļāļāļāļ āļēāļĐāļĩāđāļŦāđāļāļĨāļāļāđāļ, āļāļāļāļ āļēāļĐāļĩāđāļŦāđāļāļĢāļąāđāļāđāļāļĩāļĒāļ§, āļāļ·āđāļāđ) |
āļāđāļāļĄāļđāļĨāļāđāļēāļāļāļīāļ APIâ
āļĒāļīāļāļāļĩāļāđāļāļāļĢāļąāļāļŠāļđāđ Thai Tax Deduction Certificate OCR API āđāļāļĢāļ·āđāļāļāļĄāļ·āļāļāļąāļāļāļĢāļāļāļĨāļąāļāļŠāļģāļŦāļĢāļąāļāļāļēāļĢāđ āļāļĨāļāđāļāļĢāļąāļāļĢāļāļāļāļēāļĢāļŦāļąāļāļ āļēāļĐāļĩ āļ āļāļĩāđāļāđāļēāļĒāļāļāļāđāļāļĒāđāļāđāļāļāđāļāļĄāļđāļĨ JSON āļāļĩāđāļĄāļĩāđāļāļĢāļāļŠāļĢāđāļēāļ API āļāļĩāđāđāļāđāđāļāļāđāļāđāļĨāļĒāļĩ OCR āđāļĨāļ° AI āļāļąāđāļāļŠāļđāļāđāļāļ·āđāļāļāļķāļāļāđāļāļĄāļđāļĨāļŠāļģāļāļąāļāļāđāļēāļāđ āđāļāđāļ āļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļāđāļāļāļŠāļēāļĢ āļāđāļāļĄāļđāļĨāļāļđāđāļŦāļąāļāļ āļēāļĐāļĩāđāļĨāļ°āļāļđāđāđāļŠāļĩāļĒāļ āļēāļĐāļĩ āļāđāļāļĄāļđāļĨāļāļēāļĢāļāļģāļĢāļ°āđāļāļīāļ āđāļĨāļ°āļāļģāļāļ§āļāļ āļēāļĐāļĩ
āļāļēāļĢāļāļāļāļģāđāļāļĢāļąāļāļĢāļāļāļāļēāļĢāļŦāļąāļāļ āļēāļĐāļĩ āļ āļāļĩāđāļāđāļēāļĒâ
āļĄāļĩāļāļļāļāļŠāļīāđāļāļŠāļļāļāļŠāļāļāļāļļāļāļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļāļĢāļąāļāļĢāļāļāļāļēāļĢāļŦāļąāļāļ āļēāļĐāļĩ āļ āļāļĩāđāļāđāļēāļĒ:
1. āļāļēāļĢāļāļąāļāđāļŦāļĨāļāđāļāļĨāđâ
POST https://api.iapp.co.th/ocr/v3/tax-deduction-certificate-prd/file
āļŠāđāļ§āļāļŦāļąāļ§āļāļāļāļāļģāļāļâ
āļāļ·āđāļ | āļāļĢāļ°āđāļ āļ | āļāļģāđāļāđāļ | āļāļģāļāļāļīāļāļēāļĒ |
---|---|---|---|
apikey | string | āđāļāđ | API key āļāļāļāļāļļāļ |
āļāđāļāļāļ§āļēāļĄāļĢāđāļāļāļāļ (multipart/form-data)â
āļāļēāļĢāļēāļĄāļīāđāļāļāļĢāđ | āļāļĢāļ°āđāļ āļ | āļāļģāđāļāđāļ | āļāļģāļāļāļīāļāļēāļĒ |
---|---|---|---|
file | file | āđāļāđ | āļĢāļđāļāļ āļēāļāđāļāļĢāļąāļāļĢāļāļāļ āļēāļĐāļĩ (JPEG, PNG) āļŦāļĢāļ·āļāđāļāļāļŠāļēāļĢ PDF |
return_image | boolean | āđāļĄāđāđāļāđ | āļĢāļ§āļĄāļĢāļđāļāļ āļēāļāļāļĩāđāđāļāđāļēāļĢāļŦāļąāļŠ base64 āđāļāļāļēāļĢāļāļāļāļŠāļāļāļ (āļāđāļēāđāļĢāļīāđāļĄāļāđāļ: false) |
return_ocr | boolean | āđāļĄāđāđāļāđ | āļĢāļ§āļĄāļāđāļāļāļ§āļēāļĄ OCR āļāļīāļāđāļāļāļēāļĢāļāļāļāļŠāļāļāļ (āļāđāļēāđāļĢāļīāđāļĄāļāđāļ: false) |
āļĢāļđāļāđāļāļāđāļāļĨāđāļāļĩāđāļĢāļāļāļĢāļąāļâ
- āļĢāļđāļāļ āļēāļ: JPEG, PNG, HEIC, HEIF
- āđāļāļāļŠāļēāļĢ: PDF (āļŠāļđāļāļŠāļļāļ 10 āļŦāļāđāļē)
āļĢāļđāļāđāļāļāļāļēāļĢāļāļāļāļŠāļāļāļâ
{
"message": "success",
"raw": {
"image": "string", // Base64 encoded, only if return_image=true
"text": "string" // Only if return_ocr=true
},
"processed": {
"documentType": "string",
"documentForm": "string",
"bookNumber": "string",
"documentNumber": "string",
"taxDeductor": {
"name": "string",
"taxId": "string",
"address": "string"
},
"taxpayer": {
"name": "string",
"taxId": "string",
"address": "string"
},
"paymentTypes": [
{
"paymentDate": "string",
"amount": "number",
"withholdingTax": "number"
}
],
"totalAmount": "number",
"totalTax": "number",
"socialSecurity": {
"amount": "number",
"year": "number"
},
"taxPayerMethod": "string"
},
"template": "tax-deduction-certificate-prd",
"iapp": {
"page": "number",
"char": "number"
},
"process_ms": "number"
}
2. āļĢāļđāļāļ āļēāļ Base64â
POST https://api.iapp.co.th/ocr/v3/tax-deduction-certificate-prd/base64
āļŠāđāļ§āļāļŦāļąāļ§āļāļāļāļāļģāļāļâ
āļāļ·āđāļ | āļāļĢāļ°āđāļ āļ | āļāļģāđāļāđāļ | āļāļģāļāļāļīāļāļēāļĒ |
---|---|---|---|
apikey | string | āđāļāđ | API key āļāļāļāļāļļāļ |
āļāđāļāļāļ§āļēāļĄāļĢāđāļāļāļāļâ
āļāļļāļāļŠāļēāļĄāļēāļĢāļāļŠāđāļāļāđāļāļĄāļđāļĨ base64 āđāļāđāļ JSON āļŦāļĢāļ·āļāļāđāļāļĄāļđāļĨāđāļāļāļāļāļĢāđāļĄ:
āļĢāļđāļāđāļāļ JSON:
{
"base64_string": "string", // āļāđāļāļĄāļđāļĨāļĢāļđāļāļ āļēāļāļāļĩāđāđāļāđāļēāļĢāļŦāļąāļŠ base64
"return_image": false, // āļāļąāļ§āđāļĨāļ·āļāļ
"return_ocr": false // āļāļąāļ§āđāļĨāļ·āļāļ
}
āļĢāļđāļāđāļāļāļāđāļāļĄāļđāļĨāđāļāļāļāļāļĢāđāļĄ:
āļāļēāļĢāļēāļĄāļīāđāļāļāļĢāđ | āļāļĢāļ°āđāļ āļ | āļāļģāđāļāđāļ | āļāļģāļāļāļīāļāļēāļĒ |
---|---|---|---|
base64_string | string | āđāļāđ | āļāđāļāļĄāļđāļĨāļĢāļđāļāļ āļēāļāļāļĩāđāđāļāđāļēāļĢāļŦāļąāļŠ base64 |
return_image | boolean | āđāļĄāđāđāļāđ | āļĢāļ§āļĄāļĢāļđāļāļ āļēāļāļāļĩāđāđāļāđāļēāļĢāļŦāļąāļŠ base64 āđāļāļāļēāļĢāļāļāļāļŠāļāļāļ (āļāđāļēāđāļĢāļīāđāļĄāļāđāļ: false) |
return_ocr | boolean | āđāļĄāđāđāļāđ | āļĢāļ§āļĄāļāđāļāļāļ§āļēāļĄ OCR āļāļīāļāđāļāļāļēāļĢāļāļāļāļŠāļāļāļ (āļāđāļēāđāļĢāļīāđāļĄāļāđāļ: false) |
āļĢāļđāļāđāļāļāļāļēāļĢāļāļāļāļŠāļāļāļâ
āđāļŦāļĄāļ·āļāļāļāļąāļāļāļļāļāļŠāļīāđāļāļŠāļļāļāļāļēāļĢāļāļąāļāđāļŦāļĨāļāđāļāļĨāđ
āļāļąāļ§āļāļĒāđāļēāļāđāļāđāļâ
Python (āļāļēāļĢāļāļąāļāđāļŦāļĨāļāđāļāļĨāđ)â
import requests
apiKey = 'YOUR_API_KEY'
filePath = '/path/to/tax-deduction-certificate-prd.jpg'
url = "https://api.iapp.co.th/ocr/v3/tax-deduction-certificate-prd/file"
headers = {'apikey': apiKey}
files = {'file': ('tax-deduction-certificate-prd.jpg', open(filePath, 'rb'), 'image/jpeg')}
data = {'return_image': 'false', 'return_ocr': 'false'}
response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())
Python (Base64)â
import requests
import base64
apiKey = 'YOUR_API_KEY'
filePath = '/path/to/tax-deduction-certificate-prd.jpg'
url = "https://api.iapp.co.th/ocr/v3/tax-deduction-certificate-prd/base64"
# āļāđāļēāļāđāļāļĨāđāļĢāļđāļāļ āļēāļāđāļĨāļ°āđāļāļĨāļāđāļāđāļ base64
with open(filePath, 'rb') as image_file:
base64_string = base64.b64encode(image_file.read()).decode()
headers = {
'apikey': apiKey,
'Content-Type': 'application/json'
}
data = {
'base64_string': base64_string,
'return_image': False,
'return_ocr': False
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
Javascript (āļāļēāļĢāļāļąāļāđāļŦāļĨāļāđāļāļĨāđ)â
const axios = require('axios');
const FormData = require('form-data');
const fs = require('fs');
const apiKey = 'YOUR_API_KEY';
const filePath = '/path/to/tax-deduction-certificate-prd.jpg';
const url = 'https://api.iapp.co.th/ocr/v3/tax-deduction-certificate-prd/file';
const form = new FormData();
form.append('file', fs.createReadStream(filePath));
form.append('return_image', 'false');
form.append('return_ocr', 'false');
try {
const response = await axios.post(
url,
form,
{
headers: {
...form.getHeaders(),
'apikey': apiKey
}
}
);
return response.data;
} catch (error) {
throw error;
}
Javascript (Base64)â
const axios = require('axios');
const fs = require('fs');
const apiKey = 'YOUR_API_KEY';
const filePath = '/path/to/tax-deduction-certificate-prd.jpg';
const url = 'https://api.iapp.co.th/ocr/v3/tax-deduction-certificate-prd/base64';
// āļāđāļēāļāđāļāļĨāđāļĢāļđāļāļ āļēāļāđāļĨāļ°āđāļāļĨāļāđāļāđāļ base64
const base64String = fs.readFileSync(filePath, {encoding: 'base64'});
const data = {
base64_string: base64String,
return_image: false,
return_ocr: false
};
try {
const response = await axios.post(url, data, {
headers: {
'Content-Type': 'application/json',
'apikey': apiKey
}
});
return response.data;
} catch (error) {
throw error;
}
PHP (āļāļēāļĢāļāļąāļāđāļŦāļĨāļāđāļāļĨāđ)â
$url = 'https://api.iapp.co.th/ocr/v3/tax-deduction-certificate-prd/file';
$apiKey = 'YOUR_API_KEY';
$filePath = '/path/to/tax-deduction-certificate-prd.jpg';
$headers = array(
'apikey: ' . $apiKey
);
$postFields = array(
'file' => new CURLFile($filePath),
'return_image' => 'false',
'return_ocr' => 'false'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
PHP (Base64)â
$url = 'https://api.iapp.co.th/ocr/v3/tax-deduction-certificate-prd/base64';
$apiKey = 'YOUR_API_KEY';
$filePath = '/path/to/tax-deduction-certificate-prd.jpg';
// āļāđāļēāļāđāļāļĨāđāļĢāļđāļāļ āļēāļāđāļĨāļ°āđāļāļĨāļāđāļāđāļ base64
$base64String = base64_encode(file_get_contents($filePath));
$data = array(
'base64_string' => $base64String,
'return_image' => false,
'return_ocr' => false
);
$headers = array(
'Content-Type: application/json',
'apikey: ' . $apiKey
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
Swift (āļāļēāļĢāļāļąāļāđāļŦāļĨāļāđāļāļĨāđ)â
import Foundation
let url = URL(string: "https://api.iapp.co.th/ocr/v3/tax-deduction-certificate-prd/file")!
let filePath = "/path/to/tax-deduction-certificate-prd.jpg"
let apiKey = "YOUR_API_KEY"
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue(apiKey, forHTTPHeaderField: "apikey")
let boundary = UUID().uuidString
request.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")
var body = Data()
body.append("--\(boundary)\r\n".data(using: .utf8)!)
body.append("Content-Disposition: form-data; name=\"file\"; filename=\"tax-deduction-certificate-prd.jpg\"\r\n".data(using: .utf8)!)
body.append("Content-Type: image/jpeg\r\n\r\n".data(using: .utf8)!)
body.append(try! Data(contentsOf: URL(fileURLWithPath: filePath)))
body.append("\r\n--\(boundary)\r\n".data(using: .utf8)!)
body.append("Content-Disposition: form-data; name=\"return_image\"\r\n\r\nfalse\r\n".data(using: .utf8)!)
body.append("--\(boundary)\r\n".data(using: .utf8)!)
body.append("Content-Disposition: form-data; name=\"return_ocr\"\r\n\r\nfalse\r\n".data(using: .utf8)!)
body.append("--\(boundary)--\r\n".data(using: .utf8)!)
request.httpBody = body
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data, error == nil else {
print("Error: \(error?.localizedDescription ?? "Unknown error")")
return
}
print(String(data: data, encoding: .utf8)!)
}
task.resume()
Swift (Base64)â
import Foundation
let url = URL(string: "https://api.iapp.co.th/ocr/v3/tax-deduction-certificate-prd/base64")!
let filePath = "/path/to/tax-deduction-certificate-prd.jpg"
let apiKey = "YOUR_API_KEY"
// āļāđāļēāļāđāļāļĨāđāļĢāļđāļāļ āļēāļāđāļĨāļ°āđāļāļĨāļāđāļāđāļ base64
guard let imageData = try? Data(contentsOf: URL(fileURLWithPath: filePath)) else {
print("Error reading file")
return
}
let base64String = imageData.base64EncodedString()
let parameters: [String: Any] = [
"base64_string": base64String,
"return_image": false,
"return_ocr": false
]
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.setValue(apiKey, forHTTPHeaderField: "apikey")
request.httpBody = try? JSONSerialization.data(withJSONObject: parameters)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data, error == nil else {
print("Error: \(error?.localizedDescription ?? "Unknown error")")
return
}
print(String(data: data, encoding: .utf8)!)
}
task.resume()
Kotlin (āļāļēāļĢāļāļąāļāđāļŦāļĨāļāđāļāļĨāđ)â
import okhttp3.*
import java.io.File
val client = OkHttpClient()
val apiKey = "YOUR_API_KEY"
val filePath = "/path/to/tax-deduction-certificate-prd.jpg"
val url = "https://api.iapp.co.th/ocr/v3/tax-deduction-certificate-prd/file"
val file = File(filePath)
val requestBody = MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("file", file.name, RequestBody.create(MediaType.parse("image/jpeg"), file))
.addFormDataPart("return_image", "false")
.addFormDataPart("return_ocr", "false")
.build()
val request = Request.Builder()
.url(url)
.post(requestBody)
.addHeader("apikey", apiKey)
.build()
client.newCall(request).enqueue(object : Callback {
override fun onFailure(call: Call, e: IOException) {
e.printStackTrace()
}
override fun onResponse(call: Call, response: Response) {
response.use {
if (!response.isSuccessful) throw IOException("Unexpected code $response")
println(response.body()?.string())
}
}
})
Kotlin (Base64)â
import okhttp3.*
import java.io.File
import android.util.Base64
import org.json.JSONObject
fun processBase64Image() {
val client = OkHttpClient()
val apiKey = "YOUR_API_KEY"
val filePath = "/path/to/tax-deduction-certificate-prd.jpg"
val url = "https://api.iapp.co.th/ocr/v3/tax-deduction-certificate-prd/base64"
// āļāđāļēāļāđāļāļĨāđāđāļĨāļ°āđāļāļĨāļāđāļāđāļ base64
val file = File(filePath)
val bytes = file.readBytes()
val base64String = Base64.encodeToString(bytes, Base64.DEFAULT)
val json = JSONObject()
json.put("base64_string", base64String)
json.put("return_image", false)
json.put("return_ocr", false)
val requestBody = RequestBody.create(
MediaType.parse("application/json"),
json.toString()
)
val request = Request.Builder()
.url(url)
.post(requestBody)
.addHeader("Content-Type", "application/json")
.addHeader("apikey", apiKey)
.build()
client.newCall(request).enqueue(object : Callback {
override fun onFailure(call: Call, e: IOException) {
e.printStackTrace()
}
override fun onResponse(call: Call, response: Response) {
response.use {
if (!response.isSuccessful) throw IOException("Unexpected code $response")
println(response.body()?.string())
}
}
})
}