outcome=unconfirmed(위 '성공도 실패도 아님' 행)는 Job 자체가 FAILED 로 끝나 아래 필드가 전혀 오지 않습니다 - error.message 한 줄만 옵니다(2026-09-15 2차 검증 확인). 아래는 outcome=confirmed 일 때만 유효합니다.
programme_key
지원사업 키
programme_label_ko
지원사업 한글명
business_management_no
사업장관리번호
receipt_no
삭제를 시도한 접수번호
outcome
판정 결과 - 이 표가 오는 경우는 항상 confirmed 입니다
deleted
삭제 확정 여부 - 이 표가 오는 경우는 항상 true 입니다
verdict_detail
확정 시 판정 근거 객체 - 삭제 전/후 이력 조회 결과를 대조한 값입니다
provider_status
기관 응답 HTTP 상태 코드(증거 기록용)
prss_mode
기관에 보낸 처리 모드 코드(삭제 DELT)
acknowledgement
명시 확인 처리 결과 객체 - confirm·confirm_message_ko·confirm_message_measured 를 담고, 행정정보 동의가 필요한 액션(submit·modify)은 admin_info_sharing_consent 등도 함께 옵니다
성공도 실패도 아님(미확인) — 요청은 기관에 전송됐지만 처리 결과를 확인하지 못했습니다. 다시 실행하지 마세요. 이미 처리됐을 수 있어 중복 처리로 이어집니다. 두 경우 중 하나입니다 - ① 이 사업의 이력 화면 실측이 부족해 삭제 전에도 목록에서 존재를 확인하지 못했거나(그래서 삭제 후 '없다'도 증거가 못 됨), ② 삭제 전·후 이력 조회 자체가 실패했습니다. deleted:false 로 확인 안 됨을 알립니다. 다시 삭제를 시도하지 말고 고용24 화면에서 직접 확인합니다. **실제로 오는 것**: 이 상태는 Job 을 FAILED 로 만들어 result.data 자체가 저장되지 않습니다 - 아래 output_fields 표는 이 경우에 적용되지 않고, 고객은 error.message 딱 한 줄(위 안내 문구 + 다음 문장을 이어붙인 것)만 받습니다.
AUTH_REQUIRED
세션 없음 — 고용24 세션이 없습니다. 고용24 세션 로그인을 먼저 호출한 뒤 같은 account_link_id 로 다시 요청합니다.
PROVIDER_SESSION_EXPIRED
세션 만료 — 고용24 세션이 만료됐습니다. 고용24 세션 로그인을 다시 호출합니다.
PROVIDER_IP_REJECTED
접근 제한 — 고용24가 요청을 일시적으로 제한했습니다. 짧은 시간에 너무 많이 호출했다면 잠시 후 다시 시도할 수 있지만, 접근 자체가 차단된 경우에는 재시도해도 풀리지 않으므로 계속되면 문의합니다.
PROVIDER_TIMEOUT_READ
응답 지연 — 고용24 응답이 지연됐습니다. 재시도 불가로 표시되므로 바로 다시 부르지 말고 잠시 뒤 상태를 확인한 뒤 다시 호출합니다.
PROVIDER_UPSTREAM_ERROR
업스트림 오류 — 고용24가 일시적으로 응답하지 않거나 올바르지 않은 응답을 줬습니다. 일시적 무응답은 잠시 후 다시 호출하면 되지만, 기관이 명확히 오류로 답한 경우에는 재시도해도 같은 결과이므로 보낸 값부터 다시 확인합니다.
PROVIDER_UNAVAILABLE
연결 오류 — 고용24 접속에 실패했습니다. 잠시 후 다시 호출합니다.
VALIDATION_SEMANTIC_ERROR
파라미터 형식 오류 — 보낸 값이 이 액션의 요청 형식과 맞지 않습니다(예: 필수 필드 누락·타입 불일치·정의되지 않은 필드 포함 - 이 계약은 모르는 필드를 허용하지 않습니다). 메시지는 원인이 된 필드 이름을 pydantic 원문 그대로 담아 영문이 섞일 수 있습니다.
VALIDATION_INVALID_FIELD
사업장관리번호 확인 불가 — 사업장관리번호(business_management_no)를 생략했는데 계정에서 자동으로 확인할 수 없습니다. 값을 직접 지정합니다.
POLICY_FEATURE_DISABLED
쓰기 잠금 — 이 상품의 신청서 쓰기 기능이 정책으로 잠겨 있습니다. 다시 시도해도 풀리지 않으니 서비스문의로 알려 주세요. 사전진단·신청 진입·필요입력 안내·신청 이력 조회는 잠긴 동안에도 그대로 됩니다. 다만 중간 저장이 필요한 일부 사업(카탈로그에 선언된 경우, 2026-09-15 기준 1개)의 대상자 조회(target_init· target_search)·제출 전 확인(draft_validate)은 그 화면 진입 자체가 실제 저장을 수반해 함께 잠깁니다.
VALIDATION_MISSING_FIELD
확인 누락 — confirm=true 가 없습니다. 이 액션은 고용24 화면에서도 확인 대화상자를 거치는 되돌리기 어려운 요청이라 API 도 명시 확인을 요구합니다.
삭제 실패(남아있음) — 502) — 삭제 요청 뒤에도 접수번호가 신청 이력에 남아 있습니다(DELETE_FAILED). 고용24 화면에서 직접 삭제해야 합니다. **주의**: 이 사유는 지금 고객에게 그대로 가지 않습니다 - 502/501 오류는 action 정보 없는 공용 처리로 빠져 실제로는 고정 문구('서버 내부 오류로 작업을 마치지 못했습니다. 잠시 후 다시 시도해 주세요.')만 응답에 실립니다. 위 사유는 서버 로그·provider_error_ref 로만 남습니다(2026-09-15 2차 검증 확인).
2. 고용24 기업지원금 제출 전 확인work24.subsidy.application.draft_validate
MCP 도구 이름 work24__subsidy__application__draft_validate
세션 없음 — 고용24 세션이 없습니다. 고용24 세션 로그인을 먼저 호출한 뒤 같은 account_link_id 로 다시 요청합니다.
PROVIDER_SESSION_EXPIRED
세션 만료 — 고용24 세션이 만료됐습니다. 고용24 세션 로그인을 다시 호출합니다.
PROVIDER_IP_REJECTED
접근 제한 — 고용24가 요청을 일시적으로 제한했습니다. 짧은 시간에 너무 많이 호출했다면 잠시 후 다시 시도할 수 있지만, 접근 자체가 차단된 경우에는 재시도해도 풀리지 않으므로 계속되면 문의합니다.
PROVIDER_UPSTREAM_ERROR
업스트림 오류 — 고용24가 일시적으로 응답하지 않거나 올바르지 않은 응답을 줬습니다. 일시적 무응답은 잠시 후 다시 호출하면 되지만, 기관이 명확히 오류로 답한 경우에는 재시도해도 같은 결과이므로 보낸 값부터 다시 확인합니다.
PROVIDER_UNAVAILABLE
연결 오류 — 고용24 접속에 실패했습니다. 응답 지연(타임아웃)도 이 코드로 옵니다 - 조회는 재시도해도 안전한 요청이라 재시도 가능으로 표시됩니다. 잠시 후 다시 호출합니다.
VALIDATION_SEMANTIC_ERROR
파라미터 형식 오류 — 보낸 값이 이 액션의 요청 형식과 맞지 않습니다(예: 필수 필드 누락·타입 불일치·정의되지 않은 필드 포함 - 이 계약은 모르는 필드를 허용하지 않습니다). 메시지는 원인이 된 필드 이름을 pydantic 원문 그대로 담아 영문이 섞일 수 있습니다.
VALIDATION_INVALID_FIELD
사업장관리번호 확인 불가 — 사업장관리번호(business_management_no)를 생략했는데 계정에서 자동으로 확인할 수 없습니다. 값을 직접 지정합니다.
VALIDATION_INVALID_FIELD
지원사업 키 확인 불가 — programme_key 가 카탈로그에 없거나 아직 이 상품에서 실측되지 않은 사업입니다. 카탈로그 사업 중 신청이 실측된 것은 일부뿐입니다 - 값을 다시 확인합니다.
POLICY_FEATURE_DISABLED
쓰기 잠금 — 이 상품의 신청서 쓰기 기능이 정책으로 잠겨 있습니다. 다시 시도해도 풀리지 않으니 서비스문의로 알려 주세요. 사전진단·신청 진입·필요입력 안내·신청 이력 조회는 잠긴 동안에도 그대로 됩니다. 다만 중간 저장이 필요한 일부 사업(카탈로그에 선언된 경우, 2026-09-15 기준 1개)의 대상자 조회(target_init· target_search)·제출 전 확인(draft_validate)은 그 화면 진입 자체가 실제 저장을 수반해 함께 잠깁니다.
세션 없음 — 고용24 세션이 없습니다. 고용24 세션 로그인을 먼저 호출한 뒤 같은 account_link_id 로 다시 요청합니다.
PROVIDER_SESSION_EXPIRED
세션 만료 — 고용24 세션이 만료됐습니다. 고용24 세션 로그인을 다시 호출합니다.
PROVIDER_IP_REJECTED
접근 제한 — 고용24가 요청을 일시적으로 제한했습니다. 짧은 시간에 너무 많이 호출했다면 잠시 후 다시 시도할 수 있지만, 접근 자체가 차단된 경우에는 재시도해도 풀리지 않으므로 계속되면 문의합니다.
PROVIDER_UPSTREAM_ERROR
업스트림 오류 — 고용24가 일시적으로 응답하지 않거나 올바르지 않은 응답을 줬습니다. 일시적 무응답은 잠시 후 다시 호출하면 되지만, 기관이 명확히 오류로 답한 경우에는 재시도해도 같은 결과이므로 보낸 값부터 다시 확인합니다.
PROVIDER_UNAVAILABLE
연결 오류 — 고용24 접속에 실패했습니다. 응답 지연(타임아웃)도 이 코드로 옵니다 - 조회는 재시도해도 안전한 요청이라 재시도 가능으로 표시됩니다. 잠시 후 다시 호출합니다.
VALIDATION_SEMANTIC_ERROR
파라미터 형식 오류 — 보낸 값이 이 액션의 요청 형식과 맞지 않습니다(예: 필수 필드 누락·타입 불일치·정의되지 않은 필드 포함 - 이 계약은 모르는 필드를 허용하지 않습니다). 메시지는 원인이 된 필드 이름을 pydantic 원문 그대로 담아 영문이 섞일 수 있습니다.
VALIDATION_INVALID_FIELD
사업장관리번호 확인 불가 — 사업장관리번호(business_management_no)를 생략했는데 계정에서 자동으로 확인할 수 없습니다. 값을 직접 지정합니다.
VALIDATION_INVALID_FIELD
지원사업 키 확인 불가 — programme_key 가 카탈로그에 없거나 아직 이 상품에서 실측되지 않은 사업입니다. 카탈로그 사업 중 신청이 실측된 것은 일부뿐입니다 - 값을 다시 확인합니다.
INTERNAL_ERROR
그 밖의 오류 — 화면 경로를 해석하지 못했거나, 이 화면에서 사업자 식별 정보를 확인하지 못했거나, 응답에 이력 목록 자체가 없거나, 이 사업의 이력 화면 계약을 아직 실측하지 못한 경우입니다. **주의**: 이 사유는 지금 고객에게 그대로 가지 않습니다 - 502/501 오류는 action 정보 없는 공용 처리로 빠져 실제로는 고정 문구('서버 내부 오류로 작업을 마치지 못했습니다. 잠시 후 다시 시도해 주세요.')만 응답에 실립니다. 위 사유는 서버 로그·provider_error_ref 로만 남습니다(2026-09-15 2차 검증 확인).
고용24 세션 로그인을 먼저 호출해 세션을 등록한 뒤, 같은 account_link_id 로 호출합니다. [고용24 로그인]
사전진단이 있는 사업에서 그 진단 조회가 기관 쪽에서 실패해도 Job 오류가 아니라 diagnosis 안에 verdict:"undetermined"·error 가 담기고 최상위 can_apply 는 false 로 옵니다(2026-09-15 2차 검증으로 추가). 접속 실패·시간 초과·5xx 가 전부 이 형태로 흡수됩니다. 사전진단이 없는 사업은 애초에 기관을 호출하지 않아 이 변형이 없습니다.
sandbox 환경에서는 실제 고용24에 접속하지 않습니다. result.data 에는 mock: true 와 보낸 params 를 그대로 담은 params_echo 가 오고, 업무 응답 필드는 오지 않습니다.
Request
순번
변수명
필수
설명
Authorization
Y
API 자격증명입니다. client_id 와 client_secret 을 콜론으로 이어 Base64 로 인코딩해 보냅니다.
세션 없음 — 고용24 세션이 없습니다. 고용24 세션 로그인을 먼저 호출한 뒤 같은 account_link_id 로 다시 요청합니다.
PROVIDER_SESSION_EXPIRED
세션 만료 — 고용24 세션이 만료됐습니다. 고용24 세션 로그인을 다시 호출합니다.
VALIDATION_SEMANTIC_ERROR
파라미터 형식 오류 — 보낸 값이 이 액션의 요청 형식과 맞지 않습니다(예: 필수 필드 누락·타입 불일치·정의되지 않은 필드 포함 - 이 계약은 모르는 필드를 허용하지 않습니다). 메시지는 원인이 된 필드 이름을 pydantic 원문 그대로 담아 영문이 섞일 수 있습니다.
VALIDATION_INVALID_FIELD
사업장관리번호 확인 불가 — 사업장관리번호(business_management_no)를 생략했는데 계정에서 자동으로 확인할 수 없습니다. 값을 직접 지정합니다.
VALIDATION_INVALID_FIELD
지원사업 키 확인 불가 — programme_key 가 카탈로그에 없거나 아직 이 상품에서 실측되지 않은 사업입니다. 카탈로그 사업 중 신청이 실측된 것은 일부뿐입니다 - 값을 다시 확인합니다.
제출한 신청서가 기관으로부터 '보완요청'을 받은 상태여야 합니다(작성중 초안은 workplace_save 로 이어서 작성합니다). confirm=true 와 admin_info_sharing_consent 를 함께 보냅니다. 이 상품의 신청서 쓰기 기능이 정책으로 켜져 있어야 합니다. [고용24 로그인]
outcome=confirmed 로 확정되면 modified:true 와 함께 '보완요청' 상태를 벗어났는지 확인합니다. 수정 제출을 되돌리는 액션은 없습니다.
sandbox 환경에서는 실제 고용24에 접속하지 않습니다. result.data 에는 mock: true 와 보낸 params 를 그대로 담은 params_echo 가 오고, 업무 응답 필드는 오지 않습니다.
Request
순번
변수명
필수
설명
Authorization
Y
API 자격증명입니다. client_id 와 client_secret 을 콜론으로 이어 Base64 로 인코딩해 보냅니다.
행정정보 공동이용 동의(`sramMastrVo.adifUtzeAgreYn`). 제출 화면이 `required: true` 로 선언한 실제 폼 필드이며 라디오 Y/N 중 하나를 반드시 실어야 한다. 화면 원본 HTML 에는 어느 쪽도 checked 가 없어 화면을 긁어서는 값이 만들어지지 않는다 — 고객이 명시적으로 선택해야 한다. None 이면 게이트가 막는다(동의를 우리가 대신 정하지 않는다)
attachments
array
N
첨부 서류 — 아직 미실측 기능이다. 비어 있지 않으면 WORK24_SUBSIDY_APPLICATION_ATTACHMENT_UPLOAD_NOT_MEASURED 로 제출이 막힌다. 실제 업로드 엔드포인트가 실측되기 전까지는 채우지 않는다
outcome=unconfirmed(위 '성공도 실패도 아님' 행)는 Job 자체가 FAILED 로 끝나 아래 필드가 전혀 오지 않습니다 - error.message 한 줄만 옵니다(2026-09-15 2차 검증 확인). 아래는 outcome=confirmed 일 때만 유효합니다.
programme_key
지원사업 키
programme_label_ko
지원사업 한글명
business_management_no
사업장관리번호
receipt_no
이 신청 건의 접수번호
outcome
판정 결과 - 이 표가 오는 경우는 항상 confirmed 입니다
prss_mode
기관에 보낸 처리 모드 코드(제출 SNDG · 수정 UPDT)
provider_status
기관 응답 HTTP 상태 코드(증거 기록용 - 판정에는 쓰이지 않습니다)
submitted
제출 확정 여부(submit 호출일 때만 true 일 수 있습니다)
modified
수정 확정 여부(modify 호출일 때만 true 일 수 있습니다)
verdict_detail
확정 시 판정 근거 객체 - 이력·화면 상태를 전/후로 대조한 값입니다
documents
제출 시점의 첨부서류 목록 조회 결과 객체
fraud_prevention_video
부정수급 방지 교육 영상 시청 확인 객체 - modify 호출에도 이 키는 오지만 값은 항상 null 입니다(그 사업 로직이 submit 에만 있습니다)
undo_hint_ko
되돌리는 방법 안내 - submit 은 withdraw, modify 는 되돌리는 액션 없음
acknowledgement
명시 확인 처리 결과 객체 - confirm·confirm_message_ko·confirm_message_measured 를 담고, 행정정보 동의가 필요한 액션(submit·modify)은 admin_info_sharing_consent 등도 함께 옵니다
성공도 실패도 아님(미확인) — 요청은 기관에 전송됐지만 처리 결과를 확인하지 못했습니다. 다시 실행하지 마세요. 이미 처리됐을 수 있어 중복 처리로 이어집니다. 제출 응답 본문 계약이 아직 미실측이라(코드 주석 근거 - 실측 증적은 추가 확인 필요) 제출 전후 이력을 되읽어 판정합니다. 처리상태가 아직 '보완요청'이면 기관이 수정을 처리로 가져가지 않은 것일 수 있습니다. **실제로 오는 것**: 이 상태는 Job 을 FAILED 로 만들어 result.data 자체가 저장되지 않습니다 - 아래 output_fields 표는 이 경우에 적용되지 않고, 고객은 error.message 딱 한 줄(위 안내 문구 + 다음 문장을 이어붙인 것)만 받습니다.
AUTH_REQUIRED
세션 없음 — 고용24 세션이 없습니다. 고용24 세션 로그인을 먼저 호출한 뒤 같은 account_link_id 로 다시 요청합니다.
PROVIDER_SESSION_EXPIRED
세션 만료 — 고용24 세션이 만료됐습니다. 고용24 세션 로그인을 다시 호출합니다.
PROVIDER_IP_REJECTED
접근 제한 — 고용24가 요청을 일시적으로 제한했습니다. 짧은 시간에 너무 많이 호출했다면 잠시 후 다시 시도할 수 있지만, 접근 자체가 차단된 경우에는 재시도해도 풀리지 않으므로 계속되면 문의합니다.
PROVIDER_TIMEOUT_READ
응답 지연 — 고용24 응답이 지연됐습니다. 재시도 불가로 표시되므로 바로 다시 부르지 말고 잠시 뒤 상태를 확인한 뒤 다시 호출합니다.
PROVIDER_UPSTREAM_ERROR
업스트림 오류 — 고용24가 일시적으로 응답하지 않거나 올바르지 않은 응답을 줬습니다. 일시적 무응답은 잠시 후 다시 호출하면 되지만, 기관이 명확히 오류로 답한 경우에는 재시도해도 같은 결과이므로 보낸 값부터 다시 확인합니다.
PROVIDER_UNAVAILABLE
연결 오류 — 고용24 접속에 실패했습니다. 잠시 후 다시 호출합니다.
VALIDATION_SEMANTIC_ERROR
파라미터 형식 오류 — 보낸 값이 이 액션의 요청 형식과 맞지 않습니다(예: 필수 필드 누락·타입 불일치·정의되지 않은 필드 포함 - 이 계약은 모르는 필드를 허용하지 않습니다). 메시지는 원인이 된 필드 이름을 pydantic 원문 그대로 담아 영문이 섞일 수 있습니다.
VALIDATION_INVALID_FIELD
사업장관리번호 확인 불가 — 사업장관리번호(business_management_no)를 생략했는데 계정에서 자동으로 확인할 수 없습니다. 값을 직접 지정합니다.
POLICY_FEATURE_DISABLED
쓰기 잠금 — 이 상품의 신청서 쓰기 기능이 정책으로 잠겨 있습니다. 다시 시도해도 풀리지 않으니 서비스문의로 알려 주세요. 사전진단·신청 진입·필요입력 안내·신청 이력 조회는 잠긴 동안에도 그대로 됩니다. 다만 중간 저장이 필요한 일부 사업(카탈로그에 선언된 경우, 2026-09-15 기준 1개)의 대상자 조회(target_init· target_search)·제출 전 확인(draft_validate)은 그 화면 진입 자체가 실제 저장을 수반해 함께 잠깁니다.
VALIDATION_MISSING_FIELD
확인 누락 — confirm=true 가 없습니다. 이 액션은 고용24 화면에서도 확인 대화상자를 거치는 되돌리기 어려운 요청이라 API 도 명시 확인을 요구합니다.
VALIDATION_MISSING_FIELD
행정정보 동의 미지정 — admin_info_sharing_consent(true/false)가 없습니다. 기관 제출 화면이 필수로 요구하는 동의 항목이고 고객이 직접 정할 법적 동의라 XDATA가 대신 정하지 않습니다. 동의하지 않아도 제출은 되지만, 행정정보로 대체 확인하지 못하는 서류는 직접 첨부해야 할 수 있습니다.
INTERNAL_ERROR
첨부 동시 업로드 불가 — attachments 에 값을 채워 보내면 501 로 제출 자체를 중단합니다(파일 실제 전송 엔드포인트 미실측 - 조용히 무시하고 첨부 없이 접수되면 서류 누락 반려로 이어지기 때문입니다). 첨부는 고용24 화면에서 먼저 올린 뒤 draft_validate 로 붙었는지 확인하고 제출합니다. **주의**: 이 사유는 지금 고객에게 그대로 가지 않습니다 - 502/501 오류는 action 정보 없는 공용 처리로 빠져 실제로는 고정 문구('서버 내부 오류로 작업을 마치지 못했습니다. 잠시 후 다시 시도해 주세요.')만 응답에 실립니다. 위 사유는 서버 로그·provider_error_ref 로만 남습니다(2026-09-15 2차 검증 확인).
RESOURCE_NOT_FOUND
접수번호 화면에서 확인 안 됨 — 404) — receipt_no 의 신청서를 제출 화면에서 확인하지 못했습니다(DRAFT_NOT_FOUND).
RESOURCE_CONFLICT
수정 대상 상태 아님 — 409) — 셋 중 하나입니다: 처리상태를 확인하지 못했거나(MODIFY_STATE_UNVERIFIED), 아직 작성중 초안이라 수정이 의미가 없거나(MODIFY_ON_DRAFT — 이때는 workplace_save 로 이어서 작성합니다), 보완요청 상태가 아닌 다른 처리상태입니다(NOT_MODIFIABLE — 수정은 '보완요청' 상태에만 가능합니다. 2026-09-15 2차 검증 확인: 실무에서 가장 자주 맞는 경우입니다). 보내기 전에 막습니다.
세션 없음 — 고용24 세션이 없습니다. 고용24 세션 로그인을 먼저 호출한 뒤 같은 account_link_id 로 다시 요청합니다.
PROVIDER_SESSION_EXPIRED
세션 만료 — 고용24 세션이 만료됐습니다. 고용24 세션 로그인을 다시 호출합니다.
PROVIDER_IP_REJECTED
접근 제한 — 고용24가 요청을 일시적으로 제한했습니다. 짧은 시간에 너무 많이 호출했다면 잠시 후 다시 시도할 수 있지만, 접근 자체가 차단된 경우에는 재시도해도 풀리지 않으므로 계속되면 문의합니다.
PROVIDER_UPSTREAM_ERROR
업스트림 오류 — 고용24가 일시적으로 응답하지 않거나 올바르지 않은 응답을 줬습니다. 일시적 무응답은 잠시 후 다시 호출하면 되지만, 기관이 명확히 오류로 답한 경우에는 재시도해도 같은 결과이므로 보낸 값부터 다시 확인합니다.
PROVIDER_UNAVAILABLE
연결 오류 — 고용24 접속에 실패했습니다. 응답 지연(타임아웃)도 이 코드로 옵니다 - 조회는 재시도해도 안전한 요청이라 재시도 가능으로 표시됩니다. 잠시 후 다시 호출합니다.
VALIDATION_SEMANTIC_ERROR
파라미터 형식 오류 — 보낸 값이 이 액션의 요청 형식과 맞지 않습니다(예: 필수 필드 누락·타입 불일치·정의되지 않은 필드 포함 - 이 계약은 모르는 필드를 허용하지 않습니다). 메시지는 원인이 된 필드 이름을 pydantic 원문 그대로 담아 영문이 섞일 수 있습니다.
VALIDATION_INVALID_FIELD
사업장관리번호 확인 불가 — 사업장관리번호(business_management_no)를 생략했는데 계정에서 자동으로 확인할 수 없습니다. 값을 직접 지정합니다.
VALIDATION_INVALID_FIELD
지원사업 키 확인 불가 — programme_key 가 카탈로그에 없거나 아직 이 상품에서 실측되지 않은 사업입니다. 카탈로그 사업 중 신청이 실측된 것은 일부뿐입니다 - 값을 다시 확인합니다.
workplace_save 로 발급받은 receipt_no 가 있어야 하고, draft_validate 로 제출 가능 상태(첨부서류·부정수급 방지 영상)를 먼저 확인해야 합니다. confirm=true 와 admin_info_sharing_consent(행정정보 공동이용 동의 여부)를 함께 보냅니다. 이 상품의 신청서 쓰기 기능이 정책으로 켜져 있어야 합니다. [고용24 로그인]
outcome=confirmed 로 확정되면 submitted:true 와 함께 접수 이탈을 확인합니다. undo_hint_ko 로 되돌리는 방법(withdraw)을 안내합니다.
sandbox 환경에서는 실제 고용24에 접속하지 않습니다. result.data 에는 mock: true 와 보낸 params 를 그대로 담은 params_echo 가 오고, 업무 응답 필드는 오지 않습니다.
Request
순번
변수명
필수
설명
Authorization
Y
API 자격증명입니다. client_id 와 client_secret 을 콜론으로 이어 Base64 로 인코딩해 보냅니다.
행정정보 공동이용 동의(`sramMastrVo.adifUtzeAgreYn`). 제출 화면이 `required: true` 로 선언한 실제 폼 필드이며 라디오 Y/N 중 하나를 반드시 실어야 한다. 화면 원본 HTML 에는 어느 쪽도 checked 가 없어 화면을 긁어서는 값이 만들어지지 않는다 — 고객이 명시적으로 선택해야 한다. None 이면 게이트가 막는다(동의를 우리가 대신 정하지 않는다)
attachments
array
N
첨부 서류 — 아직 미실측 기능이다. 비어 있지 않으면 WORK24_SUBSIDY_APPLICATION_ATTACHMENT_UPLOAD_NOT_MEASURED 로 제출이 막힌다. 실제 업로드 엔드포인트가 실측되기 전까지는 채우지 않는다
outcome=unconfirmed(위 '성공도 실패도 아님' 행)는 Job 자체가 FAILED 로 끝나 아래 필드가 전혀 오지 않습니다 - error.message 한 줄만 옵니다(2026-09-15 2차 검증 확인). 아래는 outcome=confirmed 일 때만 유효합니다.
programme_key
지원사업 키
programme_label_ko
지원사업 한글명
business_management_no
사업장관리번호
receipt_no
이 신청 건의 접수번호
outcome
판정 결과 - 이 표가 오는 경우는 항상 confirmed 입니다
prss_mode
기관에 보낸 처리 모드 코드(제출 SNDG · 수정 UPDT)
provider_status
기관 응답 HTTP 상태 코드(증거 기록용 - 판정에는 쓰이지 않습니다)
submitted
제출 확정 여부(submit 호출일 때만 true 일 수 있습니다)
modified
수정 확정 여부(modify 호출일 때만 true 일 수 있습니다)
verdict_detail
확정 시 판정 근거 객체 - 이력·화면 상태를 전/후로 대조한 값입니다
documents
제출 시점의 첨부서류 목록 조회 결과 객체
fraud_prevention_video
부정수급 방지 교육 영상 시청 확인 객체 - modify 호출에도 이 키는 오지만 값은 항상 null 입니다(그 사업 로직이 submit 에만 있습니다)
undo_hint_ko
되돌리는 방법 안내 - submit 은 withdraw, modify 는 되돌리는 액션 없음
acknowledgement
명시 확인 처리 결과 객체 - confirm·confirm_message_ko·confirm_message_measured 를 담고, 행정정보 동의가 필요한 액션(submit·modify)은 admin_info_sharing_consent 등도 함께 옵니다
성공도 실패도 아님(미확인) — 요청은 기관에 전송됐지만 처리 결과를 확인하지 못했습니다. 다시 실행하지 마세요. 이미 처리됐을 수 있어 중복 처리로 이어집니다. 제출 응답 본문 계약이 아직 미실측이라(코드 주석 근거 - 실측 증적은 추가 확인 필요) 제출 전후 이력을 되읽어 판정합니다. history 로 현재 상태를 확인한 뒤, 아직 '작성중'이면 그때 다시 제출하세요. **실제로 오는 것**: 이 상태는 Job 을 FAILED 로 만들어 result.data 자체가 저장되지 않습니다 - 아래 output_fields 표는 이 경우에 적용되지 않고, 고객은 error.message 딱 한 줄(위 안내 문구 + 다음 문장을 이어붙인 것)만 받습니다.
AUTH_REQUIRED
세션 없음 — 고용24 세션이 없습니다. 고용24 세션 로그인을 먼저 호출한 뒤 같은 account_link_id 로 다시 요청합니다.
PROVIDER_SESSION_EXPIRED
세션 만료 — 고용24 세션이 만료됐습니다. 고용24 세션 로그인을 다시 호출합니다.
PROVIDER_IP_REJECTED
접근 제한 — 고용24가 요청을 일시적으로 제한했습니다. 짧은 시간에 너무 많이 호출했다면 잠시 후 다시 시도할 수 있지만, 접근 자체가 차단된 경우에는 재시도해도 풀리지 않으므로 계속되면 문의합니다.
PROVIDER_TIMEOUT_READ
응답 지연 — 고용24 응답이 지연됐습니다. 재시도 불가로 표시되므로 바로 다시 부르지 말고 잠시 뒤 상태를 확인한 뒤 다시 호출합니다.
PROVIDER_UPSTREAM_ERROR
업스트림 오류 — 고용24가 일시적으로 응답하지 않거나 올바르지 않은 응답을 줬습니다. 일시적 무응답은 잠시 후 다시 호출하면 되지만, 기관이 명확히 오류로 답한 경우에는 재시도해도 같은 결과이므로 보낸 값부터 다시 확인합니다.
PROVIDER_UNAVAILABLE
연결 오류 — 고용24 접속에 실패했습니다. 잠시 후 다시 호출합니다.
VALIDATION_SEMANTIC_ERROR
파라미터 형식 오류 — 보낸 값이 이 액션의 요청 형식과 맞지 않습니다(예: 필수 필드 누락·타입 불일치·정의되지 않은 필드 포함 - 이 계약은 모르는 필드를 허용하지 않습니다). 메시지는 원인이 된 필드 이름을 pydantic 원문 그대로 담아 영문이 섞일 수 있습니다.
VALIDATION_INVALID_FIELD
사업장관리번호 확인 불가 — 사업장관리번호(business_management_no)를 생략했는데 계정에서 자동으로 확인할 수 없습니다. 값을 직접 지정합니다.
POLICY_FEATURE_DISABLED
쓰기 잠금 — 이 상품의 신청서 쓰기 기능이 정책으로 잠겨 있습니다. 다시 시도해도 풀리지 않으니 서비스문의로 알려 주세요. 사전진단·신청 진입·필요입력 안내·신청 이력 조회는 잠긴 동안에도 그대로 됩니다. 다만 중간 저장이 필요한 일부 사업(카탈로그에 선언된 경우, 2026-09-15 기준 1개)의 대상자 조회(target_init· target_search)·제출 전 확인(draft_validate)은 그 화면 진입 자체가 실제 저장을 수반해 함께 잠깁니다.
VALIDATION_MISSING_FIELD
확인 누락 — confirm=true 가 없습니다. 이 액션은 고용24 화면에서도 확인 대화상자를 거치는 되돌리기 어려운 요청이라 API 도 명시 확인을 요구합니다.
VALIDATION_MISSING_FIELD
행정정보 동의 미지정 — admin_info_sharing_consent(true/false)가 없습니다. 기관 제출 화면이 필수로 요구하는 동의 항목이고 고객이 직접 정할 법적 동의라 XDATA가 대신 정하지 않습니다. 동의하지 않아도 제출은 되지만, 행정정보로 대체 확인하지 못하는 서류는 직접 첨부해야 할 수 있습니다.
INTERNAL_ERROR
첨부 동시 업로드 불가 — attachments 에 값을 채워 보내면 501 로 제출 자체를 중단합니다(파일 실제 전송 엔드포인트 미실측 - 조용히 무시하고 첨부 없이 접수되면 서류 누락 반려로 이어지기 때문입니다). 첨부는 고용24 화면에서 먼저 올린 뒤 draft_validate 로 붙었는지 확인하고 제출합니다. **주의**: 이 사유는 지금 고객에게 그대로 가지 않습니다 - 502/501 오류는 action 정보 없는 공용 처리로 빠져 실제로는 고정 문구('서버 내부 오류로 작업을 마치지 못했습니다. 잠시 후 다시 시도해 주세요.')만 응답에 실립니다. 위 사유는 서버 로그·provider_error_ref 로만 남습니다(2026-09-15 2차 검증 확인).
RESOURCE_NOT_FOUND
접수번호 화면에서 확인 안 됨 — 404) — receipt_no 의 신청서를 제출 화면에서 확인하지 못했습니다(DRAFT_NOT_FOUND).
RESOURCE_CONFLICT
미완성 초안 — 409) — 첨부서류 목록을 확인하지 못했거나(attachment_list_unresolved) 필수 서류가 비었거나(required_documents_missing) 최초 신청인데 부정수급 방지 영상을 아직 안 봤을 때(fraud_prevention_video_required) 제출을 막습니다(NOT_SUBMITTABLE). draft_validate 로 먼저 무엇이 빠졌는지 확인합니다.
RESOURCE_CONFLICT
이미 작성중 아님 — 409) — 접수번호가 이미 작성중을 벗어난 상태(제출됨·반려 등)라 제출 대상이 아닙니다(NOT_A_DRAFT). history 로 현재 상태를 확인합니다.
8. 고용24 기업지원금 대상자정보 단계 진입work24.subsidy.application.target_init
MCP 도구 이름 work24__subsidy__application__target_init
workplace_save 로 발급받은 receipt_no 가 있어야 합니다. 고용24 세션 로그인을 먼저 호출해 세션을 등록한 뒤, 같은 account_link_id 로 호출합니다. [고용24 로그인]
target_stage 키가 오면(값은 고정 문자열 target_stage_absent) 이 사업엔 대상자정보 단계가 없는 것입니다 - targets: []·message_ko·next_action_hint 가 함께 오고, receipt_no·screen_status·attachment_module·screen_guards·safety 는 오지 않습니다.
sandbox 환경에서는 실제 고용24에 접속하지 않습니다. result.data 에는 mock: true 와 보낸 params 를 그대로 담은 params_echo 가 오고, 업무 응답 필드는 오지 않습니다.
Request
순번
변수명
필수
설명
Authorization
Y
API 자격증명입니다. client_id 와 client_secret 을 콜론으로 이어 Base64 로 인코딩해 보냅니다.
세션 없음 — 고용24 세션이 없습니다. 고용24 세션 로그인을 먼저 호출한 뒤 같은 account_link_id 로 다시 요청합니다.
PROVIDER_SESSION_EXPIRED
세션 만료 — 고용24 세션이 만료됐습니다. 고용24 세션 로그인을 다시 호출합니다.
PROVIDER_IP_REJECTED
접근 제한 — 고용24가 요청을 일시적으로 제한했습니다. 짧은 시간에 너무 많이 호출했다면 잠시 후 다시 시도할 수 있지만, 접근 자체가 차단된 경우에는 재시도해도 풀리지 않으므로 계속되면 문의합니다.
PROVIDER_UPSTREAM_ERROR
업스트림 오류 — 고용24가 일시적으로 응답하지 않거나 올바르지 않은 응답을 줬습니다. 일시적 무응답은 잠시 후 다시 호출하면 되지만, 기관이 명확히 오류로 답한 경우에는 재시도해도 같은 결과이므로 보낸 값부터 다시 확인합니다.
PROVIDER_UNAVAILABLE
연결 오류 — 고용24 접속에 실패했습니다. 응답 지연(타임아웃)도 이 코드로 옵니다 - 조회는 재시도해도 안전한 요청이라 재시도 가능으로 표시됩니다. 잠시 후 다시 호출합니다.
VALIDATION_SEMANTIC_ERROR
파라미터 형식 오류 — 보낸 값이 이 액션의 요청 형식과 맞지 않습니다(예: 필수 필드 누락·타입 불일치·정의되지 않은 필드 포함 - 이 계약은 모르는 필드를 허용하지 않습니다). 메시지는 원인이 된 필드 이름을 pydantic 원문 그대로 담아 영문이 섞일 수 있습니다.
VALIDATION_INVALID_FIELD
사업장관리번호 확인 불가 — 사업장관리번호(business_management_no)를 생략했는데 계정에서 자동으로 확인할 수 없습니다. 값을 직접 지정합니다.
VALIDATION_INVALID_FIELD
지원사업 키 확인 불가 — programme_key 가 카탈로그에 없거나 아직 이 상품에서 실측되지 않은 사업입니다. 카탈로그 사업 중 신청이 실측된 것은 일부뿐입니다 - 값을 다시 확인합니다.
POLICY_FEATURE_DISABLED
쓰기 잠금 — 이 상품의 신청서 쓰기 기능이 정책으로 잠겨 있습니다. 다시 시도해도 풀리지 않으니 서비스문의로 알려 주세요. 사전진단·신청 진입·필요입력 안내·신청 이력 조회는 잠긴 동안에도 그대로 됩니다. 다만 중간 저장이 필요한 일부 사업(카탈로그에 선언된 경우, 2026-09-15 기준 1개)의 대상자 조회(target_init· target_search)·제출 전 확인(draft_validate)은 그 화면 진입 자체가 실제 저장을 수반해 함께 잠깁니다.
target_search 로 조회한 후보 중에서 지정합니다. 대상자정보 단계가 없는 사업이면 호출은 되지만 저장할 대상이 없다는 안내만 돌아옵니다(2026-09-15 정정 - 오류로 막히지 않습니다. target_init 으로 미리 확인할 수 있습니다). 이 상품의 신청서 쓰기 기능이 정책으로 켜져 있어야 합니다. [고용24 로그인]
이 사업에 대상자정보 단계 자체가 없으면 오류가 아니라 성공 응답으로 옵니다 - target_stage 키가 오고(값은 빈 값이 아니라 고정 문자열 target_stage_absent 입니다, 2026-09-15 재정정), targets 는 빈 배열로 오고 message_ko 로 이 단계가 없다는 안내가, next_action_hint 로 다음 단계가 옵니다. 지정한 대상자 정보는 실제로 저장되지 않습니다.
sandbox 환경에서는 실제 고용24에 접속하지 않습니다. result.data 에는 mock: true 와 보낸 params 를 그대로 담은 params_echo 가 오고, 업무 응답 필드는 오지 않습니다.
Request
순번
변수명
필수
설명
Authorization
Y
API 자격증명입니다. client_id 와 client_secret 을 콜론으로 이어 Base64 로 인코딩해 보냅니다.
세션 없음 — 고용24 세션이 없습니다. 고용24 세션 로그인을 먼저 호출한 뒤 같은 account_link_id 로 다시 요청합니다.
PROVIDER_SESSION_EXPIRED
세션 만료 — 고용24 세션이 만료됐습니다. 고용24 세션 로그인을 다시 호출합니다.
PROVIDER_IP_REJECTED
접근 제한 — 고용24가 요청을 일시적으로 제한했습니다. 짧은 시간에 너무 많이 호출했다면 잠시 후 다시 시도할 수 있지만, 접근 자체가 차단된 경우에는 재시도해도 풀리지 않으므로 계속되면 문의합니다.
PROVIDER_TIMEOUT_READ
응답 지연 — 고용24 응답이 지연됐습니다. 재시도 불가로 표시되므로 바로 다시 부르지 말고 잠시 뒤 상태를 확인한 뒤 다시 호출합니다.
PROVIDER_UPSTREAM_ERROR
업스트림 오류 — 고용24가 일시적으로 응답하지 않거나 올바르지 않은 응답을 줬습니다. 일시적 무응답은 잠시 후 다시 호출하면 되지만, 기관이 명확히 오류로 답한 경우에는 재시도해도 같은 결과이므로 보낸 값부터 다시 확인합니다.
PROVIDER_UNAVAILABLE
연결 오류 — 고용24 접속에 실패했습니다. 잠시 후 다시 호출합니다.
VALIDATION_SEMANTIC_ERROR
파라미터 형식 오류 — 보낸 값이 이 액션의 요청 형식과 맞지 않습니다(예: 필수 필드 누락·타입 불일치·정의되지 않은 필드 포함 - 이 계약은 모르는 필드를 허용하지 않습니다). 메시지는 원인이 된 필드 이름을 pydantic 원문 그대로 담아 영문이 섞일 수 있습니다.
VALIDATION_INVALID_FIELD
사업장관리번호 확인 불가 — 사업장관리번호(business_management_no)를 생략했는데 계정에서 자동으로 확인할 수 없습니다. 값을 직접 지정합니다.
POLICY_FEATURE_DISABLED
쓰기 잠금 — 이 상품의 신청서 쓰기 기능이 정책으로 잠겨 있습니다. 다시 시도해도 풀리지 않으니 서비스문의로 알려 주세요. 사전진단·신청 진입·필요입력 안내·신청 이력 조회는 잠긴 동안에도 그대로 됩니다. 다만 중간 저장이 필요한 일부 사업(카탈로그에 선언된 경우, 2026-09-15 기준 1개)의 대상자 조회(target_init· target_search)·제출 전 확인(draft_validate)은 그 화면 진입 자체가 실제 저장을 수반해 함께 잠깁니다.
INTERNAL_ERROR
후보 미확인 — 502) — 지정 가능한 피보험자 목록을 먼저 확인하지 못해 저장을 중단했습니다(TARGET_LIST_UNRESOLVED). target_search 를 먼저 호출합니다. **주의**: 이 사유는 지금 고객에게 그대로 가지 않습니다 - 502/501 오류는 action 정보 없는 공용 처리로 빠져 실제로는 고정 문구('서버 내부 오류로 작업을 마치지 못했습니다. 잠시 후 다시 시도해 주세요.')만 응답에 실립니다. 위 사유는 서버 로그·provider_error_ref 로만 남습니다(2026-09-15 2차 검증 확인).
INTERNAL_ERROR
신청금액 미확인 — 502) — 화면에서 신청금액을 읽지 못해 임의로 채우지 않고 중단했습니다(REQUEST_AMOUNT_UNKNOWN). **주의**: 이 사유는 지금 고객에게 그대로 가지 않습니다 - 502/501 오류는 action 정보 없는 공용 처리로 빠져 실제로는 고정 문구('서버 내부 오류로 작업을 마치지 못했습니다. 잠시 후 다시 시도해 주세요.')만 응답에 실립니다. 위 사유는 서버 로그·provider_error_ref 로만 남습니다(2026-09-15 2차 검증 확인).
PROVIDER_UPSTREAM_ERROR
기관 저장 거절(주의: 문서화된 코드가 실제로 안 나옵니다) — **2026-09-15 2차 검증으로 정정**: 이 실패는 raise 시 원인을 Work24SessionError 로 잇는데(`from exc`), map_work24_exception_to_failure 가 provider 고유 판정보다 먼저 원인 사슬에서 그 세션 예외를 찾아 가로챕니다(TARGET_SAVE_REJECTED 코드는 도달하지 못합니다). 그래서 실제로는 (기관이 500으로 거절한 경우 - 실측상 가장 흔함) 이거나, 원인의 성격에 따라 PROVIDER_IP_REJECTED/PROVIDER_TIMEOUT_READ/PROVIDER_UNAVAILABLE 중 하나로 옵니다. 지정하려는 근로자가 이번 차수에 지정 가능한 대상이 아니면(선택 가능 인원 0명 포함) 기관이 저장을 거절하는 것이 원인입니다 - target_search 응답의 selectable 여부를 먼저 확인합니다. (엔진 확인요청 대상 - 의도한 신호와 실제 코드가 다릅니다.
INTERNAL_ERROR
저장 실패 — 502) — 기관이 저장 결과를 0/빈 값으로 응답했습니다(TARGET_SAVE_FAILED). **주의**: 이 사유는 지금 고객에게 그대로 가지 않습니다 - 502/501 오류는 action 정보 없는 공용 처리로 빠져 실제로는 고정 문구('서버 내부 오류로 작업을 마치지 못했습니다. 잠시 후 다시 시도해 주세요.')만 응답에 실립니다. 위 사유는 서버 로그·provider_error_ref 로만 남습니다(2026-09-15 2차 검증 확인).
10. 고용24 기업지원금 대상자 후보 조회work24.subsidy.application.target_search
MCP 도구 이름 work24__subsidy__application__target_search
result.data 의 candidates 로 지정 가능한 근로자 후보를 확인합니다(대상자정보 단계가 있는 사업만 - 아래 성공 행 참고).
순번
변수명
설명
programme_key
지원사업 키
programme_label_ko
지원사업 한글명
business_management_no
사업장관리번호
target_stage
이 키가 오면 그 사업에 대상자정보 단계가 없다는 표시입니다(값은 고정 문자열 target_stage_absent). 단계가 있는 사업에서는 이 키 자체가 오지 않습니다
targets
target_stage 가 올 때(단계 없음)만 오고 항상 빈 배열입니다
message_ko
대상자정보 단계가 없다는 안내 문구 - target_stage 가 올 때만 옵니다
receipt_no
이 신청 건의 접수번호 - target_stage 가 오지 않을 때(단계 있음)만 옵니다
resolved
후보 조회가 됐는지 여부 - target_stage 가 오지 않을 때만 옵니다. false 면 reason· provider_message_ko 에 안 된 사유가, true 면 count·selectable_count·candidates· how_to_select_ko·why_selectable_matters_ko 에 결과가 담깁니다
reason
resolved:false 일 때의 사유 코드(target_list_not_in_response) - resolved:true 면 오지 않습니다
count
조회된 후보 총 인원 - resolved:true 일 때만 옵니다
selectable_count
그중 이번 차수에 지정 가능한(selectable:true) 인원 - resolved:true 일 때만 옵니다
candidates
지정할 수 있는 근로자 후보 목록 - target_stage 가 오지 않을 때만 옵니다
note_ko
조회 결과에 대한 한국어 안내 문구 - target_stage 가 오지 않을 때만 옵니다
provider_message_ko
기관 원문 안내 문구(msgTxt, 최대 300자) - 2026-09-15 정정: 후보가 0명일 때가 아니라 기관 응답에서 후보 목록 자체를 읽지 못했을 때(resolved:false) 옵니다. 후보가 0명인 것은 정상 응답(resolved:true·count:0)이라 이 필드가 오지 않습니다
how_to_select_ko
target_save 호출 방법 안내 문구 - resolved:true 일 때만 옵니다
why_selectable_matters_ko
selectable 판정의 의미(사전진단은 사업장 요건만 본다는 안내) - resolved:true 일 때만 옵니다
selection_options
지정 시 선택할 수 있는 옵션 객체 - worker_type · labor_contract - target_stage 가 오지 않을 때만 옵니다
required_for_save_ko
대상자 저장(target_save)에 필요한 값을 안내하는 문구 - target_stage 가 오지 않을 때만 옵니다
safety
저장·제출 실행 여부를 나타내는 안전 상태 객체 - target_stage 가 오지 않을 때만 옵니다
세션 없음 — 고용24 세션이 없습니다. 고용24 세션 로그인을 먼저 호출한 뒤 같은 account_link_id 로 다시 요청합니다.
PROVIDER_SESSION_EXPIRED
세션 만료 — 고용24 세션이 만료됐습니다. 고용24 세션 로그인을 다시 호출합니다.
PROVIDER_IP_REJECTED
접근 제한 — 고용24가 요청을 일시적으로 제한했습니다. 짧은 시간에 너무 많이 호출했다면 잠시 후 다시 시도할 수 있지만, 접근 자체가 차단된 경우에는 재시도해도 풀리지 않으므로 계속되면 문의합니다.
PROVIDER_UPSTREAM_ERROR
업스트림 오류 — 고용24가 일시적으로 응답하지 않거나 올바르지 않은 응답을 줬습니다. 일시적 무응답은 잠시 후 다시 호출하면 되지만, 기관이 명확히 오류로 답한 경우에는 재시도해도 같은 결과이므로 보낸 값부터 다시 확인합니다.
PROVIDER_UNAVAILABLE
연결 오류 — 고용24 접속에 실패했습니다. 응답 지연(타임아웃)도 이 코드로 옵니다 - 조회는 재시도해도 안전한 요청이라 재시도 가능으로 표시됩니다. 잠시 후 다시 호출합니다.
VALIDATION_SEMANTIC_ERROR
파라미터 형식 오류 — 보낸 값이 이 액션의 요청 형식과 맞지 않습니다(예: 필수 필드 누락·타입 불일치·정의되지 않은 필드 포함 - 이 계약은 모르는 필드를 허용하지 않습니다). 메시지는 원인이 된 필드 이름을 pydantic 원문 그대로 담아 영문이 섞일 수 있습니다.
VALIDATION_INVALID_FIELD
사업장관리번호 확인 불가 — 사업장관리번호(business_management_no)를 생략했는데 계정에서 자동으로 확인할 수 없습니다. 값을 직접 지정합니다.
VALIDATION_INVALID_FIELD
지원사업 키 확인 불가 — programme_key 가 카탈로그에 없거나 아직 이 상품에서 실측되지 않은 사업입니다. 카탈로그 사업 중 신청이 실측된 것은 일부뿐입니다 - 값을 다시 확인합니다.
POLICY_FEATURE_DISABLED
쓰기 잠금 — 이 상품의 신청서 쓰기 기능이 정책으로 잠겨 있습니다. 다시 시도해도 풀리지 않으니 서비스문의로 알려 주세요. 사전진단·신청 진입·필요입력 안내·신청 이력 조회는 잠긴 동안에도 그대로 됩니다. 다만 중간 저장이 필요한 일부 사업(카탈로그에 선언된 경우, 2026-09-15 기준 1개)의 대상자 조회(target_init· target_search)·제출 전 확인(draft_validate)은 그 화면 진입 자체가 실제 저장을 수반해 함께 잠깁니다.
세션 없음 — 고용24 세션이 없습니다. 고용24 세션 로그인을 먼저 호출한 뒤 같은 account_link_id 로 다시 요청합니다.
PROVIDER_SESSION_EXPIRED
세션 만료 — 고용24 세션이 만료됐습니다. 고용24 세션 로그인을 다시 호출합니다.
PROVIDER_IP_REJECTED
접근 제한 — 고용24가 요청을 일시적으로 제한했습니다. 짧은 시간에 너무 많이 호출했다면 잠시 후 다시 시도할 수 있지만, 접근 자체가 차단된 경우에는 재시도해도 풀리지 않으므로 계속되면 문의합니다.
PROVIDER_TIMEOUT_READ
응답 지연 — 고용24 응답이 지연됐습니다. 재시도 불가로 표시되므로 바로 다시 부르지 말고 잠시 뒤 상태를 확인한 뒤 다시 호출합니다.
PROVIDER_UPSTREAM_ERROR
업스트림 오류 — 고용24가 일시적으로 응답하지 않거나 올바르지 않은 응답을 줬습니다. 일시적 무응답은 잠시 후 다시 호출하면 되지만, 기관이 명확히 오류로 답한 경우에는 재시도해도 같은 결과이므로 보낸 값부터 다시 확인합니다.
PROVIDER_UNAVAILABLE
연결 오류 — 고용24 접속에 실패했습니다. 잠시 후 다시 호출합니다.
VALIDATION_SEMANTIC_ERROR
파라미터 형식 오류 — 보낸 값이 이 액션의 요청 형식과 맞지 않습니다(예: 필수 필드 누락·타입 불일치·정의되지 않은 필드 포함 - 이 계약은 모르는 필드를 허용하지 않습니다). 메시지는 원인이 된 필드 이름을 pydantic 원문 그대로 담아 영문이 섞일 수 있습니다.
VALIDATION_INVALID_FIELD
사업장관리번호 확인 불가 — 사업장관리번호(business_management_no)를 생략했는데 계정에서 자동으로 확인할 수 없습니다. 값을 직접 지정합니다.
POLICY_FEATURE_DISABLED
쓰기 잠금 — 이 상품의 신청서 쓰기 기능이 정책으로 잠겨 있습니다. 다시 시도해도 풀리지 않으니 서비스문의로 알려 주세요. 사전진단·신청 진입·필요입력 안내·신청 이력 조회는 잠긴 동안에도 그대로 됩니다. 다만 중간 저장이 필요한 일부 사업(카탈로그에 선언된 경우, 2026-09-15 기준 1개)의 대상자 조회(target_init· target_search)·제출 전 확인(draft_validate)은 그 화면 진입 자체가 실제 저장을 수반해 함께 잠깁니다.
VALIDATION_MISSING_FIELD
확인 누락 — confirm=true 가 없습니다. 이 액션은 고용24 화면에서도 확인 대화상자를 거치는 되돌리기 어려운 요청이라 API 도 명시 확인을 요구합니다.
RESOURCE_CONFLICT
철회 값 확인 불가 — 409) — 철회에 필요한 기관 부여 값(issn 등)을 화면에서 확인하지 못했습니다(WITHDRAW_KEYS_MISSING). 제출이 완료된 신청서가 맞는지 먼저 확인합니다 - 작성중 초안은 delete 로 지웁니다.
INTERNAL_ERROR
철회 실패 — 502) — 기관이 처리 결과를 0 이하로 응답했습니다(WITHDRAW_FAILED). **주의**: 이 사유는 지금 고객에게 그대로 가지 않습니다 - 502/501 오류는 action 정보 없는 공용 처리로 빠져 실제로는 고정 문구('서버 내부 오류로 작업을 마치지 못했습니다. 잠시 후 다시 시도해 주세요.')만 응답에 실립니다. 위 사유는 서버 로그·provider_error_ref 로만 남습니다(2026-09-15 2차 검증 확인).
세션 없음 — 고용24 세션이 없습니다. 고용24 세션 로그인을 먼저 호출한 뒤 같은 account_link_id 로 다시 요청합니다.
PROVIDER_SESSION_EXPIRED
세션 만료 — 고용24 세션이 만료됐습니다. 고용24 세션 로그인을 다시 호출합니다.
PROVIDER_IP_REJECTED
접근 제한 — 고용24가 요청을 일시적으로 제한했습니다. 짧은 시간에 너무 많이 호출했다면 잠시 후 다시 시도할 수 있지만, 접근 자체가 차단된 경우에는 재시도해도 풀리지 않으므로 계속되면 문의합니다.
PROVIDER_TIMEOUT_READ
응답 지연 — 고용24 응답이 지연됐습니다. 재시도 불가로 표시되므로 바로 다시 부르지 말고 잠시 뒤 상태를 확인한 뒤 다시 호출합니다.
PROVIDER_UPSTREAM_ERROR
업스트림 오류 — 고용24가 일시적으로 응답하지 않거나 올바르지 않은 응답을 줬습니다. 일시적 무응답은 잠시 후 다시 호출하면 되지만, 기관이 명확히 오류로 답한 경우에는 재시도해도 같은 결과이므로 보낸 값부터 다시 확인합니다.
PROVIDER_UNAVAILABLE
연결 오류 — 고용24 접속에 실패했습니다. 잠시 후 다시 호출합니다.
VALIDATION_SEMANTIC_ERROR
파라미터 형식 오류 — 보낸 값이 이 액션의 요청 형식과 맞지 않습니다(예: 필수 필드 누락·타입 불일치·정의되지 않은 필드 포함 - 이 계약은 모르는 필드를 허용하지 않습니다). 메시지는 원인이 된 필드 이름을 pydantic 원문 그대로 담아 영문이 섞일 수 있습니다.
VALIDATION_INVALID_FIELD
사업장관리번호 확인 불가 — 사업장관리번호(business_management_no)를 생략했는데 계정에서 자동으로 확인할 수 없습니다. 값을 직접 지정합니다.
POLICY_FEATURE_DISABLED
쓰기 잠금 — 이 상품의 신청서 쓰기 기능이 정책으로 잠겨 있습니다. 다시 시도해도 풀리지 않으니 서비스문의로 알려 주세요. 사전진단·신청 진입·필요입력 안내·신청 이력 조회는 잠긴 동안에도 그대로 됩니다. 다만 중간 저장이 필요한 일부 사업(카탈로그에 선언된 경우, 2026-09-15 기준 1개)의 대상자 조회(target_init· target_search)·제출 전 확인(draft_validate)은 그 화면 진입 자체가 실제 저장을 수반해 함께 잠깁니다.
RESOURCE_CONFLICT
사전진단 불통과 — 사업주 사전진단을 통과하지 못해 신청할 수 없습니다(DIAGNOSIS_BLOCKS, 409). init 으로 사유를 먼저 확인합니다.
RESOURCE_NOT_FOUND
이어쓰기 대상 없음 — receipt_no 로 지정한 작성중 신청서를 사업장정보 화면에서 찾지 못했습니다(DRAFT_NOT_FOUND, 404). 이 상태로 저장하면 새 초안이 생기므로 중단합니다 - history 로 확인 후 다시 시도합니다.
RESOURCE_CONFLICT
중복 신청 방지 — 409) — receipt_no 를 생략했는데 같은 사업장·서식·귀속연도로 이미 신청한 이력이 있으면(PRIOR_APPLICATION_EXISTS) 또는 그 확인 자체가 안 되면(WORK24_SUBSIDY_APPLICATION_IDEMPOTENCY_UNVERIFIED, fail-closed) 중복 신청을 막기 위해 저장을 중단합니다. 이어서 작성하려면 안내된 접수번호를 receipt_no 로 함께 보냅니다.
VALIDATION_SEMANTIC_ERROR
필수 입력 누락 — 422) — 화면에도 기관이 채워 주는 값도 없는 필수 항목이 있습니다(REQUIRED_FIELDS_MISSING). requirements 로 무엇이 필요한지 먼저 확인합니다.
VALIDATION_SEMANTIC_ERROR
계좌 거절 — 422) — 기관이 등록한 지급계좌를 문제 삼아 접수번호를 발급하지 않았습니다(ACCOUNT_REJECTED). 계좌를 다시 등록·확인한 뒤 다시 시도합니다.
INTERNAL_ERROR
접수번호 미발급 — 502) — 기관이 사유 문구만 주고 접수번호를 내주지 않았습니다(RECEIPT_NOT_ISSUED). 위 계좌 거절이 아닌 다른 사유라 우리 쪽 계약 결함일 수 있어 재시도보다 문의를 권합니다. **주의**: 이 사유는 지금 고객에게 그대로 가지 않습니다 - 502/501 오류는 action 정보 없는 공용 처리로 빠져 실제로는 고정 문구('서버 내부 오류로 작업을 마치지 못했습니다. 잠시 후 다시 시도해 주세요.')만 응답에 실립니다. 위 사유는 서버 로그·provider_error_ref 로만 남습니다(2026-09-15 2차 검증 확인).
VALIDATION_SEMANTIC_ERROR
선택값 오류 — 422) — 귀속연도·차수 같은 코드값 필드에 화면이 허용하지 않는 값을 보냈습니다(CHOICE_INVALID). 오류 메시지가 그 필드의 실제 허용값 목록을 함께 알려줍니다 - requirements 의 field_options 로도 미리 확인할 수 있습니다. (2026-09-15 2차 검증으로 추가된 행