Skip to main content

ðŸ‘Ĩ🔍 āļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™āļ”āđ‰āļ§āļĒāđƒāļšāļŦāļ™āđ‰āļē

0.3 ICāļ•āđˆāļ­āļ„āļģāļ‚āļ­ðŸ† iBeta Level 1 Certified
v2.0 Active POST /v3/store/ekyc/face-verification

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

āļĨāļ­āļ‡āđ€āļ”āđ‚āļĄ!​

āļĢāļđāļ›āļ āļēāļžāļŦāļĨāļąāļ āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡ (āļ„āļĨāļīāļāđ€āļžāļ·āđˆāļ­āļĨāļ­āļ‡)

Example 1

āļĢāļđāļ›āļ āļēāļžāđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļš āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡ (āļ„āļĨāļīāļāđ€āļžāļ·āđˆāļ­āļĨāļ­āļ‡)

Example 1

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

  1. āļŠāļīāđˆāļ‡āļ—āļĩāđˆāļ•āđ‰āļ­āļ‡āļĄāļĩ

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

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

    • āļāļēāļĢāđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļšāđƒāļšāļŦāļ™āđ‰āļēāļ•āđˆāļ­āđƒāļšāļŦāļ™āđ‰āļē
    • āļāļēāļĢāđƒāļŦāđ‰āļ„āļ°āđāļ™āļ™āļ„āļ§āļēāļĄāļ„āļĨāđ‰āļēāļĒāļ„āļĨāļķāļ‡
    • āđ€āļāļ“āļ‘āđŒāđ€āļ‰āļžāļēāļ°āļ‚āļ­āļ‡āļšāļĢāļīāļĐāļąāļ—
    • āļāļēāļĢāļ•āļąāđ‰āļ‡āļ„āđˆāļēāļ„āļ°āđāļ™āļ™āļ‚āļąāđ‰āļ™āļ•āđˆāļģāļ—āļĩāđˆāļāļģāļŦāļ™āļ”āđ€āļ­āļ‡
    • āļ„āļ°āđāļ™āļ™āļ„āļ§āļēāļĄāļĄāļąāđˆāļ™āđƒāļˆāđƒāļ™āļāļēāļĢāļ•āļĢāļ§āļˆāļˆāļąāļšāđƒāļšāļŦāļ™āđ‰āļē
  4. āļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒāđāļĨāļ°āļāļēāļĢāļ›āļāļīāļšāļąāļ•āļīāļ•āļēāļĄāļāļŽāļĢāļ°āđ€āļšāļĩāļĒāļš

    • āđ€āļ›āđ‡āļ™āđ„āļ›āļ•āļēāļĄ GDPR āđāļĨāļ° PDPA
    • āđ„āļĄāđˆāļĄāļĩāļāļēāļĢāđ€āļāđ‡āļšāļ‚āđ‰āļ­āļĄāļđāļĨāļĢāļđāļ›āļ āļēāļž
    • āļˆāļļāļ”āļ›āļĨāļēāļĒ API āļ—āļĩāđˆāļ›āļĨāļ­āļ”āļ āļąāļĒ
āļˆāļ°āļĢāļąāļšāļ„āļĩāļĒāđŒ API āđ„āļ”āđ‰āļ­āļĒāđˆāļēāļ‡āđ„āļĢ?

āļāļĢāļļāļ“āļēāđ„āļ›āļ—āļĩāđˆāļŦāļ™āđ‰āļē āļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļ„āļĩāļĒāđŒ API āđ€āļžāļ·āđˆāļ­āļ”āļđāļ„āļĩāļĒāđŒ API āļ—āļĩāđˆāļĄāļĩāļ­āļĒāļđāđˆāļ‚āļ­āļ‡āļ„āļļāļ“ āļŦāļĢāļ·āļ­āļ‚āļ­āļ„āļĩāļĒāđŒāđƒāļŦāļĄāđˆ

āļāļēāļĢāļ—āļģāļ„āļ§āļēāļĄāđ€āļ‚āđ‰āļēāđƒāļˆāļ„āļ°āđāļ™āļ™āļ„āļ§āļēāļĄāļ„āļĨāđ‰āļēāļĒāļ„āļĨāļķāļ‡â€‹

