ข้อความที่ CDD Core ส่ง
Address: POST {trading_base_url}/rest/v1/rpc/{function} body {"p": { …envelope… }} header x-link-key และ apikey ระบบซื้อขายตอบด้วยใบรับ
วิธีการส่ง
หัวข้อ “วิธีการส่ง”- ข้อความรอในรายการส่งในฐานข้อมูล และส่ง ทุกนาที ตามลำดับ คือ สถานะลูกค้า คำสั่งจำกัดสิทธิ์ แล้ววงเงิน ภายในแต่ละประเภทเรียงจากเก่าไปใหม่
- ข้อความถูกทำเครื่องหมายว่าส่งแล้วก็ต่อเมื่อได้ HTTP 200 พร้อมใบรับที่ระบุ
message_idของข้อความนั้น - ข้อความที่ขาด field ที่ต้องมีถูกพักไว้และบันทึกชื่อ field ไม่ส่งข้อความที่ยังไม่ครบ
- 4xx หยุดรอบการส่ง เพื่อไม่ให้ลำดับผิด 5xx หรือเครือข่ายล่มก็หยุดรอบเช่นกัน และข้อความยังอยู่ในรายการสำหรับรอบถัดไป
CUSTOMER_STATE · function core_customer_state
หัวข้อ “CUSTOMER_STATE · function core_customer_state”ส่งเมื่อลูกค้าได้รับอนุมัติให้ใช้บริการ และส่งอีกทุกครั้งที่ field เปลี่ยน ทุกครั้งส่งสถานะปัจจุบัน ทั้งหมด
"body": { "link_ref": "…", "core_customer_id": "5d0c…", "state_version": 17, "effective_at": "2026-09-20T08:15:30.000Z", "account_no": "IA-0048-1193", "customer_type": "INDIVIDUAL", "display_name_th": "…", "display_name_en": "…", "service_status": "ACTIVE", "risk_level": "MEDIUM", "investor_class": "RETAIL", "withdrawal_class": "W1", "knowledge_test_valid_until": "2027-09-20", "suitability_level": 3, "bank_accounts": [ { "bank_code": "004", "account_no_masked": "xxx-x-x9082-6", "account_ref": "ba_01", "status": "VERIFIED", "usable_from": "2026-09-20T08:15:30.000Z" } ], "language": "th"}| Field | ค่า |
|---|---|
state_version | เพิ่มทีละหนึ่งทุกครั้งที่เปลี่ยน ต่อลูกค้า version ที่ไม่สูงกว่าที่ถืออยู่ได้ใบรับและถูกข้าม |
customer_type | INDIVIDUAL · JURISTIC |
service_status | ACTIVE · SUSPENDED · CLOSED |
risk_level | LOW · MEDIUM · HIGH ใช้เลือกวงเงินและเส้นทางการพิจารณาเท่านั้น |
bank_accounts[].usable_from | ระยะพักหลังเปลี่ยนบัญชีธนาคาร ระบบซื้อขายบังคับใช้ ไม่คำนวณเอง |
RESTRICTION_COMMAND · function core_restriction_command
หัวข้อ “RESTRICTION_COMMAND · function core_restriction_command”หนึ่งลูกค้า หนึ่งขา หนึ่งการกระทำ การจำกัดสามขาคือสามข้อความภายใต้ case_ref เดียว ไม่มีข้อความใดหมายถึง “ล็อกทั้งหมด”
"body": { "link_ref": "…", "command_ref": "RC-000123-3", "core_customer_id": "5d0c…", "leg": "DA_TRANSFER_OUT", "action": "RESTRICT", "trading_scope": "ALL", "ground_code": "G-07", "source": "OFFICER_DECISION", "priority": 2, "case_ref": "CASE-2026-000045", "issued_at": "2026-09-20T08:15:30.123Z", "effective_at": "2026-09-20T08:15:30.123Z"}| Field | ค่า |
|---|---|
leg | THB_DEPOSIT · THB_WITHDRAWAL · TRADING · DA_TRANSFER_OUT · DA_TRANSFER_IN_ACCESS |
action | RESTRICT · RELEASE |
trading_scope | เฉพาะเมื่อ leg เป็น TRADING: ALL · BUY_ONLY สถานะ Exit-Only คือ TRADING + RESTRICT + BUY_ONLY ซึ่งยังขายได้ |
source | CORE_RULE · OFFICER_DECISION · AUTHORITY_ORDER |
ground_code · priority | ผู้รับเก็บไว้ ไม่แสดงต่อลูกค้า และไม่ใช้ตัดสินใจ |
ต่อลูกค้าต่อขา คำสั่งที่มี issued_at ล่าสุดมีผล คำสั่งเก่าที่มาถึงช้าได้ใบรับ แล้วรายงานเป็น SUPERSEDED ระบบซื้อขายไม่ตัดสินเองว่าการปลดระงับทำได้หรือไม่ ลำดับความสำคัญใช้ภายใน CDD Core และส่งเฉพาะคำสั่งที่เป็นผลลัพธ์
LIMIT_PUSH · function core_limit_push
หัวข้อ “LIMIT_PUSH · function core_limit_push”"body": { "link_ref": "…", "core_customer_id": "5d0c…", "limit_version": 4, "effective_at": "2026-09-20T08:15:30.000Z", "limits": [ { "limit_code": "THB_OUT_DAY", "amount": "500000.00", "currency": "THB" }, { "limit_code": "DA_OUT_DAY", "amount": "500000.00", "currency": "THB" }, { "limit_code": "DA_OUT_SINGLE", "amount": "200000.00", "currency": "THB" } ]}ชุดวงเงินทั้งหมดแทนชุดเดิมที่ effective_at รหัสวงเงินในรุ่นนี้ ได้แก่ THB_OUT_DAY · DA_OUT_DAY · DA_OUT_SINGLE
PING · function core_ping
หัวข้อ “PING · function core_ping”ตรวจ link จากฝั่ง CDD Core ใช้ตอนรับมอบงานและเมื่อต้องการ