일당 선지급을 출퇴근 기록, 급여 및 ERP와 통합하려면 어떤 데이터가 필요한가요?
일당 선지급을 출퇴근 기록, 급여 및 ERP와 통합하려면 어떤 데이터가 필요한가요?
일당 선지급을 출퇴근 기록, 급여 및 ERP와 통합하려면 최소 다섯 가지 데이터 그룹이 필요합니다: 직원 프로필, 승인된 근무, 급여 기간 및 규칙, 조정 또는 공제 항목, 조기 급여 수령 거래. 모든 데이터는 통일된 직원 코드, 상태, 업데이트 시점, 데이터 버전 및 추적 로그를 사용해야 합니다. 좋은 아키텍처는 데이터를 빠르게 전송할 뿐만 아니라 중복 지급을 방지하고, 늦게 수정된 데이터를 처리하며, 각 거래를 대조할 수 있어야 합니다.
> 참고: 이 글은 일당 선지급 (Earned Wage Access – 이미 획득한 급여에 대한 접근) 시스템에 대한 참조 아키텍처를 제시합니다. 필드 이름, 상태, 승인 흐름 및 실제 회계 처리는 Nhan Kiet과 기업이 통합 조사 단계에서 확인해야 합니다.
> 용어 설명: 일당 선지급 (이미 수행한 근무에 대한 급여 수령) · HRIS/HRM (인사 정보 시스템) · ERP (기업 자원 계획 시스템) · 급여 (급여 계산) · API (소프트웨어 연결 인터페이스) · 배치 (일괄 처리) · SFTP (보안 파일 전송) · idempotency (중복 방지: 여러 번 전송해도 하나의 결과만 생성) · UAT (사용자 수용 테스트) · go-live (정식 운영 시작) · rollback (되돌리기) · webhook/callback (시스템 간 자동 알림) · token (원본 데이터 대체 코드) · data dictionary (데이터 사전) · system of record (표준 데이터 소스) · retry (재시도) · timeout (시간 초과).
왜 일당 선지급은 출퇴근 기록, 급여 및 ERP와 동시에 연결해야 하나요?
일당 선지급은 근로자가 돈을 수령하기 전에 세 가지 질문에 답해야 합니다:
이 사람이 현재 근무 중이며 프로그램에 속해 있는가?
현재까지 이 사람이 생성한 적격 급여는 얼마인가?
이전 거래와 보류해야 할 항목 이후에 수령 가능한 금액은 얼마인가?
인사 시스템은 보통 신원과 근무 상태를 확인합니다. 출퇴근 기록 시스템은 완료된 근무 시간 또는 시간을 기록합니다. 급여 시스템은 급여 규칙, 급여 기간 및 조정 항목을 관리합니다. ERP 또는 회계 시스템은 기록, 대조 및 결산을 지원합니다. 결제 시스템은 최종 송금 상태를 제공합니다.
하나의 소스만 연결하면 일당 선지급은 근로자를 볼 수 있지만 승인된 근무 시간을 알 수 없거나, 근무 시간을 볼 수 있지만 급여 기간이 잠겼는지 알 수 없거나, 돈을 송금했지만 급여 시스템이 거래를 대조하지 못할 수 있습니다. 따라서 가장 중요한 점은 'API를 연결할 수 있는가'가 아니라, 완료된 근무에서 결산된 거래까지 일관된 데이터 체인을 설정하는 것입니다.
1. 전체 데이터 아키텍처
참조 아키텍처는 다음과 같이 구성될 수 있습니다:
flowchart TD
A["HRIS: 직원"] --> D["통합 계층"]
B["출퇴근 기록: 승인된 근무"] --> D
C["급여: 급여 기간 및 규칙"] --> D
D --> E["일당 선지급 한도 계산 엔진"]
E --> F["일당 선지급 애플리케이션"]
F --> G["결제 시스템"]
G --> H["급여, ERP 및 회계 대조"]
H --> E
![---
lang: vi
title: "Tích hợp EWA với chấm công, payroll và ERP cần dữ liệu gì?"
slug: tich-hop-ewa-voi-cham-cong-payroll-erp
group: tich-hop-ewa-voi-cham-cong-payroll-erp
keyword: "tích hợp EWA"
category: "Doanh nghiệp"
metaTitle: "Tích hợp EWA với chấm công, payroll và ERP"
metaDescription: "Hướng dẫn dữ liệu và kiến trúc tích hợp EWA với chấm công, payroll, ERP: API/file batch, định danh, chống trùng, đối soát, xử lý lỗi và UAT."
excerpt: "EWA chỉ tính đúng hạn mức khi dữ liệu nhân viên, công đã duyệt, lương, khấu trừ và giao dịch được kết nối theo một mã định danh thống nhất, có phiên bản, trạng thái và khả năng truy vết."
---
# Tích hợp EWA với chấm công, payroll và ERP cần dữ liệu gì?
Để tích hợp EWA với chấm công, payroll và ERP, doanh nghiệp cần tối thiểu năm nhóm dữ liệu: hồ sơ nhân viên, công đã được duyệt, kỳ và quy tắc tính lương, các khoản điều chỉnh hoặc khấu trừ, và giao dịch nhận lương sớm. Tất cả phải dùng một mã nhân viên thống nhất, có trạng thái, thời điểm cập nhật, phiên bản dữ liệu và nhật ký truy vết. Kiến trúc tốt không chỉ truyền dữ liệu nhanh mà còn phải ngăn chi trả trùng, xử lý được dữ liệu sửa muộn và đối soát đến từng giao dịch.
> **Lưu ý:** Bài viết trình bày kiến trúc tham khảo cho một hệ thống Ngô Nhã Kỳ(/tin-tuc/earned-wage-access-ewa-la-gi). Tên trường, trạng thái, luồng phê duyệt và cách hạch toán thực tế cần được Nhân Kiệt cùng doanh nghiệp xác nhận trong giai đoạn khảo sát tích hợp.
> **Giải thích thuật ngữ:** EWA (nhận lương theo ngày công đã làm) · HRIS/HRM (hệ thống thông tin nhân sự) · ERP (hệ thống hoạch định nguồn lực doanh nghiệp) · payroll (tính lương) · API (giao diện kết nối phần mềm) · batch (xử lý theo lô) · SFTP (truyền file bảo mật) · idempotency (chống lặp: gửi lại nhiều lần chỉ tạo một kết quả) · UAT (kiểm thử nghiệm thu) · go-live (đưa vào vận hành chính thức) · rollback (quay lui) · webhook/callback (thông báo tự động giữa các hệ thống) · token (mã thay thế dữ liệu gốc) · data dictionary (từ điển dữ liệu) · system of record (nguồn dữ liệu chuẩn) · retry (thử lại) · timeout (hết thời gian chờ).
## Vì sao EWA phải kết nối đồng thời với chấm công, payroll và ERP?
EWA cần trả lời ba câu hỏi trước khi cho phép một người lao động nhận tiền:
1. Người này có đang làm việc và thuộc chương trình hay không?
2. Đến thời điểm hiện tại, họ đã tạo ra bao nhiêu tiền lương đủ điều kiện?
3. Sau các giao dịch trước đó và những khoản cần giữ lại, số tiền còn có thể nhận là bao nhiêu?
Hệ thống nhân sự thường xác nhận danh tính và tình trạng làm việc. Hệ thống chấm công ghi nhận số công hoặc số giờ đã làm. Payroll nắm quy tắc lương, kỳ lương và các khoản điều chỉnh. ERP hoặc hệ thống kế toán phục vụ ghi nhận, đối soát và quyết toán. Hệ thống thanh toán cung cấp trạng thái chuyển tiền cuối cùng.
Nếu chỉ kết nối một nguồn, EWA có thể thấy người lao động nhưng không biết số công đã được duyệt; hoặc thấy công nhưng không biết kỳ lương đã khóa; hoặc đã chuyển tiền nhưng payroll chưa nhận được giao dịch để đối soát. Vì vậy, điểm quan trọng nhất không phải là “kết nối được API”, mà là thiết lập được một chuỗi dữ liệu nhất quán từ công đã làm đến giao dịch đã quyết toán.
## 1. Kiến trúc dữ liệu tổng thể
Một kiến trúc tham khảo có thể được tổ chức như sau:
```mermaid
flowchart TD
A["HRIS: nhân viên"] --> D["Lớp tích hợp"]
B["Chấm công: công đã duyệt"] --> D
C["Payroll: kỳ lương và quy tắc"] --> D
D --> E["Bộ máy tính hạn mức EWA"]
E --> F["Ứng dụng EWA"]
F --> G["Hệ thống thanh toán"]
G --> H["Đối soát payroll, ERP và kế toán"]
H --> E
```
> 🖼 **Hình ảnh:** Sơ đồ luồng tích hợp — HRIS/chấm công/payroll → lớp tích hợp → EWA → thanh toán → ERP/đối soát. *(alt: "Sơ đồ tích hợp EWA với chấm công payroll ERP và hệ thống thanh toán")*
Mỗi miền dữ liệu nên có **một nguồn dữ liệu chuẩn** (system of record). Không nên để HRIS, payroll và EWA cùng sửa một thuộc tính theo ba cách khác nhau.
| Miền dữ liệu | Nguồn dữ liệu chuẩn đề xuất | Vai trò trong EWA |
|---|---|---|
| Hồ sơ và trạng thái nhân viên | HRIS/HRM | Xác định danh tính, đơn vị, tình trạng làm việc và điều kiện tham gia |
| Công, ca và giờ làm | Hệ thống chấm công | Xác định phần công đã hoàn thành và đã được duyệt |
| Kỳ lương, mức lương, mã thu nhập/khấu trừ | Payroll | Tính số tiền đủ điều kiện và phục vụ quyết toán kỳ lương |
| Giao dịch nhận lương sớm | Nền tảng EWA | Quản lý yêu cầu, hạn mức, phí (nếu có) và lịch sử trạng thái |
| Kết quả chuyển tiền | Ngân hàng/đối tác thanh toán | Xác nhận thành công, thất bại, chưa rõ kết quả hoặc hoàn trả |
| Bút toán và đối soát | ERP/kế toán | Đối chiếu số tiền, công nợ và hồ sơ quyết toán |
## 2. Danh mục dữ liệu nhân viên tối thiểu
> 🖼 **Hình ảnh:** Năm nhóm dữ liệu và nguồn sở hữu — nhân viên, công, lương, giao dịch, thanh toán, kế toán. *(alt: "Các nhóm dữ liệu cần thiết để tích hợp EWA")*
Không nên đồng bộ toàn bộ hồ sơ nhân sự chỉ vì “có thể cần”. Nguyên tắc phù hợp là thu thập và truyền đúng dữ liệu cần thiết cho mục đích đã xác định.
| Trường dữ liệu | Mục đích | Yêu cầu khuyến nghị |
|---|---|---|
| `employee_id` | Khóa định danh xuyên hệ thống | Bắt buộc, duy nhất, không tái sử dụng |
| `employer_id` / `legal_entity_id` | Phân biệt doanh nghiệp và pháp nhân | Bắt buộc với hệ thống đa doanh nghiệp |
| `payroll_group` | Ánh xạ lịch và quy tắc trả lương | Bắt buộc nếu có nhiều nhóm lương |
| `employment_status` | Kiểm tra đang làm việc, tạm nghỉ hoặc đã nghỉ | Bắt buộc, có ngày hiệu lực |
| `effective_from`, `effective_to` | Xác định thời gian hiệu lực | Bắt buộc với thay đổi trạng thái |
| `worksite_id` / `department_id` | Áp dụng chính sách theo đơn vị | Chỉ truyền nếu chính sách sử dụng |
| `ewa_eligibility` | Xác định thuộc chương trình | Bắt buộc hoặc suy ra bằng quy tắc đã thống nhất |
| `bank_account_token` | Chuyển tiền mà hạn chế phát tán dữ liệu tài khoản | Ưu tiên token hoặc dữ liệu che bớt ngoài miền thanh toán |
| `consent_version`, `accepted_at` | Lưu dấu phiên bản điều khoản/chấp thuận | Áp dụng theo quy trình pháp lý được phê duyệt |
| `source_updated_at`, `record_version` | Phát hiện dữ liệu cũ hoặc cập nhật sai thứ tự | Bắt buộc để kiểm soát đồng bộ |
Số tài khoản đầy đủ chỉ nên tồn tại trong miền thực sự cần dùng để thanh toán, được phân quyền và bảo vệ phù hợp. Môi trường thử nghiệm nên dùng dữ liệu giả hoặc đã che giấu, không sao chép nguyên dữ liệu sản xuất.
## 3. Dữ liệu chấm công và trạng thái duyệt
EWA không nên chỉ nhận một con số “tổng công tháng”. Hệ thống cần đủ thông tin để biết dữ liệu nào đã được xác nhận và dữ liệu nào còn có thể thay đổi.
Các trường thường cần gồm:
- `employee_id`: mã nhân viên thống nhất;
- `work_date`: ngày làm việc;
- `shift_id`: mã ca, nếu doanh nghiệp quản lý theo ca;
- `regular_hours`, `overtime_hours`: giờ công thường và giờ làm thêm;
- `attendance_status`: có mặt, nghỉ phép, vắng mặt hoặc trạng thái tương ứng;
- `approval_status`: chờ duyệt, đã duyệt, từ chối, điều chỉnh hoặc khóa;
- `approved_by`, `approved_at`: người và thời điểm duyệt nếu chính sách yêu cầu;
- `source_updated_at`, `record_version`: thời điểm và phiên bản bản ghi;
- `source_system`: hệ thống phát sinh dữ liệu.
### Vì sao trạng thái “đã duyệt” quan trọng?
Một lượt quẹt thẻ chưa chắc đã là công hợp lệ. Nhân viên có thể quên chấm ra, đăng ký sai ca hoặc có điều chỉnh sau khi quản lý duyệt. Doanh nghiệp cần thống nhất rõ trạng thái nào được tính vào hạn mức EWA (xem [Công đã duyệt là gì?](/tin-tuc/cong-da-duyet-la-gi)).
Ví dụ về một bản ghi minh họa:
```json
{
"employee_id": "EMP-000123",
"work_date": "2026-08-18",
"shift_id": "SHIFT-A",
"regular_hours": 8,
"overtime_hours": 0,
"approval_status": "APPROVED",
"source_updated_at": "2026-08-19T02:15:30Z",
"record_version": 3
}
```
Đây chỉ là mẫu dữ liệu an toàn để minh họa, không phải đặc tả API chính thức của Lương Ngày.
## 4. Dữ liệu lương và khoản điều chỉnh
Dữ liệu payroll giúp chuyển “công đã duyệt” thành “phần tiền lương đủ điều kiện”. Bộ dữ liệu thường bao gồm:
- mã kỳ lương `pay_period_id` và thời gian bắt đầu, kết thúc;
- nhóm lương và chu kỳ trả lương;
- cơ sở tính lương hoặc đơn giá cần thiết cho công thức đã thống nhất;
- mã khoản thu nhập `earning_code`;
- các khoản điều chỉnh, tạm giữ hoặc khấu trừ có liên quan;
- ngày chốt công và thời điểm khóa bảng lương;
- trạng thái kỳ lương: mở, đang xử lý, đã khóa hoặc đã quyết toán;
- đơn vị tiền tệ và quy tắc làm tròn;
- phiên bản công thức/chính sách được áp dụng.
Không phải mọi thành phần trên phiếu lương đều được tính vào hạn mức EWA. Lương cơ bản, phụ cấp, làm thêm giờ, thưởng hay hoa hồng có mức độ chắc chắn và thời điểm phê duyệt khác nhau. Doanh nghiệp phải lập một bảng quy tắc chỉ rõ khoản nào được tính, tính từ trạng thái nào và bị giới hạn ra sao.
### Bảng quy tắc nên có những cột gì?
| Mã khoản | Tên khoản | Được tính vào EWA? | Trạng thái đủ điều kiện | Công thức | Trần áp dụng | Chủ sở hữu phê duyệt |
|---|---|---:|---|---|---|---|
| BASIC | Lương theo công | Có/Không | Công đã duyệt | Theo chính sách | Theo chính sách | Payroll |
| OT | Làm thêm giờ | Có/Không | OT đã duyệt | Theo chính sách | Theo chính sách | HR/Payroll |
| BONUS | Thưởng | Có/Không | Quyết định đã phê duyệt | Theo chính sách | Theo chính sách | HR/Finance |
Các giá trị thực tế trong bảng này phải do doanh nghiệp và đơn vị triển khai xác nhận. Không nên suy đoán từ tên khoản lương.
## 5. Dữ liệu giao dịch nhận lương sớm
> 🖼 **Hình ảnh:** Vòng đời giao dịch — tạo yêu cầu → xác minh → xử lý → thành công/thất bại → tra soát → đối soát. *(alt: "Vòng đời giao dịch nhận lương sớm có chống trùng và đối soát")*
Mỗi yêu cầu nhận lương sớm cần là một giao dịch có thể truy vết độc lập.
| Trường | Ý nghĩa |
|---|---|
| `transaction_id` | Mã giao dịch duy nhất trong hệ thống EWA |
| `idempotency_key` | Khóa chống tạo giao dịch mới khi cùng một yêu cầu được gửi lại |
| `employee_id` | Nhân viên thực hiện giao dịch |
| `pay_period_id` | Kỳ lương liên quan |
| `requested_amount` | Số tiền người lao động yêu cầu |
| `fee_amount` | Phí, nếu chính sách có áp dụng và đã được công bố |
| `net_disbursed_amount` | Số tiền thực chuyển |
| `limit_before`, `limit_after` | Hạn mức trước và sau giao dịch |
| `status` | Trạng thái xử lý hiện tại |
| `payment_reference` | Mã tham chiếu với đơn vị thanh toán |
| `created_at`, `processed_at`, `completed_at` | Các mốc thời gian phục vụ truy vết |
| `source_data_version` | Phiên bản dữ liệu dùng để tính hạn mức |
Một vòng đời giao dịch tham khảo gồm: `CREATED` → `VALIDATING` → `PROCESSING` → `SUCCEEDED` hoặc `FAILED`. Nếu chưa xác định được kết quả thanh toán, giao dịch nên ở trạng thái `UNKNOWN` hoặc tương đương để tra soát; không được mặc định thất bại rồi tự động chuyển tiền lần nữa. Hệ thống cũng cần trạng thái hoàn trả và đã đối soát khi nghiệp vụ phát sinh.
## 6. Chọn API, file batch hay đồng bộ thủ công?
Không có một phương thức phù hợp cho mọi doanh nghiệp. Có thể kết hợp nhiều cách theo độ trưởng thành của từng hệ thống.
| Phương thức | Phù hợp khi | Ưu điểm | Điểm cần kiểm soát |
|---|---|---|---|
| API gần thời gian thực | Chấm công và payroll đã có API ổn định | Dữ liệu mới nhanh, dễ phản hồi trạng thái | Xác thực, giới hạn tải, phiên bản API, timeout và retry |
| File batch qua SFTP | Hệ thống cũ, dữ liệu được chốt theo lịch | Dễ triển khai, phù hợp khối lượng lớn | Tên file, mã hóa, checksum, thứ tự file, bản ghi trùng và file lỗi một phần |
| Đồng bộ thủ công có kiểm soát | Pilot nhỏ hoặc giai đoạn chuyển tiếp | Khởi động nhanh, dễ kiểm tra nghiệp vụ | Phân quyền, biểu mẫu chuẩn, nhật ký, kiểm tra hai lớp và nguy cơ sai sót con người |
Nếu dùng HTTP API, doanh nghiệp có thể mô tả hợp đồng tích hợp bằng OpenAPI Specification để hai bên thống nhất endpoint, cấu trúc dữ liệu và phản hồi. OpenAPI là tiêu chuẩn mô tả API HTTP; đây là lựa chọn kỹ thuật hữu ích, không phải điều kiện bắt buộc để triển khai EWA.
## 7. Định danh và chống dữ liệu trùng
Sai định danh là một trong những [rủi ro](/tin-tuc/rui-ro-khi-trien-khai-ewa) nguy hiểm nhất. Email, số điện thoại hoặc số tài khoản có thể thay đổi, nên không phù hợp làm khóa nhân viên chính.
Khuyến nghị:
- dùng `employee_id` bất biến trong phạm vi một doanh nghiệp;
- kết hợp với `employer_id` hoặc `legal_entity_id` nếu nền tảng phục vụ nhiều đơn vị;
- không tái sử dụng mã của người đã nghỉ cho người mới;
- duy trì bảng ánh xạ khi HRIS và payroll đang dùng hai bộ mã khác nhau;
- ghi nhận ngày hiệu lực cho các thay đổi về nhóm lương, đơn vị và trạng thái làm việc;
- kiểm tra trùng theo khóa nghiệp vụ, không chỉ theo nội dung giống nhau.
Với file batch, mỗi file nên có mã lô, thời điểm tạo, tổng số bản ghi và checksum. Với API, mỗi yêu cầu tạo giao dịch nên có `idempotency_key`.
## 8. Idempotency và đối soát: hai lớp bảo vệ khác nhau
**Idempotency** giúp một yêu cầu được gửi lại nhiều lần nhưng chỉ tạo ra một kết quả nghiệp vụ. Ví dụ, ứng dụng bị timeout sau khi gửi lệnh chuyển tiền. Khi gửi lại cùng `idempotency_key`, hệ thống phải trả về giao dịch cũ hoặc trạng thái của nó, thay vì tạo thêm một lần chi trả.
**Đối soát** kiểm tra các hệ thống có cùng ghi nhận một giao dịch hay không (gắn với [quy trình Lương Ngày từ chấm công đến đối soát](/tin-tuc/quy-trinh-luong-ngay-tu-cham-cong-den-doi-soat)). Một mô hình phù hợp là đối soát ba chiều:
1. giao dịch trong nền tảng EWA;
2. kết quả từ ngân hàng hoặc đơn vị thanh toán;
3. dữ liệu payroll/ERP hoặc hồ sơ quyết toán đã được phê duyệt.
Báo cáo đối soát nên chỉ ra ít nhất:
- giao dịch khớp hoàn toàn;
- có trong EWA nhưng chưa có kết quả thanh toán;
- có kết quả thanh toán nhưng thiếu trong payroll/ERP;
- lệch số tiền, phí, người nhận hoặc kỳ lương;
- giao dịch hoàn trả nhưng chưa cập nhật;
- bản ghi trùng hoặc cập nhật sai thứ tự.
Mỗi chênh lệch cần có người phụ trách, trạng thái xử lý và bằng chứng đóng lỗi.
## 9. Xử lý lỗi, retry và cảnh báo
Không phải lỗi nào cũng nên thử lại tự động.
| Nhóm lỗi | Ví dụ | Cách xử lý đề xuất |
|---|---|---|
| Lỗi dữ liệu | Thiếu mã nhân viên, sai kỳ lương | Từ chối bản ghi, trả mã lỗi rõ ràng, yêu cầu sửa nguồn |
| Lỗi nghiệp vụ | Nhân viên không đủ điều kiện, kỳ lương đã khóa | Không retry tự động; hiển thị lý do phù hợp và lưu nhật ký |
| Lỗi tạm thời | Mạng gián đoạn, dịch vụ quá tải | Retry có giới hạn và giãn cách; giữ nguyên khóa chống trùng |
| Kết quả chưa rõ | Timeout sau khi gửi lệnh thanh toán | Chuyển trạng thái chờ tra soát; truy vấn trạng thái trước mọi lần gửi lại |
| Lỗi vĩnh viễn | Tài khoản nhận không hợp lệ, xác thực thất bại | Dừng xử lý, cảnh báo đúng đội phụ trách và yêu cầu can thiệp |
Mọi request nên có `correlation_id` để truy vết xuyên hệ thống. Cảnh báo cần chứa mã giao dịch, loại lỗi, thời điểm, hệ thống nguồn và bước xử lý tiếp theo, nhưng không đưa mật khẩu, khóa API hoặc dữ liệu nhạy cảm đầy đủ vào log.
## 10. Mẫu yêu cầu API minh họa
```json
{
"idempotency_key": "ewa-demo-20260818-0001",
"employee_id": "EMP-000123",
"pay_period_id": "2026-08",
"requested_amount": 1000000,
"currency": "VND",
"source_data_version": "attendance-v18_payroll-v6",
"requested_at": "2026-08-18T09:20:00+07:00"
}
```
Phản hồi nên cho biết yêu cầu được chấp nhận, bị từ chối hay cần xử lý thêm; đồng thời trả `transaction_id`, trạng thái, mã lý do và `correlation_id`. Không nên trả dữ liệu tài khoản đầy đủ hoặc thông tin không cần thiết.
Đặc tả API nên quy định rõ:
- phương thức xác thực và phân quyền;
- phiên bản API và chính sách thay đổi;
- định dạng ngày giờ, múi giờ và đơn vị tiền tệ;
- độ chính xác của số tiền và quy tắc làm tròn;
- danh mục mã lỗi;
- timeout và chính sách retry;
- chữ ký/xác minh callback hoặc webhook;
- giới hạn tải;
- quy tắc idempotency;
- thời gian lưu trạng thái và nhật ký.
## 11. Bảo mật và bảo vệ dữ liệu ngay từ thiết kế
Dữ liệu nhân viên, lương, tài khoản nhận tiền và lịch sử giao dịch có mức độ nhạy cảm cao. Thiết kế tích hợp nên bao gồm:
- phân quyền theo vai trò và nguyên tắc quyền tối thiểu;
- mã hóa dữ liệu khi truyền và khi lưu;
- quản lý bí mật tập trung, không để khóa truy cập trong mã nguồn hoặc log;
- tách môi trường phát triển, thử nghiệm và sản xuất;
- dữ liệu thử nghiệm giả lập hoặc đã che giấu;
- nhật ký truy cập và thay đổi cấu hình;
- thời hạn lưu trữ, quy trình xóa và xử lý yêu cầu của chủ thể dữ liệu;
- đánh giá nhà cung cấp và phạm vi chia sẻ dữ liệu;
- kế hoạch ứng phó, thông báo và điều tra sự cố.
Tại Việt Nam, thiết kế và vận hành cần được bộ phận pháp lý rà soát theo Luật Bảo vệ dữ liệu cá nhân số 91/2025/QH15 và Nghị định 356/2025/NĐ-CP, đều có hiệu lực từ ngày 1/1/2026. Hồ sơ, thông điệp và chứng từ điện tử cũng cần được xem xét trong khuôn khổ Luật Giao dịch điện tử 2023 và quy định chuyên ngành có liên quan.
## 12. Checklist UAT trước khi go-live
UAT không nên chỉ kiểm tra “nhận được file” hoặc “API trả 200” (đưa vào [kế hoạch pilot EWA 90 ngày](/tin-tuc/ke-hoach-pilot-ewa-90-ngay)). Cần thử đủ các tình huống nghiệp vụ và lỗi vận hành.
### Nhân viên và điều kiện tham gia
- [ ] Nhân viên đang làm việc và đủ điều kiện.
- [ ] Nhân viên mới chưa đến ngày hiệu lực.
- [ ] Nhân viên tạm nghỉ hoặc đã nghỉ việc.
- [ ] Nhân viên chuyển pháp nhân, nhóm lương hoặc mã nhân viên.
- [ ] Thay đổi tài khoản nhận tiền theo đúng luồng xác minh.
### Chấm công và hạn mức
- [ ] Công đang chờ duyệt không được tính nếu chính sách yêu cầu công đã duyệt.
- [ ] Công được duyệt làm hạn mức thay đổi đúng.
- [ ] Công bị sửa hoặc thu hồi sau khi duyệt được tính lại đúng.
- [ ] Dữ liệu cũ đến sau dữ liệu mới không ghi đè sai phiên bản.
- [ ] Ngày chốt công, múi giờ và ca qua đêm được xử lý đúng.
### Giao dịch và thanh toán
- [ ] Gửi lặp cùng `idempotency_key` không tạo hai giao dịch.
- [ ] Không đủ hạn mức trả về lý do chính xác.
- [ ] Hệ thống thanh toán timeout và kết quả chưa rõ không gây chuyển tiền lần hai.
- [ ] Giao dịch thất bại, hoàn trả và đảo trạng thái được cập nhật đúng.
- [ ] Hạn mức trước và sau giao dịch khớp với sổ giao dịch.
### File batch và API
- [ ] File trùng, file sai thứ tự và bản ghi trùng được phát hiện.
- [ ] Một số bản ghi lỗi không làm mất dấu các bản ghi đã xử lý.
- [ ] API hết hạn xác thực, thiếu quyền và vượt giới hạn tải trả lỗi đúng.
- [ ] Callback giả mạo hoặc sai chữ ký bị từ chối.
- [ ] Retry tuân thủ giới hạn và giữ nguyên khóa chống trùng.
### Payroll, ERP và đối soát
- [ ] Kỳ lương mở, khóa và đã quyết toán được xử lý đúng.
- [ ] Giao dịch EWA được đưa vào hồ sơ đối soát kỳ lương theo quy trình đã phê duyệt.
- [ ] Ba nguồn EWA – thanh toán – payroll/ERP khớp số tiền và trạng thái.
- [ ] Chênh lệch tạo cảnh báo và có luồng xử lý đến khi đóng.
- [ ] Báo cáo có thể truy ngược từ bút toán đến giao dịch và dữ liệu nguồn.
### Bảo mật và vận hành
- [ ] Người không có quyền không xem hoặc sửa được dữ liệu.
- [ ] Log không chứa bí mật hoặc dữ liệu nhạy cảm đầy đủ.
- [ ] Khóa truy cập có thể luân chuyển mà không gián đoạn kéo dài.
- [ ] Có người trực, kênh cảnh báo và quy trình xử lý sự cố.
- [ ] Có kế hoạch quay lui nếu go-live gặp lỗi nghiêm trọng.
## 13. Hồ sơ kỹ thuật hai bên cần chốt trước triển khai
Một bộ hồ sơ tích hợp tối thiểu nên có:
1. sơ đồ kiến trúc và ranh giới trách nhiệm;
2. data dictionary cho từng trường;
3. bảng ánh xạ mã nhân viên, kỳ lương, đơn vị và mã khoản;
4. đặc tả API hoặc đặc tả file;
5. danh mục trạng thái và mã lỗi;
6. quy tắc tính hạn mức đã được phê duyệt;
7. quy tắc chống trùng, retry và xử lý dữ liệu đến muộn;
8. luồng đối soát và mẫu báo cáo chênh lệch;
9. ma trận phân quyền và yêu cầu bảo mật;
10. kế hoạch UAT, cutover, rollback và hỗ trợ sau go-live.
Các bên cũng nên thực hiện kiểm thử hợp đồng dữ liệu. Khi một hệ thống đổi tên trường, kiểu dữ liệu, danh mục trạng thái hoặc ý nghĩa nghiệp vụ, pipeline phải cảnh báo trước khi thay đổi gây sai hạn mức ngoài môi trường sản xuất.
<!-- MỤC CHỜ NHÂN KIỆT HOÀN THIỆN (ẩn khi đăng) — dữ liệu Product/IT cần xác nhận để phản ánh đúng năng lực tích hợp thực tế; không công bố tên đối tác/SLA/tính năng khi chưa có tài liệu.
## 14. Những dữ liệu Nhân Kiệt cần bổ sung trước khi xuất bản bản chính thức
Để bài viết phản ánh đúng năng lực thực tế của Lương Ngày, đội Product/IT cần xác nhận:
- các hệ thống chấm công, payroll hoặc ERP đang hỗ trợ;
- phương thức tích hợp hiện có: API, SFTP, file mẫu hoặc phương thức khác;
- chu kỳ đồng bộ và cam kết dịch vụ thực tế;
- danh sách endpoint, trường dữ liệu, trạng thái và mã lỗi được phép công khai;
- cơ chế xác thực, idempotency, webhook và đối soát đang sử dụng;
- luồng xử lý giao dịch chưa rõ kết quả, thất bại và hoàn trả;
- quy tắc tính hạn mức và các thành phần lương đủ điều kiện;
- mẫu báo cáo kỹ thuật đã loại bỏ dữ liệu cá nhân;
- trách nhiệm của Nhân Kiệt, doanh nghiệp và đối tác thanh toán;
- đầu mối tiếp nhận tài liệu tích hợp và hỗ trợ UAT.
Không nên công bố tên đối tác, thời gian xử lý, SLA hoặc tính năng kỹ thuật khi chưa có xác nhận bằng tài liệu.
-->
## Câu hỏi thường gặp
### EWA có bắt buộc phải tích hợp thời gian thực không?
Không. Doanh nghiệp có thể dùng API gần thời gian thực, file batch theo lịch hoặc quy trình thủ công có kiểm soát trong pilot. Tần suất cần phù hợp với cách tính hạn mức, tốc độ thay đổi của dữ liệu và khả năng vận hành của các hệ thống nguồn.
### Chỉ có dữ liệu chấm công thì đã tính được hạn mức EWA chưa?
Thông thường là chưa đủ. Cần thêm trạng thái nhân viên, kỳ lương, quy tắc tính lương, các khoản điều chỉnh liên quan và lịch sử giao dịch EWA. Công đã ghi nhận cũng cần có trạng thái duyệt rõ ràng.
### Vì sao phải dùng cùng một mã nhân viên?
Một định danh thống nhất giúp tránh gắn công, lương hoặc giao dịch của người này sang người khác. Nếu các hệ thống đang dùng mã khác nhau, doanh nghiệp cần bảng ánh xạ có kiểm soát và ngày hiệu lực.
### Idempotency có giống kiểm tra giao dịch trùng không?
Có liên quan nhưng không hoàn toàn giống nhau. Idempotency bảo đảm việc gửi lại cùng một yêu cầu không tạo kết quả nghiệp vụ mới. Kiểm tra trùng còn có thể dùng các khóa nghiệp vụ khác để phát hiện hai yêu cầu khác mã nhưng thực chất là một giao dịch.
### Khi lệnh chuyển tiền bị timeout, có nên gửi lại ngay không?
Không nên gửi lại một lệnh thanh toán mới khi chưa xác định kết quả của lệnh cũ. Hệ thống cần giữ trạng thái chưa rõ, tra cứu theo mã tham chiếu và chỉ xử lý tiếp theo quy trình đã định để tránh chi trả hai lần.
### Ai chịu trách nhiệm đối soát EWA?
Trách nhiệm phải được quy định trong ma trận vận hành. Thông thường sẽ có sự tham gia của đơn vị vận hành EWA, payroll, kế toán/tài chính, IT và đối tác thanh toán. Mỗi loại chênh lệch cần một chủ sở hữu cụ thể.
## Kết luận
Tích hợp EWA không phải là kéo một file chấm công rồi tính tỷ lệ phần trăm. Một hệ thống đáng tin cậy cần dữ liệu nhân viên, công đã duyệt, quy tắc payroll và giao dịch được liên kết bằng định danh thống nhất; đồng thời có phiên bản dữ liệu, idempotency, trạng thái thanh toán, đối soát và quy trình xử lý lỗi.
Nếu doanh nghiệp đang đánh giá khả năng kết nối Lương Ngày với hệ thống chấm công, payroll hoặc ERP hiện có, hãy chuẩn bị sơ đồ hệ thống, một data dictionary đã ẩn dữ liệu cá nhân và các tình huống nghiệp vụ cần hỗ trợ, rồi tìm hiểu [Lương Ngày cho doanh nghiệp](/san-pham) để trao đổi về tài liệu tích hợp kỹ thuật và phạm vi pilot phù hợp.
## Nguồn tham khảo
- [OpenAPI Initiative – OpenAPI Specification](https://www.openapis.org/)
- [OpenAPI Specification trên GitHub](https://github.com/OAI/OpenAPI-Specification)
- [Luật Bảo vệ dữ liệu cá nhân số 91/2025/QH15](https://vanban.chinhphu.vn/?classid=1&docid=214590&pageid=27160&typegroupid=3)
- [Nghị định 356/2025/NĐ-CP hướng dẫn Luật Bảo vệ dữ liệu cá nhân](https://vanban.chinhphu.vn/?docid=216387&pageid=27160)
- [Luật Giao dịch điện tử số 20/2023/QH15](https://vanban.chinhphu.vn/?docid=208421&pageid=27160)
---
**Tác giả:** Ngô Nhã Kỳ — Biên tập viên, Công ty TNHH Cung Ứng Nhân Lực Nhân Kiệt.
**Tư vấn giải pháp Lương Ngày cho doanh nghiệp:** Hotline **0937.022.655** · Email **info@nhankiet.vn** · Ngô Nhã Kỳ(/san-pham)](https://vnixunzqh6k7l9io.public.blob.vercel-storage.com/uploads/img-5hSiyDk7153VRISBZgzzYtSooChD7G.webp)
각 데이터 도메인은 하나의 표준 데이터 소스(system of record)를 가져야 합니다. HRIS, 급여 및 일당 선지급이 동일한 속성을 세 가지 다른 방식으로 수정하지 않도록 해야 합니다.
데이터 도메인 | 제안된 표준 데이터 소스 | 일당 선지급에서의 역할 |
|---|---|---|
직원 프로필 및 상태 | HRIS/HRM | 신원, 부서, 근무 상태 및 참여 조건 확인 |
근무, 교대 및 근무 시간 | 출퇴근 기록 시스템 | 완료되고 승인된 근무 확인 |
급여 기간, 급여 수준, 수입/공제 코드 | 급여 | 적격 금액 계산 및 급여 기간 결산 지원 |
조기 급여 수령 거래 | 일당 선지급 플랫폼 | 요청, 한도, 수수료(있을 경우) 및 상태 기록 관리 |
송금 결과 | 은행/결제 파트너 | 성공, 실패, 불확실한 결과 또는 반환 확인 |
회계 및 대조 | ERP/회계 | 금액, 채무 및 결산 기록 대조 |
2. 최소 직원 데이터 목록

'필요할 수 있다'는 이유로 전체 인사 프로필을 동기화하지 않는 것이 좋습니다. 적절한 원칙은 이미 정의된 목적을 위해 필요한 데이터를 정확히 수집하고 전송하는 것입니다.
데이터 필드 | 목적 | 권장 요구 사항 |
|---|---|---|
| 시스템 간 식별 키 | 필수, 고유, 재사용 불가 |
| 기업 및 법인 구분 | 다중 기업 시스템에 필수 |
| 급여 일정 및 규칙 매핑 | 여러 급여 그룹이 있는 경우 필수 |
| 근무 중, 휴직 중 또는 퇴직 여부 확인 | 필수, 유효 날짜 포함 |
| 유효 기간 확인 | 상태 변경 시 필수 |
| 부서별 정책 적용 | 정책 사용 시에만 전송 |
| 프로그램 참여 여부 확인 | 필수 또는 합의된 규칙에 따라 추론 |
| 계좌 데이터 확산 제한 송금 | 결제 영역 외부에서 토큰 또는 마스킹된 데이터 우선 |
| 약관/동의 버전 기록 | 승인된 법적 절차에 따라 적용 |
| 오래된 데이터 또는 잘못된 순서 업데이트 감지 | 동기화 제어에 필수 |
전체 계좌 번호는 실제로 결제가 필요한 영역에서만 존재해야 하며, 적절히 권한이 부여되고 보호되어야 합니다. 테스트 환경에서는 가상 또는 마스킹된 데이터를 사용하고, 실제 데이터를 복사하지 않아야 합니다.
3. 출퇴근 기록 데이터 및 승인 상태
일당 선지급은 단순히 '월 총 근무 시간'이라는 숫자만 받지 않아야 합니다. 시스템은 어떤 데이터가 확인되었고 어떤 데이터가 변경될 수 있는지 충분히 알아야 합니다.
필요한 필드에는 다음이 포함됩니다:
employee_id: 통일된 직원 코드;work_date: 근무 날짜;shift_id: 교대 코드, 기업이 교대 근무를 관리하는 경우;regularhours,overtimehours: 정규 근무 시간 및 초과 근무 시간;attendance_status: 출석, 휴가, 결근 또는 해당 상태;approval_status: 승인 대기, 승인됨, 거부됨, 조정됨 또는 잠금;approvedby,approvedat: 정책 요구 시 승인자 및 승인 시점;sourceupdatedat,record_version: 기록 시점 및 버전;source_system: 데이터가 생성된 시스템.
왜 '승인됨' 상태가 중요한가요?
카드 스와이프 한 번이 유효한 근무를 의미하지 않을 수 있습니다. 직원이 퇴근 체크를 잊거나, 잘못된 교대를 등록하거나, 관리자가 승인한 후 조정이 있을 수 있습니다. 기업은 어떤 상태가 일당 선지급 한도에 포함되는지 명확히 합의해야 합니다 (참조: 승인된 근무란 무엇인가요?).
예시 기록:
{
"employee_id": "EMP-000123",
"work_date": "2026-08-18",
"shift_id": "SHIFT-A",
"regular_hours": 8,
"overtime_hours": 0,
"approval_status": "APPROVED",
"source_updated_at": "2026-08-19T02:15:30Z",
"record_version": 3
}이것은 안전한 데이터 예시일 뿐이며, 일당 선지급의 공식 API 사양이 아닙니다.
4. 급여 데이터 및 조정 항목
급여 데이터는 '승인된 근무'를 '적격 급여 부분'으로 전환하는 데 도움을 줍니다. 데이터 세트에는 보통 다음이 포함됩니다:
급여 기간 코드
payperiodid및 시작, 종료 시간;급여 그룹 및 급여 주기;
합의된 공식에 필요한 급여 계산 기준 또는 단가;
수입 코드
earning_code;관련 조정, 보류 또는 공제 항목;
근무 마감일 및 급여 테이블 잠금 시점;
급여 기간 상태: 열림, 처리 중, 잠김 또는 결산됨;
통화 단위 및 반올림 규칙;
적용된 공식/정책 버전.
급여 명세서의 모든 구성 요소가 일당 선지급 한도에 포함되는 것은 아닙니다. 기본 급여, 수당, 초과 근무, 보너스 또는 커미션은 확실성과 승인 시점이 다릅니다. 기업은 어떤 항목이 포함되고, 어떤 상태에서 계산되며, 어떻게 제한되는지를 명확히 규정해야 합니다.
규칙 표에 포함해야 할 열은 무엇인가요?
항목 코드 | 항목 이름 | 일당 선지급에 포함? | 적격 상태 | 공식 | 적용 상한 | 승인 소유자 |
|---|---|---|---|---|---|---|
BASIC | 근무에 따른 급여 | 예/아니오 | 승인된 근무 | 정책에 따름 | 정책에 따름 | 급여 |
OT | 초과 근무 | 예/아니오 | 승인된 OT | 정책에 따름 | 정책에 따름 | HR/급여 |
BONUS | 보너스 | 예/아니오 | 승인된 결정 | 정책에 따름 | 정책에 따름 | HR/재무 |
이 표의 실제 값은 기업과 구현 단위가 확인해야 합니다. 급여 항목 이름만으로 추측해서는 안 됩니다.
5. 조기 급여 수령 거래 데이터

각 조기 급여 수령 요청은 독립적으로 추적 가능한 거래여야 합니다.
필드 | 의미 |
|---|---|
| 일당 선지급 시스템 내 고유 거래 코드 |
| 동일한 요청이 여러 번 전송될 때 새 거래 생성 방지 키 |
| 거래를 수행한 직원 |
| 관련 급여 기간 |
| 근로자가 요청한 금액 |
| 정책에 따라 적용된 수수료(있을 경우) |
| 실제 송금 금액 |
| 거래 전후 한도 |
| 현재 처리 상태 |
| 결제 단위와의 참조 코드 |
| 추적에 필요한 시간 지표 |
| 한도 계산에 사용된 데이터 버전 |
참조 거래 수명 주기는 다음과 같습니다: CREATED → VALIDATING → PROCESSING → SUCCEEDED 또는 FAILED. 결제 결과가 확인되지 않은 경우, 거래는 UNKNOWN 또는 이에 상응하는 상태에 있어야 하며, 자동으로 실패로 간주하고 다시 송금해서는 안 됩니다. 시스템은 거래 반환 및 대조가 발생할 때 필요한 상태도 필요합니다.
6. API, 파일 배치 또는 수동 동기화 선택?
모든 기업에 적합한 방법은 없습니다. 각 시스템의 성숙도에 따라 여러 방법을 결합할 수 있습니다.
방법 | 적합한 경우 | 장점 | 제어할 점 |
|---|---|---|---|
실시간 API | 출퇴근 기록 및 급여에 안정적인 API가 있는 경우 | 최신 데이터, 상태 피드백 용이 | 인증, 부하 제한, API 버전, 시간 초과 및 재시도 |
SFTP를 통한 파일 배치 | 오래된 시스템, 일정에 따라 데이터가 확정되는 경우 | 대량 처리에 적합, 구현 용이 | 파일 이름, 암호화, 체크섬, 파일 순서, 중복 기록 및 부분 오류 파일 |
통제된 수동 동기화 | 소규모 파일럿 또는 전환 단계 | 빠른 시작, 비즈니스 로직 검증 용이 | 권한 부여, 표준 양식, 로그, 이중 검증 및 인적 오류 위험 |
HTTP API를 사용하는 경우, 기업은 OpenAPI Specification을 사용하여 통합 계약을 설명할 수 있습니다. 이는 엔드포인트, 데이터 구조 및 응답을 양측이 합의할 수 있도록 합니다. OpenAPI는 HTTP API를 설명하는 표준이며, 이는 기술적으로 유용한 선택이지, 일당 선지급 구현의 필수 조건은 아닙니다.
7. 식별 및 중복 데이터 방지
잘못된 식별은 가장 위험한 위험 중 하나입니다. 이메일, 전화번호 또는 계좌번호는 변경될 수 있으므로 주요 직원 키로 적합하지 않습니다.
권장 사항:
employee_id를 기업 내에서 불변으로 사용;여러 단위를 지원하는 플랫폼의 경우
employerid또는legalentity_id와 결합;퇴직자의 코드를 신규 직원에게 재사용하지 않음;
HRIS와 급여가 서로 다른 코드 세트를 사용하는 경우 매핑 테이블 유지;
급여 그룹, 부서 및 근무 상태 변경에 대한 유효 날짜 기록;
비즈니스 키에 따라 중복 검사, 동일한 내용에만 의존하지 않음.
파일 배치의 경우, 각 파일에는 배치 코드, 생성 시점, 총 기록 수 및 체크섬이 있어야 합니다. API의 경우, 각 거래 생성 요청에는 idempotency_key가 있어야 합니다.
8. Idempotency와 대조: 서로 다른 두 가지 보호 계층
Idempotency는 동일한 요청이 여러 번 전송되더라도 하나의 비즈니스 결과만 생성되도록 합니다. 예를 들어, 애플리케이션이 송금 명령을 보낸 후 시간 초과가 발생한 경우, 동일한 idempotency_key로 다시 전송하면 시스템은 이전 거래 또는 그 상태를 반환해야 하며, 추가 송금을 생성해서는 안 됩니다.
대조는 여러 시스템이 동일한 거래를 기록했는지 확인합니다 (참조: 출퇴근 기록에서 대조까지의 일당 선지급 프로세스). 적절한 모델은 삼자 대조입니다:
일당 선지급 플랫폼 내 거래;
은행 또는 결제 단위의 결과;
승인된 급여/ERP 데이터 또는 결산 기록.
대조 보고서는 최소한 다음을 지적해야 합니다:
완전히 일치하는 거래;
일당 선지급에 있지만 결제 결과가 없는 경우;
결제 결과가 있지만 급여/ERP에 없는 경우;
금액, 수수료, 수령인 또는 급여 기간 불일치;
반환된 거래가 업데이트되지 않은 경우;
중복 기록 또는 잘못된 순서로 업데이트된 경우.
각 차이점에는 담당자, 처리 상태 및 오류 종료 증거가 필요합니다.
9. 오류 처리, 재시도 및 경고
모든 오류가 자동으로 재시도되어야 하는 것은 아닙니다.
오류 그룹 | 예시 | 제안된 처리 방법 |
|---|---|---|
데이터 오류 | 직원 코드 누락, 잘못된 급여 기간 | 기록 거부, 명확한 오류 코드 반환, 소스 수정 요청 |
비즈니스 오류 | 직원이 자격이 없거나 급여 기간이 잠김 | 자동 재시도 없음; 적절한 이유 표시 및 로그 기록 |
일시적 오류 | 네트워크 중단, 서비스 과부하 | 제한 및 간격을 두고 재시도; 중복 방지 키 유지 |
결과 불확실 | 결제 명령 전송 후 시간 초과 | 조사 대기 상태로 전환; 모든 재전송 전에 상태 조회 |
영구 오류 | 수신 계좌가 유효하지 않거나 인증 실패 | 처리 중단, 적절한 팀에 경고 및 개입 요청 |
모든 요청에는 시스템 간 추적을 위한 correlation_id가 있어야 합니다. 경고에는 거래 코드, 오류 유형, 시점, 소스 시스템 및 다음 처리 단계가 포함되어야 하며, 비밀번호, API 키 또는 민감한 데이터 전체를 로그에 포함해서는 안 됩니다.
10. API 요청 예시
{
"idempotency_key": "ewa-demo-20260818-0001",
"employee_id": "EMP-000123",
"pay_period_id": "2026-08",
"requested_amount": 1000000,
"currency": "VND",
"source_data_version": "attendance-v18_payroll-v6",
"requested_at": "2026-08-18T09:20:00+07:00"
}응답은 요청이 수락되었는지, 거부되었는지, 추가 처리가 필요한지를 알려야 하며, 동시에 transactionid, 상태, 이유 코드 및 correlationid를 반환해야 합니다. 전체 계좌 정보나 불필요한 정보를 반환해서는 안 됩니다.
API 사양은 다음을 명확히 규정해야 합니다:
인증 및 권한 부여 방법;
API 버전 및 변경 정책;
날짜 및 시간 형식, 시간대 및 통화 단위;
금액의 정확도 및 반올림 규칙;
오류 코드 목록;
시간 초과 및 재시도 정책;
콜백 또는 웹훅 서명/검증;
부하 제한;
idempotency 규칙;
상태 및 로그 보존 기간.
11. 설계 단계에서부터 보안 및 데이터 보호
직원 데이터, 급여, 수령 계좌 및 거래 기록은 높은 민감도를 가집니다. 통합 설계에는 다음이 포함되어야 합니다:
역할 기반 권한 부여 및 최소 권한 원칙;
데이터 전송 및 저장 시 암호화;
중앙 집중식 비밀 관리, 소스 코드 또는 로그에 접근 키 저장 금지;
개발, 테스트 및 생산 환경 분리;
가상 또는 마스킹된 테스트 데이터;
접근 및 구성 변경 로그;
저장 기간, 삭제 절차 및 데이터 주체 요청 처리;
공급업체 평가 및 데이터 공유 범위;
사고 대응, 알림 및 조사 계획.
베트남에서는 설계 및 운영이 2026년 1월 1일부터 시행되는 개인 데이터 보호법 제91/2025/QH15 및 시행령 356/2025/NĐ-CP에 따라 법무 부서의 검토를 받아야 합니다. 또한, 전자 거래법 2023 및 관련 전문 규정의 틀 내에서 기록, 메시지 및 전자 문서도 검토되어야 합니다.
12. 정식 운영 전 UAT 체크리스트
UAT는 '파일을 받았다'거나 'API가 200을 반환했다'는 것만 확인해서는 안 됩니다 (일당 선지급 90일 파일럿 계획에 포함). 충분한 비즈니스 시나리오와 운영 오류를 테스트해야 합니다.
직원 및 참여 조건
[ ] 근무 중이며 자격이 있는 직원.
[ ] 유효 날짜가 도래하지 않은 신규 직원.
[ ] 휴직 중이거나 퇴직한 직원.
[ ] 법인, 급여 그룹 또는 직원 코드가 변경된 직원.
[ ] 올바른 확인 절차에 따라 수령 계좌 변경.
출퇴근 기록 및 한도
[ ] 정책이 승인된 근무를 요구하는 경우, 승인 대기 중인 근무는 계산되지 않음.
[ ] 승인된 근무가 한도를 정확히 변경함.
[ ] 승인 후 수정되거나 회수된 근무가 올바르게 재계산됨.
[ ] 최신 데이터 이후에 도착한 오래된 데이터가 잘못된 버전을 덮어쓰지 않음.
[ ] 근무 마감일, 시간대 및 야간 교대가 올바르게 처리됨.
거래 및 결제
[ ] 동일한
idempotency_key로 반복 전송 시 두 개의 거래가 생성되지 않음.[ ] 한도가 부족한 경우 정확한 이유 반환.
[ ] 결제 시스템 시간 초과 및 결과 불확실이 두 번째 송금을 유발하지 않음.
[ ] 실패한 거래, 반환 및 상태 전환이 올바르게 업데이트됨.
[ ] 거래 전후 한도가 거래 기록과 일치함.
파일 배치 및 API
[ ] 중복 파일, 잘못된 순서의 파일 및 중복 기록이 감지됨.
[ ] 일부 기록 오류가 처리된 기록을 잃지 않음.
[ ] API 인증 만료, 권한 부족 및 부하 제한 초과 시 올바른 오류 반환.
[ ] 위조된 콜백 또는 잘못된 서명이 거부됨.
[ ] 재시도가 제한을 준수하고 중복 방지 키를 유지함.
급여, ERP 및 대조
[ ] 열림, 잠김 및 결산된 급여 기간이 올바르게 처리됨.
[ ] 일당 선지급 거래가 승인된 절차에 따라 급여 기간 대조 기록에 포함됨.
[ ] 일당 선지급 – 결제 – 급여/ERP의 세 가지 소스가 금액 및 상태와 일치함.
[ ] 차이점이 경고를 생성하고 종료될 때까지 처리 흐름이 있음.
[ ] 보고서가 회계 기록에서 거래 및 소스 데이터로 추적 가능함.
보안 및 운영
[ ] 권한이 없는 사람이 데이터를 보거나 수정할 수 없음.
[ ] 로그에 비밀 또는 민감한 데이터 전체가 포함되지 않음.
[ ] 접근 키가 장기 중단 없이 교체 가능함.
[ ] 담당자, 경고 채널 및 사고 처리 절차가 있음.
[ ] 정식 운영 시 심각한 오류가 발생할 경우 되돌리기 계획이 있음.
13. 양측이 구현 전에 확정해야 할 기술 문서
최소한의 통합 문서에는 다음이 포함되어야 합니다:
아키텍처 다이어그램 및 책임 경계;
각 필드에 대한 데이터 사전;
직원 코드, 급여 기간, 부서 및 항목 코드 매핑 테이블;
API 사양 또는 파일 사양;
상태 및 오류 코드 목록;
승인된 한도 계산 규칙;
중복 방지, 재시도 및 늦게 도착한 데이터 처리 규칙;
대조 흐름 및 차이 보고서 샘플;
권한 매트릭스 및 보안 요구 사항;
UAT, 전환, 되돌리기 및 정식 운영 후 지원 계획.
양측은 데이터 계약 테스트도 수행해야 합니다. 시스템이 필드 이름, 데이터 유형, 상태 목록 또는 비즈니스 의미를 변경할 때, 파이프라인은 생산 환경 외부에서 한도 오류를 유발하기 전에 경고해야 합니다.
<!-- NHAN KIET 완료 대기 섹션 (게시 시 숨김) — 실제 통합 역량을 반영하기 위해 Product/IT 데이터 확인 필요; 파트너/SLA/기능 이름은 문서가 없을 때 공개하지 않음.
## 14. 공식 버전 게시 전에 Nhan Kiet이 보완해야 할 데이터
일당 선지급의 실제 역량을 반영하기 위해 Product/IT 팀은 다음을 확인해야 합니다:
지원 중인 출퇴근 기록, 급여 또는 ERP 시스템;
현재 사용 가능한 통합 방법: API, SFTP, 파일 샘플 또는 기타 방법;
실제 동기화 주기 및 서비스 약정;
공개 가능한 엔드포인트, 데이터 필드, 상태 및 오류 코드 목록;
사용 중인 인증, idempotency, 웹훅 및 대조 메커니즘;
불확실한 결과, 실패 및 반환 거래 처리 흐름;
한도 계산 규칙 및 적격 급여 구성 요소;
개인 데이터를 제거한 기술 보고서 샘플;
Nhan Kiet, 기업 및 결제 파트너의 책임;
통합 문서 및 UAT 지원 접수 담당자.
파트너 이름, 처리 시간, SLA 또는 기술 기능은 문서로 확인되지 않은 경우 공개하지 않아야 합니다.
-->
자주 묻는 질문
일당 선지급은 실시간 통합이 필수인가요?
아닙니다. 기업은 실시간 API, 일정에 따른 파일 배치 또는 파일럿에서 통제된 수동 프로세스를 사용할 수 있습니다. 빈도는 한도 계산 방식, 데이터 변경 속도 및 소스 시스템의 운영 능력에 맞춰야 합니다.
출퇴근 기록 데이터만으로 일당 선지급 한도를 계산할 수 있나요?
일반적으로는 충분하지 않습니다. 직원 상태, 급여 기간, 급여 계산 규칙, 관련 조정 항목 및 일당 선지급 거래 기록이 추가로 필요합니다. 기록된 근무도 명확한 승인 상태가 필요합니다.
왜 동일한 직원 코드를 사용해야 하나요?
통일된 식별자는 한 사람의 근무, 급여 또는 거래가 다른 사람에게 연결되는 것을 방지합니다. 시스템이 서로 다른 코드를 사용하는 경우, 기업은 통제된 매핑 테이블과 유효 날짜가 필요합니다.
Idempotency는 거래 중복 검사와 같은가요?
관련이 있지만 완전히 같지는 않습니다. Idempotency는 동일한 요청을 다시 보내도 새로운 비즈니스 결과를 생성하지 않도록 보장합니다. 중복 검사는 다른 비즈니스 키를 사용하여 다른 코드지만 실제로는 동일한 거래인 두 요청을 감지할 수 있습니다.
송금 명령이 시간 초과되었을 때, 즉시 다시 보내야 하나요?
이전 명령의 결과를 확인하기 전에는 새로운 송금 명령을 보내지 않아야 합니다. 시스템은 불확실한 상태를 유지하고 참조 코드로 조회하며, 이중 지급을 방지하기 위해 미리 정의된 절차에 따라 다음 단계를 처리해야 합니다.
일당 선지급 대조는 누가 책임지나요?
책임은 운영 매트릭스에 규정되어야 합니다. 일반적으로 일당 선지급 운영 단위, 급여, 회계/재무, IT 및 결제 파트너가 참여합니다. 각 차이 유형에는 특정 소유자가 필요합니다.
결론
일당 선지급 통합은 출퇴근 기록 파일을 가져와 백분율을 계산하는 것이 아닙니다. 신뢰할 수 있는 시스템은 직원 데이터, 승인된 근무, 급여 규칙 및 거래가 통일된 식별자로 연결되어야 하며, 데이터 버전, idempotency, 결제 상태, 대조 및 오류 처리 절차가 있어야 합니다.
기업이 현재 출퇴근 기록, 급여 또는 ERP 시스템과 일당 선지급 연결 가능성을 평가하고 있다면, 시스템 다이어그램, 개인 데이터를 숨긴 데이터 사전 및 지원이 필요한 비즈니스 시나리오를 준비한 후 기업을 위한 일당 선지급을 참조하여 기술 통합 문서 및 적합한 파일럿 범위에 대해 논의하십시오.
참고 자료
---
저자: Ngô Nhã Kỳ - 편집자, Nhan Kiet Manpower Supply Co., Ltd.
기업을 위한 일당 선지급 솔루션 상담: 핫라인 0937.022.655 · 이메일 info@nhankiet.vn · 기업을 위한 일당 선지급
Read more articles
- 일당 선지급에서의 보류 금액이란 무엇인가요? 수수료나 잃어버린 돈인가요? · Người lao động
- 언제 일당 선지급을 받아야 할까? 책임 있는 일당 선지급 사용 원칙 · Người lao động
- 일당 선지급 거래 한도: 최소, 최대 각 거래 및 일일 제한 · Người lao động
- 여러 고객사에서 근무할 경우 일당 선지급의 근무일수 및 수령 금액은 어떻게 계산되나요? · Người lao động
- 휴대폰 교체 또는 분실이 일당 선지급에 영향을 미치나요? 기기 보호 및 재확인 방법 · Người lao động
- EWA 오류 시 책임은 누구에게 있는가? · Doanh nghiệp
- EWA 도입 계약에서 확인해야 할 20가지 조항 · Doanh nghiệp
- 누가 일당 선지급을 사용할 수 있나요? 등록, 인증 및 수령 조건 · Người lao động
- 일당 선지급을 위한 소매업, F&B 및 체인점에서의 유연한 교대 근무 관리 방법 · Doanh nghiệp
- 일당 선지급에서 6가지 출근 체크 방식은 어떻게 작동하나요? 근로자를 위한 가이드 · Người lao động