# CustomFeeDefinition

A model the API reference uses in a request or a response. The operation pages link every field typed as this model here.

Represents an arbitrary custom fee or charge defined by a reseller or merchant.
This structure is shared by both platform-level billing and merchant-created invoices.

## Fields
- `label` (string): Display label for the fee (shown in UI and reports). (nullable)
- `code` (string): Internal code for programmatic or accounting reference. (nullable)
- `chargeType` ([ChargeType](https://devportal.demo.winkpg.io/docs/api/models/ChargeType.md)): Classification of the charge (e.g. platform fee, merchant product, tax, discount).
  Values:
  - `PlatformFee`
  - `MerchantFee`
  - `Tax`
  - `Discount`
  - `Adjustment`
- `frequency` ([FeeFrequency](https://devportal.demo.winkpg.io/docs/api/models/FeeFrequency.md)): Indicates billing frequency (one-time, recurring, per-transaction, etc.).
  Values:
  - `OneTime`
  - `Recurring`
  - `PerTransaction`
  - `Annual`
  - `Custom`
- `period` ([BillingPeriod](https://devportal.demo.winkpg.io/docs/api/models/BillingPeriod.md)): Defines the billing period interval (e.g. every 1 month, every 3 months).
  Fields:
  - `cycle` ([BillingCycle](https://devportal.demo.winkpg.io/docs/api/models/BillingCycle.md)): Type of recurrence (monthly, quarterly, etc.).
    Values:
    - `OneTime`
    - `Daily`
    - `Weekly`
    - `Monthly`
    - `Quarterly`
    - `Annual`
  - `interval` (integer(int32)): Number of cycles between billings (e.g. every 3 months).
  - `nextBillingDate` (string(date-time)): The next scheduled billing date for this item. (nullable)
- `category` (string): Category for grouping related fees (e.g. Add-Ons, Fraud Tools). (nullable)
- `strategy` ([BillingPricingStrategy](https://devportal.demo.winkpg.io/docs/api/models/BillingPricingStrategy.md)): Pricing model for this fee (fixed, percentage, or tiered).
  Values:
  - `Fixed`
  - `Percentage`
  - `Tiered`
- `percentageRate` (number(double)): The percentage rate (used when Strategy = Percentage). (nullable)
- `tiers` (array<[TierDefinition](https://devportal.demo.winkpg.io/docs/api/models/TierDefinition.md)>): Tier definitions (used when Strategy = Tiered). (nullable)
  Fields of each item:
  - `threshold` (number(double)): The threshold quantity or amount for this tier to apply.
  - `rate` (number(double)): The rate (or flat charge) for this tier.
- `amounts` ([FeePair](https://devportal.demo.winkpg.io/docs/api/models/FeePair.md)): The buy/sell values for this fee (used when Strategy = Fixed).
  Fields:
  - `buy` (number(double)): Gets or sets the buy-side fee amount.
  - `sell` (number(double)): Gets or sets the sell fee amount for the fee pair.
- `currency` (string): Currency for this fee (overrides plan-level currency if set). (nullable)
- `taxCode` (string): Optional tax code for integration with tax engines or accounting systems. (nullable)
- `showOnInvoice` (boolean): Determines whether this item should be visible on customer invoices.
- `isActive` (boolean): Indicates if this fee is currently active.
- `metadata` (object): Arbitrary metadata for extensibility (e.g., tax region, GL mapping, reseller visibility). (nullable)

## See also

- [All documentation](https://devportal.demo.winkpg.io/llms.txt): the machine-readable index of every public page on this site.
