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

単発注文

完了済み注文の一覧表示

query($storeId: String!) {
  onetimeOrders(
    storeId: $storeId
    filter: { status: { eq: "paid" } }
    limit: 50
  ) {
    id
    buyerEmail
    currency
    priceSnapshot {
      currency
      subtotal
      taxAmount
      total
      taxCategory
    }
    status
    createdAt
  }
  onetimeOrdersCount(storeId: $storeId)
}
変数:
{ "storeId": "STO_3bVzrkD0FJjFdZNLk8Ualx" }

日付範囲でフィルタリング

query($storeId: String!) {
  onetimeOrders(
    storeId: $storeId
    filter: {
      createdAt: {
        gte: "2026-01-01T00:00:00.000Z"
        lte: "2026-03-31T23:59:59.999Z"
      }
    }
  ) {
    id
    buyerEmail
    status
    createdAt
  }
}

ビジネス番号(orderMerchantExternalId)で単発注文を照会

checkout 作成時に付加した orderMerchantExternalId を渡します。
query($storeId: String!, $ref: String!) {
  onetimeOrders(
    storeId: $storeId
    filter: { orderMerchantExternalId: { eq: $ref } }
  ) {
    id
    buyerEmail
    status
    orderMerchantExternalId
    createdAt
  }
}
変数:
{ "storeId": "STO_3bVzrkD0FJjFdZNLk8Ualx", "ref": "ORDER-2026-00891" }

SDK の例

const result = await client.graphql.query<{
  onetimeOrders: Array<{
    id: string;
    buyerEmail: string;
    priceSnapshot: { total: number; currency: string };
    status: string;
  }>;
}>({
  query: `query($storeId: String!) {
    onetimeOrders(storeId: $storeId, filter: { status: { eq: "paid" } }) {
      id buyerEmail priceSnapshot { total currency } status
    }
  }`,
  variables: { storeId: "STO_3bVzrkD0FJjFdZNLk8Ualx" },
});

サブスクリプション注文

有効なサブスクリプションの一覧表示

query($storeId: String!) {
  subscriptionOrders(
    storeId: $storeId
    filter: { status: { in: ["active", "trialing"] } }
  ) {
    id
    buyerEmail
    status
    billingPeriod
    createdAt
  }
  subscriptionOrdersCount(storeId: $storeId)
}

キャンセル中のサブスクリプションをフィルタリング

query($storeId: String!) {
  subscriptionOrders(
    storeId: $storeId
    filter: { status: { eq: "canceling" } }
  ) {
    id
    buyerEmail
    status
    createdAt
  }
}

ビジネス番号(orderMerchantExternalId)でサブスクリプション注文を照会

checkout 作成時に付加した orderMerchantExternalId を渡します。後続のすべての更新支払いも同じ値を継承するため、1 つのビジネス番号でサブスクリプションのライフサイクル全体を辿れます。
query($storeId: String!, $ref: String!) {
  subscriptionOrders(
    storeId: $storeId
    filter: { orderMerchantExternalId: { eq: $ref } }
  ) {
    id
    buyerEmail
    status
    billingPeriod
    orderMerchantExternalId
    createdAt
  }
}
変数:
{ "storeId": "STO_3bVzrkD0FJjFdZNLk8Ualx", "ref": "SUB-2026-01045" }

支払い

成功した支払いの一覧表示

query {
  payments(
    filter: { status: { eq: "succeeded" } }
    limit: 100
  ) {
    id
    orderId
    status
    refundStatus
    snapshotAmountDetails {
      subtotal
      taxAmount
      total
      currency
    }
    createdAt
  }
  paymentsCount(filter: { status: { eq: "succeeded" } })
}

日付範囲でフィルタリング

query {
  payments(
    filter: {
      status: { eq: "succeeded" }
      createdAt: {
        gte: "2026-01-01T00:00:00.000Z"
        lte: "2026-03-31T23:59:59.999Z"
      }
    }
  ) {
    id
    orderId
    snapshotAmountDetails {
      subtotal
      taxAmount
      total
      currency
    }
    createdAt
  }
}

Waffo 支払い ID で支払いを照会

query($paymentId: String!) {
  payment(id: $paymentId) {
    id
    orderId
    status
    refundStatus
    orderMerchantExternalId
    snapshotAmountDetails { total currency }
  }
}
変数:
{ "paymentId": "PAY_6eYCunG3IMmIgcQOnaXdoA" }

ビジネス番号(orderMerchantExternalId)で支払いを照会

