
# 認証コードを入力する

`POST /fapi/v1/verifications/{verification_id}:attempt` · 環境のサインインホストから呼び出し

[認証コードを送信する](/docs/api/fapi/verifications/start)でユーザーが受け取った 6 桁のコードを確認します。正しいコードであればメールアドレスが確認済みとなり、そのコードは使用済みになります。応答は `204` です。誤ったコードを入力すると、そのコードの試行回数が 1 回消費されます。誤り、期限切れ、使用済み、試行回数超過のコード、不明な ID、他のユーザーの ID はいずれも同じ `422 verification_invalid` が返されます。この場合、ユーザーは新しいコードを要求する必要があります。認証済みユーザーの `__Host-idp_session` Cookie が必要です。Cookie が欠落、期限切れ、または取り消されている場合は、`401 unauthenticated` を返します。別オリジンのファーストパーティアプリは、代わりにフロント API のアクセストークン（DPoP 証明を添えた `Authorization: DPoP <token>`。[フロント API アクセストークン](/docs/api/fapi/front-api-token)を参照）を送信できます。

## リクエスト

パスパラメーター:

| パラメーター | 説明 |
| --- | --- |
| `verification_id` | 送信時の応答にある `id`。 |

ヘッダー:

| ヘッダー | 必須 | 説明 |
| --- | --- | --- |
| `Idp-Client` | はい | SDK の識別子。 |
| `Origin` | はい | 正確に `https://<サインインホスト>` である必要があります。 |
| `Content-Type` | はい | `application/json`。 |

本文:

| フィールド | 型 | 必須 | 説明 |
| --- | --- | --- | --- |
| `code` | string | はい | メールに記載された 6 桁のコード。 |

## レスポンス

`204 No Content`。メールアドレスは確認済みになります。

## エラー

| ステータス | コード | 発生条件 |
| --- | --- | --- |
| 400 | `malformed_request` | 本文が有効な JSON ではない。 |
| 400 | `unknown_field` | 本文に `code` 以外のフィールドがある。 |
| 401 | `unauthenticated` | 有効なセッション Cookie がない。 |
| 403 | `origin_not_allowed` | `Origin` が欠落しているか、不正である。 |
| 403 | `test_feature_not_in_production` | コードが固定のテスト用コード `424242` であり、環境が本番環境である。この試行は誤ったコードと同様に消費されます。 |
| 413 | `payload_too_large` | 本文が大きすぎる。 |
| 415 | `unsupported_media_type` | `Content-Type` が `application/json` ではない。 |
| 422 | `validation_failed` | `code` が欠落している。 |
| 422 | `verification_invalid` | コードが誤っているか、期限切れか、使用済みか、試行回数を超えているか、または ID が不明である。 |

## 例

```bash
curl -X POST https://example.keenauth.app/fapi/v1/verifications/0190a5c4-1b2c-7d3e-8f40-5162738400ff:attempt \
  -H "Idp-Client: my-app/1.0.0 (node/22.0.0)" \
  -H "Origin: https://example.keenauth.app" \
  -H "Content-Type: application/json" \
  -b cookies.txt \
  -d '{"code": "123456"}'
```
