{"openapi":"3.1.0","info":{"title":"오픈빌 API","description":"부동산 데이터·문서·증빙 API — 공동인증서로 정부·기관에 직접 연결.\n\n**인증**: 모든 커넥터 호출은 `X-API-Key` 헤더가 필요합니다. `ob_test_…` 테스트 키는 예시 응답을 돌려주며 과금되지 않습니다(샌드박스).\n\n**과금**: 성공한 호출만 건당 차감(선불 크레딧). 실패·테스트 호출은 무과금.\n\n**잔액**: 모든 응답에 남은 크레딧이 실립니다 — 헤더 `X-Credit-Balance`, JSON 바디 `credit_remaining`(원). 잔액만 조회하려면 `GET /v1/balance`.","version":"1.0.0"},"paths":{"/console/signup":{"post":{"tags":["console"],"summary":"Signup","operationId":"signup_console_signup_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupReq"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[]}},"/console/login":{"post":{"tags":["console"],"summary":"Login","operationId":"login_console_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginReq"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[]}},"/console/logout":{"post":{"tags":["console"],"summary":"Logout","operationId":"logout_console_logout_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[]}},"/console/password/request":{"post":{"tags":["console"],"summary":"Password Request","description":"비밀번호 재설정 요청 — 가입된 이메일이면 재설정 링크를 메일로 보낸다.\n\n★ 계정 존재 여부를 응답으로 노출하지 않는다(이메일 열거 방지) — 항상 같은 메시지.\n  OPENBILL_DEV=1 이고 메일러 미설정이면 개발용으로 링크를 응답에 넣는다.","operationId":"password_request_console_password_request_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResetRequestReq"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[]}},"/console/password/reset":{"post":{"tags":["console"],"summary":"Password Reset","description":"재설정 토큰으로 새 비밀번호 설정. 성공 시 기존 세션은 모두 무효화된다.","operationId":"password_reset_console_password_reset_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResetReq"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[]}},"/console/verify":{"post":{"tags":["console"],"summary":"Verify Email","description":"이메일 인증 링크의 토큰을 소진 → email_verified=1. 로그인 불필요(메일에서 바로).","operationId":"verify_email_console_verify_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenReq"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[]}},"/console/verify/resend":{"post":{"tags":["console"],"summary":"Verify Resend","description":"인증 메일 재발송(로그인 상태). 이미 인증된 계정이면 no-op.","operationId":"verify_resend_console_verify_resend_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[]}},"/console/activation":{"get":{"tags":["console"],"summary":"Get Activation","description":"현재 사업자 정보·활성화 상태(폼 프리필용).","operationId":"get_activation_console_activation_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[]}},"/console/activate":{"post":{"tags":["console"],"summary":"Activate","description":"라이브 활성화 — 사업자 정보 등록 + 우리 사업자조회 API로 진위확인(가능하면).\n\n★ 세금계산서·현금영수증을 실제로 쓰려면 우리가 고객에게 계산서를 발행해야 하므로\n  사업자 정보가 필요하다. 테스트 키만 쓸 땐 이 단계가 필요 없다.","operationId":"activate_console_activate_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateReq"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[]}},"/console/me":{"get":{"tags":["console"],"summary":"Me","operationId":"me_console_me_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[]}},"/console/keys":{"get":{"tags":["console"],"summary":"Keys","operationId":"keys_console_keys_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[]},"post":{"tags":["console"],"summary":"Create Key","operationId":"create_key_console_keys_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KeyReq"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[]}},"/console/keys/{key}":{"delete":{"tags":["console"],"summary":"Delete Key","operationId":"delete_key_console_keys__key__delete","parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string","title":"Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[]}},"/console/credit":{"get":{"tags":["console"],"summary":"Credit","operationId":"credit_console_credit_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[]}},"/console/usage":{"get":{"tags":["console"],"summary":"Usage","description":"사용량 — 기간 지정 가능(from/to 또는 month). 기본은 이번 달(KST).\n\n★ 기간 집계는 화면용이다. 청구서는 여전히 월 마감(billing.close) 이 기준.","operationId":"usage_console_usage_get","parameters":[{"name":"from","in":"query","required":false,"schema":{"type":"string","default":"","title":"From"}},{"name":"to","in":"query","required":false,"schema":{"type":"string","default":"","title":"To"}},{"name":"month","in":"query","required":false,"schema":{"type":"string","default":"","title":"Month"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[]}},"/console/events":{"get":{"tags":["console"],"summary":"Usage Events","operationId":"usage_events_console_events_get","parameters":[{"name":"from","in":"query","required":false,"schema":{"type":"string","default":"","title":"From"}},{"name":"to","in":"query","required":false,"schema":{"type":"string","default":"","title":"To"}},{"name":"month","in":"query","required":false,"schema":{"type":"string","default":"","title":"Month"}},{"name":"connector","in":"query","required":false,"schema":{"type":"string","default":"","title":"Connector"}},{"name":"status","in":"query","required":false,"schema":{"type":"string","default":"all","title":"Status"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[]}},"/console/deposit":{"post":{"tags":["console"],"summary":"Request Deposit","description":"충전 요청 → 입금 안내(계좌·식별코드). 계좌입금 후 운영자 확인 시 크레딧 반영.\n\n★ 라이브 활성화(사업자 정보 등록) 후에만 충전 가능 — 결제엔 세금계산서 발행이\n  뒤따르므로 사업자 정보가 필요하다. 테스트 키만 쓸 땐 이 단계가 필요 없다.","operationId":"request_deposit_console_deposit_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DepositReq"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[]}},"/console/deposits":{"get":{"tags":["console"],"summary":"Deposits","operationId":"deposits_console_deposits_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[]}},"/console/pay/config":{"get":{"tags":["console"],"summary":"Pay Config","description":"프론트 결제위젯 설정. secret_key 는 절대 내려가지 않는다.","operationId":"pay_config_console_pay_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}}}}},"security":[]}},"/console/pay/checkout":{"post":{"tags":["console"],"summary":"Pay Checkout","description":"결제 주문 생성 → 위젯 호출에 필요한 값 반환.","operationId":"pay_checkout_console_pay_checkout_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutReq"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[]}},"/console/pay/confirm":{"post":{"tags":["console"],"summary":"Pay Confirm","description":"토스 결제 승인 → 금액 대조 → 크레딧 충전(멱등).","operationId":"pay_confirm_console_pay_confirm_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfirmReq"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[]}},"/console/admin/deposits":{"get":{"tags":["console"],"summary":"Admin Deposits","operationId":"admin_deposits_console_admin_deposits_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[]}},"/console/admin/deposits/{deposit_id}/confirm":{"post":{"tags":["console"],"summary":"Admin Confirm","operationId":"admin_confirm_console_admin_deposits__deposit_id__confirm_post","parameters":[{"name":"deposit_id","in":"path","required":true,"schema":{"type":"string","title":"Deposit Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[]}},"/console/admin/bank/ingest":{"post":{"tags":["console"],"summary":"Admin Bank Ingest","description":"회사계좌 입금내역 적재 후 대기중 충전요청과 자동매칭.\ntxns: [{amount, depositor, memo?, occurred_at?, external_id?}, ...]\n(수기 붙여넣기·CSV·오픈뱅킹 수집 어느 쪽이든 이 한 입구로.)","operationId":"admin_bank_ingest_console_admin_bank_ingest_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BankIngestReq"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[]}},"/console/admin/bank/rematch":{"post":{"tags":["console"],"summary":"Admin Bank Rematch","description":"이미 적재된 미매칭 입금건을 다시 매칭 시도(신규 충전요청이 생긴 뒤 등).","operationId":"admin_bank_rematch_console_admin_bank_rematch_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[]}},"/console/admin/bank/txns":{"get":{"tags":["console"],"summary":"Admin Bank Txns","operationId":"admin_bank_txns_console_admin_bank_txns_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[]}},"/console/admin/settings":{"get":{"tags":["console"],"summary":"Admin Settings","description":"웰컴 크레딧 + 편집 가능한 단가 목록(현재 적용값·기본값·override 여부).","operationId":"admin_settings_console_admin_settings_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[]},"post":{"tags":["console"],"summary":"Admin Set Settings","operationId":"admin_set_settings_console_admin_settings_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettingsReq"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[]}},"/console/admin/pricing":{"post":{"tags":["console"],"summary":"Admin Set Price","description":"단가를 배포 없이 즉시 변경(registry_config.json). 성공 호출부터 이 단가로 과금.","operationId":"admin_set_price_console_admin_pricing_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PriceReq"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[]}},"/console/admin/credit/grant":{"post":{"tags":["console"],"summary":"Admin Grant","description":"특정 계정에 크레딧 수동 지급/차감(+/-). 프로모션·보정용.","operationId":"admin_grant_console_admin_credit_grant_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrantReq"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[]}},"/v1/encryption/public-key":{"get":{"tags":["platform"],"summary":"Encryption Public Key","description":"봉투 암호화용 서버 RSA 공개키(PEM) + 스킴. 이 공개키로 AES키를 감싸세요.\n\n★ 별도 '발급' 절차 없음 — 이 공개키 하나로 모든 요청을 봉투 암호화할 수 있습니다.\n  선택 기능이며, 봉투 암호화를 쓰지 않으면 기존처럼 평문(TLS) 요청을 그대로 씁니다.","operationId":"encryption_public_key_v1_encryption_public_key_get","responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}}}}},"security":[]}},"/health":{"get":{"tags":["platform"],"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}}}}},"security":[]}},"/v1/tax-invoice/issue":{"post":{"tags":["tax-invoice"],"summary":"Issue","description":"발행 — 1건이든 N건이든 로그인 1회. 1건 실패해도 나머지는 계속한다.\n대용량은 ?async=1 로 비동기 잡(즉시 job_id, GET /v1/jobs/{id} 폴링).","operationId":"issue_v1_tax_invoice_issue_post","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssueReq"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}},"application/json":{"example":{"summary":{"total":2,"success":2,"duplicate_skipped":0,"failed":0,"mail_failed":0,"approval_numbers":["20260831-41000000-00000001","20260831-41000000-00000002"],"failures":[]},"results":[{"ok":true,"ref":"CONTRACT-1001","approval_number":"20260831-41000000-00000001","error_code":"","error_message":"","mail_sent":true},{"ok":true,"ref":"CONTRACT-1002","approval_number":"20260831-41000000-00000002","error_code":"","error_message":"","mail_sent":true}],"credit_remaining":9998000},"schema":{"type":"object","properties":{"summary":{"type":"object","properties":{"total":{"type":"integer"},"success":{"type":"integer"},"duplicate_skipped":{"type":"integer"},"failed":{"type":"integer"},"mail_failed":{"type":"integer"},"approval_numbers":{"type":"array","items":{"type":"string"}},"failures":{"type":"array","items":{}}}},"results":{"type":"array","items":{"type":"object","properties":{"ok":{"type":"boolean"},"ref":{"type":"string"},"approval_number":{"type":"string"},"error_code":{"type":"string"},"error_message":{"type":"string"},"mail_sent":{"type":"boolean"}}}},"credit_remaining":{"type":"integer"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"인증 실패 — X-API-Key 헤더가 없거나 유효하지 않습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"402":{"description":"크레딧 부족 — 콘솔에서 충전이 필요합니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"403":{"description":"접근 거부 — 고객 패키지 미포함 또는 이메일 인증 필요.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"503":{"description":"운영자 설정 필요 — 이 커넥터의 서버 키가 설정되지 않았습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}}}}},"/v1/tax-invoice/cancel":{"post":{"tags":["tax-invoice"],"summary":"Cancel","description":"수정발행(취소) — 여러 건 동시 처리. 취소 = 마이너스 수정발행.","operationId":"cancel_v1_tax_invoice_cancel_post","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelReq"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}},"application/json":{"example":{"summary":{"total":1,"success":1,"duplicate_skipped":0,"failed":0,"mail_failed":0,"approval_numbers":["20260831-41000000-00000009"],"failures":[]},"results":[{"ok":true,"ref":"CANCEL-1","approval_number":"20260831-41000000-00000009","error_code":"","error_message":"","mail_sent":null}],"credit_remaining":9998000},"schema":{"type":"object","properties":{"summary":{"type":"object","properties":{"total":{"type":"integer"},"success":{"type":"integer"},"duplicate_skipped":{"type":"integer"},"failed":{"type":"integer"},"mail_failed":{"type":"integer"},"approval_numbers":{"type":"array","items":{"type":"string"}},"failures":{"type":"array","items":{}}}},"results":{"type":"array","items":{"type":"object","properties":{"ok":{"type":"boolean"},"ref":{"type":"string"},"approval_number":{"type":"string"},"error_code":{"type":"string"},"error_message":{"type":"string"},"mail_sent":{}}}},"credit_remaining":{"type":"integer"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"인증 실패 — X-API-Key 헤더가 없거나 유효하지 않습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"402":{"description":"크레딧 부족 — 콘솔에서 충전이 필요합니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"403":{"description":"접근 거부 — 고객 패키지 미포함 또는 이메일 인증 필요.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"503":{"description":"운영자 설정 필요 — 이 커넥터의 서버 키가 설정되지 않았습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}}}}},"/v1/tax-invoice/list":{"post":{"tags":["tax-invoice"],"summary":"List Issued","description":"발급목록 조회. sales=True 매출 / False 매입. (과금: 조회)","operationId":"list_issued_v1_tax_invoice_list_post","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListReq"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}},"application/json":{"example":{"count":2,"rows":[{"etan":"20260831-41000000-00000001","write_date":"20260831","counterparty":"선릉아인스","supply":"1000000","tax":"100000","total":"1100000","kind":"01","original_etan":"","amended":"N"},{"etan":"20260830-41000000-00000044","write_date":"20260830","counterparty":"역삼아인스빌","supply":"500000","tax":"50000","total":"550000","kind":"01","original_etan":"","amended":"N"}],"credit_remaining":9998000},"schema":{"type":"object","properties":{"count":{"type":"integer"},"rows":{"type":"array","items":{"type":"object","properties":{"etan":{"type":"string"},"write_date":{"type":"string"},"counterparty":{"type":"string"},"supply":{"type":"string"},"tax":{"type":"string"},"total":{"type":"string"},"kind":{"type":"string"},"original_etan":{"type":"string"},"amended":{"type":"string"}}}},"credit_remaining":{"type":"integer"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"인증 실패 — X-API-Key 헤더가 없거나 유효하지 않습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"402":{"description":"크레딧 부족 — 콘솔에서 충전이 필요합니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"403":{"description":"접근 거부 — 고객 패키지 미포함 또는 이메일 인증 필요.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"503":{"description":"운영자 설정 필요 — 이 커넥터의 서버 키가 설정되지 않았습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}}}}},"/v1/tax-invoice/detail":{"post":{"tags":["tax-invoice"],"summary":"Detail","description":"승인번호로 국세청 표준 XML 상세조회. (과금: 조회)","operationId":"detail_v1_tax_invoice_detail_post","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DetailReq"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}},"application/json":{"example":{"etan":"20260831-41000000-00000001","xml":"<TaxInvoice>...국세청 표준 XML...</TaxInvoice>","credit_remaining":9998000},"schema":{"type":"object","properties":{"etan":{"type":"string"},"xml":{"type":"string"},"credit_remaining":{"type":"integer"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"인증 실패 — X-API-Key 헤더가 없거나 유효하지 않습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"402":{"description":"크레딧 부족 — 콘솔에서 충전이 필요합니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"403":{"description":"접근 거부 — 고객 패키지 미포함 또는 이메일 인증 필요.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"503":{"description":"운영자 설정 필요 — 이 커넥터의 서버 키가 설정되지 않았습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}}}}},"/v1/tax-invoice/verify":{"post":{"tags":["tax-invoice"],"summary":"Verify","description":"인증서·비번 검증 + 내 사업자 정보.\n\n★ 과금 대상(조회)입니다. 헬스체크용으로 반복 호출하지 마세요 —\n  매분 호출하면 월 4만 건이 넘습니다. 상태 확인은 /health 를 쓰세요.","operationId":"verify_v1_tax_invoice_verify_post","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthOnly"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}},"application/json":{"example":{"ok":true,"business":{"tin":"8801234567","pubc_user_no":"","cert_uniq_no":"","business_number":"2998603372","name":"주식회사 더빌딩","representative":"강윤석","address":"서울특별시 강남구 논현로76길 24","business_type":"서비스","business_class":"소프트웨어 개발","subbusiness_no":"0","status_code":"01","bman_cl_cd":"01","etxiv_pkc_yn":"Y","cert_subject":"cn=주식회사 더빌딩...","cert_expires":"2027-01-01 23:59:59"},"credit_remaining":9998000},"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"business":{"type":"object","properties":{"tin":{"type":"string"},"pubc_user_no":{"type":"string"},"cert_uniq_no":{"type":"string"},"business_number":{"type":"string"},"name":{"type":"string"},"representative":{"type":"string"},"address":{"type":"string"},"business_type":{"type":"string"},"business_class":{"type":"string"},"subbusiness_no":{"type":"string"},"status_code":{"type":"string"},"bman_cl_cd":{"type":"string"},"etxiv_pkc_yn":{"type":"string"},"cert_subject":{"type":"string"},"cert_expires":{"type":"string"}}},"credit_remaining":{"type":"integer"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"인증 실패 — X-API-Key 헤더가 없거나 유효하지 않습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"402":{"description":"크레딧 부족 — 콘솔에서 충전이 필요합니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"403":{"description":"접근 거부 — 고객 패키지 미포함 또는 이메일 인증 필요.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"503":{"description":"운영자 설정 필요 — 이 커넥터의 서버 키가 설정되지 않았습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}}}}},"/v1/tax-invoice/lookup":{"post":{"tags":["tax-invoice"],"summary":"Lookup","description":"거래처 사업자번호 조회 — 발행에 필요한 tin 획득. (과금: 조회)","operationId":"lookup_v1_tax_invoice_lookup_post","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LookupReq"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}},"application/json":{"example":{"found":true,"business_number":"2208612345","tin":"8802345678","name":"거래처상사","status_code":"01","close_date":"","credit_remaining":9998000},"schema":{"type":"object","properties":{"found":{"type":"boolean"},"business_number":{"type":"string"},"tin":{"type":"string"},"name":{"type":"string"},"status_code":{"type":"string"},"close_date":{"type":"string"},"credit_remaining":{"type":"integer"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"인증 실패 — X-API-Key 헤더가 없거나 유효하지 않습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"402":{"description":"크레딧 부족 — 콘솔에서 충전이 필요합니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"403":{"description":"접근 거부 — 고객 패키지 미포함 또는 이메일 인증 필요.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"503":{"description":"운영자 설정 필요 — 이 커넥터의 서버 키가 설정되지 않았습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}}}}},"/v1/tax-invoice/mail":{"post":{"tags":["tax-invoice"],"summary":"Mail","description":"메일 재발송 — 발급은 됐는데 메일이 실패했을 때.","operationId":"mail_v1_tax_invoice_mail_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailReq"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}},"application/json":{"example":{"ok":true,"result":"S","message":"","credit_remaining":9998000},"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"result":{"type":"string"},"message":{"type":"string"},"credit_remaining":{"type":"integer"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"인증 실패 — X-API-Key 헤더가 없거나 유효하지 않습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"403":{"description":"접근 거부 — 고객 패키지 미포함 또는 이메일 인증 필요.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"503":{"description":"운영자 설정 필요 — 이 커넥터의 서버 키가 설정되지 않았습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}}}}},"/v1/cash-receipt/issue":{"post":{"tags":["cash-receipt"],"summary":"Cr Issue","description":"현금영수증 발급(자진발급). (과금: 발행 200원, 성공 시에만)","operationId":"cr_issue_v1_cash_receipt_issue_post","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CRIssueReq"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}},"application/json":{"example":{"ok":true,"confirm_num":"Z59172581","total":33000,"trade_date":"20260831","message":"","credit_remaining":9998000},"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"confirm_num":{"type":"string"},"total":{"type":"integer"},"trade_date":{"type":"string"},"message":{"type":"string"},"credit_remaining":{"type":"integer"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"인증 실패 — X-API-Key 헤더가 없거나 유효하지 않습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"402":{"description":"크레딧 부족 — 콘솔에서 충전이 필요합니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"403":{"description":"접근 거부 — 고객 패키지 미포함 또는 이메일 인증 필요.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"503":{"description":"운영자 설정 필요 — 이 커넥터의 서버 키가 설정되지 않았습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}}}}},"/v1/cash-receipt/cancel":{"post":{"tags":["cash-receipt"],"summary":"Cr Cancel","description":"현금영수증 취소. 원거래 일시·금액 필수. (과금: 취소 200원, 성공 시에만)\n\n★ 원거래일 기준 자동 라우팅:\n  - 원거래일 == 오늘(KST) → 당일 취소(U02/UTECRCB043, 원거래 시각 사용)\n  - 원거래일 <  오늘        → 다음날 이후 취소(C02/UTECRCB042, tfstAprvNo 지목)","operationId":"cr_cancel_v1_cash_receipt_cancel_post","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CRCancelReq"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}},"application/json":{"example":{"ok":true,"cancel_num":"Z59172581","original":"Z59172581","message":"","credit_remaining":9998000},"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"cancel_num":{"type":"string"},"original":{"type":"string"},"message":{"type":"string"},"credit_remaining":{"type":"integer"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"인증 실패 — X-API-Key 헤더가 없거나 유효하지 않습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"402":{"description":"크레딧 부족 — 콘솔에서 충전이 필요합니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"403":{"description":"접근 거부 — 고객 패키지 미포함 또는 이메일 인증 필요.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"503":{"description":"운영자 설정 필요 — 이 커넥터의 서버 키가 설정되지 않았습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}}}}},"/v1/cash-receipt/list":{"post":{"tags":["cash-receipt"],"summary":"Cr List","description":"당일 자진발급 목록 조회. (과금: 조회 50원)","operationId":"cr_list_v1_cash_receipt_list_post","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CRListReq"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}},"application/json":{"example":{"date":"20260831","count":1,"rows":[{"approval_number":"Z59172581","trade_date":"20260831","trade_time":"100000","supply":"30000","tax":"3000","total":"33000","identity":"01026639634","usage":"1"}],"credit_remaining":9998000},"schema":{"type":"object","properties":{"date":{"type":"string"},"count":{"type":"integer"},"rows":{"type":"array","items":{"type":"object","properties":{"approval_number":{"type":"string"},"trade_date":{"type":"string"},"trade_time":{"type":"string"},"supply":{"type":"string"},"tax":{"type":"string"},"total":{"type":"string"},"identity":{"type":"string"},"usage":{"type":"string"}}}},"credit_remaining":{"type":"integer"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"인증 실패 — X-API-Key 헤더가 없거나 유효하지 않습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"402":{"description":"크레딧 부족 — 콘솔에서 충전이 필요합니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"403":{"description":"접근 거부 — 고객 패키지 미포함 또는 이메일 인증 필요.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"503":{"description":"운영자 설정 필요 — 이 커넥터의 서버 키가 설정되지 않았습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}}}}},"/v1/simple-receipt/issue":{"post":{"tags":["simple-receipt"],"summary":"Sr Issue","description":"간이영수증 발행. supplier_profile_id 로 등록한 도장 자동적용. (과금: 발행 sr_issue)","operationId":"sr_issue_v1_simple_receipt_issue_post","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SRIssueReq"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}},"application/json":{"example":{"ok":true,"id":"0849d700a9ce4945a36e34030492640a","number":"SR-20260831-0001","amount":50000,"html":"<html>...간이영수증 문서...</html>","credit_remaining":9998000},"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"id":{"type":"string"},"number":{"type":"string"},"amount":{"type":"integer"},"html":{"type":"string"},"credit_remaining":{"type":"integer"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"인증 실패 — X-API-Key 헤더가 없거나 유효하지 않습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"402":{"description":"크레딧 부족 — 콘솔에서 충전이 필요합니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"403":{"description":"접근 거부 — 고객 패키지 미포함 또는 이메일 인증 필요.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"503":{"description":"운영자 설정 필요 — 이 커넥터의 서버 키가 설정되지 않았습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}}}}},"/v1/simple-receipt/update":{"post":{"tags":["simple-receipt"],"summary":"Sr Update","description":"간이영수증 수정 — 번호·발행시각 보존, 내용만 갱신 후 재렌더. (무료)","operationId":"sr_update_v1_simple_receipt_update_post","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SRUpdateReq"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}},"application/json":{"example":{"ok":true,"id":"0849d700a9ce4945a36e34030492640a","number":"SR-20260831-0001","amount":55000,"html":"<html>...</html>","credit_remaining":9998000},"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"id":{"type":"string"},"number":{"type":"string"},"amount":{"type":"integer"},"html":{"type":"string"},"credit_remaining":{"type":"integer"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"인증 실패 — X-API-Key 헤더가 없거나 유효하지 않습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"403":{"description":"접근 거부 — 고객 패키지 미포함 또는 이메일 인증 필요.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"503":{"description":"운영자 설정 필요 — 이 커넥터의 서버 키가 설정되지 않았습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}}}}},"/v1/simple-receipt/delete":{"post":{"tags":["simple-receipt"],"summary":"Sr Delete","description":"간이영수증 삭제(소프트). (무료)","operationId":"sr_delete_v1_simple_receipt_delete_post","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SRIdReq"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}},"application/json":{"example":{"ok":true,"id":"0849d700a9ce4945a36e34030492640a","credit_remaining":9998000},"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"id":{"type":"string"},"credit_remaining":{"type":"integer"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"인증 실패 — X-API-Key 헤더가 없거나 유효하지 않습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"403":{"description":"접근 거부 — 고객 패키지 미포함 또는 이메일 인증 필요.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"503":{"description":"운영자 설정 필요 — 이 커넥터의 서버 키가 설정되지 않았습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}}}}},"/v1/simple-receipt/list":{"post":{"tags":["simple-receipt"],"summary":"Sr List","description":"간이영수증 목록 조회. (무료)","operationId":"sr_list_v1_simple_receipt_list_post","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SRListReq"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}},"application/json":{"example":{"count":1,"rows":[{"id":"0849d700a9ce4945a36e34030492640a","number":"SR-20260831-0001","issue_date":"20260831","recipient":"홍길동","amount":50000,"status":"issued","deleted":false,"issued_at":"2026-08-31T17:10:57+09:00"}],"credit_remaining":9998000},"schema":{"type":"object","properties":{"count":{"type":"integer"},"rows":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"number":{"type":"string"},"issue_date":{"type":"string"},"recipient":{"type":"string"},"amount":{"type":"integer"},"status":{"type":"string"},"deleted":{"type":"boolean"},"issued_at":{"type":"string"}}}},"credit_remaining":{"type":"integer"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"인증 실패 — X-API-Key 헤더가 없거나 유효하지 않습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"403":{"description":"접근 거부 — 고객 패키지 미포함 또는 이메일 인증 필요.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"503":{"description":"운영자 설정 필요 — 이 커넥터의 서버 키가 설정되지 않았습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}}}}},"/v1/simple-receipt/detail":{"post":{"tags":["simple-receipt"],"summary":"Sr Detail","description":"간이영수증 상세 — 레코드 + 렌더된 HTML. (무료)","operationId":"sr_detail_v1_simple_receipt_detail_post","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SRDetailReq"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}},"application/json":{"example":{"record":{"number":"SR-20260831-0001","document_type":"original","issue_date":"20260831","issued_at":"2026-08-31T17:10:57+09:00","supplier":{"name":"주식회사 더빌딩","business_number":"2998603372","representative":"강윤석","address":"서울 강남구 논현로76길 24","stamp_image":"","stamp_mimetype":"image/png"},"recipient":{"name":"홍길동","business_number":"","phone":""},"items":[{"name":"컨설팅","qty":1,"unit_price":50000,"amount":50000}],"amount":50000,"tax":0,"remark":"","status":"issued","id":"0849d700a9ce4945a36e34030492640a","created_at":"2026-08-31T17:10:57+09:00","updated_at":"2026-08-31T17:10:57+09:00"},"html":"<html>...간이영수증 문서...</html>","credit_remaining":9998000},"schema":{"type":"object","properties":{"record":{"type":"object","properties":{"number":{"type":"string"},"document_type":{"type":"string"},"issue_date":{"type":"string"},"issued_at":{"type":"string"},"supplier":{"type":"object","properties":{"name":{"type":"string"},"business_number":{"type":"string"},"representative":{"type":"string"},"address":{"type":"string"},"stamp_image":{"type":"string"},"stamp_mimetype":{"type":"string"}}},"recipient":{"type":"object","properties":{"name":{"type":"string"},"business_number":{"type":"string"},"phone":{"type":"string"}}},"items":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"qty":{"type":"integer"},"unit_price":{"type":"integer"},"amount":{"type":"integer"}}}},"amount":{"type":"integer"},"tax":{"type":"integer"},"remark":{"type":"string"},"status":{"type":"string"},"id":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}},"html":{"type":"string"},"credit_remaining":{"type":"integer"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"인증 실패 — X-API-Key 헤더가 없거나 유효하지 않습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"403":{"description":"접근 거부 — 고객 패키지 미포함 또는 이메일 인증 필요.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"503":{"description":"운영자 설정 필요 — 이 커넥터의 서버 키가 설정되지 않았습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}}}}},"/v1/business/status":{"post":{"tags":["business"],"summary":"Business Status","description":"사업자번호로 휴폐업 상태·과세유형 조회 (국세청 공식). (과금: 조회 business_status)","operationId":"business_status_v1_business_status_post","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessStatusReq"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}},"application/json":{"example":{"count":1,"rows":[{"business_number":"2998603372","registered":true,"status":"계속사업자","status_code":"01","tax_type":"부가가치세 일반과세자","tax_type_code":"01","closed_date":"","tax_type_change_date":""}],"credit_remaining":9998000},"schema":{"type":"object","properties":{"count":{"type":"integer"},"rows":{"type":"array","items":{"type":"object","properties":{"business_number":{"type":"string"},"registered":{"type":"boolean"},"status":{"type":"string"},"status_code":{"type":"string"},"tax_type":{"type":"string"},"tax_type_code":{"type":"string"},"closed_date":{"type":"string"},"tax_type_change_date":{"type":"string"}}}},"credit_remaining":{"type":"integer"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"인증 실패 — X-API-Key 헤더가 없거나 유효하지 않습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"402":{"description":"크레딧 부족 — 콘솔에서 충전이 필요합니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"403":{"description":"접근 거부 — 고객 패키지 미포함 또는 이메일 인증 필요.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"503":{"description":"운영자 설정 필요 — 이 커넥터의 서버 키가 설정되지 않았습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}}}}},"/v1/business/validate":{"post":{"tags":["business"],"summary":"Business Validate","description":"사업자 진위확인 — 사업자번호+개업일+대표자명 일치검증 (국세청 공식). (과금: business_status)","operationId":"business_validate_v1_business_validate_post","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessValidateReq"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}},"application/json":{"example":{"count":1,"rows":[{"business_number":"2998603372","valid":true,"valid_code":"01","message":"","status":"계속사업자","tax_type":"부가가치세 일반과세자"}],"credit_remaining":9998000},"schema":{"type":"object","properties":{"count":{"type":"integer"},"rows":{"type":"array","items":{"type":"object","properties":{"business_number":{"type":"string"},"valid":{"type":"boolean"},"valid_code":{"type":"string"},"message":{"type":"string"},"status":{"type":"string"},"tax_type":{"type":"string"}}}},"credit_remaining":{"type":"integer"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"인증 실패 — X-API-Key 헤더가 없거나 유효하지 않습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"402":{"description":"크레딧 부족 — 콘솔에서 충전이 필요합니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"403":{"description":"접근 거부 — 고객 패키지 미포함 또는 이메일 인증 필요.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"503":{"description":"운영자 설정 필요 — 이 커넥터의 서버 키가 설정되지 않았습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}}}}},"/v1/address/search":{"post":{"tags":["property"],"summary":"Address Search","description":"도로명주소 검색 → 정규화 + PNU. (과금: address_search)","operationId":"address_search_v1_address_search_post","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddressSearchReq"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}},"application/json":{"example":{"count":1,"rows":[{"road_address":"서울특별시 강남구 논현로76길 24","jibun_address":"서울특별시 강남구 역삼동 720-25","building_name":"BPT빌딩","zip_code":"06236","sido":"서울특별시","sigungu":"강남구","eupmyeondong":"역삼동","ri":"","legal_dong_code":"1168010100","main_number":"720","sub_number":"25","mountain":false,"pnu":"1168010100107200025","lawd_cd":"11680"}],"credit_remaining":9998000},"schema":{"type":"object","properties":{"count":{"type":"integer"},"rows":{"type":"array","items":{"type":"object","properties":{"road_address":{"type":"string"},"jibun_address":{"type":"string"},"building_name":{"type":"string"},"zip_code":{"type":"string"},"sido":{"type":"string"},"sigungu":{"type":"string"},"eupmyeondong":{"type":"string"},"ri":{"type":"string"},"legal_dong_code":{"type":"string"},"main_number":{"type":"string"},"sub_number":{"type":"string"},"mountain":{"type":"boolean"},"pnu":{"type":"string"},"lawd_cd":{"type":"string"}}}},"credit_remaining":{"type":"integer"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"인증 실패 — X-API-Key 헤더가 없거나 유효하지 않습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"402":{"description":"크레딧 부족 — 콘솔에서 충전이 필요합니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"403":{"description":"접근 거부 — 고객 패키지 미포함 또는 이메일 인증 필요.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"503":{"description":"운영자 설정 필요 — 이 커넥터의 서버 키가 설정되지 않았습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}}}}},"/v1/property/building":{"post":{"tags":["property"],"summary":"Property Building","description":"건축물대장(표제부+층별) → 우리 통합 스키마. (과금: property_lookup)","operationId":"property_building_v1_property_building_post","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PropertyReq"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}},"application/json":{"example":{"pnu":"1168010100107200025","building_name":"BPT빌딩","dong_name":"","main_use":"업무시설","detail_use":"일반업무시설","structure":"철근콘크리트구조","roof":"(철근)콘크리트","site_area":660.0,"building_area":396.0,"total_area":4820.5,"ground_floors":12,"basement_floors":2,"household_count":0,"approval_date":"20150310","is_violation":false,"parking":{"indoor_self":20,"outdoor_self":4,"indoor_mech":0,"outdoor_mech":0},"floors":[{"floor_no":"5","floor_name":"5층","area":396.0,"main_use":"업무시설","structure":"철근콘크리트구조"}],"credit_remaining":9998000},"schema":{"type":"object","properties":{"pnu":{"type":"string"},"building_name":{"type":"string"},"dong_name":{"type":"string"},"main_use":{"type":"string"},"detail_use":{"type":"string"},"structure":{"type":"string"},"roof":{"type":"string"},"site_area":{"type":"number"},"building_area":{"type":"number"},"total_area":{"type":"number"},"ground_floors":{"type":"integer"},"basement_floors":{"type":"integer"},"household_count":{"type":"integer"},"approval_date":{"type":"string"},"is_violation":{"type":"boolean"},"parking":{"type":"object","properties":{"indoor_self":{"type":"integer"},"outdoor_self":{"type":"integer"},"indoor_mech":{"type":"integer"},"outdoor_mech":{"type":"integer"}}},"floors":{"type":"array","items":{"type":"object","properties":{"floor_no":{"type":"string"},"floor_name":{"type":"string"},"area":{"type":"number"},"main_use":{"type":"string"},"structure":{"type":"string"}}}},"credit_remaining":{"type":"integer"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"인증 실패 — X-API-Key 헤더가 없거나 유효하지 않습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"402":{"description":"크레딧 부족 — 콘솔에서 충전이 필요합니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"403":{"description":"접근 거부 — 고객 패키지 미포함 또는 이메일 인증 필요.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"503":{"description":"운영자 설정 필요 — 이 커넥터의 서버 키가 설정되지 않았습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}}}}},"/v1/property/land":{"post":{"tags":["property"],"summary":"Property Land","description":"토지특성·용도지역 → 우리 스키마. (과금: property_lookup)","operationId":"property_land_v1_property_land_post","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PropertyReq"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}},"application/json":{"example":{"pnu":"1168010100107200025","land_category":"대","area":660.0,"official_land_price":24500000,"use_zone":"일반상업지역","use_situation":"업무용","road_contact":"광대소각","terrain_height":"평지","terrain_shape":"가장형","credit_remaining":9998000},"schema":{"type":"object","properties":{"pnu":{"type":"string"},"land_category":{"type":"string"},"area":{"type":"number"},"official_land_price":{"type":"integer"},"use_zone":{"type":"string"},"use_situation":{"type":"string"},"road_contact":{"type":"string"},"terrain_height":{"type":"string"},"terrain_shape":{"type":"string"},"credit_remaining":{"type":"integer"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"인증 실패 — X-API-Key 헤더가 없거나 유효하지 않습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"402":{"description":"크레딧 부족 — 콘솔에서 충전이 필요합니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"403":{"description":"접근 거부 — 고객 패키지 미포함 또는 이메일 인증 필요.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"503":{"description":"운영자 설정 필요 — 이 커넥터의 서버 키가 설정되지 않았습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}}}}},"/v1/property/official-price":{"post":{"tags":["property"],"summary":"Property Official Price","description":"개별공시지가 → 우리 스키마. (과금: property_lookup)","operationId":"property_official_price_v1_property_official_price_post","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PropertyReq"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}},"application/json":{"example":{"pnu":"1168010100107200025","price_per_m2":24500000,"land_area":660.0,"legal_dong":"역삼동","land_category":"대","base_year":"2026","history":[{"year":"2026","price_per_m2":24500000},{"year":"2025","price_per_m2":23100000}],"credit_remaining":9998000},"schema":{"type":"object","properties":{"pnu":{"type":"string"},"price_per_m2":{"type":"integer"},"land_area":{"type":"number"},"legal_dong":{"type":"string"},"land_category":{"type":"string"},"base_year":{"type":"string"},"history":{"type":"array","items":{"type":"object","properties":{"year":{"type":"string"},"price_per_m2":{"type":"integer"}}}},"credit_remaining":{"type":"integer"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"인증 실패 — X-API-Key 헤더가 없거나 유효하지 않습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"402":{"description":"크레딧 부족 — 콘솔에서 충전이 필요합니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"403":{"description":"접근 거부 — 고객 패키지 미포함 또는 이메일 인증 필요.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"503":{"description":"운영자 설정 필요 — 이 커넥터의 서버 키가 설정되지 않았습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}}}}},"/v1/property/transactions":{"post":{"tags":["property"],"summary":"Property Transactions","description":"전월세 실거래가 → 우리 스키마. (과금: property_lookup)","operationId":"property_transactions_v1_property_transactions_post","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransactionReq"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}},"application/json":{"example":{"count":2,"lawd_cd":"11680","deal_ym":"202506","rows":[{"kind":"apartment","building_name":"개포래미안포레스트","legal_dong":"개포동","jibun":"1234","area":59.92,"floor":"6","deposit_manwon":98000,"monthly_rent_manwon":0,"is_jeonse":true,"deal_ym":"202506"},{"kind":"officetel","building_name":"신논현 마에스트로","legal_dong":"역삼동","jibun":"720","area":22.5,"floor":"10","deposit_manwon":1800,"monthly_rent_manwon":100,"is_jeonse":false,"deal_ym":"202506"}],"skipped":[{"kind":"row_house","reason":"공식 API 오류 403"}],"credit_remaining":9998000},"schema":{"type":"object","properties":{"count":{"type":"integer"},"lawd_cd":{"type":"string"},"deal_ym":{"type":"string"},"rows":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"building_name":{"type":"string"},"legal_dong":{"type":"string"},"jibun":{"type":"string"},"area":{"type":"number"},"floor":{"type":"string"},"deposit_manwon":{"type":"integer"},"monthly_rent_manwon":{"type":"integer"},"is_jeonse":{"type":"boolean"},"deal_ym":{"type":"string"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"reason":{"type":"string"}}}},"credit_remaining":{"type":"integer"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"인증 실패 — X-API-Key 헤더가 없거나 유효하지 않습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"402":{"description":"크레딧 부족 — 콘솔에서 충전이 필요합니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"403":{"description":"접근 거부 — 고객 패키지 미포함 또는 이메일 인증 필요.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"503":{"description":"운영자 설정 필요 — 이 커넥터의 서버 키가 설정되지 않았습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}}}}},"/v1/property/sales":{"post":{"tags":["property"],"summary":"Property Sales","description":"매매 실거래가(아파트·오피스텔·연립·단독·상업업무용·토지) → 우리 스키마. (과금: property_lookup)","operationId":"property_sales_v1_property_sales_post","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransactionReq"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}},"application/json":{"example":{"count":1,"lawd_cd":"11680","deal_ym":"202605","rows":[{"kind":"apartment","name":"개포래미안포레스트","legal_dong":"개포동","jibun":"1234","area":84.9,"floor":"12","build_year":"2015","deal_amount_manwon":285000,"deal_date":"20260512","deal_ym":"202605"}],"skipped":[],"credit_remaining":9998000},"schema":{"type":"object","properties":{"count":{"type":"integer"},"lawd_cd":{"type":"string"},"deal_ym":{"type":"string"},"rows":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"name":{"type":"string"},"legal_dong":{"type":"string"},"jibun":{"type":"string"},"area":{"type":"number"},"floor":{"type":"string"},"build_year":{"type":"string"},"deal_amount_manwon":{"type":"integer"},"deal_date":{"type":"string"},"deal_ym":{"type":"string"}}}},"skipped":{"type":"array","items":{}},"credit_remaining":{"type":"integer"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"인증 실패 — X-API-Key 헤더가 없거나 유효하지 않습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"402":{"description":"크레딧 부족 — 콘솔에서 충전이 필요합니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"403":{"description":"접근 거부 — 고객 패키지 미포함 또는 이메일 인증 필요.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"503":{"description":"운영자 설정 필요 — 이 커넥터의 서버 키가 설정되지 않았습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}}}}},"/v1/property/registry":{"post":{"tags":["property"],"summary":"Property Registry","description":"부동산 등기부등본 열람. 사용자 공동인증서 pass-through, 저장 안 함.\n\n2-Way(CF-03002) 응답이 오면 two_way + two_way_info 를 돌려주니, 그 값을\ntwo_way_info+selected_index 로 다시 호출하면 된다. (과금: property_registry, 성공 시)","operationId":"property_registry_v1_property_registry_post","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegistryReq"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"인증 실패 — X-API-Key 헤더가 없거나 유효하지 않습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"402":{"description":"크레딧 부족 — 콘솔에서 충전이 필요합니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"403":{"description":"접근 거부 — 고객 패키지 미포함 또는 이메일 인증 필요.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"503":{"description":"운영자 설정 필요 — 이 커넥터의 서버 키가 설정되지 않았습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}}}}},"/v1/company/search":{"post":{"tags":["company"],"summary":"Company Search","description":"회사명으로 DART 고유번호 검색. (과금: company_lookup)","operationId":"company_search_v1_company_search_post","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanySearchReq"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}},"application/json":{"example":{"count":1,"rows":[{"corp_code":"00126380","corp_name":"삼성전자","stock_code":"005930","listed":true}],"credit_remaining":9998000},"schema":{"type":"object","properties":{"count":{"type":"integer"},"rows":{"type":"array","items":{"type":"object","properties":{"corp_code":{"type":"string"},"corp_name":{"type":"string"},"stock_code":{"type":"string"},"listed":{"type":"boolean"}}}},"credit_remaining":{"type":"integer"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"인증 실패 — X-API-Key 헤더가 없거나 유효하지 않습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"402":{"description":"크레딧 부족 — 콘솔에서 충전이 필요합니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"403":{"description":"접근 거부 — 고객 패키지 미포함 또는 이메일 인증 필요.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"503":{"description":"운영자 설정 필요 — 이 커넥터의 서버 키가 설정되지 않았습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}}}}},"/v1/company/profile":{"post":{"tags":["company"],"summary":"Company Profile","description":"기업개황(대표자·주소·업종·설립일·사업자번호·상장). (과금: company_lookup)","operationId":"company_profile_v1_company_profile_post","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyProfileReq"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}},"application/json":{"example":{"corp_code":"00126380","name":"삼성전자","name_eng":"SAMSUNG ELECTRONICS CO,.LTD","ceo":"한종희","corp_class":"유가증권","listed":true,"stock_code":"005930","business_number":"1248100998","corp_reg_number":"1301110006246","address":"경기도 수원시 영통구 삼성로 129 (매탄동)","industry_code":"264","established_date":"19690113","settlement_month":"12","homepage":"www.samsung.com/sec","phone":"031-200-1114","credit_remaining":9998000},"schema":{"type":"object","properties":{"corp_code":{"type":"string"},"name":{"type":"string"},"name_eng":{"type":"string"},"ceo":{"type":"string"},"corp_class":{"type":"string"},"listed":{"type":"boolean"},"stock_code":{"type":"string"},"business_number":{"type":"string"},"corp_reg_number":{"type":"string"},"address":{"type":"string"},"industry_code":{"type":"string"},"established_date":{"type":"string"},"settlement_month":{"type":"string"},"homepage":{"type":"string"},"phone":{"type":"string"},"credit_remaining":{"type":"integer"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"인증 실패 — X-API-Key 헤더가 없거나 유효하지 않습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"402":{"description":"크레딧 부족 — 콘솔에서 충전이 필요합니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"403":{"description":"접근 거부 — 고객 패키지 미포함 또는 이메일 인증 필요.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"503":{"description":"운영자 설정 필요 — 이 커넥터의 서버 키가 설정되지 않았습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}}}}},"/v1/company/financials":{"post":{"tags":["company"],"summary":"Company Financials","description":"재무제표 주요계정(자산·부채·자본·매출·이익·부채비율). (과금: company_lookup)","operationId":"company_financials_v1_company_financials_post","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyFinancialsReq"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}},"application/json":{"example":{"corp_code":"00126380","year":2025,"report":"annual","total_assets":455905980000000,"total_liabilities":92228115000000,"total_equity":363677865000000,"revenue":300870903000000,"operating_profit":6566976000000,"net_income":15487100000000,"debt_ratio":25.4,"credit_remaining":9998000},"schema":{"type":"object","properties":{"corp_code":{"type":"string"},"year":{"type":"integer"},"report":{"type":"string"},"total_assets":{"type":"integer"},"total_liabilities":{"type":"integer"},"total_equity":{"type":"integer"},"revenue":{"type":"integer"},"operating_profit":{"type":"integer"},"net_income":{"type":"integer"},"debt_ratio":{"type":"number"},"credit_remaining":{"type":"integer"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"인증 실패 — X-API-Key 헤더가 없거나 유효하지 않습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"402":{"description":"크레딧 부족 — 콘솔에서 충전이 필요합니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"403":{"description":"접근 거부 — 고객 패키지 미포함 또는 이메일 인증 필요.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"503":{"description":"운영자 설정 필요 — 이 커넥터의 서버 키가 설정되지 않았습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}}}}},"/v1/utility/electricity":{"post":{"tags":["utility"],"summary":"Utility Electricity","description":"전기 요금(한전 파워플래너). ID/PW pass-through. (과금: utility_lookup)","operationId":"utility_electricity_v1_utility_electricity_post","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ElectricityReq"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}},"application/json":{"example":{"count":1,"bills":[{"provider":"kepco_pp","customer_number":"0123456789","bill_month":"202607","bill_amount":612340,"unpaid_amount":0,"usage":4820,"usage_unit":"kWh","meter_current":48200,"meter_previous":43380,"issue_date":"20260805","due_date":"20260825","customer_name":"주식회사 더빌딩","customer_address":"서울 강남구 ...","provider_request_id":""}],"credit_remaining":9998000},"schema":{"type":"object","properties":{"count":{"type":"integer"},"bills":{"type":"array","items":{"type":"object","properties":{"provider":{"type":"string"},"customer_number":{"type":"string"},"bill_month":{"type":"string"},"bill_amount":{"type":"integer"},"unpaid_amount":{"type":"integer"},"usage":{"type":"integer"},"usage_unit":{"type":"string"},"meter_current":{"type":"integer"},"meter_previous":{"type":"integer"},"issue_date":{"type":"string"},"due_date":{"type":"string"},"customer_name":{"type":"string"},"customer_address":{"type":"string"},"provider_request_id":{"type":"string"}}}},"credit_remaining":{"type":"integer"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"인증 실패 — X-API-Key 헤더가 없거나 유효하지 않습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"402":{"description":"크레딧 부족 — 콘솔에서 충전이 필요합니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"403":{"description":"접근 거부 — 고객 패키지 미포함 또는 이메일 인증 필요.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"503":{"description":"운영자 설정 필요 — 이 커넥터의 서버 키가 설정되지 않았습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}}}}},"/v1/utility/gas":{"post":{"tags":["utility"],"summary":"Utility Gas","description":"가스 요금(예스코). 납입자번호 공개조회. (과금: utility_lookup)","operationId":"utility_gas_v1_utility_gas_post","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GasReq"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}},"application/json":{"example":{"count":1,"bills":[{"provider":"lsyesco","customer_number":"9876543210","bill_month":"202607","bill_amount":84500,"unpaid_amount":0,"usage":128,"usage_unit":"m³","meter_current":null,"meter_previous":null,"issue_date":"20260807","due_date":"20260828","customer_name":"","customer_address":"","provider_request_id":""}],"credit_remaining":9998000},"schema":{"type":"object","properties":{"count":{"type":"integer"},"bills":{"type":"array","items":{"type":"object","properties":{"provider":{"type":"string"},"customer_number":{"type":"string"},"bill_month":{"type":"string"},"bill_amount":{"type":"integer"},"unpaid_amount":{"type":"integer"},"usage":{"type":"integer"},"usage_unit":{"type":"string"},"meter_current":{},"meter_previous":{},"issue_date":{"type":"string"},"due_date":{"type":"string"},"customer_name":{"type":"string"},"customer_address":{"type":"string"},"provider_request_id":{"type":"string"}}}},"credit_remaining":{"type":"integer"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"인증 실패 — X-API-Key 헤더가 없거나 유효하지 않습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"402":{"description":"크레딧 부족 — 콘솔에서 충전이 필요합니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"403":{"description":"접근 거부 — 고객 패키지 미포함 또는 이메일 인증 필요.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"503":{"description":"운영자 설정 필요 — 이 커넥터의 서버 키가 설정되지 않았습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}}}}},"/v1/utility/water":{"post":{"tags":["utility"],"summary":"Utility Water","description":"수도 요금(아리수). 고객번호+사용자명 공개조회. (과금: utility_lookup)","operationId":"utility_water_v1_utility_water_post","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WaterReq"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}},"application/json":{"example":{"count":1,"bills":[{"provider":"arisu","customer_number":"5551234567","bill_month":"202607","bill_amount":41200,"unpaid_amount":0,"usage":32,"usage_unit":"m³","meter_current":null,"meter_previous":null,"issue_date":"20260808","due_date":"20260830","customer_name":"주식회사 더빌딩","customer_address":"","provider_request_id":""}],"credit_remaining":9998000},"schema":{"type":"object","properties":{"count":{"type":"integer"},"bills":{"type":"array","items":{"type":"object","properties":{"provider":{"type":"string"},"customer_number":{"type":"string"},"bill_month":{"type":"string"},"bill_amount":{"type":"integer"},"unpaid_amount":{"type":"integer"},"usage":{"type":"integer"},"usage_unit":{"type":"string"},"meter_current":{},"meter_previous":{},"issue_date":{"type":"string"},"due_date":{"type":"string"},"customer_name":{"type":"string"},"customer_address":{"type":"string"},"provider_request_id":{"type":"string"}}}},"credit_remaining":{"type":"integer"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"인증 실패 — X-API-Key 헤더가 없거나 유효하지 않습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"402":{"description":"크레딧 부족 — 콘솔에서 충전이 필요합니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"403":{"description":"접근 거부 — 고객 패키지 미포함 또는 이메일 인증 필요.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"503":{"description":"운영자 설정 필요 — 이 커넥터의 서버 키가 설정되지 않았습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}}}}},"/v1/invoicer/create":{"post":{"tags":["invoicer"],"summary":"Invoicer Create","description":"공급자 프로필 등록(도장 포함). 첫 프로필은 자동 기본. (무료)","operationId":"invoicer_create_v1_invoicer_create_post","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvoicerIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}},"application/json":{"example":{"ok":true,"invoicer":{"id":"70c97376ff864231a1ed619b9e34a883","name":"주식회사 더빌딩","business_number":"2998603372","representative":"강윤석","address":"서울 강남구 논현로76길 24","has_stamp":false,"stamp_mimetype":"image/png","is_default":true,"is_active":true,"created_at":"2026-08-31T17:10:36+09:00","updated_at":"2026-08-31T17:10:36+09:00"},"credit_remaining":9998000},"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"invoicer":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"business_number":{"type":"string"},"representative":{"type":"string"},"address":{"type":"string"},"has_stamp":{"type":"boolean"},"stamp_mimetype":{"type":"string"},"is_default":{"type":"boolean"},"is_active":{"type":"boolean"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}},"credit_remaining":{"type":"integer"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"인증 실패 — X-API-Key 헤더가 없거나 유효하지 않습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"403":{"description":"접근 거부 — 고객 패키지 미포함 또는 이메일 인증 필요.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"503":{"description":"운영자 설정 필요 — 이 커넥터의 서버 키가 설정되지 않았습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}}}}},"/v1/invoicer/update":{"post":{"tags":["invoicer"],"summary":"Invoicer Update","description":"공급자 프로필 수정(도장 교체 포함). (무료)","operationId":"invoicer_update_v1_invoicer_update_post","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvoicerUpdateReq"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}},"application/json":{"example":{"ok":true,"invoicer":{"id":"70c97376ff864231a1ed619b9e34a883","name":"주식회사 더빌딩","business_number":"2998603372","representative":"강윤석","address":"서울 강남구 논현로76길 24","has_stamp":true,"stamp_mimetype":"image/png","is_default":true,"is_active":true,"created_at":"2026-08-31T17:10:36+09:00","updated_at":"2026-08-31T18:00:00+09:00"},"credit_remaining":9998000},"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"invoicer":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"business_number":{"type":"string"},"representative":{"type":"string"},"address":{"type":"string"},"has_stamp":{"type":"boolean"},"stamp_mimetype":{"type":"string"},"is_default":{"type":"boolean"},"is_active":{"type":"boolean"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}},"credit_remaining":{"type":"integer"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"인증 실패 — X-API-Key 헤더가 없거나 유효하지 않습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"403":{"description":"접근 거부 — 고객 패키지 미포함 또는 이메일 인증 필요.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"503":{"description":"운영자 설정 필요 — 이 커넥터의 서버 키가 설정되지 않았습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}}}}},"/v1/invoicer/delete":{"post":{"tags":["invoicer"],"summary":"Invoicer Delete","description":"공급자 프로필 삭제. (무료)","operationId":"invoicer_delete_v1_invoicer_delete_post","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvoicerIdReq"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}},"application/json":{"example":{"ok":true,"id":"70c97376ff864231a1ed619b9e34a883","credit_remaining":9998000},"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"id":{"type":"string"},"credit_remaining":{"type":"integer"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"인증 실패 — X-API-Key 헤더가 없거나 유효하지 않습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"403":{"description":"접근 거부 — 고객 패키지 미포함 또는 이메일 인증 필요.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"503":{"description":"운영자 설정 필요 — 이 커넥터의 서버 키가 설정되지 않았습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}}}}},"/v1/invoicer/list":{"post":{"tags":["invoicer"],"summary":"Invoicer List","description":"공급자 프로필 목록. (무료)","operationId":"invoicer_list_v1_invoicer_list_post","parameters":[],"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}},"application/json":{"example":{"count":1,"invoicers":[{"id":"70c97376ff864231a1ed619b9e34a883","name":"주식회사 더빌딩","business_number":"2998603372","representative":"강윤석","address":"서울 강남구 논현로76길 24","has_stamp":false,"stamp_mimetype":"image/png","is_default":true,"is_active":true,"created_at":"2026-08-31T17:10:36+09:00","updated_at":"2026-08-31T17:10:36+09:00"}],"credit_remaining":9998000},"schema":{"type":"object","properties":{"count":{"type":"integer"},"invoicers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"business_number":{"type":"string"},"representative":{"type":"string"},"address":{"type":"string"},"has_stamp":{"type":"boolean"},"stamp_mimetype":{"type":"string"},"is_default":{"type":"boolean"},"is_active":{"type":"boolean"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}},"credit_remaining":{"type":"integer"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"인증 실패 — X-API-Key 헤더가 없거나 유효하지 않습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"403":{"description":"접근 거부 — 고객 패키지 미포함 또는 이메일 인증 필요.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}},"503":{"description":"운영자 설정 필요 — 이 커넥터의 서버 키가 설정되지 않았습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"example":{"detail":"오류 메시지"}}}}}}}},"/idempotency/{key}":{"get":{"tags":["platform"],"summary":"Idem Get","description":"멱등키 조회 — 이미 발행됐는지 확인. ★이 API 키(계정)의 키만 보입니다(남의 것 조회 불가).","operationId":"idem_get_idempotency__key__get","parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string","title":"Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}},"application/json":{"example":{"key":"INV-2026-09-001","issued":true,"approval_number":"20260901-41000000-00000001","results":[{"connector":"tax-invoice","approval_number":"20260901-41000000-00000001"}]},"schema":{"type":"object","properties":{"key":{"type":"string"},"issued":{"type":"boolean"},"approval_number":{"type":"string"},"results":{"type":"array","items":{"type":"object","properties":{"connector":{"type":"string"},"approval_number":{"type":"string"}}}}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/usage":{"get":{"tags":["platform"],"summary":"Usage","description":"이번 달 사용량 — 청구 근거.","operationId":"usage_usage_get","parameters":[{"name":"month","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Month"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}},"application/json":{"example":{"tenant":"acct_123","yyyymm":"202609","billable":42,"by_action":{"issue":42}},"schema":{"type":"object","properties":{"tenant":{"type":"string"},"yyyymm":{"type":"string"},"billable":{"type":"integer"},"by_action":{"type":"object","properties":{"issue":{"type":"integer"}}}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/balance":{"get":{"tags":["platform"],"summary":"Balance","description":"이 API 키에 연결된 계정의 남은 크레딧 잔액(원).\n\n잔액 = 입금·조정(원장) − 누적 사용액. 성공한 호출만 차감된다.\n(모든 응답 헤더 `X-Credit-Balance` 와 JSON 바디 `credit_remaining` 으로도 실린다.)","operationId":"balance_balance_get","parameters":[],"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}},"application/json":{"example":{"balance":9998000,"currency":"KRW"},"schema":{"type":"object","properties":{"balance":{"type":"integer"},"currency":{"type":"string"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/jobs/{job_id}":{"get":{"tags":["platform"],"summary":"Job Status","description":"비동기 잡 상태·결과 조회. status = queued / running / done / error / stale.\n★ 자기 계정의 잡만 조회할 수 있다. done 이면 `result` 에 발행 요약·결과가 담긴다.","operationId":"job_status_v1_jobs__job_id__get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}},"application/json":{"example":{"job_id":"45aef6484edbac67","status":"done","kind":"tax-invoice/issue","total":300,"done":300,"result":{"summary":{"total":300,"success":300,"failed":0}},"created_at":"2026-09-03T12:00:00+09:00","updated_at":"2026-09-03T12:03:20+09:00"},"schema":{"type":"object","properties":{"job_id":{"type":"string"},"status":{"type":"string"},"kind":{"type":"string"},"total":{"type":"integer"},"done":{"type":"integer"},"result":{"type":"object","properties":{"summary":{"type":"object","properties":{"total":{"type":"integer"},"success":{"type":"integer"},"failed":{"type":"integer"}}}}},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/whoami":{"get":{"tags":["platform"],"summary":"Whoami","description":"이 API 키의 신원과 사용 가능한 인증서.","operationId":"whoami_whoami_get","parameters":[],"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}},"application/json":{"example":{"mode":"multi","tenant":"acct_123","name":"주식회사 더빌딩","cert_handling":"pass-through (인라인 기본)"},"schema":{"type":"object","properties":{"mode":{"type":"string"},"tenant":{"type":"string"},"name":{"type":"string"},"cert_handling":{"type":"string"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/billing/invoice":{"get":{"tags":["platform"],"summary":"Billing Invoice","description":"이번 달 청구 내역 — 기본료 + 초과 종량.","operationId":"billing_invoice_billing_invoice_get","parameters":[{"name":"month","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Month"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/billing/close":{"post":{"tags":["platform"],"summary":"Billing Close","description":"월 마감 — 숫자를 고정한다. 마감 후엔 그 달 숫자가 변하지 않는다.","operationId":"billing_close_billing_close_post","parameters":[{"name":"month","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Month"}},{"name":"force","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Force"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/billing/delta":{"get":{"tags":["platform"],"summary":"Billing Delta","description":"마감 이후 추가된 건 — 다음 달로 넘길지 판단.","operationId":"billing_delta_billing_delta_get","parameters":[{"name":"month","in":"query","required":true,"schema":{"type":"string","title":"Month"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/billing/prices":{"get":{"tags":["platform"],"summary":"Billing Prices","description":"단가표 (공개).","operationId":"billing_prices_billing_prices_get","responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}}}}},"security":[]}},"/billing/plans":{"get":{"tags":["platform"],"summary":"Billing Plans","description":"요금제 표 (공개).","operationId":"billing_plans_billing_plans_get","responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}}}}},"security":[]}},"/audit":{"get":{"tags":["platform"],"summary":"Audit List","description":"감사 로그 조회 — 누가·언제·무엇을 발행했는지.","operationId":"audit_list_audit_get","parameters":[{"name":"month","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Month"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/audit/summary":{"get":{"tags":["platform"],"summary":"Audit Summary","description":"감사 요약 + 해시 체인 무결성 검증.","operationId":"audit_summary_audit_summary_get","parameters":[{"name":"month","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Month"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/account/whoami":{"get":{"tags":["account"],"summary":"Whoami","description":"이 API 키의 신원과 사용 가능한 인증서.","operationId":"whoami_v1_account_whoami_get","parameters":[],"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}},"application/json":{"example":{"mode":"multi","tenant":"acct_123","name":"주식회사 더빌딩","cert_handling":"pass-through (인라인 기본)"},"schema":{"type":"object","properties":{"mode":{"type":"string"},"tenant":{"type":"string"},"name":{"type":"string"},"cert_handling":{"type":"string"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/account/usage":{"get":{"tags":["account"],"summary":"Usage","description":"이번 달 사용량 — 청구 근거.","operationId":"usage_v1_account_usage_get","parameters":[{"name":"month","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Month"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}},"application/json":{"example":{"tenant":"acct_123","yyyymm":"202609","billable":42,"by_action":{"issue":42}},"schema":{"type":"object","properties":{"tenant":{"type":"string"},"yyyymm":{"type":"string"},"billable":{"type":"integer"},"by_action":{"type":"object","properties":{"issue":{"type":"integer"}}}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/account/balance":{"get":{"tags":["account"],"summary":"Balance","description":"이 API 키에 연결된 계정의 남은 크레딧 잔액(원).\n\n잔액 = 입금·조정(원장) − 누적 사용액. 성공한 호출만 차감된다.\n(모든 응답 헤더 `X-Credit-Balance` 와 JSON 바디 `credit_remaining` 으로도 실린다.)","operationId":"balance_v1_account_balance_get","parameters":[],"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}},"application/json":{"example":{"balance":9998000,"currency":"KRW"},"schema":{"type":"object","properties":{"balance":{"type":"integer"},"currency":{"type":"string"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/balance":{"get":{"tags":["platform"],"summary":"Balance","description":"이 API 키에 연결된 계정의 남은 크레딧 잔액(원).\n\n잔액 = 입금·조정(원장) − 누적 사용액. 성공한 호출만 차감된다.\n(모든 응답 헤더 `X-Credit-Balance` 와 JSON 바디 `credit_remaining` 으로도 실린다.)","operationId":"balance_v1_balance_get","parameters":[],"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}},"application/json":{"example":{"balance":9998000,"currency":"KRW"},"schema":{"type":"object","properties":{"balance":{"type":"integer"},"currency":{"type":"string"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/catalog":{"get":{"tags":["platform"],"summary":"Catalog","description":"제공 중인 커넥터·연산·단가 — 플랫폼 카탈로그(공개).\n\n커넥터가 늘면 여기에 자동 반영된다. 가격표가 곧 문서가 된다.","operationId":"catalog_v1_catalog_get","responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}},"application/json":{"example":{"platform":"OpenBill","version":"v1","connectors":[{"connector":"tax-invoice","title":"전자세금계산서","status":"production","operations":[{"op":"issue","path":"/v1/tax-invoice/issue","price":200,"enabled":true}]}],"billing":{"model":"pay-per-use","currency":"KRW"}},"schema":{"type":"object","properties":{"platform":{"type":"string"},"version":{"type":"string"},"connectors":{"type":"array","items":{"type":"object","properties":{"connector":{"type":"string"},"title":{"type":"string"},"status":{"type":"string"},"operations":{"type":"array","items":{"type":"object","properties":{"op":{"type":"string"},"path":{"type":"string"},"price":{"type":"integer"},"enabled":{"type":"boolean"}}}}}}},"billing":{"type":"object","properties":{"model":{"type":"string"},"currency":{"type":"string"}}}}}}}}},"security":[]}},"/v1/admin/registry":{"get":{"tags":["platform"],"summary":"Admin Registry","description":"레지스트리 관리 뷰 — op별 활성/비활성·가격·필요키. (config 파일로 배포없이 변경)\n\n★ 운영자 전용(콘솔 로그인 is_admin). 이름이 /v1/admin/* 이라 아무 API 키나 열리면 안 되고,\n  나중에 이 아래에 '변경' 엔드포인트를 얹을 때 다들 admin 게이트가 걸렸다고 믿게 된다.\n  config_file(절대경로)·price_overrides·env_ready 를 노출하므로 require_key(임의 키)로는 부족.\n\n변경 방법: registry_config.json 의 disabled/prices 편집(5초 내 반영), 또는\nregistry_config.disable('property.registry')/set_price('sr_issue',100) 호출.","operationId":"admin_registry_v1_admin_registry_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json; charset=utf-8":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"ActivateReq":{"properties":{"biz_no":{"type":"string","title":"Biz No"},"ceo_name":{"type":"string","title":"Ceo Name","default":""},"biz_name":{"type":"string","title":"Biz Name","default":""},"biz_type":{"type":"string","title":"Biz Type","default":""},"biz_item":{"type":"string","title":"Biz Item","default":""},"biz_address":{"type":"string","title":"Biz Address","default":""},"tax_email":{"type":"string","title":"Tax Email","default":""},"phone":{"type":"string","title":"Phone","default":""}},"type":"object","required":["biz_no"],"title":"ActivateReq"},"AddressSearchReq":{"properties":{"query":{"type":"string","title":"Query","description":"검색어(도로명/지번/건물명)"},"limit":{"type":"integer","title":"Limit","default":5}},"type":"object","required":["query"],"title":"AddressSearchReq"},"Auth":{"properties":{"cert_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cert Id","description":"운영자가 서버에 등록한 인증서 참조 — 고객 셀프 등록 API는 없음(인라인 cert+key+password 사용)"},"cert":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cert","description":"signCert.der base64"},"key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key","description":"signPri.key base64"},"password":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Password","description":"생략 시 서버 보관 비밀번호 사용"}},"type":"object","title":"Auth"},"AuthOnly":{"properties":{"auth":{"$ref":"#/components/schemas/Auth"}},"type":"object","required":["auth"],"title":"AuthOnly"},"BankIngestReq":{"properties":{"txns":{"items":{},"type":"array","title":"Txns"}},"type":"object","title":"BankIngestReq"},"BusinessStatusReq":{"properties":{"business_numbers":{"items":{"type":"string"},"type":"array","title":"Business Numbers","description":"사업자등록번호(10자리, 하이픈 무관) 최대 100건"}},"type":"object","required":["business_numbers"],"title":"BusinessStatusReq"},"BusinessToValidate":{"properties":{"business_number":{"type":"string","title":"Business Number"},"start_date":{"type":"string","title":"Start Date","description":"개업일 YYYYMMDD"},"representative":{"type":"string","title":"Representative","description":"대표자명"},"business_name":{"type":"string","title":"Business Name","default":""},"corp_number":{"type":"string","title":"Corp Number","default":""}},"type":"object","required":["business_number","start_date","representative"],"title":"BusinessToValidate"},"BusinessValidateReq":{"properties":{"businesses":{"items":{"$ref":"#/components/schemas/BusinessToValidate"},"type":"array","title":"Businesses"}},"type":"object","required":["businesses"],"title":"BusinessValidateReq"},"CRCancelReq":{"properties":{"auth":{"$ref":"#/components/schemas/Auth"},"actor":{"type":"string","title":"Actor","default":""},"approval_number":{"type":"string","title":"Approval Number","description":"취소할 원승인번호"},"supply_cost":{"type":"integer","title":"Supply Cost","description":"원거래 공급가액"},"tax":{"type":"integer","title":"Tax","description":"원거래 세액(0이면 공급가액의 10%)","default":0},"orig_trade_date":{"type":"string","title":"Orig Trade Date","description":"원거래일 YYYYMMDD. 오늘=당일취소·이전=다음날취소로 자동 라우팅"},"orig_trade_time":{"type":"string","title":"Orig Trade Time","description":"원거래시각 HHMMSS (당일 취소에만 필요)","default":""},"identity":{"type":"string","title":"Identity","default":""},"identity_type":{"type":"string","enum":["self","phone","resno","bizno","card"],"title":"Identity Type","default":"self"},"usage":{"type":"string","enum":["income","expense"],"title":"Usage","default":"income"},"dry_run":{"type":"boolean","title":"Dry Run","default":false}},"type":"object","required":["auth","approval_number","supply_cost","orig_trade_date"],"title":"CRCancelReq"},"CRIssueReq":{"properties":{"auth":{"$ref":"#/components/schemas/Auth"},"actor":{"type":"string","title":"Actor","description":"호출자 시스템의 사용자 식별 — 감사 로그","default":""},"receipt":{"$ref":"#/components/schemas/CashReceiptIn"},"dry_run":{"type":"boolean","title":"Dry Run","default":false}},"type":"object","required":["auth","receipt"],"title":"CRIssueReq"},"CRListReq":{"properties":{"auth":{"$ref":"#/components/schemas/Auth"},"date":{"type":"string","title":"Date","description":"조회 기준일 YYYYMMDD(비우면 KST 오늘). 당일건만.","default":""}},"type":"object","required":["auth"],"title":"CRListReq"},"CancelReq":{"properties":{"auth":{"$ref":"#/components/schemas/Auth"},"actor":{"type":"string","title":"Actor","description":"호출자 시스템의 사용자 식별 — 감사 로그에 남음","default":""},"targets":{"items":{"$ref":"#/components/schemas/CancelTarget"},"type":"array","title":"Targets"},"send_mail":{"type":"boolean","title":"Send Mail","default":true},"dry_run":{"type":"boolean","title":"Dry Run","default":false}},"type":"object","required":["auth","targets"],"title":"CancelReq"},"CancelTarget":{"properties":{"etan":{"type":"string","title":"Etan"},"reason_cd":{"type":"string","title":"Reason Cd","default":"06"},"exempt":{"type":"boolean","title":"Exempt","default":false},"remark":{"type":"string","title":"Remark","default":""},"ref":{"type":"string","title":"Ref","default":""}},"type":"object","required":["etan"],"title":"CancelTarget"},"CashReceiptIn":{"properties":{"supply_cost":{"type":"integer","exclusiveMinimum":0.0,"title":"Supply Cost","description":"공급가액(0 초과 — 0원은 국세청이 거부)"},"tax":{"type":"integer","minimum":0.0,"title":"Tax","description":"세액(0 이상, 0이면 공급가액의 10%)","default":0},"usage":{"type":"string","enum":["income","expense"],"title":"Usage","description":"income 소득공제 / expense 지출증빙","default":"income"},"identity":{"type":"string","title":"Identity","description":"식별번호(비우면 자진발급 전용번호)","default":""},"identity_type":{"type":"string","enum":["self","phone","resno","bizno","card"],"title":"Identity Type","description":"self 자진발급 / phone 휴대폰 / resno 주민 / bizno 사업자 / card 카드","default":"self"},"service_fee":{"type":"integer","minimum":0.0,"title":"Service Fee","description":"봉사료(원). total = 공급가액 + 세액 + 봉사료.","default":0},"trade_dt":{"type":"string","title":"Trade Dt","description":"거래일시 yyyyMMddHHmmss(미지정 시 현재)","default":""},"memo":{"type":"string","title":"Memo","description":"홈택스 현금영수증 메모란(품목명·비고). 팝빌 itemName 에 해당 — 예: \"2026-09 임대료\".","default":""},"ref":{"type":"string","title":"Ref","default":""},"idempotency_key":{"type":"string","title":"Idempotency Key","description":"★중복 발급 방지 키","default":""}},"type":"object","required":["supply_cost"],"title":"CashReceiptIn"},"CheckoutReq":{"properties":{"amount":{"type":"integer","minimum":1000.0,"title":"Amount","description":"결제 금액(원)"}},"type":"object","required":["amount"],"title":"CheckoutReq"},"CompanyFinancialsReq":{"properties":{"corp_code":{"type":"string","title":"Corp Code","description":"DART 고유번호 8자리"},"year":{"type":"integer","title":"Year","description":"사업연도 YYYY"},"report":{"type":"string","title":"Report","description":"annual/half/q1/q3","default":"annual"}},"type":"object","required":["corp_code","year"],"title":"CompanyFinancialsReq"},"CompanyProfileReq":{"properties":{"corp_code":{"type":"string","title":"Corp Code","description":"DART 고유번호 8자리(company/search 로 획득)"}},"type":"object","required":["corp_code"],"title":"CompanyProfileReq"},"CompanySearchReq":{"properties":{"name":{"type":"string","title":"Name","description":"회사명(부분일치)"},"limit":{"type":"integer","title":"Limit","default":10},"listed_only":{"type":"boolean","title":"Listed Only","default":false}},"type":"object","required":["name"],"title":"CompanySearchReq"},"ConfirmReq":{"properties":{"payment_key":{"type":"string","title":"Payment Key"},"order_id":{"type":"string","title":"Order Id"},"amount":{"type":"integer","title":"Amount"}},"type":"object","required":["payment_key","order_id","amount"],"title":"ConfirmReq"},"DepositReq":{"properties":{"amount":{"type":"integer","minimum":1000.0,"title":"Amount","description":"충전 금액(원)"}},"type":"object","required":["amount"],"title":"DepositReq"},"DetailReq":{"properties":{"auth":{"$ref":"#/components/schemas/Auth"},"etan":{"type":"string","title":"Etan"}},"type":"object","required":["auth","etan"],"title":"DetailReq"},"ElectricityReq":{"properties":{"user_id":{"type":"string","title":"User Id","description":"한전 파워플래너 ID"},"user_pw":{"type":"string","title":"User Pw","description":"파워플래너 비밀번호(저장 안 함)"},"year":{"type":"integer","title":"Year","description":"조회 연도(그 해 12개월 반환)"},"months":{"items":{"type":"string"},"type":"array","title":"Months","description":"YYYYMM 필터(선택)"}},"type":"object","required":["user_id","user_pw","year"],"title":"ElectricityReq"},"GasReq":{"properties":{"pay_no":{"type":"string","title":"Pay No","description":"예스코 납입자번호(10자리)"},"ym_from":{"type":"string","title":"Ym From","description":"조회 시작 YYYYMM"},"ym_to":{"type":"string","title":"Ym To","description":"조회 종료 YYYYMM"}},"type":"object","required":["pay_no","ym_from","ym_to"],"title":"GasReq"},"GrantReq":{"properties":{"email":{"type":"string","title":"Email"},"amount":{"type":"integer","title":"Amount"},"memo":{"type":"string","title":"Memo","default":""}},"type":"object","required":["email","amount"],"title":"GrantReq"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"InvoiceIn":{"properties":{"ref":{"type":"string","title":"Ref","description":"호출자 식별자 (계약ID 등)","default":""},"idempotency_key":{"type":"string","title":"Idempotency Key","description":"★중복 발행 방지 키 — 배치엔 반드시 넣을 것","default":""},"supplier":{"$ref":"#/components/schemas/PartyIn"},"recipient":{"$ref":"#/components/schemas/PartyIn"},"items":{"items":{"$ref":"#/components/schemas/ItemIn"},"type":"array","title":"Items"},"write_date":{"type":"string","title":"Write Date"},"remark":{"type":"string","title":"Remark","default":""},"rec_ape_cl_cd":{"type":"string","title":"Rec Ape Cl Cd","default":"02"},"bill_form":{"type":"string","title":"Bill Form","default":"tax_invoice"},"recipient_clsf_cd":{"type":"string","title":"Recipient Clsf Cd","default":"01"},"cash":{"type":"string","title":"Cash","default":""},"check":{"type":"string","title":"Check","default":""},"note":{"type":"string","title":"Note","default":""},"credit":{"type":"string","title":"Credit","default":""}},"type":"object","required":["supplier","recipient","items","write_date"],"title":"InvoiceIn"},"InvoicerIdReq":{"properties":{"id":{"type":"string","title":"Id"}},"type":"object","required":["id"],"title":"InvoicerIdReq"},"InvoicerIn":{"properties":{"name":{"type":"string","title":"Name","description":"상호/법인명 — 필수"},"business_number":{"type":"string","title":"Business Number","default":""},"representative":{"type":"string","title":"Representative","default":""},"address":{"type":"string","title":"Address","default":""},"stamp_image":{"type":"string","title":"Stamp Image","description":"도장 이미지 base64(선택)","default":""},"stamp_mimetype":{"type":"string","title":"Stamp Mimetype","default":"image/png"},"is_default":{"type":"boolean","title":"Is Default","default":false},"is_active":{"type":"boolean","title":"Is Active","default":true}},"type":"object","required":["name"],"title":"InvoicerIn"},"InvoicerUpdateReq":{"properties":{"id":{"type":"string","title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"business_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Business Number"},"representative":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Representative"},"address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address"},"stamp_image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stamp Image"},"stamp_mimetype":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stamp Mimetype"},"is_default":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Default"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"}},"type":"object","required":["id"],"title":"InvoicerUpdateReq"},"IssueReq":{"properties":{"auth":{"$ref":"#/components/schemas/Auth"},"actor":{"type":"string","title":"Actor","description":"호출자 시스템의 사용자 식별 — 감사 로그에 남음","default":""},"invoices":{"items":{"$ref":"#/components/schemas/InvoiceIn"},"type":"array","title":"Invoices"},"send_mail":{"type":"boolean","title":"Send Mail","default":true},"dry_run":{"type":"boolean","title":"Dry Run","default":false}},"type":"object","required":["auth","invoices"],"title":"IssueReq"},"ItemIn":{"properties":{"name":{"type":"string","title":"Name"},"supply_cost":{"type":"integer","title":"Supply Cost"},"tax":{"type":"integer","title":"Tax"},"qty":{"type":"integer","title":"Qty","default":1},"unit_price":{"type":"integer","title":"Unit Price","default":0},"spec":{"type":"string","title":"Spec","default":""},"supply_date":{"type":"string","title":"Supply Date","default":""},"remark":{"type":"string","title":"Remark","default":""}},"type":"object","required":["name","supply_cost","tax"],"title":"ItemIn"},"KeyReq":{"properties":{"label":{"type":"string","title":"Label","default":""},"mode":{"type":"string","title":"Mode","default":"live"}},"type":"object","title":"KeyReq"},"ListReq":{"properties":{"auth":{"$ref":"#/components/schemas/Auth"},"date_from":{"type":"string","title":"Date From"},"date_to":{"type":"string","title":"Date To"},"dt_cl":{"type":"string","title":"Dt Cl","default":"01"},"sales":{"type":"boolean","title":"Sales","default":true}},"type":"object","required":["auth","date_from","date_to"],"title":"ListReq"},"LoginReq":{"properties":{"email":{"type":"string","title":"Email"},"password":{"type":"string","title":"Password"}},"type":"object","required":["email","password"],"title":"LoginReq"},"LookupReq":{"properties":{"auth":{"$ref":"#/components/schemas/Auth"},"business_number":{"type":"string","title":"Business Number"}},"type":"object","required":["auth","business_number"],"title":"LookupReq"},"MailReq":{"properties":{"auth":{"$ref":"#/components/schemas/Auth"},"issue_response":{"additionalProperties":true,"type":"object","title":"Issue Response","description":"발급 응답 원본(raw)"},"is_amend":{"type":"boolean","title":"Is Amend","default":false}},"type":"object","required":["auth","issue_response"],"title":"MailReq"},"PartyIn":{"properties":{"business_number":{"type":"string","title":"Business Number"},"name":{"type":"string","title":"Name","default":""},"representative":{"type":"string","title":"Representative","default":""},"address":{"type":"string","title":"Address","default":""},"business_type":{"type":"string","title":"Business Type","default":""},"business_class":{"type":"string","title":"Business Class","default":""},"email":{"type":"string","title":"Email","default":""},"email2":{"type":"string","title":"Email2","default":""},"tin":{"type":"string","title":"Tin","default":""},"subbusiness_no":{"type":"string","title":"Subbusiness No","default":"0"}},"type":"object","required":["business_number"],"title":"PartyIn"},"PriceReq":{"properties":{"price_key":{"type":"string","title":"Price Key"},"price":{"type":"integer","minimum":0.0,"title":"Price"}},"type":"object","required":["price_key","price"],"title":"PriceReq"},"PropertyReq":{"properties":{"pnu":{"type":"string","title":"Pnu","description":"필지고유번호 19자리. 비우면 address 로 조회","default":""},"address":{"type":"string","title":"Address","description":"주소(pnu 없을 때 자동 변환)","default":""}},"type":"object","title":"PropertyReq"},"RecipientIn":{"properties":{"name":{"type":"string","title":"Name","description":"받는자(공급받는자) — 필수"},"business_number":{"type":"string","title":"Business Number","default":""},"phone":{"type":"string","title":"Phone","default":""}},"type":"object","required":["name"],"title":"RecipientIn"},"RegistryReq":{"properties":{"cert":{"type":"string","title":"Cert","description":"signCert.der base64"},"key":{"type":"string","title":"Key","description":"signPri.key base64"},"password":{"type":"string","title":"Password","description":"인증서 비밀번호(서버에서 RSA 암호화 후 전송)"},"eprepay_no":{"type":"string","title":"Eprepay No","description":"선불전자지급수단 번호(등기 열람 수수료)","default":""},"eprepay_pass":{"type":"string","title":"Eprepay Pass","description":"선불전자지급수단 비밀번호","default":""},"phone_no":{"type":"string","title":"Phone No","default":""},"issue_type":{"type":"string","title":"Issue Type","description":"0 간편/1 도로명/2 고유번호/3 지번","default":"2"},"unique_number":{"type":"string","title":"Unique Number","default":""},"road_address":{"type":"string","title":"Road Address","default":""},"land_lot_address":{"type":"string","title":"Land Lot Address","default":""},"name":{"type":"string","title":"Name","default":""},"keyword":{"type":"string","title":"Keyword","default":""},"select_address":{"type":"string","title":"Select Address","default":"0"},"two_way_info":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Two Way Info"},"selected_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Selected Index"}},"type":"object","required":["cert","key","password"],"title":"RegistryReq"},"ResetReq":{"properties":{"token":{"type":"string","title":"Token"},"new_password":{"type":"string","minLength":8,"title":"New Password"}},"type":"object","required":["token","new_password"],"title":"ResetReq"},"ResetRequestReq":{"properties":{"email":{"type":"string","title":"Email"}},"type":"object","required":["email"],"title":"ResetRequestReq"},"SRDetailReq":{"properties":{"id":{"type":"string","title":"Id"}},"type":"object","required":["id"],"title":"SRDetailReq"},"SRIdReq":{"properties":{"id":{"type":"string","title":"Id"},"actor":{"type":"string","title":"Actor","default":""}},"type":"object","required":["id"],"title":"SRIdReq"},"SRIssueReq":{"properties":{"supplier":{"$ref":"#/components/schemas/SupplierIn"},"supplier_profile_id":{"type":"string","title":"Supplier Profile Id","description":"등록한 공급자 프로필 id(도장 자동적용). 비우면 기본 프로필, 그것도 없으면 supplier 인라인 사용","default":""},"recipient":{"$ref":"#/components/schemas/RecipientIn"},"items":{"items":{"$ref":"#/components/schemas/SRItemIn"},"type":"array","title":"Items"},"amount":{"type":"integer","title":"Amount","description":"items 없을 때 단일 금액","default":0},"item_name":{"type":"string","title":"Item Name","default":""},"issue_date":{"type":"string","title":"Issue Date","description":"YYYYMMDD(비우면 KST 오늘)","default":""},"remark":{"type":"string","title":"Remark","default":""},"number":{"type":"string","title":"Number","description":"영수증 번호 직접지정(비우면 자동)","default":""},"number_prefix":{"type":"string","title":"Number Prefix","default":"SR"},"actor":{"type":"string","title":"Actor","default":""}},"type":"object","required":["recipient"],"title":"SRIssueReq"},"SRItemIn":{"properties":{"name":{"type":"string","title":"Name"},"qty":{"type":"integer","title":"Qty","default":1},"unit_price":{"type":"integer","title":"Unit Price","default":0},"amount":{"type":"integer","title":"Amount","description":"0이면 qty*unit_price","default":0}},"type":"object","required":["name"],"title":"SRItemIn"},"SRListReq":{"properties":{"date_from":{"type":"string","title":"Date From","default":""},"date_to":{"type":"string","title":"Date To","default":""},"include_deleted":{"type":"boolean","title":"Include Deleted","default":false},"limit":{"type":"integer","title":"Limit","default":500}},"type":"object","title":"SRListReq"},"SRUpdateReq":{"properties":{"id":{"type":"string","title":"Id"},"supplier":{"anyOf":[{"$ref":"#/components/schemas/SupplierIn"},{"type":"null"}]},"recipient":{"anyOf":[{"$ref":"#/components/schemas/RecipientIn"},{"type":"null"}]},"items":{"anyOf":[{"items":{"$ref":"#/components/schemas/SRItemIn"},"type":"array"},{"type":"null"}],"title":"Items"},"amount":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Amount"},"item_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Item Name"},"issue_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Issue Date"},"remark":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Remark"},"actor":{"type":"string","title":"Actor","default":""}},"type":"object","required":["id"],"title":"SRUpdateReq"},"SettingsReq":{"properties":{"welcome_credit":{"type":"integer","minimum":0.0,"title":"Welcome Credit"}},"type":"object","required":["welcome_credit"],"title":"SettingsReq"},"SignupReq":{"properties":{"email":{"type":"string","title":"Email"},"password":{"type":"string","minLength":8,"title":"Password"},"name":{"type":"string","title":"Name","default":""},"company":{"type":"string","title":"Company","default":""},"phone":{"type":"string","title":"Phone","default":""},"agree":{"type":"boolean","title":"Agree","default":false}},"type":"object","required":["email","password"],"title":"SignupReq"},"SupplierIn":{"properties":{"name":{"type":"string","title":"Name","default":""},"business_number":{"type":"string","title":"Business Number","default":""},"representative":{"type":"string","title":"Representative","default":""},"address":{"type":"string","title":"Address","default":""},"stamp_image":{"type":"string","title":"Stamp Image","description":"도장 이미지 base64(선택). 없으면 자동 생성","default":""},"stamp_mimetype":{"type":"string","title":"Stamp Mimetype","default":"image/png"}},"type":"object","title":"SupplierIn"},"TokenReq":{"properties":{"token":{"type":"string","title":"Token"}},"type":"object","required":["token"],"title":"TokenReq"},"TransactionReq":{"properties":{"lawd_cd":{"type":"string","title":"Lawd Cd","description":"시군구 법정동코드 5자리(비우면 address 로)","default":""},"address":{"type":"string","title":"Address","description":"지역 주소(lawd_cd 없을 때)","default":""},"deal_ym":{"type":"string","title":"Deal Ym","description":"거래년월 YYYYMM"},"kinds":{"items":{"type":"string"},"type":"array","title":"Kinds","description":"apartment/officetel/row_house"}},"type":"object","required":["deal_ym"],"title":"TransactionReq"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"WaterReq":{"properties":{"customer_number":{"type":"string","title":"Customer Number","description":"아리수 고객번호"},"customer_name":{"type":"string","title":"Customer Name","description":"사용자명(신원확인 키)"},"billing_ym":{"type":"string","title":"Billing Ym","description":"납기년월 YYYYMM"}},"type":"object","required":["customer_number","customer_name","billing_ym"],"title":"WaterReq"}},"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-Key","description":"발급받은 API 키(X-API-Key 헤더). ob_test_…=샌드박스(무과금), ob_live_…=실호출."}}},"tags":[{"name":"tax-invoice","description":"전자세금계산서 — 발행·수정발행(취소)·발급목록(매출/매입)·상세·검증·거래처 조회. 공동인증서 pass-through."},{"name":"cash-receipt","description":"현금영수증 — 자진발급·당일취소·발급목록. 공동인증서 pass-through."},{"name":"simple-receipt","description":"간이영수증 — 자체 발행·수정·삭제·조회. 인증서 불필요."},{"name":"invoicer","description":"공급자 프로필 — 발행자 정보·도장 등록·관리."},{"name":"business","description":"사업자 조회 — 휴폐업·과세유형 상태조회 및 진위확인(공식 API)."},{"name":"property","description":"부동산 — 도로명주소·건축물대장·토지·공시지가·실거래가·등기부등본."},{"name":"utility","description":"공과금 — 전기·가스·수도 요금 직접수집."},{"name":"company","description":"기업정보 — 회사 검색·개황·재무(공식 API)."},{"name":"platform","description":"플랫폼 — 카탈로그·사용량·과금·감사로그·상태."},{"name":"console","description":"콘솔 — 회원가입·로그인·API 키·크레딧·활성화(세션 인증). API 키가 아닌 로그인 세션으로 호출."}],"servers":[{"url":"https://openbill.thebldgs.com","description":"운영"}],"security":[{"ApiKeyAuth":[]}]}