---
title: "List Payment Fees"
method: GET
path: "/payments/{id}/fees"
tags: ["Payments"]
---

# List Payment Fees

`GET /payments/{id}/fees`

Returns the fee breakdown of one payment — Whop's fee, processing, affiliate and other lines — each in the currency it was collected in and converted to the payment's settlement currency. The list is complete in one page.

## Response `200`

fees listed

- object
  - `data` PaymentFee[], required
    - `amount` Money, required
      - `amount` string, required — The amount in major units, as an exact decimal string — `"10.00"` is ten dollars. A string so no float rounds it in transit.
      - `currency` string, required — Three-letter ISO 4217 currency code, lowercase.
      - `decimals` integer, required — How many decimal places the amount CARRIES — the precision the charge itself runs at.
      - `display_decimals` integer, required — How many decimal places to SHOW. Usually equal to `decimals`, and deliberately not always: COP is charged in centavos but written in whole pesos, so it is `2` and `0`. Format the number in your own locale using this.
    - `collected_at` string, nullable, required — When the fee was collected, as an ISO 8601 timestamp, or null when it has not been.
    - `description` string, nullable, required — A longer explanation of the fee, when there is one.
    - `label` string, required — The name the dashboard shows for this fee.
    - `origin` 'stripe_domestic_processing_fee' | 'stripe_international_processing_fee' | 'stripe_fixed_processing_fee' | 'stripe_billing_fee' | 'stripe_radar_fee' | 'sales_tax_remittance' | 'sales_tax_remittance_reversal' | 'stripe_sales_tax_fee' | 'whop_processing_fee' | 'marketplace_affiliate_fee' | 'affiliate_fee' | 'crypto_fee' | 'stripe_standard_processing_fee' | 'paypal_fee' | 'stripe_payout_fee' | 'dispute_fee' | 'dispute_alert_fee' | 'dispute_representment_fee' | 'apple_processing_fee' | 'buyer_fee' | 'sezzle_processing_fee' | 'splitit_processing_fee' | 'platform_balance_processing_fee' | 'payment_processing_percentage_fee' | 'payment_processing_fixed_fee' | 'cross_border_percentage_fee' | 'fx_percentage_fee' | 'orchestration_percentage_fee' | 'three_ds_fixed_fee' | 'billing_percentage_fee' | 'revshare_percentage_fee' | 'application_fee' | 'high_risk_merchant_fee' | 'economic_intelligence_percentage_fee', required — The specific fee this line is, such as `payment_processing_percentage_fee` or `revshare_percentage_fee`.
    - `settlement_amount` Money, required
      - `amount` string, required — The amount in major units, as an exact decimal string — `"10.00"` is ten dollars. A string so no float rounds it in transit.
      - `currency` string, required — Three-letter ISO 4217 currency code, lowercase.
      - `decimals` integer, required — How many decimal places the amount CARRIES — the precision the charge itself runs at.
      - `display_decimals` integer, required — How many decimal places to SHOW. Usually equal to `decimals`, and deliberately not always: COP is charged in centavos but written in whole pesos, so it is `2` and `0`. Format the number in your own locale using this.
    - `type` 'whop_fee' | 'processing_fee' | 'affiliate_program_fee' | 'other_fee', required — The family the fee belongs to: `whop_fee`, `processing_fee`, `affiliate_program_fee`, or `other_fee`.
  - `page_info` object, required
    - `end_cursor` string, nullable, required
    - `has_next_page` boolean, required
    - `has_previous_page` boolean, required
    - `start_cursor` string, nullable, required

## Other responses

- `401` — Unauthorized
- `404` — Resource not found

## Changes

> 64 revisions in range; 1 not diffed.

- **2026-09-19** `d629b0d5d839` — 1 warning
  - added the new `economic_intelligence_percentage_fee` enum value to the `data/items/origin` response property for the response status `200`
- **2026-09-03** `697924df40d1` — 3 breaking, 11 warning, 48 info
  - the `data/items/amount` response's property type changed from `number` to `object` for status `200`
  - removed the required property `data/items/currency` from the response with the `200` status
  - removed the required property `data/items/name` from the response with the `200` status
  - deleted the `path` request parameter `id`
  - …58 more
- **2026-07-26** `60bbb4a6ffbc` — 1 warning
  - added the new `high_risk_merchant_fee` enum value to the `data/items/type` response property for the response status `200`

[Change history](https://skmtc.dev/whop/apis/whop-api/changes/payments/:id/fees/get.md)

---

[API](https://skmtc.dev/whop/apis/whop-api.md) · [All operations](https://skmtc.dev/whop/apis/whop-api/llms.txt) · [OpenAPI document](https://skmtc.dev/whop/apis/whop-api/revisions/d629b0d5d839?raw)
