import type * as Whop from "../index.js"; export interface AccountFee { /** Whether the caller may change this fee through `PATCH`. Depends on who is asking. */ adjustable: boolean; /** Which group of the fee schedule this fee belongs to, for grouping in a UI. */ category: AccountFee.Category; /** The platform rate before custom or inherited pricing is applied. Its `percentage` and `fixed` are `null` when a connected account's fees are read without access to its parent account. */ default: Whop.AccountFeeRate; /** When a custom or inherited rate expires and the fee returns to `default`, as an ISO 8601 timestamp. `null` when the default applies, the rate does not expire, or a connected account's fees are read without access to its parent account. */ ends_at: string | null; /** The amount charged per event in effect. `null` when the fee has no fixed component. */ fixed: Whop.Money | null; /** The highest rate the caller may set. `null` when the fee is not adjustable or the caller is not capped. */ maximum: Whop.AccountFeeRate | null; /** The lowest rate the caller may set, present only when `adjustable`. */ minimum: Whop.AccountFeeRate | null; /** The percentage of the transaction in effect, where `2` means 2%. `null` when the fee has no percentage component. */ percentage: number | null; /** The acquirer region `percentage` and `fixed` describe, for a fee that varies by where the money is processed. `null` for a fee that does not vary by region. */ region: AccountFee.Region | null; /** The rate, source, default, reset rate, and editable limits in every other region this fee varies by, keyed by region. Empty for a fee that does not vary by region. */ regions: Record; /** The rate that takes effect when this account's custom rate is cleared, including inherited pricing. Its `percentage` and `fixed` are `null` when a connected account's fees are read without access to its parent account. */ reset: Whop.AccountFeeRate; /** Where the rate in effect comes from: `default` is the platform rate, `custom` a rate negotiated for this account, and `inherited` a rate negotiated by the platform this account is connected to. `null` when a connected account's fees are read without access to its parent account. */ source: AccountFee.Source | null; /** Why the caller may not change this fee, or `null` when `adjustable`. `not_permitted` when the caller has no say over it. */ unadjustable_reason: AccountFee.UnadjustableReason | null; } export declare namespace AccountFee { /** Which group of the fee schedule this fee belongs to, for grouping in a UI. */ const Category: { readonly Payments: "payments"; readonly Disputes: "disputes"; readonly Optimization: "optimization"; readonly Payouts: "payouts"; readonly Other: "other"; }; type Category = (typeof Category)[keyof typeof Category]; /** The acquirer region `percentage` and `fixed` describe, for a fee that varies by where the money is processed. `null` for a fee that does not vary by region. */ const Region: { readonly Usa: "usa"; readonly Eu: "eu"; readonly Ca: "ca"; readonly Uk: "uk"; readonly Au: "au"; readonly Co: "co"; readonly Mx: "mx"; readonly Ke: "ke"; readonly Cl: "cl"; readonly Pe: "pe"; readonly Ar: "ar"; readonly Cr: "cr"; readonly Gt: "gt"; readonly Uy: "uy"; readonly Br: "br"; readonly Ph: "ph"; readonly Ng: "ng"; readonly My: "my"; }; type Region = (typeof Region)[keyof typeof Region]; /** Where the rate in effect comes from: `default` is the platform rate, `custom` a rate negotiated for this account, and `inherited` a rate negotiated by the platform this account is connected to. `null` when a connected account's fees are read without access to its parent account. */ const Source: { readonly Default: "default"; readonly Custom: "custom"; readonly Inherited: "inherited"; }; type Source = (typeof Source)[keyof typeof Source]; /** Why the caller may not change this fee, or `null` when `adjustable`. `not_permitted` when the caller has no say over it. */ const UnadjustableReason: { readonly NotPermitted: "not_permitted"; }; type UnadjustableReason = (typeof UnadjustableReason)[keyof typeof UnadjustableReason]; }