メインコンテンツへスキップ

概要

Waffo Pancake API で以下が可能です:
  • プロダクトの作成と管理(一回限りとサブスクリプション)
  • 支払いと返金の処理
  • サブスクリプションと請求の管理
  • 顧客と注文データへのアクセス
  • チェックアウトセッションの生成
ベースURL:https://waffo-pancake-auth-service.vercel.app/v1

認証方式

Waffo Pancake は、すべてのプログラムによる API アクセスに API Key 認証を使用します。API Key はセキュアなサーバー間通信を提供します。
API Key 認証は SDK が自動的に処理します。@waffo/pancake-ts をインストールし、Merchant ID と秘密鍵を提供するだけで、SDK がリクエストの署名を自動的に行います。
公開チェックアウトフローには、X-Store-Slug ヘッダーを使用した Store Slug 認証を使用します。
秘密鍵を保護してください。クライアントコードやバージョン管理で公開しないでください。

リクエストフォーマット

  • Content-Type:application/json
  • すべてのタイムスタンプはISO 8601形式(UTC)
  • 通貨金額は最小単位(例:2900 = $29.00)
  • IDはUUID v4形式

共通ヘッダー

ヘッダー必須説明
Content-Typeはいapplication/json
X-Store-Slug条件付きストア slug(公開チェックアウトフロー)
X-Environment条件付きtest または prod(Store Slug 認証必須)
X-Idempotency-Keyオプション書き込み操作の一意のリクエストID
import { WaffoPancake } from "@waffo/pancake-ts";

const client = new WaffoPancake({
  merchantId: process.env.WAFFO_MERCHANT_ID!,
  privateKey: process.env.WAFFO_PRIVATE_KEY!,
});

const { store } = await client.stores.create({ name: "My Store" });

レスポンスフォーマット

成功レスポンス

{
  "data": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "name": "Pro Plan",
    "prices": {
      "USD": { "amount": 2900, "taxIncluded": false, "taxCategory": "saas" }
    },
    "status": "active",
    "createdAt": "2024-01-15T10:30:00.000Z"
  }
}

エラーレスポンス

{
  "data": null,
  "errors": [
    {
      "message": "Missing required field: name",
      "layer": "product"
    }
  ]
}
エラーレイヤー:gatewayuserstoreproductordergraphql

HTTPステータスコード

ステータスコード説明
200成功
400不正なリクエスト(パラメータが無効)
401未認証(認証失敗)
403禁止(権限不足)
404見つからない
409競合(冪等リクエストが処理中)
429レート制限
500サーバーエラー

環境

環境ヘッダー値説明
テストX-Environment: test開発とテスト
本番X-Environment: prod実際の取引
テストモード:
  • 実際の課金は処理されない
  • データは本番環境と分離
  • 完全なAPI機能

主要エンドポイント

プロダクト

エンドポイントメソッド説明
/v1/actions/onetime-product/create-productPOST一回限りのプロダクト作成
/v1/actions/subscription-product/create-productPOSTサブスクリプション作成
/v1/actions/onetime-product/update-productPOSTプロダクト更新
/v1/actions/onetime-product/update-statusPOST有効化/無効化

注文

エンドポイントメソッド説明
/v1/actions/onetime-order/create-orderPOSTチェックアウト作成
/v1/actions/subscription-order/create-orderPOSTサブスクリプション作成
/v1/actions/refund-ticket/create-ticketPOST返金リクエスト

GraphQL

エンドポイントメソッド説明
/v1/graphqlPOSTデータクエリ(読み取り専用)

GraphQL

読み取り操作にGraphQLを使用:
query {
  stores {
    id
    name
    status
  }
  onetimeProducts(filter: { storeId: { eq: "..." } }) {
    id
    name
    prices
    status
  }
}
サポートされるクエリ:merchantsstoresonetimeProductssubscriptionProductsorderspaymentsrefundTickets

SDK

Node.js

公式Node.js SDK(近日公開)

Python

公式Python SDK(近日公開)

Webhooks

イベントのリアルタイム通知を受信:
  • order.completed — 注文完了
  • subscription.activated — サブスクリプションがアクティブ化
  • subscription.past_due — サブスクリプション支払い滞納
  • subscription.canceled — サブスクリプションキャンセル
  • refund.succeeded — 返金処理成功
Webhooksの詳細 →