Skip to main content

ðŸ‘Ī🊊 āļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™āļ”āđ‰āļ§āļĒāđƒāļšāļŦāļ™āđ‰āļēāđāļĨāļ°āļšāļąāļ•āļĢāļ›āļĢāļ°āļŠāļēāļŠāļ™āļŠāļģāļŦāļĢāļąāļš KYC

1 ICāļ•āđˆāļ­āļ„āļģāļ‚āļ­
v1.0 Active POST /v3/store/ekyc/face-and-id-card-verification
āļĨāļ­āļ‡āđ€āļ”āđ‚āļĄ

āđ€āļĒāļĩāđˆāļĒāļĄāļŠāļĄ API Portal āļ‚āļ­āļ‡āđ€āļĢāļēāđ€āļžāļ·āđˆāļ­āļ—āļ”āļŠāļ­āļš API āļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™āļ”āđ‰āļ§āļĒāđƒāļšāļŦāļ™āđ‰āļēāđāļĨāļ°āļšāļąāļ•āļĢāļ›āļĢāļ°āļŠāļēāļŠāļ™āļŠāļģāļŦāļĢāļąāļš KYC āļ”āđ‰āļ§āļĒāļĢāļđāļ›āļ āļēāļžāļ‚āļ­āļ‡āļ„āļļāļ“āđ€āļ­āļ‡

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

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

Example 1

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

Example 1

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

āļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™āļ”āđ‰āļ§āļĒāđƒāļšāļŦāļ™āđ‰āļēāđāļĨāļ°āļšāļąāļ•āļĢāļ›āļĢāļ°āļŠāļēāļŠāļ™āļŠāļģāļŦāļĢāļąāļš KYC āđ€āļ›āđ‡āļ™āļšāļĢāļīāļāļēāļĢāļ—āļĩāđˆāļ‚āļąāļšāđ€āļ„āļĨāļ·āđˆāļ­āļ™āļ”āđ‰āļ§āļĒ AI āļ‹āļķāđˆāļ‡āđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļšāļĢāļđāļ›āđ€āļ‹āļĨāļŸāļĩāđˆāļāļąāļšāļĢāļđāļ›āļšāļąāļ•āļĢāļ›āļĢāļ°āļŠāļēāļŠāļ™āđ€āļžāļ·āđˆāļ­āļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™āļŠāļģāļŦāļĢāļąāļšāļ§āļąāļ•āļ–āļļāļ›āļĢāļ°āļŠāļ‡āļ„āđŒ KYC (Know Your Customer)

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

āļšāļĢāļīāļāļēāļĢāļ™āļĩāđ‰āļĢāļąāļšāļ‚āđ‰āļ­āļĄāļđāļĨāđ€āļ‚āđ‰āļēāļŠāļ­āļ‡āļ›āļĢāļ°āđ€āļ āļ—:

  1. āļĢāļđāļ›āļšāļąāļ•āļĢāļ›āļĢāļ°āļŠāļēāļŠāļ™ (āļĢāļđāļ›āļ‚āļ™āļēāļ”āđƒāļŦāļāđˆ)
  2. āļĢāļđāļ›āđ€āļ‹āļĨāļŸāļĩāđˆāļ‚āļ­āļ‡āļœāļđāđ‰āļ–āļ·āļ­āļšāļąāļ•āļĢāļ›āļĢāļ°āļŠāļēāļŠāļ™ (āļĢāļđāļ›āļ‚āļ™āļēāļ”āđ€āļĨāđ‡āļ)

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

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

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

  • āļāļēāļĢāļˆāļąāļšāļ„āļđāđˆāđƒāļšāļŦāļ™āđ‰āļēāļĢāļ°āļŦāļ§āđˆāļēāļ‡āđ€āļ‹āļĨāļŸāļĩāđˆāđāļĨāļ°āļĢāļđāļ›āļšāļąāļ•āļĢāļ›āļĢāļ°āļŠāļēāļŠāļ™
  • āļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ„āļ§āļēāļĄāļ–āļđāļāļ•āđ‰āļ­āļ‡āļŠāļđāļ‡
  • āļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļ—āļĩāđˆāļĢāļ§āļ”āđ€āļĢāđ‡āļ§āļ āļēāļĒāđƒāļ™ 0.1 āļ§āļīāļ™āļēāļ—āļĩ
  • āđ„āļĄāđˆāļĄāļĩāļāļēāļĢāđ€āļāđ‡āļšāļ‚āđ‰āļ­āļĄāļđāļĨāļŦāļĨāļąāļ‡āļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨ (āđ€āļ›āđ‡āļ™āđ„āļ›āļ•āļēāļĄ GDPR)

