Skip to content

Market API v2 (Beta)

AddressValidation

Address validation by Street & Street number & postal code & city

Validate

List all known cities for a postal code.

Input: ValidateAddressRequest

Field Type Rules Description
*tenant string Tenant scope of the request
*address enpowerx.types.PostalAddress The address to validate as a combined structure

Campaigns

Marketing campaigns.

List

List active campaigns.

Input: CampaignListRequest

Field Type Rules Description
*tenant string The tenant to query for.
page_size int32 The maximum number of items to return. 0 for default.
page_token string The next_page_token value returned from a previous List request, if any.
filter CampaignListRequest.Filter The filter to be applied on all campaigns.

Output: CampaignList

Field Type Rules Description
campaigns Campaign repeated The requested campaigns.
next_page_token string Token to retrieve the next page of results, or empty if there are no more results in the list.

ListProducts

List campaign products.

Input: CampaignProductsListRequest

Field Type Rules Description
*tenant string The tenant to query for.
*id string Campaign unique identifier.
page_size int32 The maximum number of items to return. 0 for default.
page_token string The next_page_token value returned from a previous List request, if any.
filter CampaignProductsListRequest.Filter The filter to be applied on all campaigns.

Output: CampaignProductsList

Field Type Rules Description
products CampaignProductsList.CampaignProduct repeated The requested campaign products.
next_page_token string Token to retrieve the next page of results, or empty if there are no more results in the list.

Campaign

Field Type Rules Description
*tenant string The tenant to query for.
*id string Campaign unique identifier.
*display_name string Name of a marketing campaign
type CampaignType Campaign type.
product_type CampaignProductType Campaign product type.
sales_channel SalesChannel Marketing channel of a campaign.
target_group enpowerx.types.CustomerType Type of customer targeted by a campaign.

CampaignListRequest.Filter

Field Type Rules Description
field_mask google.protobuf.FieldMask The field mask used to mark fields which shall be respected for the filter.
sales_partner string Unique id of a sales partner.
sales_channel SalesChannel Marketing channel of a campaign.
target_group enpowerx.types.CustomerType Type of customer targeted by a campaign.
campaign_type CampaignType Campaign type.
campaign_state Campaign.State Campaign state.
valid_date google.type.Date Query for campaigns that are valid beginning this date.

CampaignProductsList.CampaignProduct

Field Type Rules Description
product_code string The product code.
highest_version_name string The name of the highest version.
released_name string The name of the released version.
type string The product type.

CampaignProductsListRequest.Filter

Field Type Rules Description
field_mask google.protobuf.FieldMask The field mask used to mark fields which shall be respected for the filter.
product_type string Product type.

Campaign.State

Name Number Description
STATE_UNSPECIFIED 0 Campaign state not given.
STATE_ANY 1 Any campaign state.
STATE_ACTIVE 2 Active campaign.
STATE_INACTIVE 3 Inactive campaign.
STATE_INACTIVE_DELETED 4 Inactive and deleted campaign.

CampaignProductType

Represents the type of the energy for a marketing campaign.

Name Number Description
CAMPAIGN_PRODUCT_TYPE_UNSPECIFIED 0 The product type is unspecified.
ELECTRICITY 1 The product type is electricity.
GAS 2 The product type is gas.
ELECTRICITY_GAS 3 Hybrid product type - both gas and electricity.

CampaignType

Name Number Description
CAMPAIGN_TYPE_UNSPECIFIED 0 Unspecified campaign type.
CAMPAIGN_TYPE_STANDARD 1 Standard campaign type.
CAMPAIGN_TYPE_CLIENT_BASE 2 Existing customer campaign type.
CAMPAIGN_TYPE_PROSPECT 3 New customer campaign type.
CAMPAIGN_TYPE_DEFENSE 4 Defense customer campaign.
CAMPAIGN_TYPE_WIN_BACK 5 Win back customer campaign type.
CAMPAIGN_TYPE_PRICE_ADJUSTMENT 6 Price adjustment campaign type.
CAMPAIGN_TYPE_INTEGRATION 7 Web tariff calculation campaign type.
CAMPAIGN_TYPE_TARIFF_CHANGE 8 Tariff change campaign type.
CAMPAIGN_TYPE_BASIC_SUPPLY 9 Basic supply campaign type.

SalesChannel

Name Number Description
SALES_CHANNEL_UNSPECIFIED 0 Channel not given.
SALES_CHANNEL_ANY 1 Any sales channel.
SALES_CHANNEL_DIRECT 2 Direct sales channel.
SALES_CHANNEL_DOOR_TO_DOOR 3 Channel door to door.
SALES_CHANNEL_INBOUND 4 Inbound marketing channel.
SALES_CHANNEL_ONLINE 5 Online marketing channel.
SALES_CHANNEL_OUTBOUND 6 Outbound marketing channel.
SALES_CHANNEL_POINT_OF_SALE 7 Point of sale marketing channel.
SALES_CHANNEL_RESELLER 8 Reseller marketing channel.
SALES_CHANNEL_COMPARISON_PORTAL 9 Comparison portal marketing channel.
SALES_CHANNEL_APP 10 App channel.
SALES_CHANNEL_CROSS_SELLING 11 Cross selling channel.
SALES_CHANNEL_CUSTOMER_REFERRAL 12 Customer referral channel.

Cities

City lookup for address auto-completion.

List

List all known cities for a postal code.

Input: CityListRequest

Field Type Rules Description
*tenant string The tenant to query for.
*region string The region the cities are located in as a CLDR region code.
*postal_code string A postal code of the city (a city may have more than one).
Example: 76131 for Karlsruhe inner city

Output: CityList

Field Type Rules Description
cities City repeated The requested cities.

City

Field Type Rules Description
canonical_name string The canonical name of the city.
Example: Karlsruhe

DegreeDays

Manages degree days

Get

Get a single degree day.

Output: DegreeDay

Field Type Rules Description
*tenant string The tenant to query for.
*id string id of the degree day
*year int32 The year for which the degree day is valid.
*month google.type.Month The month for which the degree day is valid.
*value enpowerx.types.Decimal The degree day value.
month_length int32 output only days in the month
create_time google.protobuf.Timestamp output only The creation time of the degree day.
update_time google.protobuf.Timestamp output only The last update time of the degree day.

List

List all degree days.

Input: DegreeDayListRequest

Field Type Rules Description
*tenant string The tenant to list degree days for.
page_size int32 The maximum number of items to return. 0 for default.
page_token string The next_page_token value returned from a previous List request, if any.
filter DegreeDayListRequest.Filter The filter to apply to.
order_by string Comma separated list of fields to order by. Use - for descending order, e.g. "-create_time".

Output: DegreeDayListResponse

Field Type Rules Description
degree_days DegreeDay repeated The requested degree days.
total_size int32 Count of items contained in the list.
next_page_token string Token to retrieve the next page of results, or empty if there are no more results in the list.

Create

Create a new degree day.

Input: DegreeDay

Field Type Rules Description
*tenant string The tenant to query for.
*id string id of the degree day
*year int32 The year for which the degree day is valid.
*month google.type.Month The month for which the degree day is valid.
*value enpowerx.types.Decimal The degree day value.
month_length int32 output only days in the month
create_time google.protobuf.Timestamp output only The creation time of the degree day.
update_time google.protobuf.Timestamp output only The last update time of the degree day.

Output: DegreeDay

Field Type Rules Description
*tenant string The tenant to query for.
*id string id of the degree day
*year int32 The year for which the degree day is valid.
*month google.type.Month The month for which the degree day is valid.
*value enpowerx.types.Decimal The degree day value.
month_length int32 output only days in the month
create_time google.protobuf.Timestamp output only The creation time of the degree day.
update_time google.protobuf.Timestamp output only The last update time of the degree day.

Update

Update a degree day.

Input: UpdateDegreeDayRequest

