Catchsecu Open API 활용 가이드

  • Catchsecu Open API 는 캐치시큐 서비스의 기능을 외부 개발자가 쉽게 이용할 수 있게 API 서비스 형태로 제공하고자 개발되었습니다.

"API"란 Application Programming Interface의 약자로서 이용자의 애플리케이션 등에서 회사가 제공하는 기술을 사용하기 위한 인터페이스를 의미합니다.

"API서비스"는 회사가 제공하는 기술을 이용자에게 제공하는 것을 지칭합니다.

  • Catchsecu Open API는 아래의 기능들을 제공합니다.

    • 로그인 인증 토큰(access token) 발급/갱신

    • 캐치폼 목록/항목 조회

    • 캐치폼 항목을 활용한 답변 저장

    • 캐치폼으로 수집된 답변목록 조회 / 답변 상세 조회

    • 캐치폼에 연결된 동의서 url 확인

  • Catchsecu Open API의 캐치폼 관련 기능은
    Catchsecu에 생성한 캐치폼(Catchform) 을 기반으로 동작하므로,
    API 사용을 위해 캐치폼이 생성되어야 합니다.

  • Web Browser 로 Open API 서버에 직접 요청을 보내는 경우 CORS 정책으로 인해 접근 오류가 발생할 수 있습니다.

    • 서버와 서버 간 통신을 권장합니다.

  • 최종수정일 : 2022년 9월 19일

  • 이 문서의 내용은 언제든지 변경될 수 있습니다.

1. 상태 코드

API의 응답으로 출력되는 주요 상태코드는 아래와 같습니다.

상태 코드(Status code) 용례(Usage)

200 OK

요청을 성공적으로 처리함.

201 CREATED

요청한 리소스가 성공적으로 생성됨.

400 BAD_REQUEST

잘못된 요청을 보낸 경우.

401 UNAUTHORIZED

요구되는 인증 정보가 없어 접근이 거부된 경우.

403 FORBIDDEN

권한이 없는 리소스에 접근한 경우.

404 NOT_FOUND

요청한 리소스가 없음.

405 METHOD_NOT_ALLOWED

잘못된 HTTP 메소드로 요청한 경우.

500 INTERNAL_SERVER_ERROR

서버에 오류가 발생하여 요청을 수행할 수 없는 경우.

2. 오류 코드

API 동작 과정에서 오류가 발생하는 경우 아래와 같은 형식으로 오류 메시지가 출력됩니다.

{
"success": false,
"response": null,
"error":
    {
      "errorCode":
      {
        "status": 500,
        "error": "Internal Server Error"
      },
      "message": "${상세 에러 메시지}"
    }
}

2.1. 4xx Status

Status

Error

용례

400

Bad Request

잘못된 요청

401

Unauthorized

권한이 없는 요청

403

Forbidden

허용되지 않는 요청

403

License Data Not Found

라이센스를 확인할 수 없음

403

Invalid Token

유효하지 않은 (인증) 토큰

404

Not Found

요청한 내용을 찾을 수 없음

405

Method Not Allowed

설정된 HTTP Method로 처리 불가

411

User already exist

이미 사용자가 존재함

415

Unsupported Media Type

지원되지 않는 Media 형식

498

Exceptional Request

예외적인 요청이 전송된 경우

2.2. 5xx Status

Status Error 용례

500

Datetime Parsing Error

날짜/시간 변환 오류

500

Processing (parsing, generating) JSON content Error

JSON 데이터 처리 오류

500

Internal Server Error

서버 내부 오류

3. Authorization

  • Catchsecu Open API에 인증 토큰을 요청하기 위해서는
    catchsecu 의 개인정보 보호 책임자 계정에 접속, 시크릿 키를 발급 받아야 합니다.

3.1. 시크릿 키 발급 (최초 발급)

