✅ 해당 기능이 제공되는 다우오피스 상품 유형
| 무료 | 서비스형 | 엔터프라이즈형 | HR형 | ||
|---|---|---|---|---|---|
| 스탠다드 | 스탠다드 | 프리미엄 | 스탠다드 | 프리미엄 | HR |
| ❌ | ❌ | ❌ | |||
OpenAPI에서는 외부 시스템과 연동하여 근태 유형과 근태 기록을 등록할 수 있습니다. 등록된 정보는 시스템 연동의 중간DB에 저장되며, 설정된 동기화 주기에 따라 다우오피스에 자동 반영됩니다.
근태 기록 등록 API
- 외부 시스템에서 생성된 근태 기록을 다우오피스에 연동하는 API
- 사원번호(employeeNumber)와 날짜(workingDay)를 기준으로 중복 시 덮어쓰기 처리
- 사용자가 다우오피스에 등록되어 있어야만 연동
-
연동되지 않은 근태 코드가 포함되면 해당 기록은 무시 → 근태 유형 등록과 함께 사용 권장
✔️ Request URL
https://api.daouoffice.com/public/v2/attnd/record
다우오피스 OpenAPI 서비스는 시스템연동 서버로 API 호출을 진행하기 때문에 별도 고객사 그룹웨어 URL이 아닌 https://api.daouoffice.com 사용
✔️ HTTP Method
POST (Content-Type: application/json; charset=UTF-8)
✉️ Request Body
| 변수 | 타입 | 필수 | 사전발급 | 설명 |
|---|---|---|---|---|
| clientId | String | ✅ | ✅ | 기존 발급받은 서비스 인증 Id key |
| clientSecret | String | ✅ | ✅ | 식별/인증을 위한 서비스 보안 key |
| productName | String | ⛔ | ⛔ | 제휴 제품명 |
| productVersion | String | ⛔ | ⛔ | 제품 버전 정보 |
| clientCompanyName | String | ⛔ | ⛔ | 제휴사 고객사 식별 정보 |
| data | Object | ✅ | ⛔ | 근태 기록 정보 상세내용 JSON Object 배열 |
- productName, productVersion, clientCompanyName은 외부업무시스템의 정보를 전달받아 문제 발생 시 다우기술에서 로그 확인을 위해 필요한 사항입니다. 필수 입력값은 아니므로 초기 개발 시 비워두고 정식 사용 시 값을 입력하는 것을 권장합니다.
data 배열 구조
| 변수 | 타입 | 필수 | 사전발급 | 설명 |
|---|---|---|---|---|
| employeeNumber | String | ✅ | ⛔ |
양사의 시스템 사원(인식)번호 / 근태관리와 사용자의 매핑키
|
| workingDay | String | ✅ | ⛔ | 근태기록 기준일자 ( yyyy-MM-dd ) |
| clockInTime | String | ⛔ | ⛔ | 출근시간 ( yyyy-MM-dd HH:mm:ss ) |
| clockOutTime | String | ⛔ | ⛔ | 퇴근시간 ( yyyy-MM-dd HH:mm:ss ) |
| code | String | ⛔ | ⛔ |
근태상태 코드
|
| checkTime | String | ⛔ | ⛔ | 근태기록 ( yyyy-MM-dd HH:mm:ss ) |
✉️ Request 예시
#1.출퇴근만 등록
POST /public/v2/attnd/record HTTP/1.1
api.daouoffice.com
Content-Type: application/json
{
"clientSecret" : "서비스보안Key(xxxxxxxxxx)",
"productName" : "제휴서비스명",
"productVersion" : "제휴서비스버전정보",
"clientCompanyName" : "제휴고객사식별정보(partner-client-001)",
"data" : [
{
"employeeNumber" : "D000001",
"workingDay" : "2025-07-09",
"clockInTime" : "2025-07-09 08:30:00",
"clockOutTime" : "2025-07-09 18:30:00"
}
// 익일 퇴근의 경우 workingDay를 기준일자로 전송
}
✉️ Request 예시
#2.타임라인 업무 연동
POST /public/v2/attnd/record HTTP/1.1
api.daouoffice.com
Content-Type: application/json
{
"clientSecret" : "서비스보안Key(xxxxxxxxxx)",
"productName" : "제휴서비스명",
"productVersion" : "제휴서비스버전정보",
"clientCompanyName" : "제휴고객사식별정보(partner-client-001)",
"data" : [
{
"employeeNumber" : "D000001",
"workingDay" : "2025-07-09",
"clockInTime" : "2025-07-09 08:30:00",
"clockOutTime" : "2025-07-09 18:30:00"
"timelineHistories" : [
// timelineHistories에서 업무유형 출근(defaultClockIn), 퇴근(defaultClockOut)을 지정안됨
{ "code" : "defaultOffWorking" , "checkTime" : "2025-07-09 10:00:00"}
// 업무종료(defaultOffWorking)
{ "code" : "defaultOnWorking" , "checkTime" : "2025-07-09 13:00:00"}
// 업무시작(defaultOnWorking)
]
}
]
}
📬Response Body
data 객체
| 항목 | 타입 | 필수 | 사전발급 | 설명 |
|---|---|---|---|---|
| code | String | ✅ | ⛔ | API 호출 결과 코드 |
| message | String | ✅ | ⛔ | 호출 결과 메시지 |
| messageDetail | String | ⛔ | ⛔ | API 호출결과 상세내용 (실패한 경우만 리턴) |
📬Response 예시
Content-Type: application/json;charset=UTF-8
{
"message" : "OK"
}
🚫 주요 오류 코드 예시
| 코드 | 내용 | 설명(Description) |
|---|---|---|
| 901 | 유효하지 않은 client ID | client ID를 확인하세요. |
| 902 | 유효하지 않은 client Secret | client Secret을 확인하세요. |
| 970 | 유효하지 않은 데이터 포맷 | 데이터 포맷을 확인하세요. |
| 971 | 중복 데이터 | 변경 내역이 없는 중복 데이터입니다. |
호출 제한
| 기준 | 제한 | 조건 |
|---|---|---|
| 일간 | 50회 | 호출당 3,000건 이하 |
| 월간 | 1,500회 | 호출당 3,000건 이하 |