Field Type Rules Description
*degree_day DegreeDay The degree day to update.
*update_mask google.protobuf.FieldMask The update mask applies to the resource. For the FieldMask definition,
see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask

Output: DegreeDay

Field Type Rules Description
*tenant string The tenant to query for.
*id string id of the degree day
*year int32 The year for which the degree day is valid.
*month google.type.Month The month for which the degree day is valid.
*value enpowerx.types.Decimal The degree day value.
month_length int32 output only days in the month
create_time google.protobuf.Timestamp output only The creation time of the degree day.
update_time google.protobuf.Timestamp output only The last update time of the degree day.

Import

Import a CSV file with degree days

Input: ImportDegreeDaysRequest

Field Type Rules Description
*tenant string The tenant to list degree days for.
*format ImportDegreeDaysRequest.Format Import format of the files.
*files bytes repeated The data to import

Output: ImportDegreeDaysResponse

Field Type Rules Description
degree_days DegreeDay repeated The degree days that were imported.

CalculateWeights

Calculate the weights for a given period

Input: CalculateWeightsRequest

Field Type Rules Description
*tenant string The tenant to calculate degree days for.
*start_date google.type.Date start date
*end_date google.type.Date end date

Output: CalculateWeightsResponse

Field Type Rules Description
factor enpowerx.types.Decimal output only the factor to apply
monthly_factors CalculateWeightsResponse.Factor output only
repeated
Monthly factors

PrepareImportDwdDegreeDaysRun

Internal: not for public consumption

Output: ImportDegreeDaysRequest stream

Field Type Rules Description
*tenant string The tenant to list degree days for.
*format ImportDegreeDaysRequest.Format Import format of the files.
*files bytes repeated The data to import

CalculateWeightsResponse.Factor

Field Type Rules Description
year int32 output only Year of the factor
month google.type.Month output only The month of the factor
factor enpowerx.types.Decimal output only Factor for the month
month_length int32 output only Month length

DegreeDayListRequest.Filter

Field Type Rules Description
years int32 repeated Filter by years
months google.type.Month repeated Filter by months

ImportDegreeDaysRequest.Format

Name Number Description
FORMAT_UNSPECIFIED 0 Unknown format
DWD 1 DWD format
MANUAL 2 Manual format

EpexSpot

Retrieve Prices.

CalculatePrice

Calculate the price for a specific period.

Input: CalculatePriceRequest

Field Type Rules Description
*tenant string The tenant to calculate prices for.
*period enpowerx.types.Period The period the price shall be calculated for.
aggregation Aggregation The aggregation function of the price's net value.
This aggregation is only applied if multiple prices match the period.
purpose Purpose The purpose the price used for (defaults to BILLING).

Output: CalculatePriceResponse

Field Type Rules Description
net_price Price The price.
unit string The unit the price series is related with (e.g "kWh", "PCS", "month", etc.)
currency_code string The price series' currency.
period enpowerx.types.Period The period the price was calculated for.

CalculatePriceSeries

Calculate the a series of prices for a specific period.

Input: CalculatePriceSeriesRequest

Field Type Rules Description
*tenant string The tenant to calculate prices for.
*period enpowerx.types.Period The period the series shall span over.
aggregation Aggregation The aggregation function of the price value.
An aggregation is required if resolution is not the default value (1h).
purpose Purpose The purpose the price is used for (defaults to BILLING).
resolution google.protobuf.Duration The time resolution between two consecutive price values (defaults to 1h).

Output: PriceSeries

Field Type Rules Description
net_prices Price repeated The price series' values.
unit string The unit the price series is related with (e.g "kWh", "PCS", "month", etc.)
currency_code string The price series' currency.
period enpowerx.types.Period The period the price was calculated for.
resolution google.protobuf.Duration The series' resolution expressed as the interval between two consecutive price values.

FailedPreconditionAggregationRequiredError

Field Type Rules Description
timestamps google.protobuf.Timestamp repeated The timestamps the prices apply for.

FailedPreconditionNotBillableError

Price

Field Type Rules Description
value enpowerx.types.Decimal The price's net value.
billable bool Indicates if the price is billable.
quality Price.Quality The quality of the price.
annotations google.protobuf.Struct The price's annotations.

Aggregation

Name Number Description
AGGREGATION_UNSPECIFIED 0 The aggregation is unspecified.
MIN 1 The value is the minimum of the retrieved values.
MAX 2 The value is the maximum of the retrieved values.
MEAN 3 The value is the mean of the retrieved values.
SLP_H0 4 The value is the aggregated with respect to the valid SLP H0 profile.

Price.Quality

Name Number Description
QUALITY_UNSPECIFIED 0 No quality specified.
ESTIMATED 1 An estimated value.
INCURRED 2 An incurred value.

Purpose

Name Number Description
PURPOSE_UNSPECIFIED 0 The purpose is unspecified.
BILLING 1 The price is used for billing.
SIMULATION 2 The price is used for simulation.

GridFees

Retrieves grid fees.

Get

Get grid fee for a market location.

Input: GridFeeGetRequest

Field Type Rules Description
*tenant string The tenant the grid fee belongs to.
*contract string The ID of the contract.
*id string The ID of the grid fee.
*period enpowerx.types.DateRange The period in which the grid fee is valid.

Output: GridFee

Field Type Rules Description
id string The ID of the grid fee.
prices GridFee.Price repeated The grid fee prices.

List

List grid fees for a market location.

Input: GridFeeListRequest

Field Type Rules Description
*tenant string The tenant the grid fee belongs to.
*contract string The ID of the contract.
*period enpowerx.types.DateRange The period in which the grid fees are valid.
filter GridFeeListRequest.Filter Filters to limit the response.

Output: GridFeeList

Field Type Rules Description
grid_fees GridFee repeated The grid fees.

GridFee.Price

Field Type Rules Description
net enpowerx.types.Decimal The net amount of the price.
unit string The unit of the price.
currency_code string The currency code of the price.
period enpowerx.types.DateRange The period the price is valid for.
annotations google.protobuf.Struct The annotations of the price.

GridFeeListRequest.Filter

Field Type Rules Description
ids string repeated The grid fee ids to filter for.

MarketPartnerInvoices

Handle invoices obtained by market partners.

Set

Add a new invoice.

Input: Invoice

Field Type Rules Description
*tenant string The tenant the invoice belongs to.
*market_partner string The market partner id the invoice id belongs to.
*id string The unique identifier of the invoice.
*market_location string The market location the invoice refers to.
*period enpowerx.types.DateRange The period of this invoice.
*type Invoice.Type The type of the invoice.
*lines InvoiceLine repeated The line items containing the actual costs.
*date google.type.Date The date the invoice was issued.
invoice_reference string A referenced invoice. If type is CANCELLATION this references the cancelled invoice.

Get

Get a specific invoice.

Input: InvoiceRequest

Field Type Rules Description
*tenant string The tenant the invoice belongs to.
*market_partner string The market partner id the invoice id belongs to.
*id string The unique identifier of the invoice.

Output: Invoice

Field Type Rules Description
*tenant string The tenant the invoice belongs to.
*market_partner string The market partner id the invoice id belongs to.
*id string The unique identifier of the invoice.
*market_location string The market location the invoice refers to.
*period enpowerx.types.DateRange The period of this invoice.
*type Invoice.Type The type of the invoice.
*lines InvoiceLine repeated The line items containing the actual costs.
*date google.type.Date The date the invoice was issued.
invoice_reference string A referenced invoice. If type is CANCELLATION this references the cancelled invoice.

List

Fetch stored invoices from all market partners.

Input: InvoiceListRequest

Field Type Rules Description
*tenant string The tenant the invoice belongs to.
page_size int32 The maximum number of items to return. 0 for default.
page_token string The next_page_token value returned from a previous List request, if any.
filter InvoiceListRequest.Filter The filter to be applied on all invoices.