āđ€āļ‚āļ•āļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāļĢāļ­āļ‡āļĢāļąāļšâ€‹

  • āļĢāļđāļ›āđāļšāļšāđ„āļŸāļĨāđŒāļĢāļđāļ›āļ āļēāļž: JPG, JPEG, PNG, GIF
  • āļ‚āļ™āļēāļ”āļĢāļđāļ›āļ āļēāļž: āļāļ§āđ‰āļēāļ‡ 600px x āļŠāļđāļ‡ 400px
  • āļ‚āļ™āļēāļ”āđ„āļŸāļĨāđŒāļŠāļđāļ‡āļŠāļļāļ”: 10MB āļ•āđˆāļ­āļĢāļđāļ›āļ āļēāļž

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

āļ„āļģāļ‚āļ­āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™āļ”āđ‰āļ§āļĒāđƒāļšāļŦāļ™āđ‰āļēāđāļĨāļ°āļšāļąāļ•āļĢāļ›āļĢāļ°āļŠāļēāļŠāļ™āļŠāļģāļŦāļĢāļąāļš KYC​

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

āļĢāļđāļ›āļ āļēāļž 1āļĢāļđāļ›āļ āļēāļž 2
    curl --location 'https://api.iapp.co.th/v3/store/ekyc/face-and-id-card-verification' \
--header 'apikey: {{{YOUR API KEY}}}' \
--form 'file0=@"image1.png"' \
--form 'file1=@"image2.png"'

āļāļēāļĢāļ•āļ­āļšāļāļĨāļąāļšāļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™āļ”āđ‰āļ§āļĒāđƒāļšāļŦāļ™āđ‰āļēāđāļĨāļ°āļšāļąāļ•āļĢāļ›āļĢāļ°āļŠāļēāļŠāļ™āļŠāļģāļŦāļĢāļąāļš KYC​

{
"idcard": { "confidence": 66.872, "isSamePerson": "true" },
"selfie": { "confidence": 86.04, "isSamePerson": "true" },
"time_process": 0.824,
"total": { "confidence": 76.456, "isSamePerson": "true" }
}

API Endpoints​

EndpointMethodāļ„āļģāļ­āļ˜āļīāļšāļēāļĒāļ„āđˆāļēāđƒāļŠāđ‰āļˆāđˆāļēāļĒ
POST /v3/internal/ekyc/face-and-id-card-verification/v2
Legacy: /api/v2/ekyc
POSTāļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āđƒāļšāļŦāļ™āđ‰āļē + āļšāļąāļ•āļĢāļ›āļĢāļ°āļŠāļēāļŠāļ™1 IC āļ•āđˆāļ­āļ„āļģāļ‚āļ­
POST /v3/store/ekyc/face-and-id-card-verification
Legacy: /face-verify-id2
POSTāļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āđƒāļšāļŦāļ™āđ‰āļē + āļšāļąāļ•āļĢāļ›āļĢāļ°āļŠāļēāļŠāļ™1 IC āļ•āđˆāļ­āļ„āļģāļ‚āļ­
POST /v3/store/ekyc/face-and-id-card-verification/front
Legacy: /thai-national-id-card/v3/front/kyc
POSTāļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āđƒāļšāļŦāļ™āđ‰āļēāđāļĨāļ°āļšāļąāļ•āļĢāļ›āļĢāļ°āļŠāļēāļŠāļ™āļŠāļģāļŦāļĢāļąāļš KYC (āļ”āđ‰āļēāļ™āļŦāļ™āđ‰āļē)1 IC āļ•āđˆāļ­āļŦāļ™āđ‰āļē
POST /v3/store/ekyc/face-and-id-card-verification/back
Legacy: /thai-national-id-card/v3/back/kyc
POSTāļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āđƒāļšāļŦāļ™āđ‰āļēāđāļĨāļ°āļšāļąāļ•āļĢāļ›āļĢāļ°āļŠāļēāļŠāļ™āļŠāļģāļŦāļĢāļąāļš KYC (āļ”āđ‰āļēāļ™āļŦāļĨāļąāļ‡)1 IC āļ•āđˆāļ­āļŦāļ™āđ‰āļē

āļāļēāļĢāļ­āđ‰āļēāļ‡āļ­āļīāļ‡ API​

Endpoint āļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āđƒāļšāļŦāļ™āđ‰āļēāđāļĨāļ°āļšāļąāļ•āļĢāļ›āļĢāļ°āļŠāļēāļŠāļ™â€‹

1. āļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āđƒāļšāļŦāļ™āđ‰āļē + āļšāļąāļ•āļĢāļ›āļĢāļ°āļŠāļēāļŠāļ™ (API V2)​

POST /v3/store/ekyc/face-and-id-card-verification/v2

āļĒāļ·āļ™āļĒāļąāļ™āļ§āđˆāļēāļĢāļđāļ›āđ€āļ‹āļĨāļŸāļĩāđˆāļ•āļĢāļ‡āļāļąāļšāļĢāļđāļ›āļšāļąāļ•āļĢāļ›āļĢāļ°āļŠāļēāļŠāļ™āļŦāļĢāļ·āļ­āđ„āļĄāđˆ āđ‚āļ”āļĒāđƒāļŠāđ‰ Endpoint API V2


2. āļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āđƒāļšāļŦāļ™āđ‰āļē + āļšāļąāļ•āļĢāļ›āļĢāļ°āļŠāļēāļŠāļ™â€‹

POST /v3/store/ekyc/face-and-id-card-verification

āļĒāļ·āļ™āļĒāļąāļ™āļ§āđˆāļēāļĢāļđāļ›āđ€āļ‹āļĨāļŸāļĩāđˆāļ•āļĢāļ‡āļāļąāļšāļĢāļđāļ›āļšāļąāļ•āļĢāļ›āļĢāļ°āļŠāļēāļŠāļ™āļŦāļĢāļ·āļ­āđ„āļĄāđˆ


3. āļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āđƒāļšāļŦāļ™āđ‰āļēāđāļĨāļ°āļšāļąāļ•āļĢāļ›āļĢāļ°āļŠāļēāļŠāļ™āļŠāļģāļŦāļĢāļąāļš KYC (āļ”āđ‰āļēāļ™āļŦāļ™āđ‰āļē)​

POST /v3/store/ekyc/face-and-id-card-verification/kyc-front

āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļ”āđ‰āļēāļ™āļŦāļ™āđ‰āļēāļ‚āļ­āļ‡āļšāļąāļ•āļĢāļ›āļĢāļ°āļŠāļēāļŠāļ™āđ„āļ—āļĒāļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™ KYC


4. āļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āđƒāļšāļŦāļ™āđ‰āļēāđāļĨāļ°āļšāļąāļ•āļĢāļ›āļĢāļ°āļŠāļēāļŠāļ™āļŠāļģāļŦāļĢāļąāļš KYC (āļ”āđ‰āļēāļ™āļŦāļĨāļąāļ‡)​

POST /v3/store/ekyc/face-and-id-card-verification/kyc-back

āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļ”āđ‰āļēāļ™āļŦāļĨāļąāļ‡āļ‚āļ­āļ‡āļšāļąāļ•āļĢāļ›āļĢāļ°āļŠāļēāļŠāļ™āđ„āļ—āļĒāļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™ KYC


āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļ„āļģāļ‚āļ­â€‹

āļŠāļ·āđˆāļ­āļ›āļĢāļ°āđ€āļ āļ—āļ•āļģāđāļŦāļ™āđˆāļ‡āļˆāļģāđ€āļ›āđ‡āļ™āļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
apikeyStringheaderāđƒāļŠāđˆāļ„āļĩāļĒāđŒāļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™ API
file0FilebodyāđƒāļŠāđˆāđ„āļŸāļĨāđŒāļĢāļđāļ›āļ āļēāļžāļšāļąāļ•āļĢāļ›āļĢāļ°āļŠāļēāļŠāļ™
file1FilebodyāđƒāļŠāđˆāđ„āļŸāļĨāđŒāļĢāļđāļ›āļ āļēāļžāđ€āļ‹āļĨāļŸāļĩāđˆ

āļāļēāļĢāļ•āļ­āļšāļāļĨāļąāļšâ€‹

āļŠāļ–āļēāļ™āļ°āļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
200āļāļēāļĢāļ•āļ­āļšāļāļĨāļąāļšāļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļŠāļģāđ€āļĢāđ‡āļˆ

āļ‚āđ‰āļ­āļ„āļ§āļēāļĄāđāļŠāļ”āļ‡āļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ” API​

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

āļĢāļŦāļąāļŠāļŠāļ–āļēāļ™āļ°āļ‚āđ‰āļ­āļ„āļ§āļēāļĄāļŠāļ–āļēāļ™āļ°āļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
404no route matched with those values.āđ„āļĄāđˆāļĄāļĩāđ€āļŠāđ‰āļ™āļ—āļēāļ‡āļ—āļĩāđˆāļ•āļĢāļ‡āļāļąāļš URL āļ™āļĩāđ‰ āđ‚āļ›āļĢāļ”āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ­āļĩāļāļ„āļĢāļąāđ‰āļ‡
405the method is not allowed for the requested URL.āļ§āļīāļ˜āļĩāļāļēāļĢāļ™āļĩāđ‰āđ„āļĄāđˆāđ„āļ”āđ‰āļĢāļąāļšāļ­āļ™āļļāļāļēāļ•āļŠāļģāļŦāļĢāļąāļš URL āļ—āļĩāđˆāļĢāđ‰āļ­āļ‡āļ‚āļ­
413file is too large, more than 10 MB.āļ‚āļ™āļēāļ”āđ„āļŸāļĨāđŒāđƒāļŦāļāđˆāđ€āļāļīāļ™āđ„āļ› āļĄāļēāļāļāļ§āđˆāļē 10 MB
415file extension is not allowed.āļ™āļēāļĄāļŠāļāļļāļĨāđ„āļŸāļĨāđŒāļ™āļĩāđ‰āđ„āļĄāđˆāđ„āļ”āđ‰āļĢāļąāļšāļ­āļ™āļļāļāļēāļ•āļŠāļģāļŦāļĢāļąāļš URL āļ™āļĩāđ‰

āļ‚āđ‰āļ­āļ„āļ§āļēāļĄāđāļŠāļ”āļ‡āļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”āđ€āļ‰āļžāļēāļ°āļ‚āļ­āļ‡āđ„āļ„āļĨāđ€āļ­āđ‡āļ™āļ•āđŒâ€‹

āļĢāļŦāļąāļŠāļŠāļ–āļēāļ™āļ°āļ‚āđ‰āļ­āļ„āļ§āļēāļĄāļŠāļ–āļēāļ™āļ°āļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
420parameter not found in request. [file0, file1]āđ„āļĄāđˆāļžāļšāļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāđƒāļ™āļ„āļģāļ‚āļ­āļ™āļĩāđ‰ āđ‚āļ›āļĢāļ”āđƒāļŠāđˆāļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāđƒāļ™āļ„āļģāļ‚āļ­
421(face, id card, face on id card) not found in image. [file0, file1]āđ„āļĄāđˆāļžāļšāđƒāļšāļŦāļ™āđ‰āļē, āļšāļąāļ•āļĢāļ›āļĢāļ°āļŠāļēāļŠāļ™, āļŦāļĢāļ·āļ­āđƒāļšāļŦāļ™āđ‰āļēāļšāļ™āļšāļąāļ•āļĢāļ›āļĢāļ°āļŠāļēāļŠāļ™āđƒāļ™āļĢāļđāļ›āļ āļēāļžāļŠāļģāļŦāļĢāļąāļš API āļ™āļĩāđ‰
422face on (id card, selfie) not found in image. [file0, file1]āđ„āļĄāđˆāļžāļšāđƒāļšāļŦāļ™āđ‰āļēāļšāļ™āļšāļąāļ•āļĢāļ›āļĢāļ°āļŠāļēāļŠāļ™ āļŦāļĢāļ·āļ­āđƒāļšāļŦāļ™āđ‰āļēāļšāļ™āđ€āļ‹āļĨāļŸāļĩāđˆāđƒāļ™āļĢāļđāļ›āļ āļēāļž
441too many images.āļĄāļĩāļĢāļđāļ›āļ āļēāļžāļĄāļēāļāđ€āļāļīāļ™āđ„āļ›āđƒāļ™āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒ
442image error, unsupported format.āļĢāļđāļ›āđāļšāļšāđ„āļŸāļĨāđŒāļĢāļđāļ›āļ āļēāļžāđ„āļĄāđˆāđ„āļ”āđ‰āļĢāļąāļšāļ­āļ™āļļāļāļēāļ•
461no file attached.āđ„āļĄāđˆāļĄāļĩāļāļēāļĢāđāļ™āļšāđ„āļŸāļĨāđŒ

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

Python​

import requests

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

payload = {}
files=[
('file0',('{IMAGE FILE 1}',open('{IMAGE FILE PATH 1}','rb'),'image/png')),
('file1',('{IMAGE FILE 2}',open('{IMAGE FILE PATH 2}','rb'),'image/png'))
]
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("file0", fs.createReadStream("{IMAGE FILE PATH 1}"))
data.append("file1", fs.createReadStream("{IMAGE FILE PATH 2}"))

let config = {
method: "post",
maxBodyLength: Infinity,
url: "https://api.iapp.co.th/v3/store/ekyc/face-and-id-card-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-and-id-card-verification',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array('file0'=> new CURLFILE('{IMAGE FILE PATH 1}'),'file1'=> new CURLFILE('{IMAGE FILE PATH 2}')),
CURLOPT_HTTPHEADER => array(
'apikey: {YOUR API KEY}'
),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Swift​

let parameters = [
[
"key": "file0",
"src": "{IMAGE FILE PATH 1}",
"type": "file"
],
[
"key": "file1",
"src": "{IMAGE FILE PATH 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-and-id-card-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("file0","{IMAGE FILE 1}",
File("{IMAGE FILE PATH 1}").asRequestBody("application/octet-stream".toMediaType()))
.addFormDataPart("file1","{IMAGE FILE 2}",
File("{IMAGE FILE PATH 2}").asRequestBody("application/octet-stream".toMediaType()))
.build()
val request = Request.Builder()
.url("https://api.iapp.co.th/v3/store/ekyc/face-and-id-card-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("file0","{IMAGE FILE 1}",
RequestBody.create(MediaType.parse("application/octet-stream"),
new File("{IMAGE FILE PATH 1}")))
.addFormDataPart("file1","{IMAGE FILE 2}",
RequestBody.create(MediaType.parse("application/octet-stream"),
new File("{IMAGE FILE PATH 2}")))
.build();
Request request = new Request.Builder()
.url("https://api.iapp.co.th/v3/store/ekyc/face-and-id-card-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-and-id-card-verification'));
request.files.add(await http.MultipartFile.fromPath('file0', '{IMAGE FILE PATH 1}'));
request.files.add(await http.MultipartFile.fromPath('file1', '{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);
}

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

  • āļ­āļąāļ•āļĢāļēāļāļēāļĢāļ›āļāļīāđ€āļŠāļ˜āļœāļīāļ”āļžāļĨāļēāļ” (FRR < 3%)
  • āļ­āļąāļ•āļĢāļēāļāļēāļĢāļĒāļ­āļĄāļĢāļąāļšāļœāļīāļ”āļžāļĨāļēāļ” (FAR < 0.1%)

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

Curl​

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

Python​

import requests

url = "https://api.iapp.co.th/v3/store/ekyc/face-and-id-card-verification"
files = {"file": ("("/path/to/face.jpg", "rb"))}
headers = {"apikey": "YOUR_API_KEY"}

response = requests.post(url, headers=headers, files=files)
print(response.json())

JavaScript​

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

let data = new FormData();
data.append("file", fs.createReadStream("/path/to/face.jpg"));

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

axios(config)
.then((response) => console.log(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-and-id-card-verification',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => array(
'file'=> new CURLFILE('/path/to/face.jpg')
),
CURLOPT_HTTPHEADER => array(
'apikey: YOUR_API_KEY'
),
));

$response = curl_exec($curl);
curl_close($curl);
echo $response;
?>

Swift​

import Foundation

let url = URL(string: "https://api.iapp.co.th/v3/store/ekyc/face-and-id-card-verification")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.addValue("YOUR_API_KEY", forHTTPHeaderField: "apikey")

let boundary = "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=\"file.jpg\"\r\n".data(using: .utf8)!)
body.append("Content-Type: image/jpeg\r\n\r\n".data(using: .utf8)!)

if let fileData = try? Data(contentsOf: URL(fileURLWithPath: "/path/to/face.jpg")) {
body.append(fileData)
}
body.append("\r\n--\(boundary)--\r\n".data(using: .utf8)!)

request.httpBody = body

let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data {
print(String(data: data, encoding: .utf8)!)
}
}
task.resume()

Kotlin​

import okhttp3.*
import okhttp3.MediaType.Companion.toMediaTypeOrNull
import okhttp3.RequestBody.Companion.asRequestBody
import java.io.File

val client = OkHttpClient()

val file = File("/path/to/face.jpg")
val requestBody = MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("file", file.name, file.asRequestBody("image/jpeg".toMediaTypeOrNull()))
.build()

val request = Request.Builder()
.url("https://api.iapp.co.th/v3/store/ekyc/face-and-id-card-verification")
.addHeader("apikey", "YOUR_API_KEY")
.post(requestBody)
.build()

client.newCall(request).execute().use { response ->
println(response.body?.string())
}

Java​

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

OkHttpClient client = new OkHttpClient();

File file = new File("/path/to/face.jpg");

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

Request request = new Request.Builder()
.url("https://api.iapp.co.th/v3/store/ekyc/face-and-id-card-verification")
.addHeader("apikey", "YOUR_API_KEY")
.post(requestBody)
.build();

try (Response response = client.newCall(request).execute()) {
System.out.println(response.body().string());
}

Dart​

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

var request = http.MultipartRequest(
'POST',
Uri.parse('https://api.iapp.co.th/v3/store/ekyc/face-and-id-card-verification')
);

request.files.add(await http.MultipartFile.fromPath(
'file',
'/path/to/face.jpg'
));

request.headers.addAll({
'apikey': 'YOUR_API_KEY'
});

var response = await request.send();
var responseBody = await response.stream.bytesToString();
print(responseBody);

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

āļāļēāļĢāļ”āļģāđ€āļ™āļīāļ™āļāļēāļĢProduction PathLegacy Pathāļ„āđˆāļēāđƒāļŠāđ‰āļˆāđˆāļēāļĒ ICāļŦāļ™āđˆāļ§āļĒOn-Premise
āļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āđƒāļšāļŦāļ™āđ‰āļē + āļšāļąāļ•āļĢāļ›āļĢāļ°āļŠāļēāļŠāļ™ (API V2)/v3/store/ekyc/face-and-id-card-verification/v2/api/v2/ekyc1 ICāļ•āđˆāļ­ 1 āļ„āļģāļ‚āļ­āļ•āļīāļ”āļ•āđˆāļ­āđ€āļĢāļē
āļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āđƒāļšāļŦāļ™āđ‰āļē + āļšāļąāļ•āļĢāļ›āļĢāļ°āļŠāļēāļŠāļ™/v3/store/ekyc/face-and-id-card-verification/face-verify-id21 ICāļ•āđˆāļ­ 1 āļ„āļģāļ‚āļ­
āļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āđƒāļšāļŦāļ™āđ‰āļēāđāļĨāļ°āļšāļąāļ•āļĢāļ›āļĢāļ°āļŠāļēāļŠāļ™āļŠāļģāļŦāļĢāļąāļš KYC (āļ”āđ‰āļēāļ™āļŦāļ™āđ‰āļē)/v3/store/ekyc/face-and-id-card-verification/kyc-front/thai-national-id-card/v3/front/kyc1 ICāļ•āđˆāļ­ 1 āļŦāļ™āđ‰āļē
āļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āđƒāļšāļŦāļ™āđ‰āļēāđāļĨāļ°āļšāļąāļ•āļĢāļ›āļĢāļ°āļŠāļēāļŠāļ™āļŠāļģāļŦāļĢāļąāļš KYC (āļ”āđ‰āļēāļ™āļŦāļĨāļąāļ‡)/v3/store/ekyc/face-and-id-card-verification/kyc-back/thai-national-id-card/v3/back/kyc1 ICāļ•āđˆāļ­ 1 āļŦāļ™āđ‰āļē