ai

bic/swift code คือ — ข้อมูลครบถ้วน 2026

bic/swift code คือ — ข้อมูลครบถ้วน 2026

BIC/SWIFT Code คืออะไร — คู่มือฉบับสมบูรณ์

bic/swift code คือ — ข้อมูลครบถ้วน 2026

BIC (Bank Identifier Code) หรือ SWIFT Code เป็นรหัสมาตรฐานสากลสำหรับระบุธนาคารในการโอนเงินระหว่างประเทศ จัดการโดย SWIFT (Society for Worldwide Interbank Financial Telecommunication) มีสมาชิกกว่า 11,000 สถาบันการเงินใน 200+ ประเทศ BIC/SWIFT Code มี 8 หรือ 11 ตัวอักษร ใช้ใน wire transfer, trade finance และ interbank messaging ทุกครั้งที่โอนเงินข้ามประเทศต้องใช้ SWIFT Code ของธนาคารปลายทาง บทความนี้อธิบายโครงสร้าง การใช้งาน และ Python tools สำหรับ validate SWIFT codes

โครงสร้าง BIC/SWIFT Code

# swift_structure.py — SWIFT code structure explained

import json



class SWIFTStructure:

    STRUCTURE = {

        "bank_code": {

            "position": "1-4",

            "name": "Bank Code (Institution Code)",

            "description": "รหัสธนาคาร 4 ตัวอักษร — unique ต่อธนาคาร",

            "example": "KRTB = ธนาคารกรุงไทย, BKKB = ธนาคารกรุงเทพ",

        },

        "country_code": {

            "position": "5-6",

            "name": "Country Code (ISO 3166-1)",

            "description": "รหัสประเทศ 2 ตัวอักษร ตามมาตรฐาน ISO",

            "example": "TH = Thailand, US = United States, JP = Japan",

        },

        "location_code": {

            "position": "7-8",

            "name": "Location Code",

            "description": "รหัสเมืองหรือ location 2 ตัวอักษร/ตัวเลข",

            "example": "BK = Bangkok, NY = New York, TK = Tokyo",

        },

        "branch_code": {

            "position": "9-11 (optional)",

            "name": "Branch Code",

            "description": "รหัสสาขา 3 ตัวอักษร — ถ้าไม่มี = สำนักงานใหญ่ (XXX หรือเว้นว่าง)",

            "example": "XXX = Head Office, 001 = สาขาเฉพาะ",

        },

    }



    THAI_BANKS = {

        "KRTHTHBK": {"name": "ธนาคารกรุงไทย", "english": "Krungthai Bank"},

        "BKKBTHBK": {"name": "ธนาคารกรุงเทพ", "english": "Bangkok Bank"},

        "KASITHBK": {"name": "ธนาคารกสิกรไทย", "english": "Kasikornbank"},

        "SICOTHBK": {"name": "ธนาคารไทยพาณิชย์", "english": "Siam Commercial Bank"},

        "AYUDTHBK": {"name": "ธนาคารกรุงศรีอยุธยา", "english": "Bank of Ayudhya (Krungsri)"},

        "TABORATHBK": {"name": "ธนาคารทหารไทยธนชาต", "english": "TMBThanachart Bank (ttb)"},

        "UBOBTHBK": {"name": "ธนาคารยูโอบี", "english": "United Overseas Bank (UOB)"},

        "GABORATHBK": {"name": "ธนาคารออมสิน", "english": "Government Savings Bank"},

    }



    def show_structure(self):

        print("=== SWIFT Code Structure ===\n")

        print("  Example: K R T H T H B K")

        print("           ^^^^ ^^ ^^ ^^^")

        print("           Bank CC Loc Branch\n")

        for key, part in self.STRUCTURE.items():

            print(f"[{part['name']}] Position {part['position']}")

            print(f"  {part['description']}")

            print(f"  Example: {part['example']}")

            print()



    def show_thai_banks(self):

        print("=== Thai Bank SWIFT Codes ===")

        for code, bank in self.THAI_BANKS.items():

            print(f"  {code:<12} {bank['name']} ({bank['english']})")