Output: InvoiceList

Field Type Rules Description
invoices Invoice repeated The requested invoices.
next_page_token string Token to retrieve the next page of results, or empty if there are no more results in the list.

InvoiceLine

Field Type Rules Description
*display_name string The text describing the invoice line.
*article_id string The article id.
*period enpowerx.types.DateRange The period of this line item.
*quantity enpowerx.types.Quantity The quantity of consumed units the price is associated with.
*price InvoiceLine.Price The price per amount.
*total google.type.Money The total cost of the invoice line, calculated by total = amount*price.

InvoiceLine.Price

Field Type Rules Description
*net google.type.Money The price without sales tax.
*unit string The unit the price is related to (e.g "kWh", "PCS", "month", etc.)

InvoiceListRequest.Filter

Field Type Rules Description
market_location string optional The market location the invoices refer to.
market_partner string optional The market partner the invoices belong to.
period enpowerx.types.DateRange optional The date range to filter invoices for.
types InvoiceTypeListFilter optional The types to filter invoices for.
invoice_reference string optional The referenced invoice to filter for.

InvoiceTypeListFilter

Field Type Rules Description
values Invoice.Type repeated The types to filter for.
negate bool If true the expression is negated.

Invoice.Type

Name Number Description
TYPE_UNSPECIFIED 0 The invoice type is unspecified.
CYCLIC 1 The invoice is a cyclic invoice (DE: Turnusrechnung).
MONTHLY 2 The invoice is a monthly invoice (DE: Monatsrechnung).
FINAL 3 The invoice is a final invoice (DE: Schlussrechnung).
INTEGRATED_THIRTEENTH 4 The invoice is an integrated thirteenth invoice (DE: Integrierte 13. Rechnung).
THIRTEENTH 5 The invoice is a thirteenth invoice (DE: 13. Rechnung).
INTERIM 6 The invoice is an interim invoice (DE: Zwischenrechnung).
METERING_SERVICE_OPERATION 7 The invoice is a billing for metering service operation (DE: Abrechnung des Messstellenbetriebs).
CANCELLATION 8 The invoice is a cancellation invoice (DE: Stornorechnung).

Offers

Create and track offers.

Get

Get a specific offer.

Input: OfferRequest

Field Type Rules Description
*tenant string The tenant the offer belongs to.
*id string The ID identifying the offer in the tenant's scope.

Output: Offer

Field Type Rules Description
*tenant string immutable The tenant the offer belongs to.
*id string immutable The ID identifying the offer in the tenant's scope.
state Offer.State output only The current state of the offer.
create_time google.protobuf.Timestamp output only The creation timestamp of the offer.
*type OfferType The type of offer.
*delivery enpowerx.types.EnergyDelivery Which kind and amount of energy is to be delivered to where.
*customer string The ID of the customer this offer was made to.
contract string The ID of the customer's existing contract if applicable.
*product string The ID of the product that was offered to the customer.
*campaign string The campaign to be used when ordering the offered product.
error_message string The error message if state is ERROR.

List

List offers with optional filters.

Input: OfferListRequest

Field Type Rules Description
*tenant string The tenant the offers list belong to.
page_size int32 The maximum number of items to return. 0 for default.
page_token string The next_page_token value returned from a previous List request, if any.
filter OfferListRequest.Filter Filters to limit the response.

Output: OfferList

Field Type Rules Description
offers Offer repeated The requested offers.
next_page_token string Token to retrieve the next page of results, or empty if there are no more results in the list.

Set

Create a new offer.
Do not use this to update state. Use Accept or Cancel instead.

Input: Offer

Field Type Rules Description
*tenant string immutable The tenant the offer belongs to.
*id string immutable The ID identifying the offer in the tenant's scope.
state Offer.State output only The current state of the offer.
create_time google.protobuf.Timestamp output only The creation timestamp of the offer.
*type OfferType The type of offer.
*delivery enpowerx.types.EnergyDelivery Which kind and amount of energy is to be delivered to where.
*customer string The ID of the customer this offer was made to.
contract string The ID of the customer's existing contract if applicable.
*product string The ID of the product that was offered to the customer.
*campaign string The campaign to be used when ordering the offered product.
error_message string The error message if state is ERROR.

Output: Offer

Field Type Rules Description
*tenant string immutable The tenant the offer belongs to.
*id string immutable The ID identifying the offer in the tenant's scope.
state Offer.State output only The current state of the offer.
create_time google.protobuf.Timestamp output only The creation timestamp of the offer.
*type OfferType The type of offer.
*delivery enpowerx.types.EnergyDelivery Which kind and amount of energy is to be delivered to where.
*customer string The ID of the customer this offer was made to.
contract string The ID of the customer's existing contract if applicable.
*product string The ID of the product that was offered to the customer.
*campaign string The campaign to be used when ordering the offered product.
error_message string The error message if state is ERROR.

Delete

Delete a specific offer.

Input: OfferRequest

Field Type Rules Description
*tenant string The tenant the offer belongs to.
*id string The ID identifying the offer in the tenant's scope.

Accept

Accept the offer and set the state to ACCEPTED.

Input: OfferAcceptRequest

Field Type Rules Description
*tenant string The tenant the offer belongs to.
*id string The ID identifying the offer in the tenant's scope.
order_details OfferAcceptRequest.OrderDetails Additional information provided by the customer to complete the order.
Must be set when Order.type is CROSSSELLING. Must not be set when Order.type is UPSELLING.

Cancel

Cancel the offer and set the state to CANCELLED.

Input: OfferCancelRequest

Field Type Rules Description
*tenant string The tenant the offer belongs to.
*id string The ID identifying the offer in the tenant's scope.

SetError

Set the error message for an offer and reset the state to PENDING.

Input: OfferErrorRequest

Field Type Rules Description
*tenant string The tenant the offer belongs to.
*id string The ID identifying the offer in the tenant's scope.
*message string The error message that happened.

OfferAcceptRequest.OrderDetails

Field Type Rules Description
*meter_number string The number of the meter.
*annual_usage int32 The estimated power usage in kWh per year.
bank_account enpowerx.types.BankAccount The bank account to be used. Keeps the previous contract's bank account if not specified.
transition OfferAcceptRequest.OrderDetails.Transition How to handle the customer's existing contract with another provider.

OfferAcceptRequest.OrderDetails.Transition

Field Type Rules Description
relocation_date google.type.Date The date the customer moved in, if this happened within the last 4 weeks.
If this is set termination_date and previous_provider must be unset.
termination_date google.type.Date The date when the previous contract is terminated.
If this is set relocation_date must be unset.
previous_provider string If the new provider shall terminate the previous contract, set the previous provider's ID. (You can get provider IDs via enpowerx.market.v2.Providers.List().)
If the customer terminates the previous contract, leave unset.
If this is set relocation_date must be unset.

OfferListRequest.Filter

Field Type Rules Description
field_mask google.protobuf.FieldMask The field mask used to mark fields which shall be respected for the filter.
state Offer.State The current state of the offer to filter offers for.
type OfferType The type of offer.
customer string The ID of the customer to filter offers for.
contract string The ID of the customer to filter offers for.

Offer.State

Name Number Description
STATE_UNSPECIFIED 0 The offer state is unspecified.
PENDING 2 The offer is awaiting the customer's choice.
ACCEPTED 3 The customer accepted the offer.
CANCELLED 4 The the offer was not accepted and is no longer valid.

OfferType

Name Number Description
OFFER_TYPE_UNSPECIFIED 0 The offer state is unspecified.
CROSSSELLING 1 Offer to add an additional product to the existing one.
UPSELLING 2 Offer to replace the current product with a new (better) one.

PriceTables

Calculate and upload new price tables

Get

Get a specific price table.

Input: PriceTableRequest