3.1.1. 설정 > API 관리 > API Secret Key 관리 접근

  • 개인정보 책임자 계정으로 catchsecu를 로그인하시면 설정 메뉴 내 "API 관리" 탭으로 이동합니다.

  • API 관리 내 "API Secret Key 관리" 섹션을 확인하면 최초 상태에서는 "신규 발급" 버튼을 확인할 수 있습니다.

시크릿키 발급 step1

3.1.2. 이메일 인증 (신규 발급)

  • 발급 버튼을 누르면 로그인 한 계정의 이메일로 인증코드를 전송합니다.

  • 전송된 인증코드를 모달창에 입력하여 인증 절차를 진행합니다. (복사 - 붙여넣기 가능)

  • 전송된 인증코드는 30분까지 유효합니다.

시크릿키 발급 step2

3.1.3. Secret Key 발급 완료

  • 시크릿키는 최초 발급 완료 시에만 Key 전문을 확인하고 복사할 수 있습니다.

    • "Secret Key 복사하기" 버튼을 클릭하면 Key 전문을 복사할 수 있습니다.

  • 해당 모달창을 닫은 후에는 Secret Key를 재조회 할 수 없습니다.

시크릿키 발급 step3

3.2. 시크릿 키 갱신 (재발급)

3.2.1. 설정 > API 관리 > API Secret Key 관리 접근

  • Secret Key 발급 이후에 해당 메뉴로 접근하면 아래의 정보를 확인할 수 있습니다.

    • key가 발급된 일시

    • 발급된 키는 마스킹되고, 발급된 키의 끝3자리는 그대로 확인할 수 있습니다.

  • "재발급" 버튼을 클릭하여 Key가 새로 발급되면 이전에 발급된 Key로는 인증 토큰을 획득할 수 없습니다.

시크릿키 재발급 step1

3.2.2. 이메일 인증 (재발급)

  • 발급 버튼을 누르면 로그인 한 계정의 이메일로 인증코드를 전송합니다.

  • 절차는 이메일 인증 (신규 발급) 과 동일합니다.

시크릿키 재발급 step2

3.2.3. Secret Key 발급 완료 (재발급)

  • 최초 발급과 동일하게 완료된 시점에서 Key 전문을 확인하고 복사할 수 있습니다.

  • 해당 모달창을 닫은 후에는 Secret Key를 재조회 할 수 없습니다.

  • 기존에 발급했던 Key와 연결된 서비스에 영향이 있을 수 있으니 주의를 요합니다.

시크릿키 재발급 step3

3.3. 로그인을 통한 인증 토큰 발급

  • 인증 토큰(Access token)은 API를 통한 기능 요청 시 권한을 증명하기 위해 필요합니다.

  • 로그인을 진행하면 인증 토큰(Access token)과 갱신 토큰(Refresh token)을 발급받게 되며
    API에 기능 요청 시 아래와 같이 설정하여 header에 설정하여야 합니다.

Authorization: Bearer ${AccessToken}
  • 인증 토큰은 30분의 유효기간을 가지며 유효기간이 지나면 만료처리 되어 권한을 확인할 수 없습니다.

  • 갱신 토큰은 1주일의 유효기간을 가지며 유효기간동안 인증 토큰을 갱신 할 수 있습니다.

3.3.1. HTTP request

POST /api/v1/auth/login HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 95
Host: openapi.catchsecu.com

{
  "credential" : {
    "email" : "test@test.com",
    "passCode" : "${your-Secret-Key}"
  }
}

3.3.2. request fields

Path Type Description

credential

Object

로그인 처리를 위한 이메일 및 시크릿키 입력

credential.email

String

사용자 이메일

credential.passCode

String

사용자 시크릿키

3.3.3. HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 632

