Skip to main content

ðŸ’ģ āļāļēāļĢāļˆāļ”āļˆāļģāļ‚āđ‰āļ­āļĄāļđāļĨāđƒāļšāđāļˆāđ‰āļ‡āļĒāļ­āļ”āļšāļąāļ•āļĢāđ€āļ„āļĢāļ”āļīāļ•āđ„āļ—āļĒ (Credit Card Statement OCR) 🆕

ðŸ’ģ āđƒāļšāđāļˆāđ‰āļ‡āļĒāļ­āļ”āļšāļąāļ•āļĢāđ€āļ„āļĢāļ”āļīāļ•āđ„āļ—āļĒ

Version Status New

āļĒāļīāļ™āļ”āļĩāļ•āđ‰āļ­āļ™āļĢāļąāļšāļŠāļđāđˆ API āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļˆāļ”āļˆāļģāļ‚āđ‰āļ­āļĄāļđāļĨāđƒāļšāđāļˆāđ‰āļ‡āļĒāļ­āļ”āļšāļąāļ•āļĢāđ€āļ„āļĢāļ”āļīāļ•āđ„āļ—āļĒāļ”āđ‰āļ§āļĒ OCR āļ‹āļķāđˆāļ‡āđ€āļ›āđ‡āļ™āđ‚āļ‹āļĨāļđāļŠāļąāļ™āļ—āļĩāđˆāđƒāļŠāđ‰āļžāļĨāļąāļ‡āļ‚āļ­āļ‡ AI āļ—āļĩāđˆāļžāļąāļ’āļ™āļēāđ‚āļ”āļĒ āļšāļĢāļīāļĐāļąāļ— āđ„āļ­āđāļ­āļžāļžāđŒāđ€āļ—āļ„āđ‚āļ™āđ‚āļĨāļĒāļĩ āļˆāļģāļāļąāļ” āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļ”āļķāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļˆāļēāļāđƒāļšāđāļˆāđ‰āļ‡āļĒāļ­āļ”āļšāļąāļ•āļĢāđ€āļ„āļĢāļ”āļīāļ•āđ„āļ—āļĒ āđ€āļ­āļāļŠāļēāļĢāļ™āļĩāđ‰āļˆāļ°āļŠāđˆāļ§āļĒāđƒāļŦāđ‰āļ„āļļāļ“āļŠāļēāļĄāļēāļĢāļ–āļœāļŠāļēāļ™āļĢāļ§āļĄāđāļĨāļ°āđƒāļŠāđ‰āļ‡āļēāļ™āļšāļĢāļīāļāļēāļĢ OCR āļ‚āļ­āļ‡āđ€āļĢāļēāđ„āļ”āđ‰āļ­āļĒāđˆāļēāļ‡āļĄāļĩāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļž

āđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āđƒāļŠāđ‰āļ‡āļēāļ™â€‹

  1. āļ‚āđ‰āļ­āļāļģāļŦāļ™āļ”āđ€āļšāļ·āđ‰āļ­āļ‡āļ•āđ‰āļ™

    • API key āļˆāļēāļ āđ„āļ­āđāļ­āļžāļžāđŒāđ€āļ—āļ„āđ‚āļ™āđ‚āļĨāļĒāļĩ
    • āļĢāļđāļ›āļ āļēāļžāđƒāļšāđāļˆāđ‰āļ‡āļĒāļ­āļ”āļšāļąāļ•āļĢāđ€āļ„āļĢāļ”āļīāļ•āđ„āļ—āļĒ
    • āļĢāļđāļ›āđāļšāļšāđ„āļŸāļĨāđŒāļ—āļĩāđˆāļĢāļ­āļ‡āļĢāļąāļš: JPEG, JPG, PNG, HEIC, HEIF, PDF
    • āļ‚āļ™āļēāļ”āđ„āļŸāļĨāđŒāļŠāļđāļ‡āļŠāļļāļ”: 10MB
  2. āļāļēāļĢāđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āļ­āļĒāđˆāļēāļ‡āļĢāļ§āļ”āđ€āļĢāđ‡āļ§

    • āļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļ—āļĩāđˆāļĢāļ§āļ”āđ€āļĢāđ‡āļ§ (5-10 āļ§āļīāļ™āļēāļ—āļĩāļ•āđˆāļ­āđ€āļ­āļāļŠāļēāļĢ)
    • āļāļēāļĢāļŠāļāļąāļ”āļ‚āđ‰āļ­āļ„āļ§āļēāļĄāļ—āļĩāđˆāļĄāļĩāļ„āļ§āļēāļĄāđāļĄāđˆāļ™āļĒāļģāļŠāļđāļ‡
    • āļĢāļ­āļ‡āļĢāļąāļšāļĢāļđāļ›āđāļšāļšāđ„āļŸāļĨāđŒāļŦāļĨāļēāļĒāļĢāļđāļ›āđāļšāļš
  3. āļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļīāļŦāļĨāļąāļ

    • āļāļēāļĢāļŠāļāļąāļ”āļ‚āđ‰āļ­āļĄāļđāļĨāļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”āļ•āđˆāļēāļ‡āđ† āļĢāļ§āļĄāļ–āļķāļ‡:
      • āļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”āđƒāļšāđāļˆāđ‰āļ‡āļĒāļ­āļ” (āļ›āļĢāļ°āđ€āļ āļ—, āļ§āļąāļ™āļ—āļĩāđˆ, āļŦāļĄāļēāļĒāđ€āļĨāļ‚āļšāļąāļ•āļĢ)
      • āļ‚āđ‰āļ­āļĄāļđāļĨāļœāļđāđ‰āļ–āļ·āļ­āļšāļąāļ•āļĢ (āļŠāļ·āđˆāļ­)
      • āļ‚āđ‰āļ­āļĄāļđāļĨāļ˜āļ™āļēāļ„āļēāļĢ (āļŠāļ·āđˆāļ­, āļ—āļĩāđˆāļ­āļĒāļđāđˆ, āđ€āļĨāļ‚āļ›āļĢāļ°āļˆāļģāļ•āļąāļ§āļœāļđāđ‰āđ€āļŠāļĩāļĒāļ āļēāļĐāļĩ, āļ‚āđ‰āļ­āļĄāļđāļĨāļ•āļīāļ”āļ•āđˆāļ­)
      • āļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”āļ˜āļļāļĢāļāļĢāļĢāļĄ (āļ§āļąāļ™āļ—āļĩāđˆ, āļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”, āļˆāļģāļ™āļ§āļ™āđ€āļ‡āļīāļ™)
      • āļŠāļĢāļļāļ›āļ—āļēāļ‡āļāļēāļĢāđ€āļ‡āļīāļ™ (āļĒāļ­āļ”āļ„āļ‡āđ€āļŦāļĨāļ·āļ­, āļāļēāļĢāļŠāļģāļĢāļ°āđ€āļ‡āļīāļ™, āļ„āđˆāļēāļ˜āļĢāļĢāļĄāđ€āļ™āļĩāļĒāļĄ)
      • āļ‚āđ‰āļ­āļĄāļđāļĨāļ„āļ°āđāļ™āļ™āļŠāļ°āļŠāļĄ
    • āļĢāļ­āļ‡āļĢāļąāļšāđ€āļ­āļāļŠāļēāļĢāļ—āļąāđ‰āļ‡āđāļšāļšāļŦāļ™āđ‰āļēāđ€āļ”āļĩāļĒāļ§āđāļĨāļ°āļŦāļĨāļēāļĒāļŦāļ™āđ‰āļē (PDF)
    • āļ•āļąāļ§āđ€āļĨāļ·āļ­āļāđƒāļ™āļāļēāļĢāļŠāđˆāļ‡āļ„āļ·āļ™āļ‚āđ‰āļ­āļ„āļ§āļēāļĄ OCR āļ•āđ‰āļ™āļ‰āļšāļąāļšāđāļĨāļ°āļĢāļđāļ›āļ āļēāļžāļ—āļĩāđˆāļœāđˆāļēāļ™āļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāđāļĨāđ‰āļ§
    • āļĢāļđāļ›āđāļšāļšāļāļēāļĢāļ•āļ­āļšāļŠāļ™āļ­āļ‡ JSON āļ—āļĩāđˆāļĒāļ·āļ”āļŦāļĒāļļāđˆāļ™āļžāļĢāđ‰āļ­āļĄāļāļēāļĢāļŠāļāļąāļ”āļ‚āđ‰āļ­āļĄāļđāļĨāļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”
  4. āļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒāđāļĨāļ°āļāļēāļĢāļ›āļāļīāļšāļąāļ•āļīāļ•āļēāļĄāļāļŽāļĢāļ°āđ€āļšāļĩāļĒāļš

    • āļ›āļāļīāļšāļąāļ•āļīāļ•āļēāļĄ GDPR āđāļĨāļ° PDPA
    • āļˆāļļāļ”āļŠāļīāđ‰āļ™āļŠāļļāļ” API āļ—āļĩāđˆāļ›āļĨāļ­āļ”āļ āļąāļĒ
    • āđ„āļĄāđˆāļĄāļĩāļāļēāļĢāđ€āļāđ‡āļšāļĢāļąāļāļĐāļēāļ‚āđ‰āļ­āļĄāļđāļĨāļŦāļĨāļąāļ‡āļˆāļēāļāļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨ

āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡â€‹

āļ™āļĩāđˆāļ„āļ·āļ­āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āđƒāļšāđāļˆāđ‰āļ‡āļĒāļ­āļ”āļšāļąāļ•āļĢāđ€āļ„āļĢāļ”āļīāļ•āđāļĨāļ°āļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāļŠāļāļąāļ”āđ„āļ”āđ‰:

Credit Card Statement Example

āļ„āļģāļ‚āļ­:​

cURL

curl -X POST "https://api.iapp.co.th/ocr/v3/creditcard-statement/file" \
-H "apikey: YOUR_API_KEY" \
-F "file=@/path/to/creditcard-statement.jpg" \
-F "return_image=false" \
-F "return_ocr=false"
āļ§āļīāļ˜āļĩāļāļēāļĢāļĢāļąāļš API Key?