āļ„āļ°āđāļ™āļ™āļ„āļ§āļēāļĄāļ„āļĨāđ‰āļēāļĒāļ„āļĨāļķāļ‡āļĄāļĩāļ•āļąāđ‰āļ‡āđāļ•āđˆ 0 āļ–āļķāļ‡ 2822 āļ‹āļķāđˆāļ‡āđ„āļ”āđ‰āļĄāļēāļˆāļēāļāļāļēāļĢāļˆāļąāļšāļ„āļđāđˆāđ€āļ—āļĄāđ€āļžāļĨāļ•āđƒāļšāļŦāļ™āđ‰āļēāļˆāļēāļ 166 āļˆāļļāļ”āļšāļ™āđƒāļšāļŦāļ™āđ‰āļē āļŠāļģāļŦāļĢāļąāļšāđāļ•āđˆāļĨāļ°āļˆāļļāļ”āļĄāļĩāļŠāđˆāļ§āļ‡āļ„āļ°āđāļ™āļ™āļ„āļ§āļēāļĄāļ„āļĨāđ‰āļēāļĒāļ„āļĨāļķāļ‡ 0-17 āļ‹āļķāđˆāļ‡āļ„āļģāļ™āļ§āļ“āļˆāļēāļāļĢāļ°āļĒāļ°āļŦāđˆāļēāļ‡ āļĄāļļāļĄ āđāļĨāļ°āļĨāļąāļāļĐāļ“āļ°āļžāļīāđ€āļĻāļĐāļĢāļ°āļŦāļ§āđˆāļēāļ‡ 17 āļˆāļļāļ”āđ‚āļ”āļĒāļĢāļ­āļš āļĒāļīāđˆāļ‡āļ„āļ°āđāļ™āļ™āļĄāļēāļāļāđ‡āļĒāļīāđˆāļ‡āļĄāļĩāđ‚āļ­āļāļēāļŠāļŠāļđāļ‡āļ—āļĩāđˆāļˆāļ°āđ€āļ›āđ‡āļ™āđƒāļšāļŦāļ™āđ‰āļēāļ‚āļ­āļ‡āļšāļļāļ„āļ„āļĨāđ€āļ”āļĩāļĒāļ§āļāļąāļ™

āđ€āļāļ“āļ‘āđŒāļĄāļēāļ•āļĢāļāļēāļ™āļŠāļģāļŦāļĢāļąāļšāļ„āļ§āļēāļĄāđāļĄāđˆāļ™āļĒāļģ 99.50% āļ„āļ·āļ­ 36 āļ”āļąāļ‡āļ™āļąāđ‰āļ™ āļŦāļēāļāļ„āļ°āđāļ™āļ™āļ™āđ‰āļ­āļĒāļāļ§āđˆāļē 36 āļˆāļ°āļ–āļ·āļ­āļ§āđˆāļēāđ€āļ›āđ‡āļ™āļšāļļāļ„āļ„āļĨāļ—āļĩāđˆāđāļ•āļāļ•āđˆāļēāļ‡āļāļąāļ™ āļŦāļēāļāļ„āļ°āđāļ™āļ™āļĄāļēāļāļāļ§āđˆāļē 36 āļ„āļ§āļĢāļžāļīāļˆāļēāļĢāļ“āļēāļ§āđˆāļēāđ€āļ›āđ‡āļ™āđƒāļšāļŦāļ™āđ‰āļēāļ‚āļ­āļ‡āļšāļļāļ„āļ„āļĨāđ€āļ”āļĩāļĒāļ§āļāļąāļ™

āđ€āļāļ“āļ‘āđŒāļ—āļĩāđˆāļŠāļđāļ‡āļ‚āļķāđ‰āļ™āļŠāļģāļŦāļĢāļąāļšāļ„āļ§āļēāļĄāđāļĄāđˆāļ™āļĒāļģ 99.95% āļ„āļ·āļ­ 48

note

āđ€āļāļ“āļ‘āđŒāļ—āļĩāđˆāđāļ—āđ‰āļˆāļĢāļīāļ‡āļ„āļ§āļĢāļžāļīāļˆāļēāļĢāļ“āļēāļ•āļēāļĄāļāļĢāļ“āļĩāļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™āđāļĨāļ°āļ‚āđ‰āļ­āļāļģāļŦāļ™āļ”āļ”āđ‰āļēāļ™āļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒāđ€āļ‰āļžāļēāļ°āļ‚āļ­āļ‡āļ„āļļāļ“

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