Field Type Rules Description
*tenant string The tenant the price table belongs to.
*id string The price table ID.

Output: PriceTable

Field Type Rules Description
*tenant string immutable The tenant the price table belongs to.
*id string immutable The price table ID.
create_time google.protobuf.Timestamp output only The creation timestamp of the price table.
*state PriceTable.State The state of a price table.
publish_time google.protobuf.Timestamp output only The time when the price table was published to the billing system.
*product string immutable The product the price table refers to.
*energy_type enpowerx.types.EnergyType immutable The energy type of the tariff.
*parameters PriceTable.CalculationParameters immutable The parameters the calculation
grid_fee_time google.protobuf.Timestamp output only The time reference to query grid fees.
error_message string output only An error message signalizing an issue during any step of the process.
comment string Optional information e.g. about the usage of the price table
*product_display_name string immutable The product name the price table refers to.
warnings string output only
repeated
The warnings.
staging_publish_context PriceTable.StagingPublishContext output only It represents the internal approval of an operator.
internal_approval StateChangeContext output only It represents the internal approval of an operator.
external_approval StateChangeContext output only It represents the external approval in the name of the customer.
reject StateChangeContext output only It represents the reject context

List

List all price tables.

Input: PriceTableListRequest

Field Type Rules Description
*tenant string The tenant the price tables belong to.
page_size int32 The maximum number of items to return. 0 for default.
page_token string The next_page_token value returned from a previous List request, if any.
filter PriceTableListRequest.Filter Filter is applied to the list.

Output: PriceTableList

Field Type Rules Description
price_tables PriceTable repeated The requested price tables.
next_page_token string Token to retrieve the next page of results, or empty if there are no more results in the list.

Import

Import a csv file.

Input: ImportPriceTableRequest

Field Type Rules Description
*tenant string immutable The tenant the price table belongs to.
*file File immutable The imported file

Output: PriceTableList

Field Type Rules Description
price_tables PriceTable repeated The requested price tables.
next_page_token string Token to retrieve the next page of results, or empty if there are no more results in the list.

Export

Export a calculated price table.

Input: PriceTableExportRequest

Field Type Rules Description
*tenant string The tenant the price table belongs to.
*id string The price table ID.
format PriceTableExportRequest.Format The price table export format

Output: File

Field Type Rules Description
display_name string The file name
mime_type string The file's mime type
data bytes The file's content

Approve

Approve a calculated price table.

Input: PriceTableActionRequest

Field Type Rules Description
*tenant string The tenant the price table belongs to.
*id string The price table ID.
comment string Some details on how the action came along.

Output: PriceTable

Field Type Rules Description
*tenant string immutable The tenant the price table belongs to.
*id string immutable The price table ID.
create_time google.protobuf.Timestamp output only The creation timestamp of the price table.
*state PriceTable.State The state of a price table.
publish_time google.protobuf.Timestamp output only The time when the price table was published to the billing system.
*product string immutable The product the price table refers to.
*energy_type enpowerx.types.EnergyType immutable The energy type of the tariff.
*parameters PriceTable.CalculationParameters immutable The parameters the calculation
grid_fee_time google.protobuf.Timestamp output only The time reference to query grid fees.
error_message string output only An error message signalizing an issue during any step of the process.
comment string Optional information e.g. about the usage of the price table
*product_display_name string immutable The product name the price table refers to.
warnings string output only
repeated
The warnings.
staging_publish_context PriceTable.StagingPublishContext output only It represents the internal approval of an operator.
internal_approval StateChangeContext output only It represents the internal approval of an operator.
external_approval StateChangeContext output only It represents the external approval in the name of the customer.
reject StateChangeContext output only It represents the reject context

ApproveOnBehalf

Approve a calculated price table on behalf of somebody.

Input: PriceTableActionRequest

Field Type Rules Description
*tenant string The tenant the price table belongs to.
*id string The price table ID.
comment string Some details on how the action came along.

Output: PriceTable

Field Type Rules Description
*tenant string immutable The tenant the price table belongs to.
*id string immutable The price table ID.
create_time google.protobuf.Timestamp output only The creation timestamp of the price table.
*state PriceTable.State The state of a price table.
publish_time google.protobuf.Timestamp output only The time when the price table was published to the billing system.
*product string immutable The product the price table refers to.
*energy_type enpowerx.types.EnergyType immutable The energy type of the tariff.
*parameters PriceTable.CalculationParameters immutable The parameters the calculation
grid_fee_time google.protobuf.Timestamp output only The time reference to query grid fees.
error_message string output only An error message signalizing an issue during any step of the process.
comment string Optional information e.g. about the usage of the price table
*product_display_name string immutable The product name the price table refers to.
warnings string output only
repeated
The warnings.
staging_publish_context PriceTable.StagingPublishContext output only It represents the internal approval of an operator.
internal_approval StateChangeContext output only It represents the internal approval of an operator.
external_approval StateChangeContext output only It represents the external approval in the name of the customer.
reject StateChangeContext output only It represents the reject context

Publish

Publish a calculated price table for billing. The price table

Input: PriceTableRequest

Field Type Rules Description
*tenant string The tenant the price table belongs to.
*id string The price table ID.

Output: PriceTable

Field Type Rules Description
*tenant string immutable The tenant the price table belongs to.
*id string immutable The price table ID.
create_time google.protobuf.Timestamp output only The creation timestamp of the price table.
*state PriceTable.State The state of a price table.
publish_time google.protobuf.Timestamp output only The time when the price table was published to the billing system.
*product string immutable The product the price table refers to.
*energy_type enpowerx.types.EnergyType immutable The energy type of the tariff.
*parameters PriceTable.CalculationParameters immutable The parameters the calculation
grid_fee_time google.protobuf.Timestamp output only The time reference to query grid fees.
error_message string output only An error message signalizing an issue during any step of the process.
comment string Optional information e.g. about the usage of the price table
*product_display_name string immutable The product name the price table refers to.
warnings string output only
repeated
The warnings.
staging_publish_context PriceTable.StagingPublishContext output only It represents the internal approval of an operator.
internal_approval StateChangeContext output only It represents the internal approval of an operator.
external_approval StateChangeContext output only It represents the external approval in the name of the customer.
reject StateChangeContext output only It represents the reject context

PublishStaging

PublishStaging a calculated price table for billing to a staging environment

Input: PriceTableRequest

Field Type Rules Description
*tenant string The tenant the price table belongs to.
*id string The price table ID.

Output: PriceTable

Field Type Rules Description
*tenant string immutable The tenant the price table belongs to.
*id string immutable The price table ID.
create_time google.protobuf.Timestamp output only The creation timestamp of the price table.
*state PriceTable.State The state of a price table.
publish_time google.protobuf.Timestamp output only The time when the price table was published to the billing system.
*product string immutable The product the price table refers to.
*energy_type enpowerx.types.EnergyType immutable The energy type of the tariff.
*parameters PriceTable.CalculationParameters immutable The parameters the calculation
grid_fee_time google.protobuf.Timestamp output only The time reference to query grid fees.
error_message string output only An error message signalizing an issue during any step of the process.
comment string Optional information e.g. about the usage of the price table
*product_display_name string immutable The product name the price table refers to.
warnings string output only
repeated
The warnings.
staging_publish_context PriceTable.StagingPublishContext output only It represents the internal approval of an operator.
internal_approval StateChangeContext output only It represents the internal approval of an operator.
external_approval StateChangeContext output only It represents the external approval in the name of the customer.
reject StateChangeContext output only It represents the reject context

Reject

Reject a calculated price table. The price table cannot be rejected after it was published.

Input: PriceTableActionRequest

Field Type Rules Description
*tenant string The tenant the price table belongs to.
*id string The price table ID.
comment string Some details on how the action came along.

Output: PriceTable