swift = SWIFTStructure()

swift.show_structure()

swift.show_thai_banks()

การใช้งาน SWIFT Code

# usage.py — How SWIFT codes are used

import json



class SWIFTUsage:

    USE_CASES = {

        "wire_transfer": {

            "name": "โอนเงินระหว่างประเทศ (Wire Transfer)",

            "description": "ใช้ SWIFT Code ระบุธนาคารปลายทาง",

            "info_needed": [

                "SWIFT Code ธนาคารปลายทาง",

                "ชื่อบัญชีผู้รับ (ภาษาอังกฤษ)",

                "เลขที่บัญชี / IBAN",

                "จำนวนเงิน + สกุลเงิน",

                "วัตถุประสงค์การโอน",

            ],

        },

        "receive_money": {

            "name": "รับเงินจากต่างประเทศ",

            "description": "ให้ SWIFT Code ธนาคารของเรากับผู้โอน",

            "info_to_give": [

                "SWIFT Code ธนาคารของเรา",

                "ชื่อบัญชีของเรา (ภาษาอังกฤษ)",

                "เลขที่บัญชี",

                "ชื่อธนาคาร + สาขา",

                "ที่อยู่ธนาคาร",

            ],

        },

        "trade_finance": {

            "name": "Trade Finance (L/C, Bank Guarantee)",

            "description": "ใช้ SWIFT messages (MT700, MT760) สำหรับ Letter of Credit",

        },

        "correspondent_banking": {

            "name": "Correspondent Banking",

            "description": "ธนาคารใช้ SWIFT เพื่อสื่อสารกัน — settlement, FX, securities",

        },

    }



    FEES = {

        "outgoing_th": {

            "name": "ค่าธรรมเนียมโอนออก (จากไทย)",

            "fee": "200-750 บาท + ค่า cable + intermediary bank fee",

            "time": "1-3 วันทำการ",

        },

        "incoming_th": {

            "name": "ค่าธรรมเนียมรับเข้า (เข้าไทย)",

            "fee": "200-500 บาท + อัตราแลกเปลี่ยน",

            "time": "1-3 วันทำการ",

        },

    }



    def show_usage(self):

        print("=== SWIFT Code Usage ===\n")

        for key, use in self.USE_CASES.items():

            print(f"[{use['name']}]")

            print(f"  {use['description']}")

            if 'info_needed' in use:

                for info in use['info_needed'][:4]:

                    print(f"    • {info}")

            print()



    def show_fees(self):

        print("=== Transfer Fees (Thailand) ===")

        for key, fee in self.FEES.items():

            print(f"  [{fee['name']}]")

            print(f"    Fee: {fee['fee']}")

            print(f"    Time: {fee['time']}")



usage = SWIFTUsage()

usage.show_usage()

usage.show_fees()

Python SWIFT Validator

bic/swift code คือ — ข้อมูลครบถ้วน 2026
# validator.py — Python SWIFT/BIC code validator

import json

import re



