単発注文
完了済み注文の一覧表示
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 ペイロードと同じフラット名を持ちます:RefundTicket と Refund の両方が refundTicketMerchantExternalId を公開し、Refund はさらに orderMerchantExternalId(元の注文から継承)も公開します。Webhook ペイロードは同じ 2 つの値を data.orderMerchantExternalId と data.refundTicketMerchantExternalId として運びます。
チェックアウトセッション
セッション詳細のクエリ
query($sessionId: ID!) {
checkoutSession(id: $sessionId) {
id
productType
currency
status
expiresAt
createdAt
}
}
変数:
{ "sessionId": "cs_550e8400-e29b-41d4-a716-446655440000" }