---
title: "Add a fee to a price group"
method: POST
path: "/api/v1/price-groups/{id}/fees"
tags: ["Price Groups"]
---

# Add a fee to a price group

`POST /api/v1/price-groups/{id}/fees`

Required scope: `price-groups:write` </br>Organization authorization: `supported`

## Path parameters

- `id` integer, required

## Request body

- CreateOrUpdatePricingDto
  - `description` string, nullable — Name of the pricing. It is null when it's the master price
  - `type` 'kwh' | 'min' | 'spot' | 'tariff' | 'starting' | 'charging' | 'idle' | 'minute', required
  - `endAtFullyCharged` boolean, required — Used by the Minute fee. True means it will stop charging the fee when the charge is complete. False means it will stop charging the fee when the cable is unplugged
  - `vat` boolean, required — Used by Spot Price. True means it will add 25% VAT in the price calculations
  - `percentage` number, nullable — Used by Spot Price. It will multiply the fallback price by this percentage
  - `tariffId` integer, nullable — The id of the selected Tariff
  - `tagId` integer, nullable — The id of the selected charge pricing tag
  - `applyAfterMinutes` integer, nullable — Used by Charging, Minute and Idle Fees. After how many minutes the fee should start being applied.
  - `price` number, required — The price of this Fee or Master price, </br>**Note**: the master price cannot be a negative value
  - `priceMin` number, nullable — Used by spot price. The minimum that the raw spot price can be. This will be used in calculations if spot price is lower than this
  - `priceMax` number, nullable — Used by spot price. The maximum that the raw spot price can be. This will be used in calculations if spot price is higher than this
  - `feePriceMax` number, nullable — Used by Idle fee. The maximum the user will be charged for the idle fee
  - `additional` CreateAdditionalPricingDto[], nullable — Used by spot price. Additional absolute money or percentages values to be added on top of the previous calculations
    - `type` 'absolute' | 'percentage', required
    - `value` number, required — The value of this additional pricing.
    - `title` string, nullable — A title for this additional pricing.
  - `from` string, date-time, nullable — DateTime "from" time to which this pricing should apply from
  - `to` string, date-time, nullable — DateTime "to" time to which this pricing should apply to
  - `interval` 'hourly' | 'quarterHourly'
  - `gracePeriods` CreateOrUpdateGracePeriod[], nullable — Grace periods during which idle fees are not applied
    - `startTime` string, partial-time, required — Start time for the grace period
    - `endTime` string, partial-time, required — End time for the grace period

## Response `201`

Fee successfully added, returns the updated price group