āļāļĢāļļāļ“āļēāđ€āļĒāļĩāđˆāļĒāļĄāļŠāļĄ iApp AI Portal āđ€āļžāļ·āđˆāļ­āļ”āļđ API key āļ—āļĩāđˆāļĄāļĩāļ­āļĒāļđāđˆāļ‚āļ­āļ‡āļ„āļļāļ“āļŦāļĢāļ·āļ­āļ‚āļ­ API key āđƒāļŦāļĄāđˆ

āļāļēāļĢāļ•āļ­āļšāļŠāļ™āļ­āļ‡:​

{
"message": "success",
"processed": {
"statementType": "āđƒāļšāđāļˆāđ‰āļ‡āļĒāļ­āļ”āļšāļąāļāļŠāļĩāļšāļąāļ•āļĢāđ€āļ„āļĢāļ”āļīāļ•",
"statementDate": "31/12/2566",
"dueDate": "25/01/2567",
"cardNumber": "4711-XXXX-XXXX-1234",
"cardHolderName": "āļ™āļēāļĒ āļ—āļ”āļŠāļ­āļš āļĢāļ°āļšāļš",
"bankName": "āļ˜āļ™āļēāļ„āļēāļĢāļāļŠāļīāļāļĢāđ„āļ—āļĒ āļˆāļģāļāļąāļ” (āļĄāļŦāļēāļŠāļ™)",
"bankAddress": "1 āļ‹āļ­āļĒāļĢāļēāļĐāļŽāļĢāđŒāļšāļđāļĢāļ“āļ° 27/1 āļ–āļ™āļ™āļĢāļēāļĐāļŽāļĢāđŒāļšāļđāļĢāļ“āļ° āđāļ‚āļ§āļ‡āļĢāļēāļĐāļŽāļĢāđŒāļšāļđāļĢāļ“āļ° āđ€āļ‚āļ•āļĢāļēāļĐāļŽāļĢāđŒāļšāļđāļĢāļ“āļ° āļāļĢāļļāļ‡āđ€āļ—āļžāļŊ 10140",
"bankTaxID": "0107536000315",
"bankPhone": "02-888-8888",
"bankFax": "02-888-8888",
"creditLimit": 100000.00,
"closingDate": "31/12/2566",
"newBalancePayment": 15789.40,
"minimumPaymentDue": 789.47,
"interestRate": 16.00,
"paymentByDebitAccountNo": "XXX-X-XX789-X",
"transactions": [
{
"transactionDate": "20/12",
"postingDate": "21/12",
"description": "CHOKCHAI STEAK HOUSE PATHUMTHANI THA",
"foreignAmount": null,
"foreignCurrencyCode": null,
"amountTHB": 1089.00
}
],
"payments_adjustment_others": [
{
"transactionDate": "31/12",
"postingDate": "31/12",
"description": "PAYMENT RECEIVED, THK YOU",
"foreignAmount": null,
"foreignCurrencyCode": null,
"amountTHB": -369.00
}
],
"previousBalance": 14789.40,
"thisPeriodBalance": 15789.40,
"totalPayments": 678.00,
"totalInterestCharges": 0.00,
"reward": {
"rewardAccumulatedPoints": 1234,
"rewardPointsEarned": 56,
"bonusPointsEarned": 0,
"pointsAdjustedThisMonth": 0,
"pointsRedeemed": 0,
"pointsOutstanding": 1290
},
"paymentBarcodeNo": "1234567890123456789"
},
"process_ms": 6821
}

āļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļīāđāļĨāļ°āļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–​

āļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļīāļŦāļĨāļąāļâ€‹

  1. āļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāđ€āļ­āļāļŠāļēāļĢ

    • āļāļēāļĢāļŠāļāļąāļ”āļ‚āđ‰āļ­āļ„āļ§āļēāļĄāđāļĨāļ°āļāļēāļĢāļˆāļ”āļˆāļģāļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāļĄāļĩāļ„āļ§āļēāļĄāđāļĄāđˆāļ™āļĒāļģāļŠāļđāļ‡
    • āļĢāļ­āļ‡āļĢāļąāļšāļ āļēāļĐāļēāđ„āļ—āļĒ
    • āđ€āļ§āļĨāļēāđƒāļ™āļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļ—āļĩāđˆāļĢāļ§āļ”āđ€āļĢāđ‡āļ§ 5-10 āļ§āļīāļ™āļēāļ—āļĩāļ•āđˆāļ­āđ€āļ­āļāļŠāļēāļĢ
    • āļĢāļ­āļ‡āļĢāļąāļšāļĢāļđāļ›āđāļšāļšāđ„āļŸāļĨāđŒāļŦāļĨāļēāļĒāđāļšāļš (JPEG, JPG, PNG, HEIC, HEIF, PDF)
    • āļāļēāļĢāļˆāļąāļ”āļāļēāļĢāđ€āļ­āļāļŠāļēāļĢāļŦāļĨāļēāļĒāļŦāļ™āđ‰āļē
    • āļ•āļąāļ§āđ€āļĨāļ·āļ­āļāđƒāļ™āļāļēāļĢāļŠāđˆāļ‡āļ„āļ·āļ™āļ‚āđ‰āļ­āļ„āļ§āļēāļĄ OCR āļ•āđ‰āļ™āļ‰āļšāļąāļšāđāļĨāļ°āļĢāļđāļ›āļ āļēāļžāļ—āļĩāđˆāļœāđˆāļēāļ™āļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāđāļĨāđ‰āļ§
    • āļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļ—āļĩāđˆāļŠāļ­āļ”āļ„āļĨāđ‰āļ­āļ‡āļāļąāļš GDPR āđāļĨāļ° PDPA
  2. āļāļēāļĢāļŠāļāļąāļ”āļ‚āđ‰āļ­āļĄāļđāļĨ

    • āļĢāļđāļ›āđāļšāļšāļāļēāļĢāļ•āļ­āļšāļŠāļ™āļ­āļ‡ JSON āļ—āļĩāđˆāļĒāļ·āļ”āļŦāļĒāļļāđˆāļ™āļžāļĢāđ‰āļ­āļĄāļāļēāļĢāļŠāļāļąāļ”āļ‚āđ‰āļ­āļĄāļđāļĨāļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”

