Skip to main content

Objects

In this section

Objects

Objects in GraphQL represent the resources you can access. An object can contain a list of fields, which are specifically typed.

Fields

NameDescription

code (String)

Code name of the sensor.

displayName (String)

User determined name for a sensor.

enabled (Boolean)

Whether or not a sensor is enabled.

type (SensorType)

Sensor type (NTC).

Example

{
  "code": "abc123",
  "displayName": "abc123",
  "type": "ZIGBEE",
  "enabled": true
}

APIExceptionConnectionTypeEdge

A Relay edge containing a APIExceptionConnectionType and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (APIExceptionType)

The item at the end of the edge

Example

{
  "node": APIExceptionType,
  "cursor": "abc123"
}

Fields

NameDescription

errors ([ErrorType])

token (String)

The DRF token to be used for authentication.

Example

{
  "token": "abc123",
  "errors": [ErrorType]
}

AcceptGoodsQuote

The possible errors that can be raised are:

  • KT-CT-8223: Unauthorized.
  • KT-CT-8201: Received an invalid quoteId.
  • KT-CT-8224: Invalid data.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

goodsPurchase (GoodsPurchase)

Goods purchase created.

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "goodsPurchase": GoodsPurchase
}

AcceptTermsAndConditions

Record the terms have been accepted and progress the workflow.

Fields

NameDescription

acceptedVersion (String)

Version of terms and conditions that were accepted.

Example

{
  "acceptedVersion": "abc123"
}

Fields

NameDescription

edgeCount (Int!)

Number of nodes in the edge.

edges ([AccountApplicationConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo (PageInfo!)

Pagination data for this connection.

totalCount (Int!)

Total number of nodes.

Example

{
  "pageInfo": PageInfo,
  "edges": AccountApplicationConnectionTypeEdge,
  "totalCount": 1,
  "edgeCount": 1
}

AccountApplicationConnectionTypeEdge

A Relay edge containing a AccountApplicationConnectionType and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (AccountApplicationType)

The item at the end of the edge

Example

{
  "node": AccountApplicationType,
  "cursor": "abc123"
}

Fields

NameDescription

coolingOffEndDate (Date)

Last day of the cooling off period. Barring changes or objections, the account will be gained on the next business day after this date. This value will only be returned for current applications.

dateOfSale (Date)

Date at which this account decided to switch to us.

isMigrated (Boolean)

Whether this account application represents a migration into the current system or a regular gain.

migrationSource (String)

The source system for a migrated account. This could be the previous supplier or the previous account management system.

salesChannel (String!)

salesSubchannel (String)

The sales subchannel used when signing up. This could for example be a price comparison site.

status (AccountApplicationStatus!)

Example

{
  "status": "CURRENT",
  "salesChannel": "abc123",
  "salesSubchannel": "abc123",
  "dateOfSale": "2020-01-01",
  "coolingOffEndDate": "2020-01-01",
  "isMigrated": true,
  "migrationSource": "abc123"
}

Fields

NameDescription

campaignExpiryDate (Date)

The date on which the associated campaign itself concludes.

expiryDate (Date)

The date on which the account's participation in the campaign ends.

name (String)

The name of the campaign.

slug (String)

The slug of the campaign.

startDate (Date)

The date that the account's link to the campaign started.

Example

{
  "campaignExpiryDate": "2020-01-01",
  "name": "abc123",
  "slug": "abc123",
  "expiryDate": "2020-01-01",
  "startDate": "2020-01-01"
}

Fields

NameDescription

data (JSONString)

A JSON object containing unstructured data about the account charge.

updatedAt (DateTime)

The date and time the metadata was last updated.

Example

{
  "data": {"key": "value"},
  "updatedAt": "2020-01-01T00:00:00.000Z"
}

Fields

NameDescription

cclAmount (BigInt)

The climate change levy amount of the charge.

displayNote (String)

The display note for the charge.

grossAmount (BigInt)

The gross amount of the charge.

id (ID)

The ID of the account charge.

metadata (AccountChargeMetadataType)

netAmount (BigInt)

The net amount of the charge.

note (String)

The note for the charge.

reason (String)

The reason for the charge.

salesTaxAmount (BigInt)

The sales tax amount of the charge.

Example

{
  "id": "abc123",
  "netAmount": 1,
  "grossAmount": 1,
  "salesTaxAmount": 1,
  "cclAmount": 1,
  "reason": "abc123",
  "note": "abc123",
  "displayNote": "abc123",
  "metadata": AccountChargeMetadataType
}

Fields

NameDescription

data (JSONString!)

updatedAt (DateTime!)

Example

{
  "data": {"key": "value"},
  "updatedAt": "2020-01-01T00:00:00.000Z"
}

Fields

NameDescription

grossAmount (BigInt!)

id (ID!)

metadata (AccountCreditMetadataType)

netAmount (BigInt!)

note (String!)

reason (String!)

salesTaxAmount (BigInt!)

Example

{
  "id": "abc123",
  "grossAmount": 1,
  "netAmount": 1,
  "salesTaxAmount": 1,
  "note": "abc123",
  "reason": "abc123",
  "metadata": AccountCreditMetadataType
}

Fields

NameDescription

edgeCount (Int!)

Number of nodes in the edge.

edges ([AccountEventConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo (PageInfo!)

Pagination data for this connection.

totalCount (Int!)

Total number of nodes.

Example

{
  "pageInfo": PageInfo,
  "edges": AccountEventConnectionTypeEdge,
  "totalCount": 1,
  "edgeCount": 1
}

AccountEventConnectionTypeEdge

A Relay edge containing a AccountEventConnectionType and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (AccountEvent)

The item at the end of the edge

Example

{
  "node": EmailEventType,
  "cursor": "abc123"
}

Fields

NameDescription

category (String!)

fetchUrl (String)

filename (String!)

id (ID!)

The ID of the object

isReady (Boolean)

Is the file ready for use / downloadable?

isUploaded (Boolean)

Is the file uploaded to S3?

sizeInBytes (Int)

Example

{
  "id": "abc123",
  "filename": "abc123",
  "category": "abc123",
  "isUploaded": true,
  "isReady": true,
  "fetchUrl": "abc123",
  "sizeInBytes": 1
}

Fields

NameDescription

edgeCount (Int!)

Number of nodes in the edge.

edges ([AccountFileAttachmentConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo (PageInfo!)

Pagination data for this connection.

totalCount (Int!)

Total number of nodes.

Example

{
  "pageInfo": PageInfo,
  "edges": AccountFileAttachmentConnectionTypeEdge,
  "totalCount": 1,
  "edgeCount": 1
}

AccountFileAttachmentConnectionTypeEdge

A Relay edge containing a AccountFileAttachmentConnectionType and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (AccountFileAttachment)

The item at the end of the edge

Example

{
  "node": AccountFileAttachment,
  "cursor": "abc123"
}

Fields

NameDescription

isEligibleForIo (Boolean)

Whether account is eligible to register devices with Intelligent Octopus or not.

Example

{
  "isEligibleForIo": true
}

Fields

NameDescription

edgeCount (Int!)

Number of nodes in the edge.

edges ([AccountPaymentConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo (PageInfo!)

Pagination data for this connection.

totalCount (Int!)

Total number of nodes.

Example

{
  "pageInfo": PageInfo,
  "edges": AccountPaymentConnectionTypeEdge,
  "totalCount": 1,
  "edgeCount": 1
}

AccountPaymentConnectionTypeEdge

A Relay edge containing a AccountPaymentConnectionType and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (AccountPaymentType)

The item at the end of the edge

Example

{
  "node": AccountPaymentType,
  "cursor": "abc123"
}

Fields

NameDescription

amount (BigInt!)

Amount of payment in pence

id (ID!)

paymentDate (Date!)

The date this payment is scheduled to be debited

reference (String!)

status (AccountPaymentStatusOptions)

The current status of the payment

surchargeAmount (Int)

Surcharge amount generated by this payment.

transactionType (AccountPaymentTransactionTypeChoices)

The transaction type of the payment.

Example

{
  "id": "abc123",
  "amount": 1,
  "paymentDate": "2020-01-01",
  "reference": "abc123",
  "transactionType": "DD_FIRST_COLLECTION",
  "status": "SCHEDULED",
  "surchargeAmount": 1
}

Fields

NameDescription

account (AccountType!)

createdAt (DateTime!)

namespace (String!)

updatedAt (DateTime!)

value (String!)

Example

{
  "namespace": "abc123",
  "value": "abc123",
  "createdAt": "2020-01-01T00:00:00.000Z",
  "updatedAt": "2020-01-01T00:00:00.000Z",
  "account": AccountType
}

Fields

NameDescription

edgeCount (Int!)

Number of nodes in the edge.

edges ([AccountRepaymentConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo (PageInfo!)

Pagination data for this connection.

totalCount (Int!)

Total number of nodes.

Example

{
  "pageInfo": PageInfo,
  "edges": AccountRepaymentConnectionTypeEdge,
  "totalCount": 1,
  "edgeCount": 1
}

AccountRepaymentConnectionTypeEdge

A Relay edge containing a AccountRepaymentConnectionType and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (AccountRepaymentType)

The item at the end of the edge

Example

{
  "node": AccountRepaymentType,
  "cursor": "abc123"
}

Fields

NameDescription

amount (BigInt!)

Amount of payment in pence

id (ID!)

paymentDate (Date!)

The date this payment is scheduled to be debited

status (AccountRepaymentStatusOptions)

The current status of the repayment

Example

{
  "id": "abc123",
  "amount": 1,
  "paymentDate": "2020-01-01",
  "status": "REQUESTED"
}

AccountType

The account object can be one of several attached to a Portfolio (which usually has an AccountUser which is used to authenticate access to the Portfolio's accounts). Typically a person has a single account attached to a portfolio and properties on the same account will appear on the same bill. Where separate bills are desired, multiple accounts are created and added to the same portfolio of accounts.

Fields

NameDescription

accountType (AccountTypeChoices)

The type of account.

activeHardshipAgreements ([HardshipAgreementType])

List of active hardship agreements for the user when isinhardship is True.

activeReferralSchemes (ReferralSchemeTypes)

The referral schemes currently active for this account.

address (RichAddressType)

The billing address of this account, stored in the new libaddressinput-based format.

Note that name and organization are very unlikely to be supplied here; the billing_name field on the account itself is generally used for that purpose instead.

annualStatements (AnnualStatementConnectionTypeConnection)

Fetch annual statements for the account.

applications (AccountApplicationConnectionTypeConnection)

Applications by this account to become our customer. More recent applications will be listed first.

assistanceAgreements ([AssistanceAgreementType])

Assistance agreements for account.

balance (Int!)

The current account balance.

bill (BillInterface)

Fetch a specific issued bill (invoice/statement) for the account.

billingAddress (String)

The billing address of the account.

billingAddressLine1 (String)

billingAddressLine2 (String)

billingAddressLine3 (String)

billingAddressLine4 (String)

billingAddressLine5 (String)

billingAddressPostcode (String)

billingCountryCode (String)

billingDeliveryPointIdentifier (String)

billingEmail (String)

The billing email of the account.

billingName (String)

The billing name of the account.

billingOptions (BillingOptionsType)

Information about the account's billing cycle.

billingPostcode (String)

The postcode of the billing address.

billingSubName (String)

The billing sub name of the account.

bills (BillConnectionTypeConnection)

Fetch issued bills (invoices/statements) for the account.

brand (String)

The brand of the account.

business (BusinessType)

Business info related to a business account.

businessType (BusinessTypeOptions)

The company type of a business account.

Deprecated

The 'businessType' field is deprecated.

Use `business.businessType` instead

- Marked as deprecated on 2022-03-09.
- Will be removed on 2024-01-01.

campaigns ([AccountCampaignType])

The campaigns associated with an account.

canBeWithdrawn (Boolean)

Whether an account can be withdrawn.

canChangePayments (Boolean)

Whether an account can change their payment schedule.

canInputMeterReadingsViaIvr (Boolean)

Whether on not the meter readings can be input via IVR.

canRenewTariff (Boolean)

Whether the account is eligible for tariff renewal

canRequestRefund (Boolean)

Whether the account can request a credit refund.

commsDeliveryPreference (CommsDeliveryPreference)

The method the account has specified they prefer we contact them

communicationDeliveryPreference (String)

Deprecated

The 'communicationDeliveryPreference' field is deprecated.

Use `commsDeliveryPreference` instead

- Marked as deprecated on 2022-05-27.
- Will be removed on 2024-01-01.

contributionAgreements ([ContributionAgreementType])

Contribution agreements for account.

cotReadingWindowDays (Int)

The number of days around a move out a final meter reading can be given for.

createdAt (DateTime)

The datetime that the account was originally created.

currentEstimatedSsd (Date)

The current estimated supply start day on an account.

debtCollectionProceedings ([DebtCollectionProceedingType])

Debt collection proceedings for account.

directDebitInstructions (DirectDebitInstructionConnectionTypeConnection)

The direct debit instructions of the account

documentAccessibility (DocumentAccessibilityChoices)

The document accessibility preference of the account.

earliestPossibleSsd (Date)

The earliest possible supply start day on an account.

electricityAgreements ([ElectricityAgreementType])

The electricity agreements belonging to the account

eligibilityForWarmHomeDiscount (WarmHomeDiscountEligibility)

Whether the account is eligible to apply for Warm Home Discount as part of the Scottish Broader Group.

events (AccountEventConnectionTypeConnection)

The account events that were recorded for the account.

fileAttachments ([AccountFileAttachment])

Files attached to this account. Only available if categories defined in settings.

gasAgreements ([GasAgreementType])

The gas agreements belonging to the account

greenAccomplishments (GreenAccomplishmentsType)

The green benefits achieved over the lifetime of an account.

hasActiveCollectionsProceedings (Boolean)

Whether or not the account has active collections proceedings.

hasActiveDunningProcess (Boolean)

Whether or not the account has an active Dunning process.

id (ID!)

isEligibleForElectricityReadingIncentive (Boolean)

Whether or not an account is eligible for an electricity reading incentive.

isEligibleForGasReadingIncentive (Boolean)

Whether or not an account is eligible for a gas reading incentive.

isInBlockingMigration (Boolean)

Whether or not the account is a part of a migration for which we want to switch supplier without customer actions.

isInHardship (Boolean)

True if there is an active Hardship Agreement for this account. False otherwise.

latestPossibleSsd (Date)

The latest possible supply start day on an account.

ledgers ([LedgerType])

Ledgers provide the foundation of bookkeeping functionality. Similar to a bank account, they allow us to keep track of financial activity on a particular customer account.

maximumRefund (MaximumRefundType)

The maximum amount a customer is allowed to request as a refund and the reason why that's the maximum amount.

metadata ([Metadata])

Metadata associated with the account.

notes ([AccountNoteType])

Notes for the account.

number (String)

A code that uniquely identifies the account.

operationsTeam (OperationsTeamType)

The operations team that the account belongs to.

overdueBalance (Int)

The current account overdue balance.

paginatedFileAttachments (AccountFileAttachmentConnectionTypeConnection)

Files attached to this account.

paginatedPaymentForecast (PaymentForecastConnectionTypeConnection)

Paginated payment forecasts for an account. Starts from today's date (inclusive). The interface supports last but does not guarantee 'lastness'.

paymentAdequacy (PaymentAdequacyType)

Results of the latest review of the account's payments.

paymentForecast ([PaymentForecastType])

A list displaying the payment forecast for an account. The list starts from today's date (inclusive).

Deprecated

The 'paymentForecast' field is deprecated.

Please use 'paginatedPaymentForecast' instead.

- Marked as deprecated on 2024-01-03.
- Will be removed on 2025-01-01.

paymentSchedules (PaymentScheduleConnectionTypeConnection)

The schedules that describe how we would expect to take payments for an account on a given month.

payments (AccountPaymentConnectionTypeConnection)

The payments made into an account from a payment instruction.

portfolio (PortfolioType)

The portfolio this account is linked to.

preferredLanguageForComms (String)

The language that the account preferred for communications.

projectedBalance (Int)

Expected balance in a year's time

properties ([PropertyType])

Properties linked to the account now and in the future

provisionalTransactions (ProvisionalTransactionConnectionTypeConnection)

recommendedBalanceAdjustment (Int)

Top up payment amount in pence that we recommend for an account.

references ([AccountReferenceType])

Account references linked to this account.

referrals (ReferralConnectionTypeConnection)

The referrals created by this account.

referralsCreated (Int)

Number of referrals created by this account.

repayments (AccountRepaymentConnectionTypeConnection)

The repayments that have been requested for this account.

requestRefundEligibility (RequestRefundEligibilityType)

Details about the eligibility status for requesting a refund.

rewards ([RewardType])

The rewards applied to this account.

shouldReviewPayments (Boolean)

Whether the account's payment should be adjusted.

smets2Interest (SmartMeterInterestChoices)

The interest of an account in procuring smart meters.

smets2RefusalReason (SMETS2InterestReason)

The reason why the account holder is not interested in having a smart meter installed.

splitBillingAddress ([String])

List of billing address lines.

status (AccountStatus)

The current status of the account.

trackerTariffDailyPricing (TrackerTariffDailyPricing)

Only relevant for Kraken instances that support daily tracker tariffs. Returns null if not applicable.

transactions (TransactionConnectionTypeConnection)

Fetch transactions that have taken place on the account.

urn (String)

Unique reference number from a 3rd party enrolment.

users ([AccountUserType!]!)

warmHomeDiscount (WarmHomeDiscount)

Get details about warm home discount applications and records

Example

{
  "id": "abc123",
  "number": "abc123",
  "status": "PENDING",
  "paymentSchedules": PaymentScheduleConnectionTypeConnection,
  "users": AccountUserType,
  "brand": "abc123",
  "balance": 1,
  "overdueBalance": 1,
  "urn": "abc123",
  "billingName": "abc123",
  "billingSubName": "abc123",
  "billingEmail": "abc123",
  "billingAddress": "abc123",
  "billingAddressLine1": "abc123",
  "billingAddressLine2": "abc123",
  "billingAddressLine3": "abc123",
  "billingAddressLine4": "abc123",
  "billingAddressLine5": "abc123",
  "billingAddressPostcode": "abc123",
  "billingCountryCode": "abc123",
  "billingDeliveryPointIdentifier": "abc123",
  "splitBillingAddress": ["abc123"],
  "address": RichAddressType,
  "portfolio": PortfolioType,
  "ledgers": [LedgerType],
  "metadata": [Metadata],
  "canRequestRefund": true,
  "requestRefundEligibility": RequestRefundEligibilityType,
  "payments": AccountPaymentConnectionTypeConnection,
  "repayments": AccountRepaymentConnectionTypeConnection,
  "paymentForecast": [PaymentForecastType],
  "paginatedPaymentForecast": PaymentForecastConnectionTypeConnection,
  "referrals": ReferralConnectionTypeConnection,
  "referralsCreated": 1,
  "rewards": [RewardType],
  "activeReferralSchemes": ReferralSchemeTypes,
  "transactions": TransactionConnectionTypeConnection,
  "provisionalTransactions": ProvisionalTransactionConnectionTypeConnection,
  "annualStatements": AnnualStatementConnectionTypeConnection,
  "bills": BillConnectionTypeConnection,
  "billingOptions": BillingOptionsType,
  "bill": BillInterface,
  "directDebitInstructions": DirectDebitInstructionConnectionTypeConnection,
  "events": AccountEventConnectionTypeConnection,
  "applications": AccountApplicationConnectionTypeConnection,
  "accountType": "BUSINESS",
  "businessType": "SOLE_TRADER",
  "business": BusinessType,
  "commsDeliveryPreference": "EMAIL",
  "communicationDeliveryPreference": "abc123",
  "documentAccessibility": "LARGE_PRINT",
  "references": [AccountReferenceType],
  "fileAttachments": [AccountFileAttachment],
  "paginatedFileAttachments": AccountFileAttachmentConnectionTypeConnection,
  "maximumRefund": MaximumRefundType,
  "campaigns": [AccountCampaignType],
  "isInHardship": true,
  "activeHardshipAgreements": [HardshipAgreementType],
  "notes": [AccountNoteType],
  "contributionAgreements": [ContributionAgreementType],
  "assistanceAgreements": [AssistanceAgreementType],
  "debtCollectionProceedings": [DebtCollectionProceedingType],
  "createdAt": "2020-01-01T00:00:00.000Z",
  "preferredLanguageForComms": "abc123",
  "properties": [PropertyType],
  "projectedBalance": 1,
  "shouldReviewPayments": true,
  "recommendedBalanceAdjustment": 1,
  "electricityAgreements": [ElectricityAgreementType],
  "gasAgreements": [GasAgreementType],
  "warmHomeDiscount": WarmHomeDiscount,
  "eligibilityForWarmHomeDiscount": WarmHomeDiscountEligibility,
  "billingPostcode": "abc123",
  "canRenewTariff": true,
  "trackerTariffDailyPricing": TrackerTariffDailyPricing,
  "paymentAdequacy": PaymentAdequacyType,
  "smets2Interest": "INTERESTED",
  "smets2RefusalReason": "SMETS2_INTEREST_REASON_DO_NOT_OWN_HOME",
  "greenAccomplishments": GreenAccomplishmentsType,
  "canChangePayments": true,
  "cotReadingWindowDays": 1,
  "canBeWithdrawn": true,
  "currentEstimatedSsd": "2020-01-01",
  "earliestPossibleSsd": "2020-01-01",
  "latestPossibleSsd": "2020-01-01",
  "operationsTeam": OperationsTeamType,
  "canInputMeterReadingsViaIvr": true,
  "hasActiveDunningProcess": true,
  "hasActiveCollectionsProceedings": true,
  "isEligibleForElectricityReadingIncentive": true,
  "isEligibleForGasReadingIncentive": true,
  "isInBlockingMigration": true
}

Fields

NameDescription

url (String)

urlIdentifier (String)

Example

{
  "urlIdentifier": "abc123",
  "url": "abc123"
}

AccountUserCommsPreferences

Information about the preferences set up for a user.

Fields

NameDescription

emailFormat (EmailFormats)

What format the user would like to receive their emails in.

fontSizeMultiplier (Float)

This setting allows the user to adjust the default font size of the communications sent to them.

isOptedInMeterReadingConfirmations (Boolean)

Whether the user has opted in to receive meter reading confirmation emails.

isOptedInToClientMessages (Boolean)

Whether a user has opted in to receive messages from the client or client group. For example, for Octopus Energy this describes whether a user is opted in to offers from Octopus Investments.

isOptedInToOfferMessages (Boolean)

Whether a user has opted in to receive messages offering discounts or other services not directly related to the services the client provides.

isOptedInToRecommendedMessages (Boolean)

Whether a user has opted in to receive messages we recommend they read, but are not vital to the utilities the client provides. For example, these could be reminders that the client will take a payment.

isOptedInToSmsMessages (Boolean)

Whether the user has opted in to receive SMS messages.

isOptedInToThirdPartyMessages (Boolean)

Whether a user has opted in to receive messages from the client's preferred third parties.

isOptedInToUpdateMessages (Boolean)

Whether a user has opted in to receive messages updating them on client activities.

isUsingInvertedEmailColours (Boolean)

Whether a user has opted to have inverted colours in their emails. This is currently only relevant to the Octopus Energy brand, whose emails have a dark background by default.

preferredHoldMusic (Songs)

Song which will be used as hold music for the user.

Example

{
  "isOptedInToClientMessages": true,
  "isOptedInToOfferMessages": true,
  "isOptedInToRecommendedMessages": true,
  "isOptedInToUpdateMessages": true,
  "isOptedInToThirdPartyMessages": true,
  "emailFormat": "TEXT",
  "isUsingInvertedEmailColours": true,
  "fontSizeMultiplier": 1.0,
  "isOptedInMeterReadingConfirmations": true,
  "isOptedInToSmsMessages": true,
  "preferredHoldMusic": "NO_SONG_PREFERRED"
}

Fields

NameDescription

namespace (String)

The namespace for the property.

value (String)

The property value.

Example

{
  "namespace": "abc123",
  "value": "abc123"
}

AccountUserRoleType

The role a user has in association with one account.

Fields

NameDescription

account (AccountType!)

id (ID!)

role (AccountUserRoleEnum)

The account role.

user (AccountUserType!)

Example

{
  "id": "abc123",
  "user": AccountUserType,
  "account": AccountType,
  "role": "TRACED"
}

AccountUserType

User objects are the core of the authentication system. They typically represent a customer who manages a portfolio of one or more accounts.

Fields

NameDescription

accountUserRoles ([AccountUserRoleType])

List of roles a user has for each account they're linked to.

accounts ([AccountInterface])

List of accounts that the user is linked to either via portfolio role or account role.

alternativePhoneNumbers ([String])

List of alternative phone numbers for the account user.

dateOfBirth (Date)

AccountUser's date of birth.

details ([AccountUserDetailType])

List of details linked to this user.

displayName (String)

We recommend you use fullName instead of this field.

Deprecated

The 'displayName' field is deprecated.

Please use fullName instead of this field.

- Marked as deprecated on 2019-12-11.
- Will be removed on 2024-01-01.

email (String!)

familyName (String!)

firstName (String)

We recommend you use preferredName or fullName instead of this field.

Deprecated

The 'firstName' field is deprecated.

Use 'givenName' instead.

- Marked as deprecated on 2020-09-23.
- Will be removed on 2023-06-05.

fullName (String)

The user's full name.

givenName (String!)

hasFamilyIssues (Boolean)

Whether there are family issues.

holdMusicChoices ([TrackOptionType])

List of hold music options.

id (ID!)

isDeceased (Boolean!)

Designates whether this user is deceased.

isInHardship (Boolean)

True if user is linked to an account with an active hardship agreement.

isOptedInToWof (Boolean)

landline (String!)

landlinePhoneNumber (String)

The user's landline phone number.

Deprecated

The 'landlinePhoneNumber' field is deprecated.

Use 'landline' instead.

- Marked as deprecated on 2021-03-22.
- Will be removed on 2024-01-01.

lastName (String)

We recommend you use preferredName or fullName instead of this field.

Deprecated

The 'lastName' field is deprecated.

Use 'familyName' instead.

- Marked as deprecated on 2020-09-23.
- Will be removed on 2023-06-05.

liveSecretKey (String)

The user's secret key to access the Developer API.

mobile (String!)

portfolioId (ID)

We recommend you use portfolioIds instead of this field.

Deprecated

The 'portfolioId' field is deprecated.

Please use 'portfolioIds' instead.

- Marked as deprecated on 2022-08-04.
- Will be removed on 2024-01-01.

portfolioIds ([ID])

List of portfolio ids that the user is linked to via their portfolio roles.

portfolioUserRoles ([PortfolioUserRoleType])

List of roles a user has for each portfolio they're linked to.

portfolios (PortfolioConnectionTypeConnection)

List of portfolios that the user is linked to via their portfolio roles.

preferences (AccountUserCommsPreferences)

preferredName (String)

The user's preferred name.

pronouns (String)

The user's pronouns e.g. 'she/her', 'he/him', 'they/them'.

specialCircumstances (SpecialCircumstancesType)

title (String)

Example

{
  "id": "abc123",
  "accounts": AccountInterface,
  "givenName": "abc123",
  "familyName": "abc123",
  "email": "abc123",
  "mobile": "abc123",
  "landline": "abc123",
  "title": "abc123",
  "pronouns": "abc123",
  "isDeceased": true,
  "liveSecretKey": "abc123",
  "portfolios": PortfolioConnectionTypeConnection,
  "dateOfBirth": "2020-01-01",
  "details": [AccountUserDetailType],
  "displayName": "abc123",
  "firstName": "abc123",
  "lastName": "abc123",
  "fullName": "abc123",
  "preferredName": "abc123",
  "portfolioId": "abc123",
  "portfolioIds": ["abc123"],
  "specialCircumstances": SpecialCircumstancesType,
  "preferences": AccountUserCommsPreferences,
  "landlinePhoneNumber": "abc123",
  "alternativePhoneNumbers": ["abc123"],
  "hasFamilyIssues": true,
  "isInHardship": true,
  "accountUserRoles": [AccountUserRoleType],
  "portfolioUserRoles": [PortfolioUserRoleType],
  "holdMusicChoices": [TrackOptionType],
  "isOptedInToWof": true
}

Fields

NameDescription

agent (SiteworksAppointmentAgent)

agentReference (String)

appointmentDate (Date!)

createdAt (DateTime!)

date (Date)

id (UUID!)

requestId (String)

status (SiteworksAppointmentStatus)

The current status of the Siteworks application.

timeSlotEnd (Time)

timeSlotStart (Time)

workCategory (WorkCategory)

The category of work the appointment has been booked for.

Example

{
  "id": "500c164d-38c7-4f74-9ac6-be210197e9e4",
  "agent": "SMS",
  "status": "BOOKED",
  "appointmentDate": "2020-01-01",
  "timeSlotStart": "00:00:00.000Z",
  "timeSlotEnd": "00:00:00.000Z",
  "createdAt": "2020-01-01T00:00:00.000Z",
  "workCategory": "EXCHANGE",
  "date": "2020-01-01",
  "requestId": "abc123",
  "agentReference": "abc123"
}

AddCampaignToAccount

The possible errors that can be raised are:

  • KT-CT-4123: Unauthorized.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

campaignAdded (Boolean)

Whether the campaign was successfully added.

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "campaignAdded": true
}

AddCreditToSmartMeter

Add credit to a smart prepayment meter.

Fields

NameDescription

amount (Int!)

Top-up amount in pence to add to smart meter

Example

{
  "amount": 1
}

Fields

NameDescription

mpan (String)

profileClass (String)

Example

{
  "mpan": "abc123",
  "profileClass": "abc123"
}

Fields

NameDescription

mprn (String)

Example

{
  "mprn": "abc123"
}

AddressConnectionTypeConnection

This field is a connection type. Connections are used to implement cursor based pagination.

Fields

NameDescription

edgeCount (Int!)

Number of nodes in the edge.

edges ([AddressConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo (PageInfo!)

Pagination data for this connection.

totalCount (Int!)

Total number of nodes.

Example

{
  "pageInfo": PageInfo,
  "edges": AddressConnectionTypeEdge,
  "totalCount": 1,
  "edgeCount": 1
}

AddressConnectionTypeEdge

A Relay edge containing a AddressConnectionType and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (AddressType)

The item at the end of the edge

Example

{
  "node": AddressType,
  "cursor": "abc123"
}

Fields

NameDescription

addressLine1 (String!)

First address line.

addressLine2 (String)

Second address line.

addressLine3 (String)

Third address line.

addressLine4 (String)

Fourth address line.

addressLine5 (String)

Fifth address line.

postcode (String!)

Postcode.

uprn (String)

Unique Property Reference Number.

Example

{
  "uprn": "abc123",
  "addressLine1": "abc123",
  "addressLine2": "abc123",
  "addressLine3": "abc123",
  "addressLine4": "abc123",
  "addressLine5": "abc123",
  "postcode": "abc123"
}

Fields

NameDescription

addressKey (String!)

A unique ID per address using part of the address with spaces removed.

addressType (AddressTypeEnum)

The type of address (domestic, business or unknown).

display (String!)

The complete and human-legible address in a single string.

electricityMeterPoints ([AddressAPIElectricityMeterPointType])

gasMeterPoints ([AddressAPIGasMeterPointType])

gspGroupId (String!)

The ID of the Grid Supply Point Group that the address belongs to.

hasPrepaidMeters (Boolean!)

houseNumber (String)

The identifier for a property. The house number consists of the part of line 1 of the address that is not the street name. This includes sub-building names, building names, deliver point aliases and building numbers. For example, the house number for the property 'Flat 12 100 Example St' would be 'Flat 12 100'.

line1 (String!)

Line 1 of the address. This is generally the house number and street name.

line2 (String!)

Line 2 of the address. This is generally the area or village.

line3 (String!)

Line 3 of the address. This is generally the area or village.

line4 (String!)

Line 4 of the address. This is generally the city.

line5 (String!)

Line 5 of the address. This is generally the county.

postcode (String!)

streetName (String)

The street name for a property. The street name consists of the part of line 1 of the address that is not the house number. For example, the house number for the property 'Flat 12 100 Example St' would be 'Example St'.

Example

{
  "addressKey": "abc123",
  "addressType": "DOMESTIC",
  "display": "abc123",
  "gspGroupId": "abc123",
  "line1": "abc123",
  "line2": "abc123",
  "line3": "abc123",
  "line4": "abc123",
  "line5": "abc123",
  "postcode": "abc123",
  "houseNumber": "abc123",
  "streetName": "abc123",
  "hasPrepaidMeters": true,
  "gasMeterPoints": [AddressAPIGasMeterPointType],
  "electricityMeterPoints": [AddressAPIElectricityMeterPointType]
}

Fields

NameDescription

gspCoefficient (Float)

The price multiplier/coefficient used to calculate the unit rate.

peakOffset (Float)

The peak offset for the unit rate.

priceCap (Float)

The maximum value/cap for the unit rate.

Example

{
  "priceCap": 1.0,
  "peakOffset": 1.0,
  "gspCoefficient": 1.0
}

AlreadyLinkedError

Returned when an account already has a LINE account linked to it.

Fields

NameDescription

type (LineLinkErrorType!)

The type of error that occurred.

Example

{
  "type": "NO_MATCHING_LINE_LINK"
}

AmendPayment

The possible errors that can be raised are:

  • KT-CT-3924: Unauthorized.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

payment (AccountPaymentType)

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "payment": AccountPaymentType
}

AmendUnbilledElectricityReading

Amend unbilled electricity reading.

Fields

NameDescription

readingAmended (Boolean)

Example

{
  "readingAmended": true
}

AnimationType

A media element containing an animation, such as a Lottie.

Fields

NameDescription

accessibilityHidden (Boolean)

Whether the element is hidden from view.

accessibilityLabel (String)

Accessible description of the element.

horizontalAlignment (Alignment)

The horizontal alignment of the media.

id (ID)

Unique identifier of the object.

mediaUrl (String!)

The resource URL of the media.

typename (String)

The name of the object's type.

width (ItemSizeType)

The measurement of the element.

Example

{
  "width": FractionSizeType,
  "mediaUrl": "abc123",
  "horizontalAlignment": "START",
  "accessibilityHidden": true,
  "accessibilityLabel": "abc123",
  "id": "abc123",
  "typename": "abc123"
}

Fields

NameDescription

edgeCount (Int!)

Number of nodes in the edge.

edges ([AnnualStatementConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo (PageInfo!)

Pagination data for this connection.

totalCount (Int!)

Total number of nodes.

Example

{
  "pageInfo": PageInfo,
  "edges": AnnualStatementConnectionTypeEdge,
  "totalCount": 1,
  "edgeCount": 1
}

AnnualStatementConnectionTypeEdge

A Relay edge containing a AnnualStatementConnectionType and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (AnnualStatementType)

The item at the end of the edge

Example

{
  "node": AnnualStatementType,
  "cursor": "abc123"
}

AnnualStatementType

Annual statements that are sent to the account. They summarize important information about usage and tariffs.

Fields

NameDescription

id (ID)

pdfUrl (String)

periodEndsAt (DateTime!)

periodStartsAt (DateTime!)

Example

{
  "periodStartsAt": "2020-01-01T00:00:00.000Z",
  "periodEndsAt": "2020-01-01T00:00:00.000Z",
  "id": "abc123",
  "pdfUrl": "abc123"
}

AnnulmentBillingDocumentType

An annulment is a billing document that annuls another billing document.

Fields

NameDescription

annulledBillingDocumentId (Int!)

ID of the billing document annulled by this annulment.

firstIssued (DateTime)

First time the annulment was issued.

id (Int!)

pdfUrl (String)

URL to the PDF of the annulment.

Example

{
  "id": 1,
  "annulledBillingDocumentId": 1,
  "firstIssued": "2020-01-01T00:00:00.000Z",
  "pdfUrl": "abc123"
}

Fields

NameDescription

validFrom (DateTime)

validTo (DateTime)

value (Decimal)

Example

{
  "value": 1.0,
  "validFrom": "2020-01-01T00:00:00.000Z",
  "validTo": "2020-01-01T00:00:00.000Z"
}

ApplicableRateConnectionTypeConnection

Dovetailing rates applicable for an account / meter point combination over a given time period.

Fields

NameDescription

edgeCount (Int!)

Number of nodes in the edge.

edges ([ApplicableRateConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo (PageInfo!)

Pagination data for this connection.

totalCount (Int!)

Total number of nodes.

Example

{
  "pageInfo": PageInfo,
  "edges": ApplicableRateConnectionTypeEdge,
  "totalCount": 1,
  "edgeCount": 1
}

ApplicableRateConnectionTypeEdge

A Relay edge containing a ApplicableRateConnectionType and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (ApplicableRate)

The item at the end of the edge

Example

{
  "node": ApplicableRate,
  "cursor": "abc123"
}

AssignDiscountCode

The possible errors that can be raised are:

  • KT-GB-5911: We have assigned all electric blanket discount codes.
  • KT-GB-5912: Account already has a discount code assigned.
  • KT-GB-5913: An error occurred assigning a discount code.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

discountCode (String)

The assigned discount code.

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "discountCode": "abc123"
}

AssistanceAgreementType

A single Assistance Agreement.

Fields

NameDescription

activeFrom (Date)

The start datetime of the agreement.

activeTo (Date)

The end datetime of the agreement, if any.

assistanceType (String)

The type of assistance provided by the agreement.

Example

{
  "assistanceType": "abc123",
  "activeFrom": "2020-01-01",
  "activeTo": "2020-01-01"
}

AutoTopupConfigConnectionTypeConnection

GraphQL output type for querying nodes of auto top-up configs.

Using this class instead of AutoTopupConfigType directly allows for pagination.

Fields

NameDescription

edges ([AutoTopupConfigConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo (PageInfo!)

Pagination data for this connection.

Example


AutoTopupConfigConnectionTypeEdge

A Relay edge containing a AutoTopupConfigConnectionType and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (AutoTopupConfigType)

The item at the end of the edge

Example

{
  "node": AutoTopupConfigType,
  "cursor": "abc123"
}

AutoTopupConfigType

GraphQL output type for querying auto top-up configs.

Fields

NameDescription

accountNumber (String!)

The account number, e.g.: 'A-A1B2C3D4'.

deviceId (String!)

Alphanumber code identifying the device, e.g.: 'A1-BC-D2-00-01-23-EF-4G'.

effectiveFrom (DateTime!)

The date and time when the config became effective.

effectiveTo (DateTime)

The date and time when the config stopped being effective.

id (ID!)

topupAmount (Int!)

Auto top-up amount in the lowest currency unit. i.e. USA cents / GBP pence / etc.

Example

{
  "id": "abc123",
  "accountNumber": "abc123",
  "deviceId": "abc123",
  "topupAmount": 1,
  "effectiveFrom": "2020-01-01T00:00:00.000Z",
  "effectiveTo": "2020-01-01T00:00:00.000Z"
}

AutoTopupTriggerConnectionTypeConnection

GraphQL output type for querying nodes of auto top-up trigger events.

Using this class instead of AutoTopupTriggerType directly allows for pagination.

Fields

NameDescription

edges ([AutoTopupTriggerConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo (PageInfo!)

Pagination data for this connection.

Example


AutoTopupTriggerConnectionTypeEdge

A Relay edge containing a AutoTopupTriggerConnectionType and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (AutoTopupTriggerType)

The item at the end of the edge

Example

{
  "node": AutoTopupTriggerType,
  "cursor": "abc123"
}

AutoTopupTriggerType

GraphQL output type for querying auto top-up trigger events.

Fields

NameDescription

autoTopupConfigId (ID!)

Integer ID of the related AutoTopupConfig, e.g. '123'.

createdAt (DateTime!)

DateTime when the trigger event was created, e.g. '2024-01-01T00:00:00+00:00'.

failureReason (SmartDeviceAutoTopupTriggerFailureReasons)

Reason auto top-up trigger event failed, if any.

id (ID!)

source (SmartDeviceAutoTopupTriggerSources!)

Source of the auto top-up trigger event.

status (SmartDeviceAutoTopupTriggerStatus!)

Status of the auto top-up trigger event.

triggeredAt (DateTime!)

DateTime when auto topup was triggered, e.g. '2024-01-01T00:00:00+00:00'.

updatedAt (DateTime!)

DateTime when the trigger event was last updated, e.g. '2024-01-01T00:00:00+00:00'.

Example

{
  "id": "abc123",
  "autoTopupConfigId": "abc123",
  "triggeredAt": "2020-01-01T00:00:00.000Z",
  "status": "INITIATED",
  "source": "LOW_CREDIT_BALANCE",
  "failureReason": "NO_IMPORT_METER",
  "createdAt": "2020-01-01T00:00:00.000Z",
  "updatedAt": "2020-01-01T00:00:00.000Z"
}

Fields

NameDescription

electricity (SupplyTypeSpecificSpinsType)

Spin information for an electricity agreement.

gas (SupplyTypeSpecificSpinsType)

Spin information for a gas agreement.


BackendScreenEvent

Returns an Action to perform, e.g. a screen to load.

BackendScreenEvents are specific types of Action which trigger a mutation in the Kraken backend. They return an action (any type), such as a ScreenActionType (which is then used to load the next screen). Any action registered in the registry should really be an "event" with some side-effect in the backend.

The possible errors that can be raised are:

  • KT-CT-1111: Unauthorized.
  • KT-CT-8002: No event found.
  • KT-CT-8003: Event has no execute function.
  • KT-CT-8004: Error executing event in the backend.
  • KT-CT-8007: Incorrect or missing parameters for backend screen event.
  • KT-GB-9310: Account ineligible for joining Octoplus.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

action (ActionType)

An action to perform.

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "action": DeeplinkActionType
}

BackendScreenEventActionType

An action which triggers some event in the Kraken backend.

Fields

NameDescription

eventId (String!)

The ID of the event to trigger.

id (ID)

Unique identifier of the object.

params ([BackendScreenParam]!)

List of key-value pairs to pass as parameters to the event.

typeName (String)

The name of the action object's type.

typename (String)

The name of the object's type.

Example

{
  "typeName": "abc123",
  "id": "abc123",
  "typename": "abc123",
  "eventId": "abc123",
  "params": BackendScreenParam
}

BackendScreenParam

A key-value pair (both Strings) which is passed as a parameter to a screen.

Fields

NameDescription

key (String!)

value (String!)

Example

{
  "key": "abc123",
  "value": "abc123"
}

Fields

NameDescription

isAvailable (Boolean)

Whether the balance forecast is available for the given account.

Example

{
  "isAvailable": true
}

Fields

NameDescription

maximumSocPercentage (Int)

The maximum state of charge (soc) %.

minimumSocPercentage (Int)

The minimum state of charge (soc) %.

Example

{
  "minimumSocPercentage": 1,
  "maximumSocPercentage": 1
}

Fields

NameDescription

chargingPreferences (BatteryChargingPreferencesType)

The charging preferences of the battery (e.g. min / max state of charge %).

deviceStatus (DeviceStatusType)

The current status of the battery (e.g. connected, state of charge, power).

deviceType (KrakenFlexDeviceTypes)

Batteries.

krakenflexDeviceId (ID)

ID of the device in KrakenFlex.

params (BatteryParamsType)

Device specific parameters.

provider (ProviderChoices)

Battery integration provider (make).

Example

{
  "krakenflexDeviceId": "abc123",
  "deviceType": "BATTERIES",
  "provider": "DAIKIN",
  "params": BatteryParamsType,
  "deviceStatus": DeviceStatusType,
  "chargingPreferences": BatteryChargingPreferencesType
}

Fields

NameDescription

variantId (ID)

ID of the battery variant.

Example

{
  "variantId": "abc123"
}

Fields

NameDescription

connectionStatus (ConnectionStatus)

Whether the battery is currently connected (online/offline).

powerInKw (Decimal)

The current power of the battery in kW.

stateOfCharge (Decimal)

The current state of charge (SoC) of the battery (percentage).

Example

{
  "connectionStatus": "ONLINE",
  "powerInKw": 1.0,
  "stateOfCharge": 1.0
}

Fields

NameDescription

batteryCapacityInKwh (Decimal)

Usable capacity in kWh.

couplingType (BatteryCouplingType)

Coupling type (AC/DC).

isDeprecated (Boolean)

Whether a variant is deprecated.

isIntegrationLive (Boolean)

Whether an integration/make is live, i.e. available.

maxPowerInKw (Decimal)

Max import/export power in kW.

model (String)

Model name of the battery.

variantId (ID)

ID of the battery variant.

Example

{
  "variantId": "abc123",
  "model": "abc123",
  "couplingType": "AC",
  "batteryCapacityInKwh": 1.0,
  "maxPowerInKw": 1.0,
  "isIntegrationLive": true,
  "isDeprecated": true
}

Fields

NameDescription

make (String)

Make of the home battery.

models ([BatteryVariantModelsType])

List of home battery models per make.

Example

{
  "make": "abc123",
  "models": [BatteryVariantModelsType]
}

BillConnectionTypeConnection

This field is a connection type. Connections are used to implement cursor based pagination.

Fields

NameDescription

edgeCount (Int!)

Number of nodes in the edge.

edges ([BillConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo (PageInfo!)

Pagination data for this connection.

totalCount (Int!)

Total number of nodes.

Example

{
  "pageInfo": PageInfo,
  "edges": BillConnectionTypeEdge,
  "totalCount": 1,
  "edgeCount": 1
}

BillConnectionTypeEdge

A Relay edge containing a BillConnectionType and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (BillInterface)

The item at the end of the edge

Example

{
  "node": BillInterface,
  "cursor": "abc123"
}

BillToLatestSmartMeterSnapshot

Bill an account with a smart meter to the most recent midnight snapshot reading.

Fields

NameDescription

billedToDate (Date)

The date that has been billed up to.

currentBalance (Decimal)

The balance after attempting to bill.

Example

{
  "billedToDate": "2020-01-01",
  "currentBalance": 1.0
}

BillingOptionsType

Information about an account's billing schedule.

Fields

NameDescription

currentBillingPeriodEndDate (Date)

The date on which the current billing cycle will end. Null if the account is on flexible billing.

currentBillingPeriodStartDate (Date)

The date on which the current billing cycle started.

isFixed (Boolean!)

If true, this account is billed on specific day of a regular cycle. If false, the billing schedule is flexible, depending on when meter readings are submitted.

nextBillingDate (Date)

The next date on which this account will next be billed. This is the same as the start date for their next bill cycle. Null if the account is on flexible billing.

periodLength (AccountBillingOptionsPeriodLength)

periodLengthMultiplier (Int)

periodStartDay (Int)

The day of the month on which the account's billing period should start.

Example

{
  "periodStartDay": 1,
  "periodLength": "MONTHLY",
  "periodLengthMultiplier": 1,
  "isFixed": true,
  "currentBillingPeriodStartDate": "2020-01-01",
  "currentBillingPeriodEndDate": "2020-01-01",
  "nextBillingDate": "2020-01-01"
}

BulkUpdateSensorDisplayName

The possible errors that can be raised are:

  • KT-CT-4321: Serializer validation error.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

possibleErrors ([PossibleErrorType])

transactionIds ([SensorUpdateTransactionId])

A mapping of transaction ids for each sensor.

Example

{
  "possibleErrors": [PossibleErrorType],
  "transactionIds": [SensorUpdateTransactionId]
}

Fields

NameDescription

businessType (BusinessTypeOptions)

The company type of a business account.

name (String!)

number (String!)

Example

{
  "name": "abc123",
  "number": "abc123",
  "businessType": "SOLE_TRADER"
}

Fields

NameDescription

expiryDate (Date)

name (String!)

slug (String!)

Example

{
  "name": "abc123",
  "slug": "abc123",
  "expiryDate": "2020-01-01"
}

CancelRepaymentRequest

Cancel a repayment or refund request.

The possible errors that can be raised are:

  • KT-CT-4231: Unauthorized.
  • KT-CT-3930: The repayment or refund request does not exist.
  • KT-CT-3931: This repayment or refund request cannot be cancelled.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

possibleErrors ([PossibleErrorType])

repaymentRequest (CancelRepaymentRequestOutputType)

The cancelled repayment/refund request.

Example

{
  "possibleErrors": [PossibleErrorType],
  "repaymentRequest": CancelRepaymentRequestOutputType
}

CancelRepaymentRequestOutputType

Output from cancelling a repayment or refund request.

Fields

NameDescription

requestId (String)

The ID of the cancelled request.

status (RepaymentRequestStatus)

The current status of the cancelled request.

Example

{
  "requestId": "abc123",
  "status": "REQUESTED"
}

CancelSmartFlexOnboarding

Cancel onboarding of a device with SmartFlex.

The possible errors that can be raised are:

  • KT-CT-4371: Onboarding wizard ID is invalid.
  • KT-CT-4372: Simultaneous attempts to update onboarding process.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

possibleErrors ([PossibleErrorType])

wizard (SmartFlexOnboardingWizard)

The wizard created for onboarding the device with SmartFlex.

Example

{
  "possibleErrors": [PossibleErrorType],
  "wizard": SmartFlexOnboardingWizard
}

CardComponentType

A card containing a list of items

Fields

NameDescription

accessibilityHidden (Boolean)

Whether the element is hidden from view.

accessibilityLabel (String)

Accessible description of the element.

id (ID)

Unique identifier of the object.

items ([CardItemType]!)

The list of components.

typename (String)

The name of the object's type.

Example

{
  "accessibilityHidden": true,
  "accessibilityLabel": "abc123",
  "id": "abc123",
  "typename": "abc123",
  "items": TextType
}

Fields

NameDescription

cards ([CardComponentType]!)

The list of cards.

id (ID)

Unique identifier of the object.

typename (String)

The name of the object's type.

Example

{
  "id": "abc123",
  "typename": "abc123",
  "cards": CardComponentType
}

Fields

NameDescription

description (String)

The description for each kind of Constantine

displayName (String)

The name describing which kind of Constantine this Constantine is.

firstCaught (DateTime)

The first time this Constantine was caught.

prizeEntries (Int)

How many prize entries catching this Constantine is worth.

rarity (Rarity)

How rare this kind of Constantine is expressed as en enum associated to a percentage value.

slug (String)

The slug for this kind of Constantine.

totalCaught (Int)

The amount of times this Constantine has been caught.

Example

{
  "displayName": "abc123",
  "slug": "abc123",
  "rarity": "Popular",
  "description": "abc123",
  "prizeEntries": 1,
  "totalCaught": 1,
  "firstCaught": "2020-01-01T00:00:00.000Z"
}

Charge

A charge to the customer.

Fields

NameDescription

accountNumber (String)

Unique identifier of the account the transaction belongs to.

amount (Int)

Gross amount including tax (when payable). Refer to the amounts field for a breakdown of this information.

Deprecated

The 'amount' field is deprecated.

Use `amounts` instead for a breakdown of the relevant net, tax, and gross amounts.

- Marked as deprecated on 2023-12-06.
- Will be removed on 2024-06-01.

amounts (TransactionAmountType)

The net, tax and gross amounts for the transaction. Note: for payments and repayments, only the net amount is returned.

balanceCarriedForward (Int)

The customer's resulting balance after this transaction has been applied, in the smallest unit of currency.

billingDocumentIdentifier (ID)

The unique identifier for the most recent billing document linked with the transaction.Note: a transaction may be linked with multiple documents, but this field will only return the identifier for the most recent billing document.

consumption (Consumption)

If this charge is for consumption of a good or service, this field will contain details of how much was consumed. Omitted in cases where the charge is not for consumption, or where consumption information is not available (e.g. for some older records).

createdAt (DateTime)

The date time when the transaction is created.

hasStatement (Boolean)

Returns True if the transaction is linked with a statement.

id (ID)

isAccountCharge (Boolean)

Deprecated.

Deprecated

The 'isAccountCharge' field is deprecated.

This information is provided by the __typename introspection query.

- Marked as deprecated on 2020-06-19.
- Will be removed on 2022-11-15.

isAccountPayment (Boolean)

Deprecated.

Deprecated

The 'isAccountPayment' field is deprecated.

This information is provided by the __typename introspection query.

- Marked as deprecated on 2020-06-19.
- Will be removed on 2022-11-15.

isCredit (Boolean)

Deprecated.

Deprecated

The 'isCredit' field is deprecated.

This information is provided by the __typename introspection query.

- Marked as deprecated on 2020-06-19.
- Will be removed on 2022-11-15.

isExport (Boolean)

Whether the charge is for export electricity.

isHeld (Boolean)

Whether the statement this transaction is on has been held. A held statement is not sent to a customer automatically, but is instead marked for manual attention by operations staff. Returns False if a statement is not linked with the transaction.

isIssued (Boolean)

Whether this transaction has been issued on any billing document.Note: Look for the most recently issued transaction instead of looking through all transactions as some accounts may have initial transactions that were not issued.This will return False if the transaction is not associated with any billing documents.

isReversed (Boolean!)

note (String)

Returns the note field value for the transaction, which contains additional info.

postedDate (Date)

statementId (ID)

Returns None if a statement is not linked with the transaction.

Deprecated

The 'statementId' field is deprecated.

Use `billingDocumentIdentifier` instead.

- Marked as deprecated on 2023-11-30.
- Will be removed on 2024-06-01.

title (String)

Example

{
  "id": "abc123",
  "postedDate": "2020-01-01",
  "createdAt": "2020-01-01T00:00:00.000Z",
  "accountNumber": "abc123",
  "amount": 1,
  "amounts": TransactionAmountType,
  "balanceCarriedForward": 1,
  "isCredit": true,
  "isAccountCharge": true,
  "isAccountPayment": true,
  "isHeld": true,
  "isIssued": true,
  "title": "abc123",
  "billingDocumentIdentifier": "abc123",
  "statementId": "abc123",
  "isReversed": true,
  "hasStatement": true,
  "note": "abc123",
  "consumption": Consumption,
  "isExport": true
}

Fields

NameDescription

make (String)

models ([ChargePointModelsType])

Example

{
  "make": "abc123",
  "models": [ChargePointModelsType]
}

Fields

NameDescription

model (String)

powerInKw ([String])

Example

{
  "model": "abc123",
  "powerInKw": ["abc123"]
}

Fields

NameDescription

amperage (Int)

Supply amperage. Used in markets where customers are more familiar with amps than power output.

isIntegrationLive (Boolean)

model (String)

powerInKw (Decimal)

variantId (Int)

Example

{
  "variantId": 1,
  "model": "abc123",
  "powerInKw": 1.0,
  "amperage": 1,
  "isIntegrationLive": true
}

Fields

NameDescription

make (String)

models ([ChargePointVariantModelType])

Example

{
  "make": "abc123",
  "models": [ChargePointVariantModelType]
}

Fields

NameDescription

code (String)

The charge reason code.

display (String)

The charge reason display text.

group (String)

The group the charge reason belongs to (if applicable).

isDeprecated (Boolean)

Whether the charge reason is deprecated.

isHidden (Boolean)

Whether the charge reason is hidden.

isTaxExempt (Boolean)

Whether the charge reason is sales tax exempt.

Example

{
  "code": "abc123",
  "display": "abc123",
  "isDeprecated": true,
  "isTaxExempt": true,
  "isHidden": true,
  "group": "abc123"
}

Fields

NameDescription

totalDonatedAmount (Int)

Example

{
  "totalDonatedAmount": 1
}

ClaimOctoplusReward

The possible errors that can be raised are:

  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.
  • KT-GB-9313: Not enough Octopoints.
  • KT-GB-9314: Reward could not be processed.
  • KT-GB-9315: Reward of this type unavailable.
  • KT-GB-9316: Account is not Octoplus-enrolled.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

possibleErrors ([PossibleErrorType])

rewardId (String)

The ID of the claimed reward.

Example

{
  "possibleErrors": [PossibleErrorType],
  "rewardId": "abc123"
}

ClaimShoptopusVoucher

The possible errors that can be raised are:

  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.
  • KT-GB-9313: Not enough Octopoints.
  • KT-GB-9314: Reward could not be processed.
  • KT-GB-9315: Reward of this type unavailable.
  • KT-GB-9316: Account is not Octoplus-enrolled.
  • KT-GB-9319: This feature is not currently available.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

code (String)

The Reward Voucher code.

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "code": "abc123"
}

Fields

NameDescription

climateControlEnabled (Boolean)

currentClimateControlTemperature (Decimal)

The current temperature of the room in Celsius

targetClimateControlTemperature (Decimal)

The target temperature of the room in Celsius

Example

{
  "climateControlEnabled": true,
  "targetClimateControlTemperature": 1.0,
  "currentClimateControlTemperature": 1.0
}

CloseActionType

Closes the screen.

Fields

NameDescription

accessibilityHidden (Boolean)

Whether the element is hidden from view.

accessibilityLabel (String)

Accessible description of the element.

id (ID)

Unique identifier of the object.

typeName (String)

The name of the action object's type.

typename (String)

The name of the object's type.

Example

{
  "typeName": "abc123",
  "id": "abc123",
  "typename": "abc123",
  "accessibilityHidden": true,
  "accessibilityLabel": "abc123"
}

CollectPayment

The possible errors that can be raised are:

  • KT-CT-3932: Invalid data.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

payment (AccountPaymentType)

Details about the collected payment. Note that we might not be able to collect the payment (e.g. if there is no usable payment instruction), in which case the status of the returned payment might be failed or cancelled.

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "payment": AccountPaymentType
}

Fields

NameDescription

pointsAllowanceRateLimit (PointsAllowanceRateLimitInformation)

Information about points-allowance rate limit for viewer.

Example

{
  "pointsAllowanceRateLimit": PointsAllowanceRateLimitInformation
}

ComponentListType

A list of components which comprise a screen.

This is a legacy type; GenericBackendScreen should be preferred. This is because API clients should not need to explicitly query for screen attributes like items - these fields are embedded in the screenData field.

Fields

NameDescription

accessibilityHidden (Boolean)

Whether the element is hidden from view.

accessibilityLabel (String)

Accessible description of the element.

id (ID)

Unique identifier of the object.

items ([ItemType]!)

The list of components.

Deprecated

The 'items' field is deprecated.

Access `items` via `screenData` instead.

- Marked as deprecated on 2024-07-02.
- Will be removed on 2024-08-01.

name (String!)

The name of the screen.

refreshFrequency (Int)

The refresh / polling frequency in milliseconds.

screenData (String)

Serialized JSON representation of the screen.

typename (String)

The name of the object's type.

Example

{
  "accessibilityHidden": true,
  "accessibilityLabel": "abc123",
  "id": "abc123",
  "typename": "abc123",
  "name": "abc123",
  "refreshFrequency": 1,
  "screenData": "abc123",
  "items": TextType
}

Fields

NameDescription

description (String)

The description for each kind of Constantine

displayName (String)

The name describing which kind of Constantine this Constantine is.

isCaught (Boolean)

If the user has caught this Constantine in the cache period.

prizeEntries (Int)

How many prize entries catching this Constantine is worth.

rarity (Rarity)

How rare this kind of Constantine is expressed as en enum associated to a percentage value.

slug (String)

The slug for this kind of Constantine.

spawnId (String)

Unique Identifier for the Constantine.

Example

{
  "displayName": "abc123",
  "slug": "abc123",
  "rarity": "Popular",
  "description": "abc123",
  "prizeEntries": 1,
  "spawnId": "abc123",
  "isCaught": true
}

Fields

NameDescription

cacheExpiry (DateTime)

The datetime of when the list of Constantines will expire.

constantines ([ConstantineSpawn])

A List of Constantines.

Example

{
  "constantines": [ConstantineSpawn],
  "cacheExpiry": "2020-01-01T00:00:00.000Z"
}

Fields

NameDescription

description (String)

The description for each kind of Constantine

displayName (String)

The name describing which kind of Constantine this Constantine is.

prizeEntries (Int)

How many prize entries catching this Constantine is worth.

rarity (Rarity)

How rare this kind of Constantine is expressed as en enum associated to a percentage value.

slug (String)

The slug for this kind of Constantine.

Example

{
  "displayName": "abc123",
  "slug": "abc123",
  "rarity": "Popular",
  "description": "abc123",
  "prizeEntries": 1
}

Fields

NameDescription

endDate (Date)

quantity (Decimal)

startDate (Date)

supplyCharge (Int)

unit (ConsumptionUnit)

usageCost (Int)

Example

{
  "startDate": "2020-01-01",
  "endDate": "2020-01-01",
  "quantity": 1.0,
  "unit": "kWh",
  "usageCost": 1,
  "supplyCharge": 1
}

Fields

NameDescription

sourceId (String)

Unique identifier of the source of the usage.

sourceName (String)

Human readable name of what the usage is for.

usage ([Int])

Monthly usage in pence. First month is January.

Example

{
  "sourceName": "abc123",
  "sourceId": "abc123",
  "usage": [1]
}

ConsumptionConnection

Pagination for energy consumption readings.

Fields

NameDescription

edgeCount (Int!)

Number of nodes in the edge.

edges ([ConsumptionEdge]!)

Contains the nodes in this connection.

pageInfo (PageInfo!)

Pagination data for this connection.

totalCount (Int!)

Total number of nodes.

Example

{
  "pageInfo": PageInfo,
  "edges": ConsumptionEdge,
  "totalCount": 1,
  "edgeCount": 1
}

Fields

NameDescription

day (Decimal!)

night (Decimal!)

Example

{
  "day": 1.0,
  "night": 1.0
}

ConsumptionEdge

A Relay edge containing a Consumption and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (ConsumptionType)

The item at the end of the edge

Example

{
  "node": ConsumptionType,
  "cursor": "abc123"
}

Fields

NameDescription

elecAnnualConsumptionDay (Int)

elecAnnualConsumptionNight (Int)

elecAnnualConsumptionStandard (Int)

gasAnnualConsumption (Int)

Example

{
  "elecAnnualConsumptionStandard": 1,
  "elecAnnualConsumptionDay": 1,
  "elecAnnualConsumptionNight": 1,
  "gasAnnualConsumption": 1
}


ConsumptionType

Energy consumption between two points in time.

Fields

NameDescription

endAt (DateTime)

startAt (DateTime)

value (Decimal)

Example

{
  "value": 1.0,
  "startAt": "2020-01-01T00:00:00.000Z",
  "endAt": "2020-01-01T00:00:00.000Z"
}

Fields

NameDescription

email (String!)

Email.

firstName (String!)

First name.

lastName (String!)

Last name.

phone (String!)

Phone.

Example

{
  "firstName": "abc123",
  "lastName": "abc123",
  "email": "abc123",
  "phone": "abc123"
}

ContributionAgreementType

A single Contribution Agreement.

Fields

NameDescription

activeFrom (DateTime)

The start datetime of the agreement.

activeTo (DateTime)

The end datetime of the agreement, if any.

amount (Int)

The amount contributed per interval. Note, this is in the smallest domination that the currecy support. e.g. Pence, Cents, Yen, etc.

contributionScheme (ContributionSchemeType)

The scheme to which the agreement contributes.

id (ID!)

interval (Interval)

The frequency of contributions.

periods (ContributionPeriodConnection)

The periods over which contributions have been made.

Example

{
  "id": "abc123",
  "contributionScheme": ContributionSchemeType,
  "interval": "MONTHLY",
  "activeFrom": "2020-01-01T00:00:00.000Z",
  "activeTo": "2020-01-01T00:00:00.000Z",
  "amount": 1,
  "periods": ContributionPeriodConnection
}

ContributionPeriodConnection

Pagination for contribution periods.

Fields

NameDescription

edgeCount (Int!)

Number of nodes in the edge.

edges ([ContributionPeriodEdge]!)

Contains the nodes in this connection.

pageInfo (PageInfo!)

Pagination data for this connection.

totalCount (Int!)

Total number of nodes.

Example

{
  "pageInfo": PageInfo,
  "edges": ContributionPeriodEdge,
  "totalCount": 1,
  "edgeCount": 1
}

ContributionPeriodEdge

A Relay edge containing a ContributionPeriod and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (ContributionPeriodType)

The item at the end of the edge

Example

{
  "node": ContributionPeriodType,
  "cursor": "abc123"
}

ContributionPeriodType

A single Contribution Period.

Fields

NameDescription

agreement (ContributionAgreementType!)

fulfilledAt (DateTime)

When the contribution was fulfilled

id (ID!)

periodFrom (DateTime)

The datetime the marks the beginning of the period.

periodTo (DateTime)

The datetime the marks the end of the period.

Example

{
  "id": "abc123",
  "agreement": ContributionAgreementType,
  "fulfilledAt": "2020-01-01T00:00:00.000Z",
  "periodFrom": "2020-01-01T00:00:00.000Z",
  "periodTo": "2020-01-01T00:00:00.000Z"
}

ContributionSchemeType

A single Contribution Scheme.

Fields

NameDescription

acceptingContributions (Boolean!)

Is this scheme currently accepting contributions?

code (String!)

displayName (String!)

id (ID!)

taxable (Boolean!)

Are contributions to this scheme taxable?

Example

{
  "id": "abc123",
  "code": "abc123",
  "displayName": "abc123",
  "taxable": true,
  "acceptingContributions": true
}

Fields

NameDescription

euid (String!)

The EUID of the controller.

Example

{
  "euid": "abc123"
}

Fields

NameDescription

controller (ControllerConfiguration)

Controller configuration.

heatPump (HeatPumpConfiguration)

Controller configuration.

zones ([ZoneInformation])

List of zones with their configuration and schedules.

Example

{
  "controller": ControllerConfiguration,
  "zones": [ZoneInformation],
  "heatPump": HeatPumpConfiguration
}

Fields

NameDescription

controller (Controller!)

The controller attached to the account.

heatPumpModel (String!)

The model of the heat pump.

location (Location!)

The location at which the device exists.

provisionedAt (DateTime)

When the controller was provisioned (at this location for this account).

Example

{
  "controller": Controller,
  "heatPumpModel": "abc123",
  "location": Location,
  "provisionedAt": "2020-01-01T00:00:00.000Z"
}

Fields

NameDescription

accessPointPassword (String)

8 character password used to access the access point mode webpage.

connected (Boolean)

Whether or not the controller is currently connected.

firmwareConfiguration (FirmwareConfiguration)

Controller firmware options for ESP and EFR chips.

heatPumpTimezone (String)

Timezone the controller is in.

lastReset (DateTime)

When the controller was last reset.

state ([State])

Current state of the controller.

Example

{
  "firmwareConfiguration": FirmwareConfiguration,
  "state": "NORMAL_MODE",
  "accessPointPassword": "abc123",
  "heatPumpTimezone": "abc123",
  "connected": true,
  "lastReset": "2020-01-01T00:00:00.000Z"
}

Fields

NameDescription

sensors ([SensorStatus])

The status and telemetry information of a sensor.

zones ([ZoneStatus])

The status and telemetry information of a zone.

Example

{
  "sensors": [SensorStatus],
  "zones": [ZoneStatus]
}

Fields

NameDescription

latitude (Float)

longitude (Float)

Example

{
  "latitude": 1.0,
  "longitude": 1.0
}

Fields

NameDescription

costOfChargeId (String)

isSmartCharge (Boolean)

krakenflexDeviceId (String)

reportDate (Date)

totalConsumption (Float)

Consumption in kWh.

totalCostExclTax (Float)

Cost in pence (excl. tax).

totalCostInclTax (Float)

Cost in pence (incl. tax).

Example

{
  "costOfChargeId": "abc123",
  "krakenflexDeviceId": "abc123",
  "reportDate": "2020-01-01",
  "isSmartCharge": true,
  "totalConsumption": 1.0,
  "totalCostExclTax": 1.0,
  "totalCostInclTax": 1.0
}

CostOfUsageConnectionTypeConnection

Dovetailing usage and cost for an account / meter combination over a given time period.

Fields

NameDescription

cost (Int)

Overall cost of nodes in the edge.

edges ([CostOfUsageConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo (PageInfo!)

Pagination data for this connection.

usageKwh (Decimal!)

Overall usage of nodes in the edge.

Example

{
  "pageInfo": PageInfo,
  "edges": CostOfUsageConnectionTypeEdge,
  "cost": 1,
  "usageKwh": 1.0
}

CostOfUsageConnectionTypeEdge

A Relay edge containing a CostOfUsageConnectionType and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (IntervalCostOfUsageType)

The item at the end of the edge

Example

{
  "node": IntervalCostOfUsageType,
  "cursor": "abc123"
}

Fields

NameDescription

costEnabled (Boolean)

Whether cost of usage can be displayed for a user.

details (CostOfUsageConnectionTypeConnection)

Cost of usage for given period.

direction (String)

Energy product direction, e.g. IMPORT or EXPORT.

Example

{
  "costEnabled": true,
  "direction": "abc123",
  "details": CostOfUsageConnectionTypeConnection
}

Fields

NameDescription

clientMutationId (String)

postRequest (UploadPostRequest)

Example

{
  "postRequest": UploadPostRequest,
  "clientMutationId": "abc123"
}

CreateAccountPaymentSchedule

The possible errors that can be raised are:

  • KT-CT-1111: Unauthorized.
  • KT-CT-3815: No active payment schedule found for this account.
  • KT-CT-3822: Unauthorized.
  • KT-CT-3923: Unauthorized.
  • KT-CT-3941: Invalid data.
  • KT-CT-3942: An unexpected error occurred.
  • KT-CT-3947: An unexpected error occurred.
  • KT-CT-3960: Invalid value for payment day.
  • KT-CT-3961: Cannot update plan-associated payment schedule.
  • KT-CT-3962: No new value provided to update payment schedule.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

possibleErrors ([PossibleErrorType])

schedule (PaymentScheduleType!)

New payment schedule.

Example

{
  "possibleErrors": [PossibleErrorType],
  "schedule": PaymentScheduleType
}

CreateAccountReference

Create an account reference.

The possible errors that can be raised are:

  • KT-CT-4123: Unauthorized.
  • KT-CT-8310: Invalid data.
  • KT-CT-8311: Invalid data.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

accountReference (AccountReferenceType)

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "accountReference": AccountReferenceType
}

CreateAcquisitionQuoteRequestForProducts

The possible errors that can be raised are:

  • KT-GB-4625: Unable to create quote request.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

possibleErrors ([PossibleErrorType])

quoteRequest (QuoteRequestBase)

Returns a quote request for the requested product codes. Does not persist the quote.

Example

{
  "possibleErrors": [PossibleErrorType],
  "quoteRequest": QuoteRequestBase
}

CreateAutoTopupConfig

Create a new auto topup config for SPAYG meter.

Fields

NameDescription

autoTopupConfig (AutoTopupConfigType!)

The created auto top-up config.

Example

{
  "autoTopupConfig": AutoTopupConfigType
}

CreateContributionAgreement

The possible errors that can be raised are:

  • KT-CT-4123: Unauthorized.
  • KT-CT-9601: Invalid data.
  • KT-CT-9602: Unable to create contribution agreement.
  • KT-CT-9605: Contribution amount cannot be 0 or negative.
  • KT-CT-9606: Scheme is not accepting contributions at this time.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

contributionAgreement (ContributionAgreementType)

The created contribution agreement.

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "contributionAgreement": ContributionAgreementType
}

CreateDirectDebitInstruction

The possible errors that can be raised are:

  • KT-CT-3940: Invalid data.
  • KT-CT-3923: Unauthorized.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

directDebitInstruction (DirectDebitInstructionType)

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "directDebitInstruction": DirectDebitInstructionType
}

CreateGoodsPurchase

The possible errors that can be raised are:

  • KT-CT-8206: Invalid data.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

goodsPurchase (GoodsPurchase)

Goods purchase created.

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "goodsPurchase": GoodsPurchase
}

CreateGoodsQuote

The possible errors that can be raised are:

  • KT-CT-8202: Invalid data.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

goodsQuote (GoodsQuote)

Goods quote created for the customer.

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "goodsQuote": GoodsQuote
}

CreateGoodsQuoteWithoutAccount

The possible errors that can be raised are:

  • KT-CT-8202: Invalid data.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

goodsQuote (GoodsQuote)

Goods quote created for the customer.

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "goodsQuote": GoodsQuote
}

CreateHeatPumpGoodsQuote

Create a Goods quote for heat pumps.

This augments the standard goods quote with additional heat pump information.

Fields

NameDescription

quote (HeatPumpGoodsQuote)

Generated heat pump quote.

Example

{
  "quote": HeatPumpGoodsQuote
}

CreateInkChatbotMessagePayload

Register an Ink message from OEGB chatbot. This mutation has been created specifically designed for the MVP It can be removed once a better implementation is found

Fields

NameDescription

clientMutationId (String)

message (InkMessage!)

The Ink message that was created.

Example

{
  "message": InkEmail,
  "clientMutationId": "abc123"
}

Fields

NameDescription

id (String)

Deprecated

The 'id' field is deprecated.

The `ID` field is depreciated.

- Marked as deprecated on 2022-10-03.
- Will be removed on 2024-01-01.

readingErrors ([SerializerFieldErrorsType])

Example

{
  "readingErrors": [SerializerFieldErrorsType],
  "id": "abc123"
}

The possible errors that can be raised are:

  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.
  • KT-GB-9319: This feature is not currently available.
  • KT-GB-9323: Could not create contact link.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

possibleErrors ([PossibleErrorType])

url (String)

The URL of the customer contact form link.

Example

{
  "possibleErrors": [PossibleErrorType],
  "url": "abc123"
}

CreatePaymentSchedule

Mutation for creating an Payment Schedule instance using the authenticated user.

The possible errors that can be raised are:

  • KT-GB-3917: No statement in last 60 days.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

paymentSchedule (PaymentScheduleType)

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "paymentSchedule": PaymentScheduleType
}

CreateProvisioningClaim

Create an AWS provisioning claim certificate.

Fields

NameDescription

tempProvisioningClaimCert (GenericScalar)

The temporary provisioning certification.

Example

{
  "tempProvisioningClaimCert": "abc123" | 1 | 1.0 | true | ["abc123"] | AccountType
}

Fields

NameDescription

errors ([SerializerFieldErrorsType])

quote (QuoteType)

Example

{
  "errors": [SerializerFieldErrorsType],
  "quote": QuoteType
}

CreateQuoteRequestForProducts

The possible errors that can be raised are:

  • KT-GB-4624: Invalid data.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

possibleErrors ([PossibleErrorType])

quoteRequest (QuoteRequestBase)

Returns a quote request for the requested product codes. Does not persist the quote.

Example

{
  "possibleErrors": [PossibleErrorType],
  "quoteRequest": QuoteRequestBase
}

CreateReferral

Use a referral code to create a referral and trigger a referral reward.

The possible errors that can be raised are:

  • KT-CT-6723: Unauthorized.
  • KT-CT-6710: Unable to create referral.
  • KT-CT-6711: Accounts may not self-refer.
  • KT-CT-6713: Referring and referred account brands do not match.
  • KT-CT-6712: Invalid reference.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

possibleErrors ([PossibleErrorType])

referredAccountRewardAmount (Int)

The reward amount to be issued to the referred account, in smallest currency subunits.

Example

{
  "possibleErrors": [PossibleErrorType],
  "referredAccountRewardAmount": 1
}

CreateRefundRequest

Mutation for creating an refund request for an account.

The possible errors that can be raised are:

  • KT-GB-4127: Unable to send refund request confirmation email.
  • KT-GB-4121: Unable to process refund request.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

possibleErrors ([PossibleErrorType])

refundRequest (RefundRequestType)

Example

{
  "possibleErrors": [PossibleErrorType],
  "refundRequest": RefundRequestType
}

Fields

NameDescription

quoteRequest (QuoteRequest)

Example

{
  "quoteRequest": QuoteRequest
}

CreateSnap

The possible errors that can be raised are:

  • KT-GB-9316: Account is not Octoplus-enrolled.
  • KT-GB-9325: Invalid constantine slug.
  • KT-GB-9326: Invalid spawn ID.
  • KT-GB-9319: This feature is not currently available.
  • KT-GB-9327: Snap failed to create.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

possibleErrors ([PossibleErrorType])

success (Boolean)

Returns true if snap was successfully created.

Example

{
  "possibleErrors": [PossibleErrorType],
  "success": true
}

Credit

A credit to the customer from the energy retailer.

Fields

NameDescription

accountNumber (String)

Unique identifier of the account the transaction belongs to.

amount (Int)

Gross amount including tax (when payable). Refer to the amounts field for a breakdown of this information.

Deprecated

The 'amount' field is deprecated.

Use `amounts` instead for a breakdown of the relevant net, tax, and gross amounts.

- Marked as deprecated on 2023-12-06.
- Will be removed on 2024-06-01.

amounts (TransactionAmountType)

The net, tax and gross amounts for the transaction. Note: for payments and repayments, only the net amount is returned.

balanceCarriedForward (Int)

The customer's resulting balance after this transaction has been applied, in the smallest unit of currency.

billingDocumentIdentifier (ID)

The unique identifier for the most recent billing document linked with the transaction.Note: a transaction may be linked with multiple documents, but this field will only return the identifier for the most recent billing document.

createdAt (DateTime)

The date time when the transaction is created.

hasStatement (Boolean)

Returns True if the transaction is linked with a statement.

id (ID)

isAccountCharge (Boolean)

Deprecated.

Deprecated

The 'isAccountCharge' field is deprecated.

This information is provided by the __typename introspection query.

- Marked as deprecated on 2020-06-19.
- Will be removed on 2022-11-15.

isAccountPayment (Boolean)

Deprecated.

Deprecated

The 'isAccountPayment' field is deprecated.

This information is provided by the __typename introspection query.

- Marked as deprecated on 2020-06-19.
- Will be removed on 2022-11-15.

isCredit (Boolean)

Deprecated.

Deprecated

The 'isCredit' field is deprecated.

This information is provided by the __typename introspection query.

- Marked as deprecated on 2020-06-19.
- Will be removed on 2022-11-15.

isHeld (Boolean)

Whether the statement this transaction is on has been held. A held statement is not sent to a customer automatically, but is instead marked for manual attention by operations staff. Returns False if a statement is not linked with the transaction.

isIssued (Boolean)

Whether this transaction has been issued on any billing document.Note: Look for the most recently issued transaction instead of looking through all transactions as some accounts may have initial transactions that were not issued.This will return False if the transaction is not associated with any billing documents.

isReversed (Boolean!)

note (String)

Returns the note field value for the transaction, which contains additional info.

postedDate (Date)

statementId (ID)

Returns None if a statement is not linked with the transaction.

Deprecated

The 'statementId' field is deprecated.

Use `billingDocumentIdentifier` instead.

- Marked as deprecated on 2023-11-30.
- Will be removed on 2024-06-01.

title (String)

Example

{
  "id": "abc123",
  "postedDate": "2020-01-01",
  "createdAt": "2020-01-01T00:00:00.000Z",
  "accountNumber": "abc123",
  "amount": 1,
  "amounts": TransactionAmountType,
  "balanceCarriedForward": 1,
  "isCredit": true,
  "isAccountCharge": true,
  "isAccountPayment": true,
  "isHeld": true,
  "isIssued": true,
  "title": "abc123",
  "billingDocumentIdentifier": "abc123",
  "statementId": "abc123",
  "isReversed": true,
  "hasStatement": true,
  "note": "abc123"
}

Fields

NameDescription

code (String)

The credit reason code.

display (String)

The credit reason display text.

group (String)

The group the credit reason belongs to (if applicable).

isDeprecated (Boolean)

Whether the credit reason is deprecated.

isHidden (Boolean)

Whether the credit reason is hidden.

isTaxExempt (Boolean)

Whether the credit reason is sales tax exempt.

Example

{
  "code": "abc123",
  "display": "abc123",
  "isDeprecated": true,
  "isTaxExempt": true,
  "isHidden": true,
  "group": "abc123"
}

Fields

NameDescription

id (ID!)

rawScore (Int)

The value attached to the source

submittedAt (DateTime)

The datetime the feedback was submitted

Example

{
  "id": "abc123",
  "rawScore": 1,
  "submittedAt": "2020-01-01T00:00:00.000Z"
}

Dashboard

A list of components which comprise a dashboard screen.

Fields

NameDescription

dashboardItems ([SectionType]!)

The list of sections for a dashboard.

id (ID)

Unique identifier of the object.

serialisedDashboardItems (String!)

The serialised dashboard items.

typename (String)

The name of the object's type.

Example

{
  "id": "abc123",
  "typename": "abc123",
  "dashboardItems": SectionType,
  "serialisedDashboardItems": "abc123"
}

Fields

NameDescription

dayRate (Float)

dayRateEpgApplied (Boolean)

Is EPG applied to the unit rate.

description (String)

displayName (String)

fullName (String)

id (ID)

nightRate (Float)

nightRateEpgApplied (Boolean)

Is EPG applied to the unit rate.

preVatDayRate (Float)

preVatNightRate (Float)

preVatStandingCharge (Float)

productCode (String)

standingCharge (Float)

tariffCode (String)

Describes a particular tariff by combining the product code, number of rates, available from date and GSP code.

Example

{
  "id": "abc123",
  "displayName": "abc123",
  "fullName": "abc123",
  "description": "abc123",
  "productCode": "abc123",
  "standingCharge": 1.0,
  "preVatStandingCharge": 1.0,
  "tariffCode": "abc123",
  "dayRate": 1.0,
  "dayRateEpgApplied": true,
  "nightRate": 1.0,
  "nightRateEpgApplied": true,
  "preVatDayRate": 1.0,
  "preVatNightRate": 1.0
}

DeauthenticateDevice

De-authenticate a registered device.

The possible errors that can be raised are:

  • KT-CT-4301: Unable to find device for given account.
  • KT-CT-4350: Unable to de-authenticate device.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

krakenflexDevice (DeviceDetailsType)

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "krakenflexDevice": DeviceDetailsType
}

DeeplinkActionType

An action which navigates to the URL of another backend screen.

Fields

NameDescription

id (ID)

Unique identifier of the object.

typeName (String)

The name of the action object's type.

typename (String)

The name of the object's type.

url (String!)

The URL to navigate to.

Example

{
  "typeName": "abc123",
  "id": "abc123",
  "typename": "abc123",
  "url": "abc123"
}

DeleteBoostCharge

The possible errors that can be raised are:

  • KT-CT-4301: Unable to find device for given account.
  • KT-CT-4354: Unable to cancel boost charge.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

krakenflexDevice (KrakenFlexDeviceType)

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "krakenflexDevice": KrakenFlexDeviceType
}

DeleteDeviceConnectionDetails

Delete the connection details for a device registered for a given account number.

The possible errors that can be raised are:

  • KT-CT-4301: Unable to find device for given account.
  • KT-CT-4352: Unable to delete connection details.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

krakenflexDevice (KrakenFlexDeviceType)

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "krakenflexDevice": KrakenFlexDeviceType
}

DeletePushNotificationBinding

The possible errors that can be raised are:

  • KT-CT-5411: Invalid token or no push notification binding found for the given account user.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

possibleErrors ([PossibleErrorType])

status (DeletePushNotificationBindingOutput)

Example

{
  "possibleErrors": [PossibleErrorType],
  "status": "SUCCESSFUL"
}

DeprovisionHeatingController

De-provision a heating controller device.

The possible errors that can be raised are:

  • KT-CT-4307: Error deprovisioning an Octopus heat pump.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

message (String)

The message to display to the user upon successful device de-provisioning.

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "message": "abc123"
}

Fields

NameDescription

deviceType (KrakenFlexDeviceTypes)

The type of device.

krakenflexDeviceId (String)

provider (ProviderChoices)

The third party that provides control over this device.

Example

{
  "krakenflexDeviceId": "abc123",
  "provider": "DAIKIN",
  "deviceType": "BATTERIES"
}

DeviceRegistration

Register a device for smart controlling.

Where device refers to batteries, electric vehicles, heat pumps or thermostats.

The possible errors that can be raised are:

  • KT-CT-4324: Device already registered error.
  • KT-CT-4321: Serializer validation error.
  • KT-CT-4312: Unable to register device.
  • KT-CT-4363: No capable devices found.
  • KT-CT-4364: Multiple devices found.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

possibleErrors ([PossibleErrorType])

registeredDeviceIds ([String])

Device ID(s) of the registered device(s).

Example

{
  "possibleErrors": [PossibleErrorType],
  "registeredDeviceIds": ["abc123"]
}

Fields

NameDescription

timestamp (DateTime!)

Timestamp of the reading.

value (Float!)

Value of the reading.

Example

{
  "value": 1.0,
  "timestamp": "2020-01-01T00:00:00.000Z"
}

Fields

NameDescription

activePowerInKw (DeviceStatusReadingType)

Device charging power in kilowatts (kW) - negative for import, positive for export.

energyInKwh (DeviceStatusReadingType)

Energy stored in the device in kilowatt-hours (kWh).

socPercentage (DeviceStatusReadingType)

State of charge of the battery in % (may not be a whole number).

Example

{
  "activePowerInKw": DeviceStatusReadingType,
  "energyInKwh": DeviceStatusReadingType,
  "socPercentage": DeviceStatusReadingType
}

Fields

NameDescription

maxExportInKw (Float)

The maximum export power of the device in kilowatts.

maxImportInKw (Float)

The maximum import power of the device in kilowatts.

pluggedIn (Boolean)

Whether device is connected.

readings (DeviceStatusReadingsType)

Device status telemetry readings.

status (KrakenFlexDeviceStatusChoices)

The lifecycle status of the device.

Deprecated

The 'status' field is deprecated.

Please use the 'devices' query instead.

- Marked as deprecated on 2023-12-06.
- Will be removed on 2024-06-06.

suspended (Boolean)

Whether control of the device has been temporarily suspended.

Example

{
  "status": "ONBOARDING",
  "suspended": true,
  "maxImportInKw": 1.0,
  "maxExportInKw": 1.0,
  "pluggedIn": true,
  "readings": DeviceStatusReadingsType
}

Fields

NameDescription

edgeCount (Int!)

Number of nodes in the edge.

edges ([DirectDebitInstructionConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo (PageInfo!)

Pagination data for this connection.

totalCount (Int!)

Total number of nodes.

Example

{
  "pageInfo": PageInfo,
  "edges": DirectDebitInstructionConnectionTypeEdge,
  "totalCount": 1,
  "edgeCount": 1
}

DirectDebitInstructionConnectionTypeEdge

A Relay edge containing a DirectDebitInstructionConnectionType and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (DirectDebitInstructionType)

The item at the end of the edge

Example

{
  "node": DirectDebitInstructionType,
  "cursor": "abc123"
}

DirectDebitInstructionType

Direct Debit Instructions

Fields

NameDescription

accountHolder (String!)

cardExpiryMonth (Int)

cardExpiryYear (Int)

cardPaymentNetwork (String)

iban (String!)

id (ID!)

instructionType (String!)

lastFourDigitsOfAccountNumber (String)

The last four digits of the account number.

Deprecated

The 'lastFourDigitsOfAccountNumber' field is deprecated.

Use 'maskedAccountIdentifier' for a masked reference to the instruction.

- Marked as deprecated on 2021-12-23.
- Will be removed on 2024-01-01.

maskedAccountIdentifier (String)

A masked reference to a recurring payment method.

maskedIban (String)

A masked version of the IBAN.

sortCode (String!)

status (String!)

Example

{
  "id": "abc123",
  "status": "abc123",
  "sortCode": "abc123",
  "iban": "abc123",
  "accountHolder": "abc123",
  "instructionType": "abc123",
  "cardPaymentNetwork": "abc123",
  "cardExpiryMonth": 1,
  "cardExpiryYear": 1,
  "lastFourDigitsOfAccountNumber": "abc123",
  "maskedAccountIdentifier": "abc123",
  "maskedIban": "abc123"
}

Fields

NameDescription

errors ([ErrorType])

paymentSchedule (PaymentScheduleType)

Example

{
  "paymentSchedule": PaymentScheduleType,
  "errors": [ErrorType]
}

DisableAutoTopup

Disable auto topup for SPAYG meter.

Fields

NameDescription

success (Boolean!)

Boolean indicating if the auto top-up was successfully disabled.

Example

{
  "success": true
}

DisableToken

Mutation to disable the token used to call this mutation. Requires a valid token for authentication to avoid a potential denial-of-service issue. The token used for authentication will be the token disabled.

Fields

NameDescription

message (String)

Example

{
  "message": "abc123"
}

Fields

NameDescription

discount (Decimal!)

The discount as a decimal between 0 and 1.

metaData (FanClubMetadataOutput)

This type will return additional market specific information. For example, some markets support wind direction, fan speed, wind speed, etc. while others do not.

startAt (DateTime!)

Timestamp for the discount.

Example

{
  "startAt": "2020-01-01T00:00:00.000Z",
  "discount": 1.0,
  "metaData": FanClubMetadataOutput
}

Fields

NameDescription

baseTime (DateTime!)

The start time that the ensemble forecast simulation.

data ([ForecastData]!)

Discount forecast data-points.

Example

{
  "baseTime": "2020-01-01T00:00:00.000Z",
  "data": ForecastData
}

Fields

NameDescription

earliestPossibleDirectDebitPaymentDate (Date)

Example

{
  "earliestPossibleDirectDebitPaymentDate": "2020-01-01"
}

Fields

NameDescription

availableFrom (Int)

This field is replacing year.

availableTo (Int)

batterySize (Decimal)

isIntegrationLive (Boolean)

model (String)

supportedProviders ([String])

vehicleId (Int)

year (Int)

Example

{
  "vehicleId": 1,
  "model": "abc123",
  "year": 1,
  "availableFrom": 1,
  "availableTo": 1,
  "batterySize": 1.0,
  "supportedProviders": ["abc123"],
  "isIntegrationLive": true
}

Fields

NameDescription

make (String)

models ([ElectricVehicleModelType])

Example

{
  "make": "abc123",
  "models": [ElectricVehicleModelType]
}

ElectricityAgentContractType

An organization who manages a given meterpoint.

Fields

NameDescription

agentId (String)

contractStatus (AgentContractStatusType)

contractType (ElectricityAgentContractContractType!)

effectiveFrom (Date!)

Example

{
  "contractType": "MOP",
  "effectiveFrom": "2020-01-01",
  "agentId": "abc123",
  "contractStatus": "ACCEPTED"
}

Fields

NameDescription

account (AccountType!)

agreedFrom (DateTime)

agreedTo (DateTime)

id (Int)

isRevoked (Boolean)

lineItems (LineItemConnection)

A collection of charges and associated consumption data.

meterPoint (ElectricityMeterPointType!)

tariff (ElectricityTariffType)

unitRateUplifts ([ElectricityContractUnitRateUplift])

List of contracted unit rate uplifts applicable during this agreement's duration. This is only applicable to business accounts where we may pay commission to a third-party intermediary.

validFrom (DateTime)

validTo (DateTime)

Example

{
  "id": 1,
  "validFrom": "2020-01-01T00:00:00.000Z",
  "validTo": "2020-01-01T00:00:00.000Z",
  "agreedFrom": "2020-01-01T00:00:00.000Z",
  "agreedTo": "2020-01-01T00:00:00.000Z",
  "account": AccountType,
  "meterPoint": ElectricityMeterPointType,
  "tariff": StandardTariff,
  "isRevoked": true,
  "lineItems": LineItemConnection,
  "unitRateUplifts": [ElectricityContractUnitRateUplift]
}

Fields

NameDescription

day (Int)

isEstimate (Boolean)

night (Int)

Example

{
  "day": 1,
  "night": 1,
  "isEstimate": true
}

Fields

NameDescription

consumption (Int)

isEstimate (Boolean)

Example

{
  "consumption": 1,
  "isEstimate": true
}

Fields

NameDescription

day (Int)

isEstimate (Boolean)

night (Int)

offPeak (Int)

Example

{
  "day": 1,
  "night": 1,
  "offPeak": 1,
  "isEstimate": true
}

Fields

NameDescription

unitRateUplift (Decimal!)

The amount to add to the unit rate when billing, in pence/kWh.

validFrom (DateTime!)

When this contract is valid from.

validTo (DateTime!)

When this contract is valid until.

Example

{
  "validFrom": "2020-01-01T00:00:00.000Z",
  "validTo": "2020-01-01T00:00:00.000Z",
  "unitRateUplift": 1.0
}

Fields

NameDescription

deviceId (String)

marketSupplyPointId (String)

readingDirection (ReadingDirectionType)

readingFrequencyType (ReadingFrequencyType)

readingQuality (ReadingQualityType)

registerId (String)

Example

{
  "readingDirection": "CONSUMPTION",
  "registerId": "abc123",
  "readingQuality": "ACTUAL",
  "readingFrequencyType": "RAW_INTERVAL",
  "marketSupplyPointId": "abc123",
  "deviceId": "abc123"
}

Fields

NameDescription

addressHasMoreThanOneElectricityMeterPoint (Boolean!)

addressLine1 (String)

Line 1 of the address returned from the search

addressLine2 (String)

Line 2 of the address returned from the search

electricityMeterPoints ([String])

List of meterpoints associated with the address. Only returned if addresshasmorethanoneelectricitymeter_point is True.

postcode (String)

The postcode of the address returned from the search

Example

{
  "addressHasMoreThanOneElectricityMeterPoint": true,
  "electricityMeterPoints": ["abc123"],
  "addressLine1": "abc123",
  "addressLine2": "abc123",
  "postcode": "abc123"
}

ElectricityMeterPointType

An electricity meterpoint is a collection of meters. Meters can be changed over time, so it is convenient to keep an invariant reference. Sometimes there are multiple active meters on a meterpoint at a time (eg ECO10), but expect that to be an edge case.

Fields

NameDescription

agentContracts ([ElectricityAgentContractType])

A list of agents responsible for management of the meterpoint.

agreements ([ElectricityAgreementType])

A list of electricity agreements belonging to an account that is linked to the viewer. Filters out expired agreements by default.

currentSupplierMpid (String)

The current MPID for this meter point.

dccEffectiveFrom (Date)

dccServiceFlag (String!)

energisationStatus (String!)

enrolment (EnrolmentType)

Details of an ongoing enrolment process.

gspGroupId (String)

The distribution network the grid supply point falls under

hasOpenClosingReadDispute (Boolean!)

hasOpenOpeningReadDispute (Boolean!)

id (ID!)

ihdEffectiveFrom (Date)

ihdStatus (String!)

juniferMeterPointId (Int)

The ID of the meter point in Junifer.

Deprecated

The 'juniferMeterPointId' field is deprecated.

It is no longer populated.

- Marked as deprecated on 2023-03-13.
- Will be removed on 2023-09-13.

lastValidatedReadingDate (Date)

llf (String)

Line loss factor class

measurementClass (String!)

meters ([ElectricityMeterType])

mpan (String!)

mtc (Int)

Meter timeswitch code

newSupplierId (String)

oldSupplierId (String)

profileClass (Int)

The profile class of the electricity meter point.

requiresEnrolment (Boolean!)

requiresWithdrawal (Boolean!)

smartStartDate (Date)

smartTariffOnboarding (SmartTariffOnboardingType)

smsOperator (String!)

Smart Metering System Operator

smsOperatorEffectiveFrom (Date)

ssc (String!)

Standard settlement configuration

status (String)

statusUpdatedAt (DateTime)

supplyEndDate (Date)

targetSsd (Date)

unbilledReadings ([ElectricityMeterReadingType])

A list of unbilled electricity readings for the meterpoint.

Example

{
  "id": "abc123",
  "supplyEndDate": "2020-01-01",
  "mpan": "abc123",
  "ssc": "abc123",
  "energisationStatus": "abc123",
  "dccServiceFlag": "abc123",
  "statusUpdatedAt": "2020-01-01T00:00:00.000Z",
  "oldSupplierId": "abc123",
  "newSupplierId": "abc123",
  "smartStartDate": "2020-01-01",
  "requiresEnrolment": true,
  "targetSsd": "2020-01-01",
  "requiresWithdrawal": true,
  "hasOpenOpeningReadDispute": true,
  "hasOpenClosingReadDispute": true,
  "profileClass": 1,
  "llf": "abc123",
  "mtc": 1,
  "measurementClass": "abc123",
  "lastValidatedReadingDate": "2020-01-01",
  "smsOperator": "abc123",
  "smsOperatorEffectiveFrom": "2020-01-01",
  "ihdStatus": "abc123",
  "ihdEffectiveFrom": "2020-01-01",
  "dccEffectiveFrom": "2020-01-01",
  "meters": [ElectricityMeterType],
  "status": "abc123",
  "enrolment": EnrolmentType,
  "gspGroupId": "abc123",
  "agentContracts": [ElectricityAgentContractType],
  "juniferMeterPointId": 1,
  "agreements": [ElectricityAgreementType],
  "smartTariffOnboarding": SmartTariffOnboardingType,
  "unbilledReadings": [ElectricityMeterReadingType],
  "currentSupplierMpid": "abc123"
}

ElectricityMeterReadingConnectionTypeConnection

This field is a connection type. Connections are used to implement cursor based pagination.

Fields

NameDescription

edgeCount (Int!)

Number of nodes in the edge.

edges ([ElectricityMeterReadingConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo (PageInfo!)

Pagination data for this connection.

totalCount (Int!)

Total number of nodes.

Example

{
  "pageInfo": PageInfo,
  "edges": ElectricityMeterReadingConnectionTypeEdge,
  "totalCount": 1,
  "edgeCount": 1
}

ElectricityMeterReadingConnectionTypeEdge

A Relay edge containing a ElectricityMeterReadingConnectionType and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (ElectricityMeterReadingType)

The item at the end of the edge

Example

{
  "node": ElectricityMeterReadingType,
  "cursor": "abc123"
}

ElectricityMeterReadingType

A electricity meter reading. A reading can in fact contain multiple values for each register (for example for ECO7). They are collected under a common read_at datetime and have a common fuel type.

Fields

NameDescription

id (ID!)

readAt (DateTime)

readingSource (String)

registers ([RegisterReading])

source (String)

Example

{
  "id": "abc123",
  "readAt": "2020-01-01T00:00:00.000Z",
  "readingSource": "abc123",
  "registers": [RegisterReading],
  "source": "abc123"
}

ElectricityMeterRegisterType

Electricity registers measure consumption.

Fields

NameDescription

decimalPlaces (Int)

digits (Int)

eac (Decimal)

expectedReadingRanges ([[Int]])

id (ID!)

identifier (String)

multiplier (Float)

name (String)

timePatternRegime (String)

unitRateType (String)

Example

{
  "id": "abc123",
  "identifier": "abc123",
  "digits": 1,
  "decimalPlaces": 1,
  "name": "abc123",
  "expectedReadingRanges": [1],
  "timePatternRegime": "abc123",
  "unitRateType": "abc123",
  "eac": 1.0,
  "multiplier": 1.0
}

ElectricityMeterType

An electricity meter is a collection of registers which store readings. Eco7 meters are an example of a meter with multiple registers (for day and night).

Fields

NameDescription

activeFrom (Date!)

activeTo (Date)

certificationDate (Date)

certifiedUntil (Date)

consumption (ConsumptionConnection)

Energy consumption recorded by the meter.

consumptionUnits (String)

The units of consumption for a smart meter.

createdAt (DateTime!)

currentRating (Int)

exportMeters (ElectricityMeterTypeConnection!)

fuelType (String)

The type of fuel this meter uses.

hasAndAllowsHhReadings (Boolean)

Returns if the meter has and allows half hourly readings

id (ID!)

importMeter (ElectricityMeterType)

installationDate (Date)

isDigital (Boolean)

isReadyForTopup (Boolean)

Returns if the meter is ready for top up.

isTradPrepay (Boolean)

Returns if the meter is a traditional prepay meter.

lastInspectionDate (Date)

location (String)

makeAndType (String)

meterPoint (ElectricityMeterPointType!)

meterType (ElectricityMeterMeterType)

nodeId (ID!)

This lets us get around the fact that we already use the field id as a primary key. We will migrate the id field over to be this id eventually.

prepayLedgers (PrepayLedgersType)

readings (ElectricityMeterReadingConnectionTypeConnection)

registers ([ElectricityMeterRegisterType])

requiresAccess (Boolean)

requiresCotFinalReading (Boolean)

Whether this meter requires a final change of tenancy (COT) reading.

retrievalMethod (String)

serialNumber (String!)

smartDevices ([SmartMeterDeviceType])

smartExportElectricityMeter (SmartMeterDeviceType)

smartImportElectricityMeter (SmartMeterDeviceType)

updatedAt (DateTime)

Example

{
  "id": "abc123",
  "serialNumber": "abc123",
  "requiresAccess": true,
  "isDigital": true,
  "installationDate": "2020-01-01",
  "lastInspectionDate": "2020-01-01",
  "createdAt": "2020-01-01T00:00:00.000Z",
  "updatedAt": "2020-01-01T00:00:00.000Z",
  "activeFrom": "2020-01-01",
  "activeTo": "2020-01-01",
  "meterPoint": ElectricityMeterPointType,
  "location": "abc123",
  "currentRating": 1,
  "makeAndType": "abc123",
  "meterType": "CHECK",
  "certificationDate": "2020-01-01",
  "certifiedUntil": "2020-01-01",
  "retrievalMethod": "abc123",
  "importMeter": ElectricityMeterType,
  "exportMeters": ElectricityMeterTypeConnection,
  "prepayLedgers": PrepayLedgersType,
  "smartImportElectricityMeter": SmartMeterDeviceType,
  "smartExportElectricityMeter": SmartMeterDeviceType,
  "consumptionUnits": "abc123",
  "requiresCotFinalReading": true,
  "fuelType": "abc123",
  "consumption": ConsumptionConnection,
  "nodeId": "abc123",
  "readings": ElectricityMeterReadingConnectionTypeConnection,
  "registers": [ElectricityMeterRegisterType],
  "hasAndAllowsHhReadings": true,
  "smartDevices": [SmartMeterDeviceType],
  "isTradPrepay": true,
  "isReadyForTopup": true
}

Fields

NameDescription

edges ([ElectricityMeterTypeEdge]!)

Contains the nodes in this connection.

pageInfo (PageInfo!)

Pagination data for this connection.

Example

{
  "pageInfo": PageInfo,
  "edges": ElectricityMeterTypeEdge
}

ElectricityMeterTypeEdge

A Relay edge containing a ElectricityMeterType and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (ElectricityMeterType)

The item at the end of the edge

Example

{
  "node": ElectricityMeterType,
  "cursor": "abc123"
}

Fields

NameDescription

annualAmount (Int!)

Estimated cost in pence of the product over a year based on the quoted usage.

electricityTariffInformationLabel (ElectricityProductTariffInformationLabel!)

Electricity tariff information label (TIL) provides standardised information between suppliers about a tariff. The type of ElectricityProductTariffInformationLabel depends on the rateType of the ElectricitySupplyPoint.

id (Int)

The ID of the quoted product.

label (String)

monthlyAmount (Int!)

Estimated cost in pence of the product per month based on the quoted usage.

product (EnergyProductType!)

Energy product quoted.

Example

{
  "id": 1,
  "label": "abc123",
  "product": EnergyProductType,
  "annualAmount": 1,
  "monthlyAmount": 1,
  "electricityTariffInformationLabel": ProductTariffInformationLabelStandard
}

Fields

NameDescription

agreement (ElectricityAgreementType)

Current active agreement on this supply point.

annualConsumption (ElectricityConsumption!)

Annual consumption of the supply point. The type of ElectricityConsumption depends on the rateType.

mpan (String)

The Mpan of the suply point.

quotedProducts ([ElectricityQuotedProduct]!)

A list of quoted products and the corresponding tariff information.

rateType (RateTypeChoices!)

Rate type.

Example

{
  "mpan": "abc123",
  "agreement": ElectricityAgreementType,
  "annualConsumption": ElectricityConsumptionStandard,
  "quotedProducts": ElectricityQuotedProduct,
  "rateType": "STANDARD"
}

Fields

NameDescription

address (String)

The formatted supply address including postcode.

mpan (String)

The valid Saving Sessions MPAN.

Example

{
  "address": "abc123",
  "mpan": "abc123"
}

EmailAttachmentType

Represents a file to attach to a email message.

Fields

NameDescription

filename (String!)

id (ID!)

temporaryUrl (String)

Temporary URL at which the attachment is available. This URL will expire after approximately an hour. It is intended for redirection purposes, NOT persistence in any form (e.g. inclusion in emails or the body of a web page).

Example

{
  "id": "abc123",
  "filename": "abc123",
  "temporaryUrl": "abc123"
}

Fields

NameDescription

errors ([ErrorType])

token (String)

The DRF token to be used for authentication.

Example

{
  "token": "abc123",
  "errors": [ErrorType]
}

Fields

NameDescription

eventType (String!)

id (ID!)

The ID of the object

message (EmailType)

Email message of the email event. Returns null for message's sent/received by other user's on the account

occurredAt (DateTime!)

Example

{
  "id": "abc123",
  "eventType": "abc123",
  "occurredAt": "2020-01-01T00:00:00.000Z",
  "message": EmailType
}

EmailType

Represents an email communication

Fields

NameDescription

attachments ([EmailAttachmentType])

Attachments of the email message.

channel (MessageChannel!)

createdAt (DateTime!)

fromEmail (String!)

fromNumber (String!)

htmlBody (String)

id (ID!)

recipient (String)

Email recipient

sender (String)

Email sender

sentAt (DateTime)

subject (String)

Subject line of the email message.

templateCode (String!)

textBody (String)

toAddress (String!)

toNumber (String!)

Example

{
  "id": "abc123",
  "channel": "EMAIL",
  "toAddress": "abc123",
  "fromEmail": "abc123",
  "toNumber": "abc123",
  "fromNumber": "abc123",
  "templateCode": "abc123",
  "createdAt": "2020-01-01T00:00:00.000Z",
  "sentAt": "2020-01-01T00:00:00.000Z",
  "attachments": [EmailAttachmentType],
  "subject": "abc123",
  "textBody": "abc123",
  "htmlBody": "abc123",
  "sender": "abc123",
  "recipient": "abc123"
}

Fields

NameDescription

deviceId (String)

marketSupplyPointId (String)

readingDirection (ReadingDirectionType)

readingFrequencyType (ReadingFrequencyType)

readingQuality (ReadingQualityType)

registerId (String)

Example

{
  "readingDirection": "CONSUMPTION",
  "registerId": "abc123",
  "readingQuality": "ACTUAL",
  "readingFrequencyType": "RAW_INTERVAL",
  "marketSupplyPointId": "abc123",
  "deviceId": "abc123"
}

EmbeddedNetworkType

Represents an embedded network that holds multiple embedded properties.

Fields

NameDescription

embeddedProperties ([EmbeddedPropertyType])

Get details about properties in an embedded network.

id (ID!)

name (String!)

A unique name/code for the network

Example

{
  "id": "abc123",
  "name": "abc123",
  "embeddedProperties": [EmbeddedPropertyType]
}

EndContributionAgreement

The possible errors that can be raised are:

  • KT-CT-9603: Unable to find contribution agreement.
  • KT-CT-4123: Unauthorized.
  • KT-CT-9604: Unable to end contribution agreement.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

contributionAgreement (ContributionAgreementType)

The created contribution agreement.

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "contributionAgreement": ContributionAgreementType
}

Energy

Describes the energy (not power) consumed (as electricity) or returned (as heat) by the system over a given span of time.

Differs from Power in that it describes the total amount of energy transferred during a given time frame (not a single point in time).

Fields

NameDescription

unit (EnergyUnit!)

The units in which the power is being measured.

value (Decimal)

The amount of energy (not power) transmitted to or from the heat pump.

Example

{
  "value": 1.0,
  "unit": "KILOWATT_HOUR"
}

EnergyMixDataType

Energy mix data can include the latest carbon intensity index in a region.

Fields

NameDescription

carbonIntensityIndex (String)

Current carbon intensity index.

Example

{
  "carbonIntensityIndex": "abc123"
}

EnergyProductConnectionTypeConnection

This field is a connection type. Connections are used to implement cursor based pagination.

Fields

NameDescription

edgeCount (Int!)

Number of nodes in the edge.

edges ([EnergyProductConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo (PageInfo!)

Pagination data for this connection.

totalCount (Int!)

Total number of nodes.

Example

{
  "pageInfo": PageInfo,
  "edges": EnergyProductConnectionTypeEdge,
  "totalCount": 1,
  "edgeCount": 1
}

EnergyProductConnectionTypeEdge

A Relay edge containing a EnergyProductConnectionType and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (EnergyProductType)

The item at the end of the edge

Example

{
  "node": EnergyProductType,
  "cursor": "abc123"
}

EnergyProductType

An EnergyProduct models a group of tariffs for both electricity and gas.

Fields

NameDescription

availableFrom (DateTime!)

availableTo (DateTime)

code (String!)

description (String!)

This will be shown to customers during sign-up

direction (EnergyProductDirection)

Whether the product is an import or export product.

displayName (String!)

This name will be shown to customers during sign-up

exitFees (Int)

The exit fee applied per fuel if the agreement is ended early. Total value is determined by exit fee type, i.e. this value is either a flat cost or cost per year/month remaining on the agreement.

exitFeesType (String)

Determines how the exit fee is calculated.

fullName (String!)

id (ID!)

includesEpgReduction (Boolean)

Does the product have EPG applied on the unit rates.

isAvailable (Boolean)

isBusiness (Boolean!)

isChargedHalfHourly (Boolean!)

isDefault (Boolean)

isDomestic (Boolean)

isFixed (Boolean)

isGreen (Boolean!)

isHidden (Boolean!)

Whether to hide this product from the direct registration journey

isOccupier (Boolean)

isPrepay (Boolean!)

isUnavailable (Boolean)

isVariable (Boolean!)

notes (String!)

These are internal notes to explain why this product exists

tags ([String])

Tags associated with the product.

tariffs (EnergyTariffConnectionTypeConnection)

A list of tariffs per product for a given postcode.

term (Int)

Duration of agreements using this product in months

Example

{
  "id": "abc123",
  "fullName": "abc123",
  "displayName": "abc123",
  "description": "abc123",
  "availableFrom": "2020-01-01T00:00:00.000Z",
  "availableTo": "2020-01-01T00:00:00.000Z",
  "isHidden": true,
  "code": "abc123",
  "direction": "IMPORT",
  "notes": "abc123",
  "isVariable": true,
  "isGreen": true,
  "isBusiness": true,
  "isChargedHalfHourly": true,
  "isPrepay": true,
  "isDefault": true,
  "isOccupier": true,
  "term": 1,
  "tariffs": EnergyTariffConnectionTypeConnection,
  "isAvailable": true,
  "isUnavailable": true,
  "isFixed": true,
  "isDomestic": true,
  "includesEpgReduction": true,
  "exitFees": 1,
  "exitFeesType": "abc123",
  "tags": ["abc123"]
}

EnergyTariffConnectionTypeConnection

This field is a connection type. Connections are used to implement cursor based pagination.

Fields

NameDescription

edgeCount (Int!)

Number of nodes in the edge.

edges ([EnergyTariffConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo (PageInfo!)

Pagination data for this connection.

totalCount (Int!)

Total number of nodes.

Example

{
  "pageInfo": PageInfo,
  "edges": EnergyTariffConnectionTypeEdge,
  "totalCount": 1,
  "edgeCount": 1
}

EnergyTariffConnectionTypeEdge

A Relay edge containing a EnergyTariffConnectionType and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (EnergyTariffType)

The item at the end of the edge

Example

{
  "node": StandardTariff,
  "cursor": "abc123"
}

Fields

NameDescription

linkState (String)

linkUrl (String)

Example

{
  "linkState": "abc123",
  "linkUrl": "abc123"
}

Fields

NameDescription

octoplus (OctoplusEnrolmentOutcome)

The outcome of the Octoplus enrolment.

savingSessions (SavingSessionsEnrolmentOutcome)

The outcome of the saving sessions enrolment, null if the account did not opt in to enrol.

Example

{
  "octoplus": OctoplusEnrolmentOutcome,
  "savingSessions": SavingSessionsEnrolmentOutcome
}

EnrolmentType

Details of an ongoing enrolment process.

Fields

NameDescription

previousSupplier (String)

The last company to supply this meter point.

status (EnrolmentStatusOptions)

The enrolment status on a meter point.

supplyStartDate (Date)

Target date for supply to start.

switchStartDate (Date)

Date the switch started.

Example

{
  "switchStartDate": "2020-01-01",
  "supplyStartDate": "2020-01-01",
  "previousSupplier": "abc123",
  "status": "OBJECTION_RECEIVED"
}

Fields

NameDescription

field (String!)

messages ([String!]!)

Example

{
  "field": "abc123",
  "messages": "abc123"
}

Fields

NameDescription

costCurrency (String!)

Monetary currency of the statistic in ISO-4217 format.

estimatedAmount (Decimal!)

        Monetary cost of the statistic. This is the smallest unit of currency,
        e.g. cents for USD or yen for JPY. Because electricity is priced as a commodity, we must
        account for fractional cents and this field must be a Decimal. Values from this field should
        likely not be used for accounting purposes.

pricePerUnit (PricePerUnit)

Net price per unit of the statistic if applicable.

Example

{
  "estimatedAmount": 1.0,
  "costCurrency": "abc123",
  "pricePerUnit": PricePerUnit
}

Fields

NameDescription

power (Decimal)

The instantaneous turbine output power in kW.

rotorSpeed (Decimal)

The turbine's rotor speed in revolutions per minute.

totalPowerOnGrid (Decimal)

The total amount of electricity grid-wide from all sources in megawatts.

windDirection (Decimal)

A decimal in degrees representing the direction from which the wind is blowing. 360.0 degrees indicates the wind blows from the north. Read more here: https://confluence.ecmwf.int/pages/viewpage.action?pageId=133262398

windPowerOnGrid (Decimal)

The total amount of electricity grid-wide from wind in megawatts.

windPowerProportion (Decimal)

The proportion of electricity on the grid coming from wind. Ranges from 0.0 - 1.0.

windSpeed (Decimal)

The wind speed in m/s.

Example

{
  "power": 1.0,
  "windSpeed": 1.0,
  "windDirection": 1.0,
  "rotorSpeed": 1.0,
  "windPowerOnGrid": 1.0,
  "totalPowerOnGrid": 1.0,
  "windPowerProportion": 1.0
}

Fields

NameDescription

accountNumbers ([String]!)

The list of account numbers for the source and account user.

catchments ([String]!)

The list of catchments that this discount source applies to.

current (DiscountData!)

The current or 'live' status of discounts for this source.

discountSource (String!)

The source for the discount, e.g. 'Fan 1' for a wind turbine in UK, or an ERCOT Load Zone for US.

forecast (DiscountForecast)

The forecasted discount probabilities for this source.

historic ([DiscountData]!)

The historic discounts for this source.

location (String)

The location of the discount source.

name (String!)

The name of the discount source.

propertyIds ([Int]!)

The list of property IDs for the source and account user.

thresholds ([Threshold]!)

The details of Fan Club thresholds for the discount source.

windFarm (String)

The wind farm that the discount source is part of.

Example

{
  "discountSource": "abc123",
  "name": "abc123",
  "location": "abc123",
  "windFarm": "abc123",
  "accountNumbers": "abc123",
  "propertyIds": 1,
  "catchments": "abc123",
  "thresholds": Threshold,
  "current": DiscountData,
  "historic": DiscountData,
  "forecast": DiscountForecast
}

FieldSalesVisitConnectionTypeEdge

A Relay edge containing a FieldSalesVisitConnectionType and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (FieldSalesVisitType)

The item at the end of the edge

Example

{
  "node": FieldSalesVisitType,
  "cursor": "abc123"
}

Fields

NameDescription

efr32 (String)

EFR32 firmware version (Emergency Firmware Recovery).

esp32 (String)

ESP32 firmware version (EFI System Partition).

eui (String)

The EUI of the controller being queried.

Example

{
  "esp32": "abc123",
  "efr32": "abc123",
  "eui": "abc123"
}

FitAcceptSchedule

FiT customers need to be able to accept their FiT schedules. There are a number of conditions that need to be met for a schedule: - It must have been sent - It must not have been accepted - It must not be in the future

The possible errors that can be raised are:

  • KT-GB-6813: Invalid data.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

fitSchedule (FitScheduleType)

The accepted schedule.

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "fitSchedule": FitScheduleType
}

FitCreateMeterReadings

The possible errors that can be raised are:

  • KT-GB-6812: Invalid data.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

possibleErrors ([PossibleErrorType])

readingsSubmitted (Boolean)

Example

{
  "possibleErrors": [PossibleErrorType],
  "readingsSubmitted": true
}

Fields

NameDescription

id (String)

ID of the meter.

installationCapacities ([InstallationCapacityType])

Any installation capacities linked to the meter.

maxExpectedRead (Decimal)

The maximum read volume expected for the current datetime, including any extra tolerance allowed.

mpan (String)

MPAN of the meter point linked to the meter.

readings (FitReadingConnectionTypeConnection)

serialNumber (String)

Serial number of the meter.

type (String)

The type of meter.

Example

{
  "serialNumber": "abc123",
  "id": "abc123",
  "type": "abc123",
  "readings": FitReadingConnectionTypeConnection,
  "installationCapacities": [InstallationCapacityType],
  "maxExpectedRead": 1.0,
  "mpan": "abc123"
}

Fields

NameDescription

edgeCount (Int!)

Number of nodes in the edge.

edges ([FitReadingConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo (PageInfo!)

Pagination data for this connection.

totalCount (Int!)

Total number of nodes.

Example

{
  "pageInfo": PageInfo,
  "edges": FitReadingConnectionTypeEdge,
  "totalCount": 1,
  "edgeCount": 1
}

FitReadingConnectionTypeEdge

A Relay edge containing a FitReadingConnectionType and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (FitReadingType)

The item at the end of the edge

Example

{
  "node": FitReadingType,
  "cursor": "abc123"
}

Fields

NameDescription

isBiennial (Boolean)

readAt (DateTime!)

value (Decimal!)

Example

{
  "value": 1.0,
  "readAt": "2020-01-01T00:00:00.000Z",
  "isBiennial": true
}

Fields

NameDescription

acceptedAt (DateTime)

Datetime the schedule was accepted.

scheduleId (UUID)

Unique Identifier of the schedule.

sentAt (DateTime)

Datetime the schedule was sent.

temporaryDownloadUrls ([String])

URLs for any schedule PDFs. URLs are temporary and will expire in approximately one hour. They are intended for redirection purposes only; they are not persistent in any form (eg. in emails or a web page body).

Example

{
  "scheduleId": "500c164d-38c7-4f74-9ac6-be210197e9e4",
  "sentAt": "2020-01-01T00:00:00.000Z",
  "acceptedAt": "2020-01-01T00:00:00.000Z",
  "temporaryDownloadUrls": ["abc123"]
}

Fields

NameDescription

allowableRange (TemperatureRange!)

The minimum and maximum temperatures which may be selected, dictated by the device.

currentTemperature (Temperature!)

The flow temperature currently selected by the user.

Example

{
  "allowableRange": TemperatureRange,
  "currentTemperature": Temperature
}

Fields

NameDescription

accountType (AccountTypeChoices)

The type of account.

activeFrom (DateTime!)

activeTo (DateTime)

createdAt (DateTime!)

paymentMethod (PaymentMethods)

The payment method for the product.

renewalProducts ([RenewalProductType])

Example

{
  "activeFrom": "2020-01-01T00:00:00.000Z",
  "activeTo": "2020-01-01T00:00:00.000Z",
  "accountType": "BUSINESS",
  "paymentMethod": "DIRECT_DEBIT",
  "renewalProducts": [RenewalProductType],
  "createdAt": "2020-01-01T00:00:00.000Z"
}

Fields

NameDescription

effectiveAt (DateTime!)

The time at which forced reauthentication is effective. Kraken and refresh tokens issued before this time will be invalid.

tokensInvalidated (Boolean!)

Reports whether the mutation applied successfully. Should always be 'true'.

Example

{
  "tokensInvalidated": true,
  "effectiveAt": "2020-01-01T00:00:00.000Z"
}

Fields

NameDescription

powerLowerBound (Decimal!)

Lower confidence interval bound for forecasted power (kW).

powerMedian (Decimal!)

The best guess for forecasted power (kW).

powerUpperBound (Decimal!)

Upper confidence interval bound for forecasted power (kW).

projectedDiscount (Decimal!)

Projected discount based on ensemble forecast data.

validTime (DateTime!)

Timestamp for the data-point.

Example

{
  "validTime": "2020-01-01T00:00:00.000Z",
  "projectedDiscount": 1.0,
  "powerMedian": 1.0,
  "powerLowerBound": 1.0,
  "powerUpperBound": 1.0
}

Fields

NameDescription

content (JSONString)

errors ([SerializerFieldErrorsType])

id (Int)

Example

{
  "id": 1,
  "content": {"key": "value"},
  "errors": [SerializerFieldErrorsType]
}

FractionSizeType

A fractional measurement.

Fields

NameDescription

fraction (Decimal!)

The fractional value.

id (ID)

Unique identifier of the object.

typename (String)

The name of the object's type.

Example

{
  "id": "abc123",
  "typename": "abc123",
  "fraction": 1.0
}

GasAgentContractType

An organization who manages a given meterpoint.

Fields

NameDescription

agentId (String)

contractStatus (AgentContractStatusType)

contractType (MamAgentContractContractType!)

effectiveFrom (Date)

Example

{
  "contractType": "MAM",
  "agentId": "abc123",
  "contractStatus": "ACCEPTED",
  "effectiveFrom": "2020-01-01"
}

Fields

NameDescription

account (AccountType!)

agreedFrom (DateTime)

agreedTo (DateTime)

id (Int)

isRevoked (Boolean)

lineItems (LineItemConnection)

A collection of charges and associated consumption data.

meterPoint (GasMeterPointType!)

tariff (GasTariffType)

unitRateUplifts ([GasContractUnitRateUplift])

List of contracted unit rate uplifts applicable during this agreement's duration. This is only applicable to business accounts where we may pay commission to a third-party intermediary.

validFrom (DateTime)

validTo (DateTime)

Example

{
  "id": 1,
  "validFrom": "2020-01-01T00:00:00.000Z",
  "validTo": "2020-01-01T00:00:00.000Z",
  "agreedFrom": "2020-01-01T00:00:00.000Z",
  "agreedTo": "2020-01-01T00:00:00.000Z",
  "account": AccountType,
  "meterPoint": GasMeterPointType,
  "tariff": GasTariffType,
  "isRevoked": true,
  "lineItems": LineItemConnection,
  "unitRateUplifts": [GasContractUnitRateUplift]
}

Fields

NameDescription

consumption (Int)

isEstimate (Boolean)

Example

{
  "consumption": 1,
  "isEstimate": true
}

Fields

NameDescription

unitRateUplift (Decimal!)

The amount to add to the unit rate when billing, in pence/kWh.

validFrom (DateTime!)

When this contract is valid from.

validTo (DateTime!)

When this contract is valid until.

Example

{
  "validFrom": "2020-01-01T00:00:00.000Z",
  "validTo": "2020-01-01T00:00:00.000Z",
  "unitRateUplift": 1.0
}

GasFiltersOutput

Filter measurements by gas parameters.

Fields

NameDescription

deviceId (String)

marketSupplyPointId (String)

readingFrequencyType (ReadingFrequencyType)

registerId (String)

Example

{
  "registerId": "abc123",
  "readingFrequencyType": "RAW_INTERVAL",
  "marketSupplyPointId": "abc123",
  "deviceId": "abc123"
}

GasMeterPointType

A gas meterpoint is a collection of meters. Meters are changed over time, so it is convenient to keep an invariant reference. We would not expect there to be multiple active meters at a time on a gas meterpoint.

Fields

NameDescription

agentContracts ([GasAgentContractType])

A list of agents responsible for management of the meterpoint.

agreements ([GasAgreementType])

A list of gas agreements belonging to an account that is linked to the viewer. Filters out expired agreements by default.

confirmationReference (Int)

currentDmSoq (Int)

Rolling SOQ

currentNdmSoq (Int)

Rolling SOQ

currentSupplierMpid (String)

The current MPID for this meter point.

endUserCategory (Int)

enrolment (EnrolmentType)

Details of an ongoing enrolment process.

eucIdentifier (String)

exitCapacityChargeRate (Decimal)

exitZone (String!)

formulaYearSmpAq (Int)

AQ fixed for year

formulaYearSmpSoq (Int)

SOQ fixed for year

hasOpenClosingReadDispute (Boolean!)

hasOpenOpeningReadDispute (Boolean!)

id (ID!)

igtCheckedAt (DateTime)

igtIdentifier (String!)

ldz (String!)

Local distribution zone - Distribution charges are based upon this

ldzCapacityChargeRate (Decimal)

ldzCommodityChargeRate (Decimal)

ldzCustomerChargeRate (Decimal)

marketCategory (GasMeterPointMarketCategory)

marketSectorCode (GasMeterPointMarketSectorCode)

meterOwnershipType (GasMeterPointMeterOwnershipType)

meterReadBatchFrequency (String!)

meters ([GasMeterType])

mprn (String)

mrfType (String!)

newSupplierId (String)

nominationShipperReference (String!)

nominationType (String!)

ntsExitCommodityChargeRate (Decimal)

oldSupplierId (String)

requiresEnrolment (Boolean!)

requiresWithdrawal (Boolean!)

smartStartDate (Date)

status (String)

statusUpdatedAt (DateTime)

supplyClass (Int!)

supplyEndDate (Date)

supplyPointCategory (String!)

targetSsd (Date)

unbilledReadings ([GasMeterReadingType])

A list of unbilled gas readings for the meterpoint.

xoserveStatus (String)

Industry status code

Example

{
  "id": "abc123",
  "supplyEndDate": "2020-01-01",
  "mprn": "abc123",
  "statusUpdatedAt": "2020-01-01T00:00:00.000Z",
  "oldSupplierId": "abc123",
  "newSupplierId": "abc123",
  "smartStartDate": "2020-01-01",
  "requiresEnrolment": true,
  "targetSsd": "2020-01-01",
  "requiresWithdrawal": true,
  "hasOpenOpeningReadDispute": true,
  "hasOpenClosingReadDispute": true,
  "marketSectorCode": "D",
  "marketCategory": "SSP",
  "meterOwnershipType": "T",
  "confirmationReference": 1,
  "nominationType": "abc123",
  "supplyClass": 1,
  "nominationShipperReference": "abc123",
  "xoserveStatus": "abc123",
  "exitCapacityChargeRate": 1.0,
  "ldzCapacityChargeRate": 1.0,
  "ldzCommodityChargeRate": 1.0,
  "ldzCustomerChargeRate": 1.0,
  "ntsExitCommodityChargeRate": 1.0,
  "mrfType": "abc123",
  "meterReadBatchFrequency": "abc123",
  "formulaYearSmpSoq": 1,
  "formulaYearSmpAq": 1,
  "currentDmSoq": 1,
  "currentNdmSoq": 1,
  "exitZone": "abc123",
  "ldz": "abc123",
  "supplyPointCategory": "abc123",
  "endUserCategory": 1,
  "eucIdentifier": "abc123",
  "igtIdentifier": "abc123",
  "igtCheckedAt": "2020-01-01T00:00:00.000Z",
  "meters": [GasMeterType],
  "status": "abc123",
  "enrolment": EnrolmentType,
  "agentContracts": [GasAgentContractType],
  "agreements": [GasAgreementType],
  "unbilledReadings": [GasMeterReadingType],
  "currentSupplierMpid": "abc123"
}

GasMeterReadingConnectionTypeConnection

This field is a connection type. Connections are used to implement cursor based pagination.

Fields

NameDescription

edgeCount (Int!)

Number of nodes in the edge.

edges ([GasMeterReadingConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo (PageInfo!)

Pagination data for this connection.

totalCount (Int!)

Total number of nodes.

Example

{
  "pageInfo": PageInfo,
  "edges": GasMeterReadingConnectionTypeEdge,
  "totalCount": 1,
  "edgeCount": 1
}

GasMeterReadingConnectionTypeEdge

A Relay edge containing a GasMeterReadingConnectionType and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (GasMeterReadingType)

The item at the end of the edge

Example

{
  "node": GasMeterReadingType,
  "cursor": "abc123"
}

GasMeterReadingType

A gas meter reading. The reading value is under the register collection to be consistent with electricity readings. We expect a single register and reading value for gas.

Fields

NameDescription

id (ID!)

readAt (DateTime)

readingSource (String)

registers ([RegisterReading])

source (String)

Example

{
  "id": "abc123",
  "readAt": "2020-01-01T00:00:00.000Z",
  "readingSource": "abc123",
  "registers": [RegisterReading],
  "source": "abc123"
}

GasMeterRegisterType

Gas registers measure consumption.

Fields

NameDescription

decimalPlaces (Int)

digits (Int)

expectedReadingRanges ([[Int]])

id (ID!)

identifier (String)

name (String)

unitRateType (String)

Example

{
  "id": "abc123",
  "identifier": "abc123",
  "digits": 1,
  "decimalPlaces": 1,
  "name": "abc123",
  "expectedReadingRanges": [1],
  "unitRateType": "abc123"
}

GasMeterType

A gas meter has a register which holds readings. We would expect this to be a one-to-one relationship between meter and register.

Fields

NameDescription

activeFrom (Date!)

activeTo (Date)

bypassFitted (String!)

collarFitted (String!)

consumption (ConsumptionConnection)

Energy consumption recorded by the meter.

consumptionUnits (String)

The units of consumption for a smart meter.

correction (Float)

createdAt (DateTime!)

currentMeterAssetManager (String!)

fuelType (String)

The type of fuel this meter uses.

hasAndAllowsHhReadings (Boolean)

Returns if the meter has and allows half hourly readings

id (ID!)

imperial (Boolean)

installationDate (Date)

instructions (String!)

isDigital (Boolean)

isReadyForTopup (Boolean)

Returns if the meter is ready for top up.

isTradPrepay (Boolean)

Returns if the meter is a traditional prepay meter.

lastInspectionDate (Date)

linkCode (String!)

location (String!)

locationDescription (String!)

manufacturedYear (Int)

manufacturerCode (String!)

measuringCapacity (Decimal)

mechanism (GasMeterMechanism)

meterPoint (GasMeterPointType!)

meterType (String!)

modelName (String!)

nodeId (ID!)

This lets us get around the fact that we already use the field id as a primary key. We will migrate the id field over to be this id eventually.

operationalStatusDate (Date)

owner (String!)

prepayLedgers (PrepayLedgersType)

pulseValue (Decimal)

readingFactor (Decimal)

readings (GasMeterReadingConnectionTypeConnection)

registers ([GasMeterRegisterType])

requiresAccess (Boolean)

requiresCotFinalReading (Boolean)

Whether this meter requires a final change of tenancy (COT) reading.

serialNumber (String!)

smartDevices ([SmartMeterDeviceType])

smartGasMeter (SmartMeterDeviceType)

status (GasMeterStatus)

units (Int!)

updatedAt (DateTime)

Example

{
  "id": "abc123",
  "serialNumber": "abc123",
  "requiresAccess": true,
  "isDigital": true,
  "installationDate": "2020-01-01",
  "lastInspectionDate": "2020-01-01",
  "createdAt": "2020-01-01T00:00:00.000Z",
  "updatedAt": "2020-01-01T00:00:00.000Z",
  "activeFrom": "2020-01-01",
  "activeTo": "2020-01-01",
  "meterPoint": GasMeterPointType,
  "manufacturerCode": "abc123",
  "modelName": "abc123",
  "manufacturedYear": 1,
  "meterType": "abc123",
  "imperial": true,
  "units": 1,
  "location": "abc123",
  "mechanism": "CR",
  "correction": 1.0,
  "locationDescription": "abc123",
  "readingFactor": 1.0,
  "instructions": "abc123",
  "pulseValue": 1.0,
  "linkCode": "abc123",
  "collarFitted": "abc123",
  "bypassFitted": "abc123",
  "measuringCapacity": 1.0,
  "status": "LI",
  "operationalStatusDate": "2020-01-01",
  "owner": "abc123",
  "currentMeterAssetManager": "abc123",
  "prepayLedgers": PrepayLedgersType,
  "smartGasMeter": SmartMeterDeviceType,
  "consumptionUnits": "abc123",
  "requiresCotFinalReading": true,
  "fuelType": "abc123",
  "consumption": ConsumptionConnection,
  "nodeId": "abc123",
  "readings": GasMeterReadingConnectionTypeConnection,
  "registers": [GasMeterRegisterType],
  "hasAndAllowsHhReadings": true,
  "smartDevices": [SmartMeterDeviceType],
  "isTradPrepay": true,
  "isReadyForTopup": true
}

Fields

NameDescription

annualAmount (Int!)

Estimated cost in pence of the product over a year based on the quoted usage.

gasTariffInformationLabel (ProductTariffInformationLabelStandard!)

Gas tariff information label (TIL) provides standardised information between suppliers about a tariff.

id (Int)

The ID of the quoted product.

label (String)

monthlyAmount (Int!)

Estimated cost in pence of the product per month based on the quoted usage.

product (EnergyProductType!)

Energy product quoted.

Example

{
  "id": 1,
  "label": "abc123",
  "product": EnergyProductType,
  "annualAmount": 1,
  "monthlyAmount": 1,
  "gasTariffInformationLabel": ProductTariffInformationLabelStandard
}

Fields

NameDescription

agreement (GasAgreementType)

Current active agreement on this supply point.

annualConsumption (GasConsumption!)

Annual consumption of the supply point

mprn (String)

The Mprn of the suply point.

quotedProducts ([GasQuotedProduct]!)

A list of quoted products and the corresponding tariff information.

rateType (String!)

Gas has only STANDARD rate type.

Example

{
  "mprn": "abc123",
  "agreement": GasAgreementType,
  "annualConsumption": GasConsumption,
  "quotedProducts": GasQuotedProduct,
  "rateType": "abc123"
}

Fields

NameDescription

description (String)

displayName (String)

fullName (String)

id (ID)

preVatStandingCharge (Float)

preVatUnitRate (Float)

productCode (String)

standingCharge (Float)

tariffCode (String)

Describes a particular tariff by combining the product code, number of rates, available from date and GSP code.

unitRate (Float)

unitRateEpgApplied (Boolean)

Is EPG applied to the unit rate.

Example

{
  "id": "abc123",
  "displayName": "abc123",
  "fullName": "abc123",
  "description": "abc123",
  "productCode": "abc123",
  "standingCharge": 1.0,
  "preVatStandingCharge": 1.0,
  "tariffCode": "abc123",
  "unitRate": 1.0,
  "unitRateEpgApplied": true,
  "preVatUnitRate": 1.0
}

GeneratePaymentAllocationNumber

Generate a PAN (Payment Allocation Number) for a smart meter. This can be used to add credit to the meter in a shop, if the meter is in prepayment mode.

The possible errors that can be raised are:

  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

pan (String!)

The Payment Allocation Number routes payments made via a PSP (Payment Service Provider) to this device.

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "pan": "abc123"
}

GenericBackendScreen

A generic backend screen that can be used to define any type of screen.

Fields

NameDescription

name (String!)

The name of the screen.

refreshFrequency (Int)

The refresh / polling frequency in milliseconds.

screenData (String)

Serialized JSON representation of the screen.

Example

{
  "name": "abc123",
  "refreshFrequency": 1,
  "screenData": "abc123"
}

GetEmbeddedSecretForNewPaymentInstruction

Get the client secret needed to create a new payment instruction using an embedded form.

The possible errors that can be raised are:

  • KT-CT-4177: Unauthorized.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

possibleErrors ([PossibleErrorType])

secretKey (String)

Example

{
  "possibleErrors": [PossibleErrorType],
  "secretKey": "abc123"
}

GetHostedUrlForNewPaymentInstruction

Get external URL where the user can set up a payment instruction.

The possible errors that can be raised are:

  • KT-CT-1128: Unauthorized.
  • KT-CT-3822: Unauthorized.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

possibleErrors ([PossibleErrorType])

url (String)

URL at which payment instruction can be set up.

Example

{
  "possibleErrors": [PossibleErrorType],
  "url": "abc123"
}

Fields

NameDescription

sets ([SnapSetType])

All available sets of constantine.

totalPrizeEntries (Int)

Total amount of prize entries.

Example

{
  "sets": [SnapSetType],
  "totalPrizeEntries": 1
}

Fields

NameDescription

currency (String)

Currency.

grossAmount (Float)

Gross amount.

netAmount (Float)

Net amount.

type (String)

Grant type.

Example

{
  "type": "abc123",
  "netAmount": 1.0,
  "grossAmount": 1.0,
  "currency": "abc123"
}

Fields

NameDescription

availableFrom (Date)

Product available from.

availableTo (Date)

Product available to.

code (String)

Product code.

currency (String)

Currency.

customerName (String)

Product customer name.

description (String)

Product description.

grossPricePerUnit (Float)

Gross price per unit.

id (Int)

Product ID.

internalName (String)

Product internal name.

marketName (String)

Market of the product.

notes (String)

Product notes.

pricePerUnit (Float)

Price per unit.

productType (GoodsProductType)

Type of the product.

Example

{
  "id": 1,
  "marketName": "abc123",
  "productType": GoodsProductType,
  "code": "abc123",
  "internalName": "abc123",
  "customerName": "abc123",
  "notes": "abc123",
  "description": "abc123",
  "availableFrom": "2020-01-01",
  "availableTo": "2020-01-01",
  "pricePerUnit": 1.0,
  "grossPricePerUnit": 1.0,
  "currency": "abc123"
}

Fields

NameDescription

edgeCount (Int!)

Number of nodes in the edge.

edges ([GoodsProductConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo (PageInfo!)

Pagination data for this connection.

totalCount (Int!)

Total number of nodes.

Example

{
  "pageInfo": PageInfo,
  "edges": GoodsProductConnectionTypeEdge,
  "totalCount": 1,
  "edgeCount": 1
}

GoodsProductConnectionTypeEdge

A Relay edge containing a GoodsProductConnectionType and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (GoodsProduct)

The item at the end of the edge

Example

{
  "node": GoodsProduct,
  "cursor": "abc123"
}

Fields

NameDescription

code (String)

Product type code.

internalName (String)

Product type name.

Example

{
  "code": "abc123",
  "internalName": "abc123"
}

Fields

NameDescription

clientParams (JSONString)

Client parameters of the purchase.

code (String)

Purchase code.

goodsGrants ([GoodsGrant])

Grants that apply in this purchase.

goodsSaleItems ([GoodsSaleItem])

Sale items in this purchase.

ledgerId (String)

Ledger ID associated to the purchase.

marketParams (JSONString)

Market parameters of the purchase.

Example

{
  "code": "abc123",
  "ledgerId": "abc123",
  "goodsSaleItems": [GoodsSaleItem],
  "goodsGrants": [GoodsGrant],
  "marketParams": {"key": "value"},
  "clientParams": {"key": "value"}
}

Fields

NameDescription

code (String)

Code of the quote.

goodsQuotedProducts ([GoodsQuotedProduct])

Products of this quote.

hasQuoteExpired (Boolean)

Indicates whether or not the quote is expired.

id (Int)

ID of the quote.

quotedAt (DateTime)

Date and time when the quote was created.

totalNetAmount (Int)

Total net amount of the quote in cents.

Example

{
  "id": 1,
  "code": "abc123",
  "totalNetAmount": 1,
  "quotedAt": "2020-01-01T00:00:00.000Z",
  "goodsQuotedProducts": [GoodsQuotedProduct],
  "hasQuoteExpired": true
}

Fields

NameDescription

id (Int)

The ID of the quote share.

Example

{
  "id": 1
}

Fields

NameDescription

currency (String)

Currency.

netAmount (Int)

Net amount.

numberOfUnits (Int)

Number of units.

pricePerUnit (Int)

Price per unit.

product (String)

Product code.

Example

{
  "product": "abc123",
  "numberOfUnits": 1,
  "pricePerUnit": 1,
  "netAmount": 1,
  "currency": "abc123"
}

Fields

NameDescription

currency (String)

Currency.

grossAmount (Float)

Gross amount.

netAmount (Float)

Net amount.

numberOfUnits (Int)

Number of units.

pricePerUnit (Float)

Price per unit.

product (String)

Product code.

Example

{
  "product": "abc123",
  "numberOfUnits": 1,
  "pricePerUnit": 1.0,
  "netAmount": 1.0,
  "grossAmount": 1.0,
  "currency": "abc123"
}

Fields

NameDescription

savedCo2InKgs (Int)

savedTrees (Int)

Example

{
  "savedTrees": 1,
  "savedCo2InKgs": 1
}

GreennessForecastPeriod

A greenness forecast entry for a single period of time.

Fields

NameDescription

greennessIndex (GreennessForecastIndex)

The greenness index LOW/MEDIUM/HIGH (higher is greener) to map to a localised value.

greennessScore (Int)

The greenness score 0-100 (higher is greener).

highlightFlag (Boolean)

Indicates that this is one of the best periods in the forecast (there may be more than one). This may not consider the entire forecast and can be ignored or calculated client-side from the score.

validFrom (DateTime)

The start of the forecast period (inclusive).

validTo (DateTime)

The end of the forecast period (exclusive).

Example

{
  "validFrom": "2020-01-01T00:00:00.000Z",
  "validTo": "2020-01-01T00:00:00.000Z",
  "greennessScore": 1,
  "greennessIndex": "LOW",
  "highlightFlag": true
}

Fields

NameDescription

powerInKw (Decimal)

The current power of the grid in kW.

Example

{
  "powerInKw": 1.0
}

Fields

NameDescription

agileCalculationInfo (AgileCalculationInfo)

Information on how agile unit rates have been calculated.

description (String)

displayName (String)

fullName (String)

id (ID)

preVatStandingCharge (Float)

productCode (String)

standingCharge (Float)

tariffCode (String)

Describes a particular tariff by combining the product code, number of rates, available from date and GSP code.

unitRates ([UnitRate])

Example

{
  "id": "abc123",
  "displayName": "abc123",
  "fullName": "abc123",
  "description": "abc123",
  "productCode": "abc123",
  "standingCharge": 1.0,
  "preVatStandingCharge": 1.0,
  "tariffCode": "abc123",
  "unitRates": [UnitRate],
  "agileCalculationInfo": AgileCalculationInfo
}

HardshipAgreementType

Represents a Hardship Agreement for a particular Account.

Fields

NameDescription

hardshipDetails (String!)

These are internal notes detailing the hardship.

hardshipEntryReason (HardshipAgreementHardshipEntryReason)

hardshipType (HardshipAgreementHardshipType!)

id (ID!)

paymentPlanDetails (String!)

startDate (Date!)

Example

{
  "id": "abc123",
  "hardshipType": "DEATH_IN_FAMILY",
  "hardshipDetails": "abc123",
  "hardshipEntryReason": "SELF_IDENTIFIED",
  "paymentPlanDetails": "abc123",
  "startDate": "2020-01-01"
}

Fields

NameDescription

faultCodes ([String])

Any fault codes present on the device.

hardwareVersion (String)

The hardware version.

hasHeatPumpCompatibleCylinder (Boolean)

Whether the system has a hot water cylinder (tank) which is compatible with heat pumps.

heatingFlowTemperature (FlowTemperatureConfiguration)

The flow temperature set for heating.

manifoldEnabled (Boolean)

Whether the system has a manifold set up.

maxWaterSetpoint (Float)

The maximum temperature which the hot water can be set to.

minWaterSetpoint (Float)

The minimum temperature which the hot water can be set to.

model (String)

The heat pump model (eg. COSY).

serialNumber (String)

The serial number of the heat pump.

weatherCompensation (WeatherCompensationConfiguration)

The weather compensation settings currently in place.

Example

{
  "serialNumber": "abc123",
  "model": "abc123",
  "hardwareVersion": "abc123",
  "faultCodes": ["abc123"],
  "weatherCompensation": WeatherCompensationConfiguration,
  "heatingFlowTemperature": FlowTemperatureConfiguration,
  "manifoldEnabled": true,
  "hasHeatPumpCompatibleCylinder": true,
  "maxWaterSetpoint": 1.0,
  "minWaterSetpoint": 1.0
}

Fields

NameDescription

deviceType (KrakenFlexDeviceTypes)

Always HEAT_PUMPS.

Deprecated

The 'deviceType' field is deprecated.

The value is always 'HEAT_PUMPS' so this field is redundant.

- Marked as deprecated on 2023-12-06.
- Will be removed on 2024-06-06.

krakenflexDeviceId (String)

params (HeatPumpParamsType)

provider (ProviderChoices)

The third party that provides control of this heat pump.

Example

{
  "krakenflexDeviceId": "abc123",
  "deviceType": "BATTERIES",
  "provider": "DAIKIN",
  "params": HeatPumpParamsType
}

Fields

NameDescription

accountNumber (String)

Account associated to quote.

addressDetails (AddressDetails!)

Property details stored in hubspot.

code (String!)

Quote code.

contactDetails (ContactDetails!)

Contact details stored in hubspot.

quoteId (Int!)

ID of the quote.

quotedProduct (GoodsQuotedProduct!)

Quoted product details.

Example

{
  "accountNumber": "abc123",
  "code": "abc123",
  "quoteId": 1,
  "quotedProduct": GoodsQuotedProduct,
  "contactDetails": ContactDetails,
  "addressDetails": AddressDetails
}

Fields

NameDescription

heatPumpId (ID)

Example

{
  "heatPumpId": "abc123"
}

Fields

NameDescription

endAt (DateTime!)

The end datetime of the node.

energyInput (Energy)

The field to show energy input.

energyOutput (Energy)

The field to show energy output.

outdoorTemperature (Temperature)

The field to show outdoor temperature.

startAt (DateTime!)

The start datetime of the node.

Example

{
  "startAt": "2020-01-01T00:00:00.000Z",
  "endAt": "2020-01-01T00:00:00.000Z",
  "energyInput": Energy,
  "energyOutput": Energy,
  "outdoorTemperature": Temperature
}

Fields

NameDescription

climateControlStatus (ClimateControlDetailsType)

isConnected (Boolean)

Whether the heat pump is currently connected to the provider.

waterTemperatureStatus (WaterTemperatureDetailsType)

Example

{
  "isConnected": true,
  "climateControlStatus": ClimateControlDetailsType,
  "waterTemperatureStatus": WaterTemperatureDetailsType
}

Fields

NameDescription

coefficientOfPerformance (Decimal)

The coefficient of performance (COP) of the heat pump.

energyInput (Energy!)

The field to show energy input.

energyOutput (Energy!)

The field to show energy output.

Example

{
  "coefficientOfPerformance": 1.0,
  "energyInput": Energy,
  "energyOutput": Energy
}

Fields

NameDescription

heatPumpId (ID)

isDeprecated (Boolean)

model (String)

powerInKw (Decimal)

Example

{
  "heatPumpId": "abc123",
  "model": "abc123",
  "powerInKw": 1.0,
  "isDeprecated": true
}

Fields

NameDescription

make (String)

models ([HeatPumpVariantModelsType])

Example

{
  "make": "abc123",
  "models": [HeatPumpVariantModelsType]
}

Fields

NameDescription

isHeld (Boolean)

Whether a statement is currently held.

reason (String)

Reason for statement being held.

Example

{
  "isHeld": true,
  "reason": "abc123"
}

ImageType

A media element containing an image.

Fields

NameDescription

accessibilityHidden (Boolean)

Whether the element is hidden from view.

accessibilityLabel (String)

Accessible description of the element.

horizontalAlignment (Alignment)

The horizontal alignment of the media.

id (ID)

Unique identifier of the object.

mediaUrl (String!)

The resource URL of the media.

typename (String)

The name of the object's type.

width (ItemSizeType)

The measurement of the element.

Example

{
  "width": FractionSizeType,
  "mediaUrl": "abc123",
  "horizontalAlignment": "START",
  "accessibilityHidden": true,
  "accessibilityLabel": "abc123",
  "id": "abc123",
  "typename": "abc123"
}

InitiateHostedStandalonePayment

Initiate a standalone payment and return the client secret required to complete it.

The possible errors that can be raised are:

  • KT-CT-1128: Unauthorized.
  • KT-CT-3822: Unauthorized.
  • KT-CT-3943: Invalid ledger.
  • KT-CT-3957: No collection method provided.
  • KT-CT-3958: Provide either ledger ID or ledger number.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

payment (InitiateHostedStandalonePaymentOutput)

The details required to refer to and complete a hosted payment.

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "payment": InitiateHostedStandalonePaymentOutput
}

InitiateHostedStandalonePaymentOutput

Tokens required to collect and retrieve a standalone payment.

Fields

NameDescription

retrievalToken (String!)

The retrieval token for this standalone payment.

url (String!)

The url for the customer to complete the payment.

Example

{
  "retrievalToken": "abc123",
  "url": "abc123"
}

InitiateProductSwitch

The possible errors that can be raised are:

  • KT-CT-1111: Unauthorized.
  • KT-CT-4619: Quote with given code not found.
  • KT-CT-4624: Unable to accept the given product code.
  • KT-CT-4626: No product selected for the given quote code.
  • KT-CT-4719: No supply point found for identifier provided.
  • KT-CT-4922: Unauthorized.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

possibleErrors ([PossibleErrorType])

productCode (String!)

The selected product for a specific product switch.

switchDate (Date!)

The date at which the product switch becomes effective.

Example

{
  "possibleErrors": [PossibleErrorType],
  "productCode": "abc123",
  "switchDate": "2020-01-01"
}

InitiateStandalonePayment

Initiate a standalone payment and return the client secret required to complete it.

The possible errors that can be raised are:

  • KT-CT-4177: Unauthorized.
  • KT-CT-3943: Invalid ledger.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

payment (InitiateStandalonePaymentOutput)

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "payment": InitiateStandalonePaymentOutput
}

InitiateStandalonePaymentOutput

Tokens required to collect and retrieve a standalone payment.

Fields

NameDescription

retrievalToken (String!)

The retrieval token for this standalone payment.

secretToken (String!)

The secret used to collect the payment.

Example

{
  "retrievalToken": "abc123",
  "secretToken": "abc123"
}

Fields

NameDescription

all ([InkContactChannelIdentity!]!)

All contacts for this conversation.

default (InkContactChannelIdentity)

The default contact for this conversation.


Fields

NameDescription

channel (InkCommunicationChannel!)

The channel of the contact.

displayName (String!)

The name to display to the user.

handle (String!)

The handle.

Example

{
  "channel": "EMAIL",
  "handle": "abc123",
  "displayName": "abc123"
}

Fields

NameDescription

accountUsers ([AccountUserType!])

The account users on the conversation.

buckets ([InkBucket!])

The buckets the conversation is currently in.

contactChannelIdentities (InkContactChannelIdentities!)

The contact channel identities associated with this conversation.

events (InkConversationEventsConnection!)

Conversation events.

id (ID!)

status (InkConversationStatus!)

The status of the conversation.

Example

{
  "id": "abc123",
  "status": "OPEN",
  "contactChannelIdentities": InkContactChannelIdentities,
  "accountUsers": [AccountUserType],
  "events": InkConversationEventsConnection,
  "buckets": [InkBucket]
}

Fields

NameDescription

edges ([InkConversationEventsEdge!]!)

Contains the nodes in this connection.

pageInfo (PageInfo!)

Pagination data for this connection.

Example

{
  "pageInfo": PageInfo,
  "edges": InkConversationEventsEdge
}

InkConversationEventsEdge

A Relay edge containing a InkConversationEvents and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (InkConversationEvent!)

The item at the end of the edge

Example

{
  "node": InkNewMessage,
  "cursor": "abc123"
}

InkEmail

This type wraps around the Message type for emails.

Fields

NameDescription

attachments ([InkMessageAttachment!]!)

Attachments on the message.

cc ([String!]!)

CC recipients on the message.

contactChannelIdentity (InkContactChannelIdentity!)

The contact channel identity.

delivery (InkMessageDelivery!)

The delivery status of the message.

direction (InkMessageDirection!)

The direction of the email.

displayContent (String!)

The content of the message.

fromHandle (String!)

From email address.

isChannelEmail (Boolean!)

Is this an message an email.

occurredAt (DateTime!)

The time the message was sent/received.

subject (String!)

The email subject.

tags ([InkTag!]!)

All Tags associated with a message.

toHandles ([String!])

The addresses that the message was sent to.

Example

{
  "direction": "INBOUND",
  "toHandles": ["abc123"],
  "fromHandle": "abc123",
  "delivery": InkMessageDelivery,
  "contactChannelIdentity": InkContactChannelIdentity,
  "occurredAt": "2020-01-01T00:00:00.000Z",
  "subject": "abc123",
  "displayContent": "abc123",
  "attachments": InkMessageAttachment,
  "cc": "abc123",
  "isChannelEmail": true,
  "tags": InkTag
}

InkGenericMessage

This message type is used for messages that belong to contact channels without a more granular message type.

Fields

NameDescription

contactChannelIdentity (InkContactChannelIdentity!)

The contact channel identity.

delivery (InkMessageDelivery!)

The delivery status.

direction (InkMessageDirection!)

The direction of the message.

displayContent (String!)

The content of the message.

fromHandle (String!)

The identity the message was sent from.

id (ID!)

The ID of the object

occurredAt (DateTime!)

The time the message was sent/received at.

toHandle (String!)

The identity the message was sent to.

Example

{
  "id": "abc123",
  "direction": "INBOUND",
  "fromHandle": "abc123",
  "toHandle": "abc123",
  "delivery": InkMessageDelivery,
  "contactChannelIdentity": InkContactChannelIdentity,
  "occurredAt": "2020-01-01T00:00:00.000Z",
  "displayContent": "abc123"
}

InkLine

This type wraps around the Message type for LINE message.

Fields

NameDescription

attachments ([InkMessageAttachment!]!)

Attachments on the LINE message.

contactChannelIdentity (InkContactChannelIdentity!)

The contact channel identity.

delivery (InkMessageDelivery!)

The delivery status of the message.

direction (InkMessageDirection!)

The direction of the message.

fromHandle (String!)

From LINE id.

isChannelLine (Boolean!)

Is this a LINE message.

lineMessage (LineMessage!)

The line message content.

occurredAt (DateTime!)

The time the message was sent/received.

tags ([InkTag!]!)

All Tags associated with a message.

toHandle (String!)

To LINE id.

Example

{
  "direction": "INBOUND",
  "fromHandle": "abc123",
  "toHandle": "abc123",
  "delivery": InkMessageDelivery,
  "contactChannelIdentity": InkContactChannelIdentity,
  "occurredAt": "2020-01-01T00:00:00.000Z",
  "lineMessage": LineTextMessage,
  "isChannelLine": true,
  "attachments": InkMessageAttachment,
  "tags": InkTag
}

Fields

NameDescription

fetchUrl (String)

The url for fetching the attachment.

filename (String!)

The filename.

sizeInBytes (Int)

The size in bytes.

Example

{
  "filename": "abc123",
  "fetchUrl": "abc123",
  "sizeInBytes": 1
}

Fields

NameDescription

status (InkMessageDeliveryStatus!)

Message delivery status.

Example

{
  "status": "PENDING"
}

InkNewMessage

This types is used for both the message-received and message-sent conversation events.

Fields

NameDescription

message (InkMessage!)

The message.

occurredAt (DateTime!)

The time the conversation event occurred.

Example

{
  "occurredAt": "2020-01-01T00:00:00.000Z",
  "message": InkEmail
}

InkPost

This type wraps around the Message type for Post.

Fields

NameDescription

contactChannelIdentity (InkContactChannelIdentity!)

The contact channel identity.

displayContent (String!)

The notes left when a message was uploaded.

fromHandle (String!)

The from property id.

isChannelPost (Boolean!)

Determine if the message is a post message.

rawPlainTextContent (String!)

The content of the message.

toHandle (String!)

The to property id.

Example

{
  "fromHandle": "abc123",
  "toHandle": "abc123",
  "displayContent": "abc123",
  "rawPlainTextContent": "abc123",
  "isChannelPost": true,
  "contactChannelIdentity": InkContactChannelIdentity
}

InkSMS

This type wraps around the Message type for SMS.

Fields

NameDescription

contactChannelIdentity (InkContactChannelIdentity!)

The contact channel identity.

delivery (InkMessageDelivery!)

The delivery status.

direction (InkMessageDirection!)

The direction of the message.

displayContent (String!)

The content of the message.

fromHandle (String!)

The phone number the message was sent from.

isChannelSms (Boolean!)

Is this an SMS message.

occurredAt (DateTime!)

The time the message was sent/received at.

tags ([InkTag!]!)

All Tags associated with a message.

toHandle (String!)

The phone number the message was sent to.

Example

{
  "direction": "INBOUND",
  "fromHandle": "abc123",
  "toHandle": "abc123",
  "delivery": InkMessageDelivery,
  "contactChannelIdentity": InkContactChannelIdentity,
  "occurredAt": "2020-01-01T00:00:00.000Z",
  "displayContent": "abc123",
  "isChannelSms": true,
  "tags": InkTag
}

InkWhatsApp

This type wraps around the Message type for WhatsApp message.

Fields

NameDescription

contactChannelIdentity (InkContactChannelIdentity!)

Whatsapp message contact channel identity.

delivery (InkMessageDelivery!)

Whatsapp message delivery status.

direction (InkMessageDirection!)

The direction of the message.

fromHandle (String!)

From WhatsApp phone number.

isChannelWhatsapp (Boolean!)

Whether or not the message is a whatsapp message.

occurredAt (DateTime!)

Date when the conversation event was created.

tags ([InkTag!]!)

All Tags associated with a message.

toHandle (String!)

Whatsapp contact phone number.

vendorId (String)

The vendor id.

whatsappContent (WhatsAppTextMessage!)

Whatsapp message content.

Example

{
  "direction": "INBOUND",
  "fromHandle": "abc123",
  "toHandle": "abc123",
  "delivery": InkMessageDelivery,
  "contactChannelIdentity": InkContactChannelIdentity,
  "occurredAt": "2020-01-01T00:00:00.000Z",
  "vendorId": "abc123",
  "whatsappContent": WhatsAppTextMessage,
  "isChannelWhatsapp": true,
  "tags": InkTag
}

Fields

NameDescription

declaredNetCapacity (Decimal!)

extensionReference (String!)

installedCapacity (Decimal!)

Example

{
  "declaredNetCapacity": 1.0,
  "extensionReference": "abc123",
  "installedCapacity": 1.0
}

Fields

NameDescription

fitId (String)

FIT ID of the installation.

inspectionAt (DateTime)

Meter inspection date

meters ([FitMeterType])

Details of any meters attached to the installation.

propertyAddress (PropertyAddressType)

Address of the property linked to the installation.

Example

{
  "fitId": "abc123",
  "inspectionAt": "2020-01-01T00:00:00.000Z",
  "meters": [FitMeterType],
  "propertyAddress": PropertyAddressType
}

IntervalCostOfUsageType

Usage and cost between two points in time.

Fields

NameDescription

cost (Int)

Cost per time interval.

endAt (DateTime)

Interval end datetime.

startAt (DateTime)

Interval start datetime.

usageKwh (Decimal)

Usage per time interval.

Example

{
  "startAt": "2020-01-01T00:00:00.000Z",
  "endAt": "2020-01-01T00:00:00.000Z",
  "cost": 1,
  "usageKwh": 1.0
}

Fields

NameDescription

accumulation (Decimal)

durationInSeconds (Int!)

endAt (DateTime!)

metaData (MeasurementsMetadataOutput)

This type will return more granular data about the measurement.

readAt (DateTime!)

source (String!)

startAt (DateTime!)

unit (String!)

value (Decimal!)

Example

{
  "source": "abc123",
  "metaData": MeasurementsMetadataOutput,
  "value": 1.0,
  "unit": "abc123",
  "readAt": "2020-01-01T00:00:00.000Z",
  "startAt": "2020-01-01T00:00:00.000Z",
  "endAt": "2020-01-01T00:00:00.000Z",
  "durationInSeconds": 1,
  "accumulation": 1.0
}

InvalidatePaymentInstruction

Invalidates a payment instruction.

The possible errors that can be raised are:

  • KT-CT-3926: Unauthorized.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

instruction (InvalidatePaymentInstructionOutput)

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "instruction": InvalidatePaymentInstructionOutput
}

InvalidatePaymentInstructionOutput

Output for invalidating an arbitrary payment instruction.

Fields

NameDescription

id (Int)

Example

{
  "id": 1
}

Fields

NameDescription

connectionStatus (ConnectionStatus)

Whether the inverter is currently connected (online/offline).

powerInKw (Decimal)

The current power of the inverter in kW.

Example

{
  "connectionStatus": "ONLINE",
  "powerInKw": 1.0
}

InvoiceBillingDocumentConnectionTypeConnection

An invoice is a bill that contains individual transactions (i.e. charges, credits, payments, and repayments). These may come from any period of time.

Fields

NameDescription

edgeCount (Int!)

Number of nodes in the edge.

edges ([InvoiceBillingDocumentConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo (PageInfo!)

Pagination data for this connection.

totalCount (Int!)

Total number of nodes.

Example

{
  "pageInfo": PageInfo,
  "edges": InvoiceBillingDocumentConnectionTypeEdge,
  "totalCount": 1,
  "edgeCount": 1
}

InvoiceBillingDocumentConnectionTypeEdge

A Relay edge containing a InvoiceBillingDocumentConnectionType and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (InvoiceBillingDocumentType)

The item at the end of the edge

Example

{
  "node": InvoiceBillingDocumentType,
  "cursor": "abc123"
}

InvoiceBillingDocumentType

An invoice is a bill that contains individual transactions (i.e. charges, credits, payments, and repayments). These may come from any period of time.

Fields

NameDescription

annulledBy (AnnulmentBillingDocumentType)

Billing document that annuls this invoice.

firstIssued (DateTime)

First time the invoice was issued.

id (Int)

number (String)

The unique billing document's reference that can be used for identifying it externally.

pdfUrl (String)

URL to the PDF of the Invoice.

Example

{
  "id": 1,
  "firstIssued": "2020-01-01T00:00:00.000Z",
  "pdfUrl": "abc123",
  "annulledBy": AnnulmentBillingDocumentType,
  "number": "abc123"
}

Fields

NameDescription

billType (BillTypeEnum)

fromDate (Date)

grossAmount (Int)

This field returns the total gross amount of the bill in pence.

id (ID)

issuedDate (Date)

The date the bill was sent to the customer.

temporaryUrl (String)

Requesting this field generates a temporary URL at which bill is available. This URL will expire after approximately an hour. It is intended for redirection purposes, NOT persistence in any form (e.g. inclusion in emails or the body of a web page). This field can raise an error with errorClass NOT_FOUND if the bill document has not been created/issued yet.

toDate (Date)

Example

{
  "id": "abc123",
  "billType": "STATEMENT",
  "fromDate": "2020-01-01",
  "toDate": "2020-01-01",
  "temporaryUrl": "abc123",
  "issuedDate": "2020-01-01",
  "grossAmount": 1
}

JoinConsumerDevice

The possible errors that can be raised are:

  • KT-GB-4053: Fuel type should not be specified for Alt HAN device.
  • KT-GB-4031: Error sending the request to join the device to the CHF.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

possibleErrors ([PossibleErrorType])

requestReference (String)

The reference of the join PPMID, IHD, CAD or Alt HAN request in Kraken.

Example

{
  "possibleErrors": [PossibleErrorType],
  "requestReference": "abc123"
}

JoinOctoplusCampaign

Sign an account up to Octoplus.

The possible errors that can be raised are:

  • KT-CT-4177: Unauthorized.
  • KT-GB-9310: Account ineligible for joining Octoplus.
  • KT-GB-9311: Error joining campaign.
  • KT-GB-9312: Account already signed up to Octoplus.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

outcome (EnrolmentOutcome)

Outcome of the Octoplus and Saving Sessions enrolment.

possibleErrors ([PossibleErrorType])

success (Boolean)

Returns mutation success. Deprecated, in favour of the outcome field.

Example

{
  "possibleErrors": [PossibleErrorType],
  "success": true,
  "outcome": EnrolmentOutcome
}

JoinSavingSessionsCampaign

The possible errors that can be raised are:

  • KT-CT-4177: Unauthorized.
  • KT-GB-5110: Campaign not found.
  • KT-GB-5111: Meter point not found.
  • KT-GB-5112: Error joining campaign.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

account (SavingSessionsAccountReturnType)

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "account": SavingSessionsAccountReturnType
}

JoinSavingSessionsEvent

The possible errors that can be raised are:

  • KT-CT-4177: Unauthorized.
  • KT-GB-5114: Saving Sessions event not found.
  • KT-GB-5116: Account is not part of a Saving Sessions campaign.
  • KT-GB-5117: Account ineligible to join Saving Sessions event.
  • KT-GB-5115: Error joining event.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

joinedEventCodes ([String])

The event codes that the account has joined.

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "joinedEventCodes": ["abc123"]
}

JoinSupplierProcessConnectionTypeEdge

A Relay edge containing a JoinSupplierProcessConnectionType and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (JoinSupplierProcessType)

The item at the end of the edge

Example

{
  "node": JoinSupplierProcessType,
  "cursor": "abc123"
}

Fields

NameDescription

chargePointMake (String)

chargePointModel (String)

chargePointPowerInKw (Decimal)

createdAt (DateTime)

hasToken (Boolean)

krakenflexDeviceId (String)

provider (ProviderChoices)

The third party that provides control over this device.

stateOfChargeLimit (StateOfChargeLimit)

Maximum state of charge (SoC) limit telemetry.

status (String)

suspended (Boolean)

testDispatchFailureReason (TestDispatchAssessmentFailureReason)

The reason for the most recent failed test dispatch (if any).

vehicleBatterySizeInKwh (Decimal)

vehicleMake (String)

vehicleModel (String)

Example

{
  "krakenflexDeviceId": "abc123",
  "provider": "DAIKIN",
  "vehicleMake": "abc123",
  "vehicleModel": "abc123",
  "vehicleBatterySizeInKwh": 1.0,
  "chargePointMake": "abc123",
  "chargePointModel": "abc123",
  "chargePointPowerInKw": 1.0,
  "status": "abc123",
  "suspended": true,
  "hasToken": true,
  "createdAt": "2020-01-01T00:00:00.000Z",
  "stateOfChargeLimit": StateOfChargeLimit,
  "testDispatchFailureReason": "NONE"
}

KrakenVersionType

Information about what version of Kraken is being executed by this service.

Fields

NameDescription

SHA (String)

The git commit SHA that is being executed.

number (String)

The version number that is being executed.

Example

{
  "number": "abc123",
  "SHA": "abc123"
}

LeavePropertyProcessConnectionTypeEdge

A Relay edge containing a LeavePropertyProcessConnectionType and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (LeavePropertyProcessType)

The item at the end of the edge

Example

{
  "node": LeavePropertyProcessType,
  "cursor": "abc123"
}

LeaveSupplierProcessConnectionTypeEdge

A Relay edge containing a LeaveSupplierProcessConnectionType and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (LeaveSupplierProcessType)

The item at the end of the edge

Example

{
  "node": LeaveSupplierProcessType,
  "cursor": "abc123"
}

LedgerType

Ledgers provide the foundation of Kraken’s bookkeeping functionality. Similar to a bank account, they allow us to keep track of financial activity on a particular Kraken account.

Fields

NameDescription

affectsAccountBalance (Boolean)

Whether this ledger's balance contributes to the account's balance.

amountOwedByCustomer (Int)

The amount owed from the customer perspective. A positive value implies the customer owes the business, while a negative amount implies the customer is in credit.

balance (Int)

The current balance on the ledger in minor units of currency.

id (ID)

invoices (InvoiceBillingDocumentConnectionTypeConnection)

An invoice is a bill that contains individual transactions (i.e. charges, credits, payments, and repayments). These may come from any period of time.

ledgerType (String)

The ledger type code.

name (String)

The display name of the ledger.

number (String)

The canonical name of the ledger.

paymentAdequacy (PaymentAdequacyDetailsType)

refundRequests (RefundRequestConnectionTypeConnection)

Refund requests for a given ledger.

repaymentRequests (RepaymentRequestConnectionTypeConnection)

Repayment requests for a given ledger.

statements (StatementBillingDocumentConnectionTypeConnection)

A statement is a billing document that contains all entries on a ledger during a period of time. A customer can understand how their ledger's balance has changed by looking at each statement in series.

transactions (TransactionConnectionTypeConnection)

Example

{
  "id": "abc123",
  "name": "abc123",
  "number": "abc123",
  "ledgerType": "abc123",
  "balance": 1,
  "amountOwedByCustomer": 1,
  "affectsAccountBalance": true,
  "statements": StatementBillingDocumentConnectionTypeConnection,
  "invoices": InvoiceBillingDocumentConnectionTypeConnection,
  "transactions": TransactionConnectionTypeConnection,
  "repaymentRequests": RepaymentRequestConnectionTypeConnection,
  "refundRequests": RefundRequestConnectionTypeConnection,
  "paymentAdequacy": PaymentAdequacyDetailsType
}

LifetimeTelemetry

A container for some basic metrics to show how the heating system has performed over its lifetime.

Note that "its lifetime" may not be the actual life of the heat pump, but may have been reset when it was last provisioned.

Fields

NameDescription

energyInput (Energy!)

The electrical energy drawn by the heat pump over its lifetime.

heatOutput (Energy!)

The heat energy emitted by the heat pump over its lifetime.

readAt (DateTime!)

When these measurements were taken.

seasonalCoefficientOfPerformance (Decimal)

The average lifetime coefficient of performance up to the time of measurement.

Example

{
  "readAt": "2020-01-01T00:00:00.000Z",
  "seasonalCoefficientOfPerformance": 1.0,
  "energyInput": Energy,
  "heatOutput": Energy
}

LineCommonError

A base error type. Should be used for general application or lower level errors.

Fields

NameDescription

field (String)

The field that for which this error should be associated

message (String!)

The error message to display to the user.

Example

{
  "message": "abc123",
  "field": "abc123"
}

LineEmoji

A LINE specific emoji object. refs: https://developers.line.biz/en/reference/messaging-api/#text-message

Fields

NameDescription

emojiId (String!)

The emoji id.

index (Int!)

The location of the emoji in the message.

length (Int)

The length of the emoji string placeholder.

productId (String!)

The product id.

Example

{
  "index": 1,
  "length": 1,
  "productId": "abc123",
  "emojiId": "abc123"
}

Fields

NameDescription

id (ID!)

Example

{
  "id": "abc123"
}

LineItemConnection

This field is a connection type. Connections are used to implement cursor based pagination.

Fields

NameDescription

edges ([LineItemEdge]!)

Contains the nodes in this connection.

pageInfo (PageInfo!)

Pagination data for this connection.

Example

{
  "pageInfo": PageInfo,
  "edges": LineItemEdge
}

LineItemEdge

A Relay edge containing a LineItem and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (LineItemType)

The item at the end of the edge

Example

{
  "node": LineItemType,
  "cursor": "abc123"
}

LineItemType

A record of spend on consumption between two points in time.

Fields

NameDescription

endAt (DateTime)

itemType (String)

netAmount (Decimal)

numberOfUnits (Decimal)

settlementUnit (String)

startAt (DateTime)

Example

{
  "startAt": "2020-01-01T00:00:00.000Z",
  "endAt": "2020-01-01T00:00:00.000Z",
  "netAmount": 1.0,
  "numberOfUnits": 1.0,
  "itemType": "abc123",
  "settlementUnit": "abc123"
}

LineLinkRedirectResponse

Link Successful. Complete link process with LINE.

Fields

NameDescription

redirectUrl (String!)

Example

{
  "redirectUrl": "abc123"
}

Fields

NameDescription

keywords ([String!]!)

Keywords describing the sticker.

packageId (String!)

Sticker package id.

resourceType (String!)

Sticker resource type.

stickerId (String!)

Sticker id.

text (String!)

Text used to customize some stickers.

Example

{
  "packageId": "abc123",
  "stickerId": "abc123",
  "resourceType": "abc123",
  "keywords": "abc123",
  "text": "abc123"
}

Fields

NameDescription

displayContent (String!)

The display content.

emojis ([LineEmoji!])

The emojis in the message.

Example

{
  "displayContent": "abc123",
  "emojis": [LineEmoji]
}

Fields

NameDescription

message (String!)

Example

{
  "message": "abc123"
}

LinkActionType

An action which navigates to any URL.

Fields

NameDescription

id (ID)

Unique identifier of the object.

typeName (String)

The name of the action object's type.

typename (String)

The name of the object's type.

url (String!)

The URL to navigate to.

Example

{
  "typeName": "abc123",
  "id": "abc123",
  "typename": "abc123",
  "url": "abc123"
}

LinkTokenNotFound

Returned when no LineAccountLink record matching the parameters exists.

Fields

NameDescription

type (LineLinkErrorType!)

The type of error that occurred.

Example

{
  "type": "NO_MATCHING_LINE_LINK"
}

Fields

NameDescription

currentBalance (Int)

How much balance we expect the account to have at this time of year.

estimatedConsumption ([ConsumptionBreakdown])

Breakdown of customer's usage per source and per month.

recommendedPayment (PaymentBreakdown)

The suggested monthly payment amount in pence following the payment adequacy review.

reviewedOn (Date)

The date that we used to calculate the review of the account.

targetBalance (Int)

How much balance we expect the account to have at this time of year.

Example

{
  "recommendedPayment": PaymentBreakdown,
  "currentBalance": 1,
  "targetBalance": 1,
  "estimatedConsumption": [ConsumptionBreakdown],
  "reviewedOn": "2020-01-01"
}

LiveTelemetry

A container for some basic metrics relevant to the current state of the heating system.

Fields

NameDescription

coefficientOfPerformance (Decimal)

The coefficient of performance at the time of measurement.

heatOutput (Power!)

The rate of heat flow from the heat pump at a given time.

outdoorTemperature (Temperature!)

The temperature outdoors.

powerInput (Power!)

The power being drawn by the heat pump at a given time.

readAt (DateTime!)

When these measurements were taken.

Example

{
  "readAt": "2020-01-01T00:00:00.000Z",
  "coefficientOfPerformance": 1.0,
  "powerInput": Power,
  "heatOutput": Power,
  "outdoorTemperature": Temperature
}

Fields

NameDescription

propertyId (ID!)

The property ID of the location.

Example

{
  "propertyId": "abc123"
}

LoyaltyPointLedgerEntryType

A Loyalty Point ledger entry.

Fields

NameDescription

accountNumber (String)

The account number associated with the entry.

balanceBroughtForward (String)

Equal to the balance_carried_forward from the previous ledger entry or zero if this is the first one.

balanceCarriedForward (String)

Equal to the balance_brought_forward plus or minus the value depending on the ledger_type.

id (ID!)

ledgerType (String)

The LedgerEntryType. Either CHARGE or CREDIT.

postedAt (DateTime)

The date the points were added to the ledger.

reasonCode (String)

The reason the entry was being added.

value (String)

The value of the charge or credit.

Example

{
  "id": "abc123",
  "ledgerType": "abc123",
  "value": "abc123",
  "balanceBroughtForward": "abc123",
  "balanceCarriedForward": "abc123",
  "reasonCode": "abc123",
  "postedAt": "2020-01-01T00:00:00.000Z",
  "accountNumber": "abc123"
}

Fields

NameDescription

mpxn (String!)

Identifier for meter point.

products ([EnergyProductType])

List of available products for the meter point.

Example

{
  "mpxn": "abc123",
  "products": [EnergyProductType]
}

Fields

NameDescription

errors ([ErrorType])

A list of any errors that occurred while running this mutation.

token (String)

A Kraken Token that can be used to authenticate to the API, masquerading as the desired user.

Example

{
  "token": "abc123",
  "errors": [ErrorType]
}

Fields

NameDescription

amount (Int)

The maximum amount available to be requested as a refund.

reasonToRecommendAmount (MaximumRefundReasonChoices)

The reason why a specific amount is the maximum available to be requested as a refund.

recommendedBalance (Int)

The recommended minimum balance an account should have when asking for a refund.

Example

{
  "amount": 1,
  "reasonToRecommendAmount": "MAX_AVAILABLE_AMOUNT",
  "recommendedBalance": 1
}

MeasurementConnection

Pagination for measurements.

Fields

NameDescription

edgeCount (Int!)

Number of nodes in the edge.

edges ([MeasurementEdge]!)

Contains the nodes in this connection.

pageInfo (PageInfo!)

Pagination data for this connection.

totalCount (Int!)

Total number of nodes.

Example

{
  "pageInfo": PageInfo,
  "edges": MeasurementEdge,
  "totalCount": 1,
  "edgeCount": 1
}

MeasurementEdge

A Relay edge containing a Measurement and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (MeasurementInterface)

The item at the end of the edge

Example

{
  "node": MeasurementInterface,
  "cursor": "abc123"
}

Fields

NameDescription

metaData (MeasurementsMetadataOutput)

This type will return more granular data about the measurement.

readAt (DateTime!)

source (String!)

unit (String!)

value (Decimal!)

Example

{
  "source": "abc123",
  "metaData": MeasurementsMetadataOutput,
  "value": 1.0,
  "unit": "abc123",
  "readAt": "2020-01-01T00:00:00.000Z"
}

Fields

NameDescription

statistics ([StatisticOutput])

Statistics relating to the parent measurement node.

typedSource (TypedSourceOutput)

The source information relating to the parent measurement node.

Deprecated

The 'typedSource' type is deprecated.


Please use 'utilityFilters' and the corresponding filter output instead.


- Marked as deprecated on 2024-06-17.
- Will be removed on 2026-01-30.

utilityFilters (UtilityFiltersOutput)

The source information relating to the parent measurement node.

Example

{
  "typedSource": TypedSourceOutput,
  "utilityFilters": ElectricityFiltersOutput,
  "statistics": [StatisticOutput]
}

Fields

NameDescription

key (String!)

The key for the metadata.

value (JSONString)

The metadata value.

Example

{
  "key": "abc123",
  "value": {"key": "value"}
}

NotifiableApplicationType

Represents an application that can receive push notifications.

Fields

NameDescription

bundleId (String!)

Bundle ID or package name of the app.

description (String!)

externalProjectId (String!)

Project ID used in push notification delivery service. (Currently: AWS Pinpoint)

externalProvider (NotifiableApplicationExternalProvider!)

id (ID!)

name (String!)

Human readable name for the app.

pushNotificationBindings ([PushNotificationBindingType!]!)

service (NotifiableApplicationService!)

Example

{
  "id": "abc123",
  "name": "abc123",
  "bundleId": "abc123",
  "service": "GCM",
  "externalProvider": "PINPOINT",
  "externalProjectId": "abc123",
  "description": "abc123",
  "pushNotificationBindings": PushNotificationBindingType
}

OCPPAuthentication

Open Charge Point Protocol (OCPP) authentication.

Take the given OCPP authentication details and trigger OCPP authentication.

The possible errors that can be raised are:

  • KT-CT-4301: Unable to find device for given account.
  • KT-CT-4310: Unable to register OCPP authentication details.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

krakenflexDevice (KrakenFlexDeviceType)

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "krakenflexDevice": KrakenFlexDeviceType
}

Fields

NameDescription

isConnected (Boolean)

Example

{
  "isConnected": true
}

Fields

NameDescription

url (String)

username (String)

Example

{
  "url": "abc123",
  "username": "abc123"
}

ObtainKrakenJSONWebToken

The unifying approach used to get a Kraken token (JWT: JSON Web Token) with different types of input.

The currently supported inputs are: - account user email/password combination - account user API key - organization live secret key - pre-signed key - refresh token

The possible errors that can be raised are:

  • KT-CT-1135: Invalid data.
  • KT-CT-1134: Invalid data.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

payload (GenericScalar!)

The body payload of the Kraken Token. The same information can be obtained by using JWT decoding tools on the value of the token field.

possibleErrors ([PossibleErrorType])

refreshExpiresIn (Int)

A Unix timestamp representing the point in time at which the refresh token will expire.

refreshToken (String)

A token that can be used in a subsequent call to obtainKrakenToken to get a new Kraken Token with the same access conditions after the previous one has expired.

token (String!)

The Kraken Token. Can be used in the Authorization header for subsequent calls to the API to access protected resources.

Example

{
  "possibleErrors": [PossibleErrorType],
  "token": "abc123",
  "payload": "abc123" | 1 | 1.0 | true | ["abc123"] | AccountType,
  "refreshToken": "abc123",
  "refreshExpiresIn": 1
}

OccupancyPeriodType

An occupancy period for a property.

Fields

NameDescription

effectiveFrom (DateTime)

Date the occupancy period is effective from.

effectiveTo (DateTime)

Date the occupancy period is effective to.

id (ID)

isOccupier (Boolean)

Whether the account associated with the occupancy period is an occupier account type.

Example

{
  "id": "abc123",
  "effectiveFrom": "2020-01-01T00:00:00.000Z",
  "effectiveTo": "2020-01-01T00:00:00.000Z",
  "isOccupier": true
}

Fields

NameDescription

account (String!)

address (String!)

date (String!)

occupyToken (String!)

A Kraken Token that can be used to call the 'occupy' mutation for the account.

propertyId (Int!)

Example

{
  "account": "abc123",
  "address": "abc123",
  "date": "abc123",
  "propertyId": 1,
  "occupyToken": "abc123"
}

Fields

NameDescription

account (AccountInterface)

Example

{
  "account": AccountInterface
}

OccupyPropertyProcessConnectionTypeEdge

A Relay edge containing a OccupyPropertyProcessConnectionType and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (OccupyPropertyProcessType)

The item at the end of the edge

Example

{
  "node": OccupyPropertyProcessType,
  "cursor": "abc123"
}

Fields

NameDescription

createdAt (DateTime)

The datetime the event happened.

pointsAddedToWallet (Int)

The amount of OctoPoints added to an account's wallet (this can be negative).

reason (EventReasonChoices)

The reason the event happened.

Example

{
  "createdAt": "2020-01-01T00:00:00.000Z",
  "reason": "SAVING_SESSIONS_REWARD",
  "pointsAddedToWallet": 1
}

Fields

NameDescription

currentPointsInWallet (Int)

The current number of OctoPoints in an account's OctoPoints wallet.

events ([OctoPointsAccountEventType])

The events for an account's OctoPoints wallet.

Example

{
  "currentPointsInWallet": 1,
  "events": [OctoPointsAccountEventType]
}

Fields

NameDescription

account (OctoPointsAccountType)

Info related to a specific account's wallet.

Example

{
  "account": OctoPointsAccountType
}

Fields

NameDescription

chfDeviceId (String!)

The Device ID of the communication hub associated with the property of the Cared-For account, which must also have an Octopus Mini device installed.

propertyAddressLine1 (String!)

The first line of the address of the property associated with the Cared-For account.

propertyId (ID!)

The ID of the property the Mini will be onboarded in.

Example

{
  "chfDeviceId": "abc123",
  "propertyAddressLine1": "abc123",
  "propertyId": "abc123"
}

Fields

NameDescription

meterDeviceId (String!)

The Device ID of the smart meter associated with the property of the Cared-For account, which must also have an Octopus Mini device installed.

propertyAddressLine1 (String!)

The first line of the address of the property associated with the Cared-For account.

Example

{
  "meterDeviceId": "abc123",
  "propertyAddressLine1": "abc123"
}

Fields

NameDescription

isLoyaltyPointsUser (Boolean)

Describes whether or not the request user is the nominated user for this account.

isOctoplusEnrolled (Boolean)

Describes whether or not this account is enrolled in the Octoplus campaign.

octoplusEligibility (OctoplusEligibilityType)

Information about an account's eligibility for joining the Octoplus campaign.

octoplusSnapWebUrl (OctoplusSnapWebUrlType)

URL for the octoplus snap page if account is eligible.

Example

{
  "isOctoplusEnrolled": true,
  "isLoyaltyPointsUser": true,
  "octoplusEligibility": OctoplusEligibilityType,
  "octoplusSnapWebUrl": OctoplusSnapWebUrlType
}

Fields

NameDescription

ineligibilityReason (IneligibilityReasons)

Describes why an account is ineligible for Octoplus. Will be null if the account is eligible.

Deprecated

The 'ineligibilityReason' field is deprecated.

Please use ineligibility_reasons instead.

- Marked as deprecated on 2023-10-10.
- Will be removed on 2024-01-01.

ineligibilityReasons ([IneligibilityReasons])

Returns multiple reasons for why an account is ineligible for Octoplus. Will be empty if the account is eligible.

isEligible (Boolean)

Describes whether or not this account is eligible to join the Octoplus campaign.

Example

{
  "isEligible": true,
  "ineligibilityReason": "OCTOPLUS_DISABLED",
  "ineligibilityReasons": "OCTOPLUS_DISABLED"
}

Fields

NameDescription

hasEnrolled (Boolean)

Whether or not this account has been enrolled in the Octoplus campaign.

Example

{
  "hasEnrolled": true
}

Fields

NameDescription

shouldClientDisplayOctoplus (Boolean)

Describes whether or not the Octoplus campaign should be shown in clients.

shouldClientDisplayOctoplusPartnerOfferList (Boolean)

Describes whether or not Octoplus partner offer list should be shown in clients.

shouldClientDisplayOctoplusPartnerOffers (Boolean)

Describes whether or not Octoplus partner offers should be shown in clients.

shouldClientDisplayOctoplusRelatedOffers (Boolean)

Describes whether or not Octoplus related offers should be shown in clients.

shouldClientDisplayOctoplusRewards (Boolean)

Describes whether or not Octoplus rewards should be shown in clients.

shouldClientDisplayOctoplusShoptopusOffers (Boolean)

Describes whether or not Octoplus Shoptopus offers should be shown in clients.

shouldClientDisplayOctopointsV2 (Boolean)

Describes whether or not the new Octopoints system should be shown in clients.

shouldClientDisplayPartnerRewards (Boolean)

Describes whether or not partner rewards should be shown in clients.

shouldClientDisplayRewards (Boolean)

Describes whether or not rewards should be shown in clients.

Example

{
  "shouldClientDisplayOctopointsV2": true,
  "shouldClientDisplayOctoplus": true,
  "shouldClientDisplayRewards": true,
  "shouldClientDisplayOctoplusRewards": true,
  "shouldClientDisplayPartnerRewards": true,
  "shouldClientDisplayOctoplusPartnerOffers": true,
  "shouldClientDisplayOctoplusShoptopusOffers": true,
  "shouldClientDisplayOctoplusRelatedOffers": true,
  "shouldClientDisplayOctoplusPartnerOfferList": true
}

Fields

NameDescription

answer (String)

The FAQ answer field.

question (String)

The FAQ question field.

Example

{
  "question": "abc123",
  "answer": "abc123"
}

Fields

NameDescription

edgeCount (Int!)

Number of nodes in the edge.

edges ([OctoplusOfferGroupConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo (PageInfo!)

Pagination data for this connection.

totalCount (Int!)

Total number of nodes.

Example

{
  "pageInfo": PageInfo,
  "edges": OctoplusOfferGroupConnectionTypeEdge,
  "totalCount": 1,
  "edgeCount": 1
}

OctoplusOfferGroupConnectionTypeEdge

A Relay edge containing a OctoplusOfferGroupConnectionType and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (OctoplusOfferGroupType)

The item at the end of the edge

Example

{
  "node": OctoplusOfferGroupType,
  "cursor": "abc123"
}

Fields

NameDescription

bannerMobile (String)

The mobile banner url.

Example

{
  "bannerMobile": "abc123"
}

Fields

NameDescription

id (Int!)

Unique identifier of the Offer Group.

imageUrls (OctoplusOfferGroupImageUrlsType)

The image urls for this offer.

name (String)

The name describing offer group.

octoplusOffers ([OctoplusOfferType!]!)

Example

{
  "id": 1,
  "name": "abc123",
  "imageUrls": OctoplusOfferGroupImageUrlsType,
  "octoplusOffers": OctoplusOfferType
}

Fields

NameDescription

banner (String)

The banner image url.

bannerMobile (String)

The mobile banner url.

logo (String)

The logo url.

logoMobile (String)

The mobile logo url.

Deprecated

The 'logo_mobile' field is deprecated.

Please use logo instead

- Marked as deprecated on 2023-12-20.
- Will be removed on 2024-01-10.

Example

{
  "banner": "abc123",
  "bannerMobile": "abc123",
  "logo": "abc123",
  "logoMobile": "abc123"
}

Fields

NameDescription

availableSitesUrl (String)

The available sites url for this offer.

category (String)

The category of the offer.

claimAbility (OctoplusRewardClaimAbilityType)

Describes whether the user should be able to claim this offer, and the reason if not.

claimBy (DateTime)

The datetime at which the user should no longer be able to claim this offer.

description (String)

The short description of the offer.

faqs ([OctoplusOfferFAQsType])

The faqs for this offer.

imageUrls (OctoplusOfferImageUrlsType)

The image urls for this offer.

longDescription (String)

The long description of the offer.

name (String)

The name of the offer to be displayed to the user.

partnerName (String)

The name of the reward partner.

partnerSiteUrl (String)

The partner site url for this offer.

pointsCost (Int)

The points cost of claiming this offer.

priceTag (String)

The price tag for this offer.

slug (String)

The slug to be used as the offer identifier.

termsAndConditions (String)

The terms and conditions to display to the user.

usageInstructions (String)

The instructions for the user as to how to use their claimed reward.

Example

{
  "slug": "abc123",
  "name": "abc123",
  "description": "abc123",
  "longDescription": "abc123",
  "partnerName": "abc123",
  "priceTag": "abc123",
  "pointsCost": 1,
  "availableSitesUrl": "abc123",
  "partnerSiteUrl": "abc123",
  "imageUrls": OctoplusOfferImageUrlsType,
  "termsAndConditions": "abc123",
  "faqs": [OctoplusOfferFAQsType],
  "usageInstructions": "abc123",
  "category": "abc123",
  "claimAbility": OctoplusRewardClaimAbilityType,
  "claimBy": "2020-01-01T00:00:00.000Z"
}

Fields

NameDescription

canClaimOffer (Boolean)

Describes whether the user should be able to claim this offer.

cannotClaimReason (CannotClaimReason)

Describes why a user cannot claim this offer.

Example

{
  "canClaimOffer": true,
  "cannotClaimReason": "OUT_OF_STOCK"
}

Fields

NameDescription

accountNumber (String)

The account number associated with this reward.

claimedAt (DateTime)

The datetime at which the reward was initially claimed.

id (Int)

The unique id of the reward.

offer (OctoplusOfferType)

The offer claimed as part of this reward.

offerName (String)

The display name of the offer.

Deprecated

The 'offer_name' field is deprecated.

Please use 'offer.name' instead

- Marked as deprecated on 2023-12-21.
- Will be removed on 2024-02-10.

offerSlug (String)

The human-readable identifier for the offer.

Deprecated

The 'offer_slug' field is deprecated.

Please use 'offer.slug' instead

- Marked as deprecated on 2023-12-21.
- Will be removed on 2024-02-10.

partnerName (String)

The name of the reward partner.

Deprecated

The 'partner_name' field is deprecated.

Please use 'offer.partner_name' instead

- Marked as deprecated on 2023-12-21.
- Will be removed on 2024-02-10.

priceTag (String)

The price tag for the offer.

Deprecated

The 'price_tag' field is deprecated.

Please use 'offer.price_tag' instead

- Marked as deprecated on 2023-12-21.
- Will be removed on 2024-02-10.

status (OctoplusRewardStatus)

The current status of the reward.

usageInstructions (String)

The instructions for how to use the reward.

Deprecated

The 'usage_instructions' field is deprecated.

Please use 'offer.usage_instructions' instead

- Marked as deprecated on 2023-12-21.
- Will be removed on 2024-02-10.

vouchers ([VoucherType])

The voucher associated with this reward.

Example

{
  "id": 1,
  "accountNumber": "abc123",
  "offer": OctoplusOfferType,
  "offerSlug": "abc123",
  "offerName": "abc123",
  "priceTag": "abc123",
  "partnerName": "abc123",
  "usageInstructions": "abc123",
  "vouchers": OctoplusVoucherType,
  "claimedAt": "2020-01-01T00:00:00.000Z",
  "status": "PENDING"
}

Fields

NameDescription

domain (String!)

Domain for the snap web url, ex. 'octopus.energy'

path (String!)

Path for the snap web url, ex. 'snap/webview'

url (String!)

URL for the octoplus snap page if account is eligible. Eg. 'https://octopus.energy/snap/webview?abcd=efg'.

Example

{
  "url": "abc123",
  "domain": "abc123",
  "path": "abc123"
}

Fields

NameDescription

barcode (String)

The barcode value/code.

barcodeFormat (String)

The type of barcode to render.

barcodeValue (String)

The value to be encoded in the rendered barcode.

code (String)

The voucher code.

expiresAt (DateTime)

The datetime at which the voucher will no longer be useable.

type (String)

The type of voucher.

Example

{
  "code": "abc123",
  "type": "abc123",
  "barcode": "abc123",
  "barcodeValue": "abc123",
  "barcodeFormat": "abc123",
  "expiresAt": "2020-01-01T00:00:00.000Z"
}

Fields

NameDescription

id (Int)

isAcceptingCalls (Boolean)

isOffline (Boolean)

teamName (String)

Example

{
  "id": 1,
  "teamName": "abc123",
  "isOffline": true,
  "isAcceptingCalls": true
}

OrderBlanket

The possible errors that can be raised are:

  • KT-GB-6013: Account is not eligible to order a blanket.
  • KT-GB-6014: An error occurred placing the order.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

possibleErrors ([PossibleErrorType])

success (Boolean)

Whether the blanket order was placed successfully.

Example

{
  "possibleErrors": [PossibleErrorType],
  "success": true
}

PageInfo

The Relay compliant PageInfo type, containing data necessary to paginate this connection.

Fields

NameDescription

endCursor (String)

When paginating forwards, the cursor to continue.

hasNextPage (Boolean!)

When paginating forwards, are there more items?

hasPreviousPage (Boolean!)

When paginating backwards, are there more items?

startCursor (String)

When paginating backwards, the cursor to continue.

Example

{
  "hasNextPage": true,
  "hasPreviousPage": true,
  "startCursor": "abc123",
  "endCursor": "abc123"
}

Payment

A payment from the customer to the energy supplier.

Fields

NameDescription

accountNumber (String)

Unique identifier of the account the transaction belongs to.

amount (Int)

Gross amount including tax (when payable). Refer to the amounts field for a breakdown of this information.

Deprecated

The 'amount' field is deprecated.

Use `amounts` instead for a breakdown of the relevant net, tax, and gross amounts.

- Marked as deprecated on 2023-12-06.
- Will be removed on 2024-06-01.

amounts (TransactionAmountType)

The net, tax and gross amounts for the transaction. Note: for payments and repayments, only the net amount is returned.

balanceCarriedForward (Int)

The customer's resulting balance after this transaction has been applied, in the smallest unit of currency.

billingDocumentIdentifier (ID)

The unique identifier for the most recent billing document linked with the transaction.Note: a transaction may be linked with multiple documents, but this field will only return the identifier for the most recent billing document.

createdAt (DateTime)

The date time when the transaction is created.

hasStatement (Boolean)

Returns True if the transaction is linked with a statement.

id (ID)

isAccountCharge (Boolean)

Deprecated.

Deprecated

The 'isAccountCharge' field is deprecated.

This information is provided by the __typename introspection query.

- Marked as deprecated on 2020-06-19.
- Will be removed on 2022-11-15.

isAccountPayment (Boolean)

Deprecated.

Deprecated

The 'isAccountPayment' field is deprecated.

This information is provided by the __typename introspection query.

- Marked as deprecated on 2020-06-19.
- Will be removed on 2022-11-15.

isCredit (Boolean)

Deprecated.

Deprecated

The 'isCredit' field is deprecated.

This information is provided by the __typename introspection query.

- Marked as deprecated on 2020-06-19.
- Will be removed on 2022-11-15.

isHeld (Boolean)

Whether the statement this transaction is on has been held. A held statement is not sent to a customer automatically, but is instead marked for manual attention by operations staff. Returns False if a statement is not linked with the transaction.

isIssued (Boolean)

Whether this transaction has been issued on any billing document.Note: Look for the most recently issued transaction instead of looking through all transactions as some accounts may have initial transactions that were not issued.This will return False if the transaction is not associated with any billing documents.

isReversed (Boolean!)

note (String)

Returns the note field value for the transaction, which contains additional info.

postedDate (Date)

statementId (ID)

Returns None if a statement is not linked with the transaction.

Deprecated

The 'statementId' field is deprecated.

Use `billingDocumentIdentifier` instead.

- Marked as deprecated on 2023-11-30.
- Will be removed on 2024-06-01.

title (String)

Example

{
  "id": "abc123",
  "postedDate": "2020-01-01",
  "createdAt": "2020-01-01T00:00:00.000Z",
  "accountNumber": "abc123",
  "amount": 1,
  "amounts": TransactionAmountType,
  "balanceCarriedForward": 1,
  "isCredit": true,
  "isAccountCharge": true,
  "isAccountPayment": true,
  "isHeld": true,
  "isIssued": true,
  "title": "abc123",
  "billingDocumentIdentifier": "abc123",
  "statementId": "abc123",
  "isReversed": true,
  "hasStatement": true,
  "note": "abc123"
}

PaymentAdequacyDetailsType

Payment adequacy adjusts fixed payment schedules to maintain a healthy ledger balance over a year.

Fields

NameDescription

isCurrentlyExempt (Boolean)

This ledger will be exempt from default Payment Adequacy. This may mean that it is completely exempt, or handled with special rules.

Example

{
  "isCurrentlyExempt": true
}

Fields

NameDescription

suggestedDirectDebitAmount (Int)

The suggested monthly payment amount in pence following the payment adequacy review.

Example

{
  "suggestedDirectDebitAmount": 1
}

Fields

NameDescription

adjustment (Int)

Temporary amount to cover debt.

ongoing (Int)

Amount which covers ongoing usage.

total (Int)

Total to pay: ongoing + adjustment.

Example

{
  "total": 1,
  "ongoing": 1,
  "adjustment": 1
}

Fields

NameDescription

edgeCount (Int!)

Number of nodes in the edge.

edges ([PaymentForecastConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo (PageInfo!)

Pagination data for this connection.

totalCount (Int!)

Total number of nodes.

Example

{
  "pageInfo": PageInfo,
  "edges": PaymentForecastConnectionTypeEdge,
  "totalCount": 1,
  "edgeCount": 1
}

PaymentForecastConnectionTypeEdge

A Relay edge containing a PaymentForecastConnectionType and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (PaymentForecastType)

The item at the end of the edge

Example

{
  "node": PaymentForecastType,
  "cursor": "abc123"
}

Fields

NameDescription

amount (Int)

date (Date)

method (ScheduleType)

The payment method used for the forecasted payment.

paymentNumber (Int)

Example

{
  "paymentNumber": 1,
  "date": "2020-01-01",
  "amount": 1,
  "method": "BACS_TRANSFER"
}

PaymentInstructionType

Payment Instructions

Fields

NameDescription

accountHolder (String!)

accountType (String)

bankCode (String)

cardExpiryMonth (Int)

cardExpiryYear (Int)

cardNumber (String!)

cardPaymentNetwork (String)

cardType (String)

iban (String!)

id (ID!)

instructionType (String!)

maskedAccountIdentifier (String)

A masked reference to a recurring payment method.

sortCode (String!)

status (String!)

validFrom (DateTime!)

vendor (String!)

The provider to use for this DDI. Most accounts would have SmartDebit as their provider, Iresa customers use GoCardless

Example

{
  "id": "abc123",
  "status": "abc123",
  "sortCode": "abc123",
  "iban": "abc123",
  "accountHolder": "abc123",
  "instructionType": "abc123",
  "cardPaymentNetwork": "abc123",
  "cardExpiryMonth": 1,
  "cardExpiryYear": 1,
  "bankCode": "abc123",
  "accountType": "abc123",
  "validFrom": "2020-01-01T00:00:00.000Z",
  "vendor": "abc123",
  "cardNumber": "abc123",
  "cardType": "abc123",
  "maskedAccountIdentifier": "abc123"
}

Fields

NameDescription

edgeCount (Int!)

Number of nodes in the edge.

edges ([PaymentScheduleConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo (PageInfo!)

Pagination data for this connection.

totalCount (Int!)

Total number of nodes.

Example

{
  "pageInfo": PageInfo,
  "edges": PaymentScheduleConnectionTypeEdge,
  "totalCount": 1,
  "edgeCount": 1
}

PaymentScheduleConnectionTypeEdge

A Relay edge containing a PaymentScheduleConnectionType and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (PaymentScheduleType)

The item at the end of the edge

Example

{
  "node": PaymentScheduleType,
  "cursor": "abc123"
}

PaymentScheduleType

An object that represents when we have agreed to take payments from a payment instruction.

Fields

NameDescription

id (ID!)

isPaymentHoliday (Boolean)

isVariablePaymentAmount (Boolean!)

paymentAdequacyAdjustment (Int)

paymentAdequacyAdjustmentExpiryDate (Date)

paymentAmount (Int!)

paymentDay (Int)

paymentFrequency (PaymentFrequencyOptions)

The frequency of the payment schedule

paymentFrequencyMultiplier (Int!)

paymentHolidayReason (String!)

reason (PaymentScheduleReasonOptions)

The reason the payment schedule was created.

scheduleType (ScheduleType)

The method of payment for the schedule.

supplementaryLedger (SupplementaryLedgerType)

The supplementary ledger for this payment schedule, if it is on one

totalDebtAmount (Int)

The sum of the payment adequacy contributions on the payment schedule that are expected to be taken before the debt repayment is complete.

validFrom (Date!)

validTo (Date)

Example

{
  "id": "abc123",
  "supplementaryLedger": SupplementaryLedgerType,
  "validFrom": "2020-01-01",
  "validTo": "2020-01-01",
  "reason": "GENERAL_ACCOUNT_PAYMENT",
  "paymentHolidayReason": "abc123",
  "paymentDay": 1,
  "paymentFrequency": "Weekly",
  "paymentFrequencyMultiplier": 1,
  "paymentAmount": 1,
  "paymentAdequacyAdjustment": 1,
  "paymentAdequacyAdjustmentExpiryDate": "2020-01-01",
  "isVariablePaymentAmount": true,
  "totalDebtAmount": 1,
  "isPaymentHoliday": true,
  "scheduleType": "BACS_TRANSFER"
}

PerformBoostCharge

Initiate a boost charge for an electric vehicle (EV).

This will start charging the EV and will not stop until the battery reaches 100% charged.

If it is not possible to initiate a boost charge, a KT-CT-4357 error will be returned. It may have a boostChargeRefusalReasons extension which lists the reasons why the boost charge was refused. Possible reasons include:

  • BC_DEVICE_NOT_YET_LIVE (device is not yet live)
  • BC_DEVICE_RETIRED (device is retired)
  • BC_DEVICE_SUSPENDED (device is suspended)
  • BC_DEVICE_DISCONNECTED (device is disconnected)
  • BC_DEVICE_NOT_AT_HOME (device is not at home)
  • BC_BOOST_CHARGE_IN_PROGRESS (boost charge already in progress)

The possible errors that can be raised are:

  • KT-CT-4356: A boost charge cannot currently be performed.
  • KT-CT-4357: Unable to trigger boost charge.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

krakenflexDevice (KrakenFlexDeviceType)

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "krakenflexDevice": KrakenFlexDeviceType
}

PerformMoveOut

The possible errors that can be raised are:

  • KT-GB-6624: An error occurred when trying to process this house move.
  • KT-GB-6625: An error occurred when trying to process this house move.
  • KT-GB-6626: There was an error processing the PSR data.
  • KT-GB-6627: There are missing agent appointments.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

account (AccountInterface)

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "account": AccountInterface
}

PerformTestCharge

Initiate a test charge of an electric vehicle (EV).

This is to ensure that the EV or EVSE (charge point) can be controlled remotely and successfully charged for a short period.

If it is not possible to initiate a test charge, a KT-CT-4355 error will be returned. It may have a testChargeRefusalReasons extension which lists the reasons why the test charge was refused. Possible reasons include:

  • TC_DEVICE_LIVE (device is already live)
  • TC_DEVICE_ONBOARDING_IN_PROGRESS (test dispatch already in progress)
  • TC_DEVICE_RETIRED (device is retired)
  • TC_DEVICE_SUSPENDED (device is suspended)
  • TC_DEVICE_DISCONNECTED (device is disconnected)
  • TC_DEVICE_AWAY_FROM_HOME (device is away from home)
  • TC_DEVICE_NO_LOCATION_CONFIGURED (device has no location configured)
  • TC_DEVICE_LOCATION_UNABLE_TO_IDENTIFY (unable to identify device location)
  • TC_DEVICE_LOCATION_MISSING (device location is missing)

The possible errors that can be raised are:

  • KT-CT-4301: Unable to find device for given account.
  • KT-CT-4355: Unable to trigger charge.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

krakenflexDevice (KrakenFlexDeviceType)

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "krakenflexDevice": KrakenFlexDeviceType
}

Fields

NameDescription

billType (BillTypeEnum)

fromDate (Date)

id (ID)

identifier (ID)

The unique identifier for the billing document. Note: a pending billing document will not have an identifier yet; and not all finalized billing documents will have an identifier assigned to them, in which case this will be null.

issuedDate (Date)

The date the bill was sent to the customer.

temporaryUrl (String)

Requesting this field generates a temporary URL at which bill is available. This URL will expire after approximately an hour. It is intended for redirection purposes, NOT persistence in any form (e.g. inclusion in emails or the body of a web page). This field can raise an error with errorClass NOT_FOUND if the bill document has not been created/issued yet.

toDate (Date)

totalCharges (StatementTotalType)

The total amounts for all charges on the billing document.

totalCredits (StatementTotalType)

The total amounts for all credits on the statement.

Example

{
  "id": "abc123",
  "billType": "STATEMENT",
  "fromDate": "2020-01-01",
  "toDate": "2020-01-01",
  "temporaryUrl": "abc123",
  "issuedDate": "2020-01-01",
  "identifier": "abc123",
  "totalCharges": StatementTotalType,
  "totalCredits": StatementTotalType
}

Fields

NameDescription

buttonAction (ActionType!)

The action to perform when the button is pressed.

buttonStyle (ButtonStyle)

The button style.

id (ID)

Unique identifier of the object.

title (String!)

Title text of the button.

typename (String)

The name of the object's type.

Example

{
  "buttonStyle": "PRIMARY",
  "title": "abc123",
  "buttonAction": DeeplinkActionType,
  "id": "abc123",
  "typename": "abc123"
}

Fields

NameDescription

isBlocked (Boolean)

Whether the viewer has been blocked due to spending all its allowed points.

limit (Int)

The maximum number of points the viewer gets for requests per hour.

remainingPoints (Int)

The remaining points for the viewer in one hour time limit.

ttl (Int)

Time To Live: UNIX timestamp when the viewer will get a new allowance of points.

usedPoints (Int)

The points used so far in one hour time limit.

Example

{
  "limit": 1,
  "remainingPoints": 1,
  "usedPoints": 1,
  "ttl": 1,
  "isBlocked": true
}

PointsSizeType

A measurement in points.

Fields

NameDescription

id (ID)

Unique identifier of the object.

points (Int!)

The points value.

typename (String)

The name of the object's type.

Example

{
  "id": "abc123",
  "typename": "abc123",
  "points": 1
}

PortfolioConnectionTypeEdge

A Relay edge containing a PortfolioConnectionType and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (PortfolioType)

The item at the end of the edge

Example

{
  "node": PortfolioType,
  "cursor": "abc123"
}

Fields

NameDescription

billingName (String)

collectiveBilling (Boolean!)

createdAt (DateTime!)

id (ID!)

number (String!)

operationsTeam (OperationsTeamType)

Operations team for this portfolio.

updatedAt (DateTime!)

Example

{
  "id": "abc123",
  "number": "abc123",
  "createdAt": "2020-01-01T00:00:00.000Z",
  "updatedAt": "2020-01-01T00:00:00.000Z",
  "billingName": "abc123",
  "collectiveBilling": true,
  "operationsTeam": OperationsTeamType
}

PortfolioUserRoleType

The role a user has in association with one portfolio.

Fields

NameDescription

id (ID!)

portfolio (PortfolioType!)

Portfolio object.

role (PortfolioUserRoleEnum)

The portfolio role.

user (AccountUserType!)

Example

{
  "id": "abc123",
  "user": AccountUserType,
  "role": "TRACED",
  "portfolio": PortfolioType
}

PossibleErrorType

The GraphQL error type for displaying information about GraphQL errors that might be raised from the API.

Fields

NameDescription

code (String)

The error code that might be returned from the query/mutation.

description (String)

The error description that might be returned from the query/mutation.

message (String)

The error message that might be returned from the query/mutation.

type (String)

The error type that might be returned from the query/mutation.

Example

{
  "message": "abc123",
  "code": "abc123",
  "type": "abc123",
  "description": "abc123"
}

Power

Describes the power (not energy) being consumed (as electricity) or returned (as heat) by the system at a given point in time.

Differs from Energy in that it describes the rate at which energy is being transferred at a given point in time.

Fields

NameDescription

unit (PowerUnit!)

The units in which the power is being measured.

value (Decimal)

The amount of power (not energy) transmitted to or from the heat pump.

Example

{
  "value": 1.0,
  "unit": "KILOWATT"
}

Fields

NameDescription

billType (BillTypeEnum)

fromDate (Date)

id (ID)

issuedDate (Date)

The date the bill was sent to the customer.

params (JSONString)

The params associated with the historical bill.

temporaryUrl (String)

Requesting this field generates a temporary URL at which bill is available. This URL will expire after approximately an hour. It is intended for redirection purposes, NOT persistence in any form (e.g. inclusion in emails or the body of a web page). This field can raise an error with errorClass NOT_FOUND if the bill document has not been created/issued yet.

toDate (Date)

Example

{
  "id": "abc123",
  "billType": "STATEMENT",
  "fromDate": "2020-01-01",
  "toDate": "2020-01-01",
  "temporaryUrl": "abc123",
  "issuedDate": "2020-01-01",
  "params": {"key": "value"}
}

PrepayBalanceSnapshotType

A snapshot of a prepay meter's credit and debt balance at a given point in time.

Fields

NameDescription

asAt (DateTime!)

creditInPence (Int!)

debtInPence (Int!)

emergencyCreditInPence (Int)

Example

{
  "creditInPence": 1,
  "debtInPence": 1,
  "emergencyCreditInPence": 1,
  "asAt": "2020-01-01T00:00:00.000Z"
}

Fields

NameDescription

createdDate (Date!)

id (ID!)

netAmount (BigInt!)

smartPrepayProcessStatus (SmartPrepayProcessStatusChoices)

smartPrepayStatus (SmartPrepayPaymentStatusChoices)

Deprecated

The 'smartPrepayStatus' field is deprecated.


Please use the 'smartPrepayProcessStatus' type instead for a more granular status.


- Marked as deprecated on 2023-09-05.
- Will be removed on 2024-01-01.

utrn (String)

Example

{
  "id": "abc123",
  "netAmount": 1,
  "createdDate": "2020-01-01",
  "smartPrepayStatus": "UTRN_REQUESTED",
  "smartPrepayProcessStatus": "NOT_STARTED",
  "utrn": "abc123"
}

PrepayLedgersType

The ledgers associated to a prepayment meter. There are three types: a credit ledger for mirroring the meter's credit balance, a debt ledger for mirroring the meter's debt balance and payment ledger which is the inflight payments that we have not yet managed to resolve on the other two ledgers.

Fields

NameDescription

creditLedger (SupplementaryLedgerType)

debtLedger (SupplementaryLedgerType)

paymentLedger (PrepayPaymentLedgerType)

Example

{
  "creditLedger": SupplementaryLedgerType,
  "debtLedger": SupplementaryLedgerType,
  "paymentLedger": PrepayPaymentLedgerType
}

Fields

NameDescription

edgeCount (Int!)

Number of nodes in the edge.

edges ([PrepayPaymentConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo (PageInfo!)

Pagination data for this connection.

totalCount (Int!)

Total number of nodes.

Example

{
  "pageInfo": PageInfo,
  "edges": PrepayPaymentConnectionTypeEdge,
  "totalCount": 1,
  "edgeCount": 1
}

PrepayPaymentConnectionTypeEdge

A Relay edge containing a PrepayPaymentConnectionType and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (PrepayPaymentType)

The item at the end of the edge

Example

{
  "node": PrepayPaymentType,
  "cursor": "abc123"
}

PrepayPaymentLedgerType

The in-flight payment ledger tracks the status of payments made to a prepay meter.

Fields

NameDescription

creditTransfers ([PrepayCreditTransferType])

Transfers of credit from the account ledger to a smart prepay meter.

currentBalance (Int)

The current final balance of the ledger in pence.

id (ID)

ledgerType (String)

name (String)

The display name of the ledger.

paymentAdequacy (PaymentAdequacyDetailsType)

payments ([PrepayPaymentType])

Payments made to add credit to a smart prepay meter.

Example

{
  "id": "abc123",
  "name": "abc123",
  "ledgerType": "abc123",
  "currentBalance": 1,
  "paymentAdequacy": PaymentAdequacyDetailsType,
  "payments": [PrepayPaymentType],
  "creditTransfers": [PrepayCreditTransferType]
}

Fields

NameDescription

amount (BigInt!)

Amount of payment in pence

id (ID!)

meter (Meter)

paymentDate (Date!)

The date this payment is scheduled to be debited

smartPrepayProcessStatus (SmartPrepayProcessStatusChoices)

smartPrepayStatus (SmartPrepayPaymentStatusChoices)

Deprecated

The 'smartPrepayStatus' field is deprecated.


Please use the 'smartPrepayProcessStatus' type instead for a more granular status.


- Marked as deprecated on 2023-09-05.
- Will be removed on 2024-01-01.

utrn (String!)

Example

{
  "id": "abc123",
  "amount": 1,
  "paymentDate": "2020-01-01",
  "smartPrepayStatus": "UTRN_REQUESTED",
  "smartPrepayProcessStatus": "NOT_STARTED",
  "utrn": "abc123",
  "meter": Meter
}

Fields

NameDescription

description (String)

displayName (String)

fullName (String)

id (ID)

preVatStandingCharge (Float)

preVatUnitRate (Float)

productCode (String)

standingCharge (Float)

tariffCode (String)

Describes a particular tariff by combining the product code, number of rates, available from date and GSP code.

unitRate (Float)

Example

{
  "id": "abc123",
  "displayName": "abc123",
  "fullName": "abc123",
  "description": "abc123",
  "productCode": "abc123",
  "standingCharge": 1.0,
  "preVatStandingCharge": 1.0,
  "tariffCode": "abc123",
  "unitRate": 1.0,
  "preVatUnitRate": 1.0
}

Fields

NameDescription

amount (Decimal!)

        Monetary value of a single unit of the measurement.
        This is the smallest unit of currency e.g. cents for USD or yen for JPY.

unit (Unit)

Unit that monetary amount relates to eg. 27 cents per kwh.

Example

{
  "amount": 1.0,
  "unit": "KILOWATT_HOURS"
}

PrintAttachmentType

Represents a print attachment

Fields

NameDescription

filename (String!)

id (ID!)

s3Bucket (String!)

s3Key (String!)

temporaryUrl (String)

Temporary URL at which the attachment is available. This URL will expire after approximately an hour. It is intended for redirection purposes, NOT persistence in any form (e.g. inclusion in emails or the body of a web page).

Example

{
  "id": "abc123",
  "filename": "abc123",
  "s3Bucket": "abc123",
  "s3Key": "abc123",
  "temporaryUrl": "abc123"
}

Fields

NameDescription

eventType (String!)

id (ID!)

The ID of the object

message (PrintMessageType)

Print message of the print event.

occurredAt (DateTime!)

Example

{
  "id": "abc123",
  "eventType": "abc123",
  "occurredAt": "2020-01-01T00:00:00.000Z",
  "message": PrintMessageType
}

PrintMessageType

Represents a print communication.

Fields

NameDescription

account (AccountType)

attachments ([PrintAttachmentType])

Attachments of the message.

highPriority (Boolean)

Comms that are marked as high priority.

id (ID!)

The ID of the object

templateCode (String!)

Example

{
  "id": "abc123",
  "templateCode": "abc123",
  "account": AccountType,
  "attachments": [PrintAttachmentType],
  "highPriority": true
}

Fields

NameDescription

edgeCount (Int!)

Number of nodes in the edge.

edges ([PrintMessageTypeEdge]!)

Contains the nodes in this connection.

pageInfo (PageInfo!)

Pagination data for this connection.

totalCount (Int!)

Total number of nodes.

Example

{
  "pageInfo": PageInfo,
  "edges": PrintMessageTypeEdge,
  "totalCount": 1,
  "edgeCount": 1
}

PrintMessageTypeEdge

A Relay edge containing a PrintMessageType and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (PrintMessageType)

The item at the end of the edge

Example

{
  "node": PrintMessageType,
  "cursor": "abc123"
}

Fields

NameDescription

ineligibilityReason (ProductIneligibilityForMeterPointDetails)

Meter point ineligibility reason.

isEligible (Boolean!)

Whether meter point is eligible for product enrolment.

Example

{
  "isEligible": true,
  "ineligibilityReason": ProductIneligibilityForMeterPointDetails
}

Fields

NameDescription

name (String)

The name of the stage.

status (EnrolmentStepStatus)

The current status of the stage.

steps ([ProductEnrolmentStepType])

The steps that are part of the enrolment stage.

Example

{
  "name": "abc123",
  "status": "SKIPPED",
  "steps": [ProductEnrolmentStepType]
}

Fields

NameDescription

displayName (String)

The name of the step.

status (EnrolmentStepStatus)

The current status of the step.

updatedAt (DateTime)

The date time that the step was last updated.

Example

{
  "displayName": "abc123",
  "status": "SKIPPED",
  "updatedAt": "2020-01-01T00:00:00.000Z"
}

Fields

NameDescription

account (AccountType!)

electricityMeterPoint (ElectricityMeterPointType)

The electricity meter point associated with the enrolment.

gasMeterPoint (GasMeterPointType)

The gas meter point associated with the enrolment.

id (ID!)

product (EnergyProductType)

The product associated with the enrolment.

stages ([ProductEnrolmentStageType])

The stages that are part of the enrolment.

status (EnrolmentStatus!)

Example

{
  "id": "abc123",
  "account": AccountType,
  "status": "NOT_STARTED",
  "product": EnergyProductType,
  "electricityMeterPoint": ElectricityMeterPointType,
  "gasMeterPoint": GasMeterPointType,
  "stages": [ProductEnrolmentStageType]
}

Fields

NameDescription

code (String)

Code indicating why the meter point is ineligible.

description (String)

Description on why meter point is ineligible.

Example

{
  "description": "abc123",
  "code": "abc123"
}

Fields

NameDescription

additionals (String)

annualStandingCharge (Decimal!)

assumedAnnualConsumptionDay (Int!)

assumedAnnualConsumptionNight (Int!)

consumptionDistributionCoefficients (ConsumptionDistributionCoefficients)

Some tariffs expect customers to alter their usage patterns (e.g. EV tariffs) so will redistribute total consumption accordingly.

estimatedAnnualCost (Int)

exitFees (Int)

exitFeesType (String)

paymentMethod (PaymentMethods!)

priceGuaranteedUntil (String!)

standingCharge (Decimal!)

supplier (String!)

tariffCode (String!)

tariffComparisonRate (Decimal)

tariffDisplayName (String!)

tariffEndsOn (String!)

tariffFullName (String!)

tariffType (String!)

unitRateDay (Decimal!)

unitRateNight (Decimal!)

Example

{
  "supplier": "abc123",
  "tariffFullName": "abc123",
  "tariffDisplayName": "abc123",
  "tariffType": "abc123",
  "tariffCode": "abc123",
  "tariffEndsOn": "abc123",
  "paymentMethod": "DIRECT_DEBIT",
  "priceGuaranteedUntil": "abc123",
  "exitFees": 1,
  "exitFeesType": "abc123",
  "additionals": "abc123",
  "tariffComparisonRate": 1.0,
  "estimatedAnnualCost": 1,
  "annualStandingCharge": 1.0,
  "standingCharge": 1.0,
  "unitRateDay": 1.0,
  "unitRateNight": 1.0,
  "assumedAnnualConsumptionDay": 1,
  "assumedAnnualConsumptionNight": 1,
  "consumptionDistributionCoefficients": ConsumptionDistributionCoefficients
}

Fields

NameDescription

additionals (String)

annualStandingCharge (Decimal!)

assumedAnnualConsumption (Int!)

estimatedAnnualCost (Int)

exitFees (Int)

exitFeesType (String)

paymentMethod (PaymentMethods!)

priceGuaranteedUntil (String!)

standingCharge (Decimal!)

supplier (String!)

tariffCode (String!)

tariffComparisonRate (Decimal)

tariffDisplayName (String!)

tariffEndsOn (String!)

tariffFullName (String!)

tariffType (String!)

unitRate (Decimal!)

Example

{
  "supplier": "abc123",
  "tariffFullName": "abc123",
  "tariffDisplayName": "abc123",
  "tariffType": "abc123",
  "tariffCode": "abc123",
  "tariffEndsOn": "abc123",
  "paymentMethod": "DIRECT_DEBIT",
  "priceGuaranteedUntil": "abc123",
  "exitFees": 1,
  "exitFeesType": "abc123",
  "additionals": "abc123",
  "tariffComparisonRate": 1.0,
  "estimatedAnnualCost": 1,
  "annualStandingCharge": 1.0,
  "standingCharge": 1.0,
  "unitRate": 1.0,
  "assumedAnnualConsumption": 1
}

Fields

NameDescription

additionals (String)

annualStandingCharge (Decimal!)

assumedAnnualConsumptionDay (Int!)

assumedAnnualConsumptionNight (Int!)

assumedAnnualConsumptionOffPeak (Int!)

estimatedAnnualCost (Int)

exitFees (Int)

exitFeesType (String)

paymentMethod (PaymentMethods!)

priceGuaranteedUntil (String!)

standingCharge (Decimal!)

supplier (String!)

tariffCode (String!)

tariffComparisonRate (Decimal)

tariffDisplayName (String!)

tariffEndsOn (String!)

tariffFullName (String!)

tariffType (String!)

unitRateDay (Decimal!)

unitRateNight (Decimal!)

unitRateOffPeak (Decimal!)

Example

{
  "supplier": "abc123",
  "tariffFullName": "abc123",
  "tariffDisplayName": "abc123",
  "tariffType": "abc123",
  "tariffCode": "abc123",
  "tariffEndsOn": "abc123",
  "paymentMethod": "DIRECT_DEBIT",
  "priceGuaranteedUntil": "abc123",
  "exitFees": 1,
  "exitFeesType": "abc123",
  "additionals": "abc123",
  "tariffComparisonRate": 1.0,
  "estimatedAnnualCost": 1,
  "annualStandingCharge": 1.0,
  "standingCharge": 1.0,
  "unitRateDay": 1.0,
  "unitRateNight": 1.0,
  "unitRateOffPeak": 1.0,
  "assumedAnnualConsumptionDay": 1,
  "assumedAnnualConsumptionNight": 1,
  "assumedAnnualConsumptionOffPeak": 1
}

Fields

NameDescription

addressLine1 (String!)

addressLine2 (String!)

country (String!)

county (String!)

postcode (String!)

town (String!)

Example

{
  "addressLine1": "abc123",
  "addressLine2": "abc123",
  "town": "abc123",
  "county": "abc123",
  "country": "abc123",
  "postcode": "abc123"
}

Fields

NameDescription

administrativeArea (String)

Top-level administrative subdivision, e.g. US state, AU state/territory, IT region, JP prefecture.

AU: Australia

This must be one of NSW, VIC, QLD, TAS, ACT, SA, NT, WA. For addresses not within these locations, use the value that Australia Post uses, e.g. ACT for the Jervis Bay Territory or WA for Christmas Island.

country (String)

ISO 3166-1 alpha-2 code of the country this address belongs to, e.g. AU, GB.

deliveryPointIdentifier (String)

Identifier used by the local postal service for this address, e.g. AU DPID, GB postcode + Delivery Point Suffix, US Zip-9 + Delivery Point.

This is the value that gets encoded in the barcode printed on the envelope by large-volume bulk mail providers.

dependentLocality (String)

UK dependent localities, or neighbourhoods or boroughs in some other locations.

locality (String)

City or town portion of an address, e.g. US city, AU suburb/town, IT comune, UK post town.

name (String)

A personal name.

organization (String)

The name of a business or organisation.

postalCode (String)

Postal code (ZIP code in the US).

sortingCode (String)

Sorting code, e.g. FR CEDEX code. This field is not used in many countries.

streetAddress (String)

The 'street address' component.

This value can (and often will) contain newline characters when appropriate.

In some cases, data may appear in this field instead of the below fields; e.g. a UK post town name may appear here instead of in the dependent_locality field. This happens when data has been migrated from a legacy format, and that format had insufficient metadata to determine the appropriate field.

If structured_street_address is also set, the value of this field will be a string generated from that value.

structuredStreetAddress (GenericScalar)

The 'street address' component, in a structured format.

This field stores the same value as street_address, but with more detail; for instance, instead of 123 Example Street it might be {'street_number': '123', 'street_name': 'Example', 'street_type': 'Street'}. In many cases this will be blank; we only use this field for Krakens where we need to supply this level of granularity to some third-party service, like a bulk mail provider.

The exact structure of this value depends on the country of the address, which is not necessarily the same as the country this Kraken is configured to serve. For addresses outside of the countries listed below, this field will be left blank.

AU: Australia

The following keys may be present; all are optional. All keys have string values, and their meaning is the same as their aseXML counterparts. (Note that, unlike aseXML, all keys are provided at the top level, rather than being nested.)

  • flat_or_unit_type
  • flat_or_unit_number
  • floor_or_level_type
  • floor_or_level_number
  • building_or_property_name
  • location_descriptor
  • lot_number
  • house_number_1
  • house_number_suffix_1
  • house_number_2
  • house_number_suffix_2
  • street_name
  • street_type
  • street_suffix
  • postal_delivery_type
  • postal_delivery_number_prefix
  • postal_delivery_number_value
  • postal_delivery_number_suffix

JP: Japan

The following keys may be present; all are optional. If keys are empty, they may be omitted from the response entirely.

  • chome
  • banchi
  • go
  • edaban
  • kana_building_name
  • kanji_building_name
  • building_number
  • room_number
  • address_code
  • physical_location_identifier

Example

{
  "name": "abc123",
  "organization": "abc123",
  "streetAddress": "abc123",
  "structuredStreetAddress": "abc123" | 1 | 1.0 | true | ["abc123"] | AccountType,
  "dependentLocality": "abc123",
  "locality": "abc123",
  "administrativeArea": "abc123",
  "postalCode": "abc123",
  "sortingCode": "abc123",
  "country": "abc123",
  "deliveryPointIdentifier": "abc123"
}

PropertyType

Represents a property. Conceptually, it collects supply points under an address.

Fields

NameDescription

address (String)

The address of the property, formatted into a single string

availableSmets2InstallationTimeslots ([Smets2InstallationTimeslotType])

Timeslots for which the property has the possibility to book a smart-meter installation.

coordinates (CoordinatesType)

Coordinates for the property, useful for displaying the property on a map.

electricityMeterPoints ([ElectricityMeterPointType])

Retrieve the details of an electricity meter-point.

embeddedNetwork (EmbeddedNetworkType)

The embedded network this property belongs to, if any.

gasMeterPoints ([GasMeterPointType])

Retrieve the details of a gas meter-point.

id (String)

isChangeOfTenancyOngoing (Boolean)

isSmets2InstallationAllowed (Boolean)

Indicates if the property meets smart meter install preconditions.

measurements (MeasurementConnection)

Measurements at a property

occupancyPeriods ([OccupancyPeriodType])

Time periods during which the property is associated with an account. Useful to display information about house-moves, as performing a move out of a property will set the end date for the occupancy period.

postcode (String!)

richAddress (PropertyRichAddressType)

Property rich address.

smartDeviceNetworks ([SmartMeterDeviceNetworkType])

Retrieve any smartmeter devices connected to the property.

splitAddress ([String])

List of address lines.

wanCoverage (WANCoverageStrengths)

Likelihood that a smart meter at the given postcode will get a stable network connection.

Example

{
  "id": "abc123",
  "postcode": "abc123",
  "address": "abc123",
  "richAddress": PropertyRichAddressType,
  "splitAddress": ["abc123"],
  "occupancyPeriods": [OccupancyPeriodType],
  "coordinates": CoordinatesType,
  "embeddedNetwork": EmbeddedNetworkType,
  "measurements": MeasurementConnection,
  "smartDeviceNetworks": [SmartMeterDeviceNetworkType],
  "isChangeOfTenancyOngoing": true,
  "isSmets2InstallationAllowed": true,
  "electricityMeterPoints": [ElectricityMeterPointType],
  "gasMeterPoints": [GasMeterPointType],
  "wanCoverage": "HIGH",
  "availableSmets2InstallationTimeslots": [Smets2InstallationTimeslotType]
}

Fields

NameDescription

oauthUri (String!)

OAuth 2.0 URI for the provider.

Example

{
  "oauthUri": "abc123"
}

ProviderVirtualKeyDetailsType

Details of a public key that can be added to devices for end-to-end authentication or encryption.

E.g. for Tesla the user visits a URL and the name can be used to show what the key is called. https://github.com/teslamotors/vehicle-command#distributing-your-public-key

Fields

NameDescription

virtualKeyName (String!)

Friendly human-readable name for the virtual key.

virtualKeyUri (String!)

URI for the virtual key.

Example

{
  "virtualKeyName": "abc123",
  "virtualKeyUri": "abc123"
}

Fields

NameDescription

edgeCount (Int!)

Number of nodes in the edge.

edges ([ProvisionalTransactionConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo (PageInfo!)

Pagination data for this connection.

totalCount (Int!)

Total number of nodes.

Example

{
  "pageInfo": PageInfo,
  "edges": ProvisionalTransactionConnectionTypeEdge,
  "totalCount": 1,
  "edgeCount": 1
}

ProvisionalTransactionConnectionTypeEdge

A Relay edge containing a ProvisionalTransactionConnectionType and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (ProvisionalTransactionType)

The item at the end of the edge

Example

{
  "node": ProvisionalTransactionType,
  "cursor": "abc123"
}

ProvisionalTransactionType

A provisional transaction represents some debit or credit to or from a customer's account which we cannot yet finalise for some reason, but which is still useful to keep a note of, and display to the customer. Provisional transactions are purely to give guidance in the absence of finalised information. We therefore only return provisional transactions that have not been finalised. When a transaction is finalised, it is available through the transactions field.

Fields

NameDescription

amount (Int)

The amount in pence for this provisional transaction. It will be negative for charges, positive for credits.

date (Date)

The date at which the charge should be applied to the account.

id (ID!)

title (String)

A user readable string that indicates what this transaction relates to.

Example

{
  "id": "abc123",
  "title": "abc123",
  "amount": 1,
  "date": "2020-01-01"
}

Fields

NameDescription

awsIotHostname (String)

The AWS IoT endpoint hostname to connect to AWS APIs & services.

certificate (String)

The certificate which the controller will present to AWS IoT in order to validate its provisioning claim. It will contain the public key of the controller, and be signed by KF.

encryptedPrivateKey (String)

This is the private key which will be used by the controller to make the provisioning claim, encrypted with the public key of the controller.

Example

{
  "certificate": "abc123",
  "encryptedPrivateKey": "abc123",
  "awsIotHostname": "abc123"
}

PushNotificationBindingType

Represents a pairing of a single app installation to an account user.

Fields

NameDescription

application (NotifiableApplicationType!)

expiresAt (DateTime!)

id (ID!)

messages (PrintMessageTypeConnection!)

registeredAt (DateTime!)

token (String!)

user (AccountUserType!)

Example

{
  "id": "abc123",
  "messages": PrintMessageTypeConnection,
  "user": AccountUserType,
  "token": "abc123",
  "application": NotifiableApplicationType,
  "registeredAt": "2020-01-01T00:00:00.000Z",
  "expiresAt": "2020-01-01T00:00:00.000Z"
}

QuoteAccountOnProducts

The possible errors that can be raised are:

  • KT-CT-4616: Unable to create a quote.
  • KT-GB-4614: Invalid data.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

possibleErrors ([PossibleErrorType])

quoteRequest (QuoteRequest)

The generated quote.

Example

{
  "possibleErrors": [PossibleErrorType],
  "quoteRequest": QuoteRequest
}

Fields

NameDescription

addressLine1 (String)

addressLine2 (String)

addressLine3 (String)

Example

{
  "addressLine1": "abc123",
  "addressLine2": "abc123",
  "addressLine3": "abc123"
}

QuoteCampaignOffer

Quote a given account on a campaign offer.

Fields

NameDescription

quoteCode (String)

Example

{
  "quoteCode": "abc123"
}

Fields

NameDescription

quoteRequest (QuoteRequest)

The generated quote.

Example

{
  "quoteRequest": QuoteRequest
}

Fields

NameDescription

code (String!)

The code of the created quote.

createdAt (DateTime)

electricitySupplyPoints ([ElectricitySupplyPoint])

List of electricity supply points and their quoted products.

gasSupplyPoints ([GasSupplyPoint])

List of gas supply points and their quoted products.

Example

{
  "electricitySupplyPoints": [ElectricitySupplyPoint],
  "gasSupplyPoints": [GasSupplyPoint],
  "createdAt": "2020-01-01T00:00:00.000Z",
  "code": "abc123"
}

Fields

NameDescription

createdAt (DateTime)

electricitySupplyPoints ([ElectricitySupplyPoint])

List of electricity supply points and their quoted products.

gasSupplyPoints ([GasSupplyPoint])

List of gas supply points and their quoted products.

Example

{
  "electricitySupplyPoints": [ElectricitySupplyPoint],
  "gasSupplyPoints": [GasSupplyPoint],
  "createdAt": "2020-01-01T00:00:00.000Z"
}

Fields

NameDescription

address (QuoteAddressType)

code (String)

consumptionEstimates (ConsumptionEstimates)

elecAnnualConsumptionDay (Int)

In kWh

elecAnnualConsumptionNight (Int)

In kWh

elecAnnualConsumptionStandard (Int)

In kWh

elecEstimate (Boolean!)

gasAnnualConsumption (Int)

In kWh

gasEstimate (Boolean!)

gspGroupId (String)

includesElectricity (Boolean!)

includesGas (Boolean!)

isBusiness (Boolean!)

latitude (Float)

longitude (Float)

meterType (MeterTypes)

The meter type for the quote.

mpan (String!)

mprn (String)

partnerProductId (Int)

paymentMethod (QuotePaymentMethod!)

postcode (String!)

quotedProducts ([QuotedProductType])

A list of the products that have been quoted for the usage provided at the time the quote was created.

termsAndConditions (TermsAndConditionsType)

Example

{
  "code": "abc123",
  "postcode": "abc123",
  "gspGroupId": "abc123",
  "includesElectricity": true,
  "includesGas": true,
  "isBusiness": true,
  "meterType": "NO_METER",
  "mpan": "abc123",
  "paymentMethod": "DIRECTDEBIT",
  "elecAnnualConsumptionStandard": 1,
  "elecAnnualConsumptionDay": 1,
  "elecAnnualConsumptionNight": 1,
  "elecEstimate": true,
  "gasAnnualConsumption": 1,
  "gasEstimate": true,
  "partnerProductId": 1,
  "latitude": 1.0,
  "longitude": 1.0,
  "address": QuoteAddressType,
  "consumptionEstimates": ConsumptionEstimates,
  "quotedProducts": [QuotedProductType],
  "termsAndConditions": TermsAndConditionsType,
  "mprn": "abc123"
}

Fields

NameDescription

allowedSupplyStartDates ([Date])

A list of dates allowable to start supply of the quoted product.

annualAmount (Int)

Estimated cost in pence of the product over a year based on the quoted usage.

annualSaving (Int)

Estimated saving in pence vs the 'Big 6' of the product over a year based on the quoted usage.

co2SavingInKg (Int)

The amount of co2 saved per year when this product is chosen

description (String!)

elecTariffCode (String!)

electricityTariffInformationLabel (TariffInformationLabelType)

Electricity tariff information label (TIL) provides standardised information between suppliers about a tariff.

gasTariffCode (String!)

gasTariffInformationLabel (TariffInformationLabelStandard)

Gas tariff information label (TIL) provides standardised information between suppliers about a tariff.

id (ID!)

includesCarbonOffsetting (Boolean)

isVariable (Boolean)

Whether or not this is a variable product.

monthlyAmount (Int)

Estimated cost in pence of the product per month based on the quoted usage.

name (String!)

product (EnergyProductType)

recommended (Boolean!)

treesSaving (Int)

The number of trees it would take to offset the amount of co2 that is saved per year when this product is chosen

Example

{
  "id": "abc123",
  "name": "abc123",
  "description": "abc123",
  "product": EnergyProductType,
  "recommended": true,
  "monthlyAmount": 1,
  "annualAmount": 1,
  "annualSaving": 1,
  "elecTariffCode": "abc123",
  "gasTariffCode": "abc123",
  "electricityTariffInformationLabel": TariffInformationLabelStandard,
  "gasTariffInformationLabel": TariffInformationLabelStandard,
  "isVariable": true,
  "allowedSupplyStartDates": ["2020-01-01"],
  "co2SavingInKg": 1,
  "treesSaving": 1,
  "includesCarbonOffsetting": true
}

Fields

NameDescription

limit (Int)

The maximum number of points the viewer gets for requests per hour.

remainingPoints (Int)

The remaining points for the viewer in one hour time limit.

usedPoints (Int)

The points used so far in one hour time limit.

Example

{
  "limit": 1,
  "remainingPoints": 1,
  "usedPoints": 1
}

ReauthenticateDevice

Re-authenticate a device. The authentication details provided must be for the same device as was previously authenticated.

The possible errors that can be raised are:

  • KT-CT-4313: Could not find KrakenFlex device.
  • KT-CT-4314: Unable to get provider details.
  • KT-CT-4315: Unable to re-authenticate device.
  • KT-CT-4363: No capable devices found.
  • KT-CT-4364: Multiple devices found.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

krakenflexDevice (KrakenFlexDeviceType)

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "krakenflexDevice": KrakenFlexDeviceType
}

RebootHeatingController

Reboot a heating controller.

The possible errors that can be raised are:

  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

possibleErrors ([PossibleErrorType])

transactionId (ID)

The unique ID associated with this reboot operation.

Example

{
  "possibleErrors": [PossibleErrorType],
  "transactionId": "abc123"
}

Fields

NameDescription

buttonAction (ActionType!)

The action to perform when the button is pressed.

buttonStyle (ButtonStyle)

The button style.

id (ID)

Unique identifier of the object.

title (String!)

Title text of the button.

typename (String)

The name of the object's type.

variant (ButtonVariance)

Colour style of button eg. filled, outlined, text_only.

Example

{
  "buttonStyle": "PRIMARY",
  "title": "abc123",
  "buttonAction": DeeplinkActionType,
  "id": "abc123",
  "typename": "abc123",
  "variant": "FILLED"
}

RedeemLoyaltyPointsForAccountCredit

Redeem Loyalty Points as account credit.

The possible errors that can be raised are:

  • KT-CT-1111: Unauthorized.
  • KT-CT-9201: No Loyalty Point ledger found for the user.
  • KT-CT-9202: Loyalty Points adapter not configured.
  • KT-CT-9203: No ledger entries for the ledger.
  • KT-CT-9205: Insufficient Loyalty Points.
  • KT-CT-9206: Indivisible points.
  • KT-CT-9204: Negative or zero points set.
  • KT-CT-9208: Invalid posted at datetime.
  • KT-CT-9209: Negative Loyalty Points balance.
  • KT-CT-9210: Unhandled Loyalty Points exception.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

pointsRedeemed (Int)

The number of OctoPoints that were redeemed.

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "pointsRedeemed": 1
}

RedeemOctoPointsForAccountCredit

Redeem OctoPoints as account credit.

The possible errors that can be raised are:

  • KT-CT-4177: Unauthorized.
  • KT-GB-5011: Not enough OctoPoints for redemption.
  • KT-GB-5010: Error redeeming OctoPoints.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

pointsRedeemed (Int)

The number of OctoPoints that were redeemed.

possibleErrors ([PossibleErrorType])

remainingPointsInWallet (Int)

The number of OctoPoints remaining in the wallet.

Example

{
  "possibleErrors": [PossibleErrorType],
  "pointsRedeemed": 1,
  "remainingPointsInWallet": 1
}

RedeemReferralClaimCode

The possible errors that can be raised are:

  • KT-CT-6723: Unauthorized.
  • KT-CT-6724: Referral claim code not found.
  • KT-CT-6725: Referral claim code redeeming error.
  • KT-CT-6726: Referral claim code has already been redeemed.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType]
}

ReferralClaimCodeType

Referral claim code is a way of claiming promotional benefit coming from the partner-reward referral schemes.

Fields

NameDescription

accountReferral (ReferralType)

Account referral associated with the claim code.

createdAt (DateTime)

Datetime when claim code was generated.

id (Int)

Id of claim code instance.

referralScheme (ReferralSchemeType)

Referral scheme claim code belongs to.

value (String)

Value of claim code.

Example

{
  "id": 1,
  "value": "abc123",
  "referralScheme": ReferralSchemeType,
  "accountReferral": ReferralType,
  "createdAt": "2020-01-01T00:00:00.000Z"
}

Fields

NameDescription

edgeCount (Int!)

Number of nodes in the edge.

edges ([ReferralConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo (PageInfo!)

Pagination data for this connection.

totalCount (Int!)

Total number of nodes.

Example

{
  "pageInfo": PageInfo,
  "edges": ReferralConnectionTypeEdge,
  "totalCount": 1,
  "edgeCount": 1
}

ReferralConnectionTypeEdge

A Relay edge containing a ReferralConnectionType and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (ReferralType)

The item at the end of the edge

Example

{
  "node": ReferralType,
  "cursor": "abc123"
}

ReferralSchemeType

A referral scheme is a way for one account to earn a reward for referring another. This is achieved by the referred account using a url (provided by the referring account) to sign up.

Fields

NameDescription

canBeReferred (Boolean)

Whether the current account is eligible to be referred under this scheme.

code (String)

The unique code for the scheme.

combinedRewardAmount (Int)

The reward amount received by the referrer and the referee combined.

loyaltyPointsBonus (Int)

The number of loyalty points to be awarded to the referrer in addition to the reward amount.

referralDisplayUrl (String)

A referral url for display purposes.

referralUrl (String)

A fully qualified url give people to create accounts referred by this scheme.

referredRewardAmount (Int)

The reward amount received by the referred party.

referrerFamilyName (String)

The family name of the person making the referral.

Deprecated

The 'referringFamilyName' field is deprecated.

Only make use of the referrerGivenName for privacy reasons.

- Marked as deprecated on 2022-11-07.
- Will be removed on 2023-01-07.

referrerGivenName (String)

The given name of the person making the referral.

referrerRewardAmount (Int)

The reward amount received by the referrer.

schemeType (String)

Scheme type of the referral scheme.

Example

{
  "referralUrl": "abc123",
  "referralDisplayUrl": "abc123",
  "referrerRewardAmount": 1,
  "referredRewardAmount": 1,
  "combinedRewardAmount": 1,
  "loyaltyPointsBonus": 1,
  "canBeReferred": true,
  "code": "abc123",
  "referrerGivenName": "abc123",
  "referrerFamilyName": "abc123",
  "schemeType": "abc123"
}

Fields

NameDescription

business (ReferralSchemeType)

domestic (ReferralSchemeType)

friendsAndFamily (ReferralSchemeType)

Deprecated

The 'friendsAndFamily' field is deprecated.

Please use domestic instead.

- Marked as deprecated on 2020-03-05.
- Will be removed on 2024-01-01.

Example

{
  "domestic": ReferralSchemeType,
  "business": ReferralSchemeType,
  "friendsAndFamily": ReferralSchemeType
}

ReferralType

Details of an account referral

Fields

NameDescription

code (String)

combinedPaymentAmount (Int)

The payment amount in pence received by the referrer and the referee combined.

id (ID!)

paymentDate (Date)

paymentStatus (String)

referredUserJoinDate (DateTime)

referredUserName (String)

referredUserPaymentAmount (Int)

Payment amount given to the referred account in pence.

referringUserPaymentAmount (Int)

Payment amount given to the referring account in pence.

schemeType (ReferralSchemeTypeChoices)

The type of reward scheme.

Example

{
  "id": "abc123",
  "paymentDate": "2020-01-01",
  "schemeType": "REFERRAL_REWARD",
  "referredUserName": "abc123",
  "paymentStatus": "abc123",
  "referredUserJoinDate": "2020-01-01T00:00:00.000Z",
  "code": "abc123",
  "referredUserPaymentAmount": 1,
  "referringUserPaymentAmount": 1,
  "combinedPaymentAmount": 1
}

RefreshQuote

The possible errors that can be raised are:

  • KT-GB-4612: Unable to refresh quote - quote not found.
  • KT-GB-4613: Error generating quote.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

possibleErrors ([PossibleErrorType])

quote (QuoteType)

Example

{
  "possibleErrors": [PossibleErrorType],
  "quote": QuoteType
}

Refund

A refund to the customer from the energy supplier.

Fields

NameDescription

accountNumber (String)

Unique identifier of the account the transaction belongs to.

amount (Int)

Gross amount including tax (when payable). Refer to the amounts field for a breakdown of this information.

Deprecated

The 'amount' field is deprecated.

Use `amounts` instead for a breakdown of the relevant net, tax, and gross amounts.

- Marked as deprecated on 2023-12-06.
- Will be removed on 2024-06-01.

amounts (TransactionAmountType)

The net, tax and gross amounts for the transaction. Note: for payments and repayments, only the net amount is returned.

balanceCarriedForward (Int)

The customer's resulting balance after this transaction has been applied, in the smallest unit of currency.

billingDocumentIdentifier (ID)

The unique identifier for the most recent billing document linked with the transaction.Note: a transaction may be linked with multiple documents, but this field will only return the identifier for the most recent billing document.

createdAt (DateTime)

The date time when the transaction is created.

hasStatement (Boolean)

Returns True if the transaction is linked with a statement.

id (ID)

isAccountCharge (Boolean)

Deprecated.

Deprecated

The 'isAccountCharge' field is deprecated.

This information is provided by the __typename introspection query.

- Marked as deprecated on 2020-06-19.
- Will be removed on 2022-11-15.

isAccountPayment (Boolean)

Deprecated.

Deprecated

The 'isAccountPayment' field is deprecated.

This information is provided by the __typename introspection query.

- Marked as deprecated on 2020-06-19.
- Will be removed on 2022-11-15.

isCredit (Boolean)

Deprecated.

Deprecated

The 'isCredit' field is deprecated.

This information is provided by the __typename introspection query.

- Marked as deprecated on 2020-06-19.
- Will be removed on 2022-11-15.

isHeld (Boolean)

Whether the statement this transaction is on has been held. A held statement is not sent to a customer automatically, but is instead marked for manual attention by operations staff. Returns False if a statement is not linked with the transaction.

isIssued (Boolean)

Whether this transaction has been issued on any billing document.Note: Look for the most recently issued transaction instead of looking through all transactions as some accounts may have initial transactions that were not issued.This will return False if the transaction is not associated with any billing documents.

isReversed (Boolean!)

note (String)

Returns the note field value for the transaction, which contains additional info.

postedDate (Date)

statementId (ID)

Returns None if a statement is not linked with the transaction.

Deprecated

The 'statementId' field is deprecated.

Use `billingDocumentIdentifier` instead.

- Marked as deprecated on 2023-11-30.
- Will be removed on 2024-06-01.

title (String)

Example

{
  "id": "abc123",
  "postedDate": "2020-01-01",
  "createdAt": "2020-01-01T00:00:00.000Z",
  "accountNumber": "abc123",
  "amount": 1,
  "amounts": TransactionAmountType,
  "balanceCarriedForward": 1,
  "isCredit": true,
  "isAccountCharge": true,
  "isAccountPayment": true,
  "isHeld": true,
  "isIssued": true,
  "title": "abc123",
  "billingDocumentIdentifier": "abc123",
  "statementId": "abc123",
  "isReversed": true,
  "hasStatement": true,
  "note": "abc123"
}

Fields

NameDescription

amount (Int)

The amount of money requested.

payment (AccountPaymentType)

The payment which is being refunded.

reasonCode (String)

Internal code for the reason the refund is being requested.

requestId (ID)

The ID of the refund request.

status (RepaymentRequestStatus)

The current status of the refund request.

Example

{
  "requestId": "abc123",
  "amount": 1,
  "payment": AccountPaymentType,
  "reasonCode": "abc123",
  "status": "REQUESTED"
}

Fields

NameDescription

edgeCount (Int!)

Number of nodes in the edge.

edges ([RefundRequestConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo (PageInfo!)

Pagination data for this connection.

totalCount (Int!)

Total number of nodes.

Example

{
  "pageInfo": PageInfo,
  "edges": RefundRequestConnectionTypeEdge,
  "totalCount": 1,
  "edgeCount": 1
}

RefundRequestConnectionTypeEdge

A Relay edge containing a RefundRequestConnectionType and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (RefundPaymentRequestType)

The item at the end of the edge

Example

{
  "node": RefundPaymentRequestType,
  "cursor": "abc123"
}

Fields

NameDescription

requestedAmountToReturn (Int)

The requested refund amount which was submitted in the repayment.

Example

{
  "requestedAmountToReturn": 1
}

RegenerateSecretKey

Regenerate the user's live secret key.

Fields

NameDescription

viewer (AccountUserType)

The currently authenticated user.

This field requires the Authorization header to be set.

Example

{
  "viewer": AccountUserType
}

RegisterDevice

Register a device via intelligent octopus.

Currently, this means an electric vehicle and charge point details.

The possible errors that can be raised are:

  • KT-CT-4335: Another device registration is already in progress.
  • KT-CT-4321: Serializer validation error.
  • KT-CT-4314: Unable to get provider details.
  • KT-CT-4351: Provider authentication error.
  • KT-CT-4312: Unable to register device.
  • KT-CT-4363: No capable devices found.
  • KT-CT-4364: Multiple devices found.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

krakenflexDevice (KrakenFlexDeviceType)

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "krakenflexDevice": KrakenFlexDeviceType
}

RegisterHeatPump

Register a heat pump.

The possible errors that can be raised are:

  • KT-CT-4316: Unable to get provider details.
  • KT-CT-4317: Unable to register device.
  • KT-CT-4330: Invalid data.
  • KT-CT-4331: Invalid data.
  • KT-CT-4335: Another device registration is already in progress.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

heatPumpDevice (HeatPumpDeviceType)

The customer specific heat pump device details.

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "heatPumpDevice": HeatPumpDeviceType
}

Fields

NameDescription

pushNotificationBinding (PushNotificationBindingType)

Example

{
  "pushNotificationBinding": PushNotificationBindingType
}

Fields

NameDescription

digits (Int)

identifier (String)

isQuarantined (Boolean)

name (String)

value (String)

Example

{
  "identifier": "abc123",
  "name": "abc123",
  "value": "abc123",
  "digits": 1,
  "isQuarantined": true
}

RemoveConsumerDevice

Remove a consumer device from the CHF/HAN. Currently limited to only CAD devices.

The possible errors that can be raised are:

  • KT-GB-4012: Unable to find the CAD device.
  • KT-GB-4032: Error sending the request to remove the device.
  • KT-GB-4013: Received invalid device type to remove other than CAD.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

possibleErrors ([PossibleErrorType])

requestReference (String)

The reference of the remove consumer device request in Kraken.

Example

{
  "possibleErrors": [PossibleErrorType],
  "requestReference": "abc123"
}

RemoveSensor

Remove a sensor from a heating controller device.

The possible errors that can be raised are:

  • KT-CT-4309: Error trying to remove sensor from heat pump controller.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

possibleErrors ([PossibleErrorType])

transactionId (ID)

Unique ID associated with removing a sensor from a heat pump controller.

Example

{
  "possibleErrors": [PossibleErrorType],
  "transactionId": "abc123"
}

RenewAgreements

Renew agreements for an account.

This mutation calls tariff renewal use-case both for electricity and gas agreements.

This mutation renews agreements from midnight the day it is invoked in the case of flexible tariffs and fixed tariffs ending in more than 90 days. For fixed tariffs that end in less than 90 days, it creates follow on agreements that start when the fixed agreements end (or minimum of when they end in the case of misaligned agreements).

The possible errors that can be raised are:

  • KT-GB-4125: Invalid data.
  • KT-GB-4111: Unable to renew agreements for tariff renewal.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

account (AccountType)

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "account": AccountType
}

RenewAgreementsForAccount

Renew agreements provided for an account.

The possible errors that can be raised are:

  • KT-GB-4113: At least one list of agreements to renew is required.
  • KT-GB-4126: Electricity and gas agreement input is invalid.
  • KT-GB-4114: Unable to renew agreements.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

account (AccountType)

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "account": AccountType
}

Fields

NameDescription

product (EnergyProductType)

slug (String!)

Example

{
  "slug": "abc123",
  "product": EnergyProductType
}

Fields

NameDescription

edgeCount (Int!)

Number of nodes in the edge.

edges ([RepaymentRequestConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo (PageInfo!)

Pagination data for this connection.

totalCount (Int!)

Total number of nodes.

Example

{
  "pageInfo": PageInfo,
  "edges": RepaymentRequestConnectionTypeEdge,
  "totalCount": 1,
  "edgeCount": 1
}

RepaymentRequestConnectionTypeEdge

A Relay edge containing a RepaymentRequestConnectionType and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (RepaymentRequestType)

The item at the end of the edge

Example

{
  "node": RepaymentRequestType,
  "cursor": "abc123"
}

Fields

NameDescription

amount (Int)

The amount of money requested.

instruction (PaymentInstructionType)

The payment instruction, if any, associated with the repayment request.

method (RepaymentMethod)

The method by which the money will be transferred to the customer.

reasonCode (String)

Classifier code for repayment reason.

requestId (String)

The ID of the repayment request.

status (RepaymentRequestStatus)

The current status of the repayment request.

Example

{
  "requestId": "abc123",
  "amount": 1,
  "reasonCode": "abc123",
  "method": "BANK_TRANSFER",
  "instruction": PaymentInstructionType,
  "status": "REQUESTED"
}

ReplaceAgreement

Replace the given agreement with the given product.

TODO: Move this outside of plugin as it is applicable to the wider domain.

Fields

NameDescription

account (AccountInterface)

Example

{
  "account": AccountInterface
}

RequestConsumptionData

The possible errors that can be raised are:

  • KT-GB-4033: No electricity device found matching device ID.
  • KT-GB-4034: Error requesting consumption data.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

possibleErrors ([PossibleErrorType])

requestReference (String)

The reference for the associated request in Kraken.

Example

{
  "possibleErrors": [PossibleErrorType],
  "requestReference": "abc123"
}

Fields

NameDescription

email (String)

The email that requested a password reset email.

Example

{
  "email": "abc123"
}

RequestProvisioningClaimCertificate

The possible errors that can be raised are:

  • KT-CT-4332: Invalid data.
  • KT-CT-4304: Error in preprovisioning step for Octopus Heat Pump.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

possibleErrors ([PossibleErrorType])

provisioningClaimBundle (ProvisioningClaimBundle)

The certificate and private key required to create a provisioning claim.

Example

{
  "possibleErrors": [PossibleErrorType],
  "provisioningClaimBundle": ProvisioningClaimBundle
}

Fields

NameDescription

canRequestRefund (Boolean!)

Whether the account can request a refund.

reason (String)

The reason why a refund cannot be requested.

Example

{
  "canRequestRefund": true,
  "reason": "abc123"
}

RequestRepaymentOutputType

Output for creating a repayment request.

Fields

NameDescription

requestId (String)

The ID of the repayment request.

status (RepaymentRequestStatus)

The current status of the repayment request.

Example

{
  "requestId": "abc123",
  "status": "REQUESTED"
}

Fields

NameDescription

quote (QuoteType)

Example

{
  "quote": QuoteType
}

Fields

NameDescription

clientMutationId (String)

errors ([SerializerFieldErrorsType])

Example

{
  "errors": [SerializerFieldErrorsType],
  "clientMutationId": "abc123"
}

Fields

NameDescription

failureReasons ([String])

A list of which password validations the new password failed against if applicable.

passwordUpdated (Boolean)

True if the password update was successful, false otherwise.

Example

{
  "passwordUpdated": true,
  "failureReasons": ["abc123"]
}

ResumeDeviceControl

Resume control of a device after having been away from home.

This is so that the device can be charged again according to the set preferences.

The possible errors that can be raised are:

  • KT-CT-4301: Unable to find device for given account.
  • KT-CT-4359: Unable to resume device control.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

krakenflexDevice (KrakenFlexDeviceType)

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "krakenflexDevice": KrakenFlexDeviceType
}

RewardType

        A reward is based on a scheme that an account has applied for in order to be
        eligible for a discount. Examples can include signup, promo, or partner codes that
        were applied to an account.

Fields

NameDescription

id (ID!)

paymentDate (Date)

paymentStatus (ReferralStatusChoices)

The status of the reward payment.

rewardAmount (Int)

Reward amount given to the account in pence.

schemeType (ReferralSchemeTypeChoices)

The type of reward scheme.

Example

{
  "id": "abc123",
  "paymentDate": "2020-01-01",
  "schemeType": "REFERRAL_REWARD",
  "rewardAmount": 1,
  "paymentStatus": "Pending"
}

RichAddressType

A postal address.

This data model is based on the structure used by Google's libaddressinput library—so you can use it, or other libraries that use its data model and reference data, to accept input.

All fields can be blank, except for country which must always be supplied.

Fields

NameDescription

administrativeArea (String)

Top-level administrative subdivision, e.g. US state, AU state/territory, IT region, JP prefecture.

AU: Australia

This must be one of NSW, VIC, QLD, TAS, ACT, SA, NT, WA. For addresses not within these locations, use the value that Australia Post uses, e.g. ACT for the Jervis Bay Territory or WA for Christmas Island.

country (String)

ISO 3166-1 alpha-2 code of the country this address belongs to, e.g. AU, GB.

deliveryPointIdentifier (String)

Identifier used by the local postal service for this address, e.g. AU DPID, GB postcode + Delivery Point Suffix, US Zip-9 + Delivery Point.

This is the value that gets encoded in the barcode printed on the envelope by large-volume bulk mail providers.

dependentLocality (String)

UK dependent localities, or neighbourhoods or boroughs in some other locations.

locality (String)

City or town portion of an address, e.g. US city, AU suburb/town, IT comune, UK post town.

name (String)

A personal name.

organization (String)

The name of a business or organisation.

postalCode (String)

Postal code (ZIP code in the US).

sortingCode (String)

Sorting code, e.g. FR CEDEX code. This field is not used in many countries.

streetAddress (String)

The 'street address' component.

This value can (and often will) contain newline characters when appropriate.

In some cases, data may appear in this field instead of the below fields; e.g. a UK post town name may appear here instead of in the dependent_locality field. This happens when data has been migrated from a legacy format, and that format had insufficient metadata to determine the appropriate field.

If structured_street_address is also set, the value of this field will be a string generated from that value.

structuredStreetAddress (GenericScalar)

The 'street address' component, in a structured format.

This field stores the same value as street_address, but with more detail; for instance, instead of 123 Example Street it might be {'street_number': '123', 'street_name': 'Example', 'street_type': 'Street'}. In many cases this will be blank; we only use this field for Krakens where we need to supply this level of granularity to some third-party service, like a bulk mail provider.

The exact structure of this value depends on the country of the address, which is not necessarily the same as the country this Kraken is configured to serve. For addresses outside of the countries listed below, this field will be left blank.

AU: Australia

The following keys may be present; all are optional. All keys have string values, and their meaning is the same as their aseXML counterparts. (Note that, unlike aseXML, all keys are provided at the top level, rather than being nested.)

  • flat_or_unit_type
  • flat_or_unit_number
  • floor_or_level_type
  • floor_or_level_number
  • building_or_property_name
  • location_descriptor
  • lot_number
  • house_number_1
  • house_number_suffix_1
  • house_number_2
  • house_number_suffix_2
  • street_name
  • street_type
  • street_suffix
  • postal_delivery_type
  • postal_delivery_number_prefix
  • postal_delivery_number_value
  • postal_delivery_number_suffix

JP: Japan

The following keys may be present; all are optional. If keys are empty, they may be omitted from the response entirely.

  • chome
  • banchi
  • go
  • edaban
  • kana_building_name
  • kanji_building_name
  • building_number
  • room_number
  • address_code
  • physical_location_identifier

Example

{
  "name": "abc123",
  "organization": "abc123",
  "streetAddress": "abc123",
  "structuredStreetAddress": "abc123" | 1 | 1.0 | true | ["abc123"] | AccountType,
  "dependentLocality": "abc123",
  "locality": "abc123",
  "administrativeArea": "abc123",
  "postalCode": "abc123",
  "sortingCode": "abc123",
  "country": "abc123",
  "deliveryPointIdentifier": "abc123"
}

Fields

NameDescription

isValid (Boolean!)

Whether the SEG installation is valid according to MCS.

Example

{
  "isValid": true
}

Fields

NameDescription

dispatchNotice (DispatchNoticeTypeChoices)

Dispatch notice time of event (day before, within 1 day, etc).

eventStartDate (DateTime)

The start datetime of the joined event.

isOptedIntoEvent (Boolean)

Did the account opt-in to the event.

streakPoints (Int)

The streak point the account had during the event.

Example

{
  "eventStartDate": "2020-01-01T00:00:00.000Z",
  "isOptedIntoEvent": true,
  "dispatchNotice": "DAY_AHEAD",
  "streakPoints": 1
}

Fields

NameDescription

avgCustomerRemunerationPounds (Float)

The average payment amongst all customers per event.

baselineConsumptionDeltaKwh (Float)

How much we thought the customer was going to use over the event period.

co2SavedInGrams (Float)

The saved amount of CO2 in grams for the event.

consumptionDeltaKwh (Float)

How much the customer actually used over the event period.

endAt (DateTime)

The end datetime of the joined event.

energySavedInKwh (Float)

The energy saved in kWh for the event.

eventId (Int)

The event ID of the joined event.

eventStatus (SavingSessionsAccountEventStatus)

The status of the event.

netReductionPctRank (Float)

Percent rank amongst all customers that reduced consumption.

percentageSaved (Float)

The total consumption reduction in percentage for the event.

resultsSetAt (DateTime)

The datetime of when the results were set.

resultsStatus (SavingSessionsAccountEventResultStatusChoices)

Updated results status.

rewardGivenInOctoPoints (Int)

The amount of OctoPoints the account has been awarded for their participation in the event.

startAt (DateTime)

The start datetime of the joined event.

status (SavingSessionsAccountEventResultStatusChoices)

The outcome of the account's participation of the event.

Example

{
  "eventId": 1,
  "startAt": "2020-01-01T00:00:00.000Z",
  "endAt": "2020-01-01T00:00:00.000Z",
  "rewardGivenInOctoPoints": 1,
  "energySavedInKwh": 1.0,
  "status": "NONE",
  "eventStatus": "UPCOMING",
  "resultsStatus": "NONE",
  "co2SavedInGrams": 1.0,
  "percentageSaved": 1.0,
  "netReductionPctRank": 1.0,
  "avgCustomerRemunerationPounds": 1.0,
  "baselineConsumptionDeltaKwh": 1.0,
  "consumptionDeltaKwh": 1.0,
  "resultsSetAt": "2020-01-01T00:00:00.000Z"
}

Fields

NameDescription

number (String!)

Example

{
  "number": "abc123"
}

Fields

NameDescription

canJoinCampaign (Boolean)

Whether the account is eligible to join the campaign.

eligibleMeterPoints ([EligibleMetersPointsType])

Meterpoints eligible for signup to Saving Sessions.

eventStreak ([SavingSessionsAccountEventStreakType])

The event streak history of the account.

hasJoinedCampaign (Boolean)

Whether the account joined the campaign.

isBusinessAccount (Boolean)

Whether the account is a business account.

isTesterAccount (Boolean)

Whether the account is a tester account for the campaign.

joinedEvents ([SavingSessionsAccountJoinedEventsType])

The events that the account has joined.

signedUpMeterPoint (EligibleMetersPointsType)

The meter point signed up to Saving Sessions.

Example

{
  "canJoinCampaign": true,
  "hasJoinedCampaign": true,
  "eligibleMeterPoints": [EligibleMetersPointsType],
  "signedUpMeterPoint": EligibleMetersPointsType,
  "isBusinessAccount": true,
  "isTesterAccount": true,
  "joinedEvents": [SavingSessionsAccountJoinedEventsType],
  "eventStreak": [SavingSessionsAccountEventStreakType]
}

Fields

NameDescription

enrolledMpan (String)

The MPAN of the meter point that has been enrolled.

hasEnrolled (Boolean)

Whether or not this account has been enrolled in the Saving Sessions campaign.

notEnrolledReason (String)

The reason for not enrolling.

Example

{
  "hasEnrolled": true,
  "enrolledMpan": "abc123",
  "notEnrolledReason": "abc123"
}

Fields

NameDescription

code (String)

The event code.

devEvent (Boolean)

Whether this this a test event.

endAt (DateTime)

The end of the event.

id (Int)

The event ID.

rewardPerKwhInOctoPoints (Int)

The number of OctoPoints an account will earn per kWh of energy reduced, if successful.

startAt (DateTime)

The start of the event.

status (SavingSessionsAccountEventStatus)

Status of the event.

totalParticipants (Int)

The total number of participants who joined the event.

Example

{
  "id": 1,
  "code": "abc123",
  "startAt": "2020-01-01T00:00:00.000Z",
  "endAt": "2020-01-01T00:00:00.000Z",
  "status": "UPCOMING",
  "totalParticipants": 1,
  "rewardPerKwhInOctoPoints": 1,
  "devEvent": true
}

Fields

NameDescription

co2SavedEquivalentInWords (String)

The equivalent total CO2 saved in a phrase.

co2SavedEquivalentTooltip (String)

Optional additional context for the CO2e statement.

energySavedEquivalentInWords (String)

The equivalent total energy saved in a phrase.

energySavedInKwh (Int)

The amount of energy saved across all Saving Sessions, in kWh.

lastUpdatedAt (DateTime)

The last datetime the stats were updated.

Example

{
  "energySavedInKwh": 1,
  "energySavedEquivalentInWords": "abc123",
  "co2SavedEquivalentInWords": "abc123",
  "co2SavedEquivalentTooltip": "abc123",
  "lastUpdatedAt": "2020-01-01T00:00:00.000Z"
}

Fields

NameDescription

lastUpdatedAt (DateTime)

The last datetime the prize draw information was updated.

latestAwardedPrizeDescription (String)

A description of the the latest spot prize winner.

nextSessionPrizeDescription (String)

A description of the spot prize for the next Saving Session.

showPrizeDraw (Boolean)

Whether there is prize draw information to show for the next Saving Session.

Example

{
  "showPrizeDraw": true,
  "nextSessionPrizeDescription": "abc123",
  "latestAwardedPrizeDescription": "abc123",
  "lastUpdatedAt": "2020-01-01T00:00:00.000Z"
}

Fields

NameDescription

account (SavingSessionsAccountType)

Info related to a specific account.

eventCount (Int)

The total number of events.

events ([SavingSessionsEventType])

Saving Sessions events, ordered by start datetime.

nationalAggregatedStats (SavingSessionsNationalAggregatedStatsType)

Combined statistics from all of the Savings Sessions so far.

prizeDrawInformation (SavingSessionsPrizeDrawInformationType)

Prize draw information.

Example

{
  "account": SavingSessionsAccountType,
  "events": [SavingSessionsEventType],
  "eventCount": 1,
  "nationalAggregatedStats": SavingSessionsNationalAggregatedStatsType,
  "prizeDrawInformation": SavingSessionsPrizeDrawInformationType
}

Fields

NameDescription

days (String)

A bitmask of the days this program is active for.

settings ([Setting])

The settings which make up this schedule.

Example

{
  "days": "abc123",
  "settings": [Setting]
}

ScreenActionType

An action which calls another backend screen via its screen id.

Fields

NameDescription

allowBack (Boolean!)

Whether to allow returning to the original caller screen.

id (ID)

Unique identifier of the object.

params ([BackendScreenParam]!)

Map of the parameters (key-value pairs) to pass to the next backend screen.

screenId (String!)

The ID of the screen to navigate to.

typeName (String)

The name of the action object's type.

typename (String)

The name of the object's type.

Example

{
  "id": "abc123",
  "typename": "abc123",
  "typeName": "abc123",
  "screenId": "abc123",
  "params": BackendScreenParam,
  "allowBack": true
}

SectionType

A section containing a list of cards or carousel items

Fields

NameDescription

content (SectionContent!)

The content of the section.

id (ID)

Unique identifier of the object.

order (Int!)

The order of the section.

typename (String)

The name of the object's type.

Example

{
  "id": "abc123",
  "typename": "abc123",
  "content": CardComponentType,
  "order": 1
}

Fields

NameDescription

online (Boolean)

Whether or not a sensor is currently online.

retrievedAt (DateTime)

Time at which the status was retrieved.

Example

{
  "online": true,
  "retrievedAt": "2020-01-01T00:00:00.000Z"
}

Fields

NameDescription

code (String)

The code name for a sensor.

connectivity (SensorConnectivity)

The connectivity/online status of a sensor.

telemetry (SensorTelemetry)

The telemetry data of a sensor.

Example

{
  "code": "abc123",
  "connectivity": SensorConnectivity,
  "telemetry": SensorTelemetry
}

Fields

NameDescription

humidityPercentage (Int)

Percentage humidity recorded by the sensor.

retrievedAt (DateTime)

Time at which the telemetry was retrieved.

rssi (Int)

Signal strength of a sensor measured in dBm (Received Signal Strength Indicator).

rssiPercentage (Int)

Deprecated.

Deprecated

The 'rssiPercentage' field is deprecated.

Use rssi instead.

- Marked as deprecated on 2023-05-17.
- Will be removed on 2023-05-31.

temperatureInCelsius (Float)

Temperature recorded by a sensor in celsius.

voltage (Float)

Voltage recorded by a sensor.

Example

{
  "temperatureInCelsius": 1.0,
  "humidityPercentage": 1,
  "rssi": 1,
  "rssiPercentage": 1,
  "voltage": 1.0,
  "retrievedAt": "2020-01-01T00:00:00.000Z"
}

SensorUpdateTransactionId

A mapping of sensor codes to transaction ids as returned from a successful KF request.

Fields

NameDescription

sensorCode (String!)

The code of the sensor which was updated.

transactionId (String!)

A UUID representing the update operation for this sensor.

Example

{
  "sensorCode": "abc123",
  "transactionId": "abc123"
}

Fields

NameDescription

code (String)

message (String)

Example

{
  "message": "abc123",
  "code": "abc123"
}

Fields

NameDescription

errors ([ErrorTypeUnion!])

field (String)

Example

{
  "field": "abc123",
  "errors": SerializerErrorType
}

SetBatteryChargingPreferences

Allow customers to set/update their battery's charging preferences.

The possible errors that can be raised are:

  • KT-CT-4321: Serializer validation error.
  • KT-CT-4301: Unable to find device for given account.
  • KT-CT-4353: An error occurred while trying to update your charging preferences.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

krakenflexDevice (BatteryDeviceType)

The battery device updated, with the ID of the device in KrakenFlex.

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "krakenflexDevice": BatteryDeviceType
}

SetClimateControlState

The possible errors that can be raised are:

  • KT-CT-4337: Unable to set climate control state.
  • KT-CT-4301: Unable to find device for given account.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

heatPumpDevice (HeatPumpDeviceType)

The customer specific heat pump device details.

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "heatPumpDevice": HeatPumpDeviceType
}

SetHotWaterState

The possible errors that can be raised are:

  • KT-CT-4336: Unable to set hot water state.
  • KT-CT-4301: Unable to find device for given account.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

heatPumpDevice (HeatPumpDeviceType)

The customer specific heat pump device details.

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "heatPumpDevice": HeatPumpDeviceType
}

SetLoyaltyPointsUser

Set the Loyalty Points user for the account.

The possible errors that can be raised are:

  • KT-CT-1111: Unauthorized.
  • KT-CT-1111: Unauthorized.
  • KT-CT-9210: Unhandled Loyalty Points exception.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

newLoyaltyPointsUserId (String)

ID of the new Loyalty Points user.

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "newLoyaltyPointsUserId": "abc123"
}

SetRoomTemperature

The possible errors that can be raised are:

  • KT-CT-4329: Invalid data.
  • KT-CT-4346: Unable to set the room temperature.
  • KT-CT-7223: Unauthorized.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

heatPumpDevice (HeatPumpDeviceType)

The customer specific heat pump device details.

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "heatPumpDevice": HeatPumpDeviceType
}

SetUpDirectDebitInstruction

The possible errors that can be raised are:

  • KT-CT-3940: Invalid data.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

paymentInstruction (DirectDebitInstructionType)

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "paymentInstruction": DirectDebitInstructionType
}

SetVehicleChargingPreferences

Allow customers to set/update their vehicle's charging preferences.

The possible errors that can be raised are:

  • KT-CT-4301: Unable to find device for given account.
  • KT-CT-4321: Serializer validation error.
  • KT-CT-4353: An error occurred while trying to update your charging preferences.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

krakenflexDevice (KrakenFlexDeviceType)

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "krakenflexDevice": KrakenFlexDeviceType
}

SetZoneMode

Turn a heating controller zone ON/OFF, set it to AUTO or BOOST it.

The possible errors that can be raised are:

  • KT-CT-4333: Invalid data.
  • KT-CT-4306: Error setting mode for heat pump controller zone.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

possibleErrors ([PossibleErrorType])

transactionId (ID)

Unique ID associated with a zone's mode operation.

Example

{
  "possibleErrors": [PossibleErrorType],
  "transactionId": "abc123"
}

SetZonePrimarySensor

Set the primary sensor for a zone.

The primary sensor is the one which controls the heating for that zone. Other sensors merely provide data, at least currently.

The possible errors that can be raised are:

  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

possibleErrors ([PossibleErrorType])

transactionId (ID)

The unique ID associated with this operation.

Example

{
  "possibleErrors": [PossibleErrorType],
  "transactionId": "abc123"
}

SetZoneSchedules

Set a heating controller zone's schedule(s).

The possible errors that can be raised are:

  • KT-CT-4334: Invalid data.
  • KT-CT-4308: Error setting schedule(s) for heat pump controller zone.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

possibleErrors ([PossibleErrorType])

transactionId (ID)

Unique ID associated with adding schedule(s) for a zone.

Example

{
  "possibleErrors": [PossibleErrorType],
  "transactionId": "abc123"
}

Fields

NameDescription

action (String)

Whether the setting turns the zone on or off, or changes its temperature.

setpointInCelsius (Float)

Desired zone temperature (for zones which support setpoints).

startTime (Time)

The time this setting becomes active.

Example

{
  "startTime": "00:00:00.000Z",
  "action": "abc123",
  "setpointInCelsius": 1.0
}

ShareGoodsQuote

The possible errors that can be raised are:

  • KT-CT-4122: Invalid email.
  • KT-CT-8203: Received an invalid quote code.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

possibleErrors ([PossibleErrorType])

share (GoodsQuoteShare)

Goods quote shared.

Example

{
  "possibleErrors": [PossibleErrorType],
  "share": GoodsQuoteShare
}

Fields

NameDescription

availability (Boolean)

Denotes whether or not this voucher value is currently available.

value (Int)

The voucher value.

Example

{
  "value": 1,
  "availability": true
}

Fields

NameDescription

code (String)

The voucher code.

Example

{
  "code": "abc123"
}

Fields

NameDescription

consumptionInKw (Decimal)

The current consumption of the site in kW (i.e. sum of battery, solar and grid power).

exportInKw (Decimal)

The current export of the site in kW (where 0 means no export).

Example

{
  "consumptionInKw": 1.0,
  "exportInKw": 1.0
}

SiteworksAppointmentConnectionTypeEdge

A Relay edge containing a SiteworksAppointmentConnectionType and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (SiteworksAppointmentType)

The item at the end of the edge

Example

{
  "node": SiteworksAppointmentType,
  "cursor": "abc123"
}

Fields

NameDescription

agentReference (String)

appointmentDate (Date)

calculationId (String)

endTime (Time)

promiseId (String)

siteId (String)

slotId (String)

startTime (Time)

Example

{
  "appointmentDate": "2020-01-01",
  "startTime": "00:00:00.000Z",
  "endTime": "00:00:00.000Z",
  "agentReference": "abc123",
  "siteId": "abc123",
  "slotId": "abc123",
  "calculationId": "abc123",
  "promiseId": "abc123"
}

Fields

NameDescription

calculationId (String)

expectedJobDurationMinutes (Int)

slots ([SiteworksAppointmentSlotType])

Example

{
  "calculationId": "abc123",
  "slots": [SiteworksAppointmentSlotType],
  "expectedJobDurationMinutes": 1
}

SiteworksBookingAccountConnectionTypeEdge

A Relay edge containing a SiteworksBookingAccountConnectionType and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (SiteworksBookingAccountType)

The item at the end of the edge

Example

{
  "node": SiteworksBookingAccountType,
  "cursor": "abc123"
}

SiteworksBookingAccountType

An object holding information about an account and its associated users, properties and meter points, used for administering siteworks bookings.

Fields

NameDescription

accountType (String!)

activeCampaigns ([SiteworksCampaignType])

Active campaigns for the account.

billingName (String!)

Name for this account. If one exists, the billing name of the portfolio will prepend this.

brand (String!)

The brand of the account.

number (String!)

properties ([SiteworksBookingPropertyType])

Properties linked to the account now and in the future.

siteworksRequests ([SiteworksRequestType])

Siteworks requests associated to an account.

smets2Interest (SmartMeterInterestChoices)

The interest of an account in procuring smart meters.

status (AccountStatus)

The current status of the account.

users ([AccountUserType!]!)

Example

{
  "number": "abc123",
  "status": "PENDING",
  "users": AccountUserType,
  "billingName": "abc123",
  "accountType": "abc123",
  "properties": [SiteworksBookingPropertyType],
  "siteworksRequests": [SiteworksRequestType],
  "activeCampaigns": [SiteworksCampaignType],
  "smets2Interest": "INTERESTED",
  "brand": "abc123"
}

SiteworksBookingElectricityMeterPointType

This type holds information about an electricity meter point that is used by partner organisations to book siteworks.

Fields

NameDescription

agentContracts ([ElectricityAgentContractType])

A list of agents responsible for management of the meterpoint.

dccServiceFlag (String!)

energisationStatus (String!)

gspGroupId (String)

The distribution network the grid supply point falls under

id (ID!)

isMeterReadingDue (Boolean!)

Whether this meter point has a meter which is due a reading.

isOnSupply (Boolean!)

latestSupplyPeriod (SupplyPeriodType)

The latest supply period of the meterpoint.

meters ([ElectricityMeterType])

mpan (String!)

ssc (String!)

Standard settlement configuration

status (String!)

supplyEndDate (Date)

Example

{
  "id": "abc123",
  "supplyEndDate": "2020-01-01",
  "mpan": "abc123",
  "ssc": "abc123",
  "energisationStatus": "abc123",
  "dccServiceFlag": "abc123",
  "status": "abc123",
  "isOnSupply": true,
  "latestSupplyPeriod": SupplyPeriodType,
  "isMeterReadingDue": true,
  "meters": [ElectricityMeterType],
  "gspGroupId": "abc123",
  "agentContracts": [ElectricityAgentContractType]
}

SiteworksBookingGasMeterPointType

This type holds information about a gas meter point that is used by partner organisations to book siteworks.

Fields

NameDescription

agentContracts ([GasAgentContractType])

A list of agents responsible for management of the meterpoint.

id (ID!)

isMeterReadingDue (Boolean!)

Whether this meter point has a meter which is due a reading.

isOnSupply (Boolean!)

latestSupplyPeriod (SupplyPeriodType)

The latest supply period of the meterpoint.

meters ([GasMeterType])

mprn (String)

status (String!)

supplyEndDate (Date)

Example

{
  "id": "abc123",
  "supplyEndDate": "2020-01-01",
  "mprn": "abc123",
  "status": "abc123",
  "isOnSupply": true,
  "latestSupplyPeriod": SupplyPeriodType,
  "isMeterReadingDue": true,
  "meters": [GasMeterType],
  "agentContracts": [GasAgentContractType]
}

SiteworksBookingPropertyType

This type is used by partner organisations to retrieve information about a property and its meter points that is used to book siteworks.

Fields

NameDescription

electricityMeterPoints ([SiteworksBookingElectricityMeterPointType])

Retrieve the details of an electricity meter-point.

gasMeterPoints ([SiteworksBookingGasMeterPointType])

Retrieve the details of a gas meter-point.

id (ID!)

isChangeOfTenancyOngoing (Boolean)

isSmets2InstallationAllowed (Boolean)

Indicates if the property meets smart meter install preconditions.

postcode (String!)

smartDeviceNetworks ([SmartMeterDeviceNetworkType])

Retrieve any smartmeter devices connected to the property.

splitAddress ([String])

List of address lines.

Example

{
  "id": "abc123",
  "postcode": "abc123",
  "smartDeviceNetworks": [SmartMeterDeviceNetworkType],
  "isChangeOfTenancyOngoing": true,
  "isSmets2InstallationAllowed": true,
  "electricityMeterPoints": [SiteworksBookingElectricityMeterPointType],
  "gasMeterPoints": [SiteworksBookingGasMeterPointType],
  "splitAddress": ["abc123"]
}

Fields

NameDescription

appointments ([ActiveAppointmentType])

Siteworks appointments associated to a request.

Example

{
  "appointments": [ActiveAppointmentType]
}

Fields

NameDescription

alerts ([SmartFlexDeviceAlertInterface])

Active alert message(s) for a device, showing the latest first.

deviceType (KrakenFlexDeviceTypes!)

The type of device.

id (ID!)

A UUID that identifies this device registration. Re-registering this device will result in a different ID.

make (String)

Make of the battery.

model (String)

Model of the battery.

name (String)

The user-friendly name for the device.

onboardingWizard (SmartFlexOnboardingWizard)

The current onboarding wizard for a device.

provider (ProviderChoices!)

The third-party that enables control of this device.

status (SmartFlexDeviceStatusInterface)

Information about the current status of this device.

Example

{
  "id": "abc123",
  "name": "abc123",
  "deviceType": "BATTERIES",
  "provider": "DAIKIN",
  "status": SmartFlexDeviceStatusInterface,
  "alerts": SmartFlexDeviceAlertInterface,
  "onboardingWizard": SmartFlexOnboardingWizard,
  "make": "abc123",
  "model": "abc123"
}

SmartFlexChargePoint

Information about a charge point that has been registered with Kraken Flex.

Fields

NameDescription

alerts ([SmartFlexDeviceAlertInterface])

Active alert message(s) for a device, showing the latest first.

chargingPreferences (SmartFlexVehicleChargingPreferences)

The user's preferences for charging using this charge point.

deviceType (KrakenFlexDeviceTypes!)

The type of device.

id (ID!)

A UUID that identifies this device registration. Re-registering this device will result in a different ID.

make (String)

The make of the charge point, e.g. myenergi.

model (String)

The model of the charge point, e.g. Zappi.

name (String)

The user-friendly name for the device.

onboardingWizard (SmartFlexOnboardingWizard)

The current onboarding wizard for a device.

provider (ProviderChoices!)

The third-party that enables control of this device.

status (SmartFlexDeviceStatusInterface)

Information about the current status of this device.

Example

{
  "id": "abc123",
  "name": "abc123",
  "deviceType": "BATTERIES",
  "provider": "DAIKIN",
  "status": SmartFlexDeviceStatusInterface,
  "alerts": SmartFlexDeviceAlertInterface,
  "onboardingWizard": SmartFlexOnboardingWizard,
  "make": "abc123",
  "model": "abc123",
  "chargingPreferences": SmartFlexVehicleChargingPreferences
}

SmartFlexChargePointStatus

The current status of a registered charge point.

Fields

NameDescription

current (SmartFlexDeviceLifecycleStatus)

The current status of the device.

currentState (SmartFlexDeviceState)

The current state of this SmartFlex device state machine.

isSuspended (Boolean)

Whether control of the device is currently disabled.

stateOfChargeLimit (StateOfChargeLimit)

Information about the limits for the SoC.

testDispatchFailureReason (TestDispatchAssessmentFailureReason)

The reason for the most recent failed test dispatch (if any).

Example

{
  "current": "ONBOARDING",
  "isSuspended": true,
  "currentState": "AUTHENTICATION_PENDING",
  "stateOfChargeLimit": StateOfChargeLimit,
  "testDispatchFailureReason": "NONE"
}

SmartFlexDevice

Information about a device that has been registered for Smart Flex.

Fields

NameDescription

alerts ([SmartFlexDeviceAlertInterface])

Active alert message(s) for a device, showing the latest first.

deviceType (KrakenFlexDeviceTypes!)

The type of device.

id (ID!)

A UUID that identifies this device registration. Re-registering this device will result in a different ID.

name (String)

The user-friendly name for the device.

onboardingWizard (SmartFlexOnboardingWizard)

The current onboarding wizard for a device.

provider (ProviderChoices!)

The third-party that enables control of this device.

status (SmartFlexDeviceStatusInterface)

Information about the current status of this device.

Example

{
  "id": "abc123",
  "name": "abc123",
  "deviceType": "BATTERIES",
  "provider": "DAIKIN",
  "status": SmartFlexDeviceStatusInterface,
  "alerts": SmartFlexDeviceAlertInterface,
  "onboardingWizard": SmartFlexOnboardingWizard
}

SmartFlexDeviceAlert

Information about an alert relevant to a device registered for Smart Flex.

Fields

NameDescription

message (String)

A device alert message.

publishedAt (DateTime)

When a device alert message is published.

Example

{
  "message": "abc123",
  "publishedAt": "2020-01-01T00:00:00.000Z"
}

SmartFlexDeviceStatus

Information about the current status of a device registered for Smart Flex.

Fields

NameDescription

current (SmartFlexDeviceLifecycleStatus)

The current status of the device.

currentState (SmartFlexDeviceState)

The current state of this SmartFlex device state machine.

isSuspended (Boolean)

Whether control of the device is currently disabled.

Example

{
  "current": "ONBOARDING",
  "isSuspended": true,
  "currentState": "AUTHENTICATION_PENDING"
}

Fields

NameDescription

alerts ([SmartFlexDeviceAlertInterface])

Active alert message(s) for a device, showing the latest first.

deviceType (KrakenFlexDeviceTypes!)

The type of device.

id (ID!)

A UUID that identifies this device registration. Re-registering this device will result in a different ID.

make (String)

The make of the heat pump, e.g. Daikin.

model (String)

The model of the heat pump, e.g. EDLA04E2V3.

name (String)

The user-friendly name for the device.

onboardingWizard (SmartFlexOnboardingWizard)

The current onboarding wizard for a device.

powerInKw (NormalizedDecimal)

The maximum power consumed by the heat pump in kilowatts.

provider (ProviderChoices!)

The third-party that enables control of this device.

status (SmartFlexDeviceStatusInterface)

Information about the current status of this device.

Example

{
  "id": "abc123",
  "name": "abc123",
  "deviceType": "BATTERIES",
  "provider": "DAIKIN",
  "status": SmartFlexDeviceStatusInterface,
  "alerts": SmartFlexDeviceAlertInterface,
  "onboardingWizard": SmartFlexOnboardingWizard,
  "make": "abc123",
  "model": "abc123",
  "powerInKw": NormalizedDecimal
}

SmartFlexInverter

Information about an inverter that has been registered with KrakenFlex.

Fields

NameDescription

alerts ([SmartFlexDeviceAlertInterface])

Active alert message(s) for a device, showing the latest first.

deviceType (KrakenFlexDeviceTypes!)

The type of device.

id (ID!)

A UUID that identifies this device registration. Re-registering this device will result in a different ID.

make (String)

The make of the inverter.

model (String)

The model of the inverter.

name (String)

The user-friendly name for the device.

onboardingWizard (SmartFlexOnboardingWizard)

The current onboarding wizard for a device.

provider (ProviderChoices!)

The third-party that enables control of this device.

status (SmartFlexDeviceStatusInterface)

Information about the current status of this device.

telemetry (SmartFlexInverterTelemetry)

Telemetry data for the inverter.

Example

{
  "id": "abc123",
  "name": "abc123",
  "deviceType": "BATTERIES",
  "provider": "DAIKIN",
  "status": SmartFlexDeviceStatusInterface,
  "alerts": SmartFlexDeviceAlertInterface,
  "onboardingWizard": SmartFlexOnboardingWizard,
  "make": "abc123",
  "model": "abc123",
  "telemetry": SmartFlexInverterTelemetry
}

SmartFlexInverterTelemetry

Telemetry data for a registered inverter.

Fields

NameDescription

battery (BatteryTelemetry)

Information about the battery.

grid (GridTelemetry)

Information about the grid.

inverter (InverterTelemetry)

Information about the inverter.

site (SiteTelemetry)

Information about the site.

solar (SolarTelemetry)

Information about the solar panels.

Example

{
  "inverter": InverterTelemetry,
  "battery": BatteryTelemetry,
  "solar": SolarTelemetry,
  "grid": GridTelemetry,
  "site": SiteTelemetry
}

Fields

NameDescription

backendScreen (BackendScreenType)

A Backend Screen that renders the SmartFlex onboarding wizard.

id (ID!)

A unique identifier for this SmartFlex onboarding wizard.

Example

{
  "id": "abc123",
  "backendScreen": ComponentListType
}

SmartFlexVehicle

Information about a vehicle that has been registered with Kraken Flex.

Fields

NameDescription

alerts ([SmartFlexDeviceAlertInterface])

Active alert message(s) for a device, showing the latest first.

chargingPreferences (SmartFlexVehicleChargingPreferences)

The user's preferences for charging this vehicle.

deviceType (KrakenFlexDeviceTypes!)

The type of device.

id (ID!)

A UUID that identifies this device registration. Re-registering this device will result in a different ID.

make (String)

The make of the vehicle, e.g. Tesla.

model (String)

The model of the vehicle, e.g. Model 3.

name (String)

The user-friendly name for the device.

onboardingWizard (SmartFlexOnboardingWizard)

The current onboarding wizard for a device.

provider (ProviderChoices!)

The third-party that enables control of this device.

status (SmartFlexDeviceStatusInterface)

Information about the current status of this device.

Example

{
  "id": "abc123",
  "name": "abc123",
  "deviceType": "BATTERIES",
  "provider": "DAIKIN",
  "status": SmartFlexDeviceStatusInterface,
  "alerts": SmartFlexDeviceAlertInterface,
  "onboardingWizard": SmartFlexOnboardingWizard,
  "make": "abc123",
  "model": "abc123",
  "chargingPreferences": SmartFlexVehicleChargingPreferences
}

SmartFlexVehicleChargingPreferences

The user's preferences for charging, e.g. target SoC (State of Charge).

Fields

NameDescription

maximumSoc (Int)

The maximum SoC (percentage).

minimumSoc (Int)

The minimum SoC (percentage).

weekdayTargetSoc (Int!)

The target SoC to achieve on a weekday (percentage).

weekdayTargetTime (Time!)

The time at which the target SoC should be achieved on a weekday.

weekendTargetSoc (Int!)

The target SoC to achieve on a weekend (percentage).

weekendTargetTime (Time!)

The time at which the target SoC should be achieved on a weekend.

Example

{
  "weekdayTargetTime": "00:00:00.000Z",
  "weekdayTargetSoc": 1,
  "weekendTargetTime": "00:00:00.000Z",
  "weekendTargetSoc": 1,
  "minimumSoc": 1,
  "maximumSoc": 1
}

SmartFlexVehicleStatus

The current status of a registered vehicle.

Fields

NameDescription

current (SmartFlexDeviceLifecycleStatus)

The current status of the device.

currentState (SmartFlexDeviceState)

The current state of this SmartFlex device state machine.

isSuspended (Boolean)

Whether control of the device is currently disabled.

stateOfChargeLimit (StateOfChargeLimit)

Information about the limits for the SoC.

testDispatchFailureReason (TestDispatchAssessmentFailureReason)

The reason for the most recent failed test dispatch (if any).

Example

{
  "current": "ONBOARDING",
  "isSuspended": true,
  "currentState": "AUTHENTICATION_PENDING",
  "stateOfChargeLimit": StateOfChargeLimit,
  "testDispatchFailureReason": "NONE"
}

Fields

NameDescription

readingFrequency (SmartMeterReadingFrequencyChoices)

The reading frequency for the smart meter.

readingsAnalysisConsentProvided (Boolean)

Has the user given consent that their readings can be used for further analysis?

readingsAnalysisConsentUpdatedDatetime (DateTime)

The datetime when the user gave consent that their readings can be used for further analysis.

Example

{
  "readingFrequency": "DAILY",
  "readingsAnalysisConsentProvided": true,
  "readingsAnalysisConsentUpdatedDatetime": "2020-01-01T00:00:00.000Z"
}

SmartMeterDeviceNetworkType

This is the network through which a set of SMETS2 devices communicates.

Fields

NameDescription

id (ID!)

smartDevices ([SmartMeterDeviceType])

A list of devices attached to one network.

Example

{
  "id": "abc123",
  "smartDevices": [SmartMeterDeviceType]
}

SmartMeterDeviceType

A smart meter device.

Fields

NameDescription

deviceId (String!)

deviceNetwork (SmartMeterDeviceNetworkType)

exportElectricityMeter (ElectricityMeterType)

firmwareVersion (String!)

gasMeter (GasMeterType)

id (ID!)

importElectricityMeter (ElectricityMeterType)

manufacturer (String!)

model (String!)

paymentMode (PaymentMode)

The payment mode (e.g. credit or prepayment) that the device is currently operating in.

serialNumber (String!)

status (DeviceStatus!)

type (DeviceType)

weeklyDebtRecoveryRateInPence (Int)

The rate, in pence per week, that debt is being recovered from this device.

Example

{
  "id": "abc123",
  "importElectricityMeter": ElectricityMeterType,
  "exportElectricityMeter": ElectricityMeterType,
  "gasMeter": GasMeterType,
  "deviceNetwork": SmartMeterDeviceNetworkType,
  "serialNumber": "abc123",
  "deviceId": "abc123",
  "type": "ESME",
  "status": "PENDING",
  "manufacturer": "abc123",
  "model": "abc123",
  "firmwareVersion": "abc123",
  "paymentMode": "PREPAY",
  "weeklyDebtRecoveryRateInPence": 1
}

Fields

NameDescription

consumption (Decimal)

Total energy consumed by the meter measured in Wh.

consumptionDelta (Decimal)

Energy consumption in Wh between the read_at and the next reading.

costDelta (Decimal)

Energy cost for the consumption delta in pence.

costDeltaWithTax (Decimal)

Energy cost including VAT for the consumption delta in pence.

demand (Decimal)

Energy being demanded by the meter measured in W.

readAt (DateTime)

The start_at time of the telemetry data. E.g if querying in 30 minute intervals the reading may have been taken anywhere between 00:00:00 and 00:29:59 and represents the maximum reading taken in the time period.

Example

{
  "readAt": "2020-01-01T00:00:00.000Z",
  "consumption": 1.0,
  "demand": 1.0,
  "consumptionDelta": 1.0,
  "costDelta": 1.0,
  "costDeltaWithTax": 1.0
}

Fields

NameDescription

account (AccountType!)

id (ID!)

meterPoint (ElectricityMeterPointType)

product (EnergyProductType!)

Example

{
  "id": "abc123",
  "account": AccountType,
  "meterPoint": ElectricityMeterPointType,
  "product": EnergyProductType
}

SmartTariffComparisonType

Consumption cost for different smart tariffs.

Fields

NameDescription

consumptionReadingsEndAt (DateTime!)

The datetime the consumption readings end.

consumptionReadingsStartAt (DateTime!)

The datetime the consumption readings start.

costComparisons ([TariffComparisonType])

Costs comparisons for available smart tariffs. Note: if product type is not supported or product doesn't have unit rates - it will not be included in response.

currentCost (Float!)

Total cost for a period.

currentCostWithTax (Float!)

Total cost with tax for a period.

Example

{
  "currentCost": 1.0,
  "currentCostWithTax": 1.0,
  "costComparisons": [TariffComparisonType],
  "consumptionReadingsStartAt": "2020-01-01T00:00:00.000Z",
  "consumptionReadingsEndAt": "2020-01-01T00:00:00.000Z"
}

SmartTariffOnboardingType

The smart tariff onboarding process. Only relevant for Kraken instances that support half hourly tariffs. Returns null if not applicable.

Fields

NameDescription

id (ID!)

lastUpdated (String)

latestStatus (SmartOnboardingEventType)

latestTermsStatus (SmartOnboardingTermsStatuses)

smartTariffCode (SmartOnboardingTariffCodes)

Example

{
  "id": "abc123",
  "latestStatus": "STARTED",
  "latestTermsStatus": "TERMS_ACCEPTANCE_REQUIRED",
  "smartTariffCode": "AGILE_OCTOPUS",
  "lastUpdated": "abc123"
}

Smets2InstallationTimeslotType

A timeslot for which a property can make an appointment for installation of a smart-meter.

Fields

NameDescription

appointmentDate (Date)

endTime (Time)

startTime (Time)

Example

{
  "appointmentDate": "2020-01-01",
  "startTime": "00:00:00.000Z",
  "endTime": "00:00:00.000Z"
}

Fields

NameDescription

constantinesCaught ([CaughtConstantine])

List of caught Constantines for this set.

constantinesRemaining ([ConstantineType])

List of Constantines not yet caught for this set.

displayName (String)

The name of the set of Constantines.

isComplete (Boolean)

Is this Constantine set completed (all constantines in set caught).

prizeEntries (Int)

The amount of prizes entries completing the set is worth.

slug (String)

The slug for this kind of Constantine set.

Example

{
  "displayName": "abc123",
  "slug": "abc123",
  "isComplete": true,
  "constantinesCaught": [CaughtConstantine],
  "constantinesRemaining": [ConstantineType],
  "prizeEntries": 1
}

Fields

NameDescription

powerInKw (Decimal)

The current power of the solar panels in kW.

Example

{
  "powerInKw": 1.0
}

SpecialCircumstanceRecordType

Any special circumstances that the user has notified us about, which may entitle them to some specialist services.

Fields

NameDescription

electricityPSRCode (String)

gasPSRCode (String)

id (ID)

internalCode (String)

summary (String)

Example

{
  "id": "abc123",
  "summary": "abc123",
  "internalCode": "abc123",
  "gasPSRCode": "abc123",
  "electricityPSRCode": "abc123"
}

SpecialCircumstancesType

Information about the special circumstances that relate to a user.

Fields

NameDescription

isSharingConsentGiven (Boolean)

Whether the user has consented for their data to be given to the appropriate industry or regulatory bodies. We typically only ask for this once, so this field can be used to decide whether to ask the user for their initial consent.

records ([SpecialCircumstanceRecordUnion])

Example

{
  "isSharingConsentGiven": true,
  "records": SpecialCircumstanceRecordType
}

SpinWheelOfFortune

The possible errors that can be raised are:

  • KT-CT-7011: Terms must be accepted.
  • KT-CT-7023: Unauthorized.
  • KT-CT-7010: The account does not have any available submissions.
  • KT-CT-7012: Wheel of Fortune submission error.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

possibleErrors ([PossibleErrorType])

spinResult (WheelOfFortuneSpinResultType)

The result of the Wheel of Fortune spin.

This field requires the Authorization header to be set.

Example

{
  "possibleErrors": [PossibleErrorType],
  "spinResult": WheelOfFortuneSpinResultType
}

Fields

NameDescription

description (String)

displayName (String)

fullName (String)

id (ID)

preVatStandingCharge (Float)

preVatUnitRate (Float)

productCode (String)

standingCharge (Float)

tariffCode (String)

Describes a particular tariff by combining the product code, number of rates, available from date and GSP code.

unitRate (Float)

unitRateEpgApplied (Boolean)

Is EPG applied to the unit rate.

Example

{
  "id": "abc123",
  "displayName": "abc123",
  "fullName": "abc123",
  "description": "abc123",
  "productCode": "abc123",
  "standingCharge": 1.0,
  "preVatStandingCharge": 1.0,
  "tariffCode": "abc123",
  "unitRate": 1.0,
  "unitRateEpgApplied": true,
  "preVatUnitRate": 1.0
}

StartExportOnboardingProcess

Onboarding for export tariffs.

This mutation kicks off the export onboarding for electricity.

The possible errors that can be raised are:

  • KT-GB-4103: Unable to start export onboarding process.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

onboardingProcess (SmartOnboardingProcessType)

possibleErrors ([PossibleErrorType])

productEnrolment (ProductEnrolmentType)

The product enrolment process created.

Example

{
  "possibleErrors": [PossibleErrorType],
  "onboardingProcess": SmartOnboardingProcessType,
  "productEnrolment": ProductEnrolmentType
}

StartSmartFlexOnboarding

Create a wizard for onboarding a device with SmartFlex.

The possible errors that can be raised are:

  • KT-CT-4321: Serializer validation error.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

possibleErrors ([PossibleErrorType])

wizard (SmartFlexOnboardingWizard)

The wizard created for onboarding the device with SmartFlex.

Example

{
  "possibleErrors": [PossibleErrorType],
  "wizard": SmartFlexOnboardingWizard
}

StartSmartOnboardingProcess

Onboarding for smart tariffs.

This mutation kicks off the smart onboarding for electricity.

The possible errors that can be raised are:

  • KT-GB-4102: Unable to start smart onboarding process.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

onboardingProcess (SmartOnboardingProcessType)

possibleErrors ([PossibleErrorType])

productEnrolment (ProductEnrolmentType)

The product enrolment process created.

Example

{
  "possibleErrors": [PossibleErrorType],
  "onboardingProcess": SmartOnboardingProcessType,
  "productEnrolment": ProductEnrolmentType
}

Fields

NameDescription

isLimitViolated (Boolean)

Whether or not target SoC exceeds upper SoC limit.

timestamp (String)

Time of the latest SoC limit reading.

upperSocLimit (Int)

Maximum level of charge allowed by the battery relative to its capacity (in percent).

Example

{
  "upperSocLimit": 1,
  "timestamp": "abc123",
  "isLimitViolated": true
}

StatementBillingDocumentConnectionTypeConnection

A statement is a billing document that contains all entries on a ledger during a period of time. A customer can understand how their ledger's balance has changed by looking at each statement in series.

Fields

NameDescription

edgeCount (Int!)

Number of nodes in the edge.

edges ([StatementBillingDocumentConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo (PageInfo!)

Pagination data for this connection.

totalCount (Int!)

Total number of nodes.

Example

{
  "pageInfo": PageInfo,
  "edges": StatementBillingDocumentConnectionTypeEdge,
  "totalCount": 1,
  "edgeCount": 1
}

StatementBillingDocumentConnectionTypeEdge

A Relay edge containing a StatementBillingDocumentConnectionType and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (StatementBillingDocumentType)

The item at the end of the edge

Example

{
  "node": StatementBillingDocumentType,
  "cursor": "abc123"
}

StatementBillingDocumentType

A statement is a billing document that contains all entries on a ledger during a period of time. A customer can understand how their ledger's balance has changed by looking at each statement in series.

Fields

NameDescription

annulledBy (AnnulmentBillingDocumentType)

Billing document that annuls this statement.

earliestChargeAt (DateTime)

The earliest charge date of the statement.

endAt (DateTime!)

The end of the statement's period.

firstIssuedAt (DateTime)

The date and time the statement was sent to the customer.

id (Int)

identifier (String)

The unique reference of the statement that can be used for identifying the statement externally.

latestChargeAt (DateTime)

The latest charge date of the statement.

pdfUrl (String)

URL to the PDF of the statement.

startAt (DateTime!)

The start of the statement's period.

Example

{
  "id": 1,
  "identifier": "abc123",
  "startAt": "2020-01-01T00:00:00.000Z",
  "endAt": "2020-01-01T00:00:00.000Z",
  "firstIssuedAt": "2020-01-01T00:00:00.000Z",
  "earliestChargeAt": "2020-01-01T00:00:00.000Z",
  "latestChargeAt": "2020-01-01T00:00:00.000Z",
  "pdfUrl": "abc123",
  "annulledBy": AnnulmentBillingDocumentType
}

Fields

NameDescription

grossTotal (Int)

The gross total amount for the statement (in minor currency units).

netTotal (Int)

The net total amount for the statement (in minor currency units).

taxTotal (Int)

The total amount of tax on the statement (in minor currency units).

Example

{
  "netTotal": 1,
  "taxTotal": 1,
  "grossTotal": 1
}

Fields

NameDescription

billType (BillTypeEnum)

closingBalance (Int)

This field returns the closing balance of an issued statement.

consumptionEndDate (Date)

The last day of consumption that this statement includes.

consumptionStartDate (Date)

The first day of consumption that this statement includes.

fromDate (Date)

heldStatus (HeldStatus)

Retrieve the held status of a account statement.

id (ID)

isExternalBill (Boolean)

Whether the bill originated in Kraken or externally.

issuedDate (Date)

The date the bill was sent to the customer.

openingBalance (Int)

This field returns the opening balance of a statement.

paymentDueDate (Date)

The date the bill is due to be paid.

reversalsAfterClose (StatementReversalsAfterClose!)

How many charges have been reversed after the close date.

status (AccountStatementStatus)

Current status of the associated statement.

temporaryUrl (String)

Requesting this field generates a temporary URL at which bill is available. This URL will expire after approximately an hour. It is intended for redirection purposes, NOT persistence in any form (e.g. inclusion in emails or the body of a web page). This field can raise an error with errorClass NOT_FOUND if the bill document has not been created/issued yet.

toAddress (String)

Email recipient address.

toDate (Date)

totalCharges (StatementTotalType)

The total amounts for all charges on the statement.

totalCredits (StatementTotalType)

The total amounts for all credits on the statement.

transactions (TransactionConnectionTypeConnection)

Transactions on the bill.

userId (Int)

Email recipient user ID.

Example

{
  "id": "abc123",
  "billType": "STATEMENT",
  "fromDate": "2020-01-01",
  "toDate": "2020-01-01",
  "temporaryUrl": "abc123",
  "issuedDate": "2020-01-01",
  "closingBalance": 1,
  "openingBalance": 1,
  "isExternalBill": true,
  "transactions": TransactionConnectionTypeConnection,
  "userId": 1,
  "toAddress": "abc123",
  "paymentDueDate": "2020-01-01",
  "consumptionStartDate": "2020-01-01",
  "consumptionEndDate": "2020-01-01",
  "reversalsAfterClose": "ALL",
  "status": "OPEN",
  "heldStatus": HeldStatus,
  "totalCharges": StatementTotalType,
  "totalCredits": StatementTotalType
}

Fields

NameDescription

costExclTax (EstimatedMoneyType)

Monetary cost of the statistic (excluding tax), if applicable.

costInclTax (EstimatedMoneyType)

Monetary cost of the statistic (including tax), if applicable.

description (String)

Description of the statistic for the parent node.

label (String)

Display label of the statistic for the parent node.

type (ReadingStatisticTypeEnum)

The type of statistic being measured for the parent node.

value (Decimal)

Consumption / generation value of the statistic, if applicable.

Example

{
  "type": "STANDING_CHARGE_COST",
  "label": "abc123",
  "description": "abc123",
  "costExclTax": EstimatedMoneyType,
  "costInclTax": EstimatedMoneyType,
  "value": 1.0
}

StorePaymentInstruction

Store a new payment instruction created through the embedded process.

The possible errors that can be raised are:

  • KT-CT-4177: Unauthorized.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

paymentInstruction (PaymentInstructionType)

The stored payment instruction.

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "paymentInstruction": PaymentInstructionType
}

SubmitCustomerFeedback

The possible errors that can be raised are:

  • KT-CT-5514: Unable to submit feedback.
  • KT-CT-5511: The feedback_id should be provided for feedback source.
  • KT-CT-5512: The feedback doesn't match the account.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

customerFeedback (CustomerFeedbackType)

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "customerFeedback": CustomerFeedbackType
}

SubmitRepaymentRequest

Mutation for executing the repayment request use case.

The possible errors that can be raised are:

  • KT-CT-1132: Unauthorized.
  • KT-CT-3927: Invalid Amount.
  • KT-CT-3928: Idempotency key used for another repayment request.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

possibleErrors ([PossibleErrorType])

repaymentRequest (RequestRepaymentOutputType)

The newly created repayment request.

Example

{
  "possibleErrors": [PossibleErrorType],
  "repaymentRequest": RequestRepaymentOutputType
}

SupplementaryLedgerType

Ledgers provide the foundation of Kraken’s bookkeeping functionality. Similar to a bank account, they allow us to keep track of financial activity on a particular Kraken account.

Fields

NameDescription

currentBalance (Int)

The current final balance of the ledger in pence.

id (ID)

ledgerType (String)

name (String)

The display name of the ledger.

paymentAdequacy (PaymentAdequacyDetailsType)

Example

{
  "id": "abc123",
  "name": "abc123",
  "ledgerType": "abc123",
  "currentBalance": 1,
  "paymentAdequacy": PaymentAdequacyDetailsType
}

Fields

NameDescription

supplyEndAt (DateTime)

The end date of the supply period.

supplyStartAt (DateTime)

The start date of the supply period.

Example

{
  "supplyStartAt": "2020-01-01T00:00:00.000Z",
  "supplyEndAt": "2020-01-01T00:00:00.000Z"
}

SupplyPointConnectionTypeEdge

A Relay edge containing a SupplyPointConnectionType and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (SupplyPointType)

The item at the end of the edge

Example

{
  "node": SupplyPointType,
  "cursor": "abc123"
}

Fields

NameDescription

maxSpinsPerMonth (Int)

The maximum number of spins per month, per fuel type.

remainingSpinsThisMonth (Int)

The number of spins remaining for this month, per fuel type.

usedSpinsThisMonth (Int)

The number of spins used this month, per fuel type.

Example

{
  "maxSpinsPerMonth": 1,
  "remainingSpinsThisMonth": 1,
  "usedSpinsThisMonth": 1
}

SuspendDeviceControl

Suspend control of a device while away from home, e.g. on holiday.

This is to prevent charging during that period.

The possible errors that can be raised are:

  • KT-CT-4301: Unable to find device for given account.
  • KT-CT-4358: Unable to suspend device control.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

krakenflexDevice (KrakenFlexDeviceType)

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "krakenflexDevice": KrakenFlexDeviceType
}

SwitchMeterPointProducts

Switch the provided meter points to the specified product.

The possible errors that can be raised are:

  • KT-GB-4116: Invalid data.
  • KT-GB-4617: Quoted product not found.
  • KT-CT-4623: Unauthorized.
  • KT-GB-4117: Unable to process product switch.
  • KT-GB-4119: Meter point already on another account.
  • KT-GB-4120: MPxN has no active agreement.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

account (AccountType)

The account associated with the meter points whose products were switched.

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "account": AccountType
}

Fields

NameDescription

cost (Float)

Cost of a tariff.

costWithTax (Float)

Cost of a tariff with tax.

tariff (String)

Tariff name.

Example

{
  "tariff": "abc123",
  "cost": 1.0,
  "costWithTax": 1.0
}

Fields

NameDescription

additionals (String)

annualStandingCharge (Float)

assumedAnnualConsumptionDay (Int)

assumedAnnualConsumptionNight (Int)

estimatedAnnualCost (Int)

exitFees (Int)

exitFeesType (String)

paymentMethod (String)

priceGuaranteedUntil (String)

standingCharge (Float)

supplier (String)

tariffCode (String)

tariffComparisonRate (Float)

tariffEndsOn (String)

tariffName (String)

tariffType (String)

unitRateDay (Float)

unitRateNight (Float)

Example

{
  "supplier": "abc123",
  "tariffName": "abc123",
  "tariffType": "abc123",
  "tariffCode": "abc123",
  "paymentMethod": "abc123",
  "tariffEndsOn": "abc123",
  "priceGuaranteedUntil": "abc123",
  "exitFees": 1,
  "exitFeesType": "abc123",
  "additionals": "abc123",
  "tariffComparisonRate": 1.0,
  "standingCharge": 1.0,
  "estimatedAnnualCost": 1,
  "annualStandingCharge": 1.0,
  "unitRateDay": 1.0,
  "unitRateNight": 1.0,
  "assumedAnnualConsumptionDay": 1,
  "assumedAnnualConsumptionNight": 1
}

Fields

NameDescription

additionals (String)

annualStandingCharge (Float)

assumedAnnualConsumption (Int)

estimatedAnnualCost (Int)

exitFees (Int)

exitFeesType (String)

paymentMethod (String)

priceGuaranteedUntil (String)

standingCharge (Float)

supplier (String)

tariffCode (String)

tariffComparisonRate (Float)

tariffEndsOn (String)

tariffName (String)

tariffType (String)

unitRate (Float)

Example

{
  "supplier": "abc123",
  "tariffName": "abc123",
  "tariffType": "abc123",
  "tariffCode": "abc123",
  "paymentMethod": "abc123",
  "tariffEndsOn": "abc123",
  "priceGuaranteedUntil": "abc123",
  "exitFees": 1,
  "exitFeesType": "abc123",
  "additionals": "abc123",
  "tariffComparisonRate": 1.0,
  "standingCharge": 1.0,
  "estimatedAnnualCost": 1,
  "annualStandingCharge": 1.0,
  "unitRate": 1.0,
  "assumedAnnualConsumption": 1
}

Fields

NameDescription

additionals (String)

annualStandingCharge (Float)

assumedAnnualConsumptionDay (Int)

assumedAnnualConsumptionNight (Int)

assumedAnnualConsumptionOffPeak (Int)

estimatedAnnualCost (Int)

exitFees (Int)

exitFeesType (String)

paymentMethod (String)

priceGuaranteedUntil (String)

standingCharge (Float)

supplier (String)

tariffCode (String)

tariffComparisonRate (Float)

tariffEndsOn (String)

tariffName (String)

tariffType (String)

unitRateDay (Float)

unitRateNight (Float)

unitRateOffPeak (Float)

Example

{
  "supplier": "abc123",
  "tariffName": "abc123",
  "tariffType": "abc123",
  "tariffCode": "abc123",
  "paymentMethod": "abc123",
  "tariffEndsOn": "abc123",
  "priceGuaranteedUntil": "abc123",
  "exitFees": 1,
  "exitFeesType": "abc123",
  "additionals": "abc123",
  "tariffComparisonRate": 1.0,
  "standingCharge": 1.0,
  "estimatedAnnualCost": 1,
  "annualStandingCharge": 1.0,
  "unitRateDay": 1.0,
  "unitRateNight": 1.0,
  "unitRateOffPeak": 1.0,
  "assumedAnnualConsumptionDay": 1,
  "assumedAnnualConsumptionNight": 1,
  "assumedAnnualConsumptionOffPeak": 1
}

Fields

NameDescription

error (String)

The error message if the task failed.

result (JSONString)

The result of the task.

status (TaskStatusEnum)

The status of the task.

Example

{
  "status": "STARTED",
  "result": {"key": "value"},
  "error": "abc123"
}

Temperature

Describes the temperature of something that is relevant to the heating system.

Fields

NameDescription

unit (TemperatureUnit!)

The units in which the temperature is being measured.

value (Decimal)

The temperature measured.

Example

{
  "value": 1.0,
  "unit": "DEGREES_CELSIUS"
}

Fields

NameDescription

maximum (Temperature)

The maximum allowable temperature in range.

minimum (Temperature)

The minimum allowable temperature in range.

Example

{
  "minimum": Temperature,
  "maximum": Temperature
}

TemporarySpecialCircumstanceRecordType

Any special circumstances that the user has notified us about, which may entitle them to some specialist services. These circumstances have an end date, after which they will not longer apply. Having young children is an example of this in the UK.

Fields

NameDescription

electricityPSRCode (String)

expiryDate (Date)

gasPSRCode (String)

id (ID)

internalCode (String)

summary (String)

Example

{
  "id": "abc123",
  "summary": "abc123",
  "internalCode": "abc123",
  "gasPSRCode": "abc123",
  "electricityPSRCode": "abc123",
  "expiryDate": "2020-01-01"
}

Fields

NameDescription

brandCode (String)

effectiveFrom (DateTime)

html (String)

The html of the terms and conditions document rendered as a JSON string.

markdown (String)

The markdown text of the terms and conditions.

name (String)

pdfUrl (String)

version (String)

Example

{
  "name": "abc123",
  "pdfUrl": "abc123",
  "brandCode": "abc123",
  "markdown": "abc123",
  "html": "abc123",
  "version": "abc123",
  "effectiveFrom": "2020-01-01T00:00:00.000Z"
}

TextType

A block of text.

Fields

NameDescription

id (ID)

Unique identifier of the object.

textAlignment (Alignment)

The text alignment.

textStyle (TextStyleV1)

The text style, i.e. header, body.

typename (String)

The name of the object's type.

value (String!)

The text content.

Example

{
  "value": "abc123",
  "textStyle": "TITLE1",
  "textAlignment": "START",
  "id": "abc123",
  "typename": "abc123"
}

Fields

NameDescription

dayRate (Float)

dayRateEpgApplied (Boolean)

Is EPG applied to the unit rate.

description (String)

displayName (String)

fullName (String)

id (ID)

nightRate (Float)

nightRateEpgApplied (Boolean)

Is EPG applied to the unit rate.

offPeakRate (Float)

offPeakRateEpgApplied (Boolean)

Is EPG applied to the unit rate.

preVatDayRate (Float)

preVatNightRate (Float)

preVatOffPeakRate (Float)

preVatStandingCharge (Float)

productCode (String)

standingCharge (Float)

tariffCode (String)

Describes a particular tariff by combining the product code, number of rates, available from date and GSP code.

Example

{
  "id": "abc123",
  "displayName": "abc123",
  "fullName": "abc123",
  "description": "abc123",
  "productCode": "abc123",
  "standingCharge": 1.0,
  "preVatStandingCharge": 1.0,
  "tariffCode": "abc123",
  "dayRate": 1.0,
  "dayRateEpgApplied": true,
  "nightRate": 1.0,
  "nightRateEpgApplied": true,
  "offPeakRate": 1.0,
  "offPeakRateEpgApplied": true,
  "preVatDayRate": 1.0,
  "preVatNightRate": 1.0,
  "preVatOffPeakRate": 1.0
}

Fields

NameDescription

discount (Decimal)

The discount that is rewarded when the power crosses the corresponding threshold. Ranges from 0.0 - 1.0.

power (Decimal)

The power (kW) that must be surpassed to achieve the corresponding discount.

windSpeed (Decimal)

The wind speed (m/s) that corresponds to the power cut-off for this threshold.

Example

{
  "power": 1.0,
  "discount": 1.0,
  "windSpeed": 1.0
}

TrackOptionType

Key value pair for the choice of tracks.

Fields

NameDescription

trackCode (String)

The value save for the user to indicate their choice of track.

trackTitle (String)

The title of the track.

Example

{
  "trackTitle": "abc123",
  "trackCode": "abc123"
}

Fields

NameDescription

demoUrl (String)

URL for tracker demo

electricity (Int)

Today's electricity costs (in pence)

gas (Int)

Today's gas costs (in pence)

Example

{
  "demoUrl": "abc123",
  "electricity": 1,
  "gas": 1
}

Fields

NameDescription

gross (Int)

The gross amount (in minor currency units).

net (Int)

The net amount (in minor currency units).

tax (Int)

The amount of tax (in minor currency units).

Example

{
  "net": 1,
  "tax": 1,
  "gross": 1
}

Fields

NameDescription

edgeCount (Int!)

Number of nodes in the edge.

edges ([TransactionConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo (PageInfo!)

Pagination data for this connection.

totalCount (Int!)

Total number of nodes.

Example

{
  "pageInfo": PageInfo,
  "edges": TransactionConnectionTypeEdge,
  "totalCount": 1,
  "edgeCount": 1
}

TransactionConnectionTypeEdge

A Relay edge containing a TransactionConnectionType and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (TransactionType)

The item at the end of the edge

Example

{
  "node": TransactionType,
  "cursor": "abc123"
}

TransferLoyaltyPointsBetweenUsers

Transfer Loyalty Points between users.

The possible errors that can be raised are:

  • KT-CT-1111: Unauthorized.
  • KT-CT-9205: Insufficient Loyalty Points.
  • KT-CT-9204: Negative or zero points set.
  • KT-CT-9208: Invalid posted at datetime.
  • KT-CT-9209: Negative Loyalty Points balance.
  • KT-CT-9210: Unhandled Loyalty Points exception.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

pointsTransferred (Int)

The number of OctoPoints that were transferred.

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "pointsTransferred": 1
}

TriggerPostUploadOperations

The possible errors that can be raised are:

  • KT-CT-8710: Invalid data.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

operationsTriggered (Boolean)

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "operationsTriggered": true
}

TypedSourceOutput

Note this is deprecated and will be removed in the future. Please use the UtilityFiltersOutput type instead.

Fields

NameDescription

readingDirection (ReadingDirectionType)

readingFrequencyType (ReadingFrequencyType)

readingQuality (ReadingQualityType)

sourceIdentifier (String)

utility (UtilityType)

Example

{
  "utility": "ELECTRICITY",
  "sourceIdentifier": "abc123",
  "readingFrequencyType": "RAW_INTERVAL",
  "readingDirection": "CONSUMPTION",
  "readingQuality": "ACTUAL"
}

Fields

NameDescription

preVatValue (Float)

Price in pence (not including VAT).

validFrom (DateTime)

validTo (DateTime)

value (Float)

Price in pence (inc VAT).

Example

{
  "validFrom": "2020-01-01T00:00:00.000Z",
  "validTo": "2020-01-01T00:00:00.000Z",
  "value": 1.0,
  "preVatValue": 1.0
}

UpdateAccountBillingAddress

The possible errors that can be raised are:

  • KT-CT-4145: Invalid address.
  • KT-CT-7123: Unauthorized.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

account (AccountType)

The updated account.

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "account": AccountType
}

UpdateAccountBillingEmail

Update the billing email for the input account number to the received email value.

The possible errors that can be raised are:

  • KT-CT-4123: Unauthorized.
  • KT-CT-4122: Invalid email.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

account (AccountInterface)

Account that was changed.

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "account": AccountInterface
}

UpdateAccountReference

Update a reference for a particular account and namespace.

The possible errors that can be raised are:

  • KT-CT-4123: Unauthorized.
  • KT-CT-8310: Invalid data.
  • KT-CT-8311: Invalid data.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

accountReference (AccountReferenceType)

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "accountReference": AccountReferenceType
}

UpdateAccountSmartMeterInterest

Set stated interest in acquiring a smart meter of an account.

The possible errors that can be raised are:

  • KT-GB-4115: Could not create smart meter interest for account.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

interestUpdated (Boolean)

possibleErrors ([PossibleErrorType])

smets2Interest (SmartMeterInterestChoices)

The interest of an account in procuring smart meters.

smets2InterestSource (SmartMeterInterestSourceChoices)

The source category of the smart meter interest update.

smets2RefusalReason (SMETS2InterestReason)

The reason why the account holder is not interested in having a smart meter installed.

Example

{
  "possibleErrors": [PossibleErrorType],
  "interestUpdated": true,
  "smets2Interest": "INTERESTED",
  "smets2InterestSource": "WEBSITE",
  "smets2RefusalReason": "SMETS2_INTEREST_REASON_DO_NOT_OWN_HOME"
}

UpdateAccountUserCommsPreferencesMutationPayload

Update the account user comms preferences.

Fields

NameDescription

clientMutationId (String)

commsPreferences (AccountUserCommsPreferences)

emailFormat (String)

errors ([ErrorType])

fontSizeMultiplier (Float)

isOptedInMeterReadingConfirmations (Boolean)

isOptedInToClientMessages (Boolean)

isOptedInToOfferMessages (Boolean)

isOptedInToRecommendedMessages (Boolean)

isOptedInToSmsMessages (Boolean)

isOptedInToThirdPartyMessages (Boolean)

isOptedInToUpdateMessages (Boolean)

isUsingInvertedEmailColours (Boolean)

preferredHoldMusic (String)

Example

{
  "isOptedInToClientMessages": true,
  "isOptedInToOfferMessages": true,
  "isOptedInToRecommendedMessages": true,
  "isOptedInToUpdateMessages": true,
  "isOptedInToThirdPartyMessages": true,
  "isOptedInMeterReadingConfirmations": true,
  "isOptedInToSmsMessages": true,
  "isUsingInvertedEmailColours": true,
  "fontSizeMultiplier": 1.0,
  "emailFormat": "abc123",
  "preferredHoldMusic": "abc123",
  "errors": [ErrorType],
  "commsPreferences": AccountUserCommsPreferences,
  "clientMutationId": "abc123"
}

Fields

NameDescription

clientMutationId (String)

dateOfBirth (Date)

email (String)

errors ([ErrorType])

familyName (String)

givenName (String)

landline (String)

mobile (String)

pronouns (String)

Example

{
  "givenName": "abc123",
  "familyName": "abc123",
  "pronouns": "abc123",
  "mobile": "abc123",
  "email": "abc123",
  "dateOfBirth": "2020-01-01",
  "landline": "abc123",
  "errors": [ErrorType],
  "clientMutationId": "abc123"
}

UpdateAutoTopUpAmount

The possible errors that can be raised are:

  • KT-CT-3815: No active payment schedule found for this account.
  • KT-CT-3941: Invalid data.
  • KT-CT-3942: An unexpected error occurred.
  • KT-CT-3947: An unexpected error occurred.
  • KT-CT-3953: The payment schedule is not a balance triggered schedule.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

possibleErrors ([PossibleErrorType])

schedule (PaymentScheduleType)

The new schedule created.

Example

{
  "possibleErrors": [PossibleErrorType],
  "schedule": PaymentScheduleType
}

UpdateCommsDeliveryPreference

Update the comms delivery preference for the input account number to the received commsDeliveryPreference value.

The possible errors that can be raised are:

  • KT-CT-4123: Unauthorized.
  • KT-CT-4136: Cannot set comms preference to email when account has no email.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

account (AccountInterface)

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "account": AccountInterface
}

UpdateFlowTemperatureConfiguration

The possible errors that can be raised are:

  • KT-CT-4321: Serializer validation error.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

possibleErrors ([PossibleErrorType])

transactionId (ID)

Unique ID associated with this operation.

Example

{
  "possibleErrors": [PossibleErrorType],
  "transactionId": "abc123"
}

UpdateMetadata

Update existing metadata on an object.

The possible errors that can be raised are:

  • KT-CT-8413: Invalid data.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

metadata (Metadata)

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "metadata": Metadata
}

UpdatePassword

Update user's password.

Fields

NameDescription

viewer (AccountUserType)

The currently authenticated user.

This field requires the Authorization header to be set.

Example

{
  "viewer": AccountUserType
}

UpdatePaymentSchedulePaymentAmount

The possible errors that can be raised are:

  • KT-GB-3919: Invalid payment schedule amount.
  • KT-GB-3920: Cannot update payment schedule amount.
  • KT-CT-3923: Unauthorized.
  • KT-CT-3941: Invalid data.
  • KT-CT-3942: An unexpected error occurred.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

paymentSchedule (PaymentScheduleType)

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "paymentSchedule": PaymentScheduleType
}

UpdatePaymentSchedulePaymentDay

The possible errors that can be raised are:

  • KT-GB-3918: Account not found.
  • KT-GB-3910: This feature is not available to business accounts.
  • KT-GB-3911: Your payment day cannot be changed at this time.
  • KT-GB-3912: Unable to update payment day.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

paymentSchedule (PaymentScheduleType)

possibleErrors ([PossibleErrorType])

Example

{
  "possibleErrors": [PossibleErrorType],
  "paymentSchedule": PaymentScheduleType
}

UpdateSensorDisplayName

The possible errors that can be raised are:

  • KT-CT-4321: Serializer validation error.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

possibleErrors ([PossibleErrorType])

transactionId (ID)

Unique ID associated with updating a sensor attribute.

Example

{
  "possibleErrors": [PossibleErrorType],
  "transactionId": "abc123"
}

UpdateSmartMeterDataPreferences

Update smart meter data preferences of an account.

The possible errors that can be raised are:

  • KT-CT-4023: Unauthorized.
  • KT-GB-4015: Cannot update smart meter reading frequency preferences.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

possibleErrors ([PossibleErrorType])

preferencesUpdated (Boolean)

smartMeterDataPreferences (SmartMeterDataPreferencesType)

Example

{
  "possibleErrors": [PossibleErrorType],
  "preferencesUpdated": true,
  "smartMeterDataPreferences": SmartMeterDataPreferencesType
}

UpdateSpecialCircumstances

The possible errors that can be raised are:

  • KT-GB-5411: Failed to update special circumstance record.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

possibleErrors ([PossibleErrorType])

specialCircumstances (SpecialCircumstancesType)

Example

{
  "possibleErrors": [PossibleErrorType],
  "specialCircumstances": SpecialCircumstancesType
}

UpdateSsd

Mutation to update the Supply Start Date (SSD) of an account.

The possible errors that can be raised are:

  • KT-GB-4101: Unable to update SSD for account.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

estimatedSsd (Date)

possibleErrors ([PossibleErrorType])

ssdUpdated (Boolean)

Example

{
  "possibleErrors": [PossibleErrorType],
  "ssdUpdated": true,
  "estimatedSsd": "2020-01-01"
}

UpdateUserMutation

The possible errors that can be raised are:

  • KT-CT-5413: Invalid data.
  • KT-CT-5414: Invalid data.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription

possibleErrors ([PossibleErrorType])

viewer (AccountUserType)

Example

{
  "possibleErrors": [PossibleErrorType],
  "viewer": AccountUserType
}

UpdateWaterSetpoint

The possible errors that can be raised are:

  • KT-CT-4321: Serializer validation error.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

possibleErrors ([PossibleErrorType])

transactionId (ID)

Unique ID associated with this operation.

Example

{
  "possibleErrors": [PossibleErrorType],
  "transactionId": "abc123"
}

UploadPostRequest

Information that should be used in the POST request to the S3 API.

For more details please see this.

Fields

NameDescription

fields (JSONString!)

key (String!)

url (String!)

Example

{
  "url": "abc123",
  "fields": {"key": "value"},
  "key": "abc123"
}

Fields

NameDescription

location (String)

Present for completed dispatches, otherwise null. The only relevant value is AT_HOME if present.

source (String)

Present for planned dispatches, otherwise null. Value can be smart-charge, test-charge or bump-charge.

Example

{
  "source": "abc123",
  "location": "abc123"
}

Fields

NameDescription

delta (Decimal)

Energy in kWh (import has a negative value).

deltaKwh (Int)

This field has been replaced by delta.

Deprecated

The 'delta_kwh' field is deprecated.

`delta` has replaced `deltaKwh` for increased precision.

- Marked as deprecated on 2024-04-19.
- Will be removed on 2025-01-01.

end (DateTime!)

The end time of the dispatch.

endDt (String)

This field has been replaced by end.

Deprecated

The 'end_dt' field is deprecated.

`end` has replaced `end_dt` for improved typing.

- Marked as deprecated on 2024-04-19.
- Will be removed on 2025-01-01.

meta (UpsideDispatchMetaType)

start (DateTime!)

The start time of the dispatch.

startDt (String)

This field has been replaced by start.

Deprecated

The 'start_dt' field is deprecated.

`start` has replaced `start_dt` for improved typing.

- Marked as deprecated on 2024-04-19.
- Will be removed on 2025-01-01.

Example

{
  "start": "2020-01-01T00:00:00.000Z",
  "end": "2020-01-01T00:00:00.000Z",
  "startDt": "abc123",
  "endDt": "abc123",
  "deltaKwh": 1,
  "delta": 1.0,
  "meta": UpsideDispatchMetaType
}

Fields

NameDescription

bookSmartMeterInstallation (String)

URL to book a smart meter installation for the given account and property.

meterReadingSubmission (String)

The meter reading submission URL for the given account.

savingSessionsDashboard (String)

Pre-signed URL to the saving session dashboard.

savingSessionsJoinCampaign (String)

Pre-signed URL to join the Saving Sessions campaign.

savingSessionsJoinNextEvent (String)

Pre-signed URL to join the next Saving Sessions event.

Deprecated

The 'savingSessionsJoinNextEvent' field is deprecated.

Use the savingSessionsDashboard instead.

- Marked as deprecated on 2022-10-31.
- Will be removed on 2022-11-15.

tariffRenewal (String)

The tariff renewal URL for the given account.

updateSensitiveCustomerData (String)

Pre-signed URL for editing a customers Priority Services Register preferences.

wheelOfFortuneElec (String)

The Wheel of Fortune URL for the given account's electricity meter.

wheelOfFortuneGas (String)

The Wheel of Fortune URL for the given account's gas meter.

Example

{
  "wheelOfFortuneElec": "abc123",
  "wheelOfFortuneGas": "abc123",
  "meterReadingSubmission": "abc123",
  "tariffRenewal": "abc123",
  "bookSmartMeterInstallation": "abc123",
  "updateSensitiveCustomerData": "abc123",
  "savingSessionsJoinCampaign": "abc123",
  "savingSessionsDashboard": "abc123",
  "savingSessionsJoinNextEvent": "abc123"
}

Fields

NameDescription

information (VehicleInformationType)

vehicleId (String)

Example

{
  "vehicleId": "abc123",
  "information": VehicleInformationType
}

Fields

NameDescription

maximumSocPercentage (Int)

The maximum state of charge (soc) %, if available.

minimumSocPercentage (Int)

The minimum state of charge (soc) %, if available.

weekdayTargetSoc (Int)

weekdayTargetTime (String)

weekendTargetSoc (Int)

weekendTargetTime (String)

Example

{
  "weekdayTargetTime": "abc123",
  "weekdayTargetSoc": 1,
  "weekendTargetTime": "abc123",
  "weekendTargetSoc": 1,
  "minimumSocPercentage": 1,
  "maximumSocPercentage": 1
}

Fields

NameDescription

brand (String)

displayName (String)

The (user chosen) display name of the vehicle, if available.

model (String)

The model name of the vehicle, if available (e.g. i3s 120).

vin (String)

year (Int)

The year of the vehicle model, if available.

Example

{
  "vin": "abc123",
  "brand": "abc123",
  "model": "abc123",
  "year": 1,
  "displayName": "abc123"
}

VerifyIdentity

The possible errors that can be raised are:

  • KT-CT-1145: Account/user details do not match.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription

possibleErrors ([PossibleErrorType])

token (String!)

An expiring token that can be used to request to update the user's email address.

Example

{
  "possibleErrors": [PossibleErrorType],
  "token": "abc123"
}

Fields

NameDescription

additionalInformation (String)

addressIdentifier (String)

anticipatedCoverageAt (String)

auxiliaryEquipment (String)

connectivityLikelihood (String)

isCoverageAvailable (Boolean)

postcode (String)

wanTechnology (String)

Example

{
  "postcode": "abc123",
  "addressIdentifier": "abc123",
  "isCoverageAvailable": true,
  "anticipatedCoverageAt": "abc123",
  "wanTechnology": "abc123",
  "auxiliaryEquipment": "abc123",
  "connectivityLikelihood": "abc123",
  "additionalInformation": "abc123"
}

Fields

NameDescription

applications (WarmHomeDiscountApplicationConnection)

Get the Warm Home Discount applications against this account. These are ordered to return the most recent first.

records (WarmHomeDiscountRecordConnection)

Get the Warm Home Discount records attached to this account. These are ordered to return the most recent first.


WarmHomeDiscountApplication

Get details about a Warm Home Discount application.

Fields

NameDescription

qualifyingComponent (QualifyingComponentOptions)

Which component criteria was chosen for the Warm Home Discount application

qualifyingCriteria (QualifyingCriteriaOptions)

Which criteria was chosen for the Warm Home Discount application

rejectionReason (BroaderGroupRejectionReason)

Reason for rejecting a Warm Home Discount application

status (Status)

The status of the Warm Home Discount application

taxYear (String)

The tax year for which the application was made.

updatedAt (Date)

The last date on which this application was updated.

yearEnding (Int!)

Example

{
  "qualifyingCriteria": "SAVINGS_ELEMENT_OF_PENSION_CREDIT",
  "qualifyingComponent": "PERSONAL_INDEPENDENCE_PAYMENTS",
  "yearEnding": 1,
  "status": "PENDING",
  "rejectionReason": "APPLICATIONS_NOT_OPEN",
  "taxYear": "abc123",
  "updatedAt": "2020-01-01"
}

WarmHomeDiscountApplicationConnection

This field is a connection type. Connections are used to implement cursor based pagination.

Fields

NameDescription

edgeCount (Int!)

Number of nodes in the edge.

edges ([WarmHomeDiscountApplicationEdge]!)

Contains the nodes in this connection.

pageInfo (PageInfo!)

Pagination data for this connection.

totalCount (Int!)

Total number of nodes.

Example

{
  "pageInfo": PageInfo,
  "edges": WarmHomeDiscountApplicationEdge,
  "totalCount": 1,
  "edgeCount": 1
}

WarmHomeDiscountApplicationEdge

A Relay edge containing a WarmHomeDiscountApplication and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (WarmHomeDiscountApplication)

The item at the end of the edge

Example

{
  "node": WarmHomeDiscountApplication,
  "cursor": "abc123"
}

Fields

NameDescription

errors ([SerializerFieldErrorsType])

id (String)

Example

{
  "errors": [SerializerFieldErrorsType],
  "id": "abc123"
}

Fields

NameDescription

isEligible (Boolean)

Is the customer eligible to apply for the Warm Home Discount as part of the Scottish Broader Group.

rejectionReason (String)

Reason why the customer is unable to apply.

Example

{
  "isEligible": true,
  "rejectionReason": "abc123"
}

WarmHomeDiscountRecord

Get details about a Warm Home Discount record.

Fields

NameDescription

accountType (WhdAccountType)

Type of account receiving the discount. Either credit the account or payment via prepay cards

credit (Int)

Amount in pence that was credited to the account as a result of the discount.

qualifyingComponent (QualifyingComponentOptions)

Which component criteria was chosen for the Warm Home Discount.

qualifyingCriteria (QualifyingCriteriaOptions)

Which criteria was chosen for the Warm Home Discount.

taxYear (String)

The tax year for which the credit was given.

yearEnding (Int!)

Example

{
  "accountType": "SMART_PREPAY",
  "yearEnding": 1,
  "qualifyingCriteria": "SAVINGS_ELEMENT_OF_PENSION_CREDIT",
  "qualifyingComponent": "PERSONAL_INDEPENDENCE_PAYMENTS",
  "credit": 1,
  "taxYear": "abc123"
}

WarmHomeDiscountRecordConnection

This field is a connection type. Connections are used to implement cursor based pagination.

Fields

NameDescription

edgeCount (Int!)

Number of nodes in the edge.

edges ([WarmHomeDiscountRecordEdge]!)

Contains the nodes in this connection.

pageInfo (PageInfo!)

Pagination data for this connection.

totalCount (Int!)

Total number of nodes.

Example

{
  "pageInfo": PageInfo,
  "edges": WarmHomeDiscountRecordEdge,
  "totalCount": 1,
  "edgeCount": 1
}

WarmHomeDiscountRecordEdge

A Relay edge containing a WarmHomeDiscountRecord and its cursor.

Fields

NameDescription

cursor (String!)

A cursor for use in pagination

node (WarmHomeDiscountRecord)

The item at the end of the edge

Example

{
  "node": WarmHomeDiscountRecord,
  "cursor": "abc123"
}

Fields

NameDescription

currentWaterTemperature (Decimal)

The current temperature of the hot water tank in Celsius

waterTemperatureEnabled (Boolean)

Example

{
  "waterTemperatureEnabled": true,
  "currentWaterTemperature": 1.0
}

Fields

NameDescription

allowableRange (TemperatureRange!)

The minimum and maximum temperatures which may be selected, dictated by the device.

currentRange (TemperatureRange!)

The min and max flow temperatures currently selected by the user.

enabled (Boolean!)

Whether weather compensation is enabled or not.

Example

{
  "enabled": true,
  "allowableRange": TemperatureRange,
  "currentRange": TemperatureRange
}

Fields

NameDescription

accountId (Int)

The account identifier.

accountNumber (String)

The account number of the customer.

achievedCarbonIndex (AchievedCarbonIndexChoices)

The corresponding index (very-low, low, moderate, high, very-high).

achievedCarbonRank (String)

Where the customer ranks for carbon intensity within their region. (1=Greenest, 100=Dirtiest).

achievedCarbonRate (Float)

Achieved unit rate over that week period.

apiGspGroupName (String)

The name given to the GSP as per NG API.

carbonGrams (Float)

The corresponding total grams of C02 over that week period.

consumptionKwh (String)

The total consumption over that week period.

gspGroupId (String)

The GSP.

hasFullReadings (String)

Whether or not the customer has full readings within the week period.

isLatestWeek (String)

If the week is the latest week i.e if the date is 2024-03-06 (Wed) then the latest full week should be 2024-02-26 (Mon).

meterPointId (Int)

The meter point identifier.

mpan (String)

Corresponding MPAN.

numberPeriods (String)

The number of smart meter readings we have within the week period (should be 336).

periodEnd (DateTime)

The last meter reading we have for this customer within week period.

periodStart (DateTime)

The first meter reading we have for this customer within week period.

propertyId (Int)

The property identifier.

weekStart (DateTime)

The Monday of the week in question.

Example

{
  "accountId": 1,
  "meterPointId": 1,
  "weekStart": "2020-01-01T00:00:00.000Z",
  "accountNumber": "abc123",
  "propertyId": 1,
  "mpan": "abc123",
  "gspGroupId": "abc123",
  "apiGspGroupName": "abc123",
  "consumptionKwh": "abc123",
  "carbonGrams": 1.0,
  "achievedCarbonRate": 1.0,
  "achievedCarbonIndex": "VERY_LOW",
  "periodStart": "2020-01-01T00:00:00.000Z",
  "periodEnd": "2020-01-01T00:00:00.000Z",
  "numberPeriods": "abc123",
  "hasFullReadings": "abc123",
  "isLatestWeek": "abc123",
  "achievedCarbonRank": "abc123"
}

Fields

NameDescription

body (String!)

Whatsapp text message body.

Example

{
  "body": "abc123"
}

Fields

NameDescription

prizeAmount (Int)

The amount won in cents.

Example

{
  "prizeAmount": 1
}

Fields

NameDescription

segments ([Int])

The integer values that make up the WoF segments.

Example

{
  "segments": [1]
}

Fields

NameDescription

boostEnabled (Boolean)

Whether or not boost is enabled for a sensor.

code (String)

Code name of the sensor.

displayName (String)

User determined name for a sensor.

firmwareVersion (String)

Sensor firmware version.

id (ID)

Sensor ID.

type (SensorType)

Sensor type (Zigbee).

Example

{
  "code": "abc123",
  "displayName": "abc123",
  "type": "ZIGBEE",
  "id": "abc123",
  "firmwareVersion": "abc123",
  "boostEnabled": true
}

Fields

NameDescription

callForHeat (Boolean)

Whether the zone is calling for heat.

code (Zone)

Code name of the zone.

currentOperation (ZoneCurrentOperation)

Current operation.

displayName (String)

User determined name for a zone.

emergency (Boolean)

Default mode, if the zone loses connection to the primary sensor.

enabled (Boolean)

Enabled allows zone to heat when callForHeat is True.

heatDemand (Boolean)

Whether there is demand for heat (True) or not (False).

previousOperation (ZonePreviousOperation)

Previous operation.

primarySensor (String)

Primary sensor for the zone.

sensors ([SensorConfiguration])

All associated sensors and ADCs.

zoneType (ZoneType)

What the zone is used for (heating, water etc).

Example

{
  "code": "WATER",
  "zoneType": "HEAT",
  "enabled": true,
  "displayName": "abc123",
  "primarySensor": "abc123",
  "currentOperation": ZoneCurrentOperation,
  "previousOperation": ZonePreviousOperation,
  "callForHeat": true,
  "heatDemand": true,
  "emergency": true,
  "sensors": ADCSensorConfiguration
}

Fields

NameDescription

action (OperationAction)

For zones which do not support setpoints, whether the operation was an ON or an OFF.

end (DateTime)

End time for the current operation.

mode (Mode)

Heating mode in zone.

setpointInCelsius (Float)

Target temperature for a zone, in celsius.

Example

{
  "mode": "ON",
  "setpointInCelsius": 1.0,
  "action": "ON",
  "end": "2020-01-01T00:00:00.000Z"
}

Fields

NameDescription

configuration (ZoneConfiguration)

Configuration for a zone.

schedules ([Schedule])

The heating schedules being used by this zone.

Example

{
  "configuration": ZoneConfiguration,
  "schedules": [Schedule]
}

Fields

NameDescription

action (OperationAction)

For zones which do not support setpoints, whether the operation was an ON or an OFF.

mode (Mode)

Heating mode in zone.

setpointInCelsius (Float)

Target temperature for a zone, in celsius.

Example

{
  "mode": "ON",
  "setpointInCelsius": 1.0,
  "action": "ON"
}

Fields

NameDescription

telemetry (ZoneTelemetry)

The telemetry data of a zone.

zone (Zone)

The heat pump controller zone, i.e. WATER, ZONE1, ZONE2 or AUXILIARY.

Example

{
  "zone": "WATER",
  "telemetry": ZoneTelemetry
}

Fields

NameDescription

heatDemand (Boolean)

Whether there is demand for heat (True) or not (False).

mode (Mode)

Heating mode in zone.

relaySwitchedOn (Boolean)

Whether relay is currently switched on (True) or off (False).

retrievedAt (DateTime)

Time at which the telemetry was retrieved.

setpointInCelsius (Float)

Target temperature for a zone, in celsius.

Example

{
  "setpointInCelsius": 1.0,
  "mode": "ON",
  "relaySwitchedOn": true,
  "heatDemand": true,
  "retrievedAt": "2020-01-01T00:00:00.000Z"
}