Skip to content

MonopolX Partner API v1 (Alpha)

Addresses

Manage Business Partner Addresses

List

List Business Partners Addresses

Input: AddressListRequest

Field Type Rules Description
*parent string The parent, which owns this collection of premises.
*tenant string The tenant to list addresses 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 AddressListRequest.Filter The filter to apply to the list.
order_by string Comma separated list of fields to order by. Use - for descending order, e.g. "-created_time".

Output: AddressListResponse

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

Get

Get a specific address of a business partner

Output: Address

Field Type Rules Description
*tenant string immutable The tenant of the resource.
*id string immutable The ID of the resource.
*type Address.Type The type of the address
*address enpowerx.types.PostalAddress The postal address.
create_time google.protobuf.Timestamp output only The creation time of the communication data.
update_time google.protobuf.Timestamp output only The last update time of the communication data.

Create

Create a Business Partner Address

Input: Address

Field Type Rules Description
*tenant string immutable The tenant of the resource.
*id string immutable The ID of the resource.
*type Address.Type The type of the address
*address enpowerx.types.PostalAddress The postal address.
create_time google.protobuf.Timestamp output only The creation time of the communication data.
update_time google.protobuf.Timestamp output only The last update time of the communication data.

Output: Address

Field Type Rules Description
*tenant string immutable The tenant of the resource.
*id string immutable The ID of the resource.
*type Address.Type The type of the address
*address enpowerx.types.PostalAddress The postal address.
create_time google.protobuf.Timestamp output only The creation time of the communication data.
update_time google.protobuf.Timestamp output only The last update time of the communication data.

Update

Update a Business Partner Address

Input: UpdateAddressRequest

Field Type Rules Description
*address Address The address 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: Address

Field Type Rules Description
*tenant string immutable The tenant of the resource.
*id string immutable The ID of the resource.
*type Address.Type The type of the address
*address enpowerx.types.PostalAddress The postal address.
create_time google.protobuf.Timestamp output only The creation time of the communication data.
update_time google.protobuf.Timestamp output only The last update time of the communication data.

AddressListRequest.Filter

Field Type Rules Description
types Address.Type repeated Filter by address type

Address.Type

Name Number Description
TYPE_UNSPECIFIED 0 Type not specified
DEFAULT 1 The main address of the business partner
OTHER 2 Address for a specific

BankAccounts

Manage Bank Accounts

List

List Bank Accounts

Input: BankAccountListRequest

Field Type Rules Description
*tenant string The tenant the bank account list belongs to.
*parent string The ID of the resource's parent.
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: BankAccountList

Field Type Rules Description
bank_accounts BankAccount repeated The requested bank accounts.
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.

Get

Get a BankAccount

Output: BankAccount

Field Type Rules Description
*tenant string immutable The tenant of the resource.
*id string immutable The ID of the resource.
*iban string iban
bic string bic
bank string bank
*account_holder string account_holder
*active_period enpowerx.types.DateRange The period when the bank account is valid.
create_time google.protobuf.Timestamp output only The creation time of the bank account.
update_time google.protobuf.Timestamp output only The last update time of the bank account.

Create

Create a BankAccount

Input: BankAccount

Field Type Rules Description
*tenant string immutable The tenant of the resource.
*id string immutable The ID of the resource.
*iban string iban
bic string bic
bank string bank
*account_holder string account_holder
*active_period enpowerx.types.DateRange The period when the bank account is valid.
create_time google.protobuf.Timestamp output only The creation time of the bank account.
update_time google.protobuf.Timestamp output only The last update time of the bank account.

Output: BankAccount

Field Type Rules Description
*tenant string immutable The tenant of the resource.
*id string immutable The ID of the resource.
*iban string iban
bic string bic
bank string bank
*account_holder string account_holder
*active_period enpowerx.types.DateRange The period when the bank account is valid.
create_time google.protobuf.Timestamp output only The creation time of the bank account.
update_time google.protobuf.Timestamp output only The last update time of the bank account.

Update

Update a BankAccount

Input: UpdateBankAccountRequest

Field Type Rules Description
*bank_account BankAccount The partner to update.
update_mask google.protobuf.FieldMask The list of fields to update.

Output: BankAccount

