# 인증 모드

> 발신 번호를 확인하는 discover와 지정한 번호를 검증하는 match

문서: https://sendwich.kr/docs/verification-modes/

## 모드 선택

| 모드 | 확인 대상 | 사용 예 |
| --- | --- | --- |
| `discover` | 인증 문자를 보낸 번호 | 회원가입, 봇 인증 |
| `match` | 지정한 번호와 실제 발신 번호의 일치 여부 | 기존 번호 확인, 번호 변경 |

모드는 인증 창과 API 직접 연동에서 동일하게 동작합니다. 요청 필드의 조건은 [인증 생성](https://sendwich.kr/docs/api/create/)을 참고합니다.

## discover

인증 문자를 보낸 번호를 결과의 `phone`으로 반환합니다.

```json
{
  "mode": "discover",
  "client_reference": "attempt_93a7"
}
```

코드를 전달받은 다른 사람도 자신의 번호로 인증을 완료할 수 있으므로, 코드와 링크는 인증을 시작한 사용자에게만 표시합니다.

## match

`expected_phone`에 지정한 번호에서 인증 문자를 수신해야 완료됩니다. 다른 번호에서 같은 문자를 보내면 `pending` 상태를 유지합니다.

```json
{
  "mode": "match",
  "expected_phone": "010-1234-5678",
  "client_reference": "attempt_93a7"
}
```

## 계정에 번호 연결

인증 ID와 서비스의 사용자·시도를 서버에 저장하고, [조회 결과](https://sendwich.kr/docs/api/retrieve-and-cancel/) 또는 [웹훅](https://sendwich.kr/docs/webhooks/)과 대조한 뒤 번호를 연결합니다. 한 번호의 다중 계정 사용 허용 여부는 서비스에서 정합니다.
