Skip to main content

API ธุรกรรมชำระเงิน

smilepayz teamsAbout 3 min

คำขอ

API ชำระเงินช่วยให้พ่อค้าเริ่มต้นธุรกรรมการเก็บเงินจากลูกค้า
วิธีการชำระเงินที่รองรับรวมถึง:

QRPAY (การชำระเงินตอบสนองเร็ว)
การโอนเงินธนาคาร
กระเป๋าเงินดิจิทัล
บัตรเครดิต/เดบิต
ช่องทางการชำระเงินดิจิทัลอื่นๆ

เส้นทางคำขอ:

sandbox: https://sandbox-gateway.smilepayz.com/v2.0/transaction/pay-in
production: https://gateway.smilepayz.com/v2.0/transaction/pay-in

พารามิเตอร์ Header

ฟิลด์จำเป็นประเภทคำอธิบาย
Content-TypeMStringข้อกำหนดประเภทเนื้อหา HTTP
ค่าคงที่: application/json
จำเป็นสำหรับการแยกวิเคราะห์คำขอที่เหมาะสม
X-TIMESTAMPMStringรูปแบบวันที่เวลา ISO 8601 พร้อม offset เขตเวลา
รูปแบบ: yyyy-MM-ddTHH:mm:ss±HH:mm
ตัวอย่าง: 2020-12-17T10:55:00+07:00
หมายเหตุ: ต้องเป็นเวลาเซิร์ฟเวอร์ปัจจุบันภายใน ±5 นาที
X-SIGNATUREMStringลายเซ็นดิจิทัลสำหรับการยืนยันตัวตนคำขอ
ดู การสร้างลายเซ็น
X-PARTNER-IDMStringตัวระบุพ่อค้าเฉพาะที่ได้รับมอบหมายจากแพลตฟอร์ม
รูปแบบ: สตริงตัวอักษรและตัวเลข
ใช้สำหรับการยืนยันตัวตนพ่อค้าและการเส้นทางธุรกรรม
กรุณาใส่ merchantID

พารามิเตอร์ Body

ฟิลด์จำเป็นประเภทคำอธิบาย
orderNoMString(32)ตัวระบุธุรกรรมเฉพาะสำหรับการติดตามพ่อค้า
รูปแบบ: ตัวอักษรและตัวเลขเท่านั้น
ความยาว: 6-32 ตัวอักษร
ต้องไม่ซ้ำกันภายในขอบเขตพ่อค้า
purposeMString(64)คำอธิบายธุรกรรมที่อ่านได้
รูปแบบ: สตริงที่เข้ารหัส UTF-8
ความยาว: 1-64 ตัวอักษร
ใช้สำหรับประวัติธุรกรรมและการรายงาน
merchantMObjectภาชนะข้อมูลการระบุตัวตนและธุรกิจของพ่อค้า
ประกอบด้วยรายละเอียดพ่อค้าหลักและพ่อค้าย่อย
จำเป็นสำหรับการเส้นทางธุรกรรมและการชำระบัญชี
    merchantIdMStringตัวระบุพ่อค้าหลักที่ได้รับมอบหมายจากแพลตฟอร์ม
รูปแบบ: สตริงตัวอักษรและตัวเลข
ใช้สำหรับการเส้นทางธุรกรรมและการประมวลผลการชำระบัญชี
    merchantNameOStringชื่อธุรกิจที่ลงทะเบียนของพ่อค้า
รูปแบบ: สตริงที่เข้ารหัส UTF-8
แสดงในอินเทอร์เฟซการชำระเงินและบันทึกธุรกรรม
    subMerchantIdOStringตัวระบุพ่อค้าย่อยสำหรับโครงสร้างพ่อค้าหลายระดับ
รูปแบบ: สตริงตัวอักษรและตัวเลข
จำเป็นสำหรับการประมวลผลธุรกรรมพ่อค้าย่อย
    subMerchantNameOStringชื่อธุรกิจพ่อค้าย่อยสำหรับการแสดงผล