{
  "success" : true,
  "response" : {
    "allowedTo" : "test",
    "accessToken" : "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOjE2NjM1NTU4OTMyMzUsImlzcyI6InRlc3RJc3N1ZXIiLCJpZCI6MSwiZXhwIjoxNjYzNTU2ODkzLCJpYXQiOjE2NjM1NTU4OTMsImVtYWlsIjoidGVzdEB0ZXN0LmNvbSJ9.KCLO_rRL8WuFDqiwh1ZmXC-1SaK4tLJNdByPYG5Q_JzgiyQDXNPjRoI4lmpZ2mmEF-fiSvsMOwA8ucyQRgZm-Q",
    "refreshToken" : "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOjE2NjM1NTU4OTMyOTcsImlzcyI6InRlc3RJc3N1ZXIiLCJpZCI6MSwiZXhwIjoxNjYzNTYwODkzLCJpYXQiOjE2NjM1NTU4OTN9.KAjt-krvMmmK4eYY1oQJ9WCDT017whKtw6e1Srp4Z4I4a3FpSjRMSV7m_A2jALpemQdTftypKENtdz0EAXorYw"
  },
  "error" : null
}

3.3.4. response fields

Path Type Description

success

Boolean

요청 처리 결과

response

Object

응답 값

error

Object

(오류 발생 시) 오류 내용

response.allowedTo

String

토큰 사용자 (허용된 사용자)

response.accessToken

String

access token (API 요청 시 사용)

response.refreshToken

String

refresh token (access token 갱신 시 사용)

3.4. 인증 토큰 갱신

  • 인증 토큰 갱신은 로그인 시 설정했던 credential 정보와 함께
    이전에 발급 받았던 인증 토큰(Access token)과 갱신 토큰(Refresh token)을 함께 설정하여야 합니다.

  • 이전에 발급 받았던 인증 토큰(Access token)과 갱신 토큰(Refresh token)이 설정되지 않은 경우 갱신이 처리되지 않습니다.
    이 경우 다시 로그인을 진행하여 새로운 인증 토큰(Access token)과 갱신 토큰(Refresh token)을 발급 받을 수 있습니다.

3.4.1. HTTP request

POST /api/v1/auth/refresh HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 636
Host: openapi.catchsecu.com

{
  "credential" : {
    "email" : "test@test.com",
    "passCode" : "${your-Secret-Key}"
  },
  "accessToken" : "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOjE2NjM1NTU4OTM1MDMsImlzcyI6InRlc3RJc3N1ZXIiLCJpZCI6MSwiZXhwIjoxNjYzNTU2ODkzLCJpYXQiOjE2NjM1NTU4OTMsImVtYWlsIjoidGVzdEB0ZXN0LmNvbSJ9.0fUWHqOpYCG0sL_ARoDJJ_TG1g1atwZm0gJt8THGvpnGcKenrrXoO7sI_tV28lhHdCMS8WqghCs0Vfb5oJNFaQ",
  "refreshToken" : "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOjE2NjM1NTU4OTM1MDQsImlzcyI6InRlc3RJc3N1ZXIiLCJpZCI6MSwiZXhwIjoxNjYzNTYwODkzLCJpYXQiOjE2NjM1NTU4OTN9.uNwquTcFNDdO7pG_RsHoZHvuxNF0d8n3OJ1VrIHW0oWa6TjUJ_AKwKbG9lvu-YN5rg3wuwRFV_Pe6sjiijYBjw"
}

3.4.2. request fields

Path Type Description

credential

Object

로그인 처리를 위한 이메일 및 시크릿키 입력

accessToken

String

access token

refreshToken

String

refresh token

credential.email

String

사용자 이메일

credential.passCode

String

사용자 시크릿키

3.4.3. HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 632