āļ„āļģāļ‚āļ­ API āļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™āļ”āđ‰āļ§āļĒāđƒāļšāļŦāļ™āđ‰āļē​

āđāļŠāļ”āļ‡āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āļĢāļđāļ›āļ āļēāļž

āļĢāļđāļ›āļ āļēāļž 1āļĢāļđāļ›āļ āļēāļž 2
curl --location --request POST 'https://api.iapp.co.th/v3/store/ekyc/face-verification' \
--header 'apikey: YOUR_API_KEY' \
--form 'file1=@"{Your Image File Path 1}"' \
--form 'file2=@"{Your Image File Path 2}"'

āļāļēāļĢāļ•āļ­āļšāļŠāļ™āļ­āļ‡ API āļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™āļ”āđ‰āļ§āļĒāđƒāļšāļŦāļ™āđ‰āļē:​

{
"duration": 2.1263949871063232,
"matched": true,
"message": "successfully performed",
"score": 38.0,
"threshold": 37
}

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

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

  • āļāļēāļĢāļ•āļĢāļ§āļˆāļˆāļąāļšāđāļĨāļ°āđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļšāđƒāļšāļŦāļ™āđ‰āļē
  • āļĢāļ­āļ‡āļĢāļąāļšāļĢāļđāļ›āđāļšāļš JPG, JPEG, PNG, HEIC āđāļĨāļ° HEIF
  • āļ‚āļ™āļēāļ”āļĢāļđāļ›āļ āļēāļžāļ‚āļąāđ‰āļ™āļ•āđˆāļģ: āļ„āļ§āļēāļĄāļāļ§āđ‰āļēāļ‡ 600px x āļ„āļ§āļēāļĄāļŠāļđāļ‡ 400px āļŠāļģāļŦāļĢāļąāļšāļšāļļāļ„āļ„āļĨāđ€āļ”āļĩāđˆāļĒāļ§āđāļĨāļ°āļŦāļĨāļēāļĒāļ„āļ™
  • āļ‚āļ™āļēāļ”āđ„āļŸāļĨāđŒāļŠāļđāļ‡āļŠāļļāļ”: 2MB
  • āļ„āļ°āđāļ™āļ™āļāļēāļĢāļ•āļĢāļ§āļˆāļˆāļąāļšāđāļĨāļ°āđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļšāļ—āļĩāđˆāļ›āļĢāļąāļšāđāļ•āđˆāļ‡āđ„āļ”āđ‰
  • āļ­āļīāļ™āđ€āļ—āļ­āļĢāđŒāđ€āļŸāļ‹ REST API
  • āđ€āļ™āđ‰āļ™āļ„āļ§āļēāļĄāđ€āļ›āđ‡āļ™āļŠāđˆāļ§āļ™āļ•āļąāļ§: āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļ„āļļāļ“āļĨāļąāļāļĐāļ“āļ°āļ—āļĩāđˆāđ€āļ›āđ‡āļ™āļ•āļąāļ§āđ€āļĨāļ‚āđ‚āļ”āļĒāđ„āļĄāđˆāđ€āļāđ‡āļšāļĢāļđāļ›āļ āļēāļž

āļāļēāļĢāļ”āļģāđ€āļ™āļīāļ™āļāļēāļĢāļ—āļĩāđˆāļĢāļ­āļ‡āļĢāļąāļšâ€‹

  • āļāļēāļĢāđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļšāđƒāļšāļŦāļ™āđ‰āļēāļĢāļ°āļŦāļ§āđˆāļēāļ‡āļŠāļ­āļ‡āļĢāļđāļ›āļ āļēāļž
  • āļāļēāļĢāļāļģāļŦāļ™āļ”āļ„āđˆāļēāļ„āļ°āđāļ™āļ™āđ€āļ‰āļžāļēāļ°āļ‚āļ­āļ‡āļšāļĢāļīāļĐāļąāļ—
  • āđ€āļāļ“āļ‘āđŒāļ„āļ°āđāļ™āļ™āļ‚āļąāđ‰āļ™āļ•āđˆāļģāļ—āļĩāđˆāļāļģāļŦāļ™āļ”āđ€āļ­āļ‡

āļˆāļļāļ”āļ›āļĨāļēāļĒ API​