class SWIFTValidator:

    CODE = """

# swift_validator.py — Validate and parse SWIFT/BIC codes

import re



class SWIFTValidator:

    # ISO 3166-1 alpha-2 country codes (partial list)

    COUNTRY_CODES = {

        "TH", "US", "GB", "JP", "CN", "SG", "HK", "AU", "DE", "FR",

        "CH", "CA", "KR", "IN", "MY", "ID", "PH", "VN", "NZ", "AE",

    }

    

    SWIFT_PATTERN = re.compile(r'^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$')

    

    def validate(self, swift_code):

        '''Validate SWIFT/BIC code format and structure'''

        code = swift_code.upper().strip()

        errors = []

        

        # Length check

        if len(code) not in (8, 11):

            errors.append(f"Length must be 8 or 11, got {len(code)}")

        

        # Pattern check

        if not self.SWIFT_PATTERN.match(code):

            errors.append("Invalid format: must be 4 letters + 2 letters + 2 alphanumeric [+ 3 alphanumeric]")

        

        # Country code check

        if len(code) >= 6:

            country = code[4:6]

            if country not in self.COUNTRY_CODES:

                errors.append(f"Unknown country code: {country}")

        

        return {

            "code": code,

            "valid": len(errors) == 0,

            "errors": errors,

            "parsed": self.parse(code) if len(errors) == 0 else None,

        }

    

    def parse(self, swift_code):

        '''Parse SWIFT code into components'''

        code = swift_code.upper().strip()

        return {

            "bank_code": code[0:4],

            "country_code": code[4:6],

            "location_code": code[6:8],

            "branch_code": code[8:11] if len(code) == 11 else "XXX",

            "is_head_office": len(code) == 8 or code[8:11] == "XXX",

        }

    

    def lookup_thai_bank(self, swift_code):

        '''Lookup Thai bank by SWIFT code'''

        thai_banks = {

            "KRTH": "ธนาคารกรุงไทย (Krungthai Bank)",

            "BKKB": "ธนาคารกรุงเทพ (Bangkok Bank)",

            "KASI": "ธนาคารกสิกรไทย (Kasikornbank)",

            "SICO": "ธนาคารไทยพาณิชย์ (SCB)",

            "AYUD": "ธนาคารกรุงศรีอยุธยา (Krungsri)",

            "UBOB": "ธนาคารยูโอบี (UOB)",

        }

        bank_code = swift_code[:4].upper()

        return thai_banks.get(bank_code, "Unknown bank")

    

    def format_for_transfer(self, swift_code, account_name, account_number, bank_name):

        '''Format bank details for international transfer'''

        parsed = self.parse(swift_code)

        return {

            "swift_bic": swift_code.upper(),

            "bank_name": bank_name,

            "account_name": account_name,

            "account_number": account_number,

            "country": parsed["country_code"],

            "branch": "Head Office" if parsed["is_head_office"] else parsed["branch_code"],

        }



# Usage

validator = SWIFTValidator()



# Validate

result = validator.validate("KRTHTHBK")

print(f"Valid: {result['valid']}")

print(f"Parsed: {result['parsed']}")



# Lookup Thai bank

bank = validator.lookup_thai_bank("KASITHBK")

print(f"Bank: {bank}")



# Format for transfer

details = validator.format_for_transfer(

    "BKKBTHBK", "SOMCHAI JAIDEE", "1234567890", "Bangkok Bank"

)

print(json.dumps(details, indent=2))

"""



    def show_code(self):

        print("=== SWIFT Validator ===")

        print(self.CODE[:600])



validator = SWIFTValidator()

validator.show_code()

SWIFT กับ IBAN

# swift_vs_iban.py — SWIFT vs IBAN comparison

import json