{
  "success" : true,
  "response" : {
    "allowedTo" : "test",
    "accessToken" : "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOjE2NjM1NTU4OTM1MDMsImlzcyI6InRlc3RJc3N1ZXIiLCJpZCI6MSwiZXhwIjoxNjYzNTU2ODkzLCJpYXQiOjE2NjM1NTU4OTMsImVtYWlsIjoidGVzdEB0ZXN0LmNvbSJ9.0fUWHqOpYCG0sL_ARoDJJ_TG1g1atwZm0gJt8THGvpnGcKenrrXoO7sI_tV28lhHdCMS8WqghCs0Vfb5oJNFaQ",
    "refreshToken" : "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOjE2NjM1NTU4OTM1MDQsImlzcyI6InRlc3RJc3N1ZXIiLCJpZCI6MSwiZXhwIjoxNjYzNTYwODkzLCJpYXQiOjE2NjM1NTU4OTN9.uNwquTcFNDdO7pG_RsHoZHvuxNF0d8n3OJ1VrIHW0oWa6TjUJ_AKwKbG9lvu-YN5rg3wuwRFV_Pe6sjiijYBjw"
  },
  "error" : null
}

3.4.4. response fields

Path Type Description

success

Boolean

요청 처리 결과

response

Object

응답 값

error

Object

(오류 발생 시) 오류 내용

response.allowedTo

String

토큰 사용자 (허용된 사용자)

response.accessToken

String

access token (API 요청 시 사용)

response.refreshToken

String

refresh token (access token 갱신 시 사용)

4. Catchform (캐치폼)

4.1. 캐치폼 목록 조회

  • catchsecu 에 생성한 캐치폼의 목록을 확인할 수 있습니다.

  • 목록 내 formId 는 캐치폼을 특정할 시 식별자로 사용됩니다.

  • directUrl 은 캐치폼의 답변 입력 페이지의 URL 입니다.

4.1.1. HTTP request

GET /api/v1/catchform/forms HTTP/1.1
Authorization: Bearer ${AccessToken}
Host: openapi.catchsecu.com

4.1.2. request headers

Name Description

Authorization

Open API 접근을 위해 발급받은 access token

4.1.3. HTTP response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 258

{
  "success" : true,
  "response" : [ {
    "serviceName" : "test-service",
    "formId" : 1,
    "subject" : "test-form",
    "createAt" : "2022-09-19T11:52:35.439178",
    "directUrl" : "${form-direct-url}",
    "activate" : true
  } ],
  "error" : null
}

4.1.4. response fields

Path Type Description

success

Boolean

요청 처리 결과

response

Array

응답 값

error

Object

(오류 발생 시) 오류 내용

response[].serviceName

String

캐치폼이 속한 서비스 이름

response[].formId

Number

캐치폼 ID

response[].subject

String

캐치폼 제목

response[].createAt

String

캐치폼 생성일시

response[].directUrl

String

생성된 캐치폼 접근 링크 (답변을 입력받을 수 있는 페이지로 이동할 수 있는 링크입니다.)

response[].activate

Boolean

캐치폼 활성화 여부 (비활성화된 경우, 캐치폼으로 답변을 수집할 수 없습니다.)

4.2. 캐치폼 항목 조회

  • 캐치폼 목록에서 확인한 캐치폼의 formId 를 통해 캐치폼 구성 항목을 조회할 수 있습니다.

  • formInputName 은 캐치폼 답변 저장 시 key 값으로 사용됩니다.

  • agreementListagreeToken 은 동의서 동의여부 저장 시 key 값으로 사용됩니다.

1-AGREEMENT-${agreeToken}

4.2.1. HTTP request

POST /api/v1/catchform/forms/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer ${AccessToken}
Host: openapi.catchsecu.com

4.2.2. request headers

Name Description

Content-Type

요청 형식 : JSON (application/json)

Authorization

Open API 접근을 위해 발급받은 access token

4.2.3. request path-parameters

Table 1. /api/v1/catchform/forms/{formId}
Parameter Description

formId

캐치폼 목록에서 확인한 캐치폼 ID

4.2.4. HTTP response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 1522

