Đăng ký số tiền chia sẻ
Quy trình
Mô tả:
- Sau khi nhận webhook thu hộ, CashPlus gọi API này để đăng ký số tiền chia cho 3 người nhận của giao dịch:
| Người nhận | Trường | Hình thức chi |
|---|---|---|
| User (cashback) | User.Amount (U) | Luôn realtime |
| Merchant | Merchant.Amount (M) | Theo Merchant.Type: realtime hoặc T+1 |
| CashPlus | Partner.Amount (P) | Luôn T+1 |
- API này chỉ ghi nhận số đăng ký, không chuyển tiền. Tiền chỉ được chi khi CashPlus gọi Lệnh chi cho từng người nhận.
- Đăng ký không cần tài khoản User. Chưa xác định được User thì vẫn đăng ký U; nếu tới cutoff không gọi chi được cho User thì phần U về Merchant.
U + M + Pphải nhỏ hơn hoặc bằng N (xem Tổng quan). Phần dưN − U − M − P(UnallocatedAmount) không gọi chi được và được quyết toán về Merchant tại cutoff.- Mỗi
TransactionIdchỉ đăng ký 1 lần. Gọi lại với cùngTransactionId(dù số khác) → Baokim trảResponseCode=200kèm phân bổ của lần đầu, không ghi đè. Không có API sửa số đã đăng ký.
Thời hạn đăng ký
- Chỉ nhận trước cutoff 23:50:59 ngày T (ngày Baokim nhận tiền), theo giờ hệ thống Baokim (GMT+7) lúc nhận request.
- Quá hạn → 141, Baokim không ghi nhận. Toàn bộ N được quyết toán về Merchant theo T+1 (lệnh
AUTO, xem Tổng quan). - Giao dịch nhận tiền từ 23:50:59 đến 23:59:59 ngày T: không nhận đăng ký.
- Nên gọi trước 23:45 để tránh request bị xử lý sau cutoff.
Chính sách miễn phí
Áp dụng khi giao dịch thỏa cả 2 điều kiện:
User.IsNewUser = 1(User mới).- Sub merchant đăng ký với Baokim chưa quá 3 tháng (tính từ ngày đăng ký đầu tiên còn hiệu lực).
| Loại | Kết quả | Hạn mức |
|---|---|---|
| Miễn phí thu hộ | Baokim áp ngay khi đăng ký: TransFeeAmount = 0, N = TransAmount. Response trả N mới | Theo số lượt / sub merchant Baokim thông báo |
| Miễn phí chi realtime cho Merchant | Lệnh chi realtime cho Merchant (Receiver=2, Type=1) của giao dịch này có FeeAmount = 0 | Theo số lượt / sub merchant Baokim thông báo, tính riêng với miễn phí thu hộ |
Khi được miễn phí thu hộ, kiểm tra U + M + P ≤ N dùng N sau miễn phí.
Thông tin API
Method: POST
URL: {BASE_URL}/transaction/v2/share-amount
Header: Signature — chữ ký RSA-SHA1 của raw body (xem Bảo mật). Baokim kiểm chữ ký trước mọi kiểm tra khác.
Request
Bảng tham số chính
| Tên trường | Kiểu dữ liệu | Bắt buộc | Mô tả |
|---|---|---|---|
| RequestId | String | ✅ | ID request. Tối đa 50 ký tự, chỉ gồm chữ, số và - |
| RequestTime | Datetime | ✅ | Thời gian request. Format: YYYY-MM-DD HH:mm:ss. Lệch không quá 5 phút so với giờ Baokim |
| PartnerCode | String | ✅ | Mã merchant (sub merchant) của giao dịch thu hộ |
| TransactionId | String | ✅ | Mã giao dịch thu hộ Baokim (TransIdBk trong webhook thu hộ) |
| User | Object | ✅ | Phần chia cho User. Xem bảng User |
| Merchant | Object | ✅ | Phần chia cho Merchant. Xem bảng Merchant |
| Partner | Object | ✅ | Phần chia cho CashPlus. Xem bảng Partner |
User
| Tên trường | Kiểu dữ liệu | Bắt buộc | Mô tả |
|---|---|---|---|
| Amount | Integer | ✅ | Số tiền cashback cho User (VND), ≥ 0. 0 = không có cashback, các trường còn lại của User không bắt buộc. Khác 0 thì tối thiểu 4.500 |
| IsNewUser | Integer | ✅ (khi Amount > 0) | 1 = User mới, 2 = User cũ. Dùng cho chính sách miễn phí |
| Memo | String | ✅ (khi Amount > 0) | Nội dung chuyển tiền mặc định cho lệnh chi User |
| Code | String | ❌ | Mã User đã đồng bộ tài khoản, nếu đã biết. Có thì phải khớp tài khoản đã đồng bộ (103) |
| AccNo | String | ❌ | Số tài khoản nhận của User, nếu đã biết (104) |
| BankNo | String | ❌ | Mã ngân hàng của tài khoản nhận, nếu đã biết (111) |
Tài khoản nhận của User được chốt ở Lệnh chi cho User, không phải ở bước này.
Merchant
| Tên trường | Kiểu dữ liệu | Bắt buộc | Mô tả |
|---|---|---|---|
| Amount | Integer | ✅ | Số tiền chia cho Merchant (VND), ≥ 0. Với Type=1 và khác 0: phải lớn hơn phí chi realtime |
| Type | Integer | ✅ | Hình thức chi cho Merchant: 1 = realtime, 2 = T+1. Lệnh chi Merchant phải dùng đúng Type này |
| Memo | String |