āļˆāļļāļ”āļ›āļĨāļēāļĒāđ€āļĄāļ˜āļ­āļ”āļ„āļģāļ­āļ˜āļīāļšāļēāļĒāļ„āđˆāļēāđƒāļŠāđ‰āļˆāđˆāļēāļĒ
/v3/store/ekyc/face-verification
/face-verification, /face-verification/v2, /face2, /face_compare (āļĢāļļāđˆāļ™āđ€āļāđˆāļē)
POSTāđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļšāļĢāļđāļ›āļ āļēāļžāđƒāļšāļŦāļ™āđ‰āļēāļŠāļ­āļ‡āļĢāļđāļ›āđ€āļžāļ·āđˆāļ­āļžāļīāļˆāļēāļĢāļ“āļēāļ§āđˆāļēāđ€āļ›āđ‡āļ™āļšāļļāļ„āļ„āļĨāđ€āļ”āļĩāļĒāļ§āļāļąāļ™āļŦāļĢāļ·āļ­āđ„āļĄāđˆ0.3 IC

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

āļˆāļļāļ”āļ›āļĨāļēāļĒāļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™āļ”āđ‰āļ§āļĒāđƒāļšāļŦāļ™āđ‰āļē​

1. āļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™āļ”āđ‰āļ§āļĒāđƒāļšāļŦāļ™āđ‰āļē (āļŦāļĨāļąāļ)​

POST /v3/store/ekyc/face-verification

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


2. āļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™āļ”āđ‰āļ§āļĒāđƒāļšāļŦāļ™āđ‰āļē v2​

ðŸ“Ķ āđ€āļŠāđ‰āļ™āļ—āļēāļ‡āļĢāļļāđˆāļ™āđ€āļāđˆāļē: POST /face-verification/v2

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


3. āļāļēāļĢāđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļšāđƒāļšāļŦāļ™āđ‰āļē​

ðŸ“Ķ āđ€āļŠāđ‰āļ™āļ—āļēāļ‡āļĢāļļāđˆāļ™āđ€āļāđˆāļē: POST /face_compare

āļˆāļļāļ”āļ›āļĨāļēāļĒāļĢāļļāđˆāļ™āđ€āļāđˆāļēāļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļšāđƒāļšāļŦāļ™āđ‰āļēāļĢāļ°āļŦāļ§āđˆāļēāļ‡āļŠāļ­āļ‡āļĢāļđāļ›āļ āļēāļž


4. āļāļēāļĢāļˆāļąāļšāļ„āļđāđˆāđƒāļšāļŦāļ™āđ‰āļē (āļ—āļēāļ‡āđ€āļĨāļ·āļ­āļ)​

ðŸ“Ķ āđ€āļŠāđ‰āļ™āļ—āļēāļ‡āļĢāļļāđˆāļ™āđ€āļāđˆāļē: POST /face2

āļˆāļļāļ”āļ›āļĨāļēāļĒāļ—āļēāļ‡āđ€āļĨāļ·āļ­āļāļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļˆāļąāļšāļ„āļđāđˆāđāļĨāļ°āļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™āļ”āđ‰āļ§āļĒāđƒāļšāļŦāļ™āđ‰āļē


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

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

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

āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļ›āļĢāļ°āđ€āļ āļ—āļˆāļģāđ€āļ›āđ‡āļ™āļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
file1FileāđƒāļŠāđˆāļĢāļđāļ›āļ āļēāļžāđāļĢāļāļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļš
file2FileāđƒāļŠāđˆāļĢāļđāļ›āļ āļēāļžāļ—āļĩāđˆāļŠāļ­āļ‡āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļš
thresholdNumberāđ„āļĄāđˆāļ„āļ°āđāļ™āļ™āđ€āļāļ“āļ‘āđŒāļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļ•āļąāļ”āļŠāļīāļ™āļāļēāļĢāļˆāļąāļšāļ„āļđāđˆāđƒāļšāļŦāļ™āđ‰āļē āļ„āđˆāļēāđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āļ„āļ·āļ­ 36 āļŦāļēāļāļ•āđ‰āļ­āļ‡āļāļēāļĢāđƒāļŦāđ‰āļĄāļĩāļ­āļąāļ•āļĢāļēāļāļēāļĢāļĒāļ­āļĄāļĢāļąāļšāļ—āļĩāđˆāļœāļīāļ”āļžāļĨāļēāļ” (FAR) āļ•āđˆāļģāļĄāļēāļ āļ„āļļāļ“āļŠāļēāļĄāļēāļĢāļ–āļ•āļąāđ‰āļ‡āļ„āđˆāļēāđ€āļ›āđ‡āļ™ 48 āđ„āļ”āđ‰

āļĢāļŦāļąāļŠāļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”​

āļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”āļ—āļąāđˆāļ§āđ„āļ›â€‹

āļĢāļŦāļąāļŠāļ‚āđ‰āļ­āļ„āļ§āļēāļĄāļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
404No route matchedāļˆāļļāļ”āļ›āļĨāļēāļĒ API āđ„āļĄāđˆāļ–āļđāļāļ•āđ‰āļ­āļ‡
405Method not allowedāđ€āļĄāļ˜āļ­āļ” HTTP āđ„āļĄāđˆāļ–āļđāļāļ•āđ‰āļ­āļ‡
413File too largeāļĢāļđāļ›āļ āļēāļžāđ€āļāļīāļ™āļ‚āļĩāļ”āļˆāļģāļāļąāļ” 2MB
415Invalid extensionāļĢāļđāļ›āđāļšāļšāđ„āļŸāļĨāđŒāđ„āļĄāđˆāļĢāļ­āļ‡āļĢāļąāļš

āļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”āđƒāļ™āļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨ​

āļĢāļŦāļąāļŠāļ‚āđ‰āļ­āļ„āļ§āļēāļĄāļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
420Parameter missingāđ„āļĄāđˆāđ„āļ”āđ‰āļĢāļ°āļšāļļāļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļ—āļĩāđˆāļˆāļģāđ€āļ›āđ‡āļ™
423Face not foundāđ„āļĄāđˆāļžāļšāđƒāļšāļŦāļ™āđ‰āļēāđƒāļ™āļĢāļđāļ›āļ āļēāļž
440No file attachedāđ„āļĄāđˆāđ„āļ”āđ‰āđāļ™āļšāđ„āļŸāļĨāđŒāļĢāļđāļ›āļ āļēāļž
441Too many imagesāđƒāļŦāđ‰āđ„āļŸāļĨāđŒāļĢāļđāļ›āļ āļēāļžāļĄāļēāļāđ€āļāļīāļ™āđ„āļ›
442Unsupported formatāļĢāļđāļ›āđāļšāļšāļĢāļđāļ›āļ āļēāļžāđ„āļĄāđˆāļ–āļđāļāļ•āđ‰āļ­āļ‡

āļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”āļ‚āļ­āļ‡āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒâ€‹

āļĢāļŦāļąāļŠāļ‚āđ‰āļ­āļ„āļ§āļēāļĄāļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
560Server busyāļ„āļīāļ§āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāđ€āļ•āđ‡āļĄ
561Processing timeoutāļāļēāļĢāļ”āļģāđ€āļ™āļīāļ™āļāļēāļĢāđƒāļŠāđ‰āđ€āļ§āļĨāļēāļ™āļēāļ™āđ€āļāļīāļ™āđ„āļ›
562Request timeoutāļāļēāļĢāļĢāļ­āļ„āļīāļ§āđ€āļĢāđ‡āļ§āđ€āļāļīāļ™āđ„āļ›

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

Curl​

curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-verification \
-H "apikey: YOUR_API_KEY" \
-F "file=@/path/to/file.jpg"

Python​

import requests

url = "https://api.iapp.co.th/v3/store/ekyc/face-verification"

# āđƒāļŠāđ‰āļ„āļ°āđāļ™āļ™āļĄāļēāļ•āļĢāļāļēāļ™
payload={}

files=[
('file1',('{Your Image File Name 1}',open('{Your Image File Path 1}','rb'),'application/octet-stream')),
('file2',('{Your Image File Name 2}',open('{Your Image File Path 2}','rb'),'application/octet-stream'))
]
headers = {
'apikey': '{Your API Key}'
}

response = requests.request("POST", url, headers=headers, data=payload, files=files)

print(response.text)

Javascript​

const axios = require("axios")
const FormData = require("form-data")
const fs = require("fs")
let data = new FormData()
data.append("file1", fs.createReadStream("/Users/iapp/Downloads/facever_test1 (3).png"))
data.append("file2", fs.createReadStream("/Users/iapp/Downloads/facever_test2 (3).png"))