āļŸāļīāļĨāļ”āđŒāļ—āļĩāđˆāļĢāļ­āļ‡āļĢāļąāļšâ€‹

āļŸāļīāļĨāļ”āđŒāļ›āļĢāļ°āđ€āļ āļ—āļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
statementTypeStringāļ›āļĢāļ°āđ€āļ āļ—āļ‚āļ­āļ‡āđƒāļšāđāļˆāđ‰āļ‡āļĒāļ­āļ”āļšāļąāļ•āļĢāđ€āļ„āļĢāļ”āļīāļ•
statementDateStringāļ§āļąāļ™āļ—āļĩāđˆāļ‚āļ­āļ‡āđƒāļšāđāļˆāđ‰āļ‡āļĒāļ­āļ”
dueDateStringāļ§āļąāļ™āļ„āļĢāļšāļāļģāļŦāļ™āļ”āļŠāļģāļĢāļ°āđ€āļ‡āļīāļ™
cardNumberStringāļŦāļĄāļēāļĒāđ€āļĨāļ‚āļšāļąāļ•āļĢāđ€āļ„āļĢāļ”āļīāļ•
cardHolderNameStringāļŠāļ·āđˆāļ­āļ‚āļ­āļ‡āļœāļđāđ‰āļ–āļ·āļ­āļšāļąāļ•āļĢ
bankNameStringāļŠāļ·āđˆāļ­āļ‚āļ­āļ‡āļ˜āļ™āļēāļ„āļēāļĢāļ—āļĩāđˆāļ­āļ­āļāļšāļąāļ•āļĢ
bankAddressStringāļ—āļĩāđˆāļ­āļĒāļđāđˆāļ‚āļ­āļ‡āļ˜āļ™āļēāļ„āļēāļĢāļ—āļĩāđˆāļ­āļ­āļāļšāļąāļ•āļĢ
bankTaxIDStringāđ€āļĨāļ‚āļ›āļĢāļ°āļˆāļģāļ•āļąāļ§āļœāļđāđ‰āđ€āļŠāļĩāļĒāļ āļēāļĐāļĩāļ‚āļ­āļ‡āļ˜āļ™āļēāļ„āļēāļĢāļ—āļĩāđˆāļ­āļ­āļāļšāļąāļ•āļĢ
bankPhoneStringāļŦāļĄāļēāļĒāđ€āļĨāļ‚āđ‚āļ—āļĢāļĻāļąāļžāļ—āđŒāļ‚āļ­āļ‡āļ˜āļ™āļēāļ„āļēāļĢ
bankFaxStringāļŦāļĄāļēāļĒāđ€āļĨāļ‚āđ‚āļ—āļĢāļŠāļēāļĢāļ‚āļ­āļ‡āļ˜āļ™āļēāļ„āļēāļĢ
creditLimitNumberāļ§āļ‡āđ€āļ‡āļīāļ™āļŠāļīāļ™āđ€āļŠāļ·āđˆāļ­
closingDateStringāļ§āļąāļ™āļ—āļĩāđˆāļ›āļīāļ”āļšāļąāļāļŠāļĩ
newBalancePaymentNumberāļĒāļ­āļ”āļŠāļģāļĢāļ°āđ€āļ‡āļīāļ™āļ„āļ‡āđ€āļŦāļĨāļ·āļ­āđƒāļŦāļĄāđˆ
minimumPaymentDueNumberāļĒāļ­āļ”āļŠāļģāļĢāļ°āļ‚āļąāđ‰āļ™āļ•āđˆāļģāļ—āļĩāđˆāļ•āđ‰āļ­āļ‡āļŠāļģāļĢāļ°
interestRateNumberāļ­āļąāļ•āļĢāļēāļ”āļ­āļāđ€āļšāļĩāđ‰āļĒ
paymentByDebitAccountNoStringāļŦāļĄāļēāļĒāđ€āļĨāļ‚āļšāļąāļāļŠāļĩāđ€āļ”āļšāļīāļ•āļ—āļĩāđˆāđ€āļŠāļ·āđˆāļ­āļĄāđ‚āļĒāļ‡
transactionsArrayāļ­āļēāļĢāđŒāđ€āļĢāļĒāđŒāļ‚āļ­āļ‡āļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”āļ˜āļļāļĢāļāļĢāļĢāļĄ
payments_adjustment_othersArrayāļ­āļēāļĢāđŒāđ€āļĢāļĒāđŒāļ‚āļ­āļ‡āļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”āļāļēāļĢāļŠāļģāļĢāļ°āđ€āļ‡āļīāļ™āđāļĨāļ°āļāļēāļĢāļ›āļĢāļąāļšāļ›āļĢāļļāļ‡
previousBalanceNumberāļĒāļ­āļ”āļ„āļ‡āđ€āļŦāļĨāļ·āļ­āđƒāļšāđāļˆāđ‰āļ‡āļĒāļ­āļ”āļāđˆāļ­āļ™āļŦāļ™āđ‰āļē
thisPeriodBalanceNumberāļĒāļ­āļ”āļ„āļ‡āđ€āļŦāļĨāļ·āļ­āđƒāļ™āļĢāļ­āļšāļ›āļąāļˆāļˆāļļāļšāļąāļ™
totalPaymentsNumberāļĒāļ­āļ”āļŠāļģāļĢāļ°āđ€āļ‡āļīāļ™āļ—āļąāđ‰āļ‡āļŦāļĄāļ”
totalInterestChargesNumberāļ„āđˆāļēāļ˜āļĢāļĢāļĄāđ€āļ™āļĩāļĒāļĄāļ”āļ­āļāđ€āļšāļĩāđ‰āļĒāļ—āļąāđ‰āļ‡āļŦāļĄāļ”
rewardObjectāļ‚āđ‰āļ­āļĄāļđāļĨāļ„āļ°āđāļ™āļ™āļŠāļ°āļŠāļĄ
paymentBarcodeNoStringāļŦāļĄāļēāļĒāđ€āļĨāļ‚āļšāļēāļĢāđŒāđ‚āļ„āđ‰āļ”āļāļēāļĢāļŠāļģāļĢāļ°āđ€āļ‡āļīāļ™

