Monta
Monta API

Tariff


Retrieve all tariffs.

GET
https://partner-api.monta.com
/api/v1/tariffs

Required scope: tariffs:read

Retrieve all tariffs. › query Parameters

countryAreaId
​integer · int64

Country area id of the tariff

operatorId
​

Operator id of the tariff (taken from the consumer)

externalId
​

External id of the tariff

teamId
​

Team id of the tariff

countryId
​

Country id of the tariff

zip
​

Zip code of the tariff

Retrieve all tariffs. › Responses

All tariffs

externalId
​string · required

External id of the tariff

Example: 3143
name
​string · required

Name of the tariff

Example: Cerius
description
​string · required

Description of the tariff

Example: TariffDescription
zipCodes
​string[] · required

Zip codes of the tariff

Example: [5610,5960]
tariffType
​string · enum · required

Type of the tariff

Enum values:
WEEKLY
DYNAMIC
Example: WEEKLY
timeZone
​string · required

Time zone of the tariff

Example: Europe/Copenhagen
area
​string · required

Area of the tariff

Example: Jylland
createdAt
​string · date-time · required

Creation date of the tariff

Example: 2023-03-23T14:54:56Z
id
​integer · int64

Id of the tariff

Example: 1
countryId
​integer · int64

Country Id of the tariff

Example: 194
countryAreaId
​integer | null · int64

Country area Id of the tariff

Example: 1
currencyId
​integer · int64

Currency Id of the tariff

Example: 1
teamId
​integer | null · int64

Team Id of the tariff

Example: 1
operatorId
​integer | null · int64

Operator Id of the tariff

Example: 1
pricesWithVat
​boolean

Indicates if VAT is already in the price of the tariff

Example: true
active
​boolean

Indicates if the Tariff is active or not

Example: true
customerType
​string · enum

Customer type of the tariff

Enum values:
A_ZERO
A_HIGH
A_LOW
B_HIGH
B_LOW
C_CUSTOMER
Example: B_HIGH
updatedAt
​string | null · date-time

Last update date of the tariff

Example: 2023-03-23T16:54:56Z

Create a new Tariff.

POST
https://partner-api.monta.com
/api/v1/tariffs

Required scope: tariffs:write
Note: Once you are done with creating/updating tariffs and its components you have to call the create-prices endpoint to create the prices for the tariff.

Create a new Tariff. › Request Body

externalId
​string · required

external id

Example: 1
name
​string · required

Radius Elnet A/S

Example:
description
​string · required

Short description of this tariff

Example: Net tariff A high
countryId
​integer · int64 · required

Id of the country where the tariff is applicable

Example: 1
currencyId
​integer · int64 · required

Id of the currency in which the tariff is applicable

Example: 1
pricesWithVat
​boolean · required

Indication if prices are with vat

Example: true
zipCodes
​string[] · required

Zip codes where this tariff is applicable

Example: ["2200","2100"]
timeZone
​string · required

What time zone is the tariff active in

Example: Europe/Copenhagen
area
​string · required

Human description of the area the tariff is active in

Example: Fyn
countryAreaId
​integer | null · int64

Id of the country area where the tariff is applicable

Example: 1
teamId
​integer | null · int64

Team id

Example: 1
tariffType
​string · enum

Dynamic or weekly

Enum values:
WEEKLY
DYNAMIC
Example: WEEKLY
active
​boolean

Indication if this tariff is active

Example: false
customerType
​string · enum

What kind of customer types are the tariff for?

Enum values:
A_ZERO
A_HIGH
A_LOW
B_HIGH
B_LOW
C_CUSTOMER
Example: C_CUSTOMER

Create a new Tariff. › Responses

New Tariff

externalId
​string · required

External id of the tariff

Example: 3143
name
​string · required

Name of the tariff

Example: Cerius
description
​string · required

Description of the tariff

Example: TariffDescription
zipCodes
​string[] · required

Zip codes of the tariff

Example: [5610,5960]
tariffType
​string · enum · required

Type of the tariff

Enum values:
WEEKLY
DYNAMIC
Example: WEEKLY
timeZone
​string · required

