> For the complete documentation index, see [llms.txt](https://api-kit.prix.im/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://api-kit.prix.im/signature-template/preview-url.md).

# 전자서명 템플릿 미리보기 페이지 API

전자서명 템플릿 미리보기 페이지를 제공합니다.

API 응답으로 미리보기 페이지의 URL 을 내려주며, 해당 URL에 쿼리파라미터를 추가하여 사전입력값이 포함된 미리보기를 확인할 수도 있습니다.

* 미리보기 페이지에서는 계약 문서와 사전입력값이 적용된 상태를 확인할 수 있습니다.
* URL에 쿼리 파라미터를 추가하여 사전입력값을 포함시킬 수 있습니다.

<br>

## `GET` kit-api/v1/signature-templates/\[key]/preview-url

Method: GET\
Endpoint: kit-api/v1/signature-templates/\[key]/preview-url\
Param: key는 전자서명 템플릿의 id(숫자) 혹은 slug(문자)를 의미

<br>

## Example

```
...kit-api/v1/signature-templates/ABC1234/preview-url?input=%7B%22324%22%3A%22value1%22%2C%22325%22%3A%22value2%22%7D
```

<br>

## Request Query

| Key        | Description                                                                                                       | Required             |
| ---------- | ----------------------------------------------------------------------------------------------------------------- | -------------------- |
| mode       | 미리보기 화면의 사전입력값 부분에 라벨을 기준으로 표시할지 실제 등록한 값을 기준으로 표시할지 설정하는 옵션 (LABEL, CONTENTS)                                    | no (default LABEL)   |
| permission | iframe 등 미리보기 화면을 서비스 내부에 포함하고 싶은 경우에 대한 권한 설정 (PUBLIC, PRIVATE)                                                  | no (default PRIVATE) |
| input      | 미리보기 페이지에 사전입력값을 포함하고 보여주고 싶은 경우, JSON 형태의 사전입력값을 문자열로 변경한 후 encode하여 사용 가능. key는 템플릿에 등록된 object의 id 또는 slug만 허용 | no                   |
| inputType  | input 필드 사용 시 key의 타입을 설정 ('id', 'slug')                                                                          | no (default 'id')    |

```json
// inputType이 'id'인 경우
{
  // id: 324, id: 325의 입력값의 내용이 채워진 상태로 미리보기 페이지를 조회하는 경우
  // json을 string으로 변환 후, encode하여 사용
  "324": "value1",
  "325": "value2",
  "326": "true" // 체크박스 타입의 사전입력값은 'true' 값을 이용
}
// inputType이 'slug'인 경우
{
  // slug: slug-324, slug: slug-325의 입력값의 내용이 채워진 상태로 미리보기 페이지를 조회하는 경우
  // json을 string으로 변환 후, encode하여 사용
  "slug-324": "value1",
  "slug-325": "value2",
  "slug-326": "true" // 체크박스 타입의 사전입력값은 'true' 값을 이용
}
```

<br>

## Response

```json
{
  "ok": true, // api 성공 여부
  "data": {
    "url": "https://prix.im/..." // 전자서명 템플릿 미리보기 페이지로 이동되는 주소
  }
}
```

<br>

| Status Code | Error Code                                 | Description                                                                   |
| ----------- | ------------------------------------------ | ----------------------------------------------------------------------------- |
| 400         | INVALID\_JSON\_PARSING                     | input 필드의 JSON 파싱 과정에서 에러가 발생한 경우                                             |
| 400         | SIGNATURE\_TEMPLATE\_OBJECT\_NOT\_FOUND    | input 필드에 전달한 key 중 해당 템플릿에 등록된 사전입력값 object의 id 또는 slug와 일치하지 않는 key가 포함된 경우 |
| 400         | CONFIGURATION\_CONTRACT\_PREVIEW\_DISABLED | permission이 PUBLIC인 경우, 해당 계정의 미리보기가 허용되지 않은 경우                               |
| 404         | NOT\_FOUND\_SIGNATURE\_TEMPLATE            | 전자서명 템플릿이 존재하지 않는 경우                                                          |

<br>
