> ## Documentation Index
> Fetch the complete documentation index at: https://docs.waffo.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# ドメイン認証

> KYB 提出前にプロダクトサイトの所有権を確認する

## なぜドメイン認証が必要か

サイトはプロダクトの公の顔です。KYB を承認し本番決済を有効化する前に、`Product website` に登録するドメインがあなたのものであることを確認する必要があります。ドメイン認証はストアごとに 1 回のみで、KYB 承認後もバインディングは保持されます。

入口は2つあります — どちらも同じバックエンド状態を更新するため、いずれか1箇所で認証すれば十分です:

* **Settings → General** — KYB の流れとは独立して、任意のタイミングでドメインを認証（または再認証）できます。
* **Settings → Business Details → ステップ 8 (Website URL)** — KYB 提出時にインラインで完了させます。このステップでドメインが未認証の場合、「Submit for review」ボタンは無効のままになります。

## 4 つの認証方法

Pancake は 4 つの同等な認証方法を提供します。既存のスタックに合うものを 1 つ選んでください。

| 方法                 | 所要時間の目安        | 適している環境                 |
| ------------------ | -------------- | ----------------------- |
| メールドメイン自動マッチ       | 即時             | サポートメールがサイトと同じドメインに存在する |
| DNS TXT レコード       | 5–30 分（DNS 伝播） | ほぼすべてのサイト               |
| HTML `<meta>` タグ   | 1–2 分（再デプロイ要）  | SPA、静的サイト               |
| `.well-known` ファイル | 1–2 分（再デプロイ要）  | 静的アセットを配信できるあらゆる環境      |

<Note>
  **いずれか 1 つ**を選びます。1 つでも認証が成功すれば、他の方法は不要です。
</Note>

## 方法 1 — メールドメイン自動マッチ（推奨）

**ステップ 7 (Contact Email)** で認証済みのサポートメールがサイトと同じドメインの場合、Pancake が自動で検知し、ワンクリックの **Verify domain** ボタンを表示します。

**例**：サポートメール `support@acme.com`（認証済み） + サイト `https://acme.com` → 自動マッチ可能。

1. **Verify domain** をクリック。
2. Pancake がサーバ側でメール／ドメインの一致を検証し、即座に認証完了。

サポートメールがサイトと別ドメイン（例：サイトが `acme.com` でメールが `team@gmail.com`）の場合、このオプションは表示されません。下の手動方法のいずれかを使ってください。

## 方法 2 — DNS TXT レコード

最も確実な方法です。ドメインの DNS ゾーンに TXT レコードを追加します。

1. ダッシュボードで **Use another method** → **DNS TXT** をクリック。
2. Pancake が 3 つの値を表示します：
   * **Type**：`TXT`
   * **Host / Name**：`_waffo-challenge`（ダッシュボード側で `.your-domain.com` のサフィックスを除去済み — 多くのプロバイダで自動的に補完されます）
   * **Value**：`waffo-domain-verify=…` で始まる一回限りのチャレンジ文字列
3. DNS プロバイダの管理画面で表示通りにレコードを追加。TTL はデフォルトで構いません。
4. 伝播を待ちます。多くは数分以内（Cloudflare、Route 53 はほぼ即時）。
5. Pancake に戻り **I've added the record** をクリック。公開 DNS の TXT 値を照合し、一致すれば認証完了。

<Note>
  認証後も TXT レコードはそのまま残しておけます。後から削除しても既存のバインディングには影響しません — 検証は認証時点でのみ行います。
</Note>

### 主要プロバイダの TXT 追加先

| プロバイダ          | 追加先                                                  |
| -------------- | ---------------------------------------------------- |
| Cloudflare     | DNS → Records → Add record                           |
| GoDaddy        | My Products → DNS → Add → TXT                        |
| お名前.com        | ドメイン → DNS設定 → DNSレコード設定（種別 TXT）                     |
| ムームードメイン       | ムームー DNS → 設定変更                                      |
| Namecheap      | Domain List → Manage → Advanced DNS → Add new record |
| Route 53       | Hosted zones → 該当ゾーン → Create record（Type = TXT）     |
| Google Domains | DNS → Custom records                                 |

