A Activatist API Runtime Quickstart

Invite-only closed beta / Stripe test mode

低価格で、ライセンス認証をアプリに。

購入者にはライセンスキーを届け、アプリは /v1/licenses/activate で有効化します。Activatist は、個人・小規模開発者向けのライセンス販売、購入完了ページ、アクティベーションAPI、承認済みファイル配布をまとめた closed beta API です。

POST /v1/licenses/activate
Content-Type: application/json

{
  "product_id": "prod_123",
  "license_key": "LIC1-XXXX-XXXX-XXXX-XXXX",
  "device_fingerprint": "device-abc"
}
Closed beta note: 現在は招待制 closed beta / Stripe test mode です。live決済・一般公開・public seller self-serve は別レビューが必要です。

What Activatist Provides

Activatistがまとめて提供するもの

購入者はActivatistの配布ページからソフトをダウンロードし、購入後に表示されたライセンスキーをアプリへ入力します。Activatistは配布ページ、販売ページ、決済連携、ライセンス管理、認証APIをまとめて扱います。

購入者がActivatistの配布ページからソフトをダウンロードし、購入、ライセンスキー発行、アプリのactivateとvalidate、ソフト起動へ進む流れ

Pricing

料金プラン

closed beta中の表示です。live決済開始前に、販売者ごとの条件・税務・Stripe手数料・表示文言を確認します。

Beta

Free / Beta

月額 0円

5.6% + 45円 / 決済

まず試すための招待制プランです。

  • 500円の商品なら手数料は73円 / 本
  • 月52本までならIndieより低コスト
  • 小さく検証したい方向け

Team

Studio

月額 4,980円

3.9% + 20円 / 決済

販売量が増えてきた小規模チーム向けです。

  • 500円の商品なら手数料は40円 / 本
  • 月701本以上ならIndieよりお得
  • 販売量が大きくなってきた方向け
計算前提: 500円の商品を販売した場合の概算です。割合部分は円単位で切り上げ、固定額を加算します。validate / activate / deactivate API、SDK、購入完了ページ、ファイル配布gateなどの基本機能は全プラン共通です。

Stripe決済手数料、税、返金・チャージバック時の扱いはStripe Connectの設定とseller account statusに従います。

Before You Start

必要なもの / 不要なもの

必要なもの

  • product_idclosed beta中はActivatistがsellerに共有します。
  • license key購入完了ページで購入者に表示され、アプリに入力されます。
  • device_fingerprintSDKなら自動生成・保存。HTTP直接ならアプリ側で生成・保存します。

不要なもの

  • Runtime API用のAPI key
  • seller/admin bearer token
  • Stripe secret / Resend key / R2 credentials
  • Firebase bearer tokenのアプリ同梱

Start Here

まず選んでください

Runtime Quickstart

最短の実装手順

SDKでもHTTP直接でも始められます。SDKは端末IDの生成・保存まで任せられます。HTTP直接ではアプリ側で安定した device_fingerprint を用意します。

  1. product_idを設定する公開アプリ内に入っていて問題ありません。
  2. ユーザー入力のlicense keyを受け取るログに出さず、runtime APIへ渡します。
  3. 初回入力でactivateを呼ぶ端末登録とライセンス状態確認を行います。
  4. 起動時はvalidateを呼ぶ毎回activateせず、状態確認だけを行います。
  5. 409を端末数上限として表示するactivation limit exceeded は利用可能端末数の上限です。

Minimal Code

最小コード

SDKで始める

端末IDの生成・保存をSDKに任せます。

import { ActivatistClient } from "./activatist.js";

const client = new ActivatistClient({
  productId: "prod_123"
});

const result = await client.activate(licenseKey);

if (result.valid) {
  unlockPaidFeatures();
}

HTTP APIで始める

device_fingerprintはアプリ側で安定保存します。

await fetch("https://license.souko.work/v1/licenses/activate", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    product_id: "prod_123",
    license_key: licenseKey,
    device_fingerprint: deviceId
  })
});

全言語のSDK / HTTP例を見る

Runtime Endpoints

アプリに組み込む3つのAPI

迷ったら、初回だけ activate、起動時は validate、端末解除UIを作るなら deactivate です。

POST/v1/licenses/validate

起動時や定期チェックで使います。activation_count は増えません。

POST/v1/licenses/deactivate

端末の解除で使います。ポリシー上許可されている場合、利用枠を空けます。

Done Check

実装完了チェック

FAQ

よくある質問

API keyは必要ですか?

runtime license APIには不要です。seller/admin APIにはFirebase認証が必要です。

seller/admin用Bearer tokenをアプリに入れますか?

入れません。Firebase bearer tokenを配布アプリへ同梱してはいけません。

product_idは公開アプリに入れていいですか?

はい。product_idは商品識別子です。secretとして扱う必要はありません。

license keyをAPIに送って大丈夫ですか?

HTTPSで送信します。Activatistはnormalize後にHMAC lookupで照合し、ログに出さない設計です。

毎回activateしていいですか?

いいえ。初回activate、起動時validateです。

今live決済できますか?

closed betaではStripe test modeです。live決済は別レビューです。

Next

次に読むページ