รูปแบบ: สตริงที่เข้ารหัส UTF-8
แสดงในอินเทอร์เฟซการชำระเงินและบันทึกธุรกรรม
moneyMObjectภาชนะข้อกำหนดจำนวนเงินและสกุลเงินธุรกรรม
กำหนดมูลค่าการชำระเงินและหน่วยเงิน
จำเป็นสำหรับการประมวลผลการชำระเงินและการชำระบัญชี
    currencyMStringข้อกำหนดรหัสสกุลเงิน ISO 4217
ค่าคงที่: THB (บาทไทย)
กำหนดกฎการประมวลผลการชำระเงินและสกุลเงินการชำระบัญชี
    amountMNumberจำนวนเงินธุรกรรมในหน่วยสกุลเงินที่เล็กที่สุด
รูปแบบ: ค่าจำนวนเต็ม
ตัวอย่าง: 200 แทน THB 200.00
ช่วง: 100-999999999
payerMObjectภาชนะข้อมูลการชำระเงินของลูกค้า
ใช้สำหรับการยืนยันการชำระเงินและการสื่อสารกับลูกค้า
    nameMStringชื่อเต็มของลูกค้าสำหรับการยืนยันการชำระเงิน
รูปแบบ: สตริงที่เข้ารหัส UTF-8
ใช้สำหรับการประมวลผลการชำระเงินและบันทึกธุรกรรม
    accountNoMStringหมายเลขบัญชีธนาคารลูกค้าสำหรับการประมวลผลการชำระเงิน
รูปแบบ: สตริงตัวเลข
ใช้สำหรับยืนยันการชำระเงินโอนเงินผ่านธนาคาร
    bankNameMStringชื่อธนาคารของลูกค้าสำหรับการประมวลผลการชำระเงิน
รูปแบบ: รหัสธนาคารที่กำหนดไว้ล่วงหน้า
ตัวอย่าง: KBANK, BBL, SCB
ดู รายการวิธีการชำระเงิน
paymentMethodOStringข้อกำหนดวิธีการชำระเงินที่ต้องการ
รูปแบบ: รหัสวิธีการชำระเงินที่กำหนดไว้ล่วงหน้า
ตัวอย่าง: QRPAY or KBANK
หากไม่ระบุ จะแสดงหน้าคัดเลือกวิธีการชำระเงิน
ดู รายการวิธีการชำระเงิน
expiryPeriodONumberระยะเวลาหมดอายุเซสชันการชำระเงินเป็นวินาที
รูปแบบ: ค่าจำนวนเต็ม
ค่าเริ่มต้น: 3600 วินาที (1 ชั่วโมง)
redirectUrlOString(256)URL ปลายทางการเปลี่ยนเส้นทางหลังการชำระเงิน
รูปแบบ: URL HTTP/HTTPS ที่ถูกต้อง
ความยาวสูงสุด: 256 ตัวอักษร
ลูกค้าจะถูกเปลี่ยนเส้นทางมาที่นี่หลังการเสร็จสิ้นการชำระเงิน
callbackUrlOString(256)URL ปลายทางการแจ้งเตือน Webhook
รูปแบบ: URL HTTP/HTTPS ที่ถูกต้อง
ความยาวสูงสุด: 256 ตัวอักษร
รับการอัปเดตสถานะธุรกรรมแบบเรียลไทม์

หมายเหตุสำคัญ

1. การเลือกวิธีการชำระเงิน: หากไม่ระบุ paymentMethod Smilepayz จะส่งคืนหน้าชำระเงินสำหรับลูกค้าเพื่อเลือกวิธีการชำระเงินที่ต้องการ

2. ความต้องการข้อมูลผู้จ่ายเงิน: เมื่อระบุ paymentMethod คุณต้องให้ชื่อผู้จ่ายเงิน หมายเลขบัญชี และชื่อธนาคารสำหรับการยืนยันการชำระเงิน

