LabHub

ブログ

2026 1 人開発者・マイクロ SaaS 決済インフラ — Stripe・Lemon Squeezy・Polar・Paddle・Creem 深掘り比較

한국어English日本語

プロローグ — 決済はコードではなく会計だ

1 人開発者が SaaS を作るとき、最も過小評価される仕事が 決済 だ。コード自体は難しくない。Stripe Checkout が 1 行、Webhook ハンドラが 50 行、終わり。本当の問題はその後ろに並ぶものたちである。付加価値税 (VAT)・売上税 (Sales Tax)・請求書 (Invoice)・返金・失敗した決済の再試行 (dunning)・チャージバック・税務申告・収益認識。これらすべてが合わさって「決済」という 1 つの単語になる。

2026 年の良い知らせは、これらをすべて自分で作る必要はないということだ。Merchant of Record (MoR) と呼ばれる一群のサービス — Lemon Squeezy、Polar、Paddle、Creem、Gumroad — が、VAT 申告・売上税・法的な売り手責任までを全部引き受け、その代わりに取引額の 4 ~ 6 % を取る。一方 Stripe・Adyen・Braintree などの決済ゲートウェイ (Payment Service Provider, PSP) は、クレジットカード処理にしか責任を負わない。VAT 申告、各国法人登録、返金ポリシーはあなたの仕事だ。

本稿はその選択を扱う。どんな状況なら Stripe で直接組み、どんな状況なら MoR に 5 % 余計に払うのが合理的か。2026 年 5 月時点の各プラットフォームの実態 — 価格、限界、誰が誰に買収されたか — も併せて整理する。最後に MRR の段階別意思決定マトリクスを残す。


1 章 · Stripe vs MoR — 責任の分岐線

1.1 Merchant of Record とは何か

法的に「Merchant of Record」とは 顧客に対して商品・サービスを販売する法的売り手 である。領収書・請求書のトップに記載される名前がそれだ。MoR を使うと、顧客のカード明細には LEMON SQUEEZY*PADDLE.NET* のような名前が出る。あなたの会社名ではない。

法的売り手であるとは、何を引き受けるということか。以下を引き受ける。

これを自分でやるのは実際に時間がかかる。米国だけ見ても、2018 年の South Dakota v. Wayfair 判決以後、各州が売上税の経済的ネクサスを売上額や取引件数の閾値で個別に定義している。EU には OSS (One Stop Shop)・IOSS の制度があるが、それでも登録・申告は四半期ごとである。

1.2 Stripe は PSP — MoR ではない

Stripe は本質的に 決済処理 (payment processing) のインフラ である。クレジットカード決済を受け付け、精算するまでが本業だ。その上に以下を付加サービスとして売っている。

要点はこうだ。Stripe は強力だが VAT 申告を代行しない。Stripe Tax は税率を計算し、期間別レポートまで作るが、各国税務当局に「今四半期の売上はこちらです」と申告する行為は、あなた本人または会計士・税務代行サービス (TaxJar、Avalara など) がやる。Stripe Tax はガイド + データ抽出であって、申告代行ではない

1.3 MoR vs DIY — 責任分岐表

領域Stripe (DIY)MoR (Lemon Squeezy・Polar・Paddle 等)
カード処理手数料2.9 % + $0.30 (US)含む
税額計算Stripe Tax (追加費用)含む
税金申告・納付利用者の責任MoR が代行
B2B 請求書 (EU)Stripe Invoicing含む
返金・チャージバック対応自分で応答MoR が応答
各国法人登録必要に応じて自分でMoR 名義で販売
カード明細に出る名前自社名MoR 名
不正・KYCStripe Radar (追加費用)含む
通貨・現地決済手段自分で構成標準で提供
総手数料 (参考)約 2.9 ~ 3.5 %約 5 ~ 6 %

ルールは単純だ。MoR に追加で払う 2 ~ 3 % は「各国に税申告しないための保険料」 である。その保険料の価値は、売る国の数と売上規模で決まる。


2 章 · Stripe — 巨人は今も巨人だ

2.1 2026 年の Stripe

2026 年 5 月時点で、Stripe は依然としてグローバル決済 PSP の事実上の標準である。2024 年の決済額は約 $1.4T、50 を超える通貨、40 を超える国で acquiring を提供している。1 人開発者にとって Stripe が魅力的な理由は単純だ。開発者体験が圧倒的に良い

// Stripe Checkout — 最小構成のサブスク決済
import Stripe from 'stripe'
const stripe = new Stripe(process.env.STRIPE_SECRET_KEY)

