
# 초대 다시 보내기

`POST /fapi/v1/organizations/{org_id}/invitations/{invitation_id}:resend` · 환경의 로그인 호스트에서 호출

대기 중인 이메일 초대를 새 링크로 다시 보냅니다. 이전 링크는 더 이상 작동하지 않습니다. 만료 날짜는 변경되지 않습니다. 초대는 최대 5회까지 보낼 수 있으며, 발송 간격은 최소 10분입니다. 너무 빨리 보내거나 횟수를 초과하면 `Retry-After`와 함께 `429 invite_rate_limited`를 반환합니다. 대기 상태가 아니거나 이메일 전송 없이 생성된 초대는 `422 invitation_invalid`를 반환합니다. 링크 자체는 반환되지 않습니다.

인증된 사용자의 `__Host-idp_session` 쿠키(정확히 일치하는 `Origin` 포함) 또는 자사 앱의 프런트 API 액세스 토큰(DPoP 증명과 함께 `Authorization: DPoP <token>`; [프런트 API 액세스 토큰](/docs/api/fapi/front-api-token) 참조)이 필요합니다. 사용자는 조직의 활성 구성원이면서 `idp_members:invite` 권한을 보유해야 합니다. 구성원이 아닌 사용자는 `404 not_found`를, 권한이 없는 구성원은 `403 insufficient_permissions`를 받습니다. 특권 역할이 포함된 초대는 관리자 역할을 보유한 구성원만 다시 보낼 수 있습니다(`403 role_not_assignable`).

`@keenauth/js` 사용 시: `await keenauth.organizations.resendInvitation(orgId, invitationId)`.

## 요청

헤더:

| 헤더 | 필수 | 설명 |
| --- | --- | --- |
| `Idp-Client` | 예 | SDK 식별자. |
| `Origin` | 쿠키 사용 시 예 | `https://<sign-in host>`. |

`org_id`: 조직 식별자(`org_…`). `invitation_id`: 초대 식별자(`inv_…`).

본문 없음.

## 응답

[초대](/docs/api/fapi/organizations/invitations/create)와 `ETag: "<version>"`를 포함한 `200 OK`를 반환합니다. `send_count`와 `last_sent_at`은 이번 발송을 반영합니다.

## 오류

| 상태 | 코드 | 발생 조건 |
| --- | --- | --- |
| 401 | `unauthenticated` | 유효한 세션 쿠키 또는 토큰이 없습니다. |
| 403 | `insufficient_permissions` | 사용자에게 조직의 `idp_members:invite` 권한이 없습니다. |
| 403 | `role_not_assignable` | 초대에 특권 역할이 포함되어 있으며 사용자가 관리자 역할을 보유하지 않았습니다. |
| 403 | `origin_not_allowed` | `Origin`이 일치하지 않습니다. |
| 404 | `not_found` | 해당 사용자에게 조직 또는 초대가 없습니다. 알 수 없거나, 형식이 잘못되었거나, 다른 사용자의 식별자도 같은 응답을 받습니다. |
| 409 | `organization_disabled` | 조직이 비활성화되었거나 삭제 대기 중입니다(`organization_pending_deletion`). |
| 422 | `invitation_invalid` | 초대가 대기 상태가 아니거나 이메일 전송을 위해 생성되지 않았습니다. |
| 429 | `invite_rate_limited` | 이미 5회 보냈거나 마지막 발송 후 10분이 지나지 않았습니다. `Retry-After` 이후 다시 시도하십시오. |
| 501 | `not_implemented` | 이 배포에서는 이메일 전송을 사용할 수 없습니다. |
| 503 | `service_unavailable` | 일시적으로 사용할 수 없습니다. `Retry-After` 이후 다시 시도하십시오. |

## 예제

```bash
curl -X POST "https://example.keenauth.app/fapi/v1/organizations/org_01jbz6x8kq3m2n4p5r6s7t8v9a/invitations/inv_01jbz6x8kq3m2n4p5r6s7t8v9d:resend" \
  -H "Idp-Client: my-app/1.0.0 (node/22.0.0)" \
  -H "Origin: https://example.keenauth.app" \
  -b cookies.txt
```

```json
{
  "id": "inv_01jbz6x8kq3m2n4p5r6s7t8v9d",
  "email": "new.member@example.com",
  "role_ids": ["rol_01jbz6x8kq3m2n4p5r6s7t8v9w"],
  "delivery": "email",
  "delivery_status": "queued",
  "status": "pending",
  "send_count": 2,
  "last_sent_at": "2026-11-03T10:30:00Z",
  "expires_at": "2026-11-10T10:00:00Z",
  "accepted_user_id": null,
  "accepted_at": null,
  "revoked_at": null,
  "created_at": "2026-11-03T10:00:00Z",
  "updated_at": "2026-11-03T10:30:00Z",
  "version": 2
}
```

## 개인정보

이 엔드포인트는 개인정보(조직 구성원 자격과 초대)를 다룹니다. [KeenAuth API의 개인정보](/docs/policies/personal-data)에서 저장되는 항목, 보관 기간, 삭제 방법을 설명합니다. 어떤 필드에도 특수 범주의 개인정보(건강, 생체 정보, 종교, 정치적 견해, 성적 지향)를 보내지 마십시오.