Field Type Rules Description
*tenant string immutable The tenant of the resource.
*id string immutable The ID of the resource.
*iban string iban
bic string bic
bank string bank
*account_holder string account_holder
*active_period enpowerx.types.DateRange The period when the bank account is valid.
create_time google.protobuf.Timestamp output only The creation time of the bank account.
update_time google.protobuf.Timestamp output only The last update time of the bank account.

Delete

Delete a BankAccount

TerminateBankAccount

Terminate a bank account and replace its usages.

Input: TerminateBankAccountRequest

Field Type Rules Description
*tenant string The tenant the contract belongs to.
*terminated_bank_account string The id of the bank account which should be terminated.
*end_date google.type.Date End date of the bank account which should be terminated.
replacement_bank_account string The id of the bank account which should be used as replacement. When not defined then MANUAL_TRANSFER will be used.
sepa_mandated bool Contract exposes a SEPA mandate. Only for DIRECT_DEBIT
sepa_mandate_reference string SEPA mandate reference. Only for DIRECT_DEBIT

CommunicationChannels

Manage communication channels of a Partner.

List

List Communication Channels

Input: CommunicationChannelListRequest

Field Type Rules Description
*tenant string The tenant the bank account list belongs to.
*parent string The ID of the resource's parent.
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 CommunicationChannelListRequest.Filter The filter to apply to the list.
order_by string Comma separated list of fields to order by. Use - for descending order, e.g. "-created_time".

Output: CommunicationChannelListResponse

Field Type Rules Description
communication_channels CommunicationChannel repeated The requested communication channels.
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.

Get

Get a CommunicationChannel

Output: CommunicationChannel

Field Type Rules Description
*tenant string immutable The tenant of the resource.
*id string immutable The ID of the resource.
*type CommunicationChannel.Type immutable The type of the communication channel.
This field is determined automatically by the selected channel field.
*value string The value of the communication channel. This can be a phone number or an email address.
The value must be unique per partner and type.
description string Description of the communication channel.
is_default bool Defines if the given communication channel is the default one.
Only one communication channel can be defined as default.
The first channel created is always the default one.
If a new channel is created and the default flag is set to true,
the old default channel will be set to false.
The same applies for updates.
create_time google.protobuf.Timestamp output only The creation time of the bank account.
update_time google.protobuf.Timestamp output only The last update time of the bank account.

Create

Create a CommunicationChannel

Input: CommunicationChannel

Field Type Rules Description
*tenant string immutable The tenant of the resource.
*id string immutable The ID of the resource.
*type CommunicationChannel.Type immutable The type of the communication channel.
This field is determined automatically by the selected channel field.
*value string The value of the communication channel. This can be a phone number or an email address.
The value must be unique per partner and type.
description string Description of the communication channel.
is_default bool Defines if the given communication channel is the default one.
Only one communication channel can be defined as default.
The first channel created is always the default one.
If a new channel is created and the default flag is set to true,
the old default channel will be set to false.
The same applies for updates.
create_time google.protobuf.Timestamp output only The creation time of the bank account.
update_time google.protobuf.Timestamp output only The last update time of the bank account.

Output: CommunicationChannel

Field Type Rules Description
*tenant string immutable The tenant of the resource.
*id string immutable The ID of the resource.
*type CommunicationChannel.Type immutable The type of the communication channel.
This field is determined automatically by the selected channel field.
*value string The value of the communication channel. This can be a phone number or an email address.
The value must be unique per partner and type.
description string Description of the communication channel.
is_default bool Defines if the given communication channel is the default one.
Only one communication channel can be defined as default.
The first channel created is always the default one.
If a new channel is created and the default flag is set to true,
the old default channel will be set to false.
The same applies for updates.
create_time google.protobuf.Timestamp output only The creation time of the bank account.
update_time google.protobuf.Timestamp output only The last update time of the bank account.

Update

Update a ContactDetail

Input: UpdateCommunicationChannelRequest

Field Type Rules Description
*communication_channel CommunicationChannel The communication channel 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: CommunicationChannel

Field Type Rules Description
*tenant string immutable The tenant of the resource.
*id string immutable The ID of the resource.
*type CommunicationChannel.Type immutable The type of the communication channel.
This field is determined automatically by the selected channel field.
*value string The value of the communication channel. This can be a phone number or an email address.
The value must be unique per partner and type.
description string Description of the communication channel.
is_default bool Defines if the given communication channel is the default one.
Only one communication channel can be defined as default.
The first channel created is always the default one.
If a new channel is created and the default flag is set to true,
the old default channel will be set to false.
The same applies for updates.
create_time google.protobuf.Timestamp output only The creation time of the bank account.
update_time google.protobuf.Timestamp output only The last update time of the bank account.