checkout 作成時に付加した orderMerchantExternalId を渡します(webhook ペイロード data.orderMerchantExternalId と同名)。
query($ref: String!) {
  payments(filter: { orderMerchantExternalId: { eq: $ref } }) {
    id
    orderId
    status
    refundStatus
    orderMerchantExternalId
    createdAt
  }
}
変数:
{ "ref": "ORDER-2026-00891" }
サブスクリプション注文では、各更新支払いは同じ orderMerchantExternalId を継承します。上記クエリは同じビジネス番号の全支払い履歴を createdAt DESC 順で返します。

返金(実行されたレコード)

返金レコード(order.refunds)は PSP が返金を確認した後に書き込まれます。これらは返金チケットとは別 — チケットはリクエストのライフサイクルを保持し、返金レコードは実行結果を保持します。

Waffo 返金 ID で返金を照会

Refund は 2 つのビジネス番号をフラットフィールドで公開します:orderMerchantExternalId(元の注文から継承)と refundTicketMerchantExternalId(元の返金チケットから継承) — webhook ペイロードと同名。
query($refundId: String!) {
  refund(id: $refundId) {
    id
    paymentId
    ticketId
    status
    orderMerchantExternalId
    refundTicketMerchantExternalId
    pspAmountDetails { amount currency }
    createdAt
  }
}
変数:
{ "refundId": "RFD_8aHbCcDdEeFfGgHhIiJjKk" }

支払い(Waffo 支払い ID)で返金を照会

query($paymentId: String!) {
  refunds(filter: { paymentId: { eq: $paymentId } }) {
    id
    status
    orderMerchantExternalId
    refundTicketMerchantExternalId
    pspAmountDetails { amount currency }
    createdAt
  }
}

ビジネス番号で返金を照会

返金チケットのビジネス番号(返金チケット作成時に付加したもの)で一致 — refundTicketMerchantExternalId フィルタを使用:
query($ref: String!) {
  refunds(filter: { refundTicketMerchantExternalId: { eq: $ref } }) {
    id
    paymentId
    ticketId
    status
    orderMerchantExternalId
    refundTicketMerchantExternalId
    pspAmountDetails { amount currency }
    createdAt
  }
}
または注文のビジネス番号で一致(この reference を持つ支払いの全返金を返す、サブスク更新シナリオ向け)— payment 層でフィルタリングし、その nested refunds を読み取ります:
query($paymentRef: String!) {
  payments(filter: { orderMerchantExternalId: { eq: $paymentRef } }) {
    id
    orderMerchantExternalId
    refunds {
      id
      status
      refundTicketMerchantExternalId
      pspAmountDetails { amount currency }
      createdAt
    }
  }
}

返金チケット

すべての返金チケットを一覧表示

query {
  refundTickets {
    id
    paymentId
    status
    requestedAmount
    reason
    createdAt
  }
  refundTicketsCount
}

保留中の返金をフィルタリング

query {
  refundTickets(filter: { status: { eq: "pending" } }) {
    id
    paymentId
    requestedAmount
    reason
    createdAt
  }
}

特定の支払いの返金

query($paymentId: String!) {
  refundTickets(filter: { subjectId: { eq: $paymentId } }) {
    id
    status
    refundTicketMerchantExternalId
    versionData {
      reason
      requestedAmount { amount currency }
    }
    createdAt
  }
}
変数:
{ "paymentId": "PAY_6eYCunG3IMmIgcQOnaXdoA" }

ビジネス番号(refundTicketMerchantExternalId)で返金チケットを照会

query($ref: String!) {
  refundTickets(filter: { refundTicketMerchantExternalId: { eq: $ref } }) {
    id
    status
    refundTicketMerchantExternalId
    versionData {
      reason
      requestedAmount { amount currency }
    }
    reviewNote
    rejectReason
    executedAt
    createdAt
  }
}
変数:
{ "ref": "REF-2026-00891" }
RefundTicket(リクエスト)と Refund(実行レコード)は異なる 2 つの GraphQL 型ですが、ビジネス側識別子は webhook ペイロードと同じフラット名を持ちます:RefundTicketRefund の両方が refundTicketMerchantExternalId を公開し、Refund はさらに orderMerchantExternalId(元の注文から継承)も公開します。Webhook ペイロードは同じ 2 つの値を data.orderMerchantExternalIddata.refundTicketMerchantExternalId として運びます。

チェックアウトセッション

セッション詳細のクエリ

query($sessionId: ID!) {
  checkoutSession(id: $sessionId) {
    id
    productType
    currency
    status
    expiresAt
    createdAt
  }
}
変数:
{ "sessionId": "cs_550e8400-e29b-41d4-a716-446655440000" }