const session = await stripe.checkout.sessions.create({
  mode: 'subscription',
  line_items: [{ price: 'price_1ABC', quantity: 1 }],
  success_url: 'https://example.com/success?session_id={CHECKOUT_SESSION_ID}',
  cancel_url: 'https://example.com/cancel',
  automatic_tax: { enabled: true }, // Stripe Tax 有効化
})

return { url: session.url }

これだけ。Hosted Checkout、決済手段、カード情報保管 (PCI-DSS)、3DS・SCA、領収メール、モバイルウォレット (Apple Pay、Google Pay) すべて込みだ。

2.2 Stripe Tax — どこまでやってくれるか

2026 年時点で Stripe Tax は以下をやってくれる。

Stripe Tax が やらないこと:

価格: Stripe Tax は対象取引額の 0.5 % 追加、または取引あたり $0.50 (契約による)。

2.3 Stripe Workflows — 2025 年後半の大きな変化

Stripe Workflows は 2025 年 10 月頃 GA となったノーコード自動化ビルダーだ。これまで Zapier や Make などのサードパーティで組んでいた決済後続自動化 — 決済失敗時の Slack 通知、サブスク更新 7 日前のメール、ディスピュート対応の下書き — を Stripe 内で描くツールである。

# Stripe Workflows — 決済失敗後の自動再試行とダウングレード
trigger: invoice.payment_failed
actions:
  - wait: 24h
  - retry_payment
  - branch:
      if: invoice.attempt_count >= 4
      then:
        - send_email: dunning_final
        - update_subscription: { status: past_due }
      else:
        - send_email: dunning_reminder

これは dunning 問題をかなり単純化する。以前は外部の Smart Retries (Recover、Baremetrics) や自作キューワーカーが必要だった。

2.4 Stripe Connect — マーケットプレイス用

Connect は 1 人開発者が「マーケットプレイス」を作るときに使う。例: 講師が講座を売り、あなたが手数料を取る。Standard / Express / Custom のアカウントモデルがあり、分割精算 (application_fee_amount) が要だ。

Connect には追加手数料がある。Standard はアクティブアカウントあたり月 $2 (米国)、Express・Custom はさらに高い。素の SaaS なら Connect は使わない。

2.5 Stripe + Lemon Squeezy — 2024 年買収以降

2024 年 7 月、Stripe は Lemon Squeezy を買収した。ただし Lemon Squeezy は別ブランドとして運営を続けている。主な事実:

要約: 買収は仕組みを変えなかった。Lemon Squeezy を使っていた人はそのまま使えばよい。


3 章 · Lemon Squeezy — デジタル製品 SaaS の MoR 標準

3.1 ポジショニング

Lemon Squeezy は 2021 年に始まり、2024 年に Stripe に買収された。ターゲットはデジタル製品 SaaS とインディーハッカー だ。決済・サブスク・税金・請求書・割引コード・ライセンスキー発行までを 1 画面で扱う。

価格 (2026 年 5 月時点):

// Lemon Squeezy — Checkout リンク生成
import { lemonSqueezySetup, createCheckout } from '@lemonsqueezy/lemonsqueezy.js'

lemonSqueezySetup({ apiKey: process.env.LS_API_KEY })

const { data } = await createCheckout('storeId', 'variantId', {
  productOptions: { redirectUrl: 'https://example.com/welcome' },
  checkoutOptions: { embed: true },
  checkoutData: { email: 'user@example.com' },
})

return data.attributes.url

3.2 強み

3.3 弱み

3.4 いつ使うか


4 章 · Polar.sh — オープンソース親和の新興 MoR

4.1 ポジショニング

Polar は 2023 年に始まり、Y Combinator W24 出身。2024 ~ 2025 年にかけて急速にユーザーを集め、「Lemon Squeezy の代替」として定着した。オープンソース親和 が核心の差別化点だ。SDK・ドキュメント・インフラ自体が GitHub で公開されており、価格もより攻撃的である。

価格 (2026 年 5 月時点):

// Polar — Checkout セッション生成
import { Polar } from '@polar-sh/sdk'

const polar = new Polar({ accessToken: process.env.POLAR_ACCESS_TOKEN })

const checkout = await polar.checkouts.create({
  productPriceId: 'price_xyz',
  successUrl: 'https://example.com/success?checkout_id={CHECKOUT_ID}',
  customerEmail: 'user@example.com',
})

return checkout.url

4.2 強み

4.3 弱み

4.4 いつ使うか


5 章 · Paddle — OG Merchant of Record

5.1 ポジショニング