CommunicationChannelListRequest.Filter

Field Type Rules Description
types CommunicationChannel.Type repeated Filter by type.
value_scalar enpowerx.types.StringScalarFilter Filter for one value.
value_list enpowerx.types.StringListFilter Filter for multiple values.
description_scalar enpowerx.types.StringScalarFilter Filter for one value.
description_list enpowerx.types.StringListFilter Filter for multiple values.
is_default bool optional Filter by default status.
create_time_datetime enpowerx.types.DateTimeFilter Filter by readings on the specified date.
create_time_range enpowerx.types.DateTimeRangeFilter Filter by readings in the specified range
update_time_datetime enpowerx.types.DateTimeFilter Filter by readings on the specified date.
update_time_range enpowerx.types.DateTimeRangeFilter Filter by readings in the specified range

CommunicationChannel.Type

Name Number Description
TYPE_UNSPECIFIED 0 Unspecified type.
PHONE 1 Phone number
EMAIL 2 Email address

AddressCreated

Field Type Rules Description
partner Partner The partner the address is created for
address Address The address being created

BankAccountCreated

Event for creation of bank account

Field Type Rules Description
bank_account BankAccount The created bank account.

DefaultAddressChanged

Field Type Rules Description
partner Partner The partner the address belongs to
new_address Address The new default address
old_address Address The old default address

PartnerCreated

Field Type Rules Description
partner Partner The partner being created

InputValues

Manage Input values related to business partners

List

List input values

Input: InputValueListRequest

Field Type Rules Description
*parent string The parent resource to list input values for.
*tenant string The tenant to list input values 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 InputValueListRequest.Filter The filter to apply to the list.
order_by string Comma separated list of fields to order by. Use - for descending order, e.g. "-created_time".

Output: InputValueListResponse

Field Type Rules Description
input_values InputValue repeated List of requested input values.
next_page_token string Token to retrieve the next page of results, or empty if there are no more results in the list.
total_size int32 Count of items contained in the list.

Get

Get a specific input value

Output: InputValue

Field Type Rules Description
*tenant string immutable The tenant of the resource.
*id string immutable The ID of the resource.
type InputValue.Type output only The type of the input value.
*value string The value of the input value.
is_active bool Indicates if the input value is active and can be used.
create_time google.protobuf.Timestamp output only The creation time of the communication data.
update_time google.protobuf.Timestamp output only The last update time of the communication data.

Create

Create a new input value

Input: InputValue

Field Type Rules Description
*tenant string immutable The tenant of the resource.
*id string immutable The ID of the resource.
type InputValue.Type output only The type of the input value.
*value string The value of the input value.
is_active bool Indicates if the input value is active and can be used.
create_time google.protobuf.Timestamp output only The creation time of the communication data.
update_time google.protobuf.Timestamp output only The last update time of the communication data.

Output: InputValue

Field Type Rules Description
*tenant string immutable The tenant of the resource.
*id string immutable The ID of the resource.
type InputValue.Type output only The type of the input value.
*value string The value of the input value.
is_active bool Indicates if the input value is active and can be used.
create_time google.protobuf.Timestamp output only The creation time of the communication data.
update_time google.protobuf.Timestamp output only The last update time of the communication data.

Update

Update a input value

Input: UpdateInputValueRequest

Field Type Rules Description
*input_value InputValue The input value 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: InputValue

Field Type Rules Description
*tenant string immutable The tenant of the resource.
*id string immutable The ID of the resource.
type InputValue.Type output only The type of the input value.
*value string The value of the input value.
is_active bool Indicates if the input value is active and can be used.
create_time google.protobuf.Timestamp output only The creation time of the communication data.
update_time google.protobuf.Timestamp output only The last update time of the communication data.

InputValueListRequest.Filter

Field Type Rules Description
value_scalar enpowerx.types.StringScalarFilter Filter for one value.
value_list enpowerx.types.StringListFilter Filter for multiple values.
is_active bool optional Filter by active state.

InputValue.Type

Name Number Description
TYPE_UNSPECIFIED 0 Type not specified
SALUTATION 1 Salutation
INDUSTRY 2 Industry
TITLE 3 Title of the person