Field Type Rules Description
*tenant string immutable The tenant the price table belongs to.
*id string immutable The price table ID.
create_time google.protobuf.Timestamp output only The creation timestamp of the price table.
*state PriceTable.State The state of a price table.
publish_time google.protobuf.Timestamp output only The time when the price table was published to the billing system.
*product string immutable The product the price table refers to.
*energy_type enpowerx.types.EnergyType immutable The energy type of the tariff.
*parameters PriceTable.CalculationParameters immutable The parameters the calculation
grid_fee_time google.protobuf.Timestamp output only The time reference to query grid fees.
error_message string output only An error message signalizing an issue during any step of the process.
comment string Optional information e.g. about the usage of the price table
*product_display_name string immutable The product name the price table refers to.
warnings string output only
repeated
The warnings.
staging_publish_context PriceTable.StagingPublishContext output only It represents the internal approval of an operator.
internal_approval StateChangeContext output only It represents the internal approval of an operator.
external_approval StateChangeContext output only It represents the external approval in the name of the customer.
reject StateChangeContext output only It represents the reject context

Remove

Remove pricetables.

Input: RemovePriceTableRequest

Field Type Rules Description
*tenant string The tenant the price table belongs to.
*ids string repeated The price table IDs to remove.

Output: RemovePriceTableResponse

Field Type Rules Description
amount_removed int32 amount of removed items
errors RemovalErrors repeated errors

FailedPreconditionPriceTableAlreadyPublishedError

FailedPreconditionPriceTableNotApprovedError

PriceTable.CalculationParameters

The price table parameters

Field Type Rules Description
*active_time google.protobuf.Timestamp The time when the price table should be active.
base_price google.type.Money The base price including margin.
energy_price google.type.Money The energy price including margin.
apportionment google.type.Money The apportionments.
minimum_working_price google.type.Money The minimum price working price.
lump_sum_kwh int32 The Lump sum.
taxes google.type.Money The taxes
concession_fee_fallback google.type.Money Fallback concession fee if data is not available.
concession_fee_override PriceTable.CalculationParameters.ConcessionFeeOverride if set the concession fee will be overridden in the area of the grid operator
sales_area_constraint PriceTable.CalculationParameters.SalesAreaConstraint If set the product will only be sold in the area of the grid operator.

PriceTable.CalculationParameters.ConcessionFeeOverride

Field Type Rules Description
grid_operator string The grid operator number according to BDEW.
value google.type.Money the value that should be used for the concession fee

PriceTable.CalculationParameters.SalesAreaConstraint

Field Type Rules Description
grid_operator string repeated The grid operator number according to BDEW.

PriceTable.StagingPublishContext

Field Type Rules Description
create_time google.protobuf.Timestamp The timestamp of the publishing on staging.
version int32 The version of published changes on staging

PriceTableListRequest.Filter

Field Type Rules Description
states PriceTable.State repeated The records must be in one of the selected states.

RemovalErrors

Field Type Rules Description
id string price table id
error_message string error message

StateChangeContext

Field Type Rules Description
create_time google.protobuf.Timestamp The timestamp of the state change.
user_display_name string The user that changed the state of the price table.
comment string Some details why state change was needed

PriceTable.State

Name Number Description
STATE_UNSPECIFIED 0 The price table's state unspecified.
DRAFT 1 The price table is in draft state.
PENDING_APPROVAL 2 The price table is waiting for an approval.
APPROVED 3 The price table is approved.
REJECTED 4 The price table is rejected.
PUBLISHED 5 The price table is active.

PriceTableExportRequest.Format

Name Number Description
FORMAT_UNSPECIFIED 0 The price table export format unspecified.
CSV_POWERCLOUD 1 The price table export format for Powercloud.
CSV_HUMAN 2 The price table export format for a human review.

ProductRecommendations

Provide product recommendations for existing customers.

List

List product recommendations for a given contract.

Input: ProductRecommendationListRequest

Field Type Rules Description
*tenant string The tenant the contract belongs to.
*contract string The contract the recommendation is based on.
*type OfferType The type of recommendation.

Output: ProductRecommendationList

Field Type Rules Description
recommendations ProductRecommendation repeated The list of product recommendations

ProductRecommendation

Field Type Rules Description
*product Product The recommended product
campaign string The campaign to be used when ordering the product
type OfferType The type of recommendation.

Products

Query energy products provided by the current tenant.

Get

Get the latest version of a specific product.

Input: ProductRequest

Field Type Rules Description
*tenant string The tenant the product belongs to.
*id string The product ID.

Output: Product

Field Type Rules Description
*tenant string immutable The tenant the product belongs to.
*id string immutable The product ID.
*version int32 immutable The version of the product.
*display_name string A human-readable name for the product.
*energy_type enpowerx.types.EnergyType The energy type of the product.
*acquisition Product.Acquisition How this product is acquired.
contract_term enpowerx.types.Duration The minimum amount of time before the contract can be cancelled.
price_guarantee enpowerx.types.Duration The minimum amount of time for which the price is guaranteed to stay the same.
price_guarantee_date google.type.Date The date until the price is guaranteed to stay the same.

ListAddons

Get all the addons for the specified product.

Input: ProductListAddonsRequest

Field Type Rules Description
*tenant string The tenant the product belongs to.
*id string The product ID.
page_size int32 The maximum number of items to return. 0 for default.
page_token string The next_page_token value returned from a previous List request, if any.

Output: ProductAddonsList

Field Type Rules Description
product_addons ProductAddon repeated The requested product addons.
next_page_token string Token to retrieve the next page of results, or empty if there are no more results in the list.

GetVersioned

Get a specific version of a specific product.

Input: ProductGetVersionedRequest

Field Type Rules Description
*tenant string The tenant the product belongs to.
*id string The product ID.
*version int32 The version of the product.

Output: Product

Field Type Rules Description
*tenant string immutable The tenant the product belongs to.
*id string immutable The product ID.
*version int32 immutable The version of the product.
*display_name string A human-readable name for the product.
*energy_type enpowerx.types.EnergyType The energy type of the product.
*acquisition Product.Acquisition How this product is acquired.
contract_term enpowerx.types.Duration The minimum amount of time before the contract can be cancelled.
price_guarantee enpowerx.types.Duration The minimum amount of time for which the price is guaranteed to stay the same.
price_guarantee_date google.type.Date The date until the price is guaranteed to stay the same.

List

List all products.

Input: ProductListRequest

Field Type Rules Description
*tenant string The tenant the products belong to.
page_size int32 The maximum number of items to return. 0 for default.
page_token string The next_page_token value returned from a previous List request, if any.

Output: ProductList

Field Type Rules Description
products Product repeated The requested products.
next_page_token string Token to retrieve the next page of results, or empty if there are no more results in the list.

ProductAddon

Field Type Rules Description
id string The product addon id.
version string The released version of the addon.
valid_start google.type.Date The start of the period in which the addon is valid.
valid_end google.type.Date The end of the period in which the addon is valid.

Product.Acquisition

Name Number Description
ACQUISITION_UNSPECIFIED 0 The product acquisition is unspecified.
COMPETITIVE 1 The product is explicitly chosen by customers.
BASIC 2 The product is automatically provided by an area's default provider when power is consumed without an existing contract.
SUBSTITUTE 3 The product is automatically provided by an area's default provider when the previous provider is no longer available (e.g. lost license).

Providers

Query all known energy providers.

List

List all known providers for an energy type.

Input: ProviderListRequest

Field Type Rules Description
*tenant string The tenant to query for.
*region string The region to get providers for as a CLDR region code.
Example: DE for Germany
*energy_type enpowerx.types.EnergyType The kind of the energy to get providers for.
filter ProviderListRequest.Filter Filters to limit the response.

Output: ProviderList

Field Type Rules Description
providers Provider repeated The requested providers.

Provider