Paddle は 2012 年設立の英国の会社で、SaaS 専用 MoR の元祖 である。2022 年に ProfitWell を買収、2024 ~ 2025 年にかけて大型 SaaS 顧客 (SyncFusion、Beamer、Krisp など) を厚く抱え、エンタープライズ領域で強固だ。

価格 (2026 年 5 月時点):

// Paddle Billing — v2 SDK で Checkout を開く
import { initializePaddle } from '@paddle/paddle-js'

const paddle = await initializePaddle({
  environment: 'production',
  token: process.env.PADDLE_CLIENT_TOKEN,
})

paddle.Checkout.open({
  items: [{ priceId: 'pri_xxx', quantity: 1 }],
  customer: { email: 'user@example.com' },
  successUrl: 'https://example.com/welcome',
})

5.2 強み

5.3 弱み

5.4 いつ使うか


6 章 · Creem — ヨーロッパ発の新興 MoR

6.1 ポジショニング

Creem は 2023 年にヨーロッパで始まった新興 MoR だ。Polar とほぼ同時期に登場し、同じく インディーハッカー / 1 人 SaaS をターゲットにする。価格は Lemon Squeezy 水準だが、UI のシンプルさと速い入金サイクルを差別点としている。

価格 (2026 年 5 月時点):

6.2 強み

6.3 弱み

6.4 いつ使うか


7 章 · Gumroad — クリエイター・デジタルダウンロード向け

7.1 ポジショニング

Gumroad は 2011 年設立、最も古いクリエイター向け決済プラットフォームだ。商品の販売に焦点 — eBook、講座、デザインアセット、音楽、デジタルダウンロード。SaaS サブスクは技術的には可能だが本業ではない。

価格 (2026 年 5 月時点):

7.2 強み

7.3 弱み

7.4 いつ使うか


8 章 · モバイル IAP — 30 % の現実

8.1 App Store の強制

モバイルアプリで デジタル商品 / サブスク を売るなら、Apple App Store と Google Play は自社の決済システム (In-App Purchase, IAP) の使用を強制する。違反するとアプリは拒否・削除される。

手数料 (2026 年 5 月時点):

8.2 外部決済の許可 — 2024 ~ 2025 年の変化

米国・EU・韓国・日本で規制・訴訟の結果、外部決済リンクの掲示が部分的に許可された。2026 年 5 月時点のまとめ。

現実 1: 外部決済に逃しても 30 % がきれいに 0 % になるわけではない。Apple / Google は外部決済にも commission を取る。削減幅は通常 5 ~ 10 % 程度。

現実 2: 外部決済の UX は悪い。「アプリで決済」が「アプリ → ブラウザ → 決済 → アプリ復帰」になる。コンバージョンが落ちる。

現実 3: Web first なら Stripe / MoR、モバイル first なら IAP を受け入れて価格に織り込むのが合理的。

8.3 RevenueCat — IAP の事実上の標準

iOS / Android の IAP を直接扱ってはいけない。RevenueCat を使う。両ストアの決済イベントを統一 API で取り出し、解析・コホート・実験までを 1 画面で扱える。

// iOS — RevenueCat でサブスク購入
import RevenueCat

Purchases.shared.purchase(package: package) { transaction, customerInfo, error, userCancelled in
  if customerInfo?.entitlements["pro"]?.isActive == true {
    // 有効化
  }
}

価格: 売上 $2.5k / 月までは無料、それ以上は売上の 1 %。


9 章 · 手数料の数学 — $5k MRR での本当の差

9.1 前提

9.2 $5k MRR での費用比較マトリクス

項目Stripe DIYLemon SqueezyPolarPaddle
決済手数料$5,000 × 2.9 % + 167 × $0.30 = $195$5,000 × 5 % + 167 × $0.50 = $334$5,000 × 4 % + 167 × $0.40 = $267$5,000 × 5 % + 167 × $0.50 = $334
Stripe Tax (0.5 %)$25含む含む含む
税理士費用 (月換算)$167000
請求書 / B2B ツール$30含む含む含む
月次合計$417$334$267$334
売上比8.3 %6.7 %5.3 %6.7 %

意外な結論: $5k MRR 帯では MoR の方がむしろ安い ことがある。税理士・登録・運用の時間とお金を合わせると、5 % の手数料は保険ではなく 割引 になる。

9.3 $50k MRR で見ると

項目Stripe DIYLemon SqueezyPolarPaddle
決済手数料$1,950$3,335$2,667$3,335
Stripe Tax$250含む含む含む
税務運用 (専任人員の一部)$1,500000
月次合計$3,700$3,335$2,667$3,335
売上比7.4 %6.7 %5.3 %6.7 %