āļŦāļĄāļēāļĒāđ€āļŦāļ•āļļ: āļ„āđˆāļēāđ€āļ‡āļīāļ™āļ—āļąāđ‰āļ‡āļŦāļĄāļ”āļˆāļ°āļ›āļąāļ”āđ€āļĻāļĐāđ€āļ›āđ‡āļ™āļ—āļĻāļ™āļīāļĒāļĄāļŠāļ­āļ‡āļ•āļģāđāļŦāļ™āđˆāļ‡

āļ‚āđ‰āļ­āļĄāļđāļĨāļ­āđ‰āļēāļ‡āļ­āļīāļ‡ API​

āļāļēāļĢāļˆāļ”āļˆāļģāđƒāļšāđāļˆāđ‰āļ‡āļĒāļ­āļ”āļšāļąāļ•āļĢāđ€āļ„āļĢāļ”āļīāļ•â€‹

āļˆāļļāļ”āļŠāļīāđ‰āļ™āļŠāļļāļ”āļ™āļĩāđ‰āļˆāļ°āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļĢāļđāļ›āļ āļēāļžāļŦāļĢāļ·āļ­āđ€āļ­āļāļŠāļēāļĢ PDF āļ‚āļ­āļ‡āđƒāļšāđāļˆāđ‰āļ‡āļĒāļ­āļ”āļšāļąāļ•āļĢāđ€āļ„āļĢāļ”āļīāļ•āđāļĨāļ°āļŠāđˆāļ‡āļ„āļ·āļ™āļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāļŠāļāļąāļ”āđ„āļ”āđ‰āđƒāļ™āļĢāļđāļ›āđāļšāļšāļ—āļĩāđˆāļĄāļĩāđ‚āļ„āļĢāļ‡āļŠāļĢāđ‰āļēāļ‡

POST https://api.iapp.co.th/ocr/v3/creditcard-statement/file

āļŠāđˆāļ§āļ™āļŦāļąāļ§āļ‚āļ­āļ‡āļ„āļģāļ‚āļ­â€‹

āļŠāļ·āđˆāļ­āļ›āļĢāļ°āđ€āļ āļ—āļˆāļģāđ€āļ›āđ‡āļ™āļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
apikeystringāđƒāļŠāđˆAPI key āļ‚āļ­āļ‡āļ„āļļāļ“

āđ€āļ™āļ·āđ‰āļ­āļŦāļēāļ‚āļ­āļ‡āļ„āļģāļ‚āļ­ (multipart/form-data)​

āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļ›āļĢāļ°āđ€āļ āļ—āļˆāļģāđ€āļ›āđ‡āļ™āļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
filefileāđƒāļŠāđˆāļĢāļđāļ›āļ āļēāļžāđƒāļšāđāļˆāđ‰āļ‡āļĒāļ­āļ” (JPEG, PNG) āļŦāļĢāļ·āļ­āđ€āļ­āļāļŠāļēāļĢ PDF
return_imagebooleanāđ„āļĄāđˆāđƒāļŠāđˆāļĢāļ§āļĄāļĢāļđāļ›āļ āļēāļžāļ—āļĩāđˆāđ€āļ‚āđ‰āļēāļĢāļŦāļąāļŠ base64 āđƒāļ™āļāļēāļĢāļ•āļ­āļšāļŠāļ™āļ­āļ‡ (āļ„āđˆāļēāđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™: false)
return_ocrbooleanāđ„āļĄāđˆāđƒāļŠāđˆāļĢāļ§āļĄāļ‚āđ‰āļ­āļ„āļ§āļēāļĄ OCR āļ”āļīāļšāđƒāļ™āļāļēāļĢāļ•āļ­āļšāļŠāļ™āļ­āļ‡ (āļ„āđˆāļēāđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™: false)

āļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”​

āļŠāļ–āļēāļ™āļ°āļĢāļŦāļąāļŠāļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
400BAD_REQUESTāļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļŦāļĢāļ·āļ­āļĢāļđāļ›āđāļšāļšāđ„āļŸāļĨāđŒāđ„āļĄāđˆāļ–āļđāļāļ•āđ‰āļ­āļ‡
401UNAUTHORIZEDAPI key āđ„āļĄāđˆāļ–āļđāļāļ•āđ‰āļ­āļ‡āļŦāļĢāļ·āļ­āļŦāļēāļĒāđ„āļ›
404NOT_FOUNDāļˆāļļāļ”āļŠāļīāđ‰āļ™āļŠāļļāļ”āđ„āļĄāđˆāļ–āļđāļāļ•āđ‰āļ­āļ‡
500INTERNAL_SERVER_ERRORāļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļĨāđ‰āļĄāđ€āļŦāļĨāļ§

āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āđ‚āļ„āđ‰āļ”​

Python​

import requests
apiKey = 'YOUR_API_KEY'
filePath = '/path/to/creditcard-statement.jpg'
url = "https://api.iapp.co.th/ocr/v3/creditcard-statement/file"

headers = {'apikey': apiKey}
files = {'file': ('creditcard-statement.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())

Javascript​

const axios = require('axios');
const FormData = require('form-data');
const fs = require('fs');

const apiKey = 'YOUR_API_KEY';
const filePath = '/path/to/creditcard-statement.jpg';
const url = 'https://api.iapp.co.th/ocr/v3/creditcard-statement/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;
}

PHP​

$url = 'https://api.iapp.co.th/ocr/v3/creditcard-statement/file';
$apiKey = 'YOUR_API_KEY';
$filePath = '/path/to/creditcard-statement.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;

Swift​

import Foundation

let url = URL(string: "https://api.iapp.co.th/ocr/v3/creditcard-statement/file")!
let filePath = "/path/to/creditcard-statement.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=\"creditcard-statement.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()

Kotlin​

import okhttp3.*
import java.io.File

val client = OkHttpClient()
val apiKey = "YOUR_API_KEY"
val filePath = "/path/to/creditcard-statement.jpg"
val url = "https://api.iapp.co.th/ocr/v3/creditcard-statement/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())
}
}
})

Java​

import okhttp3.*;
import java.io.File;
import java.io.IOException;

public class Main {
public static void main(String[] args) {
OkHttpClient client = new OkHttpClient();

String apiKey = "YOUR_API_KEY";
String url = "https://api.iapp.co.th/ocr/v3/creditcard-statement/file";
String filePath = "/path/to/creditcard-statement.jpg";

File file = new File(filePath);
RequestBody requestBody = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("file", file.getName(), RequestBody.create(MediaType.parse("image/jpeg"), file))
.addFormDataPart("return_image", "false")
.addFormDataPart("return_ocr", "false")
.build();

Request request = new Request.Builder()
.url(url)
.post(requestBody)
.addHeader("apikey", apiKey)
.build();

client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
e.printStackTrace();
}

@Override
public void onResponse(Call call, Response response) throws IOException {
if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);
System.out.println(response.body().string());
}
});
}
}

Dart​

import 'dart:convert';
import 'dart:io';
import 'package:http/http.dart' as http;

String url = 'https://api.iapp.co.th/ocr/v3/creditcard-statement/file';
String filePath = '/path/to/creditcard-statement.jpg';
String apiKey = 'YOUR_API_KEY';

void main() async {
var url = Uri.parse(url);
var request = http.MultipartRequest('POST', url)
..headers['apikey'] = apiKey
..files.add(await http.MultipartFile.fromPath('file', filePath))
..fields['return_image'] = 'false'
..fields['return_ocr'] = 'false';

var response = await request.send();

if (response.statusCode == 200) {
var responseData = await response.stream.bytesToString();
print(responseData);
} else {
print('Error: ${response.statusCode}');
}
}

āļ‚āđ‰āļ­āļˆāļģāļāļąāļ”āđāļĨāļ°āđāļ™āļ§āļ—āļēāļ‡āļ›āļāļīāļšāļąāļ•āļīāļ—āļĩāđˆāļ”āļĩāļ—āļĩāđˆāļŠāļļāļ”​