Field Type Rules Description
id string The ID identifying the provider. In Germany this is the BDEW code.
canonical_name string The canonical name of the provider.
Example: Stadtwerke Karlsruhe GmbH

ProviderDefaultRequest

Field Type Rules Description
*tenant string The tenant to query for.
*address enpowerx.types.PostalAddress The address to get the default provider for.
*energy_type enpowerx.types.EnergyType The kind of the energy to get the default provider for.

ProviderListRequest.Filter

Field Type Rules Description
field_mask google.protobuf.FieldMask The field mask used to mark fields which shall be respected for the filter.
address enpowerx.types.PostalAddress The address to get the default providers for. Required if is_default is set to true.
customer_type enpowerx.types.CustomerType The type of the customer.
is_default bool Indicates whether to get all or only default providers.

Streets

Street lookup for address auto-completion.

List

List all known streets for a postal code and city.

Input: StreetListRequest

Field Type Rules Description
*tenant string The tenant to query for.
*region string The region the streets are located in as a CLDR region code.
Example: DE for Germany
*postal_code string Postal code the streets are located in.
Example: 76131 for Karlsruhe inner city
*city string The canonical name of the city the streets are located in.
Example: Karlsruhe

Output: StreetList

Field Type Rules Description
streets Street repeated The requested streets.

Street

Field Type Rules Description
canonical_name string The canonical name of the street.
Example: Kaiserstr.

Tariffs

Query energy tariffs provided by the current tenant.

Get

Get the tariff for a specific product at an address.

Input: TariffRequest

Field Type Rules Description
*tenant string The tenant the tariffs belong to.
*product string The product ID.
*delivery enpowerx.types.EnergyDelivery Which kind and amount of energy is to be delivered to where.
query_date google.type.Date Query for tariffs that are active at this date.
The date can be in the past or future.
If unset the query will return currently active tariffs.
register_type RegisterType Filter tariffs by the amount of registers.
campaign string Optional override for the default campaign.

Output: Tariff

Field Type Rules Description
*product Product The underlying product for this tariff.
*fixed_cost enpowerx.types.RecurringCost The fixed recurring cost.
*working_price enpowerx.types.Price The price per usage in kWh.
For double tariff
estimated_total_cost enpowerx.types.RecurringCost The estimated total cost.
bonus enpowerx.types.Price Deprecated. The one-time bonus granted to the customer.
deprecated: Use bonuses instead.
*eco_percentage int32 The percentage of environmentally friendly power generation.
graduated_prices GraduatedPrice repeated Graduated prices defined for this tariff.
deposit Deposit The deposit.
working_price_nt enpowerx.types.Price The off-peak price per usage in kWh (DE: Niedertarifarbeitspreis).
bonuses Bonus repeated Contains the bonuses that come with the tariff

List

List all tariffs provided at an address.

Input: TariffListRequest

Field Type Rules Description
*tenant string The tenant the tariffs belong to.
*delivery enpowerx.types.EnergyDelivery Which kind and amount of energy is to be delivered to where.
query_date google.type.Date Query for tariffs that are active at this date.
The date can be in the past or future.
If unset the query will return currently active tariffs.
register_type RegisterType Filter tariffs by the amount of registers.
campaign string Optional override for the default campaign.

Output: TariffList

Field Type Rules Description
tariffs Tariff repeated The requested tariffs.

Bonus

Field Type Rules Description
*type Bonus.BonusType The type of bonus.
*amount enpowerx.types.Price The amount that will be paid out.

Deposit

Field Type Rules Description
*net google.type.Money The amount without VAT.
*gross google.type.Money The amount including VAT.
*divisor int32 The divisor.

GraduatedPrice

Field Type Rules Description
*start int32 The starting range at respective unit.
*end int32 The ending range at respective unit.
*fixed_cost enpowerx.types.RecurringCost The fixed recurring cost.
*working_price enpowerx.types.Price The working price.
*estimated_total_cost enpowerx.types.RecurringCost The estimated total cost.
*valid_start google.type.Date Start date of the period the price is valid in.
*valid_end google.type.Date End date of the period the price is valid in.
working_price_nt enpowerx.types.Price The price (NT, Niedertarif, off-peak) per usage in kWh.

Bonus.BonusType

Name Number Description
BONUS_TYPE_UNSPECIFIED 0 Unspecified
IMMEDIATE 1 A bonus that will be paid out shortly after contract goes into delivery.
ACQUISITION 2 A bonus that will be paid out after minimum contract term.

RegisterType

Name Number Description
REGISTER_TYPE_UNSPECIFIED 0 Returns tariffs with single and multiple registers.
SINGLE_REGISTER 1 Returns tariffs with single register only .
MULTIPLE_REGISTERS 2 Returns tariffs with multiple registers.

Shared Types

Amount

Field Type Rules Description
unit string The unit of the amount. E.g.'kWh' or 'PCS' for pieces.
units int64 The whole units of the amount.
For example if unit is "PCS", then 1 unit is one piece.
nanos int32 Number of nano (10^-9) units of the amount.
The value must be between -999,999,999 and +999,999,999 inclusive.
If units is positive, nanos must be positive or zero.
If units is zero, nanos can be positive, zero, or negative.
If units is negative, nanos must be negative or zero.
For example $-1.75 is represented as units=-1 and nanos=-750,000,000.

BankAccount

Information about a bank account.

Field Type Rules Description
*iban string The International Bank Account Number.
bic string The Bank Identifier Code.
account_holder string The name of the account holder.
bank string The name of the bank.

CustomerType

Represents the kind of the customer.

Name Number Description
CUSTOMER_TYPE_UNSPECIFIED 0 The customer type is unspecified.
PRIVATE 1 The customer type is private.
BUSINESS 2 The customer type is business.
BOTH 3 The customer type is private and business.

DateRange

Represents a range of dates.

Field Type Rules Description
*start google.type.Date The inclusive start date.
end google.type.Date The inclusive end date.
end_exclusive google.type.Date The exclusive end date.
time_zone string The time zone of the date range (defaults to Europe/Berlin).

DateTimeRange

Represents a range of date times.

Field Type Rules Description
*start google.protobuf.Timestamp The inclusive start date.
end google.protobuf.Timestamp The inclusive end date.

Decimal

Field Type Rules Description
units int64 The whole units of the amount.
nanos int32 Number of nano (10^-9) units of the amount.
The value must be between -999,999,999 and +999,999,999 inclusive.
If units is positive, nanos must be positive or zero.
If units is zero, nanos can be positive, zero, or negative.
If units is negative, nanos must be negative or zero.
For example $-1.75 is represented as units=-1 and nanos=-750,000,000.

Billing

Billing details.

Field Type Rules Description
*contact Contact The contact to send invoices to.
*payment_method PaymentMethod The payment method method.
bank_account BankAccount The bank account used if payment_method is DIRECT_DEBIT.

CommunicationChannel

Communication channel.

Name Number Description
COMMUNICATION_CHANNEL_UNSPECIFIED 0 Channel not specified.
LETTER 1 Send messages via letter.
EMAIL 2 Send messages via email.
SMS 3 Send messages via SMS.
MESSENGER 4 Send messages via messenger apps like WhatsApp.
PHONE 5 Communicate via telephone.

Contact

Contact details (postal, phone, etc.).

Field Type Rules Description
*person Person Information on how to address the contact.
postal_address PostalAddress The contact's postal address.
phone_number string The phone number of the contact.
Values are normalized into the form +123456789.
email string The email address of the contact.
careof Person A person that may receive communication in the name of the actual recipient (e.g. a "C/O" line added to the postal address).

Reading

Information about a reading.

Field Type Rules Description
*date google.type.Date The date when the reading was taken.
channel Reading.Channel How the reading was reported.
This is value is ignored when submitting via AddMine.
*values Reading.ValuesEntry repeated A map of values to submit with OBIS codes as the key.
ignore_plausibility_check_reason google.protobuf.StringValue If set the meter reading(s) will be saved, even if they're not plausible.
Specifies the reason why the plausibility check is to be ignored.

