# 手数料データのクエリ

Sigma または Data Pipeline を使用して、取引手数料と商品手数料に関する情報を取得します。

このページでは、[Sigma](https://docs.stripe.com/data/sigma.md) と [Data Pipeline](https://docs.stripe.com/data/data-pipeline.md) を使用して取得できるデータテーブルについて説明します。このワークフローは、[Postgres へのリアルタイム同期](https://docs.stripe.com/data/data-pipeline/real-time-sync-to-postgres.md)とは互換性がありません。

`itemized_fees` テーブルを使用すると、Stripe 残高から請求または差し引かれるすべての手数料の細かい内訳を総合的に取得できます。たとえば、取引残高でカード支払いの手数料が 2 ドルを示す場合、`itemized_fees` テーブル内でこの取引をクエリして内訳を把握できます。このテーブルを使用すると、特定の期間で Stripe に支払われた合計手数料を把握することもできます。

`itemized_fees` テーブルには以下の列を含めることができます。

| 列 | 説明 |
| --- | --- |
| `balance_transaction_created` | 取引残高が Stripe 残高に影響した時刻 (UTC)。 |
| `balance_transaction_id` | 残高から手数料を引き落とした取引残高の ID。 |
| `balance_transaction_description` | 手数料を含む取引残高の説明。 |
| `incurred_by` | この手数料が発生したオブジェクトの ID (存在する場合)。`incurred_by_type` フィールドを使用して、このオブジェクトのタイプを判別します。 |
| `incurred_by_type` | `incurred_by` 参照のオブジェクトタイプ。API のオブジェクトフィールド ([Charge](https://docs.stripe.com/api/charges.md)、[Refund](https://docs.stripe.com/api/refunds.md)、[Invoice](https://docs.stripe.com/api/invoices.md) など) に一致します。 |
| `amount` | このアクティビティーに対して発生した手数料 (通貨の主要単位で表示)。金額に税額は含まれません。 |
| `tax` | 支払われた手数料の税金コンポーネント (通貨の主要単位で表示)。 |
| `currency` | 金額と税金が定義される 3 文字の[通貨の ISO コード](https://docs.stripe.com/currencies.md)。 |
| `incurred_at` | 元のイベントの日付に基づく、手数料が発生した時刻 (UTC)。 |
| `activity_start_date` | 一定期間にまたがるアクティビティーから計算された手数料の場合、これはアクティビティーの開始日 (UTC) になります。 |
| `activity_end_date` | 一定期間にまたがるアクティビティーから計算された手数料の場合、これはアクティビティーの終了日 (UTC) になります。 |
| `product_feature_description` | 手数料に関連付けられたプロダクトまたは機能。 |

次の例は、直近の 5 件の手数料取引に関する情報を抽出する方法を示しています。

```sql
select
  date_format(date_trunc('day', incurred_at), '%m-%d-%Y') as day,
  balance_transaction_id,
  amount,
  tax,
  product_feature_description
from
  itemized_fees
order by
  incurred_at desc
limit 5;
```

アクティビティーの詳細なビューを取得するには、`itemized_fees` テーブルをスキーマのほかのテーブルと結合します。たとえば、`balance_transactions` テーブルと `itemized_fees` テーブルを結合して、各取引残高の手数料情報を取得します。

以下は、これらのテーブルを結合する方法の例です。さまざまなタイプの手数料と手数料の詳細な説明を返します。

```sql
select
  date_format(date_trunc('day', itemized_fees.balance_transaction_created), '%m-%d-%Y') as day,
  balance_transactions.id as balance_transaction_id,
  balance_transactions.reporting_category as reporting_category,
  itemized_fees.amount as fee_amount,
  itemized_fees.tax as tax_amount
from
  balance_transactions
inner join
  itemized_fees on balance_transactions.id = itemized_fees.balance_transaction_id
order by
  day desc
limit 5;
```

## 連結アカウントが支払った手数料

Stripe Connect を使用するプラットフォームアカウントがある場合、`connected_account_itemized_fees` テーブルを使用して、連結アカウントが支払った手数料に関するインサイトを取得できます。

`itemized_fees table` と同様、`connected_account_itemized_fees` テーブルは手数料取引の詳細な記録を提供しますが、これは連結アカウントの観点に基づきます。これらのデータセットは大部分が共通の属性を共有していますが、`connected_account_itemized_fees` データセットには追加の `account` 列があります。この `account` 列を使用することで、プラットフォームアカウントは、各連結アカウントが支払った手数料を追跡し、レポートを作成できます。

特定の期間を対象に、特定の連結アカウントに関連付けられたすべての手数料取引を特定するには、`connected_account_itemized_fees` テーブルを使用します。支払った合計手数料に基づき、上位 10 件の連結アカウントを取得できるクエリの例を以下に示します:

```sql
select
  account,
  sum(amount) as total_fees
from
  connected_account_itemized_fees
where
  incurred_at between 'start_date' and 'end_date'
group by
  account
order by
  total_fees desc
limit 10;
```

`start_date` と `end_date` を、分析したい特定の日付 (`YYYY-MM-DD` 形式) に置き換えます。このクエリは、指定された日付範囲内に各連結アカウントから支払われた合計手数料を算出し、合計手数料が最も高い上位 10 件のアカウントを返します。
