개발자 문서
API 레퍼런스

파일신고

1. 파일신고 입력 서식 조회nhis_edi.file_report.init

POSThttps://api.xdata.kr/v1/jobsX-Env-Scope: sandbox

샌드박스입니다. 실제 기관을 호출하지 않는 모의 응답이며 일일 한도가 없습니다.

WE::WETC_120 파일신고 화면 form contract(supported_documents·file_inputs·blocked_transactions)를 조회합니다.

  • 로그인을 먼저 호출해 세션을 만든 뒤, 같은 account_link_id 로 호출합니다. [국민건강보험공단 EDI 로그인]
  • 파일열기·자료검증·전송/신고 미실행. JGBA_021I_SND 등 blocked_transactions에만 기록.
  • params 는 빈 객체로 보내도 호출됩니다.
Request
순번변수명필수설명
AuthorizationYAPI 자격증명입니다. client_id 와 client_secret 을 콜론으로 이어 Base64 로 인코딩해 보냅니다.

형식 : Basic base64("{client_id}:{client_secret}")

[참고] 인증

X-Env-ScopeY호출 환경입니다.
  • sandbox샌드박스 — 모의 응답
  • real_test데모 — 하루 100 사용 토큰
  • production정식 — 유료 플랜 전용

[참고] 환경

Idempotency-KeyY재시도 식별 키입니다. 같은 키와 같은 본문으로 다시 호출하면 기존 작업이 그대로 반환됩니다. ASCII 문자만 사용하며 UUID v4 를 권장합니다. 고객 정보는 넣지 않습니다.

[참고] 재시도

Content-TypeY요청 본문 형식입니다.
  • application/json고정값 (기본값)
X-Trace-IdN추적 아이디입니다. 지정하지 않으면 서버가 발급합니다.
순번변수명타입길이필수설명
providerstring-Y호출할 기관입니다.
  • nhis_edi이 API 고정값 (기본값)

예시 : nhis_edi

actionstring-Y호출할 작업입니다.
  • nhis_edi.file_report.init이 API 고정값 (기본값)

예시 : nhis_edi.file_report.init

account_link_idstring36조건부등록한 자격증명을 가리키는 아이디입니다. 생략하면 이 계정이 그 기관에 등록한 자격증명 중 대표로 지정한 것이 쓰입니다. 대표가 없으면 등록한 자격증명이 하나뿐일 때만 자동으로 선택되고, 둘 이상이면 직접 지정해야 합니다.

형식 : UUID v4

[참고] 자격증명 등록

paramsobject-N작업 파라미터입니다. 이 API 는 빈 객체로 호출할 수 있습니다.
encrypted_fieldsobject-N민감한 params 값을 RSA-OAEP-256 으로 암호화해 담는 객체입니다. 서버가 복호화해 params 에 합칩니다. 같은 이름을 params 와 함께 쓰지 않습니다.

[참고] 암호화

추가 파라미터가 없습니다. params 는 {} 로 보냅니다.

bash
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": "nhis_edi",
  "action": "nhis_edi.file_report.init",
  "account_link_id": "9b4c3a2f-0000-4000-8000-000000000000",
  "params": {}
}'
Response
  • supported_documents·file_inputs·safety·blocked_transactions 확인.