āļ‚āđ‰āļ­āļˆāļģāļāļąāļ”​

  • āļ‚āļ™āļēāļ”āđ„āļŸāļĨāđŒāļŠāļđāļ‡āļŠāļļāļ”: 10MB
  • āļ āļēāļĐāļēāļ—āļĩāđˆāļĢāļ­āļ‡āļĢāļąāļš: āđ„āļ—āļĒ
  • āđ„āļŸāļĨāđŒ PDF: āļŠāļđāļ‡āļŠāļļāļ” 10 āļŦāļ™āđ‰āļē
  • āļ‚āļĩāļ”āļˆāļģāļāļąāļ”āļ­āļąāļ•āļĢāļē: 10 āļ„āļģāļ‚āļ­āļ•āđˆāļ­āļ§āļīāļ™āļēāļ—āļĩāļ•āđˆāļ­ API key

āđāļ™āļ§āļ—āļēāļ‡āļ›āļāļīāļšāļąāļ•āļīāļ—āļĩāđˆāļ”āļĩāļ—āļĩāđˆāļŠāļļāļ”​

  1. āļ•āļĢāļ§āļˆāļŠāļ­āļšāđƒāļŦāđ‰āđāļ™āđˆāđƒāļˆāļ§āđˆāļēāļ„āļļāļ“āļ āļēāļžāļ‚āļ­āļ‡āļĢāļđāļ›āļ āļēāļžāļ”āļĩāđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āđ„āļ”āđ‰āļœāļĨāļĨāļąāļžāļ˜āđŒāļ—āļĩāđˆāļ”āļĩāļ—āļĩāđˆāļŠāļļāļ”
  2. āđƒāļŠāđ‰āļĢāļđāļ›āđāļšāļš JPEG āļŦāļĢāļ·āļ­ PNG āļŠāļģāļŦāļĢāļąāļšāļĢāļđāļ›āļ āļēāļž
  3. āđƒāļŠāđ‰āļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”āļŠāļģāļŦāļĢāļąāļšāļ„āļģāļ‚āļ­āļ—āļĩāđˆāļĨāđ‰āļĄāđ€āļŦāļĨāļ§
  4. āđāļ„āļŠāļāļēāļĢāļ•āļ­āļšāļŠāļ™āļ­āļ‡āđ€āļĄāļ·āđˆāļ­āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāđ€āļ­āļāļŠāļēāļĢāđ€āļ”āļĩāļĒāļ§āļāļąāļ™āļŦāļĨāļēāļĒāļ„āļĢāļąāđ‰āļ‡
  5. āļ•āļąāđ‰āļ‡āļ„āđˆāļēāļĢāļ°āļĒāļ°āđ€āļ§āļĨāļēāļŦāļĄāļ”āđ€āļ§āļĨāļēāļ—āļĩāđˆāđ€āļŦāļĄāļēāļ°āļŠāļĄāļŠāļģāļŦāļĢāļąāļšāđ„āļŸāļĨāđŒāļ‚āļ™āļēāļ”āđƒāļŦāļāđˆ

āļ„āļ§āļēāļĄāđāļĄāđˆāļ™āļĒāļģāđāļĨāļ°āļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžâ€‹

āļ„āļ§āļēāļĄāđāļĄāđˆāļ™āļĒāļģāđ‚āļ”āļĒāļĢāļ§āļĄâ€‹

āļˆāļēāļāļŠāļļāļ”āļ‚āđ‰āļ­āļĄāļđāļĨāļĄāļēāļ•āļĢāļāļēāļ™āļ‚āļ­āļ‡āđƒāļšāđāļˆāđ‰āļ‡āļĒāļ­āļ”āļšāļąāļ•āļĢāđ€āļ„āļĢāļ”āļīāļ•āđ„āļ—āļĒ (āļĄāļēāļāļāļ§āđˆāļē 1,000 āđ€āļ­āļāļŠāļēāļĢāđƒāļšāđāļˆāđ‰āļ‡āļĒāļ­āļ”āļšāļąāļ•āļĢāđ€āļ„āļĢāļ”āļīāļ•āđ„āļ—āļĒ):

āļ›āļĢāļ°āđ€āļ āļ—āļŸāļīāļĨāļ”āđŒāļ„āļ§āļēāļĄāđāļĄāđˆāļ™āļĒāļģ (%)āļŦāļĄāļēāļĒāđ€āļŦāļ•āļļ
āļŦāļĄāļēāļĒāđ€āļĨāļ‚āļšāļąāļ•āļĢ99.5%āļ–āļđāļāļ›āļāļ›āļīāļ”āđ€āļžāļ·āđˆāļ­āļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒ
āļˆāļģāļ™āļ§āļ™āđ€āļ‡āļīāļ™99.8%āļ„āđˆāļēāđ€āļ‡āļīāļ™āđāļĨāļ°āļĒāļ­āļ”āļĢāļ§āļĄ
āļ§āļąāļ™āļ—āļĩāđˆ99.0%āļĢāļđāļ›āđāļšāļšāļ§āļąāļ™āļ—āļĩāđˆāđ„āļ—āļĒāļ•āđˆāļēāļ‡āđ†
āļ˜āļļāļĢāļāļĢāļĢāļĄ98.5%āļ„āļģāļ­āļ˜āļīāļšāļēāļĒāđāļĨāļ°āļˆāļģāļ™āļ§āļ™āđ€āļ‡āļīāļ™
āđ‚āļ”āļĒāļĢāļ§āļĄ99.2%āļ„āđˆāļēāđ€āļ‰āļĨāļĩāđˆāļĒāļ–āđˆāļ§āļ‡āļ™āđ‰āļģāļŦāļ™āļąāļ