{
  "success" : true,
  "response" : {
    "formId" : 1,
    "subject" : "test-form",
    "createAt" : "2022-09-19T11:52:35.750",
    "formQuestionList" : [ {
      "formInputName" : "1-TEXTBOX-1",
      "questionName" : "이름(필수)",
      "questionElementType" : "MM",
      "inputRegularExpression" : "^.{100}$",
      "questionItems" : null
    }, {
      "formInputName" : "1-TEXTBOX-2",
      "questionName" : "이메일(필수)",
      "questionElementType" : "MM",
      "inputRegularExpression" : "^.{100}$",
      "questionItems" : null
    }, {
      "formInputName" : "1-CHECKBOX-3",
      "questionName" : "성별(선택)",
      "questionElementType" : "MS",
      "inputRegularExpression" : "",
      "questionItems" : [ {
        "itemName" : "남",
        "itemValue" : "0"
      }, {
        "itemName" : "여",
        "itemValue" : "1"
      }, {
        "itemName" : "기타",
        "itemValue" : "3"
      } ]
    }, {
      "formInputName" : "1-FILE-4",
      "questionName" : "사진(선택)",
      "questionElementType" : "MS",
      "inputRegularExpression" : "파일형식 : jp(e)g, png, docx, pdf / 크기제한 (전체기준) : 답변을 구성하는 첨부파일 전체의 크기가 100MB 가 넘지 않도록 주의.",
      "questionItems" : null
    } ],
    "agreementList" : [ {
      "agreementTitle" : "개인정보 수집·이용 동의서",
      "agreeToken" : "${agreement-token}",
      "agreementElementType" : "MM",
      "agreeYn" : null
    } ]
  },
  "error" : null
}

4.2.5. response fields

Path Type Description

success

Boolean

요청 처리 결과

response

Object

응답 값

error

Object

(오류 발생 시) 오류 내용

response.formId

Number

캐치폼 ID

response.subject

String

캐치폼 제목

response.createAt

String

캐치폼 생성일시

response.formQuestionList

Array

캐치폼 질의를 구성하는 component 정보

response.agreementList

Array

캐치폼의 개인정보 수집 및 활용 목적에 따라 생성된 동의서 정보

response.formQuestionList[].formInputName

String