3. ความต้องการการโอนเงินธนาคาร: เมื่อตั้งค่า paymentMethod เป็น BANK ข้อมูลผู้จ่ายเงิน (name, accountNo, bankName) เป็น ⚠️ บังคับ สำหรับการประมวลผลการโอนเงินธนาคาร

4. อ้างอิงชื่อธนาคาร: สำหรับชื่อธนาคารที่รองรับ กรุณาดู รายการวิธีการชำระเงิน


ตัวอย่าง Body – คำขอธุรกรรม:

Content-type: application/json
X-TIMESTAMP: 2020-12-17T10:55:00+07:00
X-SIGNATURE: 7MHd9v5/m9JeqmDZVwWBZUZ5J5...7120QnFEny7Qm7uQR1G0TWCh10fsU6nVxiRoeoQ==
X-PARTNER-ID: 20001

Response

การตอบสนอง HTTP

ฟิลด์จำเป็นประเภทคำอธิบาย
Content-TypeMStringข้อกำหนดประเภทเนื้อหาการตอบสนอง HTTP
ค่าคงที่: application/json
ระบุรูปแบบการตอบสนอง JSON
X-TIMESTAMPMStringรูปแบบวันที่เวลา ISO 8601 พร้อมออฟเซ็ตเขตเวลา
รูปแบบ: yyyy-MM-ddTHH:mm:ss±HH:mm
ตัวอย่าง: 2020-12-17T10:55:00+07:00

พารามิเตอร์เนื้อหา

ฟิลด์จำเป็นประเภทคำอธิบาย
codeMStringรหัสสถานะการตอบสนอง API ที่ระบุผลลัพธ์การดำเนินการ
รูปแบบ: สตริงสองหลัก
สำเร็จ: "00", ข้อผิดพลาด: รหัสอื่นๆ
ใช้สำหรับการจัดการการตอบสนองแบบโปรแกรม
messageMStringคำอธิบายสถานะการตอบสนองที่อ่านได้โดยมนุษย์
รูปแบบ: สตริงที่เข้ารหัส UTF-8
ให้ข้อมูลรายละเอียดเกี่ยวกับผลลัพธ์การดำเนินการ
แปลเป็นภาษาตามภาษาของคำขอ
orderNoMStringหมายเลขอ้างอิงธุรกรรมพ่อค้าเดิม
รูปแบบ: เหมือนกับ orderNo ในคำขอ
ใช้สำหรับการติดตามธุรกรรมและการตรวจสอบ
tradeNoOStringหมายเลขอ้างอิงธุรกรรมภายในสำหรับการติดตามระบบ
รูปแบบ: สตริงตัวอักษรและตัวเลขที่สร้างโดยระบบ
ใช้สำหรับการจัดการธุรกรรมภายในและการสนับสนุน
merchantMObjectภาชนะข้อมูลพ่อค้าพร้อมรายละเอียดบัญชี
ประกอบด้วยการระบุตัวตนพ่อค้าและข้อมูลบัญชี
ดู โมเดลพ่อค้า
    merchantIdMStringตัวระบุพ่อค้าหลักที่กำหนดโดยแพลตฟอร์ม
รูปแบบ: สตริงตัวอักษรและตัวเลข
ใช้สำหรับการเส้นทางธุรกรรมและการประมวลผลการชำระบัญชี
    merchantNameOStringชื่อธุรกิจที่ลงทะเบียนของพ่อค้า
รูปแบบ: สตริงที่เข้ารหัส UTF-8
แสดงในอินเทอร์เฟซการชำระเงินและบันทึกธุรกรรม
    subMerchantIdOStringตัวระบุพ่อค้าย่อยสำหรับโครงสร้างพ่อค้าหลายระดับ
รูปแบบ: สตริงตัวอักษรและตัวเลข
จำเป็นสำหรับการประมวลผลธุรกรรมพ่อค้าย่อย
    subMerchantNameOStringชื่อธุรกิจพ่อค้าย่อยสำหรับการแสดงผล