Reading.ValuesEntry

Field Type Rules Description
key string
value double

Reading.Channel

Name Number Description
CHANNEL_UNSPECIFIED 0 No channel specified.
PORTAL 1 Reported via end-user portal.
EMAIL 2 Reported via email.
LETTER 3 Reported via letter.
PHONE 4 Reported via phone call.
MSCONS 5 Reported via Metered Services Consumption report message.

Relocation

Information about the relocation of an contract.

Field Type Rules Description
*contract string The contract's ID this request is targeting.
*moveout_date google.type.Date The move-out date.
*movein_date google.type.Date The move-in date.
*delivery EnergyDelivery Which kind and amount of energy is to be delivered to where.
*use_new_address Relocation.UseNewAddress Use the new address as postal and billing address.
*meter string The ID of the meter at the new consumption point.
last_reading Reading The last reading at the old consumption point.
old_meter string The ID of the meter at the old consumption point.
Optional, must be set if a last reading is provided.

Relocation.UseNewAddress

Name Number Description
USE_NEW_ADDRESS_UNSPECIFIED 0 Use unspecified.
NO 1 Use not desired.
IMMEDIATELY 2 Use immediately desired.
ON_MOVE_IN 3 Use on moving in desired.

SalesInfo

Information on how a sale was made.

Field Type Rules Description
sales_partner_code string Direct sales partner code.
sales_partner_code_second string Second direct sales partner code.
campaign string Optional override for the default campaign.

ScheduledRequest

Reference to an entity with an optional scheduled starting date.

Field Type Rules Description
*id string The ID referencing the entity.
scheduled_date google.type.Date The scheduled starting date (earliest possible if unset).

TransitionType

Specifies modalities of a contract transition.

Name Number Description
TRANSITION_TYPE_UNSPECIFIED 0 The transition type is unspecified
MANUAL_TERMINATION 1 The customer terminates the prior contract.
VENDOR_TERMINATION 2 The vendor terminates the prior contract.
RELOCATION 3 The customer is going to or has recently moved to the new address.

Duration

Represents a coarse time duration (e.g., 2 months).

Field Type Rules Description
*units int32 The number of time units.
*type google.type.CalendarPeriod The type the units refer to (days, months, etc.).

EnergyDelivery

Describes which kind and amount of energy is to be delivered to where.

Field Type Rules Description
*energy_type EnergyType The kind of the energy.
*customer_type CustomerType The kind of the customer.
*address PostalAddress The address to deliver energy to.
annual_usage int32 The estimated power usage in kWh per year.
usage_type EnergyDelivery.UsageType The usage type for the delivered energy.
annual_usage_nt int32 The estimated off-peak power usage in kWh per year (DE: Niedertarifverbrauch).

EnergyDelivery.UsageType

Name Number Description
USAGE_TYPE_UNSPECIFIED 0 The consumption type is unspecified.
HOUSEHOLD_ELECTRICITY 1 The energy is used for household.
CHARGING_CURRENT 2 The energy is used for charging.
STORAGE_HEATER 3 The energy is used for a storage heater.
HEAT_PUMP 4 The energy is used for a heat pump.
HOUSEHOLD_ELECTRICITY_AND_STORAGE_HEATER 5 The energy is used for household with storage heater.
HOUSEHOLD_ELECTRICITY_AND_HEAT_PUMP 6 The energy is used for household with heat pump.

EnergyType

Represents the kind of the energy.

Name Number Description
ENERGY_TYPE_UNSPECIFIED 0 The energy type is unspecified.
ELECTRICITY 1 The energy type is electricity.
GAS 2 The energy type is gas.

FileContent

Field Type Rules Description
*mime_type string The media type / content type of the document.
*content bytes The raw data of the document.

AnnotationFilter

AnnotationFilter provides filter semantics for annotations.

Field Type Rules Description
*field string The annotation field path is a symbolic field path to target an annotation's field, for example:

"invoice.id", "is_consumption_based", ...
value google.protobuf.Value The value to match the annotation field's value.

DateFilter

DateFilter provides match semantics for date fields.

Field Type Rules Description
*date google.type.Date The date to filter for.
match_mode DateFilter.MatchMode The match mode to use. The default is EQUAL.

DateRangeFilter

DateTimeRangeFilter provides match semantics for date fields. The filter treats the start and end date as inclusive.

Field Type Rules Description
*start_date google.type.Date The start date to filter for.
*end_date google.type.Date The end date to filter for.

DateTimeFilter

DateTimeFilter provides match semantics for date time fields.

Field Type Rules Description
*time google.protobuf.Timestamp The date time to filter for.
match_mode DateTimeFilter.MatchMode The match mode to use. The default is EQUAL.

DateTimeRangeFilter

DateTimeRangeFilter provides match semantics for date time fields.

Field Type Rules Description
*start_time google.protobuf.Timestamp The start date time to filter for.
*end_time google.protobuf.Timestamp The end date time to filter for.

StringListFilter

Strings filter x IN and x NOT IN semantics.

Field Type Rules Description
*values string repeated The value to filter for.
negate bool If true the expression is negated.

StringScalarFilter

StringFilter provides match semantics for strings fields.

Field Type Rules Description
*value string The value to filter for.
match_mode StringScalarFilter.MatchMode The match mode to use.
negate bool If true the expression is negated.

DateFilter.MatchMode

Name Number Description
MATCH_MODE_UNSPECIFIED 0 The match mode is unspecified.
EQUAL 1 Filter only matches if the date is equal to the provided date.
BEFORE 2 Filter matches all dates that are before the provided date.
AFTER 3 Filter matches all dates that are after the provided date.
BEFORE_OR_EQUAL 4 Filter matches all dates that are before or equal to the provided date.
AFTER_OR_EQUAL 5 Filter matches all dates that are after or equal to the provided date.

DateTimeFilter.MatchMode

Name Number Description
MATCH_MODE_UNSPECIFIED 0 The match mode is unspecified.
EQUAL 1 Filter only matches if the date is equal to the provided date.
BEFORE 2 Filter matches all dates that are before the provided date.
AFTER 3 Filter matches all dates that are after the provided date.
BEFORE_OR_EQUAL 4 Filter matches all dates that are before or equal to the provided date.
AFTER_OR_EQUAL 5 Filter matches all dates that are after or equal to the provided date.

StringScalarFilter.MatchMode

Name Number Description
MATCH_MODE_UNSPECIFIED 0 The match mode is unspecified.
EXACT 1 Filter only matches if the field contains exactly the expected value.
PREFIX 2 Filter matches all fields that are prefixed with the given value.
SUFFIX 3 Filter matches all fields that are suffixed with the given value.
SUBSTRING 4 Filter matches all fields that contain the given value.

LetterAddress

Combines a name and a postal address.

Field Type Rules Description
*person Person The person being addressed.
careof string A person that may receive letters in the name of the actual recipient (e.g. a "C/O" line added to the postal address).
*postal_address PostalAddress The postal address.

MonthOfYear

Represents a month of a year.

Field Type Rules Description
month int32 Month of the year.
year int32 Year.

PaymentMethod

Possible methods for paying invoices.

Name Number Description
PAYMENT_METHOD_UNSPECIFIED 0 The payment method method is unspecified.
DIRECT_DEBIT 1 Money is automatically withdrawn from the specified bank account.
MANUAL_TRANSFER 2 The customer pays bills manually using money transfers.

Period

A period of time with inclusive start and inclusive and exclusive end time. If both (inclusive and exclusive) ends are specified, they must be consistent. If no end is specified, the period is considered unbounded on the end. If the time is unspecified it is considered to be 00:00:00.000000000 for the start (and exclusive end) and 23:59:59.999999999 for the inclusive end.