component 이름 ('캐치폼 ID-component 유형-component 배치 순서' 로 구성

response.formQuestionList[].questionName

String

component의 질의 내용

response.formQuestionList[].questionElementType

String

component의 수집항목 구분 (MM : 필수, MS : 선택)

response.formQuestionList[].inputRegularExpression

String

component의 제약조건 ([정규표현식])

response.formQuestionList[].questionItems

Array

(체크박스, 라디오버튼 한정) 질의 구성 요소

response.agreementList[].agreementTitle

String

동의서 명칭

response.agreementList[].agreeToken

String

동의서 토큰 (외부 링크용)

response.agreementList[].agreementElementType

String

동의서의 필수/선택 여부 (수집항목 구분에 따라 설정됩니다.)

4.3. 캐치폼 답변 저장

  • 캐치폼을 생성 시 구성한 질의 항목에 답변을 입력할 수 있습니다.

  • 입력을 위한 key로는 formInputNameagreementListagreeToken 값으로 구성한 1-AGREEMENT-${agreeToken} 으로 답변, 동의여부 저장의 key 값으로 구성하여야 합니다.

  • 답변 전송 시 content-type은 multipart/form-data 로 설정되어야 합니다.

  • component 유형으로는 아래의 형식이 있습니다.

    • TEXTBOX(텍스트박스)

    • TEXTAREA(텍스트영역)

    • CHECKBOX(체크박스)

    • RADIO(라디오버튼)

    • FILE(첨부파일)

  • 답변 값 입력 시 유의사항

    • TEXTBOX 는 100자 이내의 문자열을 입력할 수 있습니다.

    • TEXTAREA 는 250자 이내의 문자열을 입력할 수 있습니다.

    • CHECKBOX, RADIO는 캐치폼 항목 조회 시 확인한 questionItems 의 value를 입력하여야 합니다.

    • FILE의 경우

      • 파일형식은 jp(e)g, png, docx, pdf 로 제한되며

      • 파일의 크기는 캐치폼 당 최대 100MB 까지 업로드가 가능합니다. (모든 파일 질의의 첨부파일 총 합)

  • 캐치폼이 비활성화 된 경우에는 답변이 수집되지 않으니 유의 바랍니다.

4.3.1. HTTP request

POST /api/v1/catchform/subject/1/answer HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Authorization: Bearer ${AccessToken}
Host: openapi.catchsecu.com

--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=1-TEXTBOX-1

test answer1
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=1-TEXTBOX-2

test answer2
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=1-AGREEMENT-${agreement-token}

Y
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=1-FILE-3

testFile
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--

4.3.2. request headers

Name Description

Content-Type

요청 형식 : multipart/form-data

Authorization

Open API 접근을 위해 발급받은 access token

4.3.3. request path-parameters

Table 2. /api/v1/catchform/subject/{formId}/answer
Parameter Description

formId

캐치폼 목록에서 확인한 캐치폼 ID

4.3.4. request parameters

Parameter Description

1-TEXTBOX-1

1번 ID의 캐치폼 내 텍스트박스 입력 (첫번째 입력 영역)

1-TEXTBOX-2

1번 ID의 캐치폼 내 텍스트박스 입력 (두번째 입력 영역)

1-FILE-3

1번 ID의 캐치폼 내 파일 입력 (세번째 입력 영역)

1-AGREEMENT-${agreement-token}

1번 ID의 캐치폼 내 ${agreement-token} 동의서 동의 여부 (Y/N)

4.3.5. HTTP response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 189

{
  "success" : true,
  "response" : {
    "formId" : 1,
    "answerAt" : "2022-09-19T11:52:35.96823",
    "customerId" : "${customer-id}",
    "message" : "created"
  },
  "error" : null
}

4.3.6. response fields

Path Type Description

success

Boolean

요청 처리 결과

response

Object

응답 값

error

Object

(오류 발생 시) 오류 내용

response.formId

Number

답변을 수집한 캐치폼 ID

response.answerAt

String

답변이 입력된 시점

response.customerId

String

답변한 사람을 식별하기 위한 임의 문자

response.message

String

처리 결과에 따른 메시지 (성공 시 : created / 실패 시 : 실패 사유 메시지가 입력됨

4.4. 캐치폼 답변 목록 조회

  • 캐치폼을 통해 입력된 답변 목록을 확인할 수 있습니다.

  • 답변 목록에서는 component 배치 순서를 기준으로 세가지 의 답변만 확인하실 수 있습니다.

  • 질의-답변으로 구성되어 출력되며, 답변 값은 마스킹 처리되어 출력됩니다.

  • customerId 는 답변자를 식별하기 위한 값으로 사용됩니다.

4.4.1. HTTP request

POST /api/v1/catchform/subject/1/answers HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer ${AccessToken}
Host: openapi.catchsecu.com

4.4.2. request headers

Name Description

Content-Type

요청 형식 : JSON (application/json)

Authorization

Open API 접근을 위해 발급받은 access token

4.4.3. request path-parameters

Table 3. /api/v1/catchform/subject/{formId}/answers
Parameter Description

formId

캐치폼 목록에서 확인한 캐치폼 ID

4.4.4. HTTP response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 697

{
  "success" : true,
  "response" : [ {
    "customerId" : "${customerId}",
    "agreedAt" : "2022-09-19T11:52:35.878833",
    "answers" : {
      "col2" : {
        "question" : "이메일(필수)",
        "value" : "c***********************m"
      },
      "col1" : {
        "question" : "이름(필수)",
        "value" : "t****r"
      }
    }
  }, {
    "customerId" : "${customerId}",
    "agreedAt" : "2022-09-19T11:52:35.87902",
    "answers" : {
      "col2" : {
        "question" : "이메일(필수)",
        "value" : "a***********************m"
      },
      "col1" : {
        "question" : "이름(필수)",
        "value" : "t*****2"
      }
    }
  } ],
  "error" : null
}

4.4.5. response fields

Path Type Description

success

Boolean

요청 처리 결과

response

Array

응답 값

error

Object

(오류 발생 시) 오류 내용

response[].customerId

String

정보주체(답변자) 식별값

response[].agreedAt

String

정보주체의 답변일시

response[].answers

Object

정보주체가 답변한 내용 (질의-답변으로 구성되어 있습니다.) (단, 내용은 마스킹처리되어 있습니다.)

4.5. 캐치폼 답변 상세조회

  • customerId 를 식별자로 특정 답변에 대한 상세 내용을 확인할 수 있습니다.

    • 전체 질의항목에 대한 입력 값 확인 가능

    • 답변 값이 복호화되어 조회됩니다.

4.5.1. HTTP request

POST /api/v1/catchform/subject/answers/$%7BcustomerId%7D HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer ${AccessToken}
Host: openapi.catchsecu.com

4.5.2. request headers

Name Description

Content-Type

요청 형식 : JSON (application/json)

Authorization

Open API 접근을 위해 발급받은 access token

4.5.3. request path-parameters

Table 4. /api/v1/catchform/subject/answers/{customerId}
Parameter Description

customerId

캐치폼 답변 목록에서 확인한 답변자 ID (customerId)

4.5.4. HTTP response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 377

{
  "success" : true,
  "response" : {
    "customerId" : "${customerId}",
    "agreedAt" : "2022-09-19T11:52:36.047076",
    "answers" : {
      "col2" : {
        "question" : "이메일(필수)",
        "value" : "catchsecu-user@catchsecu.com"
      },
      "col1" : {
        "question" : "이름(필수)",
        "value" : "tester"
      }
    }
  },
  "error" : null
}

4.5.5. response fields

Path Type Description

success

Boolean

요청 처리 결과

response

Object

응답 값

error

Object

(오류 발생 시) 오류 내용

response.customerId

String

정보주체(답변자) 식별값

response.agreedAt

String

정보주체의 답변일시

response.answers

Object

정보주체가 답변한 내용 (질의-답변으로 구성되어 있습니다.) (단, 내용은 마스킹처리되어 있습니다.)

4.6. 캐치폼에 연결된 동의서 조회

  • 캐치폼에 연결된 동의서를 조회할 수 있습니다.

  • linkUrl 값은 동의서 화면의 URL 값입니다.

4.6.1. HTTP request

POST /api/v1/catchform/forms/1/agreements HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer ${AccessToken}
Host: openapi.catchsecu.com

4.6.2. request headers

Name Description

Content-Type

요청 형식 : JSON (application/json)

Authorization

Open API 접근을 위해 발급받은 access token

4.6.3. request path-parameters

Table 5. /api/v1/catchform/forms/{formId}/agreements
Parameter Description

formId

캐치폼 목록에서 확인한 캐치폼 ID

4.6.4. HTTP response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 167

{"success":true,"response":[{"agreementTitle":"개인정보 수집·이용 동의서","agreementType":"필수수집항목","linkUrl":"${aggrement-url}"}],"error":null}

4.6.5. response fields

Path Type Description

success

Boolean

요청 처리 결과

response

Array

응답 값

error

Object

(오류 발생 시) 오류 내용

response[].agreementTitle

String

동의서 명칭

response[].agreementType

String

동의서의 필수/선택 여부 (수집항목 구분에 따라 설정됩니다.)

response[].linkUrl

String

동의서 링크 (URL을 통해 자동 생성된 동의서를 확인할 수 있습니다.)