{"openapi":"3.0.3","info":{"title":"APICK 현금영수증 발급","version":"1.0.0","description":"본인 간편인증 후 현금영수증 발급 자료를 확인합니다. 승인번호: 발급된 현금영수증 승인번호 거래일시: 거래일자 8자리 + 거래시각 6자리 합계금액: 총 거래금액(원) 공급가액: 공급가액(원)"},"servers":[{"url":"https://apick.app"}],"paths":{"/rest/req_cash_receipt_issue":{"post":{"summary":"현금영수증 발급","description":"본인 간편인증 후 현금영수증 발급 자료를 확인합니다. 승인번호: 발급된 현금영수증 승인번호 거래일시: 거래일자 8자리 + 거래시각 6자리 합계금액: 총 거래금액(원) 공급가액: 공급가액(원)","security":[{"bearerAuth":[]}],"parameters":[],"responses":{"200":{"description":"서비스별 성공·처리 상태 응답","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"schemaVersion":{"type":"string","description":"결과 스키마 버전 (고정값: \"1.0\")"},"transactionId":{"type":"string","description":"결과 조회에 사용하는 트랜잭션 ID"},"product":{"type":"string","description":"조회 항목 코드. 결과조회에도 같은 값이 오므로 어느 항목의 결과인지 대조할 수 있습니다."},"status":{"type":"string","description":"처리 상태 (AUTH_REQUESTED: 인증 요청 완료)"},"resultAvailable":{"type":"boolean","description":"결과 데이터 포함 여부. 인증 요청 응답은 항상 false 입니다."},"charged":{"type":"boolean","description":"이번 호출의 과금 발생 여부. 실제 발송에 성공하면 true 입니다."},"sources":{"type":"array","items":{}},"message":{"type":"string","description":"상태 메시지 (고정값: \"인증 대기중입니다.\")"},"approvals":{"type":"integer","description":"사용자가 휴대폰에서 승인해야 하는 횟수. 같은 인증으로 처리되는 조회는 묶음이어도 1회입니다."},"expiresAt":{"type":"string","description":"인증 유효 기한(ISO 8601). 이 시각까지 승인하지 못하면 인증 실패 처리됩니다."},"success":{"type":"integer","description":"과금 여부0: 실패 또는 재사용(무과금)1: 발송 성공(과금)"}},"description":"인증 요청 결과"},"api":{"type":"object","properties":{"success":{"type":"boolean","description":"API 서버 정상 응답 여부"},"cost":{"type":"integer","description":"API 호출 요금"},"ms":{"type":"integer","description":"API 응답 시간"},"pl_id":{"type":"integer","description":"API 결제 로그 ID"}},"description":"API 호출 공통 데이터"}}}}}},"default":{"description":"HTTP 상태 및 서비스 오류코드 확인","content":{"application/json":{"schema":{"type":"object"}}}}},"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"조회 대상의 이름입니다. 간편인증·개인 조회에서는 성명, 기업 조회에서는 법인명·상호를 뜻합니다. 생년월일·전화번호 같은 보조 식별자와 함께 확인하세요. (string)","example":"홍길동"},"birthDate":{"type":"string","description":"대상자의 생년월일 8자리입니다. 예: 19900101. 주민등록상 생년월일과 같아야 하며, 하이픈·공백은 넣지 않습니다. (string)","example":"19900101"},"phone":{"type":"string","description":"본인 명의 휴대전화 번호입니다. 하이픈 없이 숫자만 입력하며(예: 01012341234), 인증 문자를 받을 수 있는 번호여야 합니다. (string)","example":"01011112222"},"authProvider":{"type":"string","description":"사용할 간편인증 수단의 식별자입니다. 예: kakao, naver, toss, pass. 지원 값과 표시 이름은 이 문서의 간편인증 목록을 확인하세요. (string)","example":"kakao"},"receipt_no":{"type":"string","description":"발급수단번호(휴대전화·주민등록번호·카드·사업자등록번호) 문자열로 보내며, 빼거나 빈 값으로 보내면 요청이 거부됩니다. (string)","example":"HRD-0000-0000"},"amount":{"type":"string","description":"총 거래금액(원) 숫자로 보내며, 허용 범위를 벗어나면 요청이 거부됩니다. (number)"},"idempotency_key":{"type":"string","description":"같은 요청을 다시 보낼 때 중복 접수·과금을 막는 고유 키입니다. 요청 내용이 같으면 같은 키를 유지하고, 내용이 바뀌면 새 키를 만드세요. 키를 생략할 수 있는 API에서 생략하면 같은 요청은 기존 작업으로 처리됩니다. (string)"},"purpose":{"type":"string","description":"용도구분 0 소득공제 · 1 지출증빙. 기본 0 문자열로 보내며, 생략하면 서버 기본값이 적용되거나 해당 조건이 해제됩니다. (string)"},"transaction_type":{"type":"string","description":"거래유형 01 과세 · 02 면세 · 03 간이. 기본 01 문자열로 보내며, 생략하면 서버 기본값이 적용되거나 해당 조건이 해제됩니다. (string)"},"transaction_date":{"type":"string","description":"거래일자 8자리. 없으면 오늘 문자열로 보내며, 생략하면 서버 기본값이 적용되거나 해당 조건이 해제됩니다. (string)","example":"1234567890"},"memo":{"type":"string","description":"거래 메모 문자열로 보내며, 생략하면 서버 기본값이 적용되거나 해당 조건이 해제됩니다. (string)"},"tin":{"type":"string","description":"가맹점 사업자등록번호. 없으면 로그인 세션 값 문자열로 보내며, 생략하면 서버 기본값이 적용되거나 해당 조건이 해제됩니다. (string)","example":"HRD-0000-0000"},"business_type":{"type":"string","description":"사업자 구분. corporate(법인)는 공동인증서가 필수, personal(개인)은 간편인증·공동인증서 모두 가능. 없으면 personal (string)"},"certificate_id":{"type":"string","description":"등록한 공동인증서 ID. 없으면 기본 인증서를 쓴다 문자열로 보내며, 생략하면 서버 기본값이 적용되거나 해당 조건이 해제됩니다. (string)"},"auth_type":{"type":"string","description":"인증 방식. certificate(공동인증서) 또는 simple(간편인증). 없으면 business_type·certificate_id 로 정한다 (string)"}},"required":["name","birthDate","phone","authProvider","receipt_no","amount","idempotency_key"]}}}}}},"/rest/get_cash_receipt_issue":{"post":{"summary":"현금영수증 발급","description":"본인 간편인증 후 현금영수증 발급 자료를 확인합니다. 승인번호: 발급된 현금영수증 승인번호 거래일시: 거래일자 8자리 + 거래시각 6자리 합계금액: 총 거래금액(원) 공급가액: 공급가액(원)","security":[{"bearerAuth":[]}],"parameters":[],"responses":{"200":{"description":"서비스별 성공·처리 상태 응답","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"schemaVersion":{"type":"string","description":"결과 스키마 버전 (고정값: \"1.0\")"},"transactionId":{"type":"string","description":"트랜잭션 ID"},"product":{"type":"string","description":"조회 항목 코드. 인증요청 응답과 같은 값입니다."},"status":{"type":"string","description":"처리 상태 (위 표 참고)"},"resultAvailable":{"type":"boolean","description":"실제 결과 포함 여부. 과금 여부도 이 값으로 결정됩니다."},"charged":{"type":"boolean","description":"이번 호출의 과금 발생 여부. 최초 결과 반환에서만 true 입니다."},"sources":{"type":"array","items":{"type":"object","properties":{"source":{"type":"string"},"type":{"type":"string"},"status":{"type":"string"}}},"description":"항상 포함됩니다. 값이 없으면 빈 배열 [] 입니다. 항목이 여러 개인 상품에서 어느 것이 성공·실패했는지 알려줍니다. 각 항목은 source(자료 이름), type(데이터 종류), status(SUCCESS/FAILED). 결과 준비가 끝나기 전에는 아직 확정되지 않은 항목이 FAILED 로 보일 수 있습니다."},"message":{"type":"string","description":"상태 메시지"},"expiresAt":{"type":"string"},"success":{"type":"integer","description":"과금 여부0: 결과 없음 또는 재조회(무과금)1: 최초 결과 반환(과금)"},"progress":{"type":"object","properties":{"total":{"type":"integer"},"completed":{"type":"integer"}},"description":"진행률(COLLECTING 일 때). total(전체 항목), completed(완료 항목)"},"checkedAt":{"type":"string","description":"실제 정보를 확인한 시각. 한국시간(UTC+09:00) ISO 8601 이며 재조회 유효기간의 기준입니다."},"resultExpiresAt":{"type":"string","description":"결과 재조회 만료 시각. 한국시간(UTC+09:00) ISO 8601 입니다."},"result":{"type":"object","properties":{"cashReceiptIssue":{"type":"object","additionalProperties":true,"properties":{"승인번호":{"type":"string","description":"발급된 현금영수증 승인번호"},"거래일시":{"type":"string","description":"거래일자 8자리 + 거래시각 6자리"},"합계금액":{"type":"integer","description":"총 거래금액(원)"},"공급가액":{"type":"integer","description":"공급가액(원)"},"부가세":{"type":"integer","description":"부가가치세(원)"},"용도구분":{"type":"string","description":"용도구분 문구(소득공제·지출증빙)"}},"description":"이 조회 항목의 결과입니다. 항목은 결과 규격을 참고하세요."}},"description":"조회된 결과 묶음. 실제 데이터가 있을 때만 포함됩니다."},"errorCode":{"type":"string","description":"오류 구분. RESULT_EXPIRED(재조회 기간 만료) / AUTH_EXPIRED / AUTH_REJECTED / COLLECT_FAILED"}},"description":"상태·결과"},"api":{"type":"object","properties":{"success":{"type":"boolean","description":"API 서버 정상 응답 여부"},"cost":{"type":"integer","description":"API 호출 요금"},"ms":{"type":"integer","description":"API 응답 시간"},"pl_id":{"type":"integer","description":"API 결제 로그 ID"}},"description":"API 호출 공통 데이터"}}}}}},"default":{"description":"HTTP 상태 및 서비스 오류코드 확인","content":{"application/json":{"schema":{"type":"object"}}}}},"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"transactionId":{"type":"string","description":"/rest/req_cash_receipt_issue 가 반환한 트랜잭션 ID (string)","example":"9f2c4a7b1d8e35c60a4f7b2d1e9c803a"}},"required":["transactionId"]}}}}}}},"x-code-tables":[{"title":"오류와 복구","columns":["상황","HTTP","data.error","해결"],"rows":[["이름·생년월일·휴대전화 번호가 비었거나 형식이 틀림","400","입력 항목이 잘못됐습니다.(이름) — 괄호 안에 항목 이름(생년월일 8자리·휴대전화 번호)이 표시됩니다.","값을 고쳐 인증 요청을 다시 보냅니다. 인증이 발송되지 않아 과금되지 않습니다."],["authProvider 가 허용값이 아니거나 지금 쓸 수 없는 인증방식","400","입력 항목이 잘못됐습니다.(인증방식)","간편인증 방식 표의 값(예: kakao)으로 보냅니다."],["같은 상품의 앞선 요청을 처리하는 중","429","앞선 요청을 처리하고 있습니다. 잠시 후 다시 시도해 주세요.","인증 요청을 다시 보내지 말고 잠시 뒤 받은 transactionId 로 결과를 조회합니다."],["보유 포인트가 이번 호출 단가보다 적음","200","data 대신 result.error 에 사용 가능한 포인트이 부족합니다.","충전한 뒤 다시 호출합니다. 결과조회는 같은 transactionId 를 그대로 씁니다."],["결과를 청구하는 순간 포인트가 부족함","402","결제 금액보다 보유 포인트이 부족합니다.","충전한 뒤 같은 transactionId 로 다시 조회합니다. 결과는 24시간 보관됩니다."],["결과조회에 transactionId 가 없음","400","입력 항목이 잘못됐습니다.(transactionId)","인증 요청 응답의 transactionId 를 보냅니다."],["없는 transactionId 또는 다른 상품의 결과조회 경로","404","요청을 찾을 수 없습니다.","인증 요청한 상품의 /rest/get_cash_receipt_issue 로 조회합니다."],["사용자가 승인을 거부함","200","없음 — status=AUTH_REJECTED, errorCode=AUTH_REJECTED","다시 시도할지 사용자에게 묻고 인증 요청부터 다시 합니다(인증 요청 단가가 다시 발생)."],["5분 안에 승인하지 않음","200","없음 — status=AUTH_EXPIRED, errorCode=AUTH_EXPIRED","인증 요청부터 다시 합니다. 결과 단가는 발생하지 않습니다."],["발급하지 못함(대상이 아니거나 일시적으로 처리하지 못함)","200","없음 — status=FAILED, errorCode=COLLECT_FAILED","결과 단가는 발생하지 않습니다. 입력값을 확인한 뒤 잠시 후 인증 요청부터 다시 합니다."],["결과 재조회 기간(24시간)이 지남","200","없음 — errorCode=RESULT_EXPIRED","받은 결과는 바로 저장해 두세요. 다시 받으려면 인증 요청부터 합니다."]]}],"x-service-errors":[],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}}}}