$50k MRR でも Polar / Lemon Squeezy が同等かやや安い。本格的な損益分岐点はおおむね $200k ~ $500k MRR あたりだ。その上では、専任の税務・法務人員で自前運用する方が 5 % の MoR 手数料より安くなる。

9.4 損益分岐点 — 1 行まとめ


10 章 · Webhook と dunning — 壊れない決済システム

10.1 Webhook は必ず冪等に

決済システムにおいて Webhook は厳密に 1 回だけ届くことはない。Stripe・Polar・Paddle はいずれも以下を保証する。

解決策: 冪等性 (idempotency) をコードに埋め込む。

// Next.js Route Handler — 冪等な Stripe Webhook
import { headers } from 'next/headers'
import Stripe from 'stripe'
import { db } from '@/lib/db'

const stripe = new Stripe(process.env.STRIPE_SECRET_KEY!)

export async function POST(req: Request) {
  const body = await req.text()
  const sig = (await headers()).get('stripe-signature')!

  let event: Stripe.Event
  try {
    event = stripe.webhooks.constructEvent(body, sig, process.env.STRIPE_WEBHOOK_SECRET!)
  } catch {
    return new Response('Bad signature', { status: 400 })
  }

  // 冪等: event.id を PK に INSERT、衝突時は skip
  const inserted = await db.webhookEvent.create({
    data: { id: event.id, type: event.type, payload: body },
  }).catch(() => null)

  if (!inserted) return new Response('Already processed', { status: 200 })

  switch (event.type) {
    case 'checkout.session.completed':
      await activateSubscription(event.data.object)
      break
    case 'invoice.payment_failed':
      await enterDunning(event.data.object)
      break
    // ...
  }

  return new Response('ok', { status: 200 })
}

要点: event.id を DB の主キーとして保存し、重複なら 200 を返す。ビジネスロジックはちょうど 1 回だけ走る。

10.2 Dunning — 失敗した決済を回収する技術

SaaS 全体の売上の 5 ~ 10 % はカード失効・限度超過・銀行拒否 で失敗する。これを回収するのが dunning だ。回収率を 30 % 改善するだけで、売上は即座に 2 ~ 3 % 増える。

基本シナリオ:

  1. 決済失敗 (invoice.payment_failed) → 即時 1 回再試行。
  2. 24 時間後、カード再発行されているか確認 (Stripe Card Updater または MoR の自動更新)。
  3. 3・5・7 日後に追加再試行 (時間帯を分散)。
  4. 7 日目: ユーザーに決済情報更新リンクをメール。
  5. 14 日目: ダウングレードまたは一時停止。
  6. 30 日目: サブスク終了。

これを自前で組むこともできるし、Stripe Smart RetriesStripe WorkflowsRetain by Paddle に任せることもできる。1 人開発者にとってはホスト型一択である。

10.3 チャージバック・ディスピュート

チャージバックとは、カード保有者がカード会社に「この決済は不正です」と申告すること。カードネットワークは加盟店 (= あなたまたは MoR) に応答期限 (通常 7 ~ 14 日) を与える。

チャージバック 1 件のコスト: 取引額の返金 + ディスピュート手数料 (Stripe で $15、MoR は通常吸収)。チャージバック率が 1 % を超えると、カードネットワークが加盟店資格を停止しうる。

対策:


11 章 · 日本・韓国の決済 — カードコード 1 行では終わらない

11.1 日本の決済の特殊事情

日本市場には独自の決済要件がある。

日本での実用構成:

11.2 韓国の決済オプション

韓国の決済は、グローバル決済インフラとは別に回っている。理由:

PortOne (旧 Iamport、NHN KCP)

// PortOne v2 — 決済リクエスト
import PortOne from '@portone/browser-sdk/v2'

const response = await PortOne.requestPayment({
  storeId: 'store-xxx',
  channelKey: 'channel-kakaopay',
  paymentId: `order-${Date.now()}`,
  orderName: 'Pro 月額プラン',
  totalAmount: 11000,
  currency: 'KRW',
  payMethod: 'EASY_PAY',
  easyPay: { easyPayProvider: 'EASY_PAY_PROVIDER_KAKAOPAY' },
})

if (response.code != null) {
  // 決済失敗
}

TossPayments

11.3 Stripe + 日本・韓国

