✅ 해당 기능이 제공되는 다우오피스 상품 유형
| 무료 | 서비스형 | 엔터프라이즈형 | HR형 | ||
|---|---|---|---|---|---|
| 스탠다드 | 스탠다드 | 프리미엄 | 스탠다드 | 프리미엄 | HR |
| ❌ | ❌ | ❌ | |||
OpenAPI에서는 외부 시스템과 연동하여 근태 유형과 근태 기록을 등록할 수 있습니다. 등록된 정보는 시스템 연동의 중간DB에 저장되며, 설정된 동기화 주기에 따라 다우오피스에 자동 반영됩니다.
근태 유형 등록 API
- 다우오피스에 사용될 근태 유형 정보를 연동하는 API
- 연동된 근태 유형은 시스템 연동 서비스의 중간 DB에 저장되며, 최종 저장된 정보가 다우오피스에 반영
- 근태기록 등록만으로도 연동 가능하므로 필수 연동은 아님
✅ 기본 제공 유형 4가지
- 출근 (defaultClockIn)
- 퇴근 (defaultClockOut)
- 업무시작 (defaultOnWorking)
- 업무종료 (defaultOffWorking)
✔️ Request URL
https://api.daouoffice.com/public/v2/attnd/code
다우오피스 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은 외부 시스템의 정보로, API 호출 시 문제 발생 시 로그 분석을 위한 참고용 항목이나 개발 초기에는 생략해도 되지만, 정식 연동 시에는 입력해주는 것이 좋습니다.
data 배열 구조
| 변수 | 타입 | 필수 | 사전발급 | 설명 |
|---|---|---|---|---|
| timelineCode | String | ✅ | ⛔ | 근태 상태 코드 (중복 시 덮어쓰기) |
| name | String | ✅ | ⛔ | 근태 상태 명칭 예) 휴가, 출장 |
| includeWorkingTime | boolean | ⛔ | ⛔ | 업무시간 포함 여부 (기본: true) |
| useYN | boolean | ⛔ | ⛔ | 사용 여부 (기본: true) |
✉️ Request 예시
POST /public/v2/attnd/code HTTP/1.1
api.daouoffice.com
Content-Type: application/json
{
"clientId" : "서비스인증Id(xxxxxxxxxx)",
"clientSecret" : "서비스보안Key(xxxxxxxxxx)",
"productName" : "제휴서비스명",
"productVersion" : "제휴서비스버전정보",
"clientCompanyName" : "제휴고객사식별정보(partner-client-001)",
"data" : [
{"timelineCode" : "AttndCode101", "name": "휴가", "includeWorkingTime" : true, "useYN" : true},
{"timelineCode" : "AttndCode102", "name": "출장", "includeWorkingTime" : true, "useYN" : true},
{"timelineCode" : "AttndCode103", "name": "교육", "includeWorkingTime" : false, "useYN" : true}
"clientSecret" : "서비스보안Key(xxxxxxxxxx)",
"productName" : "제휴서비스명",
"productVersion" : "제휴서비스버전정보",
"clientCompanyName" : "제휴고객사식별정보(partner-client-001)",
"data" : [
{"timelineCode" : "AttndCode101", "name": "휴가", "includeWorkingTime" : true, "useYN" : true},
{"timelineCode" : "AttndCode102", "name": "출장", "includeWorkingTime" : true, "useYN" : true},
{"timelineCode" : "AttndCode103", "name": "교육", "includeWorkingTime" : false, "useYN" : true}
}
📬 Response Body
data 객체
| 항목 | 타입 | 필수 | 사전발급 | 설명 |
|---|---|---|---|---|
| code | String | ✅ | ⛔ | API 호출 결과 코드 |
| message | String | ✅ | ⛔ | 호출 결과 메시지 |
| messageDetail | String | ⛔ | ⛔ | API 호출결과 상세내용 (실패한 경우만 리턴) |
📬Response 예시
Content-Type: application/json;charset=UTF-8
{
"code" : "200",
"message" : "OK"
"message" : "OK"
}
🚫 주요 오류 코드 예시
| 코드 | 내용 | 설명(Description) |
|---|---|---|
| 901 | 유효하지 않은 client ID | client ID를 확인하세요. |
| 902 | 유효하지 않은 client Secret | client Secret을 확인하세요. |
| 970 | 유효하지 않은 데이터 포맷 | 데이터 포맷을 확인하세요. |
| 971 | 중복 데이터 | 변경 내역이 없는 중복 데이터입니다. |