Time zone of the tariff

Example: Europe/Copenhagen
area
​string · required

Area of the tariff

Example: Jylland
createdAt
​string · date-time · required

Creation date of the tariff

Example: 2023-03-23T14:54:56Z
id
​integer · int64

Id of the tariff

Example: 1
countryId
​integer · int64

Country Id of the tariff

Example: 194
countryAreaId
​integer | null · int64

Country area Id of the tariff

Example: 1
currencyId
​integer · int64

Currency Id of the tariff

Example: 1
teamId
​integer | null · int64

Team Id of the tariff

Example: 1
operatorId
​integer | null · int64

Operator Id of the tariff

Example: 1
pricesWithVat
​boolean

Indicates if VAT is already in the price of the tariff

Example: true
active
​boolean

Indicates if the Tariff is active or not

Example: true
customerType
​string · enum

Customer type of the tariff

Enum values:
A_ZERO
A_HIGH
A_LOW
B_HIGH
B_LOW
C_CUSTOMER
Example: B_HIGH
updatedAt
​string | null · date-time

Last update date of the tariff

Example: 2023-03-23T16:54:56Z

Retrieve public grid tariffs with period schedules.

GET
https://partner-api.monta.com
/api/v1/tariffs/grid

Returns public DSO/TSO grid tariffs with their period groups and pricing schedules. Required scope: tariffs:read

Availability: This endpoint is not available by default. It must be explicitly enabled for your operator account upon request. Please contact your Monta Business Partner to request access to this feature.

Retrieve public grid tariffs with period schedules. › query Parameters

countryId
​integer · int64

Filter by country (e.g., 194 for Denmark)

periodGroupsYear
​

Filter period groups by year (e.g., 2026)

name
​string

Filter by tariff name

Retrieve public grid tariffs with period schedules. › Responses

List of public grid tariffs

externalId
​string · required

External id of the tariff

Example: 3143
name
​string · required

Name of the tariff

Example: Cerius
description
​string · required

Description of the tariff

Example: DSO tariff for Cerius grid area
zipCodes
​string[] · required

Zip codes covered by this tariff

Example: ["5610","5960"]
tariffType
​string · enum · required

Type of the tariff

Enum values:
WEEKLY
DYNAMIC
Example: WEEKLY
timeZone
​string · required

Time zone of the tariff

Example: Europe/Copenhagen
area
​string · required

Area of the tariff

Example: Jylland
createdAt
​string · date-time · required

Creation date of the tariff

Example: 2023-03-23T14:54:56Z
​GridTariffPeriodGroup[] · required

Period groups with pricing schedules

id
​integer · int64

Id of the tariff

Example: 1
countryId
​integer · int64

Country Id of the tariff

Example: 194
countryAreaId
​integer | null · int64

Country area Id of the tariff

Example: 1
currencyId
​integer · int64

Currency Id of the tariff

Example: 1
pricesWithVat
​boolean

Indicates if VAT is already in the price of the tariff

Example: false
active
​boolean

Indicates if the tariff is active

Example: true
customerType
​string · enum

Customer type of the tariff

Enum values:
A_ZERO
A_HIGH
A_LOW
B_HIGH
B_LOW
C_CUSTOMER
Example: B_HIGH
updatedAt
​string | null · date-time

Last update date of the tariff

Example: 2023-03-23T16:54:56Z

Retrieve your tariff and prices.

GET
https://partner-api.monta.com
/api/v1/tariffs/{tariffId}

Required scope: tariffs:read

Retrieve your tariff and prices. › path Parameters

tariffId
​integer · int64 · required

Retrieve your tariff and prices. › query Parameters

end
​string · date-time

Filter to retrieve charges where createdAt <= end (ISO8601: yyyy-MM-ddTHH:mm:ssZ)

Example: 2022-05-22T09:30:03Z
start
​string · date-time

Filter to retrieve tariffs where createdAt >= start (ISO8601: yyyy-MM-ddTHH:mm:ssZ)

Example: 2022-05-22T09:30:03Z