The following example represents a period of time from 2006-01-01 to 2006-01-31: { start_time: { hours: 0 minutes: 0 seconds: 0 nanos: 0 } start_date: { year: 2006 month: 1 day: 1 } end_time: { hours: 23 minutes: 59 seconds: 59 nanos: 999999999 } end_date: { year: 2006 month: 1 day: 31 } end_date_exclusive: { year: 2006 month: 2 day: 1 } end_time_exclusive: { hours: 0 minutes: 0 seconds: 0 nanos: 0 } }

Field Type Rules Description
start_time google.type.TimeOfDay The start time of the period (inclusive).
end_time google.type.TimeOfDay The end time of the period (inclusive).
start_date google.type.Date The start date of the period (inclusive).
end_date google.type.Date The end date of the period (inclusive).
end_time_exclusive google.type.TimeOfDay The end time of the period (exclusive).
end_date_exclusive google.type.Date The end date of the period (exclusive).
time_zone string The time zone of the period (defaults to Europe/Berlin).

Person

Information on how to address a person. A person can be either a natural person or a company with an optional contact Natural Person: Must provide firstname, lastname Company: Must provide company

Field Type Rules Description
salutation Person.SalutationForm The salutation of the person.
title string The title of the person.
firstname string The first name of the person.
lastname string The last name of the person.
birthday google.type.Date The birthday of the person.
company string The company name.

Person.SalutationForm

Name Number Description
SALUTATION_FORM_UNSPECIFIED 0 The salutation form is unspecified.
MRS 1 The salutation form is Mrs..
MR 2 The salutation form is Mr..
DIVERSE 3 The salutation form is Diverse.
FAMILY 4 The salutation form is Family.

PostalAddress

Represents a postal address, e.g. for postal delivery or payments addresses.

Field Type Rules Description
*region string The region the address is located in as a CLDR region code.
Example: DE for Germany
*postal_code string A postal code of the city (a city may have more than one).
Example: 76131 for Karlsruhe inner city
*city string The canonical name of the city (there may be more than one per postal code).
Example: Karlsruhe
street string The canonical name of the street.
Example: Kaiserstr.
house_number string The house number.
Examples: 32, 32a, 32/1
postbox_number string Postbox number in case address is a postbox.
district string Administrative division (i.e. Stadtteil).
additional_address_lines string repeated Additional address lines
Example: Appartment 104, Care of etc.

Price

Represents a price before and after taxes.

Field Type Rules Description
*net google.type.Money The price without VAT.
*gross google.type.Money The price including VAT.
unit string The unit the price is related to (e.g "kWh", "PCS", "month", etc.)

Quantity

Field Type Rules Description
unit string The unit of the quantity. E.g.'kWh' or 'PCS' for pieces.
units int64 The whole units of the quantity.
For example if unit is "PCS", then 1 unit is one piece.
nanos int32 Number of nano (10^-9) units of the quantity.
The value must be between -999,999,999 and +999,999,999 inclusive.
If units is positive, nanos must be positive or zero.
If units is zero, nanos can be positive, zero, or negative.
If units is negative, nanos must be negative or zero.
For example $-1.75 is represented as units=-1 and nanos=-750,000,000.

RecurringCost

Represents a price/cost that repeats at a fixed interval.

Field Type Rules Description
*price Price The price per interval.
*interval google.type.CalendarPeriod The interval at which the cost occurs (per day, month, etc.).

TenantScopedListRequest

Field Type Rules Description
*tenant string The tenant the list belongs to.
page_size int32 The maximum number of items to return. 0 for default.
page_token string The next_page_token value returned from a previous List request, if any.

TenantScopedResource

A tenant scoped resource.

Field Type Rules Description
*tenant string The tenant the resource belongs to.
*id string The ID of the resource.

TimeRange

A range of time with inclusive start, inclusive and exclusive end time. If both (inclusive and exclusive) ends are specified, they must be consistent. If no end is specified, the period is considered unbounded on the end.

Field Type Rules Description
start google.protobuf.Timestamp The inclusive start.
end google.protobuf.Timestamp The inclusive end.
end_exclusive google.protobuf.Timestamp The exclusive end.

File-level Extensions

Extension Type Base Number Description
throws string .google.protobuf.MethodOptions 76131 throws is used to document error messages that the method might return in status.details.

CalendarPeriod

A CalendarPeriod represents the abstract concept of a time period that has a canonical start. Grammatically, "the start of the current CalendarPeriod." All calendar times begin at midnight UTC.

Name Number Description
CALENDAR_PERIOD_UNSPECIFIED 0 Undefined period, raises an error.
DAY 1 A day.
WEEK 2 A week. Weeks begin on Monday, following
ISO 8601.
FORTNIGHT 3 A fortnight. The first calendar fortnight of the year begins at the start
of week 1 according to
ISO 8601.
MONTH 4 A month.
QUARTER 5 A quarter. Quarters start on dates 1-Jan, 1-Apr, 1-Jul, and 1-Oct of each
year.
HALF 6 A half-year. Half-years start on dates 1-Jan and 1-Jul.
YEAR 7 A year.

Date

Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following:

  • A full date, with non-zero year, month, and day values
  • A month and day value, with a zero year, such as an anniversary
  • A year on its own, with zero month and day values
  • A year and month value, with a zero day, such as a credit card expiration date

Related types are [google.type.TimeOfDay][google.type.TimeOfDay] and google.protobuf.Timestamp.

Field Type Rules Description
year int32 Year of the date. Must be from 1 to 9999, or 0 to specify a date without
a year.
month int32 Month of a year. Must be from 1 to 12, or 0 to specify a year without a
month and day.
day int32 Day of a month. Must be from 1 to 31 and valid for the year and month, or 0
to specify a year by itself or a year and month where the day isn't
significant.

Money

Represents an amount of money with its currency type.

Field Type Rules Description
currency_code string The three-letter currency code defined in ISO 4217.
units int64 The whole units of the amount.
For example if currencyCode is "USD", then 1 unit is one US dollar.
nanos int32 Number of nano (10^-9) units of the amount.
The value must be between -999,999,999 and +999,999,999 inclusive.
If units is positive, nanos must be positive or zero.
If units is zero, nanos can be positive, zero, or negative.
If units is negative, nanos must be negative or zero.
For example $-1.75 is represented as units=-1 and nanos=-750,000,000.

Scalar Value Types

.proto Type Notes C++ Java Python Go C# PHP Ruby
double double double float float64 double float Float
float float float float float32 float float Float
int32 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. int32 int int int32 int integer Bignum or Fixnum (as required)
int64 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. int64 long int/long int64 long integer/string Bignum
uint32 Uses variable-length encoding. uint32 int int/long uint32 uint integer Bignum or Fixnum (as required)
uint64 Uses variable-length encoding. uint64 long int/long uint64 ulong integer/string Bignum or Fixnum (as required)
sint32 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. int32 int int int32 int integer Bignum or Fixnum (as required)
sint64 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. int64 long int/long int64 long integer/string Bignum
fixed32 Always four bytes. More efficient than uint32 if values are often greater than 2^28. uint32 int int uint32 uint integer Bignum or Fixnum (as required)
fixed64 Always eight bytes. More efficient than uint64 if values are often greater than 2^56. uint64 long int/long uint64 ulong integer/string Bignum
sfixed32 Always four bytes. int32 int int int32 int integer Bignum or Fixnum (as required)
sfixed64 Always eight bytes. int64 long int/long int64 long integer/string Bignum
bool bool boolean boolean bool bool boolean TrueClass/FalseClass
string A string must always contain UTF-8 encoded or 7-bit ASCII text. string String str/unicode string string string String (UTF-8)
bytes May contain any arbitrary sequence of bytes. string ByteString str []byte ByteString string String (ASCII-8BIT)

Legend

*) required