

ACB cung cấp dịch vụ chuyển tiền cho những khách hàng có nhu cầu, thông qua các phương thức chi hộ của ngân hàng đến người thụ hưởng.
Các phương thức chi hộ đang thực hiện qua API bao gồm:
- Chuyển khoản theo danh sách.
- Chuyển khoản theo giao dịch đơn.
Dịch vụ chuyển tiền mang tới cho khách hàng những lợi ích như sau:
- Bảo mật, đảm bảo tiền được chuyển đến đúng người thụ hưởng chỉ định, hạn chế rủi ro chi tiền.
- Tiết kiệm thời gian và chi phí, chi tiền nhanh chóng, chính xác.
- Thanh toán cùng lúc số lượng lớn người thụ hưởng.
- Tối ưu hóa việc quản lý chi phí của doanh nghiệp bằng quy trình xử lý chuyên nghiệp và tự động.
- Theo dõi tình hình chi trả trên tài khoản một cách dễ dàng qua hệ thống ACB Online hoặc qua API.
- Phải truyền đầy đủ các thông tin bắt buộc
- Thỏa điều kiện tài khoản trích tiền:
+ Tài khoản trích tiền phải là tài khoản của khách hàng
+ Tài khoản trích tiền phải trùng khớp với số tài khoản trích đã đăng ký dịch vụ chuyển tiền với ngân hàng và có trạng thái đang hoạt động.
+ Số dư khả dụng của TK trích tiền phải lớn hơn hoặc bằng Tổng số tiền giao dịch và tổng số tiền phí chuyển tiền.
- Thỏa điều kiện tài khoản thụ hưởng:
- Nếu khách hàng sử dụng dịch vụ chuyển tiền theo danh sách chỉ định (whitelist) thì danh sách này phải được đăng ký trước với ngân hàng.
- Nếu tài khoản thụ hưởng thuộc ACB:
+ Tài khoản thụ hưởng không nằm trong danh sách cấm nhận tiền còn hiệu lực.
+ Tài khoản thụ hưởng là tài khoản cùng đơn vị tiền tệ với tài khoản trích.
+ Trạng thái của tài khoản thụ hưởng khác trạng thái đóng.
+ Tên đơn vị thụ hưởng phải trùng khớp với họ tên chủ tài khoản trong ngân hàng.
+ Chủ tài khoản thụ hưởng không phải là người nước ngoài.
- Nếu tài khoản thụ hưởng ngoài ACB (chuyển tiền nhanh):
+ Ngân hàng thụ hưởng phải nằm trong danh sách ngân hàng thụ hưởng do NAPAS quy định.
+ Tên người thụ hưởng phải trùng với tên người thụ hưởng do NAPAS trả về.
+ Số tiền giao dịch tối đa dưới 500 triệu VNĐ.
+ Chỉ áp dụng đối với loại tiền tệ VNĐ.
- Nếu tài khoản thụ hưởng ngoài ACB (chuyển tiền thường):
+ Ngân hàng thụ hưởng phải nằm trong danh sách ngân hàng thụ hưởng do ACB cung cấp.
1. Quy trình chuyển tiền của ACB