class SWIFTvsIBAN:

    COMPARISON = {

        "swift": {

            "name": "SWIFT/BIC Code",

            "identifies": "ธนาคาร (institution)",

            "format": "8-11 ตัวอักษร",

            "used_in": "ทั่วโลก (200+ ประเทศ)",

            "example": "KRTHTHBK",

            "managed_by": "SWIFT (Belgium)",

        },

        "iban": {

            "name": "IBAN (International Bank Account Number)",

            "identifies": "บัญชีธนาคาร (account)",

            "format": "15-34 ตัวอักษร/ตัวเลข",

            "used_in": "ยุโรป + บางประเทศ (70+ ประเทศ)",

            "example": "GB29NWBK60161331926819",

            "managed_by": "ISO 13616",

        },

    }



    ALTERNATIVES = {

        "wise": {

            "name": "Wise (TransferWise)",

            "description": "โอนเงินผ่าน local bank networks — ถูกกว่า SWIFT 3-8x",

            "fee": "0.3-2% ของจำนวนเงิน",

            "speed": "นาที - 1 วัน",

        },

        "ripple": {

            "name": "RippleNet / XRP",

            "description": "Blockchain-based cross-border payments",

            "fee": "ต่ำมาก (< $0.01)",

            "speed": "3-5 วินาที",

        },

        "promptpay_intl": {

            "name": "PromptPay International",

            "description": "เชื่อมต่อกับ Singapore PayNow, Malaysia DuitNow",

            "fee": "ต่ำกว่า SWIFT",

            "speed": "Real-time",

        },

    }



    def show_comparison(self):

        print("=== SWIFT vs IBAN ===\n")

        for key, item in self.COMPARISON.items():

            print(f"[{item['name']}]")

            print(f"  Identifies: {item['identifies']}")

            print(f"  Format: {item['format']}")

            print(f"  Used in: {item['used_in']}")

            print(f"  Example: {item['example']}")

            print()



    def show_alternatives(self):

        print("=== Alternatives to SWIFT ===")

        for key, alt in self.ALTERNATIVES.items():

            print(f"  [{alt['name']}] {alt['description']}")

            print(f"    Fee: {alt['fee']}, Speed: {alt['speed']}")



    def when_to_use(self):

        print(f"\n=== เมื่อไหร่ใช้อะไร ===")

        cases = [

            ("โอนไปยุโรป", "ต้องมีทั้ง SWIFT + IBAN"),

            ("โอนไป US/Asia", "ใช้ SWIFT + Account Number (ไม่มี IBAN)"),

            ("โอนเล็กๆ (< 50,000 บาท)", "Wise ถูกกว่า SWIFT มาก"),

            ("โอนใหญ่ (> 1 ล้านบาท)", "SWIFT ผ่านธนาคารปลอดภัยที่สุด"),

            ("โอนด่วนไป Singapore", "PromptPay-PayNow (real-time, ถูก)"),

        ]

        for case, recommendation in cases:

            print(f"  {case}: {recommendation}")



comp = SWIFTvsIBAN()

comp.show_comparison()

comp.show_alternatives()

comp.when_to_use()

วิธีหา SWIFT Code ธนาคาร

# find_swift.py — How to find SWIFT codes

import json



class FindSWIFT:

    METHODS = {

        "bank_website": {

            "name": "1. เว็บไซต์ธนาคาร",

            "description": "เข้าหน้า 'โอนเงินต่างประเทศ' หรือ 'International Transfer'",

            "example": "กรุงไทย: ktb.co.th → บริการ → โอนเงินต่างประเทศ → SWIFT: KRTHTHBK",

        },

        "bank_app": {

            "name": "2. Mobile Banking App",

            "description": "ดูในเมนู 'โอนเงินต่างประเทศ' หรือ 'ข้อมูลธนาคาร'",

        },

        "call_center": {

            "name": "3. Call Center ธนาคาร",

            "description": "โทรถามได้ — กรุงไทย 02-111-1111, กสิกร 02-888-8888",

        },

        "online_lookup": {

            "name": "4. ค้นหาออนไลน์",

            "description": "ใช้เว็บไซต์ค้นหา SWIFT Code",

            "sites": [

                "bank.codes — ค้นหา SWIFT code ทั่วโลก",

                "theswiftcodes.com — comprehensive database",

                "wise.com/swift-codes — Wise SWIFT lookup",

            ],

        },

        "bank_statement": {

            "name": "5. Bank Statement / สมุดบัญชี",

            "description": "บางธนาคารพิมพ์ SWIFT Code บน statement",

        },

    }



    def show_methods(self):

        print("=== วิธีหา SWIFT Code ===\n")

        for key, method in self.METHODS.items():

            print(f"[{method['name']}]")

            print(f"  {method['description']}")

            if 'sites' in method:

                for site in method['sites']:

                    print(f"    • {site}")

            print()



    def thai_bank_contacts(self):

        print("=== Thai Bank Contacts ===")

        banks = [

            {"name": "กรุงไทย", "swift": "KRTHTHBK", "tel": "02-111-1111"},

            {"name": "กรุงเทพ", "swift": "BKKBTHBK", "tel": "1333"},

            {"name": "กสิกรไทย", "swift": "KASITHBK", "tel": "02-888-8888"},

            {"name": "ไทยพาณิชย์", "swift": "SICOTHBK", "tel": "02-777-7777"},

            {"name": "กรุงศรี", "swift": "AYUDTHBK", "tel": "1572"},

        ]

        print(f"  {'ธนาคาร':<15} {'SWIFT':<12} {'โทร'}")

        for b in banks:

            print(f"  {b['name']:<15} {b['swift']:<12} {b['tel']}")



