증명서
1. 증명서 신청/발급 입력 서식 조회fourinsure. b1. certificate. apply. init
샌드박스입니다. 실제 기관을 호출하지 않는 모의 응답이며 일일 한도가 없습니다.
가입내역확인 증명서를 신청하는 화면의 입력 항목을 조회합니다.
- 로그인을 먼저 호출해 세션을 만든 뒤, 같은 account_link_id 로 호출합니다. [4대보험 로그인]
- sandbox 환경에서는 실제 기관에 접속하지 않습니다. result.data 에는 mock: true 와 보낸 params 를 그대로 담은 params_echo 가 오고, 업무 응답 필드는 오지 않습니다.
- params 는 빈 객체로 보내도 호출됩니다. 사용할 인증서는 account_link_id 로 지정합니다.
Request
| 순번 | 변수명 | 필수 | 설명 |
|---|---|---|---|
| Authorization | Y | API 자격증명입니다. client_id 와 client_secret 을 콜론으로 이어 Base64 로 인코딩해 보냅니다. | |
| X- | Y | 호출 환경입니다.
| |
| Idempotency- | Y | 재시도 식별 키입니다. 같은 키와 같은 본문으로 다시 호출하면 기존 작업이 그대로 반환됩니다. ASCII 문자만 사용하며 UUID v4 를 권장합니다. 고객 정보는 넣지 않습니다. | |
| Content- | Y | 요청 본문 형식입니다.
| |
| X- | N | 추적 아이디입니다. 지정하지 않으면 서버가 발급합니다. |
| 순번 | 변수명 | 타입 | 길이 | 필수 | 설명 |
|---|---|---|---|---|---|
| provider | string | - | Y | 호출할 기관입니다.
| |
| action | string | - | Y | 호출할 작업입니다.
| |
| account_ | string | 36 | 조건부 | 등록한 자격증명을 가리키는 아이디입니다. 생략하면 이 계정이 그 기관에 등록한 자격증명 중 대표로 지정한 것이 쓰입니다. 대표가 없으면 등록한 자격증명이 하나뿐일 때만 자동으로 선택되고, 둘 이상이면 직접 지정해야 합니다. | |
| params | object | - | N | 작업 파라미터입니다. 이 API 는 빈 객체로 호출할 수 있습니다. | |
| encrypted_ | object | - | N | 민감한 params 값을 RSA-OAEP-256 으로 암호화해 담는 객체입니다. 서버가 복호화해 params 에 합칩니다. 같은 이름을 params 와 함께 쓰지 않습니다. |
추가 파라미터가 없습니다. params 는 {} 로 보냅니다.
curl --request POST \
--url 'https://api.xdata.kr/v1/jobs' \
--header 'Authorization: Basic {base64(client_id:client_secret)}' \
--header 'X-Env-Scope: sandbox' \
--header 'Idempotency-Key: demo-init-001' \
--header 'Content-Type: application/json' \
--data '{
"provider": "fourinsure",
"action": "fourinsure.b1.certificate.apply.init",
"account_link_id": "9b4c3a2f-0000-4000-8000-000000000000",
"params": {}
}'Response
- result.data 에서 입력 항목(fields)과 다음 단계 정보를 확인해 후속 요청 본문을 만듭니다.
| 순번 | 변수명 | 설명 |
|---|---|---|
| success | 요청 처리 성공 여부 | |
| page | 화면 페이지 메타 객체 | |
| forms | form 메타데이터 배열 | |
| fields | 입력 필드 계약 배열 | |
| semantic_ | 의미 단위 입력 컨트롤 배열 | |
| semantic_ | 의미 필드 키-값 맵 | |
| semantic_ | 의미 필드 개수 | |
| csrf_ | CSRF 토큰 존재 여부 | |
| followup_ | 후속 endpoint URL 배열 | |
| navigation_ | 화면 내비게이션 단계 배열 | |
| current_ | 현재 화면 식별자 | |
| target_ | 대상 폼 준비 여부 | |
| raw_ | 원본 HTML 길이 | |
| source_ | 업스트림 요청 URL |
// result.data
{
"page": {
"title": "4대사회보험 정보연계센터",
"headings": [
"증명서발급",
"증명서(가입내역확인_사업장,전체 가입자)신청/발급",
"4대사회보험 가입내역 확인 청구서",
"작성시 유의사항",
"가입내역확인서 청구내역",
"확인자",
"근무중인 사업장",
"증명서 발급신청 절차 안내",
"개인정보보호",
"위·변조금지"
]
},
"forms": [
{
"id": "submitForm",
"name": "submit",
"action": null,
"method": "get"
}
],
"fields": [
{
"id": null,
"tag": "input",
"href": null,
"name": "_csrf",
"role": null,
"text": "",
"type": "hidden",
"class": null,
"title": "",
"value": "[REDACTED]",
"checked": false,
"onclick": null,
"options": [],
"disabled": false,
"readonly": false,
"required": false,
"aria_label": "",
"data_attrs": {},
"placeholder": "",
"option_count": 0,
"selected_text": null
},
{
"id": "tmpltKbrdrNm",
"tag": "input",
"href": null,
"name": "tmpltKbrdrNm",
"role": null,
"text": "",
"type": "hidden",
"class": null,
"title": "",
"value": "홍길동",
"checked": false,
"onclick": null,
"options": [],
"disabled": false,
"readonly": false,
"required": false,
"aria_label": "",
"data_attrs": {},
"placeholder": "",
"option_count": 0,
"selected_text": null
},
{
"id": "idntyTrprTelrno",
"tag": "input",
"href": null,
"name": "idntyTrprTelrno",
"role": null,
"text": "",
"type": "hidden",
"class": null,
"title": "",
"value": null,
"checked": false,
"onclick": null,
"options": [],
"disabled": false,
"readonly": false,
"required": false,
"aria_label": "",
"data_attrs": {},
"placeholder": "",
"option_count": 0,
"selected_text": null
},
{
"id": "idntyTrprTelono",
"tag": "input",
"href": null,
"name": "idntyTrprTelono",
"role": null,
"text": "",
"type": "hidden",
"class": null,
"title": "",
"value": null,
"checked": false,
"onclick": null,
"options": [],
"disabled": false,
"readonly": false,
"required": false,
"aria_label": "",
"data_attrs": {},
"placeholder": "",
"option_count": 0,
"selected_text": null
},
{
"id": "idntyTrprTelino",
"tag": "input",
"href": null,
"name": "idntyTrprTelino",
"role": null,
"text": "",
"type": "hidden",
"class": null,
"title": "",
"value": null,
"checked": false,
"onclick": null,
"options": [],
"disabled": false,
"readonly": false,
"required": false,
"aria_label": "",
"data_attrs": {},
"placeholder": "",
"option_count": 0,
"selected_text": null
},
{
"id": "idntyTrprOzip",
"tag": "input",
"href": null,
"name": "idntyTrprOzip",
"role": null,
"text": "",
"type": "hidden",
"class": null,
"title": "",
"value": "12345",
"checked": false,
"onclick": null,
"options": [],
"disabled": false,
"readonly": false,
"required": false,
"aria_label": "",
"data_attrs": {},
"placeholder": "",
"option_count": 0,
"selected_text": null
},
{
"id": "idntyTrprBscAddr",
"tag": "input",
"href": null,
"name": "idntyTrprBscAddr",
"role": null,
"text": "",
"type": "hidden",
"class": null,
"title": "",
"value": "서울특별시 중구 예시로 123",
"checked": false,
"onclick": null,
"options": [],
"disabled": false,
"readonly": false,
"required": false,
"aria_label": "",
"data_attrs": {},
"placeholder": "",
"option_count": 0,
"selected_text": null
},
{
"id": "idntyTrprDtlAddr",
"tag": "input",
"href": null,
"name": "idntyTrprDtlAddr",
"role": null,
"text": "",
"type": "hidden",
"class": null,
"title": "",
"value": "123-4",
"checked": false,
"onclick": null,
"options": [],
"disabled": false,
"readonly": false,
"required": false,
"aria_label": "",
"data_attrs": {},
"placeholder": "",
"option_count": 0,
"selected_text": null
},
{
"id": "idntyTrprBscRnmAddr",
"tag": "input",
"href": null,
"name": "idntyTrprBscRnmAddr",
"role": null,
"text": "",
"type": "hidden",
"class": null,
"title": "",
"value": "서울특별시 중구 예시로 123",
"checked": false,
"onclick": null,
"options": [],
"disabled": false,
"readonly": false,
"required": false,
"aria_label": "",
"data_attrs": {},
"placeholder": "",
"option_count": 0,
"selected_text": null
},
{
"id": "idntyTrprDtlRnmAddr",
"tag": "input",
"href": null,
"name": "idntyTrprDtlRnmAddr",
"role": null,
"text": "",
"type": "hidden",
"class": null,
"title": "",
"value": "예시빌딩 4층 401호",
"checked": false,
"onclick": null,
"options": [],
"disabled": false,
"readonly": false,
"required": false,
"aria_label": "",
"data_attrs": {},
"placeholder": "",
"option_count": 0,
"selected_text": null
},
{
"id": "powkBplcNm",
"tag": "input",
"href": null,
"name": "powkBplcNm",
"role": null,
"text": "",
"type": "hidden",
"class": null,
"title": "",
"value": "예시 주식회사",
"checked": false,
"onclick": null,
"options": [],
"disabled": false,
"readonly": false,
"required": false,
"aria_label": "",
"data_attrs": {},
"placeholder": "",
"option_count": 0,
"selected_text": null
},
{
"id": "powkBrno",
"tag": "input",
"href": null,
"name": "powkBrno",
"role": null,
"text": "",
"type": "hidden",
"class": null,
"title": "",
"value": "1234567890",
"checked": false,
"onclick": null,
"options": [],
"disabled": false,
"readonly": false,
"required": false,
"aria_label": "",
"data_attrs": {},
"placeholder": "",
"option_count": 0,
"selected_text": null
},
{
"id": "powkBpmno",
"tag": "input",
"href": null,
"name": "powkBpmno",
"role": null,
"text": "",
"type": "hidden",
"class": null,
"title": "",
"value": "12345678901",
"checked": false,
"onclick": null,
"options": [],
"disabled": false,
"readonly": false,
"required": false,
"aria_label": "",
"data_attrs": {},
"placeholder": "",
"option_count": 0,
"selected_text": null
},
{
"id": "issuUsgSeCd",
"tag": "input",
"href": null,
"name": "issuUsgSeCd",
"role": null,
"text": "",
"type": "hidden",
"class": null,
"title": "",
"value": "1",
"checked": false,
"onclick": null,
"options": [],
"disabled": false,
"readonly": false,
"required": false,
"aria_label": "",
"data_attrs": {},
"placeholder": "",
"option_count": 0,
"selected_text": null
},
{
"id": "joinDsctnCdocKndCd",
"tag": "input",
"href": null,
"name": "joinDsctnCdocKndCd",
"role": null,
"text": "",
"type": "hidden",
"class": null,
"title": "",
"value": null,
"checked": false,
"onclick": null,
"options": [],
"disabled": false,
"readonly": false,
"required": false,
"aria_label": "",
"data_attrs": {},
"placeholder": "",
"option_count": 0,
"selected_text": null
},
{
"id": "rcptMthdSeCd",
"tag": "input",
"href": null,
"name": "rcptMthdSeCd",
"role": null,
"text": "",
"type": "hidden",
"class": null,
"title": "",
"value": "P",
"checked": false,
"onclick": null,
"options": [],
"disabled": false,
"readonly": false,
"required": false,
"aria_label": "",
"data_attrs": {},
"placeholder": "",
"option_count": 0,
"selected_text": null
},
{
"id": "idntyTrprRrkey",
"tag": "input",
"href": null,
"name": "idntyTrprRrkey",
"role": null,
"text": "",
"type": "hidden",
"class": null,
"title": "",
"value": "12345678901",
"checked": false,
"onclick": null,
"options": [],
"disabled": false,
"readonly": false,
"required": false,
"aria_label": "",
"data_attrs": {},
"placeholder": "",
"option_count": 0,
"selected_text": null
},
{
"id": "otptSortSeCd",
"tag": "input",
"href": null,
"name": "otptSortSeCd",
"role": null,
"text": "",
"type": "hidden",
"class": null,
"title": "",
"value": null,
"checked": false,
"onclick": null,
"options": [],
"disabled": false,
"readonly": false,
"required": false,
"aria_label": "",
"data_attrs": {},
"placeholder": "",
"option_count": 0,
"selected_text": null
}
],
"success": true,
"source_url": "https://www.4insure.or.kr/pbiz/cert/insertBplcCerfAplyView.do",
"current_view": "target_form",
"raw_html_len": 64739,
"target_ready": true,
"semantic_fields": [
{
"id": "queryhead",
"tag": "input",
"name": "query",
"text": "",
"type": "text",
"class": "ipt_totalsearch",
"label": null,
"title": "통합 검색어 입력 영역",
"value": "",
"checked": false,
"options": [],
"disabled": false,
"readonly": false,
"required": false,
"aria_label": "",
"placeholder": "검색어를 입력해주세요.",
"option_count": 0,
"value_masked": false,
"selected_text": null
},
{
"id": null,
"tag": "button",
"name": null,
"text": "통합검색",
"type": null,
"class": "btn_totalsearch",
"label": null,
"title": "",
"value": "",
"checked": false,
"options": [],
"disabled": false,
"readonly": false,
"required": false,
"aria_label": "",
"placeholder": "",
"option_count": 0,
"value_masked": false,
"selected_text": null
},
{
"id": null,
"tag": "button",
"name": null,
"text": "메뉴 버튼",
"type": "button",
"class": "lnb_toggle_btn",
"label": null,
"title": "",
"value": "",
"checked": false,
"options": [],
"disabled": false,
"readonly": false,
"required": false,
"aria_label": "메뉴닫기",
"placeholder": "",
"option_count": 0,
"value_masked": false,
"selected_text": null
},
{
"id": null,
"tag": "button",
"name": null,
"text": "화면확대",
"type": "button",
"class": "btn_scale_plus",
"label": null,
"title": "",
"value": "",
"checked": false,
"options": [],
"disabled": false,
"readonly": false,
"required": false,
"aria_label": "",
"placeholder": "",
"option_count": 0,
"value_masked": false,
"selected_text": null
},
{
"id": null,
"tag": "button",
"name": null,
"text": "화면축소",
"type": "button",
"class": "btn_scale_minus",
"label": null,
"title": "",
"value": "",
"checked": false,
"options": [],
"disabled": false,
"readonly": false,
"required": false,
"aria_label": "",
"placeholder": "",
"option_count": 0,
"value_masked": false,
"selected_text": null
},
{
"id": null,
"tag": "button",
"name": null,
"text": "용어사전",
"type": "button",
"class": "btn_style h38 bg_darkblue radius19",
"label": null,
"title": "새창으로 열림",
"value": "",
"checked": false,
"options": [],
"disabled": false,
"readonly": false,
"required": false,
"aria_label": "",
"placeholder": "",
"option_count": 0,
"value_masked": false,
"selected_text": null
},
{
"id": "joinDsctnCdocKndCd1",
"tag": "input",
"name": "joinDsctnCdocKndCd",
"text": "",
"type": "radio",
"class": null,
"label": "사업장 가입자 명부",
"title": "",
"value": "",
"checked": true,
"options": [],
"disabled": false,
"readonly": false,
"required": false,
"aria_label": "",
"placeholder": "",
"option_count": 0,
"value_masked": false,
"selected_text": null
},
{
"id": "joinDsctnCdocKndCd2",
"tag": "input",
"name": "joinDsctnCdocKndCd",
"text": "",
"type": "radio",
"class": null,
"label": "사업장 가입내역 확인서",
"title": "",
"value": "",
"checked": false,
"options": [],
"disabled": false,
"readonly": false,
"required": false,
"aria_label": "",
"placeholder": "",
"option_count": 0,
"value_masked": false,
"selected_text": null
},
{
"id": "btnSubmit1",
"tag": "button",
"name": null,
"text": "신청",
"type": "button",
"class": "btn_style minw100 h50 bg_gray f15",
"label": null,
"title": "",
"value": "",
"checked": false,
"options": [],
"disabled": false,
"readonly": false,
"required": false,
"aria_label": "",
"placeholder": "",
"option_count": 0,
"value_masked": false,
"selected_text": null
},
{
"id": "iptFlnm",
"tag": "input",
"name": null,
"text": "",
"type": "text",
"class": "ipt_text",
"label": null,
"title": "성명 입력",
"value": "홍길동",
"checked": false,
"options": [],
"disabled": false,
"readonly": true,
"required": false,
"aria_label": "",
"placeholder": "",
"option_count": 0,
"value_masked": false,
"selected_text": null
},
{
"id": null,
"tag": "input",
"name": null,
"text": "",
"type": "text",
"class": "ipt_text",
"label": null,
"title": "주민(외국인)등록번호 앞자리 입력",
"value": null,
"checked": false,
"options": [],
"disabled": false,
"readonly": true,
"required": false,
"aria_label": "",
"placeholder": "",
"option_count": 0,
"value_masked": true,
"selected_text": null
},
{
"id": null,
"tag": "input",
"name": null,
"text": "",
"type": "password",
"class": "ipt_text",
"label": null,
"title": "주민(외국인)등록번호 뒷자리 입력",
"value": null,
"checked": false,
"options": [],
"disabled": false,
"readonly": true,
"required": false,
"aria_label": "",
"placeholder": "",
"option_count": 0,
"value_masked": true,
"selected_text": null
},
{
"id": "iptTelrno",
"tag": "input",
"name": null,
"text": "",
"type": "text",
"class": "ipt_text",
"label": null,
"title": "전화번호(자택) 앞자리 입력",
"value": "",
"checked": false,
"options": [],
"disabled": false,
"readonly": false,
"required": false,
"aria_label": "",
"placeholder": "",
"option_count": 0,
"value_masked": false,
"selected_text": null
},
{
"id": "iptTelono",
"tag": "input",
"name": null,
"text": "",
"type": "text",
"class": "ipt_text",
"label": null,
"title": "전화번호(자택) 가운데자리 입력",
"value": "",
"checked": false,
"options": [],
"disabled": false,
"readonly": false,
"required": false,
"aria_label": "",
"placeholder": "",
"option_count": 0,
"value_masked": false,
"selected_text": null
},
{
"id": "iptTelino",
"tag": "input",
"name": null,
"text": "",
"type": "text",
"class": "ipt_text",
"label": null,
"title": "전화번호(자택) 뒷자리 입력",
"value": "",
"checked": false,
"options": [],
"disabled": false,
"readonly": false,
"required": false,
"aria_label": "",
"placeholder": "",
"option_count": 0,
"value_masked": false,
"selected_text": null
},
{
"id": "iptZipCd",
"tag": "input",
"name": null,
"text": "",
"type": "text",
"class": "ipt_text",
"label": null,
"title": "우편물 수령지 우편번호 입력",
"value": "12345",
"checked": false,
"options": [],
"disabled": false,
"readonly": true,
"required": false,
"aria_label": "",
"placeholder": "",
"option_count": 0,
"value_masked": false,
"selected_text": null
},
{
"id": "iptAddr",
"tag": "input",
"name": null,
"text": "",
"type": "text",
"class": "ipt_text",
"label": null,
"title": "우편물 수령지 기본주소 입력",
"value": "서울특별시 중구 예시로 123",
"checked": false,
"options": [],
"disabled": false,
"readonly": true,
"required": false,
"aria_label": "",
"placeholder": "",
"option_count": 0,
"value_masked": false,
"selected_text": null
},
{
"id": "iptDaddr",
"tag": "input",
"name": null,
"text": "",
"type": "text",
"class": "ipt_text",
"label": null,
"title": "우편물 수령지 상세주소 입력",
"value": "예시빌딩 4층 401호",
"checked": false,
"options": [],
"disabled": false,
"readonly": true,
"required": false,
"aria_label": "",
"placeholder": "",
"option_count": 0,
"value_masked": false,
"selected_text": null
},
{
"id": null,
"tag": "input",
"name": null,
"text": "",
"type": "text",
"class": "ipt_text",
"label": null,
"title": "사업장 입력",
"value": "예시 주식회사",
"checked": false,
"options": [],
"disabled": false,
"readonly": true,
"required": false,
"aria_label": "",
"placeholder": "",
"option_count": 0,
"value_masked": false,
"selected_text": null
},
{
"id": null,
"tag": "input",
"name": null,
"text": "",
"type": "text",
"class": "ipt_text",
"label": null,
"title": "사업자등록번호 입력",
"value": "1234567890",
"checked": false,
"options": [],
"disabled": false,
"readonly": true,
"required": false,
"aria_label": "",
"placeholder": "",
"option_count": 0,
"value_masked": false,
"selected_text": null
},
{
"id": null,
"tag": "input",
"name": null,
"text": "",
"type": "text",
"class": "ipt_text",
"label": null,
"title": "사업장관리번호 입력",
"value": "12345678901",
"checked": false,
"options": [],
"disabled": false,
"readonly": true,
"required": false,
"aria_label": "",
"placeholder": "",
"option_count": 0,
"value_masked": false,
"selected_text": null
},
{
"id": "lb02_01",
"tag": "input",
"name": "lb02",
"text": "",
"type": "radio",
"class": null,
"label": "확인용",
"title": "",
"value": "",
"checked": true,
"options": [],
"disabled": false,
"readonly": false,
"required": false,
"aria_label": "",
"placeholder": "",
"option_count": 0,
"value_masked": false,
"selected_text": null
},
{
"id": "radioOtptSortSeCd1",
"tag": "input",
"name": "radioOtptSortSeCd",
"text": "",
"type": "radio",
"class": null,
"label": "이름순으로 출력",
"title": "",
"value": "2",
"checked": false,
"options": [],
"disabled": false,
"readonly": false,
"required": false,
"aria_label": "",
"placeholder": "",
"option_count": 0,
"value_masked": false,
"selected_text": null
},
{
"id": "radioOtptSortSeCd2",
"tag": "input",
"name": "radioOtptSortSeCd",
"text": "",
"type": "radio",
"class": null,
"label": "주민등록순으로 출력",
"title": "",
"value": null,
"checked": true,
"options": [],
"disabled": false,
"readonly": false,
"required": false,
"aria_label": "",
"placeholder": "",
"option_count": 0,
"value_masked": true,
"selected_text": null
},
{
"id": "btnSubmit2",
"tag": "button",
"name": null,
"text": "신청",
"type": "button",
"class": "btn_style minw180 h50 bg_blue",
"label": null,
"title": "",
"value": "",
"checked": false,
"options": [],
"disabled": false,
"readonly": false,
"required": false,
"aria_label": "",
"placeholder": "",
"option_count": 0,
"value_masked": false,
"selected_text": null
},
{
"id": "selectSite",
"tag": "select",
"name": null,
"text": "",
"type": null,
"class": null,
"label": null,
"title": "유관기관 사이트 선택",
"value": "",
"checked": false,
"options": [
{
"text": "유관기관 사이트",
"value": "",
"selected": false
},
{
"text": "사회보험통합징수포털",
"value": "https://si4n.nhis.or.kr",
"selected": false
},
{
"text": "국민연금공단",
"value": "http://www.nps.or.kr",
"selected": false
},
{
"text": "국민건강보험공단",
"value": "http://www.nhis.or.kr",
"selected": false
},
{
"text": "고용보험",
"value": "http://www.ei.go.kr",
"selected": false
},
{
"text": "근로복지공단",
"value": "http://www.comwel.or.kr",
"selected": false
},
{
"text": "고용노동부",
"value": "http://www.moel.go.kr",
"selected": false
},
{
"text": "한국고용정보원",
"value": "http://www.keis.or.kr",
"selected": false
},
{
"text": "노인장기요양보험",
"value": "https://www.longtermcare.or.kr/",
"selected": false
},
{
"text": "보건복지부",
"value": "http://www.mohw.go.kr",
"selected": false
},
{
"text": "건강iN",
"value": "https://www.nhis.or.kr/nhis/healthin/wbhaca04500m01.do",
"selected": false
},
{
"text": "건강보험심사평가원",
"value": "http://www.hira.or.kr",
"selected": false
},
{
"text": "기초연금",
"value": "http://basicpension.mohw.go.kr",
"selected": false
},
{
"text": "정부24",
"value": "http://www.gov.kr/portal/main",
"selected": false
}
],
"disabled": false,
"readonly": false,
"required": false,
"aria_label": "",
"placeholder": "",
"option_count": 14,
"value_masked": false,
"selected_text": "유관기관 사이트"
}
],
"navigation_steps": [
{
"url": "https://www.4insure.or.kr/pbiz/cert/insertBplcCerfAplyView.do",
"phase": "enter_application_form",
"method": "GET",
"description": "증명서 신청 화면으로 이동"
}
],
"semantic_payload": {
"신청": "신청",
"신청_2": "신청",
"확인용": "lb02_01",
"메뉴닫기": "메뉴 버튼",
"통합검색": "통합검색",
"화면축소": "화면축소",
"화면확대": "화면확대",
"성명_입력": "홍길동",
"사업장_입력": "예시 주식회사",
"새창으로_열림": "용어사전",
"이름순으로_출력": "radioOtptSortSeCd1",
"사업장_가입자_명부": "joinDsctnCdocKndCd1",
"사업자등록번호_입력": "1234567890",
"사업장관리번호_입력": "12345678901",
"주민등록순으로_출력": "radioOtptSortSeCd2",
"유관기관_사이트_선택": "유관기관 사이트",
"통합_검색어_입력_영역": "검색어를 입력해주세요.",
"사업장_가입내역_확인서": "joinDsctnCdocKndCd2",
"전화번호_자택_뒷자리_입력": "전화번호(자택) 뒷자리 입력",
"전화번호_자택_앞자리_입력": "전화번호(자택) 앞자리 입력",
"우편물_수령지_기본주소_입력": "서울특별시 중구 예시로 123",
"우편물_수령지_상세주소_입력": "예시빌딩 4층 401호",
"우편물_수령지_우편번호_입력": "12345",
"전화번호_자택_가운데자리_입력": "전화번호(자택) 가운데자리 입력",
"주민_외국인_등록번호_뒷자리_입력": "주민(외국인)등록번호 뒷자리 입력",
"주민_외국인_등록번호_앞자리_입력": "주민(외국인)등록번호 앞자리 입력"
},
"csrf_token_present": true,
"followup_endpoints": [
{
"url": "https://www.4insure.or.kr/pbiz/cert/insertBplcCerfAply.do"
}
],
"semantic_field_count": 26
}| 순번 | 오류 코드 | 발생 조건 |
|---|---|---|
| AUTH_ | 세션 없음 — 로그인 세션이 없습니다. 로그인을 먼저 호출합니다. | |
| PROVIDER_ | 인증 만료 — 인증이 만료됐습니다. 로그인을 다시 호출합니다. | |
| PROVIDER_ | 업스트림 오류 — 기관 응답이 지연되거나 형식이 올바르지 않습니다. 잠시 후 다시 호출합니다. | |
| PROVIDER_ | 검증 오류 — 보낸 파라미터 값을 기관이 거부했습니다. 값을 확인합니다. |
2. 증명서 신청/발급 제출fourinsure. b1. certificate. apply. submit
샌드박스입니다. 실제 기관을 호출하지 않는 모의 응답이며 일일 한도가 없습니다.
가입내역확인 증명서 신청과 발급을 제출하고 접수와 발급 상태를 반환합니다.
- 로그인을 먼저 호출해 세션을 만든 뒤, 같은 account_link_id 로 호출합니다. [4대보험 로그인]
- sandbox 환경에서는 실제 기관에 접속하지 않습니다. result.data 에는 mock: true 와 보낸 params 를 그대로 담은 params_echo 가 오고, 업무 응답 필드는 오지 않습니다.
- 되돌릴 수 없는 접수라 사용자 동의를 받은 뒤 confirm 을 true 로 보내야 제출됩니다. dry_run 을 true 로 보내면 접수 없이 검증만 합니다.
Request
| 순번 | 변수명 | 필수 | 설명 |
|---|---|---|---|
| Authorization | Y | API 자격증명입니다. client_id 와 client_secret 을 콜론으로 이어 Base64 로 인코딩해 보냅니다. | |
| X- | Y | 호출 환경입니다.
| |
| Idempotency- | Y | 재시도 식별 키입니다. 같은 키와 같은 본문으로 다시 호출하면 기존 작업이 그대로 반환됩니다. ASCII 문자만 사용하며 UUID v4 를 권장합니다. 고객 정보는 넣지 않습니다. | |
| Content- | Y | 요청 본문 형식입니다.
| |
| X- | N | 추적 아이디입니다. 지정하지 않으면 서버가 발급합니다. |
| 순번 | 변수명 | 타입 | 길이 | 필수 | 설명 |
|---|---|---|---|---|---|
| provider | string | - | Y | 호출할 기관입니다.
| |
| action | string | - | Y | 호출할 작업입니다.
| |
| account_ | string | 36 | 조건부 | 등록한 자격증명을 가리키는 아이디입니다. 생략하면 이 계정이 그 기관에 등록한 자격증명 중 대표로 지정한 것이 쓰입니다. 대표가 없으면 등록한 자격증명이 하나뿐일 때만 자동으로 선택되고, 둘 이상이면 직접 지정해야 합니다. | |
| params | object | - | Y | 작업 파라미터입니다. 아래 params 파라미터 표의 필수 항목을 채워 보냅니다. | |
| encrypted_ | object | - | N | 민감한 params 값을 RSA-OAEP-256 으로 암호화해 담는 객체입니다. 서버가 복호화해 params 에 합칩니다. 같은 이름을 params 와 함께 쓰지 않습니다. |
| 순번 | 변수명 | 타입 | 필수 | 설명 |
|---|---|---|---|---|
| selection | string | Y | 증명서 종류. 2=사업장 가입내역확인서, 3=사업장 가입자명부 또는. 별칭은 document_type 입니다 | |
| output_ | string | N | 출력 정렬 otptSortSeCd. 1=이름순, 2=주민등록순. 기본 1 | |
| phone_ | string | N | 연락처 지역번호 idntyTrprTelrno | |
| phone_ | string | N | 연락처 국번호 idntyTrprTelono | |
| phone_ | string | N | 연락처 끝번호 idntyTrprTelino | |
| confirm | boolean | N | 제출 확인. 사용자에게 미리보기를 보여주고 동의를 받았을 때만 true 로 보낸다. 자동으로 채우지 않는다 | |
| confirm_ | boolean | N | dry-run 모드 선택기이며 **확인 게이트가 아니다**. false 면 제출 없이 payload 검증만 한다. 사용자 동의는 위의 confirm 으로 받는다 — 이 값의 기본값을 false 로 바꾸면 동의한 호출자가 조용히 제출되지 않은 채 성공 응답을 받게 되므로 바꾸지 않는다 | |
| dry_ | boolean | N | true면 upstream POST 없이 dry-run 응답 |
curl --request POST \
--url 'https://api.xdata.kr/v1/jobs' \
--header 'Authorization: Basic {base64(client_id:client_secret)}' \
--header 'X-Env-Scope: sandbox' \
--header 'Idempotency-Key: demo-submit-001' \
--header 'Content-Type: application/json' \
--data '{
"provider": "fourinsure",
"action": "fourinsure.b1.certificate.apply.submit",
"account_link_id": "9b4c3a2f-0000-4000-8000-000000000000",
"params": {
"selection": "<필수>"
}
}'Response
- result.data 의 submitted 로 접수됐는지, cvrc_no 와 received_at 으로 접수 번호와 시각을 확인합니다. dry_run 이 true 면 접수하지 않은 검증 결과입니다.
| 순번 | 변수명 | 설명 |
|---|---|---|
| success | 요청 처리 성공 여부 | |
| submitted | 실제 제출 수행 여부 | |
| dry_ | dry-run 모드 여부 | |
| selection | 선택한 증명서 종류 | |
| join_ | 가입내역확인서 종류 코드 | |
| output_ | 출력 정렬 코드 | |
| cvrc_ | 민원접수번호 | |
| request_ | 신청 유형 | |
| received_ | 접수 일시 | |
| process_ | 처리 기관 배열 | |
| statuses | 처리 상태 배열 | |
| issued_ | 발급 일시 | |
| form_ | hidden form 필드 맵 | |
| navigation_ | 화면 내비게이션 단계 배열 | |
| source_ | 업스트림 요청 URL | |
| raw_ | 원본 HTML 길이 |
// result.data
{
"success": true,
"submitted": true,
"dry_run": false,
"selection": "WORKPLACE",
"join_dsctn_cdoc_knd_cd": "1",
"output_sort_code": "1",
"cvrc_no": "...",
"request_type": "...",
"received_at": "2026-06-15 10:00:00",
"process_agencies": ["..."],
"issued_at": "...",
"statuses": ["접수"],
"form_hidden": {},
"navigation_steps": [],
"raw_html_len": 0,
"source_url": "https://..."
}| 순번 | 오류 코드 | 발생 조건 |
|---|---|---|
| AUTH_ | 세션 없음 — 로그인 세션이 없습니다. 로그인을 먼저 호출합니다. | |
| PROVIDER_ | 인증 만료 — 인증이 만료됐습니다. 로그인을 다시 호출합니다. | |
| PROVIDER_ | 업스트림 오류 — 기관 응답이 지연되거나 형식이 올바르지 않습니다. 잠시 후 다시 호출합니다. | |
| PROVIDER_ | 검증 오류 — 보낸 파라미터 값을 기관이 거부했습니다. 값을 확인합니다. |
3. 증명서 신청이력 상세 조회fourinsure. b1. certificate. history. detail
샌드박스입니다. 실제 기관을 호출하지 않는 모의 응답이며 일일 한도가 없습니다.
특정 증명서 신청 건의 상세 처리 상태와 발급 정보를 조회합니다.
- 로그인을 먼저 호출해 세션을 만든 뒤, 같은 account_link_id 로 호출합니다. [4대보험 로그인]
- sandbox 환경에서는 실제 기관에 접속하지 않습니다. result.data 에는 mock: true 와 보낸 params 를 그대로 담은 params_echo 가 오고, 업무 응답 필드는 오지 않습니다.
Request
| 순번 | 변수명 | 필수 | 설명 |
|---|---|---|---|
| Authorization | Y | API 자격증명입니다. client_id 와 client_secret 을 콜론으로 이어 Base64 로 인코딩해 보냅니다. | |
| X- | Y | 호출 환경입니다.
| |
| Idempotency- | Y | 재시도 식별 키입니다. 같은 키와 같은 본문으로 다시 호출하면 기존 작업이 그대로 반환됩니다. ASCII 문자만 사용하며 UUID v4 를 권장합니다. 고객 정보는 넣지 않습니다. | |
| Content- | Y | 요청 본문 형식입니다.
| |
| X- | N | 추적 아이디입니다. 지정하지 않으면 서버가 발급합니다. |
| 순번 | 변수명 | 타입 | 길이 | 필수 | 설명 |
|---|---|---|---|---|---|
| provider | string | - | Y | 호출할 기관입니다.
| |
| action | string | - | Y | 호출할 작업입니다.
| |
| account_ | string | 36 | 조건부 | 등록한 자격증명을 가리키는 아이디입니다. 생략하면 이 계정이 그 기관에 등록한 자격증명 중 대표로 지정한 것이 쓰입니다. 대표가 없으면 등록한 자격증명이 하나뿐일 때만 자동으로 선택되고, 둘 이상이면 직접 지정해야 합니다. | |
| params | object | - | Y | 작업 파라미터입니다. 아래 params 파라미터 표의 필수 항목을 채워 보냅니다. | |
| encrypted_ | object | - | N | 민감한 params 값을 RSA-OAEP-256 으로 암호화해 담는 객체입니다. 서버가 복호화해 params 에 합칩니다. 같은 이름을 params 와 함께 쓰지 않습니다. |
| 순번 | 변수명 | 타입 | 필수 | 설명 |
|---|---|---|---|---|
| cvrc_ | string | Y | 증명서 신청이력 상세 조회용 민원번호 cvrcNo | |
| group_ | string | N | 그룹 민원번호 groupCvrcNo. 기본 "" |
curl --request POST \
--url 'https://api.xdata.kr/v1/jobs' \
--header 'Authorization: Basic {base64(client_id:client_secret)}' \
--header 'X-Env-Scope: sandbox' \
--header 'Idempotency-Key: demo-detail-001' \
--header 'Content-Type: application/json' \
--data '{
"provider": "fourinsure",
"action": "fourinsure.b1.certificate.history.detail",
"account_link_id": "9b4c3a2f-0000-4000-8000-000000000000",
"params": {
"cvrc_no": "<필수>"
}
}'Response
- result.data 의 statuses 로 처리 상태를, pdf_download_available 로 PDF 를 받을 수 있는지 확인합니다.
| 순번 | 변수명 | 설명 |
|---|---|---|
| success | 요청 처리 성공 여부 | |
| cvrc_ | 민원접수번호 | |
| request_ | 신청 유형 | |
| received_ | 접수 일시 | |
| process_ | 처리 기관 배열 | |
| statuses | 처리 상태 배열 | |
| issued_ | 발급 일시 | |
| status_ | 상태 코드 | |
| print_ | 인쇄 버튼 존재 여부 | |
| print_ | 인쇄 가능 여부 | |
| pdf_ | PDF 다운로드 가능 여부 | |
| form_ | hidden form 필드 맵 | |
| source_ | 업스트림 요청 URL |
// result.data
{
"success": true,
"cvrc_no": "...",
"request_type": "...",
"received_at": "2026-06-15",
"process_agencies": [],
"statuses": [],
"issued_at": "2026-06-15",
"status_code": "...",
"print_button_present": true,
"print_available": true,
"pdf_download_available": true,
"form_hidden": {},
"source_url": "..."
}| 순번 | 오류 코드 | 발생 조건 |
|---|---|---|
| AUTH_ | 세션 없음 — 로그인 세션이 없습니다. 로그인을 먼저 호출합니다. | |
| PROVIDER_ | 인증 만료 — 인증이 만료됐습니다. 로그인을 다시 호출합니다. | |
| PROVIDER_ | 업스트림 오류 — 기관 응답이 지연되거나 형식이 올바르지 않습니다. 잠시 후 다시 호출합니다. | |
| PROVIDER_ | 검증 오류 — 보낸 파라미터 값을 기관이 거부했습니다. 값을 확인합니다. |
4. 증명서 신청이력 상세 입력 서식 조회fourinsure. b1. certificate. history. detail_ init
샌드박스입니다. 실제 기관을 호출하지 않는 모의 응답이며 일일 한도가 없습니다.
증명서 신청이력 상세 화면을 열기 전에 필요한 항목을 미리 받아옵니다.
- 로그인을 먼저 호출해 세션을 만든 뒤, 같은 account_link_id 로 호출합니다. [4대보험 로그인]
- sandbox 환경에서는 실제 기관에 접속하지 않습니다. result.data 에는 mock: true 와 보낸 params 를 그대로 담은 params_echo 가 오고, 업무 응답 필드는 오지 않습니다.
Request
| 순번 | 변수명 | 필수 | 설명 |
|---|---|---|---|
| Authorization | Y | API 자격증명입니다. client_id 와 client_secret 을 콜론으로 이어 Base64 로 인코딩해 보냅니다. | |
| X- | Y | 호출 환경입니다.
| |
| Idempotency- | Y | 재시도 식별 키입니다. 같은 키와 같은 본문으로 다시 호출하면 기존 작업이 그대로 반환됩니다. ASCII 문자만 사용하며 UUID v4 를 권장합니다. 고객 정보는 넣지 않습니다. | |
| Content- | Y | 요청 본문 형식입니다.
| |
| X- | N | 추적 아이디입니다. 지정하지 않으면 서버가 발급합니다. |
| 순번 | 변수명 | 타입 | 길이 | 필수 | 설명 |
|---|---|---|---|---|---|
| provider | string | - | Y | 호출할 기관입니다.
| |
| action | string | - | Y | 호출할 작업입니다.
| |
| account_ | string | 36 | 조건부 | 등록한 자격증명을 가리키는 아이디입니다. 생략하면 이 계정이 그 기관에 등록한 자격증명 중 대표로 지정한 것이 쓰입니다. 대표가 없으면 등록한 자격증명이 하나뿐일 때만 자동으로 선택되고, 둘 이상이면 직접 지정해야 합니다. | |
| params | object | - | Y | 작업 파라미터입니다. 아래 params 파라미터 표의 필수 항목을 채워 보냅니다. | |
| encrypted_ | object | - | N | 민감한 params 값을 RSA-OAEP-256 으로 암호화해 담는 객체입니다. 서버가 복호화해 params 에 합칩니다. 같은 이름을 params 와 함께 쓰지 않습니다. |
| 순번 | 변수명 | 타입 | 필수 | 설명 |
|---|---|---|---|---|
| cvrc_ | string | Y | 증명서 신청이력 상세 조회용 민원번호 cvrcNo | |
| group_ | string | N | 그룹 민원번호 groupCvrcNo. 기본 "" |
curl --request POST \
--url 'https://api.xdata.kr/v1/jobs' \
--header 'Authorization: Basic {base64(client_id:client_secret)}' \
--header 'X-Env-Scope: sandbox' \
--header 'Idempotency-Key: demo-detail_init-001' \
--header 'Content-Type: application/json' \
--data '{
"provider": "fourinsure",
"action": "fourinsure.b1.certificate.history.detail_init",
"account_link_id": "9b4c3a2f-0000-4000-8000-000000000000",
"params": {
"cvrc_no": "<필수>"
}
}'Response
- result.data 에서 입력 항목(fields)과 다음 단계 정보를 확인해 후속 요청 본문을 만듭니다.
| 순번 | 변수명 | 설명 |
|---|---|---|
| success | 요청 처리 성공 여부 | |
| page | 화면 페이지 메타 객체 | |
| forms | form 메타데이터 배열 | |
| fields | 입력 필드 계약 배열 | |
| semantic_ | 의미 단위 입력 컨트롤 배열 | |
| semantic_ | 의미 필드 키-값 맵 | |
| semantic_ | 의미 필드 개수 | |
| csrf_ | CSRF 토큰 존재 여부 | |
| followup_ | 후속 endpoint URL 배열 | |
| navigation_ | 화면 내비게이션 단계 배열 | |
| current_ | 현재 화면 식별자 | |
| target_ | 대상 폼 준비 여부 | |
| raw_ | 원본 HTML 길이 | |
| source_ | 업스트림 요청 URL |
// result.data
{
"success": true,
"page": {},
"forms": [],
"fields": [],
"semantic_fields": [],
"semantic_payload": {},
"semantic_field_count": 1,
"csrf_token_present": true,
"followup_endpoints": [],
"navigation_steps": [],
"current_view": "...",
"target_ready": true,
"raw_html_len": 0,
"source_url": "..."
}| 순번 | 오류 코드 | 발생 조건 |
|---|---|---|
| AUTH_ | 세션 없음 — 로그인 세션이 없습니다. 로그인을 먼저 호출합니다. | |
| PROVIDER_ | 인증 만료 — 인증이 만료됐습니다. 로그인을 다시 호출합니다. | |
| PROVIDER_ | 업스트림 오류 — 기관 응답이 지연되거나 형식이 올바르지 않습니다. 잠시 후 다시 호출합니다. | |
| PROVIDER_ | 검증 오류 — 보낸 파라미터 값을 기관이 거부했습니다. 값을 확인합니다. |
5. 증명서 신청이력 목록 조회fourinsure. b1. certificate. history. list
샌드박스입니다. 실제 기관을 호출하지 않는 모의 응답이며 일일 한도가 없습니다.
4대보험 EDI 증명서 신청이력 목록 조회 업무를 위해 사업장의 증명서 신청이력 목록을 조회합니다.
- 로그인을 먼저 호출해 세션을 만든 뒤, 같은 account_link_id 로 호출합니다. [4대보험 로그인]
- 조회 결과가 없으면 items 가 빈 배열로 옵니다. 실패가 아닙니다.
- sandbox 환경에서는 실제 기관에 접속하지 않습니다. result.data 에는 mock: true 와 보낸 params 를 그대로 담은 params_echo 가 오고, 업무 응답 필드는 오지 않습니다.
- params 는 빈 객체로 보내도 호출됩니다. 사용할 인증서는 account_link_id 로 지정합니다.
Request
| 순번 | 변수명 | 필수 | 설명 |
|---|---|---|---|
| Authorization | Y | API 자격증명입니다. client_id 와 client_secret 을 콜론으로 이어 Base64 로 인코딩해 보냅니다. | |
| X- | Y | 호출 환경입니다.
| |
| Idempotency- | Y | 재시도 식별 키입니다. 같은 키와 같은 본문으로 다시 호출하면 기존 작업이 그대로 반환됩니다. ASCII 문자만 사용하며 UUID v4 를 권장합니다. 고객 정보는 넣지 않습니다. | |
| Content- | Y | 요청 본문 형식입니다.
| |
| X- | N | 추적 아이디입니다. 지정하지 않으면 서버가 발급합니다. |
| 순번 | 변수명 | 타입 | 길이 | 필수 | 설명 |
|---|---|---|---|---|---|
| provider | string | - | Y | 호출할 기관입니다.
| |
| action | string | - | Y | 호출할 작업입니다.
| |
| account_ | string | 36 | 조건부 | 등록한 자격증명을 가리키는 아이디입니다. 생략하면 이 계정이 그 기관에 등록한 자격증명 중 대표로 지정한 것이 쓰입니다. 대표가 없으면 등록한 자격증명이 하나뿐일 때만 자동으로 선택되고, 둘 이상이면 직접 지정해야 합니다. | |
| params | object | - | N | 작업 파라미터입니다. 이 API 는 빈 객체로 호출할 수 있습니다. | |
| encrypted_ | object | - | N | 민감한 params 값을 RSA-OAEP-256 으로 암호화해 담는 객체입니다. 서버가 복호화해 params 에 합칩니다. 같은 이름을 params 와 함께 쓰지 않습니다. |
추가 파라미터가 없습니다. params 는 {} 로 보냅니다.
curl --request POST \
--url 'https://api.xdata.kr/v1/jobs' \
--header 'Authorization: Basic {base64(client_id:client_secret)}' \
--header 'X-Env-Scope: sandbox' \
--header 'Idempotency-Key: demo-list-001' \
--header 'Content-Type: application/json' \
--data '{
"provider": "fourinsure",
"action": "fourinsure.b1.certificate.history.list",
"account_link_id": "9b4c3a2f-0000-4000-8000-000000000000",
"params": {}
}'Response
- result.data 의 items 로 조회 결과를 확인합니다.
| 순번 | 변수명 | 설명 |
|---|---|---|
| success | 요청 처리 성공 여부 | |
| items | 조회 결과 행 배열 | |
| source_ | 업스트림 요청 URL |
// result.data
{
"success": true,
"items": [
{
"row_index": 0,
"row_key": "..."
}
],
"source_url": "..."
}| 순번 | 오류 코드 | 발생 조건 |
|---|---|---|
| AUTH_ | 세션 없음 — 로그인 세션이 없습니다. 로그인을 먼저 호출합니다. | |
| PROVIDER_ | 인증 만료 — 인증이 만료됐습니다. 로그인을 다시 호출합니다. | |
| PROVIDER_ | 업스트림 오류 — 기관 응답이 지연되거나 형식이 올바르지 않습니다. 잠시 후 다시 호출합니다. | |
| PROVIDER_ | 검증 오류 — 보낸 파라미터 값을 기관이 거부했습니다. 값을 확인합니다. |
6. 증명서 신청이력 목록 입력 서식 조회fourinsure. b1. certificate. history. list_ init
샌드박스입니다. 실제 기관을 호출하지 않는 모의 응답이며 일일 한도가 없습니다.
증명서 신청이력을 조회하기 전에 정보연계센터 조회 화면이 어떤 항목을 요구하는지 미리 받아 둡니다.
- 로그인을 먼저 호출해 세션을 만든 뒤, 같은 account_link_id 로 호출합니다. [4대보험 로그인]
- sandbox 환경에서는 실제 기관에 접속하지 않습니다. result.data 에는 mock: true 와 보낸 params 를 그대로 담은 params_echo 가 오고, 업무 응답 필드는 오지 않습니다.
- params 는 빈 객체로 보내도 호출됩니다. 사용할 인증서는 account_link_id 로 지정합니다.
Request
| 순번 | 변수명 | 필수 | 설명 |
|---|---|---|---|
| Authorization | Y | API 자격증명입니다. client_id 와 client_secret 을 콜론으로 이어 Base64 로 인코딩해 보냅니다. | |
| X- | Y | 호출 환경입니다.
| |
| Idempotency- | Y | 재시도 식별 키입니다. 같은 키와 같은 본문으로 다시 호출하면 기존 작업이 그대로 반환됩니다. ASCII 문자만 사용하며 UUID v4 를 권장합니다. 고객 정보는 넣지 않습니다. | |
| Content- | Y | 요청 본문 형식입니다.
| |
| X- | N | 추적 아이디입니다. 지정하지 않으면 서버가 발급합니다. |
| 순번 | 변수명 | 타입 | 길이 | 필수 | 설명 |
|---|---|---|---|---|---|
| provider | string | - | Y | 호출할 기관입니다.
| |
| action | string | - | Y | 호출할 작업입니다.
| |
| account_ | string | 36 | 조건부 | 등록한 자격증명을 가리키는 아이디입니다. 생략하면 이 계정이 그 기관에 등록한 자격증명 중 대표로 지정한 것이 쓰입니다. 대표가 없으면 등록한 자격증명이 하나뿐일 때만 자동으로 선택되고, 둘 이상이면 직접 지정해야 합니다. | |
| params | object | - | N | 작업 파라미터입니다. 이 API 는 빈 객체로 호출할 수 있습니다. | |
| encrypted_ | object | - | N | 민감한 params 값을 RSA-OAEP-256 으로 암호화해 담는 객체입니다. 서버가 복호화해 params 에 합칩니다. 같은 이름을 params 와 함께 쓰지 않습니다. |
추가 파라미터가 없습니다. params 는 {} 로 보냅니다.
curl --request POST \
--url 'https://api.xdata.kr/v1/jobs' \
--header 'Authorization: Basic {base64(client_id:client_secret)}' \
--header 'X-Env-Scope: sandbox' \
--header 'Idempotency-Key: demo-list_init-001' \
--header 'Content-Type: application/json' \
--data '{
"provider": "fourinsure",
"action": "fourinsure.b1.certificate.history.list_init",
"account_link_id": "9b4c3a2f-0000-4000-8000-000000000000",
"params": {}
}'Response
- result.data 에서 입력 항목(fields)과 다음 단계 정보를 확인해 후속 요청 본문을 만듭니다.
| 순번 | 변수명 | 설명 |
|---|---|---|
| success | 요청 처리 성공 여부 | |
| page | 화면 페이지 메타 객체 | |
| forms | form 메타데이터 배열 | |
| fields | 입력 필드 계약 배열 | |
| semantic_ | 의미 단위 입력 컨트롤 배열 | |
| semantic_ | 의미 필드 키-값 맵 | |
| semantic_ | 의미 필드 개수 | |
| csrf_ | CSRF 토큰 존재 여부 | |
| followup_ | 후속 endpoint URL 배열 | |
| navigation_ | 화면 내비게이션 단계 배열 | |
| current_ | 현재 화면 식별자 | |
| target_ | 대상 폼 준비 여부 | |
| raw_ | 원본 HTML 길이 | |
| source_ | 업스트림 요청 URL |
// result.data
{
"success": true,
"page": {},
"forms": [],
"fields": [],
"semantic_fields": [],
"semantic_payload": {},
"semantic_field_count": 1,
"csrf_token_present": true,
"followup_endpoints": [],
"navigation_steps": [],
"current_view": "...",
"target_ready": true,
"raw_html_len": 0,
"source_url": "..."
}| 순번 | 오류 코드 | 발생 조건 |
|---|---|---|
| AUTH_ | 세션 없음 — 로그인 세션이 없습니다. 로그인을 먼저 호출합니다. | |
| PROVIDER_ | 인증 만료 — 인증이 만료됐습니다. 로그인을 다시 호출합니다. | |
| PROVIDER_ | 업스트림 오류 — 기관 응답이 지연되거나 형식이 올바르지 않습니다. 잠시 후 다시 호출합니다. | |
| PROVIDER_ | 검증 오류 — 보낸 파라미터 값을 기관이 거부했습니다. 값을 확인합니다. |
7. 증명서 신청이력 PDF 다운로드fourinsure. b1. certificate. history. pdf_ download
샌드박스입니다. 실제 기관을 호출하지 않는 모의 응답이며 일일 한도가 없습니다.
4대보험 EDI 증명서 신청이력 PDF 다운로드 업무를 위해 출력할 수 있는 증명서 신청 건의 PDF를 내려받습니다.
- 로그인을 먼저 호출해 세션을 만든 뒤, 같은 account_link_id 로 호출합니다. [4대보험 로그인]
- sandbox 환경에서는 실제 기관에 접속하지 않습니다. result.data 에는 mock: true 와 보낸 params 를 그대로 담은 params_echo 가 오고, 업무 응답 필드는 오지 않습니다.
- 기본은 dry_run=true 로 대상만 확인합니다. 실제로 받으려면 dry_run 을 false, confirm_download 를 true 로 보냅니다.
Request
| 순번 | 변수명 | 필수 | 설명 |
|---|---|---|---|
| Authorization | Y | API 자격증명입니다. client_id 와 client_secret 을 콜론으로 이어 Base64 로 인코딩해 보냅니다. | |
| X- | Y | 호출 환경입니다.
| |
| Idempotency- | Y | 재시도 식별 키입니다. 같은 키와 같은 본문으로 다시 호출하면 기존 작업이 그대로 반환됩니다. ASCII 문자만 사용하며 UUID v4 를 권장합니다. 고객 정보는 넣지 않습니다. | |
| Content- | Y | 요청 본문 형식입니다.
| |
| X- | N | 추적 아이디입니다. 지정하지 않으면 서버가 발급합니다. |
| 순번 | 변수명 | 타입 | 길이 | 필수 | 설명 |
|---|---|---|---|---|---|
| provider | string | - | Y | 호출할 기관입니다.
| |
| action | string | - | Y | 호출할 작업입니다.
| |
| account_ | string | 36 | 조건부 | 등록한 자격증명을 가리키는 아이디입니다. 생략하면 이 계정이 그 기관에 등록한 자격증명 중 대표로 지정한 것이 쓰입니다. 대표가 없으면 등록한 자격증명이 하나뿐일 때만 자동으로 선택되고, 둘 이상이면 직접 지정해야 합니다. | |
| params | object | - | Y | 작업 파라미터입니다. 아래 params 파라미터 표의 필수 항목을 채워 보냅니다. | |
| encrypted_ | object | - | N | 민감한 params 값을 RSA-OAEP-256 으로 암호화해 담는 객체입니다. 서버가 복호화해 params 에 합칩니다. 같은 이름을 params 와 함께 쓰지 않습니다. |
| 순번 | 변수명 | 타입 | 필수 | 설명 |
|---|---|---|---|---|
| cvrc_ | string | N | 대상 민원번호 cvrcNo. 미입력 시 download_all_available로 목록에서 선택 | |
| group_ | string | N | 그룹 민원번호 groupCvrcNo. 기본 "" | |
| download_ | boolean | N | true면 출력가능 전체 행 대상. cvrc_no 미지정 시 사용 | |
| confirm_ | boolean | N | true일 때만 MarkAny PDF export 수행. dry_run=false 시 필수 | |
| dry_ | boolean | N | true면 PDF export 없이 대상·payload만 검증. 기본 true | |
| mark_ | boolean | N | PDF export 후 updateCerfIssuAjax 출력 처리 여부 | |
| include_ | boolean | N | 응답에 pdf_base64 포함 여부 | |
| pdf_ | string | N | 저장 파일명 힌트 (pdfFileNm) | |
| pdf_ | string | N | PDF 파일 비밀번호 (pdfFilePw) |
curl --request POST \
--url 'https://api.xdata.kr/v1/jobs' \
--header 'Authorization: Basic {base64(client_id:client_secret)}' \
--header 'X-Env-Scope: sandbox' \
--header 'Idempotency-Key: demo-pdf_download-001' \
--header 'Content-Type: application/json' \
--data '{
"provider": "fourinsure",
"action": "fourinsure.b1.certificate.history.pdf_download",
"account_link_id": "9b4c3a2f-0000-4000-8000-000000000000",
"params": {}
}'Response
- result.data 의 downloaded_count 와 items(행마다 downloaded · pdf_base64)로 결과를 확인합니다. dry_run 이 true 면 대상만 확인한 결과입니다.
| 순번 | 변수명 | 설명 |
|---|---|---|
| success | 요청 처리 성공 여부 | |
| dry_ | dry-run 모드 여부 | |
| confirm_ | 다운로드 확인 플래그 | |
| requested_ | 요청 건수 | |
| downloaded_ | 다운로드 완료 건수 | |
| succeeded_ | succeeded_count 필드 | |
| failed_ | failed_count 필드 | |
| items | 조회 결과 행 배열 | |
| source_ | 업스트림 요청 URL |
// result.data
{
"success": true,
"dry_run": false,
"confirm_download": false,
"requested_count": 1,
"downloaded_count": 1,
"items": [
{
"row_index": 0,
"row_key": "..."
}
],
"source_url": "..."
}| 순번 | 오류 코드 | 발생 조건 |
|---|---|---|
| AUTH_ | 세션 없음 — 로그인 세션이 없습니다. 로그인을 먼저 호출합니다. | |
| PROVIDER_ | 인증 만료 — 인증이 만료됐습니다. 로그인을 다시 호출합니다. | |
| PROVIDER_ | 업스트림 오류 — 기관 응답이 지연되거나 형식이 올바르지 않습니다. 잠시 후 다시 호출합니다. | |
| PROVIDER_ | 검증 오류 — 보낸 파라미터 값을 기관이 거부했습니다. 값을 확인합니다. |
8. 증명서 발급사실 확인fourinsure. b1. certificate. issue_ fact. confirm
샌드박스입니다. 실제 기관을 호출하지 않는 모의 응답이며 일일 한도가 없습니다.
4대보험 EDI 증명서 발급사실 확인 업무를 위해 발급번호와 가입종류 등으로 증명서 발급 사실을 확인합니다.
- 로그인을 먼저 호출해 세션을 만든 뒤, 같은 account_link_id 로 호출합니다. [4대보험 로그인]
- sandbox 환경에서는 실제 기관에 접속하지 않습니다. result.data 에는 mock: true 와 보낸 params 를 그대로 담은 params_echo 가 오고, 업무 응답 필드는 오지 않습니다.
Request
| 순번 | 변수명 | 필수 | 설명 |
|---|---|---|---|
| Authorization | Y | API 자격증명입니다. client_id 와 client_secret 을 콜론으로 이어 Base64 로 인코딩해 보냅니다. | |
| X- | Y | 호출 환경입니다.
| |
| Idempotency- | Y | 재시도 식별 키입니다. 같은 키와 같은 본문으로 다시 호출하면 기존 작업이 그대로 반환됩니다. ASCII 문자만 사용하며 UUID v4 를 권장합니다. 고객 정보는 넣지 않습니다. | |
| Content- | Y | 요청 본문 형식입니다.
| |
| X- | N | 추적 아이디입니다. 지정하지 않으면 서버가 발급합니다. |
| 순번 | 변수명 | 타입 | 길이 | 필수 | 설명 |
|---|---|---|---|---|---|
| provider | string | - | Y | 호출할 기관입니다.
| |
| action | string | - | Y | 호출할 작업입니다.
| |
| account_ | string | 36 | 조건부 | 등록한 자격증명을 가리키는 아이디입니다. 생략하면 이 계정이 그 기관에 등록한 자격증명 중 대표로 지정한 것이 쓰입니다. 대표가 없으면 등록한 자격증명이 하나뿐일 때만 자동으로 선택되고, 둘 이상이면 직접 지정해야 합니다. | |
| params | object | - | Y | 작업 파라미터입니다. 아래 params 파라미터 표의 필수 항목을 채워 보냅니다. | |
| encrypted_ | object | - | N | 민감한 params 값을 RSA-OAEP-256 으로 암호화해 담는 객체입니다. 서버가 복호화해 params 에 합칩니다. 같은 이름을 params 와 함께 쓰지 않습니다. |
| 순번 | 변수명 | 타입 | 필수 | 설명 |
|---|---|---|---|---|
| join_ | string | Y | 증명서 종류 joinKindCd. 0/2/3=사업장( bpmno 필수), 1=가입자( idnty_nm·frnt_rrno 필수) | |
| issu_ | string | Y | 발급번호 issuNo (숫자만 추출) | |
| bpmno | string | N | 사업장관리번호 11자리. join_kind_cd 0/2/3 시 필수 | |
| idnty_ | string | N | 가입자 성명. join_kind_cd 1 시 필수 | |
| frnt_ | string | N | 주민번호 앞 6자리. join_kind_cd 1 시 필수 |
curl --request POST \
--url 'https://api.xdata.kr/v1/jobs' \
--header 'Authorization: Basic {base64(client_id:client_secret)}' \
--header 'X-Env-Scope: sandbox' \
--header 'Idempotency-Key: demo-confirm-001' \
--header 'Content-Type: application/json' \
--data '{
"provider": "fourinsure",
"action": "fourinsure.b1.certificate.issue_fact.confirm",
"account_link_id": "9b4c3a2f-0000-4000-8000-000000000000",
"params": {
"join_kind_cd": "<필수>",
"issu_no": "<필수>"
}
}'Response
- result.data 의 verified 로 발급 사실이 확인됐는지 봅니다. 판정 내용은 status_code 와 message 에 담깁니다.
| 순번 | 변수명 | 설명 |
|---|---|---|
| success | 요청 처리 성공 여부 | |
| verified | 발급사실 검증 결과 | |
| status_ | 상태 코드 | |
| requested_ | 요청 가입종류 코드 | |
| submitted_ | 제출 가입종류 코드 | |
| input_ | 입력 모드 | |
| document_ | 문서 유형 | |
| title | 화면/결과 제목 | |
| message | 결과 메시지 | |
| issu_ | 발급번호 | |
| bpmno | 사업장관리번호 | |
| issued_ | 발급일 | |
| issued_ | 발급일 표시 텍스트 | |
| issuer | 발급 기관 | |
| submitted_ | 제출 payload 맵 | |
| csrf_ | CSRF 토큰 존재 여부 | |
| raw_ | 원본 HTML 길이 | |
| source_ | 업스트림 요청 URL |
// result.data
{
"success": true,
"verified": true,
"status_code": "...",
"requested_join_kind_cd": "...",
"submitted_join_kind_cd": "...",
"input_mode": "...",
"document_type": "...",
"title": "...",
"message": "...",
"issu_no": "...",
"bpmno": "...",
"issued_date": "2026-06-15",
"issued_date_text": "2026-06-15",
"issuer": "...",
"submitted_payload": {},
"csrf_token_present": true,
"raw_html_len": 0,
"source_url": "..."
}| 순번 | 오류 코드 | 발생 조건 |
|---|---|---|
| AUTH_ | 세션 없음 — 로그인 세션이 없습니다. 로그인을 먼저 호출합니다. | |
| PROVIDER_ | 인증 만료 — 인증이 만료됐습니다. 로그인을 다시 호출합니다. | |
| PROVIDER_ | 업스트림 오류 — 기관 응답이 지연되거나 형식이 올바르지 않습니다. 잠시 후 다시 호출합니다. | |
| PROVIDER_ | 검증 오류 — 보낸 파라미터 값을 기관이 거부했습니다. 값을 확인합니다. |