본문 바로가기
개발가이드진위 확인개인정보 마스킹(주민등록번호)

개인정보 마스킹(주민등록번호) API

명세 내보내기
OpenAPI 3.0.3Postman 컬렉션Markdown

이미지파일에서 주민등록번호를 인식하여 가립니다.

POSThttps://apick.app/rest/hide_rrn
인증
Bearer 키
요청 형식
form-data
응답
JSON · 파일
경로
1개

왜 개인정보 마스킹(주민등록번호)인가

서류 사진 속 주민번호, 저장 전에 자동으로 가립니다

고객이 올린 서류 이미지에 주민등록번호가 그대로 남아 있으면 유출 한 번에 과징금과 신뢰를 함께 잃습니다. 이미지만 보내면 번호를 찾아 가린 사본을 돌려줘 원본 노출 걱정을 끝냅니다.

도입 효과

  • 직원이 일일이 가리던 수작업 제거
  • 개인정보 유출 사고 위험을 크게 낮춤
  • 가린 이미지만 보관해 점검 대응 간편

이런 곳에서 많이 씁니다

  • 보험 청구 서류 접수 시 주민번호 가림
  • 부동산 계약서 사본 보관 전 자동 처리
  • HR 플랫폼 입사 서류 개인정보 가림
가입하고 API 키 받기API 키 하나로 바로 호출 · 실패한 요청은 과금되지 않습니다

알아둘 점

업로드 용량 제한: 50MB
첨부 이미지 합계는 최대 50MB입니다. 서버가 판독 가능한 크기로 최적화하며, 지나치게 큰 해상도는 정확도를 높이지 않고 처리시간만 늘릴 수 있습니다.
제한을 초과하면 HTTP 413과 REQUEST_TOO_LARGE 오류가 반환되며 과금되지 않습니다.

제공 정보

주민등록번호가 보이는 이미지 하나를 보내면, 이미지에서 주민등록번호를 찾아 고른 방식(type)으로 가린 PNG 이미지를 바로 돌려줍니다. 신분증 사본·등본·계약서 사진을 보관하거나 다른 담당자에게 전달하기 전에 주민등록번호를 가릴 때 사용합니다. 가린 이미지와 함께 성명·생년월일 같은 항목 값도 필요하면 신분증 종류별 개인정보 마스킹 API(/rest/identity_document_id_card 등)를 사용하세요.

요청과 응답

API 요청
POST/rest/hide_rrn
  • Bearer 인증
  • multipart/form-data
  • 파일 응답
요청 파라미터 2개 · 필수 2
파라미터
설명
imagefile필수
주민등록번호가 들어 있는 이미지 파일 하나입니다. JPG·PNG 등 이미지만 받으며 PDF는 받지 않습니다. 50MB 이하입니다.
typestring필수
가림 처리 타입 (1: 주민등록번호 전체, 2: 뒷자리 전체, 3: 뒷자리 첫 숫자 제외, 4: 주민등록번호+주소)
예시
3
응답 필드 파일

정상 응답은 파일 본문입니다. 실패 시 JSON 오류가 올 수 있으므로 HTTP 상태와 Content-Type을 먼저 확인하세요.

입력 조건·전송 규칙
번호 숫자가 흐리거나 잘리면 가릴 위치를 찾지 못해 실패합니다. 문서 전체가 보이고 글자가 선명한 이미지를 보내세요.

사용 예시

상황별로 보내는 값과 응답에서 확인할 값을 모았습니다. 언어 탭에서 그대로 복사해 쓸 수 있습니다.

예시 1. 뒷자리 첫 숫자만 남기기

보관용 사본에서 성별 자리만 남기고 주민등록번호 뒷자리 6자리를 가립니다.

요청POST/rest/hide_rrn
curl --fail-with-body --request POST 'https://apick.app/rest/hide_rrn' \
  --header "Authorization: Bearer $APICK_API_KEY" \
  --form 'image=@./id_card.jpg' \
  --form-string 'type=3' \
  --dump-header response.headers --output result.bin
# response.headers의 Content-Type을 확인한 뒤 파일을 사용하세요.
  • 응답 Content-Type이 image/png이면 본문을 그대로 .png 파일로 저장합니다.
  • Content-Type이 JSON이면 실패이므로 data.error와 data.error_code를 확인합니다.
예시 2. 주소까지 함께 가리기

등본·계약서 사진처럼 주소도 남기면 안 되는 문서는 type=4로 주민등록번호와 주소를 함께 가립니다.

요청POST/rest/hide_rrn
curl --fail-with-body --request POST 'https://apick.app/rest/hide_rrn' \
  --header "Authorization: Bearer $APICK_API_KEY" \
  --form 'image=@./contract.jpg' \
  --form-string 'type=4' \
  --dump-header response.headers --output result.bin
# response.headers의 Content-Type을 확인한 뒤 파일을 사용하세요.
  • data.error_code가 IDENTITY_TEXT_UNREADABLE(HTTP 422)이면 번호가 선명하게 보이는 이미지로 다시 보냅니다.
  • IDENTITY_DOCUMENT_MISMATCH(HTTP 400)이면 주민등록번호가 없는 이미지입니다.
예시 3. 번호 전체 가리기

외부 공유용 이미지처럼 생년월일도 보이면 안 될 때는 type=1로 13자리 전체를 가립니다.

