# 위임 인증 생성

로그인한 회원의 결제에서 문자 인증을 생략하려면 결제창을 열기 전에 가맹점 서버에서 위임 인증을 생성합니다. 위임 인증의 개념과 흐름은 [위임 인증](/delegated-authentication)을 참고하세요.

<Callout type="caution" title="가맹점 서버에서 호출하세요">
  위임 인증은 API 키로만 생성할 수 있습니다. 브라우저에서 직접 호출하지 마세요.
</Callout>

## 요청 값

```http
POST https://api.point3.io/authn/v2/delegation
```

| 필드 | 필수 | 설명 |
| --- | --- | --- |
| `payer_id` | 필수 | 로그인한 회원의 `payerId`. `payer:`로 시작하는 128자 이하의 값 |

```json title="기본 요청"
{
  "payer_id": "payer:00000000000000000000000000"
}
```

`payer_id`는 로그인 세션으로 확인한 회원의 회원 정보에서 꺼내세요. 가맹점은 API 키로 식별하므로 요청에 가맹점 정보를 넣지 않습니다. `payer_id` 외의 필드를 보내면 `400`으로 거절됩니다.

결제 세션 생성과의 순서는 상관없습니다. 구매자가 결제 버튼을 누를 때 결제 세션과 함께 생성하세요.

## 응답 처리

```json title="응답"
{
  "delegation_id": "dlg_3q2-7wE9bXk1Lr0Zt8pVnYc4uJmHs6aQfGdOiKe5NBw",
  "expires_in": 300,
  "authorization_url": "https://auth.point3.io/delegated?delegation_id=dlg_3q2-7wE9bXk1Lr0Zt8pVnYc4uJmHs6aQfGdOiKe5NBw"
}
```

1. 응답의 `authorization_url`을 `sessionId`와 함께 가맹점 화면에 전달합니다. 값을 바꾸지 말고 그대로 전달하세요.
2. 위임 인증은 `expires_in`초(5분) 동안 유효하고 한 번만 사용할 수 있습니다. 결제를 다시 시도할 때에는 새로 생성하세요.

## 오류 처리

위임 인증을 생성하지 못해도 결제는 진행할 수 있습니다. 오류가 발생하면 `authorization_url` 없이 결제창을 열고, 구매자가 문자 인증으로 결제하게 하세요.

| HTTP | `result.code` | 의미 | 처리 |
| --- | --- | --- | --- |
| `400` | `HTTP_ERROR` | 요청 형식 오류 | `payer_id` 형식과 추가 필드 확인 |
| `401` | `HTTP_ERROR` | 인증 실패 | `Authorization` 헤더와 API 키 확인 |
| `404` | `PAYER_NOT_FOUND` | 구매자를 찾을 수 없음 | 위임 인증 없이 결제창 열기 |
| `503` | | 일시적 장애 | 위임 인증 없이 결제창 열기 |

`404`는 회원 정보에 저장된 `payerId`를 지금은 사용할 수 없다는 뜻입니다. 구매자가 탈퇴했거나, 다른 가맹점에서 받은 값을 저장한 경우 등이 해당합니다. 이때는 위임 인증 없이 결제창을 열고, 결제가 끝나면 새로 받은 `payerId`를 회원 정보에 저장하세요. 다음 결제부터는 이 값으로 다시 위임 인증을 사용할 수 있습니다.

```json title="오류 응답"
{
  "status": 404,
  "timestamp": "2026-10-26T00:00:00.000Z",
  "result": {
    "code": "PAYER_NOT_FOUND",
    "message": "Payer not found in identity plane"
  }
}
```

전체 필드는 [위임 인증 API 레퍼런스](/api-reference/delegated)에서 확인하세요.

위임 인증을 생성했으면 `authorization_url`을 가맹점 화면에 전달해 결제창을 열도록 해야 합니다. [JavaScript SDK 위임 인증](/sdk-delegated)을 참고하세요.