Partners

Manage Business Partners

List

List Business Partners

Input: PartnerListRequest

Field Type Rules Description
*tenant string The tenant to list partners 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.
order_by string Comma separated list of fields to order by. Use - for descending order, e.g. "-create_time".
filter PartnerListRequest.Filter filter

Output: PartnerList

Field Type Rules Description
partners Partner repeated partners
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.

Get

Get a Partner with at the time of request valid references (e.g. postal address)

Output: Partner

Field Type Rules Description
*tenant string immutable The tenant of the resource.
*id string immutable The ID of the resource.
number string output only Generated number of the partner
external_number string external_number
type Partner.Type output only The type of the partner. This field has only informational purpose.
company Partner.Company Present if partner is a company
person Partner.Person Present if partner is a person
role_customer Partner.RoleCustomer Customer role of the partner.
role_market_partner Partner.RoleMarketPartner Market partner role of the partner.
preferred_communication_channel Partner.CommunicationChannelType The preferred means of communication.
communication_channels CommunicationChannel input only
repeated
The communication channels of the partner.
Can only be set once when creating the partner.
For update operations use the respective API.
bank_account Partner.BankAccount input only The bank account of the partner.
Can only be set once when creating the partner.
For update operations use the respective API.
address enpowerx.types.PostalAddress input only The default address of the partner.
Can only be set once when creating the partner.
For update operations use the respective API.
is_active bool output only Active state of the partner.
create_time google.protobuf.Timestamp output only The creation time of the business partner.
update_time google.protobuf.Timestamp output only The last update time of the business partner.
*etag string This checksum is computed by the server based on the value of other
fields, and must be sent on update and delete requests to ensure the
client has an up-to-date value before proceeding.

Create

Create a Business Partner

Input: Partner

Field Type Rules Description
*tenant string immutable The tenant of the resource.
*id string immutable The ID of the resource.
number string output only Generated number of the partner
external_number string external_number
type Partner.Type output only The type of the partner. This field has only informational purpose.
company Partner.Company Present if partner is a company
person Partner.Person Present if partner is a person
role_customer Partner.RoleCustomer Customer role of the partner.
role_market_partner Partner.RoleMarketPartner Market partner role of the partner.
preferred_communication_channel Partner.CommunicationChannelType The preferred means of communication.
communication_channels CommunicationChannel input only
repeated
The communication channels of the partner.
Can only be set once when creating the partner.
For update operations use the respective API.
bank_account Partner.BankAccount input only The bank account of the partner.
Can only be set once when creating the partner.
For update operations use the respective API.
address enpowerx.types.PostalAddress input only The default address of the partner.
Can only be set once when creating the partner.
For update operations use the respective API.
is_active bool output only Active state of the partner.
create_time google.protobuf.Timestamp output only The creation time of the business partner.
update_time google.protobuf.Timestamp output only The last update time of the business partner.
*etag string This checksum is computed by the server based on the value of other
fields, and must be sent on update and delete requests to ensure the
client has an up-to-date value before proceeding.

Output: Partner

Field Type Rules Description
*tenant string immutable The tenant of the resource.
*id string immutable The ID of the resource.
number string output only Generated number of the partner
external_number string external_number
type Partner.Type output only The type of the partner. This field has only informational purpose.
company Partner.Company Present if partner is a company
person Partner.Person Present if partner is a person
role_customer Partner.RoleCustomer Customer role of the partner.
role_market_partner Partner.RoleMarketPartner Market partner role of the partner.
preferred_communication_channel Partner.CommunicationChannelType The preferred means of communication.
communication_channels CommunicationChannel input only
repeated
The communication channels of the partner.
Can only be set once when creating the partner.
For update operations use the respective API.
bank_account Partner.BankAccount input only The bank account of the partner.
Can only be set once when creating the partner.
For update operations use the respective API.
address enpowerx.types.PostalAddress input only The default address of the partner.
Can only be set once when creating the partner.
For update operations use the respective API.
is_active bool output only Active state of the partner.
create_time google.protobuf.Timestamp output only The creation time of the business partner.
update_time google.protobuf.Timestamp output only The last update time of the business partner.
*etag string This checksum is computed by the server based on the value of other
fields, and must be sent on update and delete requests to ensure the
client has an up-to-date value before proceeding.

Update

Update a Business Partner

Input: UpdatePartnerRequest