- PriceGroup
  - `id` integer, required — Id of the price group
  - `teamId` integer, nullable — Id of the team for which this price group belongs
  - `name` string, required — Name of the price group
  - `default` boolean
  - `type` 'public' | 'member' | 'sponsored' | 'cost' | 'roaming' | 'reimbursement' | 'member_cost' | 'other', required
  - `masterPrice` Pricing, required
    - `id` integer, required — Id of the pricing
    - `description` string, nullable — Name of the pricing. It will be null when it's the master price
    - `type` 'kwh' | 'min' | 'spot' | 'tariff' | 'starting' | 'charging' | 'idle' | 'minute', required
    - `master` boolean, required — If this is the master price (not a fee)
    - `dynamicPricing` boolean, required — If it's a dynamic price. It will be true if a `tariffId` is present.
    - `endAtFullyCharged` boolean, required — Used by the Minute fee and `min` master price. True means it will stop applying the pricing when the charge is complete. False means it will stop charging the fee when the cable is unplugged
    - `vat` boolean, required — Used by Spot Price. True means it will add % of VAT on top the price calculations</br>*Note*: `vat` rates differ from country to country.
    - `percentage` number, float, nullable — Used by Spot Price. It will multiply the fallback price by this percentage
    - `tariffId` integer, nullable — The id of the selected Tariff
    - `updatedAt` string, date-time, required — When the pricing was last updated
    - `applyAfterMinutes` integer, nullable — Used by Charging, Minute and Idle Fees. After how many minutes the fee should start being applied.
    - `price` Money, required
      - `amount` integer, required — The amount of money
      - `currency` Currency, required
        - `id` integer, nullable — id of the currency
        - `master` boolean — Whether the currency is master or not, master meaning the default currency
        - `identifier` string, required — 3 characters identifier
        - `name` string — Name of the currency
        - `decimals` integer, required — How many decimals the currency has
      - `locale` string, required — Current user locale
    - `priceMin` Money
      - `amount` integer, required — The amount of money
      - `currency` Currency, required
        - `id` integer, nullable — id of the currency
        - `master` boolean — Whether the currency is master or not, master meaning the default currency
        - `identifier` string, required — 3 characters identifier
        - `name` string — Name of the currency
        - `decimals` integer, required — How many decimals the currency has
      - `locale` string, required — Current user locale
    - `priceMax` Money
      - `amount` integer, required — The amount of money
      - `currency` Currency, required
        - `id` integer, nullable — id of the currency
        - `master` boolean — Whether the currency is master or not, master meaning the default currency
        - `identifier` string, required — 3 characters identifier
        - `name` string — Name of the currency
        - `decimals` integer, required — How many decimals the currency has
      - `locale` string, required — Current user locale
    - `feePriceMax` Money
      - `amount` integer, required — The amount of money
      - `currency` Currency, required
        - `id` integer, nullable — id of the currency
        - `master` boolean — Whether the currency is master or not, master meaning the default currency
        - `identifier` string, required — 3 characters identifier
        - `name` string — Name of the currency
        - `decimals` integer, required — How many decimals the currency has
      - `locale` string, required — Current user locale
    - `additional` AdditionalPricing[], nullable — Used by spot price. Additional absolute money or percentages values to be added on top of the previous calculations
      - `type` 'absolute' | 'percentage', required
      - `value` Money, required
        - `amount` integer, required — The amount of money
        - `currency` Currency, required
          - `id` integer, nullable — id of the currency
          - `master` boolean — Whether the currency is master or not, master meaning the default currency
          - `identifier` string, required — 3 characters identifier
          - `name` string — Name of the currency
          - `decimals` integer, required — How many decimals the currency has
        - `locale` string, required — Current user locale
      - `title` string, nullable — A title for this additional pricing.
    - `from` string, date-time, nullable — DateTime "from" time to which this pricing should apply from
    - `to` string, date-time, nullable — DateTime "to" time to which this pricing should apply to
    - `tagId` integer, nullable — The id of the charge pricing tag for this pricing
    - `interval` 'hourly' | 'quarterHourly'
    - `gracePeriods` GracePeriod[], nullable — Grace periods during which idle fees are not applied
      - `startTime` string, partial-time, required — Start time for the grace period
      - `endTime` string, partial-time, required — End time for the grace period
  - `tariffs` Pricing[], nullable, required — Tariffs of the price group
    - `id` integer, required — Id of the pricing
    - `description` string, nullable — Name of the pricing. It will be null when it's the master price
    - `type` 'kwh' | 'min' | 'spot' | 'tariff' | 'starting' | 'charging' | 'idle' | 'minute', required
    - `master` boolean, required — If this is the master price (not a fee)
    - `dynamicPricing` boolean, required — If it's a dynamic price. It will be true if a `tariffId` is present.
    - `endAtFullyCharged` boolean, required — Used by the Minute fee and `min` master price. True means it will stop applying the pricing when the charge is complete. False means it will stop charging the fee when the cable is unplugged
    - `vat` boolean, required — Used by Spot Price. True means it will add % of VAT on top the price calculations</br>*Note*: `vat` rates differ from country to country.
    - `percentage` number, float, nullable — Used by Spot Price. It will multiply the fallback price by this percentage
    - `tariffId` integer, nullable — The id of the selected Tariff
    - `updatedAt` string, date-time, required — When the pricing was last updated
    - `applyAfterMinutes` integer, nullable — Used by Charging, Minute and Idle Fees. After how many minutes the fee should start being applied.
    - `price` Money, required
      - `amount` integer, required — The amount of money
      - `currency` Currency, required
        - `id` integer, nullable — id of the currency
        - `master` boolean — Whether the currency is master or not, master meaning the default currency
        - `identifier` string, required — 3 characters identifier
        - `name` string — Name of the currency
        - `decimals` integer, required — How many decimals the currency has
      - `locale` string, required — Current user locale
    - `priceMin` Money
      - `amount` integer, required — The amount of money
      - `currency` Currency, required
        - `id` integer, nullable — id of the currency
        - `master` boolean — Whether the currency is master or not, master meaning the default currency
        - `identifier` string, required — 3 characters identifier
        - `name` string — Name of the currency
        - `decimals` integer, required — How many decimals the currency has
      - `locale` string, required — Current user locale
    - `priceMax` Money
      - `amount` integer, required — The amount of money
      - `currency` Currency, required
        - `id` integer, nullable — id of the currency
        - `master` boolean — Whether the currency is master or not, master meaning the default currency
        - `identifier` string, required — 3 characters identifier
        - `name` string — Name of the currency
        - `decimals` integer, required — How many decimals the currency has
      - `locale` string, required — Current user locale
    - `feePriceMax` Money
      - `amount` integer, required — The amount of money
      - `currency` Currency, required
        - `id` integer, nullable — id of the currency
        - `master` boolean — Whether the currency is master or not, master meaning the default currency
        - `identifier` string, required — 3 characters identifier
        - `name` string — Name of the currency
        - `decimals` integer, required — How many decimals the currency has
      - `locale` string, required — Current user locale
    - `additional` AdditionalPricing[], nullable — Used by spot price. Additional absolute money or percentages values to be added on top of the previous calculations
      - `type` 'absolute' | 'percentage', required
      - `value` Money, required
        - `amount` integer, required — The amount of money
        - `currency` Currency, required
          - `id` integer, nullable — id of the currency
          - `master` boolean — Whether the currency is master or not, master meaning the default currency
          - `identifier` string, required — 3 characters identifier
          - `name` string — Name of the currency
          - `decimals` integer, required — How many decimals the currency has
        - `locale` string, required — Current user locale
      - `title` string, nullable — A title for this additional pricing.
    - `from` string, date-time, nullable — DateTime "from" time to which this pricing should apply from
    - `to` string, date-time, nullable — DateTime "to" time to which this pricing should apply to
    - `tagId` integer, nullable — The id of the charge pricing tag for this pricing
    - `interval` 'hourly' | 'quarterHourly'
    - `gracePeriods` GracePeriod[], nullable — Grace periods during which idle fees are not applied
      - `startTime` string, partial-time, required — Start time for the grace period
      - `endTime` string, partial-time, required — End time for the grace period
  - `fees` Pricing[], nullable — Fees of the price group
    - `id` integer, required — Id of the pricing
    - `description` string, nullable — Name of the pricing. It will be null when it's the master price
    - `type` 'kwh' | 'min' | 'spot' | 'tariff' | 'starting' | 'charging' | 'idle' | 'minute', required
    - `master` boolean, required — If this is the master price (not a fee)
    - `dynamicPricing` boolean, required — If it's a dynamic price. It will be true if a `tariffId` is present.
    - `endAtFullyCharged` boolean, required — Used by the Minute fee and `min` master price. True means it will stop applying the pricing when the charge is complete. False means it will stop charging the fee when the cable is unplugged
    - `vat` boolean, required — Used by Spot Price. True means it will add % of VAT on top the price calculations</br>*Note*: `vat` rates differ from country to country.
    - `percentage` number, float, nullable — Used by Spot Price. It will multiply the fallback price by this percentage
    - `tariffId` integer, nullable — The id of the selected Tariff
    - `updatedAt` string, date-time, required — When the pricing was last updated
    - `applyAfterMinutes` integer, nullable — Used by Charging, Minute and Idle Fees. After how many minutes the fee should start being applied.
    - `price` Money, required
      - `amount` integer, required — The amount of money
      - `currency` Currency, required
        - `id` integer, nullable — id of the currency
        - `master` boolean — Whether the currency is master or not, master meaning the default currency
        - `identifier` string, required — 3 characters identifier
        - `name` string — Name of the currency
        - `decimals` integer, required — How many decimals the currency has
      - `locale` string, required — Current user locale
    - `priceMin` Money
      - `amount` integer, required — The amount of money
      - `currency` Currency, required
        - `id` integer, nullable — id of the currency
        - `master` boolean — Whether the currency is master or not, master meaning the default currency
        - `identifier` string, required — 3 characters identifier
        - `name` string — Name of the currency
        - `decimals` integer, required — How many decimals the currency has
      - `locale` string, required — Current user locale
    - `priceMax` Money
      - `amount` integer, required — The amount of money
      - `currency` Currency, required
        - `id` integer, nullable — id of the currency
        - `master` boolean — Whether the currency is master or not, master meaning the default currency
        - `identifier` string, required — 3 characters identifier
        - `name` string — Name of the currency
        - `decimals` integer, required — How many decimals the currency has
      - `locale` string, required — Current user locale
    - `feePriceMax` Money
      - `amount` integer, required — The amount of money
      - `currency` Currency, required
        - `id` integer, nullable — id of the currency
        - `master` boolean — Whether the currency is master or not, master meaning the default currency
        - `identifier` string, required — 3 characters identifier
        - `name` string — Name of the currency
        - `decimals` integer, required — How many decimals the currency has
      - `locale` string, required — Current user locale
    - `additional` AdditionalPricing[], nullable — Used by spot price. Additional absolute money or percentages values to be added on top of the previous calculations
      - `type` 'absolute' | 'percentage', required
      - `value` Money, required
        - `amount` integer, required — The amount of money
        - `currency` Currency, required
          - `id` integer, nullable — id of the currency
          - `master` boolean — Whether the currency is master or not, master meaning the default currency
          - `identifier` string, required — 3 characters identifier
          - `name` string — Name of the currency
          - `decimals` integer, required — How many decimals the currency has
        - `locale` string, required — Current user locale
      - `title` string, nullable — A title for this additional pricing.
    - `from` string, date-time, nullable — DateTime "from" time to which this pricing should apply from
    - `to` string, date-time, nullable — DateTime "to" time to which this pricing should apply to
    - `tagId` integer, nullable — The id of the charge pricing tag for this pricing
    - `interval` 'hourly' | 'quarterHourly'
    - `gracePeriods` GracePeriod[], nullable — Grace periods during which idle fees are not applied
      - `startTime` string, partial-time, required — Start time for the grace period
      - `endTime` string, partial-time, required — End time for the grace period
  - `teamMemberCount` integer, nullable — To how many team members the price group has been applied to
  - `chargePointCount` integer, nullable — To how many charge points the price group has been applied to
  - `appliedTo` PriceGroupAppliedTo, required
    - `chargePoints` integer[], required — Id's of the ChargePoints this Pricegroup has been applied to
    - `sites` integer[], required — Id's of the Sites this Pricegroup has been applied to
    - `teamMembers` integer[], required — Id's of the Team Members this Pricegroup has been applied to
  - `createdAt` string, date-time, required — When the price group was created
  - `updatedAt` string, date-time, nullable — When the price group was updated

## Other responses

- `400` — The request is invalid
- `401` — Consumer with provided credentials was not found
- `403` — Operator doesn't have access to resource
- `404` — Price group not found

---

[API](https://skmtc.net/monta/apis/monta-partner-api.md) · [All operations](https://skmtc.net/monta/apis/monta-partner-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/monta/monta-partner-api/versions/517e18f11015/schema)