Retrieve your tariff and prices. › Responses

Tariff with provided id

​object · required

tariff

​Price[] · required

list of the tariff prices

​object

Price specification


Update an existing Tariff.

PUT
https://partner-api.monta.com
/api/v1/tariffs/{tariffId}

Required scope: tariffs:write

Note: Once you are done with creating/updating tariffs and its components you have to call the create-prices endpoint to create the prices for the tariff.

Update an existing Tariff. › path Parameters

tariffId
​integer · int64 · required

Update an existing Tariff. › Request Body

externalId
​string · required

external id

Example: 1
name
​string · required

Radius Elnet A/S

Example:
description
​string · required

Short description of this tariff

Example: Net tariff A high
countryId
​integer · int64 · required

Id of the country where the tariff is applicable

Example: 1
currencyId
​integer · int64 · required

Id of the currency in which the tariff is applicable

Example: 1
pricesWithVat
​boolean · required

Indication if prices are with vat

Example: true
active
​boolean · required

Indication if this tariff is active

Example: true
timeZone
​string · required

What timezone is the tariff active in

Example: Europe/Copenhagen
area
​string · required

Human description of the area the tariff is active in

Example: Fyn
countryAreaId
​integer | null · int64

Id of the country area where the tariff is applicable

Example: 1
teamId
​integer | null · int64

Team id

Example: 1
zipCodes
​array | null

Zip codes where this tariff is applicable

Example: ["2200","2100"]
tariffType
​string · enum

Dynamic or weekly

Enum values:
WEEKLY
DYNAMIC
Example: WEEKLY
customerType
​string · enum

What kind of customer types are the tariff for?

Enum values:
A_ZERO
A_HIGH
A_LOW
B_HIGH
B_LOW
C_CUSTOMER
Example: c_customer

Update an existing Tariff. › Responses

Updated Tariff

externalId
​string · required

External id of the tariff

Example: 3143
name
​string · required

Name of the tariff

Example: Cerius
description
​string · required

Description of the tariff

Example: TariffDescription
zipCodes
​string[] · required

Zip codes of the tariff

Example: [5610,5960]
tariffType
​string · enum · required

Type of the tariff

Enum values:
WEEKLY
DYNAMIC
Example: WEEKLY
timeZone
​string · required

Time zone of the tariff

Example: Europe/Copenhagen
area
​string · required

Area of the tariff

Example: Jylland
createdAt
​string · date-time · required

Creation date of the tariff

Example: 2023-03-23T14:54:56Z
id
​integer · int64

Id of the tariff

Example: 1
countryId
​integer · int64

Country Id of the tariff

Example: 194
countryAreaId
​integer | null · int64

Country area Id of the tariff

Example: 1
currencyId
​integer · int64

Currency Id of the tariff

Example: 1
teamId
​integer | null · int64

Team Id of the tariff

Example: 1
operatorId
​integer | null · int64

Operator Id of the tariff

Example: 1
pricesWithVat
​boolean

Indicates if VAT is already in the price of the tariff

Example: true
active
​boolean

Indicates if the Tariff is active or not

Example: true
customerType
​string · enum

Customer type of the tariff

Enum values:
A_ZERO
A_HIGH
A_LOW
B_HIGH
B_LOW
C_CUSTOMER
Example: B_HIGH
updatedAt
​string | null · date-time

Last update date of the tariff

Example: 2023-03-23T16:54:56Z

Create the prices for a given tariff within a given period of time.

POST
https://partner-api.monta.com
/api/v1/tariffs/{tariffId}/create-prices

Required scope: tariffs:write
Note: Once you are done with creating/updating tariffs and its components you have to call this endpoint to create the prices for the tariff.

Create the prices for a given tariff within a given period of time. › path Parameters

tariffId
​integer · int64 · required

Create the prices for a given tariff within a given period of time. › Request Body

start
​string · date · required

Start date that marks when prices should be created for a tariff (yyyy-MM-dd)

Example: 2023-01-01
end
​string · date · required

End date that marks when prices should be created for a tariff (yyyy-MM-dd)

Example: 2023-01-31