āļ„āļ§āļēāļĄāđ€āļĢāđ‡āļ§āđƒāļ™āļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨ​

  • āđ€āļ§āļĨāļēāđƒāļ™āļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāđ€āļ‰āļĨāļĩāđˆāļĒ: 20-30 āļ§āļīāļ™āļēāļ—āļĩ
  • āđ€āļ›āļ­āļĢāđŒāđ€āļ‹āđ‡āļ™āđ„āļ—āļĨāđŒāļ—āļĩāđˆ 95: 45 āļ§āļīāļ™āļēāļ—āļĩ
  • āđ€āļ§āļĨāļēāđƒāļ™āļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļŠāļđāļ‡āļŠāļļāļ”: 60 āļ§āļīāļ™āļēāļ—āļĩ

āļ›āļąāļˆāļˆāļąāļĒāļ—āļĩāđˆāļĄāļĩāļœāļĨāļ•āđˆāļ­āļ„āļ§āļēāļĄāđāļĄāđˆāļ™āļĒāļģ​

  1. āļ„āļļāļ“āļ āļēāļžāļ‚āļ­āļ‡āļĢāļđāļ›āļ āļēāļž

    • āļ„āļ§āļēāļĄāļĨāļ°āđ€āļ­āļĩāļĒāļ” (āđāļ™āļ°āļ™āļģāļ­āļĒāđˆāļēāļ‡āļ™āđ‰āļ­āļĒ 300 DPI)
    • āļŠāļ āļēāļžāđāļŠāļ‡
    • āļ„āļ§āļēāļĄāļ„āļĄāļŠāļąāļ”āļ‚āļ­āļ‡āļ āļēāļž
  2. āļŠāļ āļēāļžāļ‚āļ­āļ‡āđ€āļ­āļāļŠāļēāļĢ

    • āļ„āļ§āļēāļĄāđ€āļŠāļĩāļĒāļŦāļēāļĒāļ—āļēāļ‡āļāļēāļĒāļ āļēāļž
    • āļāļēāļĢāļ‹āļĩāļ”āļˆāļēāļ‡āļŦāļĢāļ·āļ­āļāļēāļĢāļŠāļķāļāļŦāļĢāļ­
    • āļāļēāļĢāđāļāđ‰āđ„āļ‚āļ”āđ‰āļ§āļĒāļĨāļēāļĒāļĄāļ·āļ­
  3. āļĢāļđāļ›āđāļšāļšāđƒāļšāđāļˆāđ‰āļ‡āļĒāļ­āļ”

    • āļĢāļđāļ›āđāļšāļšāļĄāļēāļ•āļĢāļāļēāļ™: āļ„āļ§āļēāļĄāđāļĄāđˆāļ™āļĒāļģ 99%+
    • āļĢāļđāļ›āđāļšāļšāļ—āļĩāđˆāđ„āļĄāđˆāđ€āļ›āđ‡āļ™āļĄāļēāļ•āļĢāļāļēāļ™: āļ„āļ§āļēāļĄāđāļĄāđˆāļ™āļĒāļģ 95%+
    • āļ­āļ‡āļ„āđŒāļ›āļĢāļ°āļāļ­āļšāļ—āļĩāđˆāđ€āļ‚āļĩāļĒāļ™āļ”āđ‰āļ§āļĒāļĨāļēāļĒāļĄāļ·āļ­: āļ„āļ§āļēāļĄāđāļĄāđˆāļ™āļĒāļģ 90%+

āļ›āļĢāļ°āļ§āļąāļ•āļī​

āđāļšāļšāļˆāļģāļĨāļ­āļ‡āļ‚āļ­āļ‡āđ€āļĢāļēāđ„āļ”āđ‰āļĢāļąāļšāļāļēāļĢāļāļķāļāļāļ™āļ­āļĒāđˆāļēāļ‡āļ•āđˆāļ­āđ€āļ™āļ·āđˆāļ­āļ‡āļšāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāđƒāļŦāļĄāđˆāđ€āļžāļ·āđˆāļ­āļ›āļĢāļąāļšāļ›āļĢāļļāļ‡āļ„āļ§āļēāļĄāđāļĄāđˆāļ™āļĒāļģ:

āđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āļ§āļąāļ™āļ—āļĩāđˆāļ§āļēāļ‡āļˆāļģāļŦāļ™āđˆāļēāļĒāļ„āļ§āļēāļĄāđāļĄāđˆāļ™āļĒāļģāļāļēāļĢāļ›āļĢāļąāļšāļ›āļĢāļļāļ‡āļ—āļĩāđˆāļŠāļģāļ„āļąāļ
3.02024-12-2799.2%āđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āļžāļ·āđ‰āļ™āļāļēāļ™