find = FindSWIFT()

find.show_methods()

find.thai_bank_contacts()

FAQ - คำถามที่พบบ่อย

Q: BIC กับ SWIFT Code เหมือนกันไหม?

A: เหมือนกัน — BIC (Bank Identifier Code) เป็นชื่ออย่างเป็นทางการตามมาตรฐาน ISO 9362 SWIFT Code เป็นชื่อที่คนทั่วไปเรียก เพราะจัดการโดย SWIFT ใช้แทนกันได้ 100% ธนาคารบางแห่งเรียก BIC/SWIFT Code หรือ SWIFT/BIC Code

เนื้อหาเกี่ยวข้อง — อ่านต่อ: MLOps Pipeline GitOps Workflow

Q: ใช้ SWIFT Code 8 ตัว หรือ 11 ตัว?

แนะนำเพิ่มเติม — อ่านเพิ่มเติมที่ SiamCafeBook

A: 8 ตัว = สำนักงานใหญ่ (head office) 11 ตัว = ระบุสาขา (3 ตัวท้ายเป็น branch code) ส่วนใหญ่ใช้ 8 ตัวก็พอ — ธนาคารจะ route ไปสาขาที่ถูกต้องเอง ถ้าไม่แน่ใจ: ใช้ 8 ตัว หรือเพิ่ม XXX ท้าย (เช่น KRTHTHBKXXX)

เนื้อหาเกี่ยวข้อง — Radix UI Primitives Batch Processing Pipeline

Q: โอนเงินต่างประเทศใช้เวลากี่วัน?

A: SWIFT transfer ปกติ: 1-3 วันทำการ ถ้าผ่าน intermediary bank: อาจ 3-5 วัน ปัจจัยที่มีผล: เวลาส่ง (ก่อน/หลัง cut-off time), สกุลเงิน, ประเทศปลายทาง ทางเลือกเร็วกว่า: Wise (นาที-1 วัน), PromptPay International (real-time สำหรับ ASEAN)

แนะนำเพิ่มเติม — เรียนเทรดกับ iCafeForex

เนื้อหาเกี่ยวข้อง — ดูเพิ่มเติมเรื่อง XDR Platform Domain Driven Design DDD

Q: ค่าธรรมเนียมโอน SWIFT เท่าไหร่?

A: ค่าธรรมเนียมมีหลายส่วน: ค่าธรรมเนียมธนาคารผู้โอน: 200-750 บาท ค่า cable/SWIFT charge: 200-400 บาท ค่า intermediary bank: 200-500 บาท (ถ้ามี) Spread อัตราแลกเปลี่ยน: 0.5-2% ทางเลือกถูกกว่า: Wise (0.3-1.5% total), DeeMoney, PromptPay International

เนื้อหาเกี่ยวข้อง — Medusa Commerce AR VR Development —

XM Legend · เทรดเดอร์ & ผู้สอน Forex 13 ปี

ผู้ก่อตั้ง SiamCafe ตั้งแต่ปี 1997 · เทรดเดอร์สาย Forex มากกว่า 13 ปี ได้รับการยกย่องเป็น XM Legend · แบ่งปันความรู้ Forex, ไอที, AI และการเทรด จากประสบการณ์จริงในตลาดจริง