รูปแบบ: สตริงที่เข้ารหัส UTF-8
แสดงในอินเทอร์เฟซการชำระเงินและบันทึกธุรกรรม
moneyMObjectรายละเอียดจำนวนธุรกรรมพร้อมข้อกำหนดสกุลเงิน
ประกอบด้วยจำนวนการชำระเงินที่ยืนยันและสกุลเงิน
ดู โมเดลเงิน
    currencyMStringข้อกำหนดรหัสสกุลเงิน ISO 4217
ค่าคงที่: THB (บาทไทย)
กำหนดกฎการประมวลผลการชำระเงินและสกุลเงินการชำระบัญชี
    amountMNumberจำนวนธุรกรรมในหน่วยสกุลเงินที่เล็กที่สุด
รูปแบบ: ค่าจำนวนเต็ม
ตัวอย่าง: 200 แทน THB 200.00
ช่วง: 100-999999999
    payAmountONumberจำนวนการชำระเงินจริงหลังหักค่าธรรมเนียมและการปรับปรุง
รูปแบบ: ค่าทศนิยม
ตัวอย่าง: 199.98 แทน THB 199.98
ใช้สำหรับการคำนวณการชำระบัญชี
transactionTimeMStringรูปแบบวันที่เวลา ISO 8601 (yyyy-MM-ddTHH:mm:ss±HH:mm)
ตัวอย่าง: 2020-12-17T10:55:00+07:00
เวลาที่ระบบประมวลผลธุรกรรม
channelMObjectรายละเอียดช่องทางการประมวลผลการชำระเงินและคำแนะนำ
ประกอบด้วยวิธีการชำระเงิน URL และข้อมูลเพิ่มเติม
ดู โมเดลช่องทาง
statusOStringสถานะการประมวลผลธุรกรรมปัจจุบัน
รูปแบบ: รหัสสถานะที่กำหนดไว้ล่วงหน้า
ตัวอย่าง: PROCESSING, SUCCESS, FAILED
ดู โมเดลสถานะ
Content-type: application/json
X-TIMESTAMP: 2020-12-17T10:55:00+07:00

แจ้งเตือน

คำขอ HTTP

ฟิลด์จำเป็นประเภทคำอธิบาย
Content-TypeMStringข้อกำหนดประเภทเนื้อหา HTTP สำหรับการแจ้งเตือน
ค่าคงที่: application/json
ระบุรูปแบบข้อมูล JSON
X-TIMESTAMPMStringรูปแบบวันที่เวลา ISO 8601 พร้อมออฟเซ็ตเขตเวลา
รูปแบบ: yyyy-MM-ddTHH:mm:ss±HH:mm
ตัวอย่าง: 2020-12-17T10:55:00+07:00
X-SIGNATUREMStringลายเซ็นดิจิทัลสำหรับการยืนยันการแจ้งเตือน
รูปแบบ: ลายเซ็นที่เข้ารหัส Base64
ใช้เพื่อยืนยันความถูกต้องของการแจ้งเตือน
ดู วิธีตรวจสอบค่านี้

พารามิเตอร์เนื้อหา