let config = {
method: "post",
maxBodyLength: Infinity,
url: "https://api.iapp.co.th/v3/store/ekyc/face-verification",
headers: {
apikey: "YOUR_API_KEY",
...data.getHeaders(),
},
data: data,
}

axios
.request(config)
.then((response) => {
console.log(JSON.stringify(response.data))
})
.catch((error) => {
console.log(error)
})

PHP​

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.iapp.co.th/v3/store/ekyc/face-verification',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURL_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array('file1'=> new CURLFILE('{Your Image File Name 1}'),'file2'=> new CURLFILE('{Your Image File Name 2}')),
CURLOPT_HTTPHEADER => array(
'apikey: {Your API Key}'
),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Swift​

let parameters = [
[
"key": "file1",
"src": "{Your Image File Name 1}",
"type": "file"
],
[
"key": "file2",
"src": "{Your Image File Name 2}",
"type": "file"
]] as [[String: Any]]

let boundary = "Boundary-\(UUID().uuidString)"
var body = Data()
var error: Error? = nil
for param in parameters {
if param["disabled"] != nil { continue }
let paramName = param["key"]!
body += Data("--\(boundary)\r\n".utf8)
body += Data("Content-Disposition:form-data; name=\"\(paramName)\"".utf8)
if param["contentType"] != nil {
body += Data("\r\nContent-Type: \(param["contentType"] as! String)".utf8)
}
let paramType = param["type"] as! String
if paramType == "text" {
let paramValue = param["value"] as! String
body += Data("\r\n\r\n\(paramValue)\r\n".utf8)
} else {
let paramSrc = param["src"] as! String
let fileURL = URL(fileURLWithPath: paramSrc)
if let fileContent = try? Data(contentsOf: fileURL) {
body += Data("; filename=\"\(paramSrc)\"\r\n".utf8)
body += Data("Content-Type: \"content-type header\"\r\n".utf8)
body += Data("\r\n".utf8)
body += fileContent
body += Data("\r\n".utf8)
}
}
}
body += Data("--\(boundary)--\r\n".utf8);
let postData = body


var request = URLRequest(url: URL(string: "https://api.iapp.co.th/v3/store/ekyc/face-verification")!,timeoutInterval: Double.infinity)
request.addValue("{YOUR API KEY}", forHTTPHeaderField: "apikey")
request.addValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")

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​

val client = OkHttpClient()
val mediaType = "text/plain".toMediaType()
val body = MultipartBody.Builder().setType(MultipartBody.FORM)
.addFormDataPart("file1","{Your Image File Name 1}",
File("{Your Image File Path 1}").asRequestBody("application/octet-stream".toMediaType()))
.addFormDataPart("file2","{Your Image File Name 1}",
File("{Your Image File Path 1}").asRequestBody("application/octet-stream".toMediaType()))
.build()
val request = Request.Builder()
.url("https://api.iapp.co.th/v3/store/ekyc/face-verification")
.post(body)
.addHeader("apikey", "{YOUR API KEY}")
.build()
val response = client.newCall(request).execute()

Java​

OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = new MultipartBody.Builder().setType(MultipartBody.FORM)
.addFormDataPart("file1","{Your Image File Name 1}",
RequestBody.create(MediaType.parse("application/octet-stream"),
new File("{Your Image File Path 1}")))
.addFormDataPart("file2","{Your Image File Name 2}",
RequestBody.create(MediaType.parse("application/octet-stream"),
new File("{Your Image File Path 2}")))
.build();
Request request = new Request.Builder()
.url("https://api.iapp.co.th/v3/store/ekyc/face-verification")
.method("POST", body)
.addHeader("apikey", "{YOUR API KEY}")
.build();
Response response = client.newCall(request).execute();

Dart​

var headers = {
'apikey': '{YOUR API KEY}'
};
var request = http.MultipartRequest('POST', Uri.parse('https://api.iapp.co.th/v3/store/ekyc/face-verification'));
request.files.add(await http.MultipartFile.fromPath('file1', '{Your Image File Path 1}'));
request.files.add(await http.MultipartFile.fromPath('file2', '{Your Image File Path 2}'));
request.headers.addAll(headers);

http.StreamedResponse response = await request.send();