#Bước | Mô tả |
---|---|
Bước 1: Khởi tạo giao dịch | Trước tiên, khách hàng gọi API Khởi tạo giao dịch và xác thực giao dịch của ACB để gửi danh sách các giao dịch cần thực hiện qua ACB. Bộ giao dịch gồm các thông tin như mã tham chiếu giao dịch, số giao dịch, tài khoản trích tiền, tên tài khoản nhận tiền, số tài khoản nhận tiền, ngân hàng nhận tiền,… Sau khi nhận thông tin giao dịch, ACB thực hiện kiểm tra giao dịch đã đầy đủ các thông tin yêu cầu chưa và phản hồi kết quả nhận được cho khách hàng như tổng số giao dịch nhận được trong giao dịch, tổng số tiền giao dịch, trạng thái giao dịch. |
Bước 2: Hạch toán giao dịch | Sau bước 1, ACB tiếp tục thực hiện kiểm tra các ràng buộc: - Các điều kiện ràng buộc đối với các thông tin đầu vào - Các điều kiện ràng buộc của tài khoản trích. - Các điều kiện ràng buộc của tài khoản thụ hưởng. Sau khi hoàn tất quá trình kiểm tra, ACB sẽ gọi API thông báo kết quả xử lý giao dịch để phản hồi kết quả cho khách hàng. API này được khách hàng xây dựng dựa trên chuẩn API do ACB cung cấp. Thông tin phản hồi gồm: mã tham chiếu giao dịch (do khách hàng cung cấp), số định danh gói giao dịch (do ACB cung cấp), trạng thái của gói giao dịch, tổng số giao dịch, tổng số tiền giao dịch, tổng số giao dịch hợp lệ, tổng số tiền giao dịch hợp lệ, tổng tiền phí dịch vụ (nếu có) |
Bước 3: Nhận kết quả sau khi hạch toán gói giao dịch | Sau khi xác thực, ACB sẽ trả về kết quả gồm thông tin và tình trạng của giao dịch. Tình trạng của giao dịch có thể là: Để biết được trạng thái hạch toán thành công/ thất bại của các giao dịch trong bó, khách hàng sẽ dùng API truy vấn chi tiết giao dịch trong bó. API này cũng được khách hàng xây dựng dựa theo chuẩn API do ACB cung cấp. |
2. Quy trình truy vấn thông tin giao dịch