ฟิลด์จำเป็นประเภทคำอธิบาย
orderNoMStringหมายเลขอ้างอิงธุรกรรมพ่อค้าเดิมสำหรับการอ้างอิง
รูปแบบ: เหมือนกับ orderNo ในคำขอ
ใช้สำหรับการตรวจสอบและติดตามธุรกรรม
tradeNoMStringหมายเลขอ้างอิงธุรกรรมภายในสำหรับการติดตามระบบ
รูปแบบ: สตริงตัวอักษรและตัวเลขที่สร้างโดยระบบ
ใช้สำหรับการจัดการธุรกรรมภายในและการสนับสนุน
merchantIdMStringตัวระบุพ่อค้าหลักสำหรับการเส้นทางธุรกรรม
รูปแบบ: สตริงตัวอักษรและตัวเลข
ใช้สำหรับการระบุตัวตนพ่อค้าและการประมวลผลการชำระบัญชี
merchantNameMStringชื่อธุรกิจที่ลงทะเบียนของพ่อค้าสำหรับการแสดงผล
รูปแบบ: สตริงที่เข้ารหัส UTF-8
แสดงในบันทึกธุรกรรมและรายงาน
subMerchantIdOStringตัวระบุพ่อค้าย่อยสำหรับโครงสร้างหลายระดับ
รูปแบบ: สตริงตัวอักษรและตัวเลข
รวมเมื่อพ่อค้าย่อยเกี่ยวข้องกับธุรกรรม
subMerchantNameOStringชื่อธุรกิจพ่อค้าย่อยสำหรับการแสดงผล
รูปแบบ: สตริงที่เข้ารหัส UTF-8
รวมเมื่อพ่อค้าย่อยเกี่ยวข้องกับธุรกรรม
paymentMethodMStringวิธีการชำระเงินที่ใช้สำหรับการประมวลผลธุรกรรม
รูปแบบ: รหัสวิธีการชำระเงินที่กำหนดไว้ล่วงหน้า
ตัวอย่าง: QRPAY, BANK
ระบุช่องทางการชำระเงินที่ใช้จริง
transactionTimeMStringรูปแบบวันที่เวลา ISO 8601 (yyyy-MM-ddTHH:mm:ss±HH:mm)
เวลาที่ผู้ให้บริการการชำระเงินเสร็จสิ้นธุรกรรม
statusMStringสถานะการประมวลผลธุรกรรมสุดท้าย
รูปแบบ: รหัสสถานะที่กำหนดไว้ล่วงหน้า
ตัวอย่าง: SUCCESS, FAILED
ระบุผลลัพธ์สุดท้ายของธุรกรรม
ดู โมเดลสถานะ
moneyMObjectรายละเอียดจำนวนธุรกรรมสุดท้ายพร้อมสกุลเงิน
ประกอบด้วยจำนวนการชำระเงินที่ยืนยันและสกุลเงิน
อาจแตกต่างจากจำนวนคำขอเนื่องจากค่าธรรมเนียมหรือการปรับปรุง
ดู โมเดลเงิน
    currencyMStringข้อกำหนดรหัสสกุลเงิน ISO 4217
ค่าคงที่: THB (บาทไทย)
กำหนดกฎการประมวลผลการชำระเงินและสกุลเงินการชำระบัญชี
    amountMNumberจำนวนธุรกรรมในหน่วยสกุลเงินที่เล็กที่สุด
รูปแบบ: ค่าจำนวนเต็ม
ตัวอย่าง: 200 แทน THB 200.00
ช่วง: 100-999999999
    payAmountONumberจำนวนการชำระเงินจริงหลังหักค่าธรรมเนียมและการปรับปรุง
รูปแบบ: ค่าทศนิยม
ตัวอย่าง: 199.98 แทน THB 199.98
ใช้สำหรับการคำนวณการชำระบัญชี
payerMObjectข้อมูลลูกค้าที่ให้ระหว่างการชำระเงิน
รูปแบบ: วัตถุข้อมูลลูกค้า
ประกอบด้วยรายละเอียดผู้จ่ายเงินเมื่อพร้อมใช้งาน
ดู โมเดลผู้จ่ายเงิน

การคืนค่า

สำคัญ

การแจ้งเตือนกรุณาคืนเฉพาะสตริง SUCCESS

{
  "merchantId": "20001",
  "merchantName": "test",
  "money": {
    "amount": 150,
    "currency": "THB"
  },
  "orderNo": "20001f7d65167e8b1419896f2dfb",
  "payer": {
    "name": "payerName",
    "accountNo": "*****25432"
  },
  "paymentMethod": "QRPAY",
  "status": "SUCCESS",
  "tradeNo": "111200012412151710505955",
  "transactionTime": "2024-12-15T17:10:51"
}
Last update: