ข้ามไปยังเนื้อหา
UnknownPay
EN
ยอดเงินและธนาคาร

รายชื่อธนาคาร

ดึง bank master แบบ public ที่ key ด้วย bank_code สำหรับใช้กับ receiver_bank_provider ตอนถอน

GET /v1/banks

คืนรายชื่อ master ของธนาคารไทย แต่ละ entry มี bank_code ที่ใช้ส่งเข้า receiver_bank_provider ตอนสร้างรายการถอน

เป็น endpoint เดียว ภายใต้ /v1 ที่ ไม่ต้องยืนยันตัวตน (ไม่ต้องใช้ API key / HMAC) เพราะเป็นข้อมูลอ้างอิงคงที่ (master ของธนาคารไทย) ที่ไม่ขึ้นกับร้านค้า

Endpoint

  • Method / Path: GET /v1/banks
  • Auth: ไม่ต้อง (public)
  • Cache: response ส่ง header Cache-Control: public, max-age=3600 มาด้วย — ข้อมูลนิ่งคงที่ แนะนำให้ฝั่งร้านค้า cache ไว้ (อย่างน้อย 1 ชั่วโมงตาม max-age) ไม่ต้องเรียกซ้ำทุกครั้ง

Response shape

Response เป็น JSON object (map) โดย key ของแต่ละ entry คือ bank_code (เช่น "SCB", "KBANK") ไม่ใช่ array แต่ละ entry มี field ดังนี้

Fieldชนิดคำอธิบาย
bank_codestringรหัส alias ของธนาคาร (canonical enum) เช่น "SCB"ใช้ค่านี้ในการระบุธนาคารตอนถอน (ส่งเข้า receiver_bank_provider)
bank_numberstringเลขรหัสธนาคาร 3 หลักตามมาตรฐาน BOT เช่น "014"ใช้แสดงผล/อ้างอิงเท่านั้น (display only) ห้ามนำไประบุธนาคารตอนถอน
name_thstringชื่อย่อภาษาไทย เช่น "ไทยพาณิชย์"
fullname_thstringชื่อเต็มภาษาไทย เช่น "ธนาคารไทยพาณิชย์"
name_enstringชื่อภาษาอังกฤษ เช่น "The Siam Commercial Bank"

bank_code vs bank_number

  • bank_code คือค่าที่ใช้ "ระบุธนาคาร" จริง ๆ ในระบบ ตอนสร้างรายการถอน (POST /v1/withdrawals ฟิลด์ receiver_bank_provider) ต้องส่งเป็น bank_code เท่านั้น ระบบจะ validate ค่านี้กับ master — ถ้าส่งค่าที่ไม่รู้จักจะได้ error INVALID_BANK (HTTP 422) การเทียบเป็นแบบ case-insensitive (ส่ง "scb" หรือ "SCB" ก็ได้ ระบบ normalize เป็นตัวพิมพ์ใหญ่)
  • bank_number (เลข 3 หลัก BOT) มีไว้ แสดงผล/อ้างอิง เท่านั้น ระบบ ไม่ใช้ ในการจับคู่หรือระบุธนาคาร อย่าส่ง bank_number ไปที่ receiver_bank_provider
ช่องทางอย่าง PromptPay / TrueMoney เป็น "payment rails" ไม่ถือเป็นธนาคารใน list นี้ จึงไม่ปรากฏใน /v1/banks และใช้เป็น bank_code ไม่ได้

Example request

cURL
curl -X GET 'https://api.unkpay.co/v1/banks'

Example response (200 OK)

{
  "SCB": {
    "name_th": "ไทยพาณิชย์",
    "fullname_th": "ธนาคารไทยพาณิชย์",
    "name_en": "The Siam Commercial Bank",
    "bank_code": "SCB",
    "bank_number": "014"
  },
  "KBANK": {
    "name_th": "กสิกรไทย",
    "fullname_th": "ธนาคารกสิกรไทย",
    "name_en": "Kasikorn Bank",
    "bank_code": "KBANK",
    "bank_number": "004"
  },
  "BBL": {
    "name_th": "กรุงเทพ",
    "fullname_th": "ธนาคารกรุงเทพ",
    "name_en": "Bangkok Bank",
    "bank_code": "BBL",
    "bank_number": "002"
  }
}
ตัวอย่างข้างบนตัดมาบางส่วน ของจริง master ปัจจุบันมีหลายธนาคาร (เช่น BBL, KBANK, KTB, TTB, SCB, BAY, GSB, KKP ฯลฯ) ให้ฝั่งร้านค้าดึงจาก endpoint นี้แล้ว cache ไว้ใช้ ไม่ควร hardcode รายชื่อในฝั่งร้านค้าเอง
ภาพประกอบกำลังจัดทำ — ตัวอย่างหน้าจอ dropdown เลือกธนาคารฝั่งร้านค้า ที่ดึงข้อมูลจาก GET /v1/banks (แสดง name_th + bank_number, ส่งค่า bank_code ไปหลังบ้าน)