순번변수명설명
supported_documents지원 문서 양식 목록 배열
file_inputs파일 입력 계약 배열
safety안전 플래그 객체
blocked_transactions차단된 트랜잭션 목록 (실행 안 됨)
form_id기관 화면 폼 id
document_id기관 화면 문서 id
business_context사업장 기본 맥락 값
default_values화면 기본값
datasets기관 응답 데이터셋 원본
dataset_count데이터셋 수
datasets_of_interest업무에 쓰는 데이터셋 이름
fields입력 필드 정의 배열
field_count입력 필드 수
grid표 구성 (열 이름과 열 수)
init_transactions화면 초기 트랜잭션 목록
local_validation_steps제출 전 로컬 검증 단계
observed_callservices화면에서 관찰한 service 호출 목록
script_url화면 XFDL JavaScript URL
shortcut화면을 여는 바로가기 호출식(pageLinkPopup1 등)
source_url원천 NHIS EDI URL
target_ready화면 진입 준비 완료 여부
visible_text_markers화면 확인용 고정 문구
json
// result.data
{
  "grid": {
    "name": "grd_List",
    "columns": [
      "BCH_YN",
      "CHILD_BDAY",
      "CHILD_SEX",
      "DIV_CHASU",
      "JUMIN_NO",
      "JUNG_NO",
      "NM",
      "REINST_DIR_RETR_YN",
      "REINST_DT",
      "REINST_FEE_MM_AMT",
      "REINST_SCD_DT",
      "REST_END_DT1",
      "REST_END_DT2",
      "REST_END_DT3",
      "REST_KIND_CD1",
      "REST_KIND_CD2",
      "REST_KIND_CD3",
      "REST_PERD_FEE_AMT1",
      "REST_PERD_FEE_AMT2",
      "REST_PERD_FEE_AMT3",
      "REST_PERD_FEE_AMT4",
      "REST_PERD_FEE_AMT5",
      "REST_STRT_DT1",
      "REST_STRT_DT2",
      "REST_STRT_DT3",
      "REST_YEAR1",
      "REST_YEAR2",
      "REST_YEAR3",
      "REST_YEAR4",
      "REST_YEAR5",
      "RPT_TYPE",
      "SAYU_CD",
      "SEQ_NO",
      "TRET_DT"
    ],
    "dataset": "ds_import",
    "column_count": 34
  },
  "phase": "init",
  "fields": [
    {
      "mask": null,
      "name": "cbo_DocId",
      "text": null,
      "type": "Combo",
      "column": null,
      "dataset": null,
      "enabled": null,
      "readonly": null,
      "innerdataset": "@ds_DocId"
    }
  ],
  "safety": {
    "warning": "이 API는 파일신고 화면 contract/init 응답만 제공하며 파일열기, 자료검증, 전송/신고를 실행하지 않는다.",
    "init_only": true,
    "allowed_transaction_cmds": [
      "GetCnstInfo",
      "GetCommCombo2"
    ],
    "blocked_transaction_cmds": [
      "JGBA_021I_SND",
      "JGBB_031I_SND",
      "JGCB_040_I",
      "JGBA_010_I",
      "BMCC_080_I02_1"
    ],
    "mutating_actions_executed": false
  },
  "API_KEY": "[REDACTED]",
  "form_id": "frm_WETC_120",
  "success": true,
  "datasets": [
    "ds_DocId",
    "ds_import",
    "ds_Temp1",
    "ds_Temp2",
    "ds_Temp3",
    "ds_Temp4",
    "ds_Temp5",
    "ds_Temp6",
    "ds_Temp7",
    "ds_Temp8",
    "ds_Temp9",
    "ds_OrgType",
    "ds_FileErr",
    "ds_RptKey",
    "ds_Cntr",
    "ds_Bmcc",
    "ds_BmccTmp",
    "ds_Temp14",
    "ds_Temp10",
    "ds_Temp11",
    "ds_Temp12",
    "ds_Temp13",
    "ds_send",
    "ds_List02",
    "ds_Detail01",
    "ds_Detail02",
    "ds_DocId_backup",
    "ds_Temp15",
    "ds_Temp16",
    "ds_Temp17",
    "ds_cnst",
    "ds_cond_cnst",
    "ds_Combo",
    "ds_Temp",
    "ds_sdjang",
    "ds_sex_cd",
    "ds_bch_cd"
  ],
  "shortcut": "pageLinkPopup1('120')",
  "screen_id": "WE::WETC_120.xfdl",
  "program_id": "WE::WETC_120.xfdl",
  "route_kind": "live_session_contract",
  "script_url": "https://edi.nhis.or.kr/webedi/xui/WE/WETC_120.xfdl.js",
  "source_url": "https://edi.nhis.or.kr/webedi/xui/index.jsp",
  "document_id": "WETC_120",
  "field_count": 1,
  "file_inputs": [
    {
      "key": "document_code",
      "label": "서식명",
      "dataset": "ds_DocId",
      "required": true
    },
    {
      "key": "file",
      "label": "신고 파일",
      "required": true,
      "accepted_extensions": [
        "CELL",
        "XLS",
        "XLSX",
        "TXT"
      ]
    }
  ],
  "feature_name": "nhis_edi_file_report",
  "page_link_id": "120",
  "target_ready": true,
  "dataset_count": 37,
  "workflow_step": "file_report_form_contract_loaded",
  "default_values": {
    "WRT_CHASU": "20260615ZZ",
    "작성일": "2026-06-15",
    "default_document_code": "A"
  },
  "source_evidence": {},
  "business_context": {
    "firm_sym": null,
    "firm_name": null,
    "unit_firm_sym": null,
    "nhic_bslc_mgmt_no": "",
    "firm_management_no": null,
    "target_context_ready": false,
    "session_cookie_context_ready": false
  },
  "init_transactions": [
    {
      "cmd": "GetCnstInfo",
      "in_ds": "ds_cond=ds_cond_cnst",
      "action": "COMMONAction",
      "effect": "건설현장/사업장 보조 정보 조회",
      "out_ds": "ds_cnst=ds_cnst",
      "mutates": false
    },
    {
      "cmd": "GetCommCombo2",
      "in_ds": "ds_cond=ds_Combo",
      "action": "COMMONAction",
      "effect": "서식별 검증 코드/콤보 조회",
      "mutates": false
    }
  ],
  "supported_documents": [
    {
      "code": "4",
      "label": "직장가입자 근무처/근무내역 등 변동통보서",
      "send_cmd": "JGCB_040_I",
      "send_action": "JGCB_040Action",
      "input_dataset": "ds_import"
    },
    {
      "code": "6",
      "label": "휴직자등 직장가입자 보험료 납입 고지 유예 신청서",
      "send_cmd": "BMCC_080_I02_1",
      "send_action": "BMCC_080Action",
      "input_dataset": "ds_import"
    },
    {
      "code": "7",
      "label": "피부양자 자격(취득,상실) 신고서",
      "send_cmd": "JGBA_010_I",
      "send_action": "JGBA_010Action",
      "input_dataset": "ds_import"
    },
    {
      "code": "A",
      "label": "사업장(직장) 가입자 자격취득 신고서(통합)",
      "send_cmd": "JGBA_021I_SND",
      "send_action": "JGBA_021Action",
      "input_dataset": "ds_send"
    },
    {
      "code": "B",
      "label": "사업장(직장) 가입자 자격상실 신고서(통합)",
      "send_cmd": "JGBB_031I_SND",
      "send_action": "JGBB_031Action",
      "input_dataset": "ds_send"
    }
  ],
  "blocked_transactions": [
    {
      "cmd": "JGBA_021I_SND",
      "action": "JGBA_021Action",
      "reason": "실제 자격취득 통합 파일 신고 접수"
    },
    {
      "cmd": "JGBB_031I_SND",
      "action": "JGBB_031Action",
      "reason": "실제 자격상실 통합 파일 신고 접수"
    },
    {
      "cmd": "JGCB_040_I",
      "action": "JGCB_040Action",
      "reason": "실제 근무처/근무내역 변동 파일 신고 접수"
    },
    {
      "cmd": "JGBA_010_I",
      "action": "JGBA_010Action",
      "reason": "실제 피부양자 자격 파일 신고 접수"
    },
    {
      "cmd": "BMCC_080_I02_1",
      "action": "BMCC_080Action",
      "reason": "실제 휴직자 보험료 납입 고지 유예 파일 신고 접수"
    },
    {
      "button": "파일열기",
      "reason": "사용자 로컬 파일 내용이 ds_import에 적재됨"
    },
    {
      "button": "자료검증",
      "reason": "파일 행 단위 검증 결과가 화면 상태에 반영됨"
    },
    {
      "button": "전송/신고",
      "reason": "공단에 실제 대량 신고 접수 발생"
    }
  ],
  "datasets_of_interest": [
    {
      "name": "ds_DocId",
      "purpose": "파일신고 지원 서식 목록"
    },
    {
      "name": "ds_import",
      "purpose": "불러온 파일 원본/검증 대상 행"
    },
    {
      "name": "ds_send",
      "purpose": "통합 자격취득/상실 전송 대상 행"
    },
    {
      "name": "ds_FileErr",
      "columns": [
        "RowNo",
        "Desc"
      ],
      "purpose": "파일 검증 오류 목록"
    },
    {
      "name": "ds_RptKey",
      "purpose": "신청/해지/신청+해지/유예 구분"
    },
    {
      "name": "ds_cnst",
      "purpose": "건설현장/사업장 정보"
    },
    {
      "name": "ds_cond_cnst",
      "purpose": "건설현장 정보 조회 조건"
    },
    {
      "name": "ds_Combo",
      "purpose": "공통 코드 조회 조건"
    }
  ],
  "visible_text_markers": [
    "서식명 : ",
    "※ 고용보험/산재보험 자료는 이직확인서를 입력하지 않을 자료만 입력하세요"
  ],
  "implementation_status": "implemented_init_form_contract_only",
  "observed_callservices": [
    {
      "cmd": "GetCnstInfo",
      "in_ds": "ds_cond=ds_cond_cnst",
      "action": "COMMONAction",
      "out_ds": "ds_cnst=ds_cnst"
    },
    {
      "cmd": "JGBA_021I_SND",
      "in_ds": "ds_cond=ds_Init ds_list=ds_send",
      "action": "JGBA_021Action",
      "out_ds": "ds_Init=ds_Init"
    },
    {
      "cmd": "JGCB_040_I",
      "in_ds": "ds_cond=ds_Init ds_in=ds_import",
      "action": "JGCB_040Action",
      "out_ds": "ds_Init=ds_cond ds_out=ds_List"
    },
    {
      "cmd": "JGBA_010_I",
      "in_ds": "ds_cond=ds_Init ds_in=ds_import",
      "action": "JGBA_010Action",
      "out_ds": "ds_out=ds_Init"
    },
    {
      "cmd": "BMCC_080_I02_1",
      "in_ds": "ds_cond=ds_Init ds_in=ds_import",
      "action": "BMCC_080Action",
      "out_ds": "ds_out=ds_Init"
    },
    {
      "cmd": "JGBB_031I_SND",
      "in_ds": "ds_cond=ds_Init ds_list=ds_send",
      "action": "JGBB_031Action",
      "out_ds": "ds_out=ds_Init"
    }
  ],
  "local_validation_steps": [
    {
      "step": "file_select",
      "label": "파일열기",
      "effect": "로컬 파일을 ds_import로 로드"
    },
    {
      "step": "file_import",
      "label": "파일 변환",
      "effect": "CELL/XLS/XLSX/TXT 서식을 화면 dataset으로 변환"
    },
    {
      "step": "validate",
      "label": "자료검증",
      "effect": "ds_FileErr에 행별 오류 적재"
    }
  ]
}
순번오류 코드발생 조건
AUTH_REQUIRED세션 없음 — 로그인 세션이 없습니다. 로그인을 먼저 호출합니다.