Create the prices for a given tariff within a given period of time. › Responses

Tariff prices created

​object · required

tariff

​Price[] · required

list of the tariff prices

​object

Price specification


List dynamic prices for a DYNAMIC tariff.

GET
https://partner-api.monta.com
/api/v1/tariffs/{tariffId}/dynamic-prices

Returns the time-series price entries stored on a DYNAMIC tariff. Window the result with timeStartFrom / timeStartTo, and narrow further by source or resolution. The currency of each price is the parent tariff's currency.

Required scope: tariffs:read

List dynamic prices for a DYNAMIC tariff. › path Parameters

tariffId
​integer · int64 · required

List dynamic prices for a DYNAMIC tariff. › query Parameters

perPage
​

Number of items per page (1..100)

page
​integer · int32

Page number to retrieve (0-indexed)

Default: 0

List dynamic prices for a DYNAMIC tariff. › Responses

Page of dynamic price entries

​DynamicTariffPrice[] · required
​MontaPage.Meta · required

Upsert dynamic prices on a DYNAMIC tariff.

PATCH
https://partner-api.monta.com
/api/v1/tariffs/{tariffId}/dynamic-prices

Bulk-upserts price-interval entries on a DYNAMIC tariff. All entries in one request share the same resolution and source. The conflict key is (timeStart, resolution) — re-submitted entries update their price, timeEnd, and source in place.

The operation is all-or-nothing: if any entry is misaligned to its resolution grid, has the wrong interval length, or duplicates a timeStart within the request body, the entire batch is rejected with 400 BAD_REQUEST and no rows are written. Maximum 5000 entries per request.

Returns 204 No Content on success.

Clients may send an Idempotency-Key header for safe retry semantics; the header is currently accepted and ignored (no enforcement yet).

Required scope: tariffs:write

Upsert dynamic prices on a DYNAMIC tariff. › path Parameters

tariffId
​integer · int64 · required

Upsert dynamic prices on a DYNAMIC tariff. › Headers

Idempotency-Key
​

Opaque client-supplied key used for safe retries. Accepted today; behavior not yet enforced.

Upsert dynamic prices on a DYNAMIC tariff. › Request Body

Bulk-upsert dynamic price entries on a DYNAMIC tariff. All entries in one request share the same `resolution` and `source`. The operation is all-or-nothing: if any entry is misaligned, mis-sized, or duplicated, the entire batch is rejected with 400.
resolution
​string · enum · required

Time granularity that every entry's [timeStart, timeEnd) must conform to.

Enum values:
quarter-hour
half-hour
hour
Example: hour
source
​string · enum · required

Origin of the price data.

Enum values:
dagster
manual
dso-import
Example: dagster
​DynamicPriceEntry[] · minItems: 1 · maxItems: 5000 · required

Price-interval entries to upsert. Each entry's (timeStart, resolution) is the conflict key — a re-submitted entry updates price, timeEnd, and source in place. Max 5000 entries per request.

Upsert dynamic prices on a DYNAMIC tariff. › Responses

Prices upserted

No data returned

Delete dynamic prices in a time window.

DELETE
https://partner-api.monta.com
/api/v1/tariffs/{tariffId}/dynamic-prices

Deletes all dynamic-price entries on a DYNAMIC tariff whose timeStart falls within [timeStartFrom, timeStartTo). The window must span between 1 and 90 days inclusive; outside that range the request is rejected with 400 BAD_REQUEST and nothing is deleted.

Returns 204 No Content on success regardless of whether any rows actually matched the window (idempotent per HTTP semantics).

Required scope: tariffs:delete

Delete dynamic prices in a time window. › path Parameters

tariffId
​integer · int64 · required

Delete dynamic prices in a time window. › query Parameters

timeStartFrom
​string · date-time · required

Inclusive lower bound for timeStart (UTC, RFC 3339)

Example: 2026-01-01T00:00:00Z
timeStartTo
​required

Exclusive upper bound for timeStart (UTC, RFC 3339)

Delete dynamic prices in a time window. › Responses

Window deleted (or already empty)

No data returned