Stripe は日本でも韓国でも acquiring を提供している (日本は古くから、韓国は 2024 年に拡張)。ただし、日本のキャッシュレス (PayPay 等) や韓国の簡単決済 (KakaoPay 等) は、それぞれのローカル PSP / アグリゲータの方が自然である。Stripe はグローバルカード + USD/EUR 売上、ローカル PSP はローカル決済手段 — 並走させるのが一般的。

11.4 実用構成

地域別の分岐をコードに 1 つ置けば運用がきれいになる。

// ユーザー地域で決済経路を分岐
async function getCheckoutUrl(user: User, plan: Plan) {
  if (user.country === 'KR') {
    return await createPortOneCheckout(user, plan)
  }
  if (user.country === 'JP') {
    return await createStripeJpCheckout(user, plan)
  }
  return await createStripeCheckout(user, plan)
}

12 章 · サブスク vs 一回限り vs 使用量ベース

12.1 モデル別の適合度

モデル適合シナリオ適合プラットフォーム
一回限り (One-time)デスクトップアプリライセンス、eBook、コースLemon Squeezy、Gumroad、Polar
サブスク (Subscription)SaaS、コンテンツ、メンバーシップStripe、Polar、Paddle、Lemon Squeezy
使用量 (Usage-based)LLM API、クラウドインフラ、メッセージングStripe Billing (meters)、Polar
ハイブリッド (Seat + Usage)コラボ SaaS、データ分析Stripe Billing、Paddle
年契約 + コミットエンタープライズ B2BPaddle、Stripe Invoicing

12.2 使用量ベースの落とし穴

LLM API のような従量課金は魅力的だ (「リアルタイムでトークン消費量 × 単価」)。しかし以下の罠がある。

Stripe Billing の meters と Polar の usage events はほぼ同様の API。難所は イベント取り込み + 集計 + 課金 を 3 段にどう切るかだ。

12.3 価格変更の安全網

価格を変更するとき — 既存サブスクをそのままにするか、次回更新から新価格に移行するか、即時 prorate するか。

Stripe・Polar・Paddle すべてが価格バージョンを別管理できる。これを使わずに価格を 1 種類で上書きすると、後で後悔する。


13 章 · 失敗モードとアンチパターン

よく見る失敗。


14 章 · 意思決定ツリー

質問 1: 売上規模は?
  ├─ < $5k MRR
  │   └─ MoR で始める (Lemon Squeezy または Polar)
  ├─ $5k ~ $200k MRR
  │   ├─ 主要顧客が日本/韓国 → ローカル PSP + Stripe (グローバル)
  │   ├─ 主要顧客が EU/北米 → Polar (価格) または Lemon Squeezy (安定性)
  │   ├─ 本格 B2B (NET-30、複数年) → Paddle
  │   └─ オープンソース支援 → Polar + GitHub Sponsors
  └─ > $200k MRR
      ├─ 専任の税務人員あり → Stripe DIY + Stripe Tax
      └─ 専任人員なし → Paddle (エンタープライズ) 継続

質問 2: モバイルアプリか?
  ├─ Web first → 上記
  └─ Mobile first → RevenueCat + IAP。外部決済迂回は慎重に。

質問 3: 価格モデル?
  ├─ 一回限り → Lemon Squeezy/Gumroad
  ├─ サブスク → Stripe/Polar/Paddle
  └─ 使用量 → Stripe Billing meters または Polar usage events

エピローグ — 決済は一度決めれば 6 か月暮らせる

決済インフラを変える作業は本当に痛い。ユーザーにカード情報を再入力させ、期限切れのサブスクを移行し、請求書番号体系が崩れる。だから 最初の 1 回をちゃんと決めれば 1 年触らない

良い知らせは、2026 年の決済インフラはかつてないほど良いということだ。Polar のような新興 MoR が 4 % + $0.40 で参入し、Stripe Workflows で dunning をノーコードで描ける。Stripe は Lemon Squeezy を買収しても別運営でインディーハッカーを捨てなかった。日本・韓国ではローカル PSP / アグリゲータが成熟した。モバイル IAP の 30 % は依然痛いが、EU DMA・米国判決により外部決済の通路が開いた。

1 人開発者向け 30 日チェックリスト

アンチパターン (再掲)

次回予告

次回は MRR が伸びる段階別の運用自動化 — Stripe Workflows で dunning を描き、Slack に決済イベントを流し、会計システム (QuickBooks・Xero・freee・マネーフォワード) に請求書を同期する — 実戦構成を扱う。決済は一度決めれば 6 か月暮らせるが、運用自動化は毎週触る。


参考 / References

コメント

まだコメントはありません。

ログインするとコメントできます