チェックアウトセッションを使用して単発商品の注文を作成します。注文作成後、消費者を返された checkoutUrl にリダイレクトし、PSP ホスティングページで支払いを完了させます。
POST /v1/actions/onetime-order/create-order
認証: API Key
リクエストボディ
| フィールド | 型 | 必須 | 説明 |
|---|
checkoutSessionId | string | はい | チェックアウトセッション ID(cs_ + UUID 形式) |
billingDetail | object | はい | 注文の最終請求詳細 |
buyerEmail | string | いいえ | 消費者のメールアドレス |
buyerIp | string | いいえ | 消費者の IP アドレス(税管轄の判定に使用) |
successUrl | string | いいえ | 支払い成功後のリダイレクト URL のオーバーライド |
請求詳細オブジェクト
| フィールド | 型 | 必須 | 説明 |
|---|
country | string | はい | ISO 3166-1 alpha-2 国コード |
isBusiness | boolean | はい | ビジネス購入かどうか |
postcode | string | いいえ | 郵便番号 |
state | string | 条件付き | US と CA の場合に必須 |
businessName | string | 条件付き | isBusiness が true の場合に必須 |
taxId | string | Conditional | Required for EU countries when isBusiness is true |
リクエスト例
import { WaffoPancake } from "@waffo/pancake-ts";
const client = new WaffoPancake({
merchantId: process.env.WAFFO_MERCHANT_ID!,
privateKey: process.env.WAFFO_PRIVATE_KEY!,
});
const { checkoutUrl } = await client.orders.createOnetimeOrder({
checkoutSessionId: "cs_550e8400-e29b-41d4-a716-446655440000",
billingDetail: {
country: "US",
isBusiness: false,
state: "CA",
postcode: "94105",
},
buyerEmail: "customer@example.com",
});
// Redirect the consumer to complete payment
console.log(checkoutUrl);
成功レスポンス
{
"data": {
"checkoutUrl": "https://checkout.waffo.ai/my-store-abc123/payment/ORDER_TOKEN"
}
}
レスポンスフィールド
| フィールド | 型 | 説明 |
|---|
checkoutUrl | string | PSP ホスティング決済ページ URL。消費者をここにリダイレクトして支払いを完了させます。 |
エラー
| ステータス | メッセージ | 説明 |
|---|
| 400 | 必須フィールドが欠落しています | checkoutSessionId or billingDetail is missing |
| 400 | Invalid billingDetail | 請求詳細のバリデーションが失敗しました |
| 404 | Session not found | 指定された ID に一致するチェックアウトセッションがありません |
| 404 | Session expired | チェックアウトセッションの有効期限が切れています |
このエンドポイントを呼び出した後、消費者を checkoutUrl にリダイレクトしてください。ホスティング決済ページが支払い回収、3D Secure 認証を処理し、完了時に successUrl にリダイレクトします。