✅ 해당 기능이 제공되는 다우오피스 상품 유형
| 무료 | 서비스형 | 엔터프라이즈형 | HR형 | ||
|---|---|---|---|---|---|
| 스탠다드 | 스탠다드 | 프리미엄 | 스탠다드 | 프리미엄 | HR |
| ❌ | ❌ | ❌ | |||
본 가이드는 다우오피스 OpenAPI 기반의 전자결재 연동 절차를 설명합니다.
- 제공 방식 : 전체화면(웹), 팝업(웹), 모바일(앱 연동)
- 상태 전달 : callbackUrl을 통해 전자결재 처리상태 전송 API가 연동 시스템으로 결재 상태 변화 통지
-
서버 : 모든 OpenAPI 호출은 시스템연동 서버(DOAS : https://api.daouoffice.com)로 수행
✅ 전체 연동 흐름
- (선택) 모바일 결재 #1 – 본문 저장 API로 contentId 생성
- 전자결재 기안 API 호출 (웹 전체/팝업 또는 모바일 기안 API)
- 기안 성공 시 HTTP 302 Redirect로 생성 문서 링크 반환 (웹)
- 결재 상태 변경 시 전자결재 처리상태 전송 API가 callbackUrl로 상태 전송
- (필요 시) 전자결재 본문 조회 API로 기안 완료 문서의 본문 조회
전자결재 기안 연동
다우오피스 OpenAPI 서비스의 전자결재 기안 연동을 위한 전자결재 기안 API입니다.
✔️ Request URL
전체화면 : https://api.daouoffice.com/public/v4/approval/document
팝업화면 : https://api.daouoffice.com/public/v4/approval/document/popup
다우오피스 OpenAPI 서비스는 시스템연동 서버로 API 호출을 진행하기 때문에 별도 고객사 그룹웨어 URL이 아닌 https://api.daouoffice.com 사용
✔️ HTTP Method
POST (Content-Type: application/x-www-form-urlencoded; charset=UTF-8)
✉️ Request Body
| 변수 | 타입 | 필수 | 사전발급 | 설명 |
|---|---|---|---|---|
| clientId | String | ✅ | ✅ | 기존 발급받은 서비스 인증 Id key |
| clientSecret | String | ✅ | ✅ | 식별/인증을 위한 서비스 보안 key |
| productName | String | ⛔ | ⛔ | 제휴 제품명 |
| productVersion | String | ⛔ | ⛔ | 제품 버전 정보 |
| clientCompanyName | String | ⛔ | ⛔ | 제휴사 고객사 식별 정보 |
| formCode | String | ✅ | ✅ |
다우오피스 전자결재 연동서식 코드
|
| title | String | ✅ | ⛔ | 다우오피스 전자결재 제목 |
| draftEmpNo | String | ⛔ | ⛔ |
양사 시스템의 사원(인식)번호 - 기안자 정보
|
| content | String | ✅ | ⛔ | 다우오피스 전자결재 본문 HTML |
| attaches | MultipartFile [] | ⛔ | ⛔ | 전자결재 첨부파일 |
| allianceInfo | String | ⛔ | ⛔ | 전자결재 공유정보를 위한 Object[배열]을 따옴표("")로 감싼 문자열 |
| callbackUrl | String | ✅ | ⛔ | [업무시스템]에 ‘전자결재 처리상태 전송 API’를 호출할 URL ※ callbackUrl는 80, 443 기본 포트만 허용합니다. ex) https://partner.domain.com/do/document/status |
| partnerDocId | String | ⛔ | ⛔ | [업무시스템] 문서별 고유식별 정보 <전자결재 처리상태 조회 API>를 이용할 경우 필수 |
- productName / productVersion / clientCompanyName은 외부 시스템의 정보로, API 호출 시 문제 발생 시 로그 분석을 위한 참고용 항목이나 개발 초기에는 생략해도 되지만, 정식 연동 시에는 입력해주는 것이 좋습니다.
allianceinfo(업무 시스템에서 전달하고자 하는 배열값으로 필요시에만 작성)
| 변수 | 타입 | 필수 | 사전발급 | 설명 |
|---|---|---|---|---|
| {업무시스템 생성}#1 | String | ⛔ | ⛔ | 업무시스템에서 전달하는 연동관련 고유정보 #1 |
| {업무시스템 생성}#2 | String | ⛔ | ⛔ | 업무시스템에서 전달하는 연동관련 고유정보 #2 |
| {업무시스템 생성}#3 | String | ⛔ | ⛔ | 업무시스템에서 전달하는 연동관련 고유정보 #3 |
✉️ Request 예시
POST /public/v4/approval/document/popup HTTP/1.1
api.daouoffice.com
Content-Type: multipart/form-data
{
"clientSecret" : "admin@partner.daouoffice.com",
"productName" :"제휴서비스명",
"productVersion" : "제휴서비스/제품버전",
"clientCompanyName" : "제휴서비스/제품 식별번호",
"formCode" : "다우오피스 전자결재 연동서식 코드",
"title" : "다우오피스 전자결재 제목",
"draftEmpNo" :"양사 시스템 사원(인식)번호(ED207)",
"content" : "본문 내용 HTML 코드(approval_list.txt)",
"attaches" :"전자결재 첨부파일명.확장자",
"allianceInfo" : "{"key":"","code":"","info":"","detail":{"no":"","value":""}}",
"callbackUrl" : "https://partner.domain.com/do/document/status",
"partnerDocId" : "업무시스템문서별고유식별정보(PartnerDoc_AX14211)"
}
- API Tester 사용시 Body타입을 'Form'으로 설정 후 테스트 하기시 바랍니다.
📬Response
- HTTP 302 Redirect 성공시, 302 상태코드와 함께 생성된 전자결재 문서 링크로 Redirect
- 링크를 통해 새로 생성된 결재문서 접근
- API 자체는 연동 리턴값이 없으며, 전달된 데이터 검증은 통합설정⚙️ > 시스템연동 > 전자결재 연동로그 화면에서 확인
📌 CallBackUrl 설명
다우오피스의 결재 문서의 상태 변경 이벤트가 발생했을 때, 해당 이벤트 정보를 연동 시스템으로 전달하기 위한 URL
- 전자결재 기안 API 호출 시 callbackUrl 전달
- 결재 상태 변경 발생 시, 그룹웨어가 해당 URL로 POST 요청 전송
- 연동 시스템에서 요청 수신 후 유효성 검증 및 후속 처리
👉🏼 CallbackUrl에 구현된 웹서비스는 POST 요청을 반드시 처리할 수 있어야 함
🚫 주요 오류 코드 예시
| 코드 | 내용 | 설명(Description) |
|---|---|---|
| 500 | 유효하지 않은 Body | Body 형태를 Form으로 설정하세요. |
| 901 | 유효하지 않은 client ID | client ID를 확인하세요. |
| 902 | 유효하지 않은 client Secret | client Secret을 확인하세요. |
| 955 | 도메인 코드 오류 | oooo는 존재하지 않는 도메인 코드입니다. |
호출 제한
| 기준 | 제한 | 조건 |
|---|---|---|
| 월간 | 600회 | 1회당 첨부 용량 5MB 제안 |