{"openapi":"3.0.3","info":{"title":"APICK 일용·간이·용역 소득내역 조회 인증 요청","version":"1.0.0","description":"이름·생년월일·휴대전화번호와 간편인증 방식을 입력하면 사용자에게 간편인증 요청을 보내고, 결과 조회에 사용할 transactionId 를 즉시 반환합니다."},"servers":[{"url":"https://apick.app"}],"paths":{"/rest/req_income_by_payer":{"post":{"summary":"일용·간이·용역 소득내역 조회 인증 요청","description":"이름·생년월일·휴대전화번호와 간편인증 방식을 입력하면 사용자에게 간편인증 요청을 보내고, 결과 조회에 사용할 transactionId 를 즉시 반환합니다.","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":"상태 메시지 (고정값: \"인증 대기중입니다.\")"},"expiresAt":{"type":"string","description":"인증 유효 기한(ISO 8601). 이 시각까지 승인하지 못하면 인증 실패 처리됩니다."},"success":{"type":"integer","description":"과금 여부0: 실패 또는 재사용(무과금)1: 발송 성공(과금)"},"approvals":{"type":"integer","description":"필요한 간편인증 승인 횟수. 조회 항목 하나당 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자리(YYYYMMDD) (string)","example":"19900101"},"phone":{"type":"string","description":"휴대전화 번호 (본인 명의, 숫자만) (string)","example":"01011112222"},"authProvider":{"type":"string","description":"간편인증 방식 (아래 지원 목록 참고) (string)","example":"kakao"},"incomeYears":{"type":"string","description":"소득 조회 연수(1~3). 기본 1 (integer)","example":"3"}},"required":["name","birthDate","phone","authProvider"]}}}}}}},"x-code-tables":[{"title":"공통 오류 응답","columns":["상황","확인할 값","대응"],"rows":[["인증키 누락·오류","api.success=false","Header Authorization: Bearer 를 확인하세요. 과금되지 않습니다."],["입력값 누락·형식 오류","오류 메시지에 어느 항목이 잘못됐는지 표시됩니다.","이름·생년월일·휴대전화번호·인증방식을 다시 확인하세요."],["조회 항목에 필요한 추가 입력 누락","오류 메시지에 필요한 입력 이름이 표시됩니다.","아래 요청 표의 추가 입력 항목을 채우세요."],["없는 transactionId · 만료된 요청","요청을 찾을 수 없다는 응답 또는 status AUTH_EXPIRED","인증요청부터 다시 하세요."],["처리 중 재요청","HTTP 424 · 요청 처리 중 또는 처리 잠금 획득 실패 · api.cost=0","같은 사용자·같은 조회 항목의 접수는 서버가 한 건씩 처리합니다. 앞선 요청이 끝난 뒤 같은 transactionId 로 다시 조회하세요."],["결과 재조회 기한 만료","errorCode=RESULT_EXPIRED","24시간이 지났습니다. 인증요청부터 다시 하세요."],["사용자 인증 거부","errorCode=AUTH_REJECTED","사용자에게 다시 시도할지 안내하세요. 과금되지 않습니다."],["정보 조회 실패","errorCode=COLLECT_FAILED · status FAILED","잠시 후 인증요청부터 다시 시도하세요. 결과 단가는 과금되지 않습니다."],["보유 포인트 부족","HTTP 402 · data.error 에 사유 · api.cost=0","이 호출은 과금되지 않습니다. 요금과 포인트를 확인한 뒤 충전하고 다시 요청하세요."],["처리 시간 초과","HTTP 408 · data.success=3","서버가 제한 시간 안에 끝내지 못했습니다. 과금되지 않습니다. 잠시 후 같은 요청을 다시 보내세요."]]},{"title":"상태와 성공 판정","columns":["필드","의미","판단 기준"],"rows":[["HTTP 상태 코드","전송 계층의 결과","200 이 정상, 402 는 포인트 부족, 408 은 처리 시간 초과, 424 는 동일 요청 처리 중. 성공 판정에 쓰지 마세요."],["api.success","APICK 서버가 요청을 정상 처리했는지","포인트 부족(402)이나 시간 초과(408)에도 true 입니다. 업무 성공 판정에 쓰지 마세요."],["data.status","조회 진행 상태","AUTH_WAITING(승인 대기) · AUTH_COMPLETED · COLLECTING(조회 중) · SUCCESS(완료) · FAILED · AUTH_EXPIRED · AUTH_REJECTED · PARTIAL_SUCCESS. resultAvailable=true이면 결과를 사용하세요. RESULT_EXPIRED는 errorCode입니다."],["data.resultAvailable","지금 응답에 쓸 수 있는 결과가 들어 있는지","true 이면 폴링을 멈추고 result 를 사용하세요. false는 대기 또는 종료 상태일 수 있으므로 status를 함께 확인하세요."],["data.success","이 응답이 결과 제공 응답인지 (1/0)","새 유료 결과 제공에서는 1, 무료 재조회에서는 0일 수 있습니다. 결과 유무는 resultAvailable로 판단하세요. 처리 시간 초과(408)에서는 3 이 오므로 \"1 인지\"로 비교하세요."],["data.charged · api.cost","이번 호출의 과금 여부·금액","과금 회계 확인용입니다. 성공 판정에 쓰지 마세요."]]}],"x-service-errors":[],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}}}}