Để truy vấn tình trạng của danh sách hoặc của từng giao dịch khách hàng đã gửi qua API, khách hàng có thể gọi các API như hình trên.
1. Trang thái callback Giao dịch/ Bó Giao dịch
# | Trường hợp | Trạng thái cho đối tác callback |
---|---|---|
1 | Validate giao dịch con/ giao dịch đơn không hợp lệ | status = INVA |
2 | Validate bó giao dịch không hợp lệ (tất cả GD con trong bó đều không hợp lệ | bulkStatus = INVA |
3 | Giao dịch con/ giao dịch đơn đã hạch toán thành công | status = TRAN |
4 | Giao dịch con/ giao dịch đơn hạch toán thất bại | status = FAIL |
5 | Bó giao dịch đã được xử lý hoàn tất | bulkStatus = COMP |
6 | Bó giao dịch pending | bulkStatus = PEND |
7 | Giao dịch pending | Status = PEND |
8 | Bó giao dịch bị từ chối xử lý | bulkStatus = REJE |
9 | Giao dịch bị từ chối xử lý | Status = REJE |
2. Bảng mã lỗi
# | HTTP Status Code | Response Code | Description | API áp dụng | Mô tả tình huống |
---|---|---|---|---|---|
1 | 200 | 00000000 | Success | Tất cả các API | Gọi API thành công |
2 | 401 | 42020182 | Invalid token | Tất cả các API | Gọi API với access_token không hợp lệ (không đúng, hết hạn) |
3 | 403 | ------- | Forbidden | Tất cả các API | Acess token không có quyền truy cập |
4 | 400 | 42020186 | Missing token | Tất cả các API | Gọi API không truyền access_token |
5 | 400 | 40020400 | Missing X-Request-Id | Tất cả các API | Gọi API không truyền X-Request-Id |
6 | 400 | 40020400 | Missing X-Channel | Tất cả các API | Gọi API không truyền X-Channel |
7 | 400 | 01030001 | Bad request format | Tất cả các API | Gọi API thiếu tham số bắt buộc hoặc tham số không đúng format |
8 | 400 | 01030002 | Transaction trace number is duplicated | API Khởi tạo chuyển tiền lô | TransactionTraceNumber trong bó trùng nhau |
9 | 289 | 02010002 | Transaction trace number is already exists | - API Khởi tạo chuyển tiền lô - API Khởi tạo chuyển tiền đơn | TransactionTraceNumber đã tồn tại trong DB cùng 1 đối tác |
10 | 289 | 02010003 | Bulk trace number is already exists | API Khởi tạo chuyển tiền lô | BulkTraceNumber đã tồn tại trong DB cùng 1 đối tác |
11 | 289 | 02010004 | Request trace is already exists | - API Khởi tạo chuyển tiền lô - API Khởi tạo chuyển tiền đơn | RequestTrace đã tồn tại trong DB |
12 | 289 | 02010001 | Mismatch certificate | - API Khởi tạo chuyển tiền lô - API Khởi tạo chuyển tiền đơn | Chữ ký xác thực không hợp lệ |
13 | 289 | 02020001 | Not found partner | Tất cả các API | Chưa cấu hình cho đối tác |
14 | 289 | 02020004 | The account not found | - API Khởi tạo chuyển tiền lô - API Khởi tạo chuyển tiền đơn | Chưa cấu hình tài khoản trích cho partner |
15 | 289 | 02020006 | Not found certificate | - API Khởi tạo chuyển tiền lô - API Khởi tạo chuyển tiền đơn | AuthorizationId không tồn tại trong DB |
16 | 500 | 02039999 | Internal Server Error | Tất cả các API | Lỗi Server |
17 | 408 | 02030001 | Request timeout | Tất cả các API | Lỗi timeout |
1. Chưa đăng ký danh sách thụ hưởng được chỉ định trước với ACB
STT | Tính năng | Mô tả tình huống | Điều kiện | Kết quả mong đợi |
1 | Tạo bộ giao dịch | - Tạo bộ giao dịch chuyển khoản trong hệ thống ACB thành công - Truy vấn thông tin bộ giao dịch | - Thông tin thụ hưởng hợp lệ | Http code: 200 - Bulk_status: ORIG Trả kết quả validate bộ giao dịch - Trạng thái bộ gd: VALID |
2 | Tạo bộ giao dịch | - Tạo bộ giao dịch chuyển khoản ngoài hệ thống ACB qua Citad thành công - Nhận bằng tài khoản |
- Bank.code/province hợp lệ | Http code: 200 - Bulk_status: ORIG Trả kết quả validate bộ giao dịch - Trạng thái bộ gd: VALID |
3 | Tạo bộ giao dịch | - Tạo bộ giao dịch chuyển khoản ngoài hệ thống ACB qua Citad thành công - Nhận bằng thẻ | - Bank.code/province hợp lệ | Http code: 200 - Bulk_status: ORIG - Trạng thái bộ gd: VALID |
4 | Tạo bộ giao dịch | - Tạo bộ giao dịch chuyển khoản ngoài hệ thống ACB qua Napas thành công - Nhận bằng thẻ - Tài khoản chi hộ không đăng ký thụ hưởng | - Bank.code/province hợp lệ - 6 số đầu của thẻ phải là 9704 - Thông tin thụ hưởng hợp lệ | Http code: 200 - Bulk_status: ORIG - Trạng thái bộ gd: VALID |
5 | Tạo bộ giao dịch | Tạo bộ giao dịch không thành công khi “transaction_trace_number” trùng trong 1 bó giao dịch | - Bộ giao dịch có nhiều hơn 1 giao dịch chi tiết - 2 giao dịch chi tiết có cùng transaction_trace_number | Status code: 202 Response error code: 42010059 |
6 | Tạo bộ giao dịch | - Tạo bộ giao dịch không thành công khi “batch_trace_number” đã tồn tại | - Đã có bộ giao dịch với batch_trace_number được tạo trước đó | Status code: 202 Response error code: 42010058 |
7 | Tạo bộ giao dịch | - Tạo bộ giao dịch không thành công khi “transaction_trace_number” đã tồn tại - Truy vấn thông tin bộ giao dịch | - Bộ giao dịch có nhiều hơn 1 giao dịch chi tiết - 1 giao dịch có transaction_trace_number đã được tạo trước đó - "transaction_error_type": "ALL" | Http code: 200 - Bulk_status: ORIG - Trạng thái bộ giao dịch: INVA |
8 | Tạo bộ giao dịch | - Tạo bộ giao dịch không thành công khi token hết hạn | - Token hết hạn | Status code: 401 Response error code: 42020183 |
9 | Tạo bộ giao dịch | - Tạo bộ giao dịch không thành công khi token không hợp lệ | - Token không hợp lệ | Status code: 401 Response error code: 42020182 |
10 | Tạo bộ giao dịch | - Tạo bộ giao dịch không thành công khi có 1 giao dịch chi tiết không hợp lệ | - Bộ giao dịch có nhiều hơn 1 giao dịch chi tiết - 1 giao dịch có tài khoản thụ hưởng không hợp lệ - "transaction_error_type": "ALL" | Status code: 200 - Bulk_status: ORIG Trả kết quả validate bộ giao dịch - Trạng thái bộ gd: INVA |
11 | Tạo bộ giao dịch | - Tạo bộ giao dịch thành công khi có 1 giao dịch chi tiết không hợp lệ | - Bộ giao dịch có nhiều hơn 1 giao dịch chi tiết - 1 giao dịch có tài khoản thụ hưởng không hợp lệ - "transaction_error_type": "ANY" | Status code: 200 - Bulk_status: ORIG Trả kết quả validate bộ giao dịch - Trạng thái bộ gd: VALID |
12 | Truy vấn chi tiết bộ giao dịch | Truy vấn chi tiết bộ giao dịch trong case 10 thành công | Status code: 200 - status: INVA cho giao dịch không hợp lệ | |
13 | Truy vấn chi tiết bộ giao dịch | Truy vấn chi tiết bộ giao dịch không thành công khi truyền from date, to date không đúng format | - Truyền from date, to date không đúng format. VD: 2023-13-29 | Status code : 202 Response code : 400 Response error : 42020018 |
14 | Xác thực giao dịch | Gọi API xác thực giao dịch thành công | - 2 CA hợp lệ - Thông tin giao dịch ký đúng - Trạng thái bó giao dịch: VALID | Status code: 200 - Bulk_status: AUTH |
15 | Xác thực giao dịch | Gọi API xác thực giao dịch không thành công - CA không hợp lệ | - CA không hợp lệ - Thông tin giao dịch ký đúng - Trạng thái bó giao dịch: VALID | Status code : 401 Response code : 403 Response error : 42020189 |
16 | Xác thực giao dịch | Gọi API xác thực giao dịch không thành công - thông tin lệnh ký không khớp | - 2 CA hợp lệ - Thông tin giao dịch ký không khớp - Trạng thái bó giao dịch: VALID | Status code : 401 Response code : 403 Response error : 42020184 |
17 | Xác thực giao dịch | Gọi API xác thực giao dịch không thành công - trạng thái bó giao dịch khác VALID | - 2 CA hợp lệ - Thông tin giao dịch ký đúng - Trạng thái bó giao dịch: INVA | Status code : 401 Response code : 403 Response error : 42020188 |
18 | Xác thực giao dịch | Gọi API xác thực giao dịch không thành công - thời gian xác thực quá thời gian tạo lệnh 60 phút | - 2 CA hợp lệ - Thông tin giao dịch ký đúng - Trạng thái bó giao dịch: EXPI | Status code : 401 Response code : 403 Response error : 42020187 |
19 |
| - Tạo bộ giao dịch thành công với số tiền > số dư tài khoản - Xác thực giao dịch - Truy vấn bộ giao dịch | - số tiền giao dịch > số dư khả dụng của tài khoản | Status code: 200 - Bulk_status: ORIG
|
20 | Vượt quá hạn mức giao dịch | - Tạo bộ giao dịch chuyển khoản ngoài hệ thống ACB qua Napas - Nhận bằng tài khoản - Truy vấn thông tin bộ giao dịch | - Số tiền giao dịch>500 triệu | Status code: 200 - Bulk_status: ORIG Trả kết quả validate bộ giao dịch - Trạng thái bộ gd: INVA |
21 | Truy vấn chi tiết giao dịch | Truy vấn chi tiết giao dịch với giá trị batch_trace_number không tồn tại | Status code : 202 Response code : 404 Response error : 42010060 | |
22 | Truy vấn chi tiết giao dịch | Truy vấn chi tiết giao dịch với giá trị transaction_trace_number không tồn tại | Status code: 200 Response error code : 00000000 Trả kết quả là mảng rỗng |
2. Đã đăng ký danh sách thụ hưởng được chỉ định trước với ACB
1 | Tạo bộ giao dịch | - Tạo bộ giao dịch chuyển khoản trong hệ thống ACB thành công - Tài khoản chi hộ và thụ hưởng đã đăng ký - Truy vấn thông tin bộ giao dịch | - Tài khoản chi hộ có đăng ký danh sách đơn vị hưởng - Thông tin thụ hưởng đã đăng ký trước | Http code: 200 - Bulk_status: ORIG - Trạng thái bộ gd: VALID |
2 | Tạo bộ giao dịch | - Tạo bộ giao dịch chuyển khoản ngoài hệ thống ACB qua Citad thành công - nhận bằng tài khoản - - Tài khoản chi hộ và thụ hưởng đã đăng ký - Truy vấn thông tin bộ giao dịch | - Tài khoản chi hộ có đăng ký danh sách đơn vị hưởng - Thông tin thụ hưởng đã đăng ký trước - Bank.code/province hợp lệ | Http code: 200 - Bulk_status: ORIG - Trạng thái bộ gd: VALID |
3 | Tạo bộ giao dịch | - Tạo bộ giao dịch chuyển khoản ngoài hệ thống ACB qua Citad thành công - nhận bằng thẻ - - Tài khoản chi hộ và thụ hưởng đã đăng ký - Truy vấn thông tin bộ giao dịch | - Tài khoản chi hộ có đăng ký danh sách đơn vị hưởng - Thông tin thụ hưởng đã đăng ký trước - Bank.code/province hợp lệ | Http code: 200 - Bulk_status: ORIG - Trạng thái bộ gd: VALID |
4 | Tạo bộ giao dịch | - Tạo bộ giao dịch chuyển khoản ngoài hệ thống ACB qua Napas thành công - Nhận bằng tài khoản - Tài khoản chi hộ và thụ hưởng đã đăng ký - Truy vấn thông tin bộ giao dịch | - Tài khoản chi hộ có đăng ký danh sách đơn vị hưởng - Thông tin thụ hưởng đã đăng ký trước - Bank.code/province hợp lệ | Http code: 200 - Bulk_status: ORIG - Trạng thái bộ gd: VALID |
5 | Tạo bộ giao dịch | Tạo bộ giao dịch không thành công khi “transaction_trace_number” trùng trong 1 bó giao dịch | - Bộ giao dịch có nhiều hơn 1 giao dịch chi tiết - 2 giao dịch chi tiết có cùng transaction_trace_number | Status code: 202 Response error code: 42010059 |
6 | Tạo bộ giao dịch | - Tạo bộ giao dịch không thành công khi “batch_trace_number” đã tồn tại | - Đã có bộ giao dịch với batch_trace_number được tạo trước đó | Status code: 202 Response error code: 42010058 |
7 | Tạo bộ giao dịch | - Tạo bộ giao dịch không thành công khi “transaction_trace_number” đã tồn tại - Truy vấn thông tin bộ giao dịch | - Bộ giao dịch có nhiều hơn 1 giao dịch chi tiết - 1 giao dịch có transaction_trace_number đã được tạo trước đó - "transaction_error_type": "ALL" | Http code: 200 - Bulk_status: ORIG - Trạng thái bộ gd: INVA |
8 | Tạo bộ giao dịch | - Tạo bộ giao dịch không thành công khi token hết hạn | - Token hết hạn | Status code : 401 Response code : 401 Response error : 42020182 Message: Invalid token |
9 | Tạo bộ giao dịch | - Tạo bộ giao dịch không thành công khi token không hợp lệ | - Token không hợp lệ | Status code : 401 Response code : 401 Response error : 42020186 Message: Missing Token
Status code : 401 Response code : 401 Response error : 42020182 Message: Invalid token |
10 | Tạo bộ giao dịch | - Tạo bộ giao dịch không thành công khi có 1 giao dịch chi tiết không hợp lệ | - Bộ giao dịch có nhiều hơn 1 giao dịch chi tiết - 1 giao dịch có tài khoản thụ hưởng không hợp lệ - "transaction_error_type": "ALL" | Http code: 200 - Bulk_status: ORIG - Trạng thái bộ gd: INVA |
11 | Tạo bộ giao dịch | - Tạo bộ giao dịch thành công khi có 1 giao dịch chi tiết không hợp lệ | - Bộ giao dịch có nhiều hơn 1 giao dịch chi tiết - 1 giao dịch có tài khoản thụ hưởng không hợp lệ - "transaction_error_type": "ANY" | Http code: 200 - Bulk_status: ORIG - Trạng thái bộ gd: VALID |
12 | Truy vấn chi tiết bộ giao dịch | Truy vấn chi tiết giao dịch trong case 14 thành công |
| Http code: 200 - Status: INVA cho giao dịch không hợp lệ |
13 | Truy vấn chi tiết bộ giao dịch | Truy vấn chi tiết giao dịch không thành công khi không truyền from date, to date | - Không truyền from date, to date | Status code : 202 Response code : 400 Response error : 42020018 |
14 | Xác thực giao dịch | Gọi API xác thực giao dịch thành công | - 2 CA hợp lệ - Thông tin giao dịch ký đúng - Trạng thái bó giao dịch: VALID | Http code: 200 - Bulk_status: AUTH |
15 | Xác thực giao dịch | Gọi API xác thực giao dịch không thành công - CA không hợp lệ | - CA không hợp lệ - Thông tin giao dịch ký đúng - Trạng thái bó giao dịch: VALID | Status code : 401 Response code : 403 Response error : 42020189 |
16 | Xác thực giao dịch | Gọi API xác thực giao dịch không thành công - thông tin lệnh ký không khớp | - 2 CA hợp lệ - Thông tin giao dịch ký không khớp - Trạng thái bó giao dịch: VALID | Status code : 401 Response code : 403 Response error : 42020184 |
17 | Xác thực giao dịch | Gọi API xác thực giao dịch không thành công - trạng thái bó giao dịch khác VALID | - 2 CA hợp lệ - Thông tin giao dịch ký đúng - Trạng thái bó giao dịch: INVA | Status code : 401 Response code : 403 Response error : 42020188 |
18 | Xác thực giao dịch | Gọi API xác thực giao dịch không thành công - thời gian xác thực quá thời gian tạo lệnh 60 phút | - 2 CA hợp lệ - Thông tin giao dịch ký đúng - Trạng thái bó giao dịch: EXPI | Status code : 401 Response code : 403 Response error : 42020187 |
19 | Tạo bộ giao dịch | - Tạo bộ giao dịch thành công với số tiền > số dư tài khoản - Xác thực giao dịch - Truy vấn bó giao dịch | - Số tiền giao dịch > số dư khả dụng của tài khoản | Http code: 200 - Bulk_status: ORIG - Trạng thái bộ gd: VALID - Response code: 200 - Bulk_status: AUTH |
20 | Vượt quá hạn mức giao dịch | - Tạo bộ giao dịch chuyển khoản ngoài hệ thống ACB qua Napas - Nhận bằng tài khoản - Truy vấn thông tin bộ giao dịch | - Số tiền giao dịch>500 triệu | Http code: 200 - Bulk_status: ORIG -Trạng thái bộ gd: INVA |
21 | Truy vấn chi tiết giao dịch | Truy vấn chi tiết giao dịch với giá trị batch_trace_number không tồn tại |
| Status code : 202 Response code : 404 Response error : 42010060 |
22 | Truy vấn chi tiết giao dịch | Truy vấn chi tiết giao dịch với giá trị transaction_trace_number không tồn tại |
| Response code: 200 Response error code : 00000000 Trả kết quả là mảng rỗng |


