{
  "schema_version": "1.2",
  "name": "XBOSS 무료도구",
  "description": "사업자 확인부터 문서 작성과 계산까지. 회원가입 없이 사용하는 XBOSS 무료도구입니다. 각 도구의 사용 범위와 실행 가능 여부를 확인하세요.",
  "url": "https://xboss.biz/tools",
  "directory_only": true,
  "authentication_required": false,
  "onboarding": {
    "guide_url": "https://api.xdata.kr/auth.md",
    "mcp_endpoint": "https://api.xdata.kr/mcp",
    "public_product_catalog": "https://api.xdata.kr/v1/public/catalog/products",
    "public_plans": "https://api.xdata.kr/v1/public/plans",
    "public_rest_headers": {
      "X-Env-Scope": "production"
    },
    "instructions": "Free results and exports do not require signup. For optional registered work, read the existing auth guide and live product contract. An HTTP-capable agent may start the existing owner-email signup with the user authorization and secure credential storage described there. MCP-only clients use supported account connection or relay the official user link; there is no signup MCP tool. Institution credentials and user confirmation remain task-specific. Do not request passwords, email codes or client secrets in chat. Keep the selected task and recover any existing job before resubmitting."
  },
  "tools": [
    {
      "id": "business-info",
      "name": "사업자 정보 조회",
      "description": "번호, 상호 또는 대표자명으로 회사를 찾으세요.",
      "url": "https://xboss.biz/tools/business-info",
      "availability": "pending",
      "execution": {
        "mode": "unavailable",
        "browser_automation_supported": false,
        "browser_javascript_required": false,
        "supported_clients": [],
        "authentication_required": false,
        "api_key_required": false,
        "data_processing": "unavailable",
        "instructions": "Execution is unavailable. Do not infer a working endpoint from this page."
      },
      "api": {
        "available": false,
        "reason": "Execution is unavailable."
      },
      "inputs": [
        {
          "name": "q",
          "label": "사업자등록번호, 상호 또는 대표자명",
          "type": "search",
          "required": false,
          "dom": {
            "id": "business-query"
          }
        }
      ],
      "result_description": "사업자 검색과 상세 정보 조회를 위한 데이터 연결을 준비 중입니다.",
      "scope": "등록정보 진위확인과 다른 검색 기능입니다. 검색 데이터가 연결되고 정확성이 검증되기 전에는 실행 결과를 제공하지 않습니다.",
      "privacy": "입력값은 이 브라우저에서 처리하며 저장하거나 서버로 전송하지 않습니다.",
      "sources": []
    },
    {
      "id": "payslip",
      "name": "급여명세서와 급여대장",
      "description": "급여 내역을 보기 좋은 문서로 정리하세요.",
      "url": "https://xboss.biz/tools/payslip",
      "availability": "local",
      "related_registered_workflow": {
        "product_slug": "register-xlsx",
        "signup_acquisition": {
          "source": "website",
          "campaign": "free_tools",
          "product_slug": "register-xlsx",
          "tool_slug": "payslip"
        },
        "info_url": "https://xboss.biz/service-products/register-xlsx?utm_source=website&utm_medium=product&utm_campaign=free_tools&utm_content=register-xlsx&utm_tool=payslip",
        "relationship": "Related work, not an equivalent free operation. The existing product page resolves current availability, prerequisites and signup returnTo.",
        "free_result_remains_available": true
      },
      "execution": {
        "mode": "browser_form",
        "browser_automation_supported": true,
        "browser_javascript_required": true,
        "input_readiness": "wait_for_enabled_controls",
        "supported_clients": [
          "browser_agent"
        ],
        "authentication_required": false,
        "api_key_required": false,
        "data_processing": "browser_local",
        "form_selector": "main form",
        "result_json_selector": "#free-tool-result",
        "instructions": "Open the page with JavaScript enabled and wait until the input controls are enabled. Fill the labelled fields. Follow inputs.dom.after to reveal conditional fields. Repeated input names use zero-based indexes; read actual DOM IDs rather than treating row IDs as indexes. Use the documented add buttons for extra rows. Set checkbox checked state rather than inventing a value. Submit and read #free-tool-result. Do not POST inputs to this directory or invent an HTTP endpoint for a local tool."
      },
      "api": {
        "available": false,
        "reason": "This tool runs in the browser. No HTTP API or MCP operation is exposed for this local tool."
      },
      "inputs": [
        {
          "name": "employer.name",
          "label": "사업장명",
          "type": "text",
          "required": true,
          "dom": {
            "id": "payroll-employer"
          }
        },
        {
          "name": "paymentDate",
          "label": "지급일",
          "type": "date",
          "required": true,
          "dom": {
            "id": "payroll-date"
          }
        },
        {
          "name": "payPeriod",
          "label": "급여 대상기간",
          "type": "text",
          "required": false,
          "dom": {
            "id": "payroll-period",
            "after": "사업장과 대상기간 추가 정보를 엽니다."
          }
        },
        {
          "name": "employer.address",
          "label": "사업장 주소",
          "type": "text",
          "required": false,
          "dom": {
            "id": "payroll-address",
            "after": "사업장과 대상기간 추가 정보를 엽니다."
          }
        },
        {
          "name": "employer.contact",
          "label": "연락처",
          "type": "text",
          "required": false,
          "dom": {
            "id": "payroll-contact",
            "after": "사업장과 대상기간 추가 정보를 엽니다."
          }
        },
        {
          "name": "employees.{employeeIndex}.name",
          "label": "근로자명",
          "type": "text",
          "required": true,
          "dom": {
            "idPattern": "payroll-employee-{employeeId}",
            "repeat": {
              "addButtonLabel": "근로자 추가",
              "indexBase": 0,
              "initialCount": 1,
              "maxCount": 49
            }
          }
        },
        {
          "name": "employees.{employeeIndex}.identifier",
          "label": "사번 동명이인은 필수",
          "type": "text",
          "required": false,
          "requiredWhen": "다른 근로자와 이름이 같은 경우",
          "dom": {
            "idPattern": "payroll-identifier-{employeeId}",
            "after": "해당 근로자의 사번 추가를 엽니다.",
            "repeat": {
              "addButtonLabel": "근로자 추가",
              "indexBase": 0,
              "initialCount": 1,
              "maxCount": 49
            }
          }
        },
        {
          "name": "employees.{employeeIndex}.payments.{lineIndex}.name",
          "label": "항목명",
          "type": "text",
          "required": true,
          "dom": {
            "idPattern": "payroll-payment-{paymentId}-name",
            "repeat": {
              "addButtonLabel": "지급 항목 추가",
              "indexBase": 0,
              "initialCount": 1,
              "maxCount": 30,
              "within": "employees.{employeeIndex}"
            }
          }
        },
        {
          "name": "employees.{employeeIndex}.payments.{lineIndex}.amountWon",
          "label": "금액 원",
          "type": "text",
          "required": true,
          "dom": {
            "idPattern": "payroll-payment-{paymentId}-amount",
            "repeat": {
              "addButtonLabel": "지급 항목 추가",
              "indexBase": 0,
              "initialCount": 1,
              "maxCount": 30,
              "within": "employees.{employeeIndex}"
            }
          }
        },
        {
          "name": "employees.{employeeIndex}.payments.{lineIndex}.kind",
          "label": "지급 성격",
          "type": "select",
          "required": true,
          "options": [
            "fixed",
            "variable",
            "overtime",
            "night",
            "holiday",
            "adjustment",
            "non-cash"
          ],
          "dom": {
            "idPattern": "payroll-payment-{paymentId}-kind",
            "repeat": {
              "addButtonLabel": "지급 항목 추가",
              "indexBase": 0,
              "initialCount": 1,
              "maxCount": 30,
              "within": "employees.{employeeIndex}"
            }
          }
        },
        {
          "name": "employees.{employeeIndex}.payments.{lineIndex}.hours",
          "label": "해당 근로시간 시간",
          "type": "text",
          "required": false,
          "requiredWhen": "같은 지급 항목의 kind가 overtime, night, holiday 중 하나인 경우",
          "dom": {
            "idPattern": "payroll-payment-{paymentId}-hours",
            "after": "지급 성격을 연장근로, 야간근로 또는 휴일근로로 선택합니다.",
            "repeat": {
              "addButtonLabel": "지급 항목 추가",
              "indexBase": 0,
              "initialCount": 1,
              "maxCount": 30,
              "within": "employees.{employeeIndex}"
            }
          }
        },
        {
          "name": "employees.{employeeIndex}.payments.{lineIndex}.quantityDescription",
          "label": "현물 품명과 수량",
          "type": "text",
          "required": false,
          "requiredWhen": "같은 지급 항목의 kind가 non-cash인 경우",
          "dom": {
            "idPattern": "payroll-payment-{paymentId}-quantity",
            "after": "지급 성격을 현물 지급으로 선택합니다.",
            "repeat": {
              "addButtonLabel": "지급 항목 추가",
              "indexBase": 0,
              "initialCount": 1,
              "maxCount": 30,
              "within": "employees.{employeeIndex}"
            }
          }
        },
        {
          "name": "employees.{employeeIndex}.payments.{lineIndex}.calculationMethod",
          "label": "계산방법",
          "type": "textarea",
          "required": false,
          "requiredWhen": "같은 지급 항목의 kind가 fixed가 아닌 경우",
          "dom": {
            "idPattern": "payroll-payment-{paymentId}-method",
            "after": "고정 지급이면 계산방법 확인 또는 수정을 엽니다. 차감 정산이면 레이블은 정산 사유와 계산방법입니다.",
            "repeat": {
              "addButtonLabel": "지급 항목 추가",
              "indexBase": 0,
              "initialCount": 1,
              "maxCount": 30,
              "within": "employees.{employeeIndex}"
            }
          }
        },
        {
          "name": "employees.{employeeIndex}.deductions.{lineIndex}.name",
          "label": "항목명",
          "type": "text",
          "required": true,
          "dom": {
            "idPattern": "payroll-deduction-{deductionId}-name",
            "repeat": {
              "addButtonLabel": "공제 항목 추가",
              "indexBase": 0,
              "initialCount": 0,
              "maxCount": 30,
              "within": "employees.{employeeIndex}"
            }
          }
        },
        {
          "name": "employees.{employeeIndex}.deductions.{lineIndex}.amountWon",
          "label": "금액 원 / 환급은 음수",
          "type": "text",
          "required": true,
          "dom": {
            "idPattern": "payroll-deduction-{deductionId}-amount",
            "repeat": {
              "addButtonLabel": "공제 항목 추가",
              "indexBase": 0,
              "initialCount": 0,
              "maxCount": 30,
              "within": "employees.{employeeIndex}"
            }
          }
        },
        {
          "name": "employees.{employeeIndex}.deductions.{lineIndex}.reason",
          "label": "공제 또는 환급 사유 환급 시 필수",
          "type": "textarea",
          "required": false,
          "requiredWhen": "같은 공제 항목의 amountWon이 음수인 경우",
          "dom": {
            "idPattern": "payroll-deduction-{deductionId}-reason",
            "repeat": {
              "addButtonLabel": "공제 항목 추가",
              "indexBase": 0,
              "initialCount": 0,
              "maxCount": 30,
              "within": "employees.{employeeIndex}"
            }
          }
        },
        {
          "name": "confirmNegativeNet",
          "label": "음수 실지급액이 차감 정산임을 확인했습니다.",
          "type": "checkbox",
          "required": false,
          "requiredWhen": "실지급액이 음수여서 확인 안내가 표시된 경우",
          "dom": {
            "after": "급여 문서 만들기 실행 후 음수 차감 정산 확인이 필요한 경우에만 표시됩니다."
          }
        },
        {
          "name": "payrollView",
          "label": "보기",
          "type": "radio",
          "required": false,
          "options": [
            "statement",
            "register"
          ],
          "dom": {
            "after": "급여 문서를 만든 뒤 결과 영역에서 선택합니다."
          }
        },
        {
          "name": "selectedEmployee",
          "label": "근로자 선택",
          "type": "select",
          "required": false,
          "dom": {
            "id": "payroll-result-employee",
            "after": "급여 문서를 만들고 개별 명세서 보기를 선택합니다. 선택값은 결과의 근로자 순서에 따른 0부터 시작하는 인덱스입니다."
          }
        }
      ],
      "result_description": "입력한 지급액과 공제액을 바탕으로 급여 문서를 만듭니다.",
      "scope": "소득세나 보험료를 자동 확정하지 않습니다. 지급 항목별 계산 방법과 실제 공제액을 입력하세요. 급여대장은 입력한 내역의 집계 문서이며 법정 임금대장에 필요한 근로기록 전체를 대신하지 않습니다.",
      "privacy": "입력값은 이 브라우저에서 처리하며 저장하거나 서버로 전송하지 않습니다.",
      "sources": [
        {
          "title": "고용노동부 임금명세서 만들기",
          "url": "https://www.moel.go.kr/wageCal.do"
        }
      ]
    },
    {
      "id": "business-status",
      "name": "사업자 휴폐업 조회",
      "description": "거래 전 사업자 상태를 확인하세요.",
      "url": "https://xboss.biz/tools/business-status",
      "availability": "anonymous",
      "related_registered_workflow": {
        "product_slug": "사업자-등록사항-및-담당자-안내",
        "signup_acquisition": {
          "source": "website",
          "campaign": "free_tools",
          "product_slug": "사업자-등록사항-및-담당자-안내",
          "tool_slug": "business-status"
        },
        "info_url": "https://xboss.biz/service-products/%EC%82%AC%EC%97%85%EC%9E%90-%EB%93%B1%EB%A1%9D%EC%82%AC%ED%95%AD-%EB%B0%8F-%EB%8B%B4%EB%8B%B9%EC%9E%90-%EC%95%88%EB%82%B4?utm_source=website&utm_medium=product&utm_campaign=free_tools&utm_content=%EC%82%AC%EC%97%85%EC%9E%90-%EB%93%B1%EB%A1%9D%EC%82%AC%ED%95%AD-%EB%B0%8F-%EB%8B%B4%EB%8B%B9%EC%9E%90-%EC%95%88%EB%82%B4&utm_tool=business-status",
        "relationship": "Related work, not an equivalent free operation. The existing product page resolves current availability, prerequisites and signup returnTo.",
        "free_result_remains_available": true
      },
      "execution": {
        "mode": "browser_form",
        "browser_automation_supported": true,
        "browser_javascript_required": true,
        "input_readiness": "wait_for_enabled_controls",
        "supported_clients": [
          "browser_agent",
          "http_mcp_client"
        ],
        "authentication_required": false,
        "api_key_required": false,
        "data_processing": "remote_lookup",
        "form_selector": "main form",
        "result_json_selector": "#free-tool-result",
        "instructions": "Open the page and wait for its live anonymous capability check. Fill the labelled form and submit once. Business information is sent to XBOSS and the National Tax Service. Read the result region and JSON result. Never automatically repeat a lookup after a timeout."
      },
      "api": {
        "available": true,
        "javascript_required": false,
        "protocol": "mcp",
        "endpoint": "https://api.xdata.kr/mcp",
        "http_method": "POST",
        "headers": {
          "Content-Type": "application/json",
          "Accept": "application/json"
        },
        "credentials": "omit",
        "cache": "no-store",
        "authentication_required": false,
        "api_key_required": false,
        "capability_check": {
          "required": true,
          "jsonrpc_method": "tools/list",
          "params": {},
          "requirements": {
            "tool_name": "opendata__nts__status",
            "matching_tool_count": 1,
            "security_scheme_type": "noauth",
            "credential_required": false,
            "credential_metadata_path": "_meta[\"xdata.kr/credential\"].required"
          },
          "instructions": "Before each lookup, POST a JSON-RPC 2.0 tools/list request without cookies or credentials. Continue only when exactly one named tool advertises securitySchemes containing type noauth and _meta[\"xdata.kr/credential\"].required is false. If not, stop without submitting business information."
        },
        "jsonrpc_method": "tools/call",
        "tool_name": "opendata__nts__status",
        "inputSchema": {
          "type": "object",
          "required": [
            "b_no"
          ],
          "additionalProperties": false,
          "properties": {
            "b_no": {
              "type": "array",
              "minItems": 1,
              "maxItems": 100,
              "items": {
                "type": "string",
                "pattern": "^[0-9]{10}$"
              }
            }
          }
        },
        "request_schema": {
          "type": "object",
          "required": [
            "jsonrpc",
            "id",
            "method",
            "params"
          ],
          "additionalProperties": false,
          "properties": {
            "jsonrpc": {
              "const": "2.0"
            },
            "id": {
              "type": [
                "string",
                "number"
              ],
              "description": "Use a unique request identifier and verify that the response echoes it."
            },
            "method": {
              "const": "tools/call"
            },
            "params": {
              "type": "object",
              "required": [
                "name",
                "arguments"
              ],
              "additionalProperties": false,
              "properties": {
                "name": {
                  "const": "opendata__nts__status"
                },
                "arguments": {
                  "type": "object",
                  "required": [
                    "b_no"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "b_no": {
                      "type": "array",
                      "minItems": 1,
                      "maxItems": 100,
                      "items": {
                        "type": "string",
                        "pattern": "^[0-9]{10}$"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "retry_policy": {
          "automatic": false,
          "on_timeout": "The previous result is unknown. Do not automatically repeat tools/call.",
          "on_limit": "Respect the server-provided waiting time. Retry only after a new explicit user action."
        },
        "privacy": "입력한 사업자 정보는 엑스보스와 국세청의 확인에 사용됩니다. 로그인이나 API 키 없이 조회합니다.",
        "verifiedOn": "2026-11-05"
      },
      "inputs": [
        {
          "name": "business_numbers",
          "label": "사업자등록번호",
          "type": "textarea",
          "required": true,
          "dom": {
            "id": "nts-numbers"
          }
        }
      ],
      "result_description": "국세청에 등록된 사업자 상태와 과세 유형을 확인합니다.",
      "scope": "조회되지 않은 정보나 일시적인 연결 실패를 폐업으로 판단하지 않습니다. 거래 안전성을 보증하는 조회는 아닙니다.",
      "privacy": "입력한 사업자 정보는 엑스보스와 국세청의 확인에 사용됩니다. 로그인이나 API 키 없이 조회합니다.",
      "sources": [
        {
          "title": "국세청 사업자등록정보 진위확인 및 상태조회",
          "url": "https://www.data.go.kr/data/15081808/openapi.do"
        }
      ]
    },
    {
      "id": "labor-cost",
      "name": "직원 채용비용 계산기",
      "description": "월급 외에 필요한 채용 예산을 살펴보세요.",
      "url": "https://xboss.biz/tools/labor-cost",
      "availability": "local",
      "related_registered_workflow": {
        "product_slug": "payroll-pack-premium-summary-v1-generate",
        "signup_acquisition": {
          "source": "website",
          "campaign": "free_tools",
          "product_slug": "payroll-pack-premium-summary-v1-generate",
          "tool_slug": "labor-cost"
        },
        "info_url": "https://xboss.biz/service-products/payroll-pack-premium-summary-v1-generate?utm_source=website&utm_medium=product&utm_campaign=free_tools&utm_content=payroll-pack-premium-summary-v1-generate&utm_tool=labor-cost",
        "relationship": "Related work, not an equivalent free operation. The existing product page resolves current availability, prerequisites and signup returnTo.",
        "free_result_remains_available": true
      },
      "execution": {
        "mode": "browser_form",
        "browser_automation_supported": true,
        "browser_javascript_required": true,
        "input_readiness": "wait_for_enabled_controls",
        "supported_clients": [
          "browser_agent"
        ],
        "authentication_required": false,
        "api_key_required": false,
        "data_processing": "browser_local",
        "form_selector": "main form",
        "result_json_selector": "#free-tool-result",
        "instructions": "Open the page with JavaScript enabled and wait until the input controls are enabled. Fill the labelled fields. Follow inputs.dom.after to reveal conditional fields. Repeated input names use zero-based indexes; read actual DOM IDs rather than treating row IDs as indexes. Use the documented add buttons for extra rows. Set checkbox checked state rather than inventing a value. Submit and read #free-tool-result. Do not POST inputs to this directory or invent an HTTP endpoint for a local tool."
      },
      "api": {
        "available": false,
        "reason": "This tool runs in the browser. No HTTP API or MCP operation is exposed for this local tool."
      },
      "inputs": [
        {
          "name": "salary_won",
          "label": "세전 월급 원",
          "type": "text",
          "required": true,
          "dom": {
            "id": "labor-salary"
          }
        },
        {
          "name": "non_taxable_won",
          "label": "그중 비과세 금액 원",
          "type": "text",
          "required": true,
          "dom": {
            "id": "labor-nontax"
          }
        },
        {
          "name": "employer_size",
          "label": "사업장 규모",
          "type": "select",
          "required": true,
          "options": [
            "A",
            "B",
            "C",
            "D"
          ],
          "dom": {
            "id": "labor-size"
          }
        },
        {
          "name": "industry_id",
          "label": "산재보험 업종",
          "type": "select",
          "required": false,
          "options": [
            "unknown",
            "coal-quarry",
            "other-mining",
            "food",
            "textile",
            "wood-paper",
            "publishing",
            "chemical-rubber",
            "pharma-oil",
            "machinery",
            "smelting",
            "electric-precision",
            "shipbuilding",
            "handicraft",
            "utilities",
            "construction",
            "rail-air-warehouse",
            "land-water-transport",
            "communication",
            "forestry",
            "fishery",
            "agriculture",
            "facility-support",
            "other-business",
            "professional-service",
            "wholesale-hospitality",
            "real-estate",
            "finance"
          ],
          "dom": {
            "id": "labor-industry",
            "after": "국가 및 지방자치단체의 사업은 계산 범위 밖이며 선택할 수 없습니다. 업종을 확인하지 않으면 부분 합계입니다."
          }
        },
        {
          "name": "month",
          "label": "계산 월",
          "type": "month",
          "required": true,
          "dom": {
            "id": "labor-month",
            "after": "2026년 1월부터 12월까지의 적용 기준을 사용합니다."
          }
        },
        {
          "name": "age_group",
          "label": "근로자 연령과 고용 이력",
          "type": "select",
          "required": false,
          "options": [
            "18-59",
            "60-64",
            "65-new",
            "65-continuing"
          ],
          "dom": {
            "id": "labor-age",
            "after": "추가 기준과 적용 제외를 엽니다."
          }
        },
        {
          "name": "standard_industrial_rate",
          "label": "산재 고시 기본요율 적용",
          "type": "checkbox",
          "required": false,
          "dom": {
            "id": "labor-industrial-standard",
            "after": "추가 기준과 적용 제외를 엽니다."
          }
        },
        {
          "name": "standard_employment_rate",
          "label": "규모별 기본 고용보험료율 적용",
          "type": "checkbox",
          "required": false,
          "dom": {
            "id": "labor-employment-standard",
            "after": "추가 기준과 적용 제외를 엽니다."
          }
        },
        {
          "name": "wage_claim",
          "label": "임금채권부담금",
          "type": "select",
          "required": false,
          "options": [
            "standard",
            "unknown"
          ],
          "dom": {
            "id": "labor-wageclaim",
            "after": "추가 기준과 적용 제외를 엽니다."
          }
        },
        {
          "name": "asbestos",
          "label": "석면분담금 부과 여부",
          "type": "select",
          "required": false,
          "options": [
            "unknown",
            "liable",
            "exempt"
          ],
          "dom": {
            "id": "labor-asbestos",
            "after": "추가 기준과 적용 제외를 엽니다."
          }
        },
        {
          "name": "retirement_reserve",
          "label": "퇴직 적립 예산 포함",
          "type": "checkbox",
          "required": false,
          "dom": {
            "after": "추가 기준과 적용 제외를 엽니다."
          }
        }
      ],
      "result_description": "적용 조건에 따른 사업주 부담액과 채용 예산을 항목별로 계산합니다.",
      "scope": "국내 일반 근로자 1명의 월정액 보수를 기준으로 사업주 예산을 계산합니다. 실제 보험료 고지나 퇴직급여를 확정하지 않습니다.",
      "privacy": "입력값은 이 브라우저에서 처리하며 저장하거나 서버로 전송하지 않습니다.",
      "sources": [
        {
          "title": "국민연금공단 2026 보험료와 기준소득월액",
          "url": "https://www.nps.or.kr/pnsinfo/ntpsklg/getOHAF0097M0.do"
        },
        {
          "title": "2026 사업장 실무안내",
          "url": "https://www.nps.or.kr/fileDown.do?atchFileId=FL26000086&atchFileSn=1"
        },
        {
          "title": "건강보험공단 2026 보험료율",
          "url": "https://edi.nhis.or.kr/portal/images/popup/20251204_pop01longdesc.html"
        },
        {
          "title": "월별 건강보험료액 상하한 고시",
          "url": "https://law.go.kr/LSW/conAdmrulByLsPop.do?admRulPttninfSeq=17390&datClsCd=010102&dguBun=DEG&joBrNo=00&joNo=0032&lsiSeq=244519"
        },
        {
          "title": "고용보험료율 시행령 제12조",
          "url": "https://law.go.kr/lsLawLinkInfo.do?chrClsCd=010202&lsJoLnkSeq=1000953537"
        },
        {
          "title": "2026 산재보험료율 고시",
          "url": "https://www.moel.go.kr/news/notice/noticeView.do?bbs_seq=20251201757"
        },
        {
          "title": "임금채권보장기금 부담금 고시",
          "url": "https://www.moel.go.kr/info/lawinfo/instruction/view.do?bbs_seq=20260100011"
        },
        {
          "title": "2026 석면피해구제분담금률",
          "url": "https://www.law.go.kr/flDownload.do?flSeq=159464513"
        },
        {
          "title": "고용24 적용 제외와 65세 가입 기준",
          "url": "https://ei.work24.go.kr/ei/eih/eg/ei/eiEminsr/retrieveEi0102Info.do"
        },
        {
          "title": "고용노동부 퇴직급여 산정 기준",
          "url": "https://1350.moel.go.kr/rtmview.do?id=1000000622"
        },
        {
          "title": "4대사회보험 공식 모의계산",
          "url": "https://www.4insure.or.kr/pbiz/ntcn/inscSmlCalcView.do"
        }
      ],
      "calculation": {
        "verifiedOn": "2026-11-05",
        "validFrom": "2026-01-01",
        "validThrough": "2026-12-31",
        "scope": "국내 일반 근로자 1명의 월정액 보수를 기준으로 사업주 예산을 계산합니다. 실제 보험료 고지나 퇴직급여를 확정하지 않습니다.",
        "exclusions": [
          "공무원, 사학연금 적용 교직원, 외국인, 일용근로자와 월 60시간 미만 근로자는 계산 범위에서 제외합니다.",
          "입퇴사월, 휴직, 두루누리 등 지원금과 보험료 감면, 연말정산, 복수 사업장 소득 합산은 반영하지 않습니다.",
          "실제 신고된 국민연금 기준소득월액과 건강보험 보수월액은 입력한 월 보수와 다를 수 있습니다.",
          "사업장 규모 증가에 따른 고용보험 요율 유예와 산재 개별실적요율은 회사의 실제 적용 여부를 확인해야 합니다.",
          "채용 수수료, 장비, 교육, 복리후생, 연장근로와 미사용 연차수당 등은 포함하지 않습니다."
        ],
        "roundingNotice": "국민연금은 기준소득월액의 천 원 미만을 버린 뒤 계산합니다. 각 보험료는 공식 모의계산 방식에 맞춰 10원 미만을 버립니다. 산재와 법정부담금도 개인별 월 예산에서 10원 미만을 버리므로 사업장 단위 실제 고지와 다를 수 있습니다.",
        "annualNotice": "연간 예산은 선택한 월의 보수와 요율이 12개월 유지된다고 가정한 환산액입니다. 다음 해 요율이나 중간 보수 변경을 예측하지 않습니다.",
        "retirementNotice": "퇴직 적립은 선택한 예산입니다. 월 예산은 총임금의 12분의 1을 원 단위 올림하고, 연간 예산에는 총임금 1개월분을 반영합니다. 법정 퇴직금이나 실제 DC 부담금을 확정하지 않습니다.",
        "sources": [
          {
            "title": "국민연금공단 2026 보험료와 기준소득월액",
            "url": "https://www.nps.or.kr/pnsinfo/ntpsklg/getOHAF0097M0.do"
          },
          {
            "title": "2026 사업장 실무안내",
            "url": "https://www.nps.or.kr/fileDown.do?atchFileId=FL26000086&atchFileSn=1"
          },
          {
            "title": "건강보험공단 2026 보험료율",
            "url": "https://edi.nhis.or.kr/portal/images/popup/20251204_pop01longdesc.html"
          },
          {
            "title": "월별 건강보험료액 상하한 고시",
            "url": "https://law.go.kr/LSW/conAdmrulByLsPop.do?admRulPttninfSeq=17390&datClsCd=010102&dguBun=DEG&joBrNo=00&joNo=0032&lsiSeq=244519"
          },
          {
            "title": "고용보험료율 시행령 제12조",
            "url": "https://law.go.kr/lsLawLinkInfo.do?chrClsCd=010202&lsJoLnkSeq=1000953537"
          },
          {
            "title": "2026 산재보험료율 고시",
            "url": "https://www.moel.go.kr/news/notice/noticeView.do?bbs_seq=20251201757"
          },
          {
            "title": "임금채권보장기금 부담금 고시",
            "url": "https://www.moel.go.kr/info/lawinfo/instruction/view.do?bbs_seq=20260100011"
          },
          {
            "title": "2026 석면피해구제분담금률",
            "url": "https://www.law.go.kr/flDownload.do?flSeq=159464513"
          },
          {
            "title": "고용24 적용 제외와 65세 가입 기준",
            "url": "https://ei.work24.go.kr/ei/eih/eg/ei/eiEminsr/retrieveEi0102Info.do"
          },
          {
            "title": "고용노동부 퇴직급여 산정 기준",
            "url": "https://1350.moel.go.kr/rtmview.do?id=1000000622"
          },
          {
            "title": "4대사회보험 공식 모의계산",
            "url": "https://www.4insure.or.kr/pbiz/ntcn/inscSmlCalcView.do"
          }
        ],
        "rules": {
          "pension": {
            "employerNumerator": 475,
            "denominator": 10000,
            "employerRate": "4.75%",
            "totalRate": "9.5%",
            "validFrom": "2026-01-01",
            "periods": [
              {
                "from": "2026-01",
                "through": "2026-06",
                "lowerWon": "400000",
                "upperWon": "6370000"
              },
              {
                "from": "2026-07",
                "through": "2026-12",
                "lowerWon": "410000",
                "upperWon": "6590000"
              }
            ]
          },
          "health": {
            "employerNumerator": 719,
            "denominator": 20000,
            "employerRate": "3.595%",
            "totalRate": "7.19%",
            "lowerEmployerWon": "10080",
            "upperEmployerWon": "4591740",
            "validFrom": "2026-01-01",
            "validThrough": "2026-12-31"
          },
          "care": {
            "numerator": 9448,
            "denominator": 71900,
            "incomeRate": "0.9448%",
            "basis": "10원 미만 절사 후의 회사 건강보험료",
            "validFrom": "2026-01-01",
            "validThrough": "2026-12-31"
          },
          "unemployment": {
            "employerNumerator": 9,
            "denominator": 1000,
            "employerRate": "0.9%",
            "validFrom": "2022-07-01"
          },
          "stabilization": {
            "denominator": 10000,
            "choices": [
              {
                "id": "A",
                "label": "150명 미만",
                "numerator": 25,
                "rate": "0.25%"
              },
              {
                "id": "B",
                "label": "150명 이상 우선지원 대상기업",
                "numerator": 45,
                "rate": "0.45%"
              },
              {
                "id": "C",
                "label": "150명 이상 1,000명 미만 일반기업",
                "numerator": 65,
                "rate": "0.65%"
              },
              {
                "id": "D",
                "label": "1,000명 이상 일반기업",
                "numerator": 85,
                "rate": "0.85%"
              }
            ],
            "verifiedThrough": "2026-12-31"
          },
          "industrial": {
            "denominator": 1000,
            "commutingNumerator": 6,
            "commutingDenominator": 10000,
            "commutingRate": "0.06%",
            "notice": "고용노동부고시 제2025-91호",
            "validFrom": "2026-01-01",
            "validThrough": "2026-12-31"
          },
          "wageClaim": {
            "numerator": 9,
            "denominator": 10000,
            "rate": "0.09%",
            "notice": "고용노동부고시 제2025-100호",
            "validFrom": "2026-01-01"
          },
          "asbestos": {
            "numerator": 6,
            "denominator": 100000,
            "rate": "0.006%",
            "notice": "기후에너지환경부고시 제2025-25호",
            "validFrom": "2026-01-01",
            "validThrough": "2026-12-31"
          }
        },
        "industrialCategories": [
          {
            "id": "coal-quarry",
            "label": "석탄광업 및 채석업",
            "perMille": 185
          },
          {
            "id": "other-mining",
            "label": "석회석, 금속, 비금속, 기타광업",
            "perMille": 57
          },
          {
            "id": "food",
            "label": "식료품 제조업",
            "perMille": 16
          },
          {
            "id": "textile",
            "label": "섬유 및 섬유제품 제조업",
            "perMille": 11
          },
          {
            "id": "wood-paper",
            "label": "목재 및 종이제품 제조업",
            "perMille": 20
          },
          {
            "id": "publishing",
            "label": "출판, 인쇄, 제본업",
            "perMille": 9
          },
          {
            "id": "chemical-rubber",
            "label": "화학 및 고무제품 제조업",
            "perMille": 13
          },
          {
            "id": "pharma-oil",
            "label": "의약품, 화장품, 연탄, 석유제품 제조업",
            "perMille": 7
          },
          {
            "id": "machinery",
            "label": "기계기구, 금속, 비금속광물제품 제조업",
            "perMille": 13
          },
          {
            "id": "smelting",
            "label": "금속제련업",
            "perMille": 10
          },
          {
            "id": "electric-precision",
            "label": "전기기계기구, 정밀기구, 전자제품 제조업",
            "perMille": 6
          },
          {
            "id": "shipbuilding",
            "label": "선박건조 및 수리업",
            "perMille": 24
          },
          {
            "id": "handicraft",
            "label": "수제품 및 기타제품 제조업",
            "perMille": 12
          },
          {
            "id": "utilities",
            "label": "전기, 가스, 증기, 수도사업",
            "perMille": 7
          },
          {
            "id": "construction",
            "label": "건설업",
            "perMille": 35
          },
          {
            "id": "rail-air-warehouse",
            "label": "철도, 항공, 창고, 운수관련서비스업",
            "perMille": 8
          },
          {
            "id": "land-water-transport",
            "label": "육상 및 수상운수업",
            "perMille": 18
          },
          {
            "id": "communication",
            "label": "통신업",
            "perMille": 9
          },
          {
            "id": "forestry",
            "label": "임업",
            "perMille": 58
          },
          {
            "id": "fishery",
            "label": "어업",
            "perMille": 27
          },
          {
            "id": "agriculture",
            "label": "농업",
            "perMille": 20
          },
          {
            "id": "facility-support",
            "label": "시설관리 및 사업지원 서비스업",
            "perMille": 8
          },
          {
            "id": "other-business",
            "label": "기타의 각종사업",
            "perMille": 8
          },
          {
            "id": "professional-service",
            "label": "전문, 보건, 교육, 여가관련 서비스업",
            "perMille": 6
          },
          {
            "id": "wholesale-hospitality",
            "label": "도소매, 음식, 숙박업",
            "perMille": 8
          },
          {
            "id": "real-estate",
            "label": "부동산 및 임대업",
            "perMille": 7
          },
          {
            "id": "public",
            "label": "국가 및 지방자치단체의 사업",
            "perMille": 9
          },
          {
            "id": "finance",
            "label": "금융 및 보험업",
            "perMille": 5
          }
        ]
      }
    },
    {
      "id": "estimate",
      "name": "견적서와 거래명세서",
      "description": "거래 내역을 입력하고 문서로 받으세요.",
      "url": "https://xboss.biz/tools/estimate",
      "availability": "local",
      "related_registered_workflow": {
        "product_slug": "전자세금계산서-목록",
        "signup_acquisition": {
          "source": "website",
          "campaign": "free_tools",
          "product_slug": "전자세금계산서-목록",
          "tool_slug": "estimate"
        },
        "info_url": "https://xboss.biz/service-products/%EC%A0%84%EC%9E%90%EC%84%B8%EA%B8%88%EA%B3%84%EC%82%B0%EC%84%9C-%EB%AA%A9%EB%A1%9D?utm_source=website&utm_medium=product&utm_campaign=free_tools&utm_content=%EC%A0%84%EC%9E%90%EC%84%B8%EA%B8%88%EA%B3%84%EC%82%B0%EC%84%9C-%EB%AA%A9%EB%A1%9D&utm_tool=estimate",
        "relationship": "Related work, not an equivalent free operation. The existing product page resolves current availability, prerequisites and signup returnTo.",
        "free_result_remains_available": true
      },
      "execution": {
        "mode": "browser_form",
        "browser_automation_supported": true,
        "browser_javascript_required": true,
        "input_readiness": "wait_for_enabled_controls",
        "supported_clients": [
          "browser_agent"
        ],
        "authentication_required": false,
        "api_key_required": false,
        "data_processing": "browser_local",
        "form_selector": "main form",
        "result_json_selector": "#free-tool-result",
        "instructions": "Open the page with JavaScript enabled and wait until the input controls are enabled. Fill the labelled fields. Follow inputs.dom.after to reveal conditional fields. Repeated input names use zero-based indexes; read actual DOM IDs rather than treating row IDs as indexes. Use the documented add buttons for extra rows. Set checkbox checked state rather than inventing a value. Submit and read #free-tool-result. Do not POST inputs to this directory or invent an HTTP endpoint for a local tool."
      },
      "api": {
        "available": false,
        "reason": "This tool runs in the browser. No HTTP API or MCP operation is exposed for this local tool."
      },
      "inputs": [
        {
          "name": "kind",
          "label": "문서 종류",
          "type": "radio",
          "required": false,
          "options": [
            "estimate",
            "statement"
          ]
        },
        {
          "name": "supplier.name",
          "label": "공급자",
          "type": "text",
          "required": true,
          "dom": {
            "id": "estimate-supplier"
          }
        },
        {
          "name": "recipient.name",
          "label": "받는 곳",
          "type": "text",
          "required": true,
          "dom": {
            "id": "estimate-recipient"
          }
        },
        {
          "name": "issueDate",
          "label": "작성일",
          "type": "date",
          "required": true,
          "dom": {
            "id": "estimate-date"
          }
        },
        {
          "name": "items.{index}.name",
          "label": "품목명",
          "type": "text",
          "required": true,
          "dom": {
            "idPattern": "estimate-item-{itemId}-name",
            "repeat": {
              "addButtonLabel": "품목 추가",
              "indexBase": 0,
              "initialCount": 1,
              "maxCount": 100
            }
          }
        },
        {
          "name": "items.{index}.quantity",
          "label": "수량",
          "type": "text",
          "required": true,
          "dom": {
            "idPattern": "estimate-item-{itemId}-quantity",
            "repeat": {
              "addButtonLabel": "품목 추가",
              "indexBase": 0,
              "initialCount": 1,
              "maxCount": 100
            }
          }
        },
        {
          "name": "items.{index}.unitPriceWon",
          "label": "단가 공급가액 원",
          "type": "text",
          "required": true,
          "dom": {
            "idPattern": "estimate-item-{itemId}-price",
            "repeat": {
              "addButtonLabel": "품목 추가",
              "indexBase": 0,
              "initialCount": 1,
              "maxCount": 100
            }
          }
        },
        {
          "name": "items.{index}.taxTreatment",
          "label": "과세 구분",
          "type": "select",
          "required": false,
          "options": [
            "taxable",
            "zero-rated",
            "exempt"
          ],
          "dom": {
            "idPattern": "estimate-item-{itemId}-tax",
            "repeat": {
              "addButtonLabel": "품목 추가",
              "indexBase": 0,
              "initialCount": 1,
              "maxCount": 100
            }
          }
        },
        {
          "name": "items.{index}.unit",
          "label": "단위",
          "type": "text",
          "required": false,
          "dom": {
            "idPattern": "estimate-item-{itemId}-unit",
            "after": "해당 품목의 단위 추가를 엽니다.",
            "repeat": {
              "addButtonLabel": "품목 추가",
              "indexBase": 0,
              "initialCount": 1,
              "maxCount": 100
            }
          }
        },
        {
          "name": "supplier.businessNumber",
          "label": "사업자번호",
          "type": "text",
          "required": false,
          "dom": {
            "id": "estimate-supplier-bizno",
            "after": "추가 정보와 계산 기준을 엽니다. supplier는 공급자 추가 정보이고 recipient는 받는 곳 추가 정보입니다."
          }
        },
        {
          "name": "supplier.representative",
          "label": "대표자",
          "type": "text",
          "required": false,
          "dom": {
            "id": "estimate-supplier-representative",
            "after": "추가 정보와 계산 기준을 엽니다."
          }
        },
        {
          "name": "supplier.address",
          "label": "주소",
          "type": "text",
          "required": false,
          "dom": {
            "id": "estimate-supplier-address",
            "after": "추가 정보와 계산 기준을 엽니다."
          }
        },
        {
          "name": "supplier.contact",
          "label": "연락처",
          "type": "text",
          "required": false,
          "dom": {
            "id": "estimate-supplier-contact",
            "after": "추가 정보와 계산 기준을 엽니다."
          }
        },
        {
          "name": "recipient.businessNumber",
          "label": "사업자번호",
          "type": "text",
          "required": false,
          "dom": {
            "id": "estimate-recipient-bizno",
            "after": "추가 정보와 계산 기준을 엽니다. supplier는 공급자 추가 정보이고 recipient는 받는 곳 추가 정보입니다."
          }
        },
        {
          "name": "recipient.representative",
          "label": "대표자",
          "type": "text",
          "required": false,
          "dom": {
            "id": "estimate-recipient-representative",
            "after": "추가 정보와 계산 기준을 엽니다."
          }
        },
        {
          "name": "recipient.address",
          "label": "주소",
          "type": "text",
          "required": false,
          "dom": {
            "id": "estimate-recipient-address",
            "after": "추가 정보와 계산 기준을 엽니다."
          }
        },
        {
          "name": "recipient.contact",
          "label": "연락처",
          "type": "text",
          "required": false,
          "dom": {
            "id": "estimate-recipient-contact",
            "after": "추가 정보와 계산 기준을 엽니다."
          }
        },
        {
          "name": "reference",
          "label": "문서번호",
          "type": "text",
          "required": false,
          "dom": {
            "id": "estimate-reference",
            "after": "추가 정보와 계산 기준을 엽니다."
          }
        },
        {
          "name": "rounding",
          "label": "원 미만 처리",
          "type": "select",
          "required": false,
          "options": [
            "floor",
            "half-up"
          ],
          "dom": {
            "id": "estimate-rounding",
            "after": "추가 정보와 계산 기준을 엽니다."
          }
        },
        {
          "name": "notes",
          "label": "비고",
          "type": "textarea",
          "required": false,
          "dom": {
            "id": "estimate-notes",
            "after": "추가 정보와 계산 기준을 엽니다."
          }
        }
      ],
      "result_description": "품목과 수량, 단가를 정리해 견적서 또는 거래명세서를 만듭니다.",
      "scope": "세금계산서 발급이나 기관 제출을 수행하지 않습니다.",
      "privacy": "입력값은 이 브라우저에서 처리하며 저장하거나 서버로 전송하지 않습니다.",
      "sources": []
    },
    {
      "id": "registration-ocr",
      "name": "사업자등록증을 엑셀로",
      "description": "문서 속 사업자 정보를 표로 옮기세요.",
      "url": "https://xboss.biz/tools/registration-ocr",
      "availability": "local",
      "related_registered_workflow": {
        "product_slug": "gov24-business-registration-certificate-issue",
        "signup_acquisition": {
          "source": "website",
          "campaign": "free_tools",
          "product_slug": "gov24-business-registration-certificate-issue",
          "tool_slug": "registration-ocr"
        },
        "info_url": "https://xboss.biz/service-products/gov24-business-registration-certificate-issue?utm_source=website&utm_medium=product&utm_campaign=free_tools&utm_content=gov24-business-registration-certificate-issue&utm_tool=registration-ocr",
        "relationship": "Related work, not an equivalent free operation. The existing product page resolves current availability, prerequisites and signup returnTo.",
        "free_result_remains_available": true
      },
      "execution": {
        "mode": "browser_form",
        "browser_automation_supported": true,
        "browser_javascript_required": true,
        "input_readiness": "wait_for_enabled_controls",
        "supported_clients": [
          "browser_agent"
        ],
        "authentication_required": false,
        "api_key_required": false,
        "data_processing": "browser_local",
        "form_selector": "main form",
        "result_json_selector": "#free-tool-result",
        "instructions": "Open the page with JavaScript enabled and wait until the input controls are enabled. Fill the labelled fields. Follow inputs.dom.after to reveal conditional fields. Repeated input names use zero-based indexes; read actual DOM IDs rather than treating row IDs as indexes. Use the documented add buttons for extra rows. Set checkbox checked state rather than inventing a value. Submit and read #free-tool-result. Do not POST inputs to this directory or invent an HTTP endpoint for a local tool."
      },
      "api": {
        "available": false,
        "reason": "This tool runs in the browser. No HTTP API or MCP operation is exposed for this local tool."
      },
      "inputs": [
        {
          "name": "document",
          "label": "사업자등록증 이미지 또는 PDF",
          "type": "file",
          "required": true,
          "dom": {
            "id": "registration-document"
          }
        },
        {
          "name": "page_number",
          "label": "인식할 페이지",
          "type": "number",
          "required": false,
          "requiredWhen": "선택한 문서가 PDF인 경우",
          "dom": {
            "id": "ocr-page",
            "after": "PDF를 선택하면 표시됩니다. 1부터 1000까지 중 실제 문서에 있는 페이지 하나를 선택합니다."
          }
        },
        {
          "name": "business_number",
          "label": "사업자등록번호",
          "type": "text",
          "required": false,
          "dom": {
            "id": "ocr-result-business_number",
            "after": "문자 인식하기가 끝난 뒤 원본과 대조하여 결과 영역의 값을 수정합니다."
          }
        },
        {
          "name": "company_name",
          "label": "상호 또는 법인명",
          "type": "text",
          "required": false,
          "dom": {
            "id": "ocr-result-company_name",
            "after": "문자 인식하기가 끝난 뒤 원본과 대조하여 결과 영역의 값을 수정합니다."
          }
        },
        {
          "name": "representative_name",
          "label": "대표자명",
          "type": "text",
          "required": false,
          "dom": {
            "id": "ocr-result-representative_name",
            "after": "문자 인식하기가 끝난 뒤 원본과 대조하여 결과 영역의 값을 수정합니다."
          }
        },
        {
          "name": "opening_date",
          "label": "개업일",
          "type": "date",
          "required": false,
          "dom": {
            "id": "ocr-result-opening_date",
            "after": "문자 인식하기가 끝난 뒤 원본과 대조하여 결과 영역의 값을 수정합니다."
          }
        },
        {
          "name": "address",
          "label": "사업장 주소",
          "type": "textarea",
          "required": false,
          "dom": {
            "id": "ocr-result-address",
            "after": "문자 인식하기가 끝난 뒤 원본과 대조하여 결과 영역의 값을 수정합니다."
          }
        },
        {
          "name": "business_type",
          "label": "업태",
          "type": "text",
          "required": false,
          "dom": {
            "id": "ocr-result-business_type",
            "after": "문자 인식하기가 끝난 뒤 원본과 대조하여 결과 영역의 값을 수정합니다."
          }
        },
        {
          "name": "business_item",
          "label": "종목",
          "type": "text",
          "required": false,
          "dom": {
            "id": "ocr-result-business_item",
            "after": "문자 인식하기가 끝난 뒤 원본과 대조하여 결과 영역의 값을 수정합니다."
          }
        }
      ],
      "result_description": "문서에서 읽은 값을 검토하고 수정한 뒤 표로 저장합니다.",
      "scope": "문자 인식은 문서의 진위 확인이 아닙니다. 실제 인식값을 원본과 대조할 수 있도록 제공합니다.",
      "privacy": "문서는 이 브라우저에서 인식하며 외부로 업로드하거나 저장하지 않습니다. 처음 실행할 때 한국어 인식용 파일을 내려받습니다.",
      "sources": [
        {
          "title": "Tesseract.js 브라우저 문자 인식",
          "url": "https://github.com/naptha/tesseract.js"
        },
        {
          "title": "Mozilla PDF.js",
          "url": "https://mozilla.github.io/pdf.js/"
        }
      ]
    },
    {
      "id": "vat",
      "name": "부가세 계산과 합계 점검",
      "description": "공급가액과 부가세를 빠르게 계산하세요.",
      "url": "https://xboss.biz/tools/vat",
      "availability": "local",
      "related_registered_workflow": {
        "product_slug": "부가가치세-신고내역-조회",
        "signup_acquisition": {
          "source": "website",
          "campaign": "free_tools",
          "product_slug": "부가가치세-신고내역-조회",
          "tool_slug": "vat"
        },
        "info_url": "https://xboss.biz/service-products/%EB%B6%80%EA%B0%80%EA%B0%80%EC%B9%98%EC%84%B8-%EC%8B%A0%EA%B3%A0%EB%82%B4%EC%97%AD-%EC%A1%B0%ED%9A%8C?utm_source=website&utm_medium=product&utm_campaign=free_tools&utm_content=%EB%B6%80%EA%B0%80%EA%B0%80%EC%B9%98%EC%84%B8-%EC%8B%A0%EA%B3%A0%EB%82%B4%EC%97%AD-%EC%A1%B0%ED%9A%8C&utm_tool=vat",
        "relationship": "Related work, not an equivalent free operation. The existing product page resolves current availability, prerequisites and signup returnTo.",
        "free_result_remains_available": true
      },
      "execution": {
        "mode": "browser_form",
        "browser_automation_supported": true,
        "browser_javascript_required": true,
        "input_readiness": "wait_for_enabled_controls",
        "supported_clients": [
          "browser_agent"
        ],
        "authentication_required": false,
        "api_key_required": false,
        "data_processing": "browser_local",
        "form_selector": "main form",
        "result_json_selector": "#free-tool-result",
        "instructions": "Open the page with JavaScript enabled and wait until the input controls are enabled. Fill the labelled fields. Follow inputs.dom.after to reveal conditional fields. Repeated input names use zero-based indexes; read actual DOM IDs rather than treating row IDs as indexes. Use the documented add buttons for extra rows. Set checkbox checked state rather than inventing a value. Submit and read #free-tool-result. Do not POST inputs to this directory or invent an HTTP endpoint for a local tool."
      },
      "api": {
        "available": false,
        "reason": "This tool runs in the browser. No HTTP API or MCP operation is exposed for this local tool."
      },
      "inputs": [
        {
          "name": "basis",
          "label": "금액 기준",
          "type": "radio",
          "required": true,
          "options": [
            "supply",
            "total"
          ]
        },
        {
          "name": "amount",
          "label": "공급가액 원",
          "type": "text",
          "required": false,
          "requiredWhen": "bulk=false",
          "dom": {
            "id": "vat-amount",
            "after": "여러 금액을 한 번에 계산이 해제된 경우에 표시됩니다. basis=total이면 레이블은 부가세 포함 금액 원입니다."
          }
        },
        {
          "name": "bulk",
          "label": "여러 금액을 한 번에 계산",
          "type": "checkbox",
          "required": false
        },
        {
          "name": "amounts",
          "label": "금액 목록 원",
          "type": "textarea",
          "required": false,
          "requiredWhen": "bulk=true",
          "dom": {
            "id": "vat-amounts",
            "after": "여러 금액을 한 번에 계산을 선택합니다."
          }
        },
        {
          "name": "rounding",
          "label": "원 미만 처리",
          "type": "select",
          "required": true,
          "options": [
            "floor",
            "half-up"
          ],
          "dom": {
            "id": "vat-rounding",
            "after": "계산 기준을 엽니다."
          }
        }
      ],
      "result_description": "일반과세 10%를 기준으로 공급가액, 부가세, 합계와 행별 계산 차이를 확인합니다.",
      "scope": "면세와 영세율에는 이 계산을 적용하지 않습니다. 매입세액 공제 가능 여부나 신고세액을 판단하지 않습니다.",
      "privacy": "입력값은 이 브라우저에서 계산하며 저장하거나 서버로 전송하지 않습니다.",
      "sources": [
        {
          "title": "부가가치세법 제30조 세율",
          "url": "https://law.go.kr/LSW/lsLinkCommonInfo.do?chrClsCd=010202&lsJoLnkSeq=1031738699"
        },
        {
          "title": "부가가치세법 제29조 과세표준",
          "url": "https://law.go.kr/lsLinkCommonInfo.do?chrClsCd=010202&lsJoLnkSeq=1021856605"
        }
      ],
      "calculation": {
        "ratePercent": 10,
        "verifiedOn": "2026-11-05",
        "lawEffectiveOn": "2026-01-02",
        "scope": "일반과세 10% 거래의 금액 계산입니다. 면세, 영세율, 간이과세 납부세액은 계산하지 않습니다.",
        "roundingNotice": "원 미만 처리는 선택한 계산 방식입니다. 모든 거래에 같은 반올림 방식이 법으로 정해져 있다는 뜻이 아닙니다.",
        "resultNotice": "행별 계산과 합계 후 계산은 원 미만 처리 때문에 달라질 수 있습니다. 차이만으로 세금계산서 오류나 매입세액 공제 여부를 판정하지 않습니다.",
        "formula": {
          "supply": "부가세 = 공급가액 × 10 ÷ 100, 합계 = 공급가액 + 부가세",
          "total": "공급가액 = 합계 × 100 ÷ 110, 부가세 = 합계 - 공급가액"
        },
        "sources": [
          {
            "name": "부가가치세법 제30조 세율",
            "url": "https://law.go.kr/LSW/lsLinkCommonInfo.do?chrClsCd=010202&lsJoLnkSeq=1031738699"
          },
          {
            "name": "부가가치세법 제29조 과세표준",
            "url": "https://law.go.kr/lsLinkCommonInfo.do?chrClsCd=010202&lsJoLnkSeq=1021856605"
          }
        ]
      }
    }
  ]
}
