---
title: โอนผ่านธนาคาร (เวียดนาม)
description: รับการโอนผ่านธนาคารเวียดนาม (VND) ด้วย SePay — บัญชีรับเงิน คำนำหน้าบันทึก เว็บฮุก ขีดจำกัด และวิธีจัดการรายการโอนที่ไม่ตรงกัน
url: https://nexcmp.com/th/docs/billing/bank-transfer-vn/
applies_to: NexCMP 1.6.1
updated: 2026-11-02
---

# โอนผ่านธนาคาร (เวียดนาม) {#bank-transfer-vietnam}

> **ตำแหน่งในหน้าผู้ดูแล:** Finance › Payment channels › VN bank transfer (`/payments/bank`) อัตราแลกเปลี่ยน: Finance › Payment channels › Exchange rates (`/payments/fx`)

## What it does {#what-it-does}

ให้ลูกค้าเติมเงินในกระเป๋าเงิน USD ผ่านการโอนเงินผ่านธนาคารปกติในสกุลเงินดองเวียดนาม NexCMP จะแสดงรหัส VietQR รายละเอียดบัญชี และ **บันทึกการโอน** ที่ไม่ซ้ำกัน [SePay](https://sepay.vn) จะคอยตรวจสอบบัญชีธนาคารของคุณและเรียกเว็บฮุกเมื่อเงินเข้า จากนั้น NexCMP จะเติมเงินเข้ากระเป๋าเงินให้ ใช้สิ่งนี้หากคุณขายสินค้าให้กับลูกค้าในเวียดนาม

::: info แสดงเฉพาะในอินเทอร์เฟซภาษาเวียดนาม
ตัวเลือกธนาคาร VN จะแสดงต่อเมื่อพอร์ทัลแสดงเป็นภาษา **Vietnamese** เท่านั้น ลูกค้าที่ใช้ภาษาอื่นจะไม่เห็นตัวเลือกนี้
:::

## ข้อกำหนด {#requirements}

| Item | Requirement |
|---|---|
| บัญชีธนาคาร | บัญชีธนาคารเวียดนาม (หรือบัญชีเสมือนของ Sepay, **VA**) ที่เชื่อมต่อกับบัญชี Sepay ที่ [my.sepay.vn](https://my.sepay.vn) |
| Sepay | บัญชี Sepay ที่เปิดใช้งานการบูรณาการ Webhook แล้ว |
| อัตราแลกเปลี่ยน | ต้องมีอัตราแลกเปลี่ยน USD เป็น VND อยู่: โปรดอัปเดตที่ **Exchange rates** ก่อน หากไม่มีอัตราแลกเปลี่ยน ช่องทางนี้จะตอบกลับด้วย `fx_unavailable` และลูกค้าจะไม่สามารถเริ่มการโอนเงินได้ |
| Network | แผงควบคุมของคุณต้องสามารถเข้าถึงได้ผ่าน HTTPS เพื่อให้ Sepay สามารถเรียกใช้งาน `https://<your-domain>/v1/billing/sepay/webhook` ได้ |
| Dependencies | [สกุลเงินและอัตราแลกเปลี่ยน](https://nexcmp.com/th/docs/catalog/currency-and-exchange-rates/). |

## เตรียมโครงสร้างพื้นฐาน {#prepare-the-infrastructure}

ฝั่งของ Sepay:

1. ใน [my.sepay.vn](https://my.sepay.vn) ให้เชื่อมต่อบัญชีธนาคารของคุณ (หรือสร้าง VA) และตรวจสอบว่ามีรายการธุรกรรมปรากฏขึ้น
2. กำหนด**คำนำหน้าบันทึกช่วยจำ (memo prefix)** — ตัวอักษรพิมพ์ใหญ่ 2 ถึง 5 ตัว เช่น `PAY` NexCMP จะสร้างบันทึกช่วยจำโดยใช้คำนำหน้าตามด้วยตัวเลขสุ่ม 8 หลัก (เช่น `PAY48210937`) คำนำหน้าต้องไม่มี `ORD` และไม่ควรซ้ำกับระบบอื่นที่รับเงินเข้าบัญชีเดียวกัน
3. หากบัญชี Sepay ของคุณใช้ *โครงสร้างรหัสการชำระเงิน (payment code structure)* ให้ลงทะเบียนคำนำหน้าเดียวกันที่นั่นเพื่อให้ Sepay จดจำบันทึกช่วยจำได้
4. สร้าง Webhook ในภายหลัง หลังจากที่หน้า NexCMP แสดง URL และคีย์ให้คุณแล้ว (ขั้นตอนที่ 7 ด้านล่าง)

## เชื่อมต่อใน NexCMP {#connect-in-nexcmp}

1. เปิด **Finance › Payment channels › Exchange rates** แล้วคลิก **Update exchange rates** หากยังไม่มีการบันทึกอัตราแลกเปลี่ยน
2. เปิด **Finance › Payment channels › VN bank transfer** (`/payments/bank`)
3. ในส่วน **Receiving account** ให้กรอกข้อมูลดังนี้:

   | ฟิลด์ | ตัวอย่าง | กฎ |
   |---|---|---|
   | ธนาคาร | `VCB` Vietcombank | เลือกจากรายการ รหัส BIN จะถูกเติมอัตโนมัติ |
   | เลขที่บัญชี | `0123456789` | ตัวเลข 4–24 หลักหรือตัวอักษรพิมพ์ใหญ่ |
   | บัญชีเสมือน (VA — ไม่บังคับ) | | หากตั้งค่าไว้ ลูกค้าจะโอนเงินเข้า VA และคิวอาร์โค้ดจะแสดงผลดังกล่าว |
   | ชื่อเจ้าของบัญชี | `NGUYEN VAN A` | ไม่มีอักษรพิเศษ, ตัวพิมพ์ใหญ่ทั้งหมด, ความยาว 2–60 ตัวอักษร |
   | คำนำหน้าบันทึกการโอนเงิน | `PAY` | ตัวอักษรพิมพ์ใหญ่ 2–5 ตัว, ไม่มี `ORD` |

4. ใน **Webhook authentication** ให้เลือก **Auth method**: **HMAC-SHA256** (แนะนำ) หรือ **API key** และป้อน **Webhook key / HMAC secret** (8–200 ตัวอักษร) หรือเลือกป้อน **userapi token** จาก Sepay ซึ่งใช้สำหรับการตรวจสอบยอดโอนที่ Webhook ขาดหายไปเท่านั้น
5. ใน **Channel & limits** ให้กำหนดขีดจำกัด (ค่าเริ่มต้นอยู่ในวงเล็บ): **Min / order** (10,000 VND), **Max / order** (200,000,000 VND), **Order expiry** (120 นาที, 15–1440), **Max pending orders / account** (3, 1–10), **Reconcile every** (10 นาที) และ **Allowed webhook IPs** (คั่นด้วยจุลภาค หากเว้นว่างไว้จะบันทึกเฉพาะ IP เท่านั้น เป็นทางเลือก)
6. คลิก **Save** แบนเนอร์สีแดง "Sepay not configured" จะหายไปเมื่อบัญชี ชื่อ คำนำหน้า และคีย์ถูกต้อง
7. คัดลอก **Webhook URL to paste into my.sepay.vn** (ซึ่งแสดงเป็น `https://<your-domain>/v1/billing/sepay/webhook`) ด้วย **Copy** จากนั้นใน Sepay ให้เปิดการเชื่อมต่อ webhook วาง URL เลือกประเภทและคีย์การตรวจสอบสิทธิ์ให้ตรงกัน แล้วเปิดใช้งานอีเวนต์ "money in"
8. คลิก **Test connection** จากนั้นเปิดสวิตช์ **Enable Sepay for clients (main site)** และคลิก **Save**

![หน้าการโอนเงินผ่านธนาคารเวียดนามที่มีการกรอกข้อมูลบัญชีผู้รับ คำนำหน้าบันทึก และการยืนยันตัวตน Webhook ด้วยค่าตัวอย่าง](https://nexcmp.com/th/docs/images/billing/bank-transfer-vn-01-config.webp)

![การ์ดช่องทางและขีดจำกัดที่เปิดสวิตช์ Sepay และตั้งค่าขีดจำกัดเริ่มต้นไว้](https://nexcmp.com/th/docs/images/billing/bank-transfer-vn-02-limits.webp)

### ความปลอดภัยของ Webhook {#webhook-security}

| วิธี | สิ่งที่ Sepay ต้องส่ง |
|---|---|
| HMAC-SHA256 | ส่วนหัว `X-SePay-Signature: sha256=<hex>` คำนวณจาก `"<X-SePay-Timestamp>.<raw body>"` โดยเวลาอาจแตกต่างกันได้ไม่เกิน 300 วินาที |
| คีย์ API | ส่วนหัว `Authorization: Apikey <key>` |

จะมีการตรวจสอบเฉพาะส่วนหัวเท่านั้น (ไม่รวมเนื้อหาหรือคิวรีสตริง) และการเปรียบเทียบใช้เวลาคงที่ จะใช้เฉพาะการโอนเงินขาเข้า (`transferType = in`) ไปยังบัญชีหรือ VA ที่คุณกำหนดไว้เท่านั้น ธุรกรรม SePay แต่ละรายการจะถูกจัดเก็บไว้เพียงครั้งเดียว ดังนั้นเว็บฮุกที่มีการส่งซ้ำจะไม่ถูกเครดิตซ้ำ NexCMP จะตอบกลับเป็น `200 {"success":true}` แม้ว่าจะจงใจเพิกเฉยต่อธุรกรรมนั้น และตอบกลับ HTTP 5xx เฉพาะกรณีข้อผิดพลาดชั่วคราวเพื่อให้ SePay ส่งซ้ำ

## วิธีที่ลูกค้าชำระเงิน {#how-the-customer-pays}

1. ใน **Billing › Deposit** (อินเทอร์เฟซภาษาเวียดนาม) ลูกค้าเลือกตัวเลือกการโอนเงินผ่านธนาคารเวียดนามและระบุจำนวนเงิน จากนั้นคลิกปุ่มสร้างรายการโอน
2. NexCMP จะแปลงจำนวนเงิน USD ตามอัตราที่จัดเก็บไว้ (รวมถึงส่วนต่างและขั้นตอนการปัดเศษที่คุณตั้งค่าไว้ใน **Exchange rates**) และ **ปัดเศษจำนวนเงิน VND ขึ้น** ไปยังขั้นการปัดเศษ
3. ลูกค้าจะเห็นคิวอาร์โค้ด (VietQR สร้างขึ้นในเครื่อง) พร้อมเลขที่บัญชี ธนาคาร จำนวนเงิน และบันทึกช่วยจำ
4. หลังจากการโอนเงิน SePay จะเรียกเว็บฮุก และ NexCMP จะเพิ่มเครดิต `floor(VND received × 100 / rate)` เซนต์ อัตราแลกเปลี่ยนจะถูกล็อกไว้เมื่อสร้างคำสั่งซื้อ หากเงินเข้าหลังจากคำสั่งซื้อหมดอายุ จะใช้อัตราที่สูงกว่าระหว่างอัตราที่ล็อกไว้กับอัตราปัจจุบัน
5. คำสั่งซื้อจะหมดอายุหลังจาก **Order expiry**; การกระทบยอดจะทำงานทุกๆ **Reconcile every** นาทีเพื่อเป็นตาข่ายความปลอดภัย (ต้องใช้โทเค็น userapi)

## ตรวจสอบ {#verify}

1. สร้างคำสั่งซื้อทดสอบในฐานะลูกค้าบนอินเทอร์เฟซภาษาเวียดนาม ตรวจสอบว่าจำนวนเงิน บัญชี และบันทึกช่วยจำถูกต้อง
2. โอนเงินตามจำนวนขั้นต่ำที่อนุญาตพร้อมบันทึกช่วยจำที่แน่นอน
3. ภายในหนึ่งนาที พอร์ทัลจะแสดงการฝากเงินว่าเสร็จสมบูรณ์และยอดเงินในกระเป๋าเงินจะเพิ่มขึ้น การ์ด **State** ในหน้าธนาคารจะแสดงเวลาเว็บฮุกครั้งล่าสุด
4. เปิด **Finance › Billing › Top-ups** และตรวจสอบว่าการชำระเงินแสดงอยู่ในรายการพร้อมจำนวนเงิน VND ที่ได้รับ

## ขีดจำกัดและหมายเหตุ {#limits-notes}

- **ขั้นต่ำ** จำนวนเงิน VND ขั้นต่ำที่ลูกค้าเห็นคือค่าที่มากกว่าระหว่าง **Min / order** และมูลค่า VND ของ [minimum top-up](https://nexcmp.com/th/docs/billing/minimum-top-up/)
- **คำสั่งซื้อที่รอดำเนินการ** ลูกค้าสามารถมีคำสั่งซื้อที่เปิดอยู่ได้สูงสุด **Max pending orders / account** รายการ (ค่าเริ่มต้นคือ 3)
- **บันทึกช่วยจำซ้ำกัน** การโอนเงินสองครั้งด้วยบันทึกช่วยจำเดียวกันจะสร้างการชำระเงินที่สำเร็จรายการที่สองตามอัตราปัจจุบัน
- **ไม่มีการคืนเงินอัตโนมัติ** ไปยังบัญชีธนาคาร
- **ค่าธรรมเนียม** ช่องทางนี้ไม่มีบรรทัดค่าธรรมเนียมคงที่ใน **Fees & limits** โดยส่วนต่างอัตราแลกเปลี่ยนคือการปรับแก้เพียงอย่างเดียว
- **Resellers** สามารถกำหนดค่าบัญชีของตนเองได้ โดย URL เว็บฮุกจะลงท้ายด้วย `/v1/billing/sepay/webhook/r/<id>`

### การโอนเงินที่ยังไม่ได้จับคู่ {#unmatched-transfers}

เงินที่เข้าบัญชีแล้วแต่ไม่มีบันทึกช่วยจำที่ถูกต้องจะปรากฏใน **Unmatched transactions** ที่ด้านล่างของหน้า (ตัวกรอง *All channel owners* หรือ *Master*) ตรวจสอบอ้างอิงธนาคารกับลูกค้า จากนั้นคลิก **Assign** และเลือกบัญชี ยอดเงินในกระเป๋าจะถูกเติมเครดิตตามอัตราปัจจุบัน

## การแก้ Problme {#troubleshooting}

| อาการ | สาเหตุ | วิธีแก้ปัญหา |
|---|---|---|
| แบนเนอร์ "Sepay not configured" | ธนาคาร, บัญชี, ชื่อผู้ถือบัญชี, คำนำหน้า หรือคีย์หายไปหรือไม่ถูกต้อง | กรอกข้อมูลในการ์ด **Receiving account** และ **Webhook authentication** ให้ครบถ้วน |
| แบนเนอร์ "USD/VND rate blocked" (`fx_unavailable`) | ไม่มีการจัดเก็บอัตราแลกเปลี่ยน | ไปที่ **Exchange rates › Update exchange rates**. |
| `prefix: 2–5 capital letters, no ORD` | คำนำหน้าไม่ถูกต้อง | ใช้ตัวอักษรพิมพ์ใหญ่ 2–5 ตัวโดยไม่มี `ORD` |
| ข้อผิดพลาด `account_name` | มีอักษรมีเครื่องหมายกำกับหรือตัวพิมพ์เล็ก | ใช้ตัวอักษรพิมพ์ใหญ่ภาษาอังกฤษที่ไม่มีเครื่องหมายกำกับ, ตัวเลข, ช่องว่าง, จุด หรือยัติภังค์ |
| `webhook_secret: 8–200 characters` | คีย์สั้นเกินไป | ใช้อักขระที่พิมพ์ได้3อย่างน้อย 8 ตัว |
| ลูกค้ามองไม่เห็นตัวเลือก | ไม่พบในอินเทอร์เฟซภาษาเวียดนาม ปิดใช้งาน หรือไม่มีเรท | ตรวจสอบภาษา สวิตช์ และเรท |
| ลูกค้าชำระเงินแล้วแต่ยอดเงินไม่เข้า | เว็บฮุกไม่มา เมโมเปลี่ยน หรือยอดเงินไม่ถูกต้อง | ตรวจสอบบันทึกเว็บฮุกของ Sepay; การโอนเงินจะอยู่ใต้ **Unmatched transactions** หากใส่เมโมผิด |
| เว็บฮุกคืนค่า 401 หรือ 403 | วิธีการยืนยันตัวตนหรือคีย์ไม่ตรงกัน | ใช้วิธีการและคีย์เดียวกันใน Sepay และ NexCMP |
| ลูกค้าเห็นข้อความ "คำขอรอดำเนินการมากเกินไป" | ถึงขีดจำกัดคำสั่งซื้อที่รอดำเนินการแล้ว | รอให้เสร็จสิ้นหรือรอจนกว่าจะหมดอายุ |