プロバイダがフルレコード名を要求する場合、`_waffo-challenge` ではなく `_waffo-challenge.your-domain.com` を入力してください。

## 方法 3 — HTML `<meta>` タグ

DNS は変更できないが、サイトのコードはデプロイできる場合に便利です。

1. ダッシュボードで **Use another method** → **HTML meta tag** をクリック。
2. 表示されるスニペット：
   ```html theme={"system"}
   <meta name="waffo-verify" content="<your-challenge-value>">
   ```
3. サイトのトップページ（`https://your-domain.com/`）の `<head>` 内に追加。
4. デプロイし、ブラウザの「ページのソースを表示」でタグが含まれていることを確認します。JS 実行後にのみ挿入されるタグだと、当社のクローラがハイドレート前にアクセスした場合に失敗する可能性があります。完全クライアント側レンダリング SPA の場合は方法 2 か方法 4 を推奨します。
5. Pancake に戻り **I've added the tag** をクリック。

## 方法 4 — `.well-known` ファイル

固定パスに静的ファイルを配置します。静的ファイルを配信できる環境ならどこでも使えます。

1. ダッシュボードで **Use another method** → **.well-known file** をクリック。
2. Pancake が表示する内容：
   * **File URL**：`https://your-domain.com/.well-known/waffo-challenge.txt`
   * **File contents**：`waffo-domain-verify=…` の 1 行
3. ファイルを完全に同じパスに配置。レスポンスが `200 OK`、`Content-Type: text/plain`（または任意のテキスト系）、本文がチャレンジ値のみ（余計な空白なし）であることを確認。
4. ブラウザでその URL を開き、内容が正しいことを確認。
5. Pancake に戻り **I've uploaded the file** をクリック。

<Note>
  よくあるミス：`/.well-known/waffo-challenge`（拡張子なし）に配置する、または `www.your-domain.com` への 301 リダイレクトを返す。どちらも失敗します。Pancake が表示する正確な URL を、フォームに入力した正規ホストから配信してください。
</Note>

## トラブルシューティング

### 「レコード／タグ／ファイルが見つかりません」

値を再確認してください。チャレンジは試行ごとに生成されます。Pancake で **Refresh** をクリックすると以前の値は無効になります。最新の値を貼り付けているか確認してください。

### TXT は追加したが認証が失敗する

DNS キャッシュが原因です。`dig TXT _waffo-challenge.your-domain.com`（Linux/macOS）または `nslookup -type=TXT _waffo-challenge.your-domain.com`（Windows）で確認してください。値が見えない場合は 5–10 分待ってから再試行を。

### チャレンジの有効期限切れ

各チャレンジには有効期限があります（ダッシュボードのアクションボタン下に正確な時刻が表示されます）。期限切れの場合は Pancake で **Refresh** をクリックして新しいチャレンジを発行し、新しい値で DNS／meta／ファイルを更新してください。

### 後でサイトドメインを変更したい

KYB 承認前であれば、**ステップ 8 (Website URL)** で現在のドメインバインディングを取り消し、新しいドメインを再認証できます。KYB 承認後はドメインがロックされるため、変更にはサポートにご連絡ください。

## プログラム／API での利用

オンボーディングを自動化する場合、対応エンドポイントは：

| エンドポイント                                                     | 用途                     |
| ----------------------------------------------------------- | ---------------------- |
| `POST /v1/actions/verification/start-domain-verification`   | 4 方法のいずれかでチャレンジを発行     |
| `POST /v1/actions/verification/confirm-domain-verification` | レコード／タグ／ファイルの検証をサーバに依頼 |

いずれもマーチャント JWT（または API キー）と標準の `X-Environment` ヘッダーが必要です。

## 次のステップ

ドメイン認証完了後、Business Details に戻って残りのステップ（ステップ 9 以降）を完了させてください。すべてのステップ（ドメイン認証含む）がグリーンになると、「Submit for review」ボタンが有効化されます。