요청POST/rest/hide_rrn
curl --fail-with-body --request POST 'https://apick.app/rest/hide_rrn' \
  --header "Authorization: Bearer $APICK_API_KEY" \
  --form 'image=@./id_card.png' \
  --form-string 'type=1' \
  --dump-header response.headers --output result.bin
# response.headers의 Content-Type을 확인한 뒤 파일을 사용하세요.
  • data.error가 "필수 입력값이 없습니다."(HTTP 400)이면 type이 1~4인지 확인합니다.

응답 처리

HTTP 성공과 업무 결과를 구분하세요. 경로별 응답 필드와 예시는 위 요청과 응답에 함께 있습니다.

원문 응답 필드 표 보기
응답 헤더
필드
타입
설명
Content-Type
String
성공하면 image/png입니다. 실패하면 JSON이므로 이 값으로 성공 여부를 먼저 구분하세요.
Content-Disposition
String
내려받을 파일 이름입니다. 항상 attachment; filename=output.png입니다.
cost
Integer
이번 호출에서 차감된 포인트입니다. 성공 응답에만 붙습니다.
success
Integer
성공 응답이면 1입니다.
ms
Integer
요청을 받아 응답을 만들기까지 걸린 시간(밀리초)입니다.
Body
필드
타입
설명
(본문)
Binary
가림 처리된 PNG 이미지 바이너리입니다. 그대로 파일로 저장하면 됩니다. 실패하면 본문 대신 data.error가 담긴 JSON이 옵니다.

오류 코드

응답을 아래 순서로 확인하세요. 결과 유무와 과금 여부는 서로 다릅니다.

  1. HTTP 상태전송·인증·입력 오류
  2. api.successAPI 처리 여부
  3. data · result업무 결과와 오류 문구
  4. api.cost이번 요청의 과금
서비스 코드·조건

입력 오류

HTTP
data.error
원인·조치
400
필수 입력값이 없습니다.
type이 없거나 1~4가 아닙니다.
400
파일 유형이 맞지 않습니다. 이미지 형식의 파일만 허용됩니다.
이미지가 아닌 파일입니다. PDF는 이미지(JPG·PNG)로 바꿔 보내세요.
424
첨부파일이 없습니다.
image 항목에 파일 본문이 첨부되지 않았습니다. multipart/form-data로 파일을 첨부했는지 확인하세요.

오류 응답

실패 응답은 data.success: 0, api.cost: 0을 유지하며 data.error_code로 원인을 구분합니다.

HTTP / 오류 코드
설명
422
IDENTITY_TEXT_UNREADABLE
글자가 일부 가려졌거나 선명하지 않아 필요한 정보를 정확히 인식할 수 없습니다. 문서 전체와 글자가 선명하게 보이는 이미지를 업로드해 주세요.
400
IDENTITY_DOCUMENT_MISMATCH
주민등록번호가 포함된 올바른 문서 이미지를 업로드해 주세요.
424
IDENTITY_PROCESSING_FAILED
이미지 처리 중 오류가 발생했습니다. 잠시 후 다시 시도해 주세요.
인증·포인트 오류 result.error 문구
코드
HTTP
의미·조치
유효하지 않은 API키 입니다.
401
Authorization: Bearer 헤더의 인증키를 확인하세요.
허용되지 않은 IP주소 입니다.
401
마이페이지의 허용 IP 설정과 요청 서버 IP를 확인하세요.
비활성화된 계정입니다.
401
계정 이용 상태를 고객지원으로 문의하세요.
사용 가능한 포인트이 부족합니다.
200
HTTP 200이어도 result.error가 있으면 실패입니다. 포인트를 충전한 뒤 다시 요청하세요. 이 응답은 과금되지 않습니다.
인증 정보를 확인할 수 없습니다.
424
일시적인 확인 실패입니다. 잠시 후 다시 시도하세요.
폼 입력 오류 error.code
코드
HTTP
의미·조치
FORM_DATA_INVALID
400
필드 이름·값의 타입·배열 인덱스를 확인하세요. 인덱스는 0부터 연속으로 사용합니다.
FORM_DATA_FIELD_CONFLICT
400
같은 값과 중첩 경로를 동시에 지정하지 마세요.
MULTIPART_LIMIT_OR_PARSE_ERROR
400·413
boundary·파일 크기·필드 개수를 확인하세요. 서비스별 제한이 우선 적용됩니다.

요금·이용 조건

기본 요금기본 단가 20P · 건당

실제 차감 금액은 응답의 api.cost로 확인하세요. 상세 요금은 요금정책에서 볼 수 있습니다.

연동 팁

  • 요청 예제의 오류 처리 포함 모드는 시간 제한과 업무 실패 판정을 함께 보여줍니다.
  • 인증키는 서버 환경변수에 두고 브라우저·앱에 넣지 마세요.
  • HTTP 성공과 업무 결과를 구분하고, 실패 응답의 오류 문구를 그대로 기록하세요.
추가 예제·서비스별 연동 안내

결과 예시

[이미지] 개인정보 마스킹(주민등록번호) 결과 예시
응답 예시

(성공) Content-Type: image/png 인 PNG 바이너리
            

호출 예시

같은 요청을 JavaScript와 Python으로 옮긴 예시입니다. 키는 환경변수 APICK_API_KEY 에서 읽습니다.

JavaScript 예시
Python 예시

개발가이드 검색

API 이름·경로·파라미터·오류 코드로 찾을 수 있습니다.

표시 가격은 기본 단가입니다. 상세 과금 조건은 각 가이드에서 확인하세요.