---
title: Stripe
description: StripeをNexCMPに接続して、カード決済、Apple Pay、Google Pay、Link、Alipayを利用できるようにします（APIキー、Webhook、ドメイン登録、テスト決済）。
url: https://nexcmp.com/ja/docs/billing/stripe/
applies_to: NexCMP 1.6.1
updated: 2026-11-02
---

# Stripe

> **管理画面での場所：** Finance › Payment channels › Stripe（`/payments/stripe`）。スイッチと手数料：Finance › Payment channels › Fees & limits（`/payments/fees`）。

## 動作内容 {#what-it-does}

Stripeはウォレットのチャージにおけるカード決済を処理します。同じアカウントで**Apple Pay**、**Google Pay**、**Link**、**Alipay**も提供でき、顧客が[自動チャージ](https://nexcmp.com/ja/docs/billing/auto-top-up/)のために**カードを保存**できるようになります。海外のお客様向けの主要なチャネルとしてご利用ください。

## 要件 {#requirements}

| 項目 | 要件 |
|---|---|
| Stripeアカウント | **USD**での決済を受け付けることができるStripeアカウント。AlipayはJPYで請求され、Stripe側でアカウントに対して有効化する必要があります。 |
| キー | シークレットキー（`sk_live_...`または`sk_test_...`）と公開可能キー（`pk_live_...`または`pk_test_...`）。フォームはこれらのプレフィックスを持つキーのみを受け付けます。 |
| ネットワーク | パネルへはインターネットからHTTPS経由でアクセス可能である必要があり（StripeがWebhookを呼び出します）、ポート443で`api.stripe.com`にアクセスできる必要があります。 |
| ドメイン（ウォレットのみ） | お客様向けドメインは`/.well-known/apple-developer-merchantid-domain-association`を提供する必要があります — NexCMPが自動的に行います。 |
| 依存関係 | なし。 |

::: info 共有Stripeアカウント
NexCMPは自ら作成した支払いに対するWebhookイベントのみを処理するため、他のアプリケーションでも使用しているStripeアカウントをそのまま使用できます。
:::

## インフラストラクチャの準備 {#prepare-the-infrastructure}

Stripe側での作業：

1. [Stripe Dashboard](https://dashboard.stripe.com)にサインインします。テスト実行か本番稼働かに応じて**Test mode**のオン/オフを切り替えます。一方のモードのキーがもう一方で動作することはありません。
2. **Developers › API keys**を開きます。**Publishable key**をコピーし、**Secret key**を表示してコピーします。シークレットキーは厳重に管理してください。
3. （オプション）**Settings › Payment methods**を開き、提供する場合は**Alipay**を有効化します。
4. Webhookを手動で作成する**必要はありません** — NexCMPが自動で作成できます（後述のステップ5を参照）。手動で作成する場合は、**Developers › Webhooks**でエンドポイントを作成し、[Webhook](#webhook)に記載されているURLとイベントを設定してください。

## NexCMP での接続 {#connect-in-nexcmp}

1. **Finance › Payment channels › Stripe**（`/payments/stripe`）を開きます。
2. **API keys**カードで**Mode**（`live`または`test`）を選択し、**Secret key**と**Publishable key**を貼り付けます。
3. **Save**をクリックします。キーは、NexCMPサービスアカウントのみが読み取り可能なサーバー上の設定ファイルに書き込まれます。ブラウザに送り返されることはなく、その後ページには下4桁のみが表示されます。
4. **Check**をクリックします。接続、モード、利用可能残高と保留中残高、アカウントID、チャージが有効かどうか、Webhookが存在するかどうか、Alipayが利用可能かどうかがダイアログに表示されます。赤色の行は、その部分の確認が必要であることを示します。
5. **Webhook**カードで**Create webhook**をクリックし、確認します。NexCMPがStripeに必要なすべてのイベントを含むエンドポイントの作成を要求し、**Webhook signing secret**（`whsec_...`）を自動的に入力します。フィールドに事前入力されるURLは`https://<your-domain>/v1/billing/stripe/webhook`で、例として`https://cloud.example.com/v1/billing/stripe/webhook`となります。
6. **Fees & limits**（`/payments/fees`）を開き、**Card (Stripe)**を有効にしたまま、**Stripe fee %**と**Stripe fixed fee (cents)**に実際の料金を設定し、**Save channels & fees**をクリックします。[Payment channels](https://nexcmp.com/ja/docs/billing/payment-channels/#switches-and-fees-fees-limits)を参照してください。

![モード、シークレットキー、公開可能キーがサンプル値で入力されているStripeページ](https://nexcmp.com/ja/docs/images/billing/stripe-01-keys.webp)


### Webhook {#webhook}

署名シークレットが保存されるまで、赤いバナー「Missing webhook_secret」が表示され続けます。これが無い場合、Stripe側で決済が完了していても、Stripeのチャージは**記録されません**。

| 項目 | 値 |
|---|---|
| URL | `https://<your-domain>/v1/billing/stripe/webhook` |
| イベント | `checkout.session.completed`, `payment_intent.succeeded`, `payment_intent.payment_failed`, `charge.refunded`, `charge.dispute.created`, `charge.dispute.closed`, `radar.early_fraud_warning.created`, `refund.updated`, `refund.failed` |
| 署名 | Stripe `Stripe-Signature`ヘッダー、HMAC-SHA256、許容時間300秒。不正な署名を持つリクエストにはHTTP 400が返されます。 |
| べき等性 | 各イベントIDは1回のみ保存されます。重複配信によって二重に入金されることはありません。 |

より少ないイベントを登録していたリリースからアップグレードした場合は、再度**Create webhook**をクリックしてください。古いエンドポイントは保持されるため、その後Stripe Dashboardで手動により削除してください。

Webhookカードの**24h events**と**Latest event**の行は、Stripeがパネルに到達しているかどうかを示します。個別のイベントは**Payment channels › Gateway events**（`/payments/events`、Stripeタブ）にリストされ、各イベントは表示（**Payload**）またはリプレイ（**Replay**）できます。

### Apple Pay、Google Pay、および Link {#apple-pay-google-pay-and-link}

1. **Wallets (Apple Pay · Google Pay · Link) & Alipay** カードの **Customer app Domain registered with Stripe** フィールドには、サイトのホスト名（例: `cloud.example.com`）が自動入力されます。
2. **Register / verify domain** をクリックして確認します。NexCMPがStripeの決済方法ドメインにドメインを登録し、Stripeに検証を依頼します。
3. 結果には **Apple Pay**、**Google Pay**、**Link** のステータスが表示されます。Apple Payはステータスが `active` の場合にのみ表示されます。
4. **Fees & limits** で **Apple Pay · Google Pay · Link** を有効のままにします。

![登録済みドメインとApple Pay、Google Pay、Linkのステータスを表示しているウォレットカード](https://nexcmp.com/ja/docs/images/billing/stripe-03-wallets.webp)

::: tip Apple Payが無効なままになる場合
Apple Payでは、パブリックドメインでHTTP 200を返すためにドメイン関連付けファイルが必要です。Cloudflareや他のプロキシを使用している場合は、`/.well-known/` をブロックしないでください。
:::

### Alipay {#alipay}

Alipayはオプションです。**Stripe Dashboard › Settings › Payment methods**で有効化し、**Check**をクリックしてダイアログにAlipayが利用可能と表示されるまで待ってから、**Alipay (Stripe, JPY display)**をオンにします（**Fees & limits**内）。**Alipay fee %**、**Alipay fixed fee**、**¥/USD rate**（50–500）、**FX spread %**（0–20）を設定します。¥/USDレートは定期的に更新してください。7日以上経過している場合はページ上で警告が表示されます。

## 確認 {#verify}

1. テストモードでテスト顧客としてポータルにサインインし、**Billing** を開き、**Deposit** をクリックして **Card** を選択し、Stripeのテストカード `4242 4242 4242 4242`（任意の日付、任意のCVC）で最小金額を支払います。
2. 数秒以内に残高が増加し、支払いはステータス *Completed* とともに **Finance › Billing › Top-ups** の下に表示されます。
3. **Payment channels › Gateway events › Stripe**を開きます。処理日時とともに`checkout.session.completed`または`payment_intent.succeeded`が表示されるはずです。
4. Stripeのページに戻ると、**24h events** が0より大きくなっています。

本番稼働の前に、**Mode** を `live` に切り替え、本番キーを貼り付けて再度 **Create webhook** をクリックします（テストモードと本番モードのウェブフックは別個です）。

## 制限と注意事項 {#limits-notes}

- **金額と通貨:** ウォレットはUSD建てです。カード、ウォレット、およびLinkの支払いはUSDで課金され、Alipayはお客様にJPYで表示され、お客様のレートで換算されます。
- **手数料:** Stripeの実際の પણードの手数料は自動的に読み取られません。設定した手数料の割合によって、お客様に表示される金額とウォレットに入金される金額が決まります。手数料を上乗せして請求するには、*Fees & limits* で **Customer pays top-up fee** を選択します。
- **保存済みカード:** お客様が *Save card for auto top-up* にチェックを入れると、カードは自社サーバーではなくStripeに保存されます。[Saved payment methods](https://nexcmp.com/ja/docs/billing/saved-payment-methods/) を参照してください。
- **返金。** カードへの返金は2段階のプロセスです。管理者が完了した支払いに対して返金リクエストを作成し（**Finance › Billing › Top-ups**、該当の支払いに対する返金アクション）、その後**Finance › Payouts › Card refunds**（`/billing/payouts`）で承認します。Alipayの返金は非同期です。失敗した場合（`refund.failed`）は保留された金額がウォレットに返還されます。
- **チャージバック:** `charge.dispute.created`において、NexCMPはお客様のアカウントをブロックし、プリペイドサービスを停止し（何も削除されません）、管理者アラートを送信します。勝訴した場合（`charge.dispute.closed`）、金額がウォレットに返金されます。
- **保留中の支払い:** ウェブフックが届かない場合、NexCMPは10分以上保留のままになっている支払いがないか独自にStripeと照合し、完了させます。7日より古い支払いは無視されます。
- **Resellers** は自分のStripeアカウント（ウェブフック `https://<their-domain>/v1/billing/stripe/webhook/r/<id>`）を接続できます。[Resellers](https://nexcmp.com/ja/docs/customers/resellers/) を参照してください。

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

| 症状 | 原因 | 対処法 |
|---|---|---|
| 「Secret key must start with sk_live_/sk_test_」のエラーが表示される | 間違ったキーが貼り付けられている | **Developers › API keys** からシークレットキーを貼り付けます。 |
| 「秘密鍵がライブモードとテストモードで一致していません」 | モードとキーが一致していません | **Mode** をキーのプレフィックスと一致させてください。 |
| 「公開鍵は pk_ で始まる必要があります」 | キーが正しくありません | 公開可能キーを使用してください。 |
| 接続が失敗したと表示される | キーが誤っている、失効している、またはサーバーが `api.stripe.com` に到達できません | キーを再貼り付けし、サーバーから `curl -I https://api.stripe.com` でテストしてください。 |
| 赤色のバナー "Missing webhook_secret" | 署名シークレットが保存されていません | **Create webhook** をクリックするか、Stripe Dashboard から `whsec_...` シークレットを貼り付けて **Save** をクリックします。 |
| 引き落とされたが残高が反映されない | Webhook が配信されていないか、署名検証に失敗しています | URL が `/v1/billing/stripe/webhook` で終わり、シークレットがエンドポイントと一致していることを確認し、**Gateway events** でイベントを再送します。Stripe でエンドポイントを開き、配信試行を確認してください（HTTP 400 は署名シークレットの間違いを示します）。 |
| "Create webhook" が失敗する | URL が HTTPS ではないか、アクセスできません | 公開用の `https://` ドメインを使用してください。 |
| Apple Pay のステータスが有効ではありません | ドメインが検証されていません | ドメイン関連ファイルが 200 を返すようになったら、再度 **Register / verify domain** をクリックします。 |
| チェックダイアログに Alipay が表示されない | Stripe で有効化されていません | Stripe Dashboard で有効化してから、**Check** をクリックしてください。 |
| お客様の画面にカード入力フォームが表示されない | **Card (Stripe)** が無効であるか、シークレットキーがありません | **Fees & limits** で有効にし、キーを保存してください。 |