if (response.statusCode == 200) {
print(await response.stream.bytesToString());
}
else {
print(response.reasonPhrase);
}

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

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

  • āļ‚āļ™āļēāļ”āđ„āļŸāļĨāđŒāļŠāļđāļ‡āļŠāļļāļ”: 2MB
  • āļ‚āļ™āļēāļ”āļĢāļđāļ›āļ āļēāļžāļ‚āļąāđ‰āļ™āļ•āđˆāļģ: 600x400 āļžāļīāļāđ€āļ‹āļĨ
  • āļĢāļđāļ›āđāļšāļšāļ—āļĩāđˆāļĢāļ­āļ‡āļĢāļąāļš: āđ„āļŸāļĨāđŒ JPG, JPEG, PNG, HEIC āđāļĨāļ° HEIF āđāļĨāļ°āļĢāļđāļ›āđāļšāļš BASE64
  • āđƒāļšāļŦāļ™āđ‰āļēāđ€āļ”āļĩāļĒāļ§āļ•āđˆāļ­āļĢāļđāļ›āļ āļēāļžāļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļšāđāļĨāļ°āļŦāļĨāļēāļĒāļ„āļ™

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

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

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

  • āļāļēāļĢāļ•āļĢāļ§āļˆāļˆāļąāļšāđƒāļšāļŦāļ™āđ‰āļēāļ—āļĩāđˆāđāļĄāđˆāļ™āļĒāļģāļŠāļđāļ‡
  • āđ€āļ§āļĨāļēāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļ—āļĩāđˆāļĢāļ§āļ”āđ€āļĢāđ‡āļ§
  • āđ€āļāļ“āļ‘āđŒāļ„āļ§āļēāļĄāļĄāļąāđˆāļ™āđƒāļˆāļ—āļĩāđˆāļ›āļĢāļąāļšāđāļ•āđˆāļ‡āđ„āļ”āđ‰
  • āļ›āļąāļˆāļˆāļąāļĒāļ—āļĩāđˆāļĄāļĩāļœāļĨāļ•āđˆāļ­āļ„āļ§āļēāļĄāđāļĄāđˆāļ™āļĒāļģ:
    • āļ„āļļāļ“āļ āļēāļžāļ‚āļ­āļ‡āļĢāļđāļ›āļ āļēāļž
    • āļāļēāļĢāļĄāļ­āļ‡āđ€āļŦāđ‡āļ™āđƒāļšāļŦāļ™āđ‰āļē
    • āļŠāļ āļēāļžāđāļŠāļ‡
    • āļĄāļļāļĄ/āļ—āđˆāļēāļ—āļēāļ‡āļ‚āļ­āļ‡āđƒāļšāļŦāļ™āđ‰āļē

āļĢāļēāļ„āļē​

āļāļēāļĢāļ”āļģāđ€āļ™āļīāļ™āļāļēāļĢāđ€āļŠāđ‰āļ™āļ—āļēāļ‡āļāļēāļĢāļœāļĨāļīāļ•āđ€āļŠāđ‰āļ™āļ—āļēāļ‡āļĢāļļāđˆāļ™āđ€āļāđˆāļēāļ„āđˆāļēāđƒāļŠāđ‰āļˆāđˆāļēāļĒ ICāļŦāļ™āđˆāļ§āļĒOn-Premise
āļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™āļ”āđ‰āļ§āļĒāđƒāļšāļŦāļ™āđ‰āļē/v3/store/ekyc/face-verification/face-verification0.3 ICāļ•āđˆāļ­ 1 āļ„āļģāļ‚āļ­āļ•āļīāļ”āļ•āđˆāļ­āđ€āļĢāļē
āļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™āļ”āđ‰āļ§āļĒāđƒāļšāļŦāļ™āđ‰āļē v2/v3/store/ekyc/face-verification/face-verification/v20.3 ICāļ•āđˆāļ­ 1 āļ„āļģāļ‚āļ­
āļāļēāļĢāđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļšāđƒāļšāļŦāļ™āđ‰āļē/v3/store/ekyc/face-verification/face_compare0.3 ICāļ•āđˆāļ­ 1 āļ„āļģāļ‚āļ­
āļāļēāļĢāļˆāļąāļšāļ„āļđāđˆāđƒāļšāļŦāļ™āđ‰āļē (āļ—āļēāļ‡āđ€āļĨāļ·āļ­āļ)/v3/store/ekyc/face-verification/face20.3 ICāļ•āđˆāļ­ 1 āļ„āļģāļ‚āļ­