Field Type Rules Description
*partner Partner The partner to update.
update_mask google.protobuf.FieldMask The list of fields to update.

Output: Partner

Field Type Rules Description
*tenant string immutable The tenant of the resource.
*id string immutable The ID of the resource.
number string output only Generated number of the partner
external_number string external_number
type Partner.Type output only The type of the partner. This field has only informational purpose.
company Partner.Company Present if partner is a company
person Partner.Person Present if partner is a person
role_customer Partner.RoleCustomer Customer role of the partner.
role_market_partner Partner.RoleMarketPartner Market partner role of the partner.
preferred_communication_channel Partner.CommunicationChannelType The preferred means of communication.
communication_channels CommunicationChannel input only
repeated
The communication channels of the partner.
Can only be set once when creating the partner.
For update operations use the respective API.
bank_account Partner.BankAccount input only The bank account of the partner.
Can only be set once when creating the partner.
For update operations use the respective API.
address enpowerx.types.PostalAddress input only The default address of the partner.
Can only be set once when creating the partner.
For update operations use the respective API.
is_active bool output only Active state of the partner.
create_time google.protobuf.Timestamp output only The creation time of the business partner.
update_time google.protobuf.Timestamp output only The last update time of the business partner.
*etag string This checksum is computed by the server based on the value of other
fields, and must be sent on update and delete requests to ensure the
client has an up-to-date value before proceeding.

Delete

Delete a Business Partner

Partner.BankAccount

Field Type Rules Description
*iban string iban
bic string bic
bank string bank
*account_holder string account_holder

Partner.Company

Field Type Rules Description
*company_name string The company name.
commercial_register_number string Handelsregistereintrag
vat_number string The company's vat number (Umsatzsteuernummer)
industry string The company's industry. If set must be set to a existing and active enpowerx.monopolx.partners.v1.InputValue

Partner.Person

Field Type Rules Description
*salutation string salutation, if set must be set to a existing and active enpowerx.monopolx.partners.v1.InputValue
title string title, if set must be set to a existing and active enpowerx.monopolx.partners.v1.InputValue
*lastname string lastname
*firstname string firstname
birthdate google.type.Date birthdate

Partner.RoleCustomer

Field Type Rules Description
external_number string External customer number
insolvency_start_date google.type.Date Date when the customer was declared insolvency
active_period enpowerx.types.DateRange Period of validity of the role
accounting_allocation_indicator_number_type Partner.RoleCustomer.AccountingAllocationIndicatorNumberType Accounting allocation indicator number type

Partner.RoleMarketPartner

Field Type Rules Description
*partner_name string The partner name.
*type Partner.RoleMarketPartner.Type The type of the market partner.
commodity enpowerx.monopolx.types.Commodity Commodity of the market partner
*partner_number string EDI partner number
edifact_email string EDIFACT recipient address
is_system_operator bool Flag indicating whether the partner is a system operator
active_period enpowerx.types.DateRange Period of validity of the role

PartnerListRequest.Filter

Field Type Rules Description
is_active bool optional Filter by state of the partner
birthdate google.type.Date optional Filter by date of birth of the partner (if BusinessPartner of type Person)
business_partner_types Partner.Type repeated Filter by type of business partner.
lastname_scalar enpowerx.types.StringScalarFilter Filter for one value.
lastname_list enpowerx.types.StringListFilter Filter for multiple values.
firstname_scalar enpowerx.types.StringScalarFilter Filter for one value.
firstname_list enpowerx.types.StringListFilter Filter for multiple values.
salutation_scalar enpowerx.types.StringScalarFilter Filter for one value.
salutation_list enpowerx.types.StringListFilter Filter for multiple values.
email_scalar enpowerx.types.StringScalarFilter Filter for one value.
email_list enpowerx.types.StringListFilter Filter for multiple values.
numbers string repeated Filter by generated number of the partner
default_address enpowerx.monopolx.types.AddressFilter optional Filter by default address
company_name_scalar enpowerx.types.StringScalarFilter Filter for one value.
company_name_list enpowerx.types.StringListFilter Filter for multiple values.

Partner.CommunicationChannelType

Name Number Description
COMMUNICATION_CHANNEL_TYPE_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.

Partner.RoleCustomer.AccountingAllocationIndicatorNumberType

Accounting allocation indicator number type

