การยืนยันตัวตน
วิธีส่ง API Key และหน้าตาของ request ที่ถูกปฏิเสธ
ทุก endpoint ภายใต้ /openapi/v1 ต้องมี API Key ไม่มีการเรียก login ไม่มีการแลก token และไม่มี refresh — ตัวคีย์ คือ ข้อมูลยืนยันตัวตน
Header Authorization
ส่งคีย์เป็น bearer token
curl -X GET "https://api.abserp.com/openapi/v1/company" \
-H "Authorization: Bearer absk_your_api_key_here" \
-H "Accept: application/json"Header X-API-Key
ไคลเอนต์ HTTP และแพลตฟอร์มเชื่อมต่อบางตัวสงวน Authorization ไว้ใช้งานเอง กรณีนั้นสามารถส่งคีย์ใน X-API-Key ได้
curl -X GET "https://api.abserp.com/openapi/v1/company" \
-H "X-API-Key: absk_your_api_key_here"เลือกส่งอย่างใดอย่างหนึ่ง การส่งทั้งสองไม่ได้ให้ประโยชน์เพิ่ม
รูปแบบของคีย์
คีย์มีความยาว 45 ตัวอักษร ประกอบด้วยคำนำหน้า absk_ ตามด้วยอักขระ base62 แบบสุ่ม 40 ตัว
absk_7Qm2XbV9tR4sK1pLzN6yA3wD8fH0jC5eU2gT7oIb
└──┘ └────────────── อักขระสุ่ม 40 ตัว ──────────────┘หากต้องตรวจจับว่าค่าหนึ่งเป็นคีย์ของ ABSERP ให้ตรวจที่คำนำหน้า absk_ แต่อย่าพยายามตีความส่วนที่เหลือ เพราะส่วนสุ่มไม่มีโครงสร้างใด ๆ
เมื่อ request ถูกปฏิเสธ
คีย์ที่ไม่ได้ส่งมา ผิดรูปแบบ ถูกเพิกถอน หรือหมดอายุ จะได้รับ 401 Unauthorized พร้อมรูปแบบข้อผิดพลาดมาตรฐาน
{
"statusCode": 401,
"errorCode": "ApiKeyInvalid",
"errorMessage": "API key ไม่ถูกต้องหรือหมดอายุแล้ว"
}ทุกกรณีข้างต้นตอบ 401 เหมือนกันโดยเจตนา เพราะ API จะไม่บอกผู้เรียกที่ไม่ผ่านการยืนยันตัวตนว่าคีย์ล้มเหลว เพราะอะไร เมื่อเจอ 401 ให้ตรวจตามลำดับนี้
- ระบบส่ง header ออกไปจริงหรือไม่ (proxy บางตัวตัด
Authorizationออก) - คีย์ยังมีอยู่และขึ้นสถานะ ใช้งานได้ ที่ ตั้งค่าองค์กร → API Keys หรือไม่
- คีย์หมดอายุแล้วหรือยัง ในรายการมีวันหมดอายุแสดงไว้
- องค์กรยังใช้งานอยู่หรือไม่ องค์กรที่ถูกปิดใช้งานจะปฏิเสธคีย์ของตัวเองด้วย
เลือกภาษาของข้อความ
ข้อความข้อผิดพลาดและป้ายบางส่วนมีการแปล เพิ่ม Accept-Language เพื่อเลือกภาษา
curl -X GET "https://api.abserp.com/openapi/v1/products?limit=5" \
-H "Authorization: Bearer absk_your_api_key_here" \
-H "Accept-Language: th"ค่าที่รองรับคือ en และ th header นี้ไม่บังคับ หากไม่ส่งจะใช้ภาษาขององค์กร
การรับส่งข้อมูล
- รองรับ HTTPS เท่านั้น ไม่ให้บริการผ่าน HTTP ธรรมดา
- request และ response เป็น
application/jsonยกเว้นPOST /contactsและPATCH /contacts/{id}ที่รับmultipart/form-data— ทุก endpoint รวมถึงGET /sales/documents/{id}/print-dataคืนค่าเป็น JSON ทั้งหมด ไม่มี endpoint ใดคืนไฟล์ PDF โดยตรง
ขั้นตอนถัดไป
อ่านต่อที่ Base URL และการจำกัดอัตราการเรียก