Name Number Description
ACCOUNTING_ALLOCATION_INDICATOR_NUMBER_TYPE_UNSPECIFIED 0 Type is of unspecified, no value is provided
STANDARD 1 Type is of standard, normally default selection
US_NATO 2 Type is of us nato (if customer is employed in NATO forces)
US_NATO_USA_GKL 3 Type is of us nato (if customer is employed in NATO forces)
US_NATO_USA_GBB 4 Type is of us nato gbb (if customer is employed in NATO forces)
US_NATO_UK_DIO 5 Type is of uk dio (if customer is employed in NATO forces)
US_NATO_CFSU_EUROPE 6 Type is of cfsu europe nato (if customer is employed in NATO forces)
REVERSE_CHARGE 7 Type is of reverse charge type (reversed charge accounting is applicable)
REVERSE_CHARGE_VERBUND 8 Type is of reverse type verbund (reversed charge accounting is applicable)

Partner.RoleMarketPartner.Type

Name Number Description
TYPE_UNSPECIFIED 0 The market partner type is unspecified.
DISTRIBUTION_GRID_OPERATOR 1 Distribution Grid Operator (DNO) (DE: Verteilentzbetreiber (VNB))
SUPPLIER 2 A supplier (DE: Lieferant)
METERING_POINT_OPERATOR 3 A metering operator (DE: Messstellenbetreiber)

Partner.Type

Name Number Description
TYPE_UNSPECIFIED 0 The partner type is unspecified.
PERSON 1 The partner is a person.
COMPANY 2 The partner is a company.

Relations

Manage Business Partners Relations

List

List Business Partner Relations

Input: RelationListRequest

Field Type Rules Description
*parent string The parent, which owns this collection of premises.
*tenant string The tenant to list addresses 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 RelationListRequest.Filter The filter to apply to the list.
order_by string Comma separated list of fields to order by. Use - for descending order, e.g. "-created_time".

Output: RelationListResponse

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

Get

Get a Partner with at the time of request valid references (e.g. postal address)

Output: Relation

Field Type Rules Description
*tenant string immutable The tenant of the resource.
*id string immutable The ID of the relation.
*type Relation.Type The type of the relation.
*partner string The related partner.
annotations Relation.AnnotationsEntry repeated Arbitrary metadata for the relation.
create_time google.protobuf.Timestamp output only The creation time of the communication data.
update_time google.protobuf.Timestamp output only The last update time of the communication data.

Create

Create a Business Partner Relation

Input: Relation

Field Type Rules Description
*tenant string immutable The tenant of the resource.
*id string immutable The ID of the relation.
*type Relation.Type The type of the relation.
*partner string The related partner.
annotations Relation.AnnotationsEntry repeated Arbitrary metadata for the relation.
create_time google.protobuf.Timestamp output only The creation time of the communication data.
update_time google.protobuf.Timestamp output only The last update time of the communication data.

Output: Relation

Field Type Rules Description
*tenant string immutable The tenant of the resource.
*id string immutable The ID of the relation.
*type Relation.Type The type of the relation.
*partner string The related partner.
annotations Relation.AnnotationsEntry repeated Arbitrary metadata for the relation.
create_time google.protobuf.Timestamp output only The creation time of the communication data.
update_time google.protobuf.Timestamp output only The last update time of the communication data.

Update

Update a Business Partner Relation

Input: UpdateRelationRequest

Field Type Rules Description
*relation Relation The relation 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: Relation

Field Type Rules Description
*tenant string immutable The tenant of the resource.
*id string immutable The ID of the relation.
*type Relation.Type The type of the relation.
*partner string The related partner.
annotations Relation.AnnotationsEntry repeated Arbitrary metadata for the relation.
create_time google.protobuf.Timestamp output only The creation time of the communication data.
update_time google.protobuf.Timestamp output only The last update time of the communication data.

Delete

Delete a Business Partner

Relation.AnnotationsEntry

Field Type Rules Description
key string
value string

RelationListRequest.Filter

Field Type Rules Description
ids string repeated Filter by relation ids
types Relation.Type repeated Filter by relation types
partners string repeated Filter by related partners

Relation.Type

Name Number Description
TYPE_UNSPECIFIED 0 Type is not specified.
HAS_PARENT_COMPANY 1 The related partner is a parent company.
HAS_CONTACT 2 The related partner is a contact.
HAS_EDIFACT_CONTACT 3 The related partner is a EDI contact

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