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.

API Site

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.

preferredSsd(Date)

Preferred supply start date. If null, it means ASAP.

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",
  "preferredSsd": "2020-01-01"
}

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
edgeCount(Int!)

Number of nodes in the edge.

edges([AccountConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo(PageInfo!)

Pagination data for this connection.

totalCount(Int!)

Total number of nodes.

Example

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

AccountConnectionTypeEdge

A Relay edge containing a AccountConnectionType and its cursor.

Fields

NameDescription
cursor(String!)

A cursor for use in pagination

node(AccountType)

The item at the end of the edge

Example

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

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
body(String!)

createdAt(DateTime!)

id(ID!)

isPinned(Boolean!)

unpinAt(DateTime)

Example

{
  "id": "abc123",
  "body": "abc123",
  "isPinned": true,
  "createdAt": "2020-01-01T00:00:00.000Z",
  "unpinAt": "2020-01-01T00:00:00.000Z"
}

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 the currency's minor unit

id(ID!)

paymentDate(Date!)

The date this payment is scheduled to be debited

paymentInstruction(PaymentInstructionType)

The payment instruction that was used to make this payment.

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",
  "paymentInstruction": PaymentInstructionType,
  "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([AccountReminderConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo(PageInfo!)

Pagination data for this connection.

totalCount(Int!)

Total number of nodes.

Example

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

AccountReminderConnectionTypeEdge

A Relay edge containing a AccountReminderConnectionType and its cursor.

Fields

NameDescription
cursor(String!)

A cursor for use in pagination

node(Reminder)

The item at the end of the edge

Example

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

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 the currency's minor unit

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"
}

AccountSearchItemType

A single account search hit

Fields

NameDescription
account(AccountType)

The account found.

score(Decimal)

How well the account matched the search terms.

Example

{
  "account": AccountType,
  "score": "1.0"
}

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.

Arguments

after (String)

before (String)

first (Int)

last (Int)

applications(AccountApplicationConnectionTypeConnection)

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

Arguments

after (String)

before (String)

first (Int)

last (Int)

status (AccountApplicationStatus)

The account application status.

assistanceAgreements([AssistanceAgreementType])

Assistance agreements for account.

balance(Int!)

The current account balance.

Arguments

includeAllLedgers (Boolean)

If this variable is set to true, the balance will be calculated based on the sum of balances on all ledgers configured to contribute to this account's balance. Otherwise, only the main ledger's balance will be fetched (legacy behaviour). If you are unsure, set this value to true.

bill(BillInterface)

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

Arguments

billType (BillTypeEnum)

id (ID)

The unique identifier of the bill.

identifier (String)

The unique identifier of the bill. A pending billing document will not have an identifier yet. And not all finalized billing documents will have an identifier. Prefer using the id field unless advised by Kraken.

ledgerNumber (String)

The number of the ledger for the bill. When provided, only the period- or item-based documentfor this account that is linked to that ledger is returned; pre-kraken, collective bills, and legacy bills are excluded.

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.

billingSubName(String)

The billing sub name of the account.

billingTriggerConfiguration(BillingTriggerConfiguration)

The active billing trigger configuration for the account.

bills(BillConnectionTypeConnection)

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

Arguments

after (String)

before (String)

first (Int)

fromDate (Date)

Optional date representing the beginning of the search results. This date value is inclusive.

includeBillsWithoutPDF (Boolean)

Include bills without PDFs.

includeHeldStatements (Boolean)

Include held statements within the results.

includeHistoricStatements (Boolean)

Include pre-Kraken / historical statements within the results.

includeOpenStatements (Boolean)

Include open statements. This flag needs to be used along with includeBillsWithoutPDF=false otherwise results will prove unexpected.

issuedFromDate (Date)

Optional date representing the beginning of the search results based on issued date. This date value is inclusive.

issuedToDate (Date)

Optional date representing the end of the search results based on issued date. This date value is exclusive.

last (Int)

ledgerNumber (String)

The number of a ledger for the bill. When provided, only period- or item-based documents for this account that are linked to that ledger are returned; collective bills and legacy bills are excluded. Historic/pre-Kraken bills are unaffected by this filter and are included or excluded solely by includeHistoricStatements.

offset (Int)

onlyCurrentEmail (Boolean)

Only include bills emailed to the current user's email.

orderBy (BillsOrderBy)

The order in which to return the bills.

toDate (Date)

Optional date representing the end of the search results. This date value is exclusive.

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.
- Scheduled for removal on or after 2024-01-01.

campaigns([AccountCampaignType])

The campaigns associated with an account.

canModifyPayments(CanModifyPaymentsType)

Data about whether or not an account can modify their payments.

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.
- Scheduled for removal on or after 2024-01-01.

complaints(ComplaintConnectionTypeConnection)

The complaints associated with an account.

Arguments

after (String)

before (String)

first (Int)

last (Int)

consents([ConsentType!]!)

Consents linked to this account.

contributionAgreements([ContributionAgreementType])

Contribution agreements for account.

createdAt(DateTime)

The datetime that the account was originally created.

customerAssets([CustomerAssetType])

Get customer assets for an account.

debtCollectionProceedings([DebtCollectionProceedingType])

Debt collection proceedings for account.

directDebitInstructions(DirectDebitInstructionConnectionTypeConnection)

The direct debit instructions of the account

Arguments

after (String)

before (String)

first (Int)

last (Int)

statuses ([DirectDebitInstructionStatus])

Filter the direct debit instructions by status

documentAccessibility(DocumentAccessibilityChoices)

The document accessibility preference of the account.

events(AccountEventConnectionTypeConnection)

The account events that were recorded for the account.

Arguments

after (String)

before (String)

eventTypes ([AccountEventType])

Filter the account events by their type.

first (Int)

last (Int)

fileAttachments([AccountFileAttachment])

Files attached to this account.

id(ID!)

isInHardship(Boolean)

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

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.

Arguments

includeDebtLedgers (Boolean)

If this variable is set to false, debt ledgerswill be filtered out of the ledgers list.

ledgerId (ID)

The ledger to return.

ledgerNumber (String)

The ledger to return by its number.

marketSupplyAgreements(AgreementConnection)

Retrieve all market supply agreements under this account. Note that when active is set to false it actually means 'return both active and inactive agreements'.

Arguments

active (Boolean)

Whether to return active agreements only.

after (String)

before (String)

first (Int)

id (ID)

Filter the list to the agreement with this id.

last (Int)

maximumRefund(MaximumRefundType)

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

Arguments

ledgerNumber (String)

The ledger number to calculate maximum refund for.

metadata([Metadata])

Metadata associated with the account.

notes([AccountNoteType])

Notes for the account.

number(String)

A code that uniquely identifies the account.

overdueBalance(Int)

The current account overdue balance.

paginatedFileAttachments(AccountFileAttachmentConnectionTypeConnection)

Files attached to this account.

Arguments

after (String)

before (String)

category (String)

File attachment category.

first (Int)

id (Int)

File attachment id.

last (Int)

paginatedPaymentForecast(PaymentForecastConnectionTypeConnection)

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

Arguments

after (String)

before (String)

dateTo (Date)

The end date to retrieve forecasts for. This end date is inclusive.

first (Int)

last (Int)

ledgerId (Int)

The ledger to return payment forecasts from. Defaults to the main ledger when no ID is passed.

ledgerNumber (String)

The number of the ledger to return payment forecasts from. Defaults to the main ledger when no number is passed.

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.
- Scheduled for removal on or after 2025-01-01.

Arguments

dateTo (Date!)

The end date to retrieve forecasts for. This end date is inclusive.

ledgerId (Int)

The ledger to return payment forecasts from. Defaults to the main ledger when no ID is passed.

ledgerNumber (String)

The number of the ledger to return payment forecasts from. Defaults to the main ledger when no number is passed.

paymentMethods(PaymentInstructionConnectionTypeConnection)

The payment instructions of the account.

Arguments

after (String)

before (String)

first (Int)

last (Int)

statuses ([PaymentInstructionStatus])

Filter the payment instructions by status.

paymentPlans(PaymentPlanConnectionTypeConnection)

The payment plans that have been created for this account.

Arguments

after (String)

before (String)

first (Int)

last (Int)

paymentSchedules(PaymentScheduleConnectionTypeConnection)

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

Arguments

active (Boolean)

activeOnDate (Date)

after (String)

before (String)

canCreatePayment (Boolean)

first (Int)

includeDormant (Boolean)

If false, we remove the currently valid schedule if it has already fulfilled its purpose and will have no further impact on customer payments, along with any schedules which are not valid from today.

last (Int)

ledgerId (ID)

The ledger id to return the payment schedules from.

ledgerNumber (String)

The ledger number to return the payment schedules from.

ledgerType (Int)

The ledger to return transactions from.

payments(AccountPaymentConnectionTypeConnection)

The payments made into an account from a payment instruction.

Arguments

after (String)

before (String)

first (Int)

includePromises (Boolean)

Whether to include payment promises (of any kind: made, broken or fulfilled) or not. The default is to include them.

last (Int)

ledgerId (String)

The id of the ledger to return payments from.

ledgerNumber (String)

WARNING: Will be mandatory in future versions

The number of the ledger to return payments from.

reason (PaymentReasonOptions)

Filter for payments that were taken for a particular reason.

portfolio(PortfolioType)

The portfolio this account is linked to.

preferredLanguageForComms(String)

The language that the account preferred for communications.

properties([PropertyType])

Properties linked to the account now and in the future.

Arguments

activeFrom (DateTime)

Returns properties that have an effective period that ends at or after the given activeFrom datetime.

provisionalTransactions(ProvisionalTransactionConnectionTypeConnection)

Arguments

after (String)

before (String)

first (Int)

last (Int)

references([AccountReferenceType])

Account references linked to this account.

referrals(ReferralConnectionTypeConnection)

The referrals created by this account.

Arguments

after (String)

before (String)

first (Int)

last (Int)

status (ReferralStatus)

Only return referrals with the specified status. Return all referrals by default.

referralsCreated(Int)

Number of referrals created by this account.

reminders(AccountReminderConnectionTypeConnection)

The reminders associated with an account.

Arguments

after (String)

before (String)

first (Int)

last (Int)

repayments(AccountRepaymentConnectionTypeConnection)

The repayments that have been requested for this account.

Arguments

after (String)

before (String)

first (Int)

last (Int)

statuses ([AccountRepaymentStatusOptions])

Only return repayments whose status matches one of these statuses.

requestRefundEligibility(RequestRefundEligibilityType)

Details about the eligibility status for requesting a refund.

Arguments

ledgerNumber (String)

The ledger number to check refund eligibility.

rewards([RewardType])

The rewards applied to this account.

splitBillingAddress([String])

List of billing address lines.

status(AccountStatus)

The current status of the account.

transactions(TransactionConnectionTypeConnection)

Fetch transactions that have taken place on the account.

Arguments

after (String)

before (String)

first (Int)

fromDate (Date)

Optional date representing the beginning of the postedDate range filter. This date value is inclusive.

includeAllLedgers (Boolean)

In a multi-ledger scenario, include all ledgers' transactions if true. Analogously, if false and no ledgerId or ledger_number argument is present, the list of transactions defaults to the main ledger (legacy behaviour).

last (Int)

ledgerId (Int)

The ledger to return transactions from.

ledgerNumber (String)

The number of the ledger to return transactions from.

offset (Int)

orderBy (TransactionsOrderBy)

The order in which to return the transactions.

toDate (Date)

Optional date representing the end of the postedDate range filter. This date value is exclusive.

transactionTypes ([TransactionTypeFilter])

Include only these specific transaction types in the result.

transactionTypesExcluded ([TransactionTypeFilter])

Exclude these specific transaction types from the result.

urn(String)

Unique reference number from a 3rd party enrolment.

users([AccountUserType!]!)

Example

{
  "id": "abc123",
  "number": "abc123",
  "status": "PENDING",
  "paymentSchedules": PaymentScheduleConnectionTypeConnection,
  "users": AccountUserType,
  "complaints": ComplaintConnectionTypeConnection,
  "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,
  "paymentPlans": PaymentPlanConnectionTypeConnection,
  "paymentForecast": [PaymentForecastType],
  "paginatedPaymentForecast": PaymentForecastConnectionTypeConnection,
  "referrals": ReferralConnectionTypeConnection,
  "referralsCreated": 1,
  "rewards": [RewardType],
  "activeReferralSchemes": ReferralSchemeTypes,
  "transactions": TransactionConnectionTypeConnection,
  "provisionalTransactions": ProvisionalTransactionConnectionTypeConnection,
  "annualStatements": AnnualStatementConnectionTypeConnection,
  "bills": BillConnectionTypeConnection,
  "billingOptions": BillingOptionsType,
  "billingTriggerConfiguration": BillingTriggerConfiguration,
  "bill": BillInterface,
  "directDebitInstructions": DirectDebitInstructionConnectionTypeConnection,
  "paymentMethods": PaymentInstructionConnectionTypeConnection,
  "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],
  "contributionAgreements": [ContributionAgreementType],
  "assistanceAgreements": [AssistanceAgreementType],
  "createdAt": "2020-01-01T00:00:00.000Z",
  "preferredLanguageForComms": "abc123",
  "consents": ConsentType,
  "reminders": AccountReminderConnectionTypeConnection,
  "properties": [PropertyType],
  "marketSupplyAgreements": AgreementConnection,
  "canModifyPayments": CanModifyPaymentsType
}

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.

isOptedInToLifeSupportCall(Boolean)

Whether the user is opted in to life support call.

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.

smsOptInLastChangeDate(DateTime)

The date the SMS opt-in was last changed.

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",
  "smsOptInLastChangeDate": "2020-01-01T00:00:00.000Z",
  "isOptedInToLifeSupportCall": true
}

Fields

NameDescription
isSensitive(Boolean)

Whether the value is sensitive and encrypted.

namespace(String)

The namespace for the property.

value(String)

The property value.

Example

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

AccountUserPermission

Holds information about a specific permission.

Fields

NameDescription
permission(String)

The short name of the permission.

Example

{
  "permission": "abc123"
}

AccountUserRoleType

The role a user has in association with one account.

Fields

NameDescription
account(AccountType!)

id(ID!)

role(RoleString)

The account role.

user(AccountUserType!)

Example

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

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.

Arguments

accountNumber (String)

Optionally filter the user's account roles to only return those linked to specific accounts.

accounts([AccountInterface])

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

Arguments

allowedBrandCodes ([BrandChoices])

Optionally filter the user's accounts to only return those linked to portfolios on the specified brands.

excludeAccountTypes ([AccountTypeChoices])

Optionally exclude accounts with any of the given account types.

excludeAccountsWithoutAgreements (Boolean)

Optionally exclude accounts that have never had an agreement.

restrictToAccountNumbers ([String])

Optionally restrict user accounts to only return those with the specified account numbers.

restrictToPublicFacingBrands (Boolean)

Optionally restrict user accounts to only return those linked to portfolios on public facing brands.

address(RichAddressType)

This user's address.

alternativePhoneNumbers([String])

List of alternative phone numbers for the account user.

businesses(BusinessConnectionTypeConnection)

List of businesses that the user has access to through their granted roles.

Arguments

after (String)

before (String)

first (Int)

last (Int)

consents([ConsentType!]!)

Consents linked to this user.

createdAt(DateTime!)

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.
- Scheduled for removal on or after 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.
- Scheduled for removal on or after 2023-06-05.

fullName(String)

The user's full name.

givenName(String!)

hasFamilyIssues(Boolean)

Whether there are family issues.

id(ID!)

isActive(Boolean)

Whether this user is active.

isDeceased(Boolean!)

Designates whether this user is deceased.

isInHardship(Boolean)

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

label(String)

A free text field to help identifying the customer (e.g. for a job title).

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.
- Scheduled for removal on or after 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.
- Scheduled for removal on or after 2023-06-05.

liveSecretKey(String)

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

mobile(String!)

number(String)

A code that uniquely identifies the account user.

paymentMethods(PaymentInstructionConnectionTypeConnection)

List payment instructions linked to this user.

Arguments

after (String)

before (String)

first (Int)

last (Int)

statuses ([PaymentInstructionStatus])

Optionally filter the payment instructions by status.

validAt (DateTime)

Optionally return only payment instructions valid at the given datetime.

permissions([AccountUserPermission])

Holds information about the permissions of the current viewer.

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.
- Scheduled for removal on or after 2024-01-01.

portfolioIds([ID])

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

Arguments

allowedBrandCodes ([BrandChoices])

Optionally filter the user's portfolios to only return those linked to specified brands.

restrictToPublicFacingBrands (Boolean)

Optionally restrict the user portfolios to only return those linked to public facing brands.

portfolioUserRoles([PortfolioUserRoleType])

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

Arguments

accountNumber (String)

Return the user portfolio roles for this account's portfolio.

portfolioNumber (String)

Optionally filter the portfolio's user roles to only return those linked to a specific portfolio.

portfolios(PortfolioConnectionTypeConnection)

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

Arguments

after (String)

allowedBrandCodes ([BrandChoices])

Optionally filter the user's portfolios to only return those linked to specified brands.

before (String)

first (Int)

last (Int)

restrictToPublicFacingBrands (Boolean)

Optionally restrict the user portfolios to only return those linked to public facing brands.

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",
  "number": "abc123",
  "accounts": AccountInterface,
  "givenName": "abc123",
  "familyName": "abc123",
  "email": "abc123",
  "mobile": "abc123",
  "landline": "abc123",
  "title": "abc123",
  "pronouns": "abc123",
  "isDeceased": true,
  "liveSecretKey": "abc123",
  "createdAt": "2020-01-01T00:00:00.000Z",
  "permissions": [AccountUserPermission],
  "displayName": "abc123",
  "firstName": "abc123",
  "lastName": "abc123",
  "fullName": "abc123",
  "preferredName": "abc123",
  "isActive": true,
  "address": RichAddressType,
  "portfolioId": "abc123",
  "portfolioIds": ["abc123"],
  "portfolios": PortfolioConnectionTypeConnection,
  "businesses": BusinessConnectionTypeConnection,
  "specialCircumstances": SpecialCircumstancesType,
  "preferences": AccountUserCommsPreferences,
  "dateOfBirth": "2020-01-01",
  "label": "abc123",
  "landlinePhoneNumber": "abc123",
  "alternativePhoneNumbers": ["abc123"],
  "hasFamilyIssues": true,
  "isInHardship": true,
  "accountUserRoles": [AccountUserRoleType],
  "portfolioUserRoles": [PortfolioUserRoleType],
  "details": [AccountUserDetailType],
  "consents": ConsentType,
  "paymentMethods": PaymentInstructionConnectionTypeConnection
}

Fields

NameDescription
timestamp(DateTime)

The time the data was reported.

value(HeatPumpActivity)

The latest reported activity of the heat pump.

Example

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

Fields

NameDescription
edgeCount(Int!)

Number of nodes in the edge.

edges([AgreementEdge]!)

Contains the nodes in this connection.

pageInfo(PageInfo!)

Pagination data for this connection.

totalCount(Int!)

Total number of nodes.

Example

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

AgreementEdge

A Relay edge containing a Agreement and its cursor.

Fields

NameDescription
cursor(String!)

A cursor for use in pagination

node(CommonAgreementType)

The item at the end of the edge

Example

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

Fields

NameDescription
allocationAmount(Int!)

The amount of the transaction that has been allocated to the billing document. A positive amount indicates money received from the customer (payments, credits). A negative amount indicates money paid to the customer (repayments).

allocationReason(String)

Reason for the allocation intention.

transactionAmount(Int!)

The amount of the transaction. A positive amount indicates money received from the customer (payments, credits). A negative amount indicates money paid to the customer (repayments).

transactionId(Int!)

ID of the allocated transaction.

transactionType(TransactionTypes!)

The type of the transaction.

Example

{
  "transactionId": 1,
  "transactionType": "CREDIT",
  "transactionAmount": 1,
  "allocationAmount": 1,
  "allocationReason": "abc123"
}

AllocationType

Represents an allocation of a fulfilment to an obligation.

Fields

NameDescription
amount(Int!)

The amount of the allocation (in minor currency units), unsigned.

fulfilment(FulfilmentType!)

The fulfilment that is allocated.

Example

{
  "amount": 1,
  "fulfilment": FulfilmentType
}

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!)

ID for the annulment billing document.

pdfUrl(String)

URL to the PDF of the annulment.

Example

{
  "id": 1,
  "annulledBillingDocumentId": 1,
  "firstIssued": "2020-01-01T00:00:00.000Z",
  "pdfUrl": "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"
}

AttachmentType

Represents a file to attach to a communication

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"
}

AuthFlow

A step where the user must complete an auth flow.

Fields

NameDescription
authorizationUri(String)

The URL to redirect the user to for authorization.

id(ID)

A unique identifier for this onboarding step.

redirectUri(String)

The URI where the auth flow is going to redirect back to at the end.

Example

{
  "id": "abc123",
  "redirectUri": "abc123",
  "authorizationUri": "abc123"
}

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])

Field with the possible errors of the query/mutation.

Deprecated

The 'possibleErrors' field is deprecated.

Please use the 'possibleErrors' query or the 'X-Kraken-Possible-Errors' header instead.

- Marked as deprecated on 2025-01-31.
- Scheduled for removal on or after 2025-03-01.

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
connectionStatus(ConnectionStatus)

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

powerInKw(Decimal)

The current power being used to charge the battery, or discharging from the battery, in kW. A negative value indicates this power is being used to charge the battery; a positive value indicates power is being discharged from the battery.

stateOfCharge(Decimal)

The current state of charge (SoC) of the battery (0-100).

Example

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

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"
}

Fields

NameDescription
edgeCount(Int!)

Number of nodes in the edge.

edges([BillTransactionConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo(PageInfo!)

Pagination data for this connection.

totalCount(Int!)

Total number of nodes.

Example

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

BillTransactionConnectionTypeEdge

A Relay edge containing a BillTransactionConnectionType and its cursor.

Fields

NameDescription
cursor(String!)

A cursor for use in pagination

node(BillTransactionType)

The item at the end of the edge

Example

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

BillingAttachmentConnectionTypeConnection

A connection that can provide links to the attachments of the bill.

Fields

NameDescription
edgeCount(Int!)

Number of nodes in the edge.

edges([BillingAttachmentConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo(PageInfo!)

Pagination data for this connection.

totalCount(Int!)

Total number of nodes.

Example

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

BillingAttachmentConnectionTypeEdge

A Relay edge containing a BillingAttachmentConnectionType and its cursor.

Fields

NameDescription
cursor(String!)

A cursor for use in pagination

node(BillingAttachmentType)

The item at the end of the edge

Example

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

BillingAttachmentType

Attachments are associated with a bill files and can be used to provide additional information to the customer.

Fields

NameDescription
filename(String)

The name of the file.

temporaryUrl(String)

The TemporaryURL type represents a temporary URL at which the file is available. It is intended for redirection purposes, NOT persistence in any form. (e.g. inclusion in emails or the body of a web page).

temporaryUrlExpiresAt(DateTime)

The expiry datetime field of the temporary URL.

Example

{
  "temporaryUrl": "abc123",
  "temporaryUrlExpiresAt": "2020-01-01T00:00:00.000Z",
  "filename": "abc123"
}

Fields

NameDescription
allocationIntentions([AllocationIntentionType]!)

Allocation intentions for the billing document.

allocations([AllocationType]!)

Allocations for the billing document.

dueDate(Date!)

The date when the payment is due for the billing document.

expectedAmount(Int!)

The expected amount for the billing document (in minor currency units).

remainingAmount(Int!)

The amount that remains to be paid for the billing document (in minor currency units).

Example

{
  "dueDate": "2020-01-01",
  "expectedAmount": 1,
  "remainingAmount": 1,
  "allocationIntentions": AllocationIntentionType,
  "allocations": AllocationType
}

BillingOperationFrequency

A billing operation frequency definition.

Fields

NameDescription
frequency(BillingTriggerFrequency!)

The billing frequency.

multiplier(Int!)

The frequency multiplier (e.g., 2 for bi-monthly).

operationType(BillingTriggerOperationType!)

The type of billing operation.

targetType(BillingTriggerTargetType!)

The type of target this definition applies to.

temporalParams([BillingOperationTemporalParamsType!]!)

Temporal parameters for operation parameters.

triggerAtStartDay(Int!)

Day of the month when billing is triggered (1-31).

triggerAtStartMonth(Int!)

Month of the year when billing starts (1-12).

Example

{
  "operationType": "CHARGE_TARGET",
  "targetType": "CHARGING_LEDGER",
  "frequency": "DAILY",
  "multiplier": 1,
  "triggerAtStartDay": 1,
  "triggerAtStartMonth": 1,
  "temporalParams": BillingOperationTemporalParamsType
}

BillingOperationTemporalParamsType

Temporal parameters for billing frequency operations.

Fields

NameDescription
paramKey(String!)

The key of the parameter (e.g., charge_to).

startDay(Int!)

Day of the month (1-31).

startMonth(Int!)

Month of the year (1-12).

Example

{
  "paramKey": "abc123",
  "startDay": 1,
  "startMonth": 1
}

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"
}

BillingTriggerConfiguration

A billing trigger configuration with its effective period and operation frequencies.

This represents a complete billing configuration for a target, including effective period and what operations should be performed at what frequencies.

Fields

NameDescription
effectiveFrom(DateTime!)

When this configuration becomes effective.

effectiveTo(DateTime)

When this configuration stops being effective (null if no end date).

isActive(Boolean!)

Whether this configuration is currently active.

nextIssueDate(Date)

Next date when a billing document will be issued (null if not calculable).

operationFrequencies([BillingOperationFrequency!]!)

List of billing operation frequencies in this configuration.

targetType(BillingTriggerTargetType!)

The type of target this configuration applies to.

Example

{
  "effectiveFrom": "2020-01-01T00:00:00.000Z",
  "effectiveTo": "2020-01-01T00:00:00.000Z",
  "isActive": true,
  "targetType": "CHARGING_LEDGER",
  "operationFrequencies": BillingOperationFrequency,
  "nextIssueDate": "2020-01-01"
}

BusinessConnectionTypeConnection

Paginator of Businesses

Fields

NameDescription
edgeCount(Int!)

Number of nodes in the edge.

edges([BusinessConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo(PageInfo!)

Pagination data for this connection.

totalCount(Int!)

Total number of nodes.

Example

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

BusinessConnectionTypeEdge

A Relay edge containing a BusinessConnectionType and its cursor.

Fields

NameDescription
cursor(String!)

A cursor for use in pagination

node(BusinessType)

The item at the end of the edge

Example

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

Fields

NameDescription
key(String!)

The key of the business detail.

value(String)

The value of the business detail.

Example

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

Fields

NameDescription
billingAddress(RichAddressType)

The billing address of the business.

businessType(BusinessTypeOptions)

The company type of a business account.

details([BusinessDetailType])

The details of the business.

id(ID!)

The business ID.

legalAddress(RichAddressType)

The legal address of the business.

linkedAccountNumber(ID!)

Account number linked to this business.

The possible errors that can be raised are:

  • KT-CT-11102: Business without related account.
  • KT-CT-1113: Disabled GraphQL field requested.

Deprecated

The 'linkedAccountNumber' field is deprecated.

Please use 'linkedAccountNumbers' instead, businesses can be related to multiple Accounts now.

- Marked as deprecated on 2025-02-05.
- Scheduled for removal on or after 2025-08-01.

linkedAccountNumbers([ID]!)

Account numbers linked to this business.

name(String!)

The business' name.

number(String!)

The business' number.

paymentMethods(PaymentInstructionConnectionTypeConnection)

List payment instructions owned by this business.

Arguments

after (String)

before (String)

first (Int)

last (Int)

statuses ([PaymentInstructionStatus])

Optionally filter the payment instructions by status.

validAt (DateTime)

Optionally return only payment instructions valid at the given datetime.

sectors([BusinessSectorString!]!)

The sectors the business operates in.

segmentName(String)

The segment this business is assigned to.

Example

{
  "id": "abc123",
  "name": "abc123",
  "number": "abc123",
  "businessType": "SOLE_TRADER",
  "sectors": BusinessSectorString,
  "details": [BusinessDetailType],
  "billingAddress": RichAddressType,
  "legalAddress": RichAddressType,
  "linkedAccountNumber": "abc123",
  "linkedAccountNumbers": "abc123",
  "segmentName": "abc123",
  "paymentMethods": PaymentInstructionConnectionTypeConnection
}

Fields

NameDescription
canAmendPayments(Boolean)

Whether or not the account can amend payments.

canCancelPayments(Boolean)

Whether or not the account can cancel payments.

Example

{
  "canAmendPayments": true,
  "canCancelPayments": true
}

CancelSmartFlexOnboarding

Cancel onboarding of a device with SmartFlex.

The possible errors that can be raised are:

  • KT-CT-1111: Unauthorized.
  • 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])

Field with the possible errors of the query/mutation.

Deprecated

The 'possibleErrors' field is deprecated.

Please use the 'possibleErrors' query or the 'X-Kraken-Possible-Errors' header instead.

- Marked as deprecated on 2025-01-31.
- Scheduled for removal on or after 2025-03-01.

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
}

CharacteristicType

A characteristic associated with a product.

Fields

NameDescription
code(String!)

The code of the characteristic.

description(String!)

The description of the characteristic.

name(String!)

The name of the characteristic.

values([CharacteristicValueUnion]!)

The possible values for the characteristic (can be strings or integers).

Example

{
  "code": "abc123",
  "name": "abc123",
  "description": "abc123",
  "values": StringCharacteristicValueType
}

Fields

NameDescription
amperage(Int)

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

integrationStatus(IntegrationStatus)

Shows the availability status of an integration.

isIntegrationLive(Boolean)

model(String)

powerInKw(Decimal)

variantId(Int)

Example

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

Fields

NameDescription
make(String)

models([ChargePointVariantModelType])

Example

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

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"
}

Fields

NameDescription
account(AccountType!)

The account associated with the agreement.

agreedAt(DateTime)

agreedFrom(DateTime)

The datetime the agreement was entered.

agreedTo(DateTime)

The datetime the agreement was terminated.

characteristicValues([CharacteristicValueInterface])

The characteristic values associated with the agreement.

Arguments

at (DateTime)

The datetime to check the characteristic value at.

id(ID!)

isActive(Boolean)

Whether the agreement is currently active.

isRevoked(Boolean)

Whether the agreement is revoked.

params(JSONString)

General parameters providing additional information about the agreement.

product(SupplyProductType)

The product associated with the agreement.

rescissionDeadlineAt(DateTime)

The deadline until which the customer is allowed to rescind this agreement. If it is null, rescission is not permitted.

supplyPoint(SupplyPointType!)

The agreement's supply point.

terminatedAt(DateTime)

validFrom(DateTime!)

validTo(DateTime)

Example

{
  "id": "abc123",
  "validFrom": "2020-01-01T00:00:00.000Z",
  "validTo": "2020-01-01T00:00:00.000Z",
  "agreedAt": "2020-01-01T00:00:00.000Z",
  "terminatedAt": "2020-01-01T00:00:00.000Z",
  "rescissionDeadlineAt": "2020-01-01T00:00:00.000Z",
  "account": AccountType,
  "supplyPoint": SupplyPointType,
  "product": SupplyProductType,
  "isActive": true,
  "characteristicValues": CharacteristicValueInterface,
  "agreedFrom": "2020-01-01T00:00:00.000Z",
  "agreedTo": "2020-01-01T00:00:00.000Z",
  "isRevoked": true,
  "params": {"key": "value"}
}

ComplaintConnectionTypeConnection

Paginator of Complaint type.

Fields

NameDescription
edgeCount(Int!)

Number of nodes in the edge.

edges([ComplaintConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo(PageInfo!)

Pagination data for this connection.

totalCount(Int!)

Total number of nodes.

Example

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

ComplaintConnectionTypeEdge

A Relay edge containing a ComplaintConnectionType and its cursor.

Fields

NameDescription
cursor(String!)

A cursor for use in pagination

node(ComplaintType)

The item at the end of the edge

Example

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

ComplaintContactConnectionTypeConnection

Paginator of Complaint contact type.

Fields

NameDescription
edgeCount(Int!)

Number of nodes in the edge.

edges([ComplaintContactConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo(PageInfo!)

Pagination data for this connection.

totalCount(Int!)

Total number of nodes.

Example

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

ComplaintContactConnectionTypeEdge

A Relay edge containing a ComplaintContactConnectionType and its cursor.

Fields

NameDescription
cursor(String!)

A cursor for use in pagination

node(ComplaintContactType)

The item at the end of the edge

Example

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

Fields

NameDescription
actionTaken(String!)

Description of action taken.

createdAt(DateTime!)

Created at for contact.

email(String)

Complaint email.

landline(String)

Complaint landline.

mobile(String)

Complaint phone.

name(String!)

Complainant name.

preferredCommunicationMethod(String)

Complaint preferred method.

status(String!)

Status of complaint.

summary(String)

Complaint summary.

Example

{
  "name": "abc123",
  "actionTaken": "abc123",
  "status": "abc123",
  "createdAt": "2020-01-01T00:00:00.000Z",
  "mobile": "abc123",
  "email": "abc123",
  "landline": "abc123",
  "preferredCommunicationMethod": "abc123",
  "summary": "abc123"
}

Fields

NameDescription
assigneeId(ID)

Complaint Assignee.

contacts(ComplaintContactConnectionTypeConnection)

Complaint contacts.

Arguments

after (String)

before (String)

first (Int)

last (Int)

creationDate(Date)

Complaint creation date.

id(ID!)

resolutionDate(Date)

Complaint resolution date.

subtype(String)

Complaint subtype.

type(String)

Complaint type.

Example

{
  "id": "abc123",
  "contacts": ComplaintContactConnectionTypeConnection,
  "type": "abc123",
  "subtype": "abc123",
  "creationDate": "2020-01-01",
  "resolutionDate": "2020-01-01",
  "assigneeId": "abc123"
}

CompleteAuthFlowForSmartFlexOnboarding

Complete the auth flow step.

The possible errors that can be raised are:

  • KT-CT-1111: Unauthorized.
  • KT-CT-4371: Onboarding wizard ID is invalid.
  • KT-CT-4372: Simultaneous attempts to update onboarding process.
  • KT-CT-4375: Incorrect or missing parameters for SmartFlex onboarding step.
  • KT-CT-4376: Unable to complete onboarding step. Please try again later.
  • KT-CT-4377: Invalid onboarding step ID.
  • KT-CT-4378: Invalid input or step id. Please make sure you are using the correct step id and providing the expected input params.
  • KT-CT-4379: Vehicle is not ready for a test charge.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription
possibleErrors([PossibleErrorType])

Field with the possible errors of the query/mutation.

Deprecated

The 'possibleErrors' field is deprecated.

Please use the 'possibleErrors' query or the 'X-Kraken-Possible-Errors' header instead.

- Marked as deprecated on 2025-01-31.
- Scheduled for removal on or after 2025-03-01.

wizard(SmartFlexOnboardingWizard)

The wizard created for onboarding the device with SmartFlex.

Example

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

CompleteSelectVehicleOrChargePointForSmartFlexOnboarding

Complete the select vehicle or charge point step.

The possible errors that can be raised are:

  • KT-CT-1111: Unauthorized.
  • KT-CT-4371: Onboarding wizard ID is invalid.
  • KT-CT-4372: Simultaneous attempts to update onboarding process.
  • KT-CT-4375: Incorrect or missing parameters for SmartFlex onboarding step.
  • KT-CT-4376: Unable to complete onboarding step. Please try again later.
  • KT-CT-4377: Invalid onboarding step ID.
  • KT-CT-4378: Invalid input or step id. Please make sure you are using the correct step id and providing the expected input params.
  • KT-CT-4379: Vehicle is not ready for a test charge.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription
possibleErrors([PossibleErrorType])

Field with the possible errors of the query/mutation.

Deprecated

The 'possibleErrors' field is deprecated.

Please use the 'possibleErrors' query or the 'X-Kraken-Possible-Errors' header instead.

- Marked as deprecated on 2025-01-31.
- Scheduled for removal on or after 2025-03-01.

wizard(SmartFlexOnboardingWizard)

The wizard created for onboarding the device with SmartFlex.

Example

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

CompleteTeslaSetupVirtualKeyForSmartFlexOnboarding

Complete the Tesla setup virtual key onboarding step.

The possible errors that can be raised are:

  • KT-CT-1111: Unauthorized.
  • KT-CT-4371: Onboarding wizard ID is invalid.
  • KT-CT-4372: Simultaneous attempts to update onboarding process.
  • KT-CT-4375: Incorrect or missing parameters for SmartFlex onboarding step.
  • KT-CT-4376: Unable to complete onboarding step. Please try again later.
  • KT-CT-4377: Invalid onboarding step ID.
  • KT-CT-4378: Invalid input or step id. Please make sure you are using the correct step id and providing the expected input params.
  • KT-CT-4379: Vehicle is not ready for a test charge.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription
possibleErrors([PossibleErrorType])

Field with the possible errors of the query/mutation.

Deprecated

The 'possibleErrors' field is deprecated.

Please use the 'possibleErrors' query or the 'X-Kraken-Possible-Errors' header instead.

- Marked as deprecated on 2025-01-31.
- Scheduled for removal on or after 2025-03-01.

wizard(SmartFlexOnboardingWizard)

The wizard created for onboarding the device with SmartFlex.

Example

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

CompleteUserActionRequiredForSmartFlexOnboarding

Complete the UserActionRequired step.

The possible errors that can be raised are:

  • KT-CT-1111: Unauthorized.
  • KT-CT-4371: Onboarding wizard ID is invalid.
  • KT-CT-4372: Simultaneous attempts to update onboarding process.
  • KT-CT-4375: Incorrect or missing parameters for SmartFlex onboarding step.
  • KT-CT-4376: Unable to complete onboarding step. Please try again later.
  • KT-CT-4377: Invalid onboarding step ID.
  • KT-CT-4378: Invalid input or step id. Please make sure you are using the correct step id and providing the expected input params.
  • KT-CT-4379: Vehicle is not ready for a test charge.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription
possibleErrors([PossibleErrorType])

Field with the possible errors of the query/mutation.

Deprecated

The 'possibleErrors' field is deprecated.

Please use the 'possibleErrors' query or the 'X-Kraken-Possible-Errors' header instead.

- Marked as deprecated on 2025-01-31.
- Scheduled for removal on or after 2025-03-01.

wizard(SmartFlexOnboardingWizard)

The wizard created for onboarding the device with SmartFlex.

Example

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

CompleteUserInputRequiredForSmartFlexOnboarding

Complete the UserInputRequired step.

The possible errors that can be raised are:

  • KT-CT-1111: Unauthorized.
  • KT-CT-4371: Onboarding wizard ID is invalid.
  • KT-CT-4372: Simultaneous attempts to update onboarding process.
  • KT-CT-4375: Incorrect or missing parameters for SmartFlex onboarding step.
  • KT-CT-4376: Unable to complete onboarding step. Please try again later.
  • KT-CT-4377: Invalid onboarding step ID.
  • KT-CT-4378: Invalid input or step id. Please make sure you are using the correct step id and providing the expected input params.
  • KT-CT-4379: Vehicle is not ready for a test charge.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription
possibleErrors([PossibleErrorType])

Field with the possible errors of the query/mutation.

Deprecated

The 'possibleErrors' field is deprecated.

Please use the 'possibleErrors' query or the 'X-Kraken-Possible-Errors' header instead.

- Marked as deprecated on 2025-01-31.
- Scheduled for removal on or after 2025-03-01.

wizard(SmartFlexOnboardingWizard)

The wizard created for onboarding the device with SmartFlex.

Example

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

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.
- Scheduled for removal on or after 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
}

ConsentType

A consent given by a signing identity for a consent type.

Fields

NameDescription
code(String!)

Unique code given to this consent type.

id(BigInt!)

id of the consent.

type(ConsentTypeType)

The type of the consent.

value(ConsentValue!)

Value of the consent.

Example

{
  "id": 1,
  "code": "abc123",
  "value": "ACCEPTED",
  "type": ConsentTypeType
}

ConsentTypeType

A type of consent that a signing identity can accept or reject to.

Fields

NameDescription
code(String!)

Unique code given to this consent type.

defaultValue(ConsentValue!)

Default value of the consent type.

description(String!)

Description of the consent type.

name(String!)

Name of the consent type.

Example

{
  "code": "abc123",
  "description": "abc123",
  "name": "abc123",
  "defaultValue": "ACCEPTED"
}

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.

Arguments

after (String)

before (String)

first (Int)

last (Int)

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
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
}

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])

Field with the possible errors of the query/mutation.

Deprecated

The 'possibleErrors' field is deprecated.

Please use the 'possibleErrors' query or the 'X-Kraken-Possible-Errors' header instead.

- Marked as deprecated on 2025-01-31.
- Scheduled for removal on or after 2025-03-01.

Example

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

CreateFlexShellAccount

Create a ResiFlex account with minimal information.

ResiFlex accounts are shell accounts that contain only essential data needed for device onboarding and API authentication. Most account management happens in the client's CRM system.

The possible errors that can be raised are:

  • KT-CT-4110: Unable to create account.
  • KT-CT-4131: Invalid brand.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription
account(AccountType)

The created ResiFlex account.

possibleErrors([PossibleErrorType])

Field with the possible errors of the query/mutation.

Deprecated

The 'possibleErrors' field is deprecated.

Please use the 'possibleErrors' query or the 'X-Kraken-Possible-Errors' header instead.

- Marked as deprecated on 2025-01-31.
- Scheduled for removal on or after 2025-03-01.

Example

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

CreatePostEvents

Create post delivery events from external vendors.

The possible errors that can be raised are:

  • KT-CT-9907: Post events batch size exceeded.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription
createdEventsCount(Int)

Number of events successfully created.

possibleErrors([PossibleErrorType])

Field with the possible errors of the query/mutation.

Deprecated

The 'possibleErrors' field is deprecated.

Please use the 'possibleErrors' query or the 'X-Kraken-Possible-Errors' header instead.

- Marked as deprecated on 2025-01-31.
- Scheduled for removal on or after 2025-03-01.

Example

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

Fields

NameDescription
accountNumber(String)

The number of the account linked to this permission.

ledgerNumber(String)

The number of the ledger linked to this permission.

validFrom(DateTime)

The datetime from which the permission is valid.

validTo(DateTime)

The datetime to which the permission is valid.

Example

{
  "ledgerNumber": "abc123",
  "accountNumber": "abc123",
  "validFrom": "2020-01-01T00:00:00.000Z",
  "validTo": "2020-01-01T00:00:00.000Z"
}

Fields

NameDescription
accountNumber(String)

The number of the account linked to this permission.

ledgerNumber(String)

The number of the ledger linked to this permission.

validFrom(DateTime)

The datetime from which the permission is valid.

validTo(DateTime)

The datetime to which the permission is valid.

Example

{
  "ledgerNumber": "abc123",
  "accountNumber": "abc123",
  "validFrom": "2020-01-01T00:00:00.000Z",
  "validTo": "2020-01-01T00:00:00.000Z"
}

Fields

NameDescription
fromSourceLedgers([CreditTransferPermissionFromSourceLedgerType])

Permissions for credit transfers when the ledger is the target.

toTargetLedgers([CreditTransferPermissionToTargetLedgerType])

Permissions for credit transfers when the ledger is the source.


CustomerAssetType

Customer asset type for GraphQL

Fields

NameDescription
accountNumber(String)

Account number.

activeFrom(DateTime)

When the customer asset became active.

activeTo(DateTime)

When device became inactive (null if active).

id(ID)

Customer asset ID.

name(String)

Asset name.

physicalId(String)

Physical device ID (e.g., VIN for a vehicle).

type(String)

Asset type.

Example

{
  "id": "abc123",
  "physicalId": "abc123",
  "name": "abc123",
  "type": "abc123",
  "activeFrom": "2020-01-01T00:00:00.000Z",
  "activeTo": "2020-01-01T00:00:00.000Z",
  "accountNumber": "abc123"
}

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
endCursor(DateTime)

The cursor of the last item.

hasNextPage(Boolean)

Whether there are more items when paginating forwards.

hasPreviousPage(Boolean)

Whether there are previous items when paginating backwards.

startCursor(DateTime)

The cursor of the first item.

Example

{
  "startCursor": "2020-01-01T00:00:00.000Z",
  "endCursor": "2020-01-01T00:00:00.000Z",
  "hasPreviousPage": true,
  "hasNextPage": true
}

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-4352: This device cannot currently be de-authenticated.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription
krakenflexDevice(DeviceDetailsType)

possibleErrors([PossibleErrorType])

Field with the possible errors of the query/mutation.

Deprecated

The 'possibleErrors' field is deprecated.

Please use the 'possibleErrors' query or the 'X-Kraken-Possible-Errors' header instead.

- Marked as deprecated on 2025-01-31.
- Scheduled for removal on or after 2025-03-01.

Example

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

DeauthenticateFlexDevice

De-authenticate a registered device by device id.

The possible errors that can be raised are:

  • KT-CT-4350: Unable to de-authenticate device.
  • KT-CT-4352: This device cannot currently be de-authenticated.
  • KT-CT-1113: Disabled GraphQL field requested.

Fields

NameDescription
krakenflexDevice(DeviceDetailsType)

possibleErrors([PossibleErrorType])

Field with the possible errors of the query/mutation.

Deprecated

The 'possibleErrors' field is deprecated.

Please use the 'possibleErrors' query or the 'X-Kraken-Possible-Errors' header instead.

- Marked as deprecated on 2025-01-31.
- Scheduled for removal on or after 2025-03-01.

Example

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

Fields

NameDescription
code(String!)

isActive(Boolean!)

name(String!)

Example

{
  "name": "abc123",
  "code": "abc123",
  "isActive": true
}

Fields

NameDescription
code(String!)

deprecatedAt(DateTime)

displayName(String!)

requiresFieldVisit(Boolean!)

Example

{
  "code": "abc123",
  "displayName": "abc123",
  "deprecatedAt": "2020-01-01T00:00:00.000Z",
  "requiresFieldVisit": true
}

Fields

NameDescription
agency(DebtCollectionAgencyType)

The agency responsible for the collection proceedings.

amount(Int)

campaign(CollectionCampaignType)

The campaign type of the collection proceedings.

Deprecated

The 'campaign' field is deprecated.

Use `collectionCampaign` instead

- Marked as deprecated on 2025-03-20.
- Scheduled for removal on or after 2025-04-30.

collectionCampaign(DebtCollectionCampaignType)

The campaign type of the collection proceedings.

startedAt(DateTime!)

stopReason(DebtCollectionProceedingStopReason)

stoppedAt(DateTime)

Example

{
  "campaign": "NONE",
  "amount": 1,
  "startedAt": "2020-01-01T00:00:00.000Z",
  "stoppedAt": "2020-01-01T00:00:00.000Z",
  "stopReason": "BANKRUPT"
}

DecimalReading

A reading with a decimal value taken at a specific time.

Fields

NameDescription
timestamp(DateTime!)

The timestamp when the reading was taken.

value(Decimal!)

The decimal value of the reading.

Example

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

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"
}

DeleteAccountReference

Delete 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-8312: Invalid data.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription
accountReference(DeleteAccountReferenceType)

possibleErrors([PossibleErrorType])

Field with the possible errors of the query/mutation.

Deprecated

The 'possibleErrors' field is deprecated.

Please use the 'possibleErrors' query or the 'X-Kraken-Possible-Errors' header instead.

- Marked as deprecated on 2025-01-31.
- Scheduled for removal on or after 2025-03-01.

Example

{
  "possibleErrors": [PossibleErrorType]
}

Fields

NameDescription
namespace(String!)

The namespace associated with the removed AccountReference.

Example

{
  "namespace": "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])

Field with the possible errors of the query/mutation.

Deprecated

The 'possibleErrors' field is deprecated.

Please use the 'possibleErrors' query or the 'X-Kraken-Possible-Errors' header instead.

- Marked as deprecated on 2025-01-31.
- Scheduled for removal on or after 2025-03-01.

Example

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

Fields

NameDescription
deviceIdentifier(String)

The id of the device. This field can only be provided in the output if device level readings are also requested.

readings(Readings)

Get readings from a readable device e.g., a supply point, device, or register.

Arguments

endAt (DateTime!)

The exclusive end of the time period as an isoformatted string.

readingType (ReadingTypes!)

Get readings of only this type.

startAt (DateTime!)

The inclusive start of the time period as an isoformatted string.

timeGranularity (TimeGranularities)

Time buckets to group readings into.

timezone (String)

The timezone in which to return readings.

units ([Units])

Optional filter to return readings only for specific list of units or unit (e.g., KILOWATTHOURS, METERSCUBED, LITER, etc.).

registers(RegistersConnection)

The registers associated with this device.

Arguments

after (String)

before (String)

first (Int)

last (Int)

registerIdentifiers ([String])

The ids of the registers to get. If not provided, all registers for device will be returned.

Example

{
  "readings": Readings,
  "deviceIdentifier": "abc123",
  "registers": RegistersConnection
}

DeviceChargingSessionConnection

Paginator for device charging session.

Fields

NameDescription
edges([DeviceChargingSessionEdge]!)

Contains the nodes in this connection.

pageInfo(DateTimePageInfo)

Information to aid in DateTime pagination.

Example


DeviceChargingSessionEdge

A Relay edge containing a DeviceChargingSession and its cursor.

Fields

NameDescription
cursor(DateTime)

The cursor of the item.

node(DeviceChargingSession)

The item at the end of the edge

Example

{
  "node": DeviceChargingSession,
  "cursor": "2020-01-01T00:00:00.000Z"
}

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": "BYD",
  "deviceType": "BATTERIES"
}

DeviceReAuthentication

Information about a device's re-authentication eligibility and status.

Fields

NameDescription
isEligible(Boolean)

    Whether the device is eligible for re-authentication.
    If it returns False, then re-authentication is not supported for this device.
    Please remove and re-add the device to restore connectivity.

Example

{
  "isEligible": true
}

Fields

NameDescription
readings(Readings)

Get readings from a readable device e.g., a supply point, device, or register.

Arguments

endAt (DateTime!)

The exclusive end of the time period as an isoformatted string.

readingType (ReadingTypes!)

Get readings of only this type.

startAt (DateTime!)

The inclusive start of the time period as an isoformatted string.

timeGranularity (TimeGranularities)

Time buckets to group readings into.

timezone (String)

The timezone in which to return readings.

units ([Units])

Optional filter to return readings only for specific list of units or unit (e.g., KILOWATTHOURS, METERSCUBED, LITER, etc.).

registerIdentifier(String)

The id of the register. This field can only be provided in the output if register level readings are also requested.

Example

{
  "readings": Readings,
  "registerIdentifier": "abc123"
}

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])

Field with the possible errors of the query/mutation.

Deprecated

The 'possibleErrors' field is deprecated.

Please use the 'possibleErrors' query or the 'X-Kraken-Possible-Errors' header instead.

- Marked as deprecated on 2025-01-31.
- Scheduled for removal on or after 2025-03-01.

registeredDeviceIds([String])

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

Example

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

DevicesConnection

Pagination for devices.

Fields

NameDescription
edgeCount(Int!)

Number of nodes in the edge.

edges([DevicesEdge]!)

Contains the nodes in this connection.

pageInfo(PageInfo!)

Pagination data for this connection.

totalCount(Int!)

Total number of nodes.

Example

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

DevicesEdge

A Relay edge containing a Devices and its cursor.

Fields

NameDescription
cursor(String!)

A cursor for use in pagination

node(Device)

The item at the end of the edge

Example

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

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.
- Scheduled for removal on or after 2024-01-01.

maskedAccountIdentifier(String)

A masked reference to a recurring payment method.

maskedIban(String)

A masked version of the IBAN.

owners([PaymentInstructionOwnerType])

The owners of the financial account this instruction represents.

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",
  "owners": [PaymentInstructionOwnerType]
}

Fields

NameDescription
availableFrom(Int)

This field is replacing year.

availableTo(Int)

batterySize(Decimal)

integrationStatus(IntegrationStatus)

Shows the availability status of an integration.

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,
  "integrationStatus": "INTERNAL_TESTING"
}

Fields

NameDescription
make(String)

models([ElectricVehicleModelType])

Example

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

Fields

NameDescription
deviceId(String)

The identifier of the device associated to this reading.

marketSupplyPointId(String)

The identifier of the market supply point associated to this reading.

readingDirection(ReadingDirectionType)

Reading direction is based on the utility generated or consumed by the customer.

readingFrequencyType(ReadingFrequencyType)

The frequency of the reading.

readingQuality(ReadingQualityType)

registerId(String)

The identifier of the register associated to this reading.

Example

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

EmailAttachmentType

Represents a file to attach to a email message.

Fields

NameDescription
filename(String!)

The filename of the attachment.

id(ID!)

The ID of the attachment.

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
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(String!)

createdAt(DateTime!)

The date and time the email was created.

fromEmail(String!)

The address the email was sent from.

fromNumber(String!)

htmlBody(String)

HTML body of the email message.

id(ID!)

The ID of the email.

recipient(String)

Email recipient.

sender(String)

Email sender.

sentAt(DateTime)

The date and time the email was sent.

subject(String)

Subject line of the email message.

supportSiteUrl(String)

URL to view the email in the support site.

templateCode(String!)

The email template code.

textBody(String)

Text body of the email message.

toAddress(String!)

The email address of the recipient.

toNumber(String!)

Example

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

Fields

NameDescription
deviceId(String)

The identifier of the device associated to this reading.

marketSupplyPointId(String)

The identifier of the market supply point associated to this reading.

readingDirection(ReadingDirectionType)

Reading direction is based on the utility generated or consumed by the customer.

readingFrequencyType(ReadingFrequencyType)

The frequency of the reading.

readingQuality(ReadingQualityType)

registerId(String)

The identifier of the register associated to this reading.

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"
}

EmbeddedPropertyType

Represents an embedded property in an embedded network.

Fields

NameDescription
embeddedNetwork(EmbeddedNetworkType!)

id(ID!)

propertyId(ID)

The id of the physical property related to this embedded property type.

Example

{
  "id": "abc123",
  "embeddedNetwork": EmbeddedNetworkType,
  "propertyId": "abc123"
}

Energy

Describes the energy (not power) consumed (e.g. as electricity) or returned (e.g. as heat) by a 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 energy is being measured.

value(Decimal)

The amount of energy (not power) transmitted.

Example

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

Fields

NameDescription
linkState(String)

linkUrl(String)

Example

{
  "linkState": "abc123",
  "linkUrl": "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
}

ExportReadingsConnection

Pagination for readings representing outgoing utility flow e.g., solar generation.

Fields

NameDescription
edgeCount(Int!)

Number of nodes in the edge.

edges([ExportReadingsEdge]!)

Contains the nodes in this connection.

pageInfo(PageInfo!)

Pagination data for this connection.

totalCount(Int!)

Total number of nodes.

Example

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

ExportReadingsEdge

A Relay edge containing a ExportReadings and its cursor.

Fields

NameDescription
cursor(String!)

A cursor for use in pagination

node(Reading)

The item at the end of the edge

Example

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

Fields

NameDescription
description(String)

Description of the extra for the parent node.

label(String)

Display label of the extra for the parent node.

value(String)

Value of the extra.

Example

{
  "label": "abc123",
  "description": "abc123",
  "value": "abc123"
}

FetchGeneratePaymentFingerprint

The possible errors that can be raised are:

  • KT-CT-12101: Payment instruction not found.
  • KT-CT-12102: Payment vendor not supported.
  • KT-CT-12103: Missing payment metadata from vendor.
  • KT-CT-12104: Unable to fetch or generate payment fingerprint.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription
fingerprint(String)

Fetched or generated fingerprint from vendor.

possibleErrors([PossibleErrorType])

Field with the possible errors of the query/mutation.

Deprecated

The 'possibleErrors' field is deprecated.

Please use the 'possibleErrors' query or the 'X-Kraken-Possible-Errors' header instead.

- Marked as deprecated on 2025-01-31.
- Scheduled for removal on or after 2025-03-01.

vendor(String)

Vendor name.

Example

{
  "possibleErrors": [PossibleErrorType],
  "fingerprint": "abc123",
  "vendor": "abc123"
}

Fields

NameDescription
max(Decimal)

The maximum value this constraint allows.

min(Decimal)

The minimum value this constraint allows.

Example

{
  "min": "1.0",
  "max": "1.0"
}

Fields

NameDescription
id(Int!)

The unique id of the device preference schedule setting.

max(Decimal)

The maximum value a preference can be set to (inclusive).

maxConstraint(PreferenceConstraint)

The constraint applied to the max value.

min(Decimal)

The minimum value a preference can be set to (inclusive).

minConstraint(PreferenceConstraint)

The constraint applied to the min value.

step(Decimal!)

The step size preference can be set to.

targetConstraint(PreferenceConstraint)

The constraint applied to the target value.

timeFrom(Time)

The minimum time a preference can be set to (inclusive).

timeStep(Int!)

The step amount (in minutes) a preference schedule time can be set.

timeTo(Time)

The maximum time a preference can be set to (inclusive).

Example

{
  "id": 1,
  "timeFrom": "00:00:00.000Z",
  "timeTo": "00:00:00.000Z",
  "timeStep": 1,
  "min": "1.0",
  "max": "1.0",
  "step": "1.0",
  "minConstraint": PreferenceConstraint,
  "maxConstraint": PreferenceConstraint,
  "targetConstraint": PreferenceConstraint
}

Fields

NameDescription
deviceType(String!)

The device type of the setting.

id(Int!)

The unique id of the device preference setting.

mode(PreferencesModeChoices!)

The mode of the setting.

scheduleSettings([FlexDevicePreferenceScheduleSettingInterface]!)

Scheduled preference settings.

unit(PreferencesUnitChoices!)

The unit of the min and max values in the preferences setting.

Example

{
  "id": 1,
  "deviceType": "abc123",
  "mode": "CHARGE",
  "unit": "CELSIUS",
  "scheduleSettings": FlexDevicePreferenceScheduleSettingInterface
}

FlexSupportedDevices

A list of supported makes and models for a given device type.

Fields

NameDescription
deviceType(KrakenFlexDeviceTypes!)

The type of device.

supportedMakes([FlexSupportedMake]!)

List of supported brands or manufacturer.

Example

{
  "deviceType": "BATTERIES",
  "supportedMakes": FlexSupportedMake
}

FlexSupportedMake

A brand or manufacturer of the device and its associated models.

If models is empty, all models for this make are supported.

Fields

NameDescription
make(String!)

Brand or manufacturer of the device.

models([FlexSupportedModel]!)

List of supported models for the device make. If empty, all models are supported.

Example

{
  "make": "abc123",
  "models": FlexSupportedModel
}

FlexSupportedModel

A supported model for a given make.

If model year range is null, all years are supported.

Fields

NameDescription
modelName(String!)

Model name of the device.

modelYearRange(ModelYearRange)

Model years supported. If null, all model years are supported.

Example

{
  "modelYearRange": ModelYearRange,
  "modelName": "abc123"
}

FormScreenType

A screen type for forms with input fields.

Combines display items with input fields (TextField, Checkbox, Toggle), and provides primary/secondary buttons for form submission.

Note: header and footer are embedded in screenData and not exposed as separate GraphQL fields, following the pattern of ComponentListType.

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.

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"
}

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"
}

FulfilmentType

Represents an amount of money that can be used to fulfil an obligation.

Fields

NameDescription
amount(Int!)

The amount of the fulfilment (in minor currency units), unsigned.

sourceIdentifier(String)

The database ID of the fulfilment source, e.g. the database ID of the payment.

sourceType(FulfilmentSourceType)

The type of the fulfilment source, e.g. PAYMENT.

Example

{
  "sourceType": "UNKNOWN",
  "sourceIdentifier": "abc123",
  "amount": 1
}

Fields

NameDescription
timestamp(DateTime)

The time the data was reported.

value(HeatPumpMode)

The latest reported mode of the heat pump.

Example

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

GasFiltersOutput

Filter measurements by gas parameters.

Fields

NameDescription
deviceId(String)

The identifier of the device associated to this reading.

marketSupplyPointId(String)

The identifier of the market supply point associated to this reading.

readingFrequencyType(ReadingFrequencyType)

The frequency of the reading.

registerId(String)

The identifier of the register associated to this reading.

Example

{
  "registerId": "abc123",
  "readingFrequencyType": "RAW_INTERVAL",
  "marketSupplyPointId": "abc123",
  "deviceId": "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"
}

Fields

NameDescription
powerInKw(Decimal)

The current power being imported from or exported to the grid in kW. A negative value indicates power is being imported from the grid; a positive value indicates power is being exported to the grid.

Example

{
  "powerInKw": "1.0"
}

HardshipAgreementType

Represents a Hardship Agreement for a particular Account.

Fields

NameDescription
createdAt(DateTime!)

endDate(Date)

exitReason(HardshipAgreementExitReason)

exitReasonDetails(String)

Extra details for the exit reason

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",
  "endDate": "2020-01-01",
  "exitReason": "INITIAL_PAYMENT_PLAN_NOT_ESTABLISHED",
  "exitReasonDetails": "abc123",
  "createdAt": "2020-01-01T00:00:00.000Z"
}

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.
- Scheduled for removal on or after 2025-12-01.

You can read more about this deprecation on:
https://announcements.kraken.tech/announcements/public/569/

krakenflexDeviceId(String)

params(HeatPumpParamsType)

provider(ProviderChoices)

The third party that provides control of this heat pump.

Example

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

Fields

NameDescription
heatPumpId(ID)

Example

{
  "heatPumpId": "abc123"
}

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
heatPumpId(ID)

isDeprecated(Boolean)

model(String)

powerInKw(Decimal)

Example

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

Fields

NameDescription
make(String)

The make (manufacturer) of the device.

model(String)

The model of the device.

Example

{
  "make": "abc123",
  "model": "abc123"
}

Fields

NameDescription
make(String)

models([HeatPumpVariantModelsType])

Example

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

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"
}

ImportReadingsConnection

Pagination for readings representing incoming utility flow e.g., usage or consumption..

Fields

NameDescription
edgeCount(Int!)

Number of nodes in the edge.

edges([ImportReadingsEdge]!)

Contains the nodes in this connection.

pageInfo(PageInfo!)

Pagination data for this connection.

totalCount(Int!)

Total number of nodes.

Example

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

ImportReadingsEdge

A Relay edge containing a ImportReadings and its cursor.

Fields

NameDescription
cursor(String!)

A cursor for use in pagination

node(Reading)

The item at the end of the edge

Example

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

InputFieldErrorType

Represents a validation error for a specific input field.

Fields

NameDescription
errorMessage(String!)

The error message to display for this field.

inputFieldKey(String!)

The key of the input field with the error.

inputFieldValue(String!)

The value that was submitted for the field.

Example

{
  "inputFieldKey": "abc123",
  "inputFieldValue": "abc123",
  "errorMessage": "abc123"
}

Fields

NameDescription
characteristic(CharacteristicType)

The product characteristic.

integerValue(Int!)

The integer value of the characteristic.

value(String)

A string representation of a characteristic value, for convenience.

Example

{
  "value": "abc123",
  "characteristic": CharacteristicType,
  "integerValue": 1
}

Fields

NameDescription
connectionStatus(ConnectionStatus)

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

powerInKw(Decimal)

The current power flowing through the inverter in kW. A negative value indicates that power is being drawn in to charge the battery; a positive value indicates power is being exported to the property (and, possibly, the grid) from the battery and/or solar panels.

Example

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

Fields

NameDescription
make(String)

The make (manufacturer) of the device.

Example

{
  "make": "abc123"
}

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.

documentDebtPosition(BillingDocumentPositionType)

Position of the billing document in the delinquent debt tracking system.

firstIssued(DateTime)

First time the invoice was issued.

id(Int)

Unique identifier for the invoice billing document.

invoicedAmount(Int)

The invoiced amount of the billing document.

number(String)

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

paymentDueDate(Date)

The date due for payment for the invoice.

pdfUrl(String)

URL to the PDF of the Invoice.

totalCharges(InvoiceTotalType)

The total amounts for all charges on the invoice.

totalCredits(InvoiceTotalType)

The total amounts for all credits on the invoice.

transactions(BillTransactionConnectionTypeConnection)

Transactions on the invoice

Arguments

after (String)

before (String)

first (Int)

last (Int)

orderBy (TransactionsOrderBy)

The order in which to return the transactions.

Example

{
  "id": 1,
  "firstIssued": "2020-01-01T00:00:00.000Z",
  "pdfUrl": "abc123",
  "annulledBy": AnnulmentBillingDocumentType,
  "number": "abc123",
  "invoicedAmount": 1,
  "totalCharges": InvoiceTotalType,
  "totalCredits": InvoiceTotalType,
  "transactions": BillTransactionConnectionTypeConnection,
  "documentDebtPosition": BillingDocumentPositionType,
  "paymentDueDate": "2020-01-01"
}

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
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": "BYD",
  "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.

isPinned(Boolean)

Whether this version is pinned to a specific version.

number(String)

The version number that is being executed.

Example

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

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
acceptsPayments(Boolean)

Whether payments can be posted onto this ledger.

affectsAccountBalance(Boolean)

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

agreements(AgreementConnection)

The charged supply agreements of the ledger.

Arguments

after (String)

before (String)

first (Int)

last (Int)

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.

billingTriggerConfiguration(BillingTriggerConfiguration)

The active billing trigger configuration for the ledger.

The possible errors that can be raised are:

  • KT-CT-9709: Billing trigger configuration only supports SupplementaryLedger type.
  • KT-CT-1113: Disabled GraphQL field requested.

creditTransferPermissionsData(CreditTransferPermissionsDataType)

Permissions data for credit transfers involving the given ledger.

currentDirectDebitInstructionInvalidatedWithVendor(Boolean)

True if the current direct debit instruction has been invalidated by vendor. False otherwise.

debtLedger(LedgerType)

The debt ledger assigned to this ledger.

id(ID)

Deprecated

The 'ledgerId' field is deprecated.

Please use 'ledgerNumber' instead. This is in the form of 'L-123456789A'

- Marked as deprecated on 2024-10-22.
- Scheduled for removal on or after 2025-06-25.

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.

Arguments

after (String)

before (String)

excludeExternallyIssued (Boolean)

Exclude invoices that were issued by external systems. Does not apply to legacy bills.

first (Int)

invoiceId (Int)

The id of the invoice.

last (Int)

orderBy (_BillingDocumentsOrderBy)

The order the invoices should be returned in.

ledgerType(String)

The ledger type code.

name(String)

The display name of the ledger.

number(String)

The canonical name of the ledger.

paymentAdequacy(PaymentAdequacyDetailsType)

paymentPreferenceAtTime(PaymentPreferenceUnion)

The customer's preferred payment method at a point in time.

The possible errors that can be raised are:

  • KT-CT-3976: The ledger has no configured payment preference.
  • KT-CT-3977: Ledger was not accepting payments at this time.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

atTime (DateTime!)

The time at which to know the payment preference.

paymentPreferences(PaymentPreferenceConnectionTypeConnection)

The customer's preferred payment methods.

Arguments

after (String)

before (String)

first (Int)

last (Int)

paymentsWithNonConcludedRePresentation(PaymentWithNonConcludedRePresentationConnectionTypeConnection)

Payments with non-concluded re-presentation.

Arguments

after (String)

before (String)

first (Int)

last (Int)

refundRequests(RefundRequestConnectionTypeConnection)

Refund requests for a given ledger.

Arguments

after (String)

before (String)

first (Int)

last (Int)

repaymentRequests(RepaymentRequestConnectionTypeConnection)

Repayment requests for a given ledger.

Arguments

after (String)

before (String)

first (Int)

last (Int)

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.

Arguments

after (String)

before (String)

first (Int)

last (Int)

orderBy (_BillingDocumentsOrderBy)

The order the statements should be returned in.

statementId (Int)

The id of billing document.

supportsInvoices(Boolean)

Is it possible for this ledger to contain invoices.

supportsStatements(Boolean)

Is it possible for this ledger to contain statements.

transactions(TransactionConnectionTypeConnection)

Transactions on the given ledger.

Arguments

after (String)

before (String)

first (Int)

fromDate (Date)

Optional date representing the beginning of the postedDate range filter. This date value is inclusive.

last (Int)

orderBy (TransactionsOrderBy)

The order in which to return the transactions.

toDate (Date)

Optional date representing the end of the postedDate range filter. This date value is exclusive.

transactionTypes ([TransactionTypeFilter])

Include only these specific transaction types in the result.

usablePaymentInstructions(PaymentInstructionConnectionTypeConnection)

The usable payment instructions for this ledger.

Arguments

after (String)

before (String)

first (Int)

last (Int)

usableAt (DateTime)

The time at which the payment instructions should be usable.

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,
  "acceptsPayments": true,
  "paymentAdequacy": PaymentAdequacyDetailsType,
  "creditTransferPermissionsData": CreditTransferPermissionsDataType,
  "paymentPreferences": PaymentPreferenceConnectionTypeConnection,
  "paymentPreferenceAtTime": PreferredInstruction,
  "debtLedger": LedgerType,
  "agreements": AgreementConnection,
  "usablePaymentInstructions": PaymentInstructionConnectionTypeConnection,
  "billingTriggerConfiguration": BillingTriggerConfiguration,
  "supportsStatements": true,
  "supportsInvoices": true,
  "currentDirectDebitInstructionInvalidatedWithVendor": true,
  "paymentsWithNonConcludedRePresentation": PaymentWithNonConcludedRePresentationConnectionTypeConnection
}

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"
}

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
extras([ExtrasOutput])

Extras relating to the parent measurement node.

statistics([StatisticOutput])

Statistics relating to the parent measurement node.

utilityFilters(UtilityFiltersOutput)

The source information relating to the parent measurement node.

Example

{
  "utilityFilters": ElectricityFiltersOutput,
  "statistics": [StatisticOutput],
  "extras": [ExtrasOutput]
}

Fields

NameDescription
key(String!)

The key for the metadata.

value(JSONString)

The metadata value.

Example

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

ModelYearRange

Range of model years supported for a device model.

If end year is null, all years after start year are supported.

Fields

NameDescription
endYear(Int)

Latest year model is supported. If null, all years after start year are supported.

startYear(Int!)

Earliest year model is supported.

Example

{
  "startYear": 1,
  "endYear": 1
}

Fields

NameDescription
amount(Decimal!)

        The unit being in the smallest denomination of the currency (e.g. pence for GBP).

currency(String!)

The ISO-4217 code for the currency.

Example

{
  "amount": "1.0",
  "currency": "abc123"
}

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])

Field with the possible errors of the query/mutation.

Deprecated

The 'possibleErrors' field is deprecated.

Please use the 'possibleErrors' query or the 'X-Kraken-Possible-Errors' header instead.

- Marked as deprecated on 2025-01-31.
- Scheduled for removal on or after 2025-03-01.

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])

Field with the possible errors of the query/mutation.

Deprecated

The 'possibleErrors' field is deprecated.

Please use the 'possibleErrors' query or the 'X-Kraken-Possible-Errors' header instead.

- Marked as deprecated on 2025-01-31.
- Scheduled for removal on or after 2025-03-01.

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
}

ObtainLongLivedRefreshToken

Obtain a long-lived refresh token.

This mutation is limited to authorized third-party organizations only.

Account users can only generate short-lived refresh tokens.

The short-lived refresh tokens (for account users) can be obtained from the 'refreshToken' field in 'obtainKrakenToken' mutation.

The possible errors that can be raised are:

  • KT-CT-1120: The Kraken Token has expired.
  • KT-CT-1121: Please use Kraken Token to issue long-lived refresh tokens.
  • KT-CT-1132: Unauthorized.
  • KT-CT-1122: Long-lived refresh tokens can only be issued for account users.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription
possibleErrors([PossibleErrorType])

Field with the possible errors of the query/mutation.

Deprecated

The 'possibleErrors' field is deprecated.

Please use the 'possibleErrors' query or the 'X-Kraken-Possible-Errors' header instead.

- Marked as deprecated on 2025-01-31.
- Scheduled for removal on or after 2025-03-01.

refreshExpiresIn(Int!)

refreshToken(String)

Example

{
  "possibleErrors": [PossibleErrorType],
  "refreshToken": "abc123",
  "refreshExpiresIn": 1
}

OccupancyPeriodType

An occupancy period for a property.

Fields

NameDescription
accountNumber(String)

Account number associated with this occupancy period.

effectiveFrom(DateTime)

Date the occupancy period is effective from.

effectiveTo(DateTime)

Date the occupancy period is effective to.

id(ID)

The unique ID of the occupancy period.

isOccupier(Boolean)

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

numberOfOccupants(Int)

Number of occupants associated with this occupancy period.

Example

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

Fields

NameDescription
id(ID)

ID for the Operations Team.

name(String)

Name for the Operations Team.

Example

{
  "id": "abc123",
  "name": "abc123"
}

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"
}

PaymentAdequacyChangeType

An applied Payment Adequacy review that updated the recurring payment schedule.

Fields

NameDescription
appliedDate(DateTime)

When the Payment Adequacy review was applied.

newPaymentAmount(Int)

New payment amount in minor currency after Payment Adequacy was applied.

previousPaymentAmount(Int)

Previous payment amount in minor currency before Payment Adequacy was applied.

Example

{
  "appliedDate": "2020-01-01T00:00:00.000Z",
  "previousPaymentAmount": 1,
  "newPaymentAmount": 1
}

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.

latestAppliedPaymentAdequacyChange(PaymentAdequacyChangeType)

The most recent Payment Adequacy review that has been applied to this ledger, or null if no review has been applied.

Example

{
  "isCurrentlyExempt": true,
  "latestAppliedPaymentAdequacyChange": PaymentAdequacyChangeType
}

Fields

NameDescription
fingerprint(String)

Fingerprint.

isFound(Boolean)

Returns True if the fingerprint exists, False otherwise.

isRiskListed(Boolean)

Returns True if the fingerprint is risk-listed, False otherwise.

Example

{
  "fingerprint": "abc123",
  "isFound": true,
  "isRiskListed": true
}

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"
}

Fields

NameDescription
edgeCount(Int!)

Number of nodes in the edge.

edges([PaymentInstructionConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo(PageInfo!)

Pagination data for this connection.

totalCount(Int!)

Total number of nodes.

Example

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

PaymentInstructionConnectionTypeEdge

A Relay edge containing a PaymentInstructionConnectionType and its cursor.

Fields

NameDescription
cursor(String!)

A cursor for use in pagination

node(PaymentInstructionType)

The item at the end of the edge

Example

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

Fields

NameDescription
accountUser(AccountUserType)

The account user who is an owner of this payment instruction.

business(BusinessType)

The business who is an owner of this payment instruction.

Example

{
  "accountUser": AccountUserType,
  "business": BusinessType
}

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.

owners([PaymentInstructionOwnerType])

The owners of the financial account this instruction represents.

sortCode(String!)

status(String!)

supplementaryLedger(SupplementaryLedgerType)

The supplementary ledger for this payment instruction.

validFrom(DateTime!)

vendor(String!)

Example

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

Fields

NameDescription
edgeCount(Int!)

Number of nodes in the edge.

edges([PaymentPlanConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo(PageInfo!)

Pagination data for this connection.

totalCount(Int!)

Total number of nodes.

Example

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

PaymentPlanConnectionTypeEdge

A Relay edge containing a PaymentPlanConnectionType and its cursor.

Fields

NameDescription
cursor(String!)

A cursor for use in pagination

node(PaymentPlanType)

The item at the end of the edge

Example

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

PaymentPlanPaymentType

An object that represents a planned payment for a payment plan.

Fields

NameDescription
amount(Int!)

payableDate(Date!)

paymentType(String)

Example

{
  "payableDate": "2020-01-01",
  "amount": 1,
  "paymentType": "abc123"
}

PaymentPlanType

An object that represents a payment plan.

Fields

NameDescription
acceptedAt(DateTime)

account(AccountType!)

id(ID!)

initialScheduleType(String!)

ledgerNumber(String)

The ledger number for this payment plan or None if one does not exist.

nextPayment(PaymentPlanPaymentType)

The next planned payment for this payment plan.

offerExpiresAt(DateTime)

offeredAt(DateTime)

payments([PaymentPlanPaymentType!]!)

status(String!)

strategyDisplayName(String)

The display name of the strategy used for this payment plan or None if one does not exist.

strategyName(String!)

updatedAt(DateTime!)

Example

{
  "id": "abc123",
  "account": AccountType,
  "initialScheduleType": "abc123",
  "strategyName": "abc123",
  "status": "abc123",
  "offeredAt": "2020-01-01T00:00:00.000Z",
  "offerExpiresAt": "2020-01-01T00:00:00.000Z",
  "acceptedAt": "2020-01-01T00:00:00.000Z",
  "updatedAt": "2020-01-01T00:00:00.000Z",
  "payments": PaymentPlanPaymentType,
  "nextPayment": PaymentPlanPaymentType,
  "strategyDisplayName": "abc123",
  "ledgerNumber": "abc123"
}

PaymentPreferenceConnectionTypeConnection

Pagination object for PaymentPreferenceUnion

Fields

NameDescription
edgeCount(Int!)

Number of nodes in the edge.

edges([PaymentPreferenceConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo(PageInfo!)

Pagination data for this connection.

totalCount(Int!)

Total number of nodes.

Example

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

PaymentPreferenceConnectionTypeEdge

A Relay edge containing a PaymentPreferenceConnectionType and its cursor.

Fields

NameDescription
cursor(String!)

A cursor for use in pagination

node(PaymentPreferenceUnion)

The item at the end of the edge

Example

{
  "node": PreferredInstruction,
  "cursor": "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"
}

Fields

NameDescription
args(JSONString)

The arguments of the delay configuration.

code(String)

The code of the delay configuration.

Example

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

Fields

NameDescription
description(String)

A human-readable description of the value.

direction(PaymentDayDirectionType)

Direction of payment day.

Example

{
  "direction": "OF_MONTH",
  "description": "abc123"
}

PaymentScheduleType

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

Fields

NameDescription
delayConfiguration(PaymentScheduleDelayConfigurationType)

The delay configuration for this payment schedule.

id(ID!)

isExemptFromPaymentAdequacy(Boolean)

If the payment schedule is exempt from payment adequacy.

isPaymentHoliday(Boolean)

isVariablePaymentAmount(Boolean!)

ledgerNumber(String)

The ledger number of the payment schedule.

paymentAdequacyAdjustment(Int)

paymentAdequacyAdjustmentExpiryDate(Date)

paymentAmount(Int!)

paymentDay(Int)

paymentDayDetails(PaymentSchedulePaymentDayDetailsType)

Details of the payment_day value.

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.

Deprecated

The 'scheduleType' field is deprecated.

Use paymentPreferences query instead.

- Marked as deprecated on 2025-07-07.
- Scheduled for removal on or after 2026-07-07.

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.

trigger(ScheduleTrigger)

The cause for requesting payment on a schedule.

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",
  "paymentDayDetails": PaymentSchedulePaymentDayDetailsType,
  "delayConfiguration": PaymentScheduleDelayConfigurationType,
  "isExemptFromPaymentAdequacy": true,
  "ledgerNumber": "abc123",
  "trigger": "PLAN"
}

Fields

NameDescription
edgeCount(Int!)

Number of nodes in the edge.

edges([PaymentWithNonConcludedRePresentationConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo(PageInfo!)

Pagination data for this connection.

totalCount(Int!)

Total number of nodes.

Example

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

PaymentWithNonConcludedRePresentationConnectionTypeEdge

A Relay edge containing a PaymentWithNonConcludedRePresentationConnectionType and its cursor.

Fields

NameDescription
cursor(String!)

A cursor for use in pagination

node(PaymentWithNonConcludedRePresentationType)

The item at the end of the edge

Example

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

Fields

NameDescription
amountPayable(Int)

The amount expected for this payment in minor currency units.

payableDate(Date)

The date this payment is scheduled to be debited.

Example

{
  "amountPayable": 1,
  "payableDate": "2020-01-01"
}

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)
  • BC_DEVICE_FULLY_CHARGED (device is already fully charged)

The possible errors that can be raised are:

  • KT-CT-1111: Unauthorized.
  • 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])

Field with the possible errors of the query/mutation.

Deprecated

The 'possibleErrors' field is deprecated.

Please use the 'possibleErrors' query or the 'X-Kraken-Possible-Errors' header instead.

- Marked as deprecated on 2025-01-31.
- Scheduled for removal on or after 2025-03-01.

Example

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

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_ALREADY_CHARGING (device is already charging)
  • 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-1111: Unauthorized.
  • KT-CT-4362: Device not ready for test charge.
  • KT-CT-4355: Unable to trigger charge.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription
krakenflexDevice(KrakenFlexDeviceType)

possibleErrors([PossibleErrorType])

Field with the possible errors of the query/mutation.

Deprecated

The 'possibleErrors' field is deprecated.

Please use the 'possibleErrors' query or the 'X-Kraken-Possible-Errors' header instead.

- Marked as deprecated on 2025-01-31.
- Scheduled for removal on or after 2025-03-01.

Example

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

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"
}

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
}

PortfolioConnectionTypeConnection

Paginator of Operations Team

Fields

NameDescription
edgeCount(Int!)

Number of nodes in the edge.

edges([PortfolioConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo(PageInfo!)

Pagination data for this connection.

totalCount(Int!)

Total number of nodes.

Example

{
  "pageInfo": PageInfo,
  "edges": PortfolioConnectionTypeEdge,
  "totalCount": 1,
  "edgeCount": 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"
}

PortfolioType

An object that represents a portfolio.

Fields

NameDescription
accounts(AccountConnectionTypeConnection)

The accounts associated with this portfolio.

Arguments

after (String)

before (String)

first (Int)

last (Int)

ancestors(PortfolioConnectionTypeConnection)

The ancestors of the given portfolio.

Arguments

after (String)

before (String)

first (Int)

last (Int)

billingName(String)

brand(String)

The brand code associated with the portfolio.

collectiveBilling(Boolean!)

createdAt(DateTime!)

depth(Int)

The depth of the portfolio in the hierarchy.

descendants(PortfolioConnectionTypeConnection)

The descendants of the given portfolio.

Arguments

after (String)

before (String)

first (Int)

last (Int)

id(ID!)

leadAccountNumber(String)

The lead account for this portfolio.

name(String)

The name of the portfolio.

number(String!)

operationsTeam(OperationsTeamType)

Operations team for this portfolio.

parent(PortfolioType)

The parent portfolio of the given portfolio, if any.

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,
  "leadAccountNumber": "abc123",
  "brand": "abc123",
  "name": "abc123",
  "depth": 1,
  "parent": PortfolioType,
  "ancestors": PortfolioConnectionTypeConnection,
  "descendants": PortfolioConnectionTypeConnection,
  "accounts": AccountConnectionTypeConnection
}

PortfolioUserRoleType

The role a user has in association with one portfolio.

Fields

NameDescription
id(ID!)

portfolio(PortfolioType!)

Portfolio object.

role(RoleString)

The portfolio role.

user(AccountUserType!)

Example

{
  "id": "abc123",
  "user": AccountUserType,
  "role": RoleString,
  "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"
}

PreferredInstruction

Represents the preference of the user to be charged using a specific payment instruction.

Fields

NameDescription
forPaymentsAfter(String)

The start time of the payment preference.

paymentMethod(PaymentInstructionType)

The payment instruction preferred by the user.

status(String)

The status of the payment preference.

Example

{
  "forPaymentsAfter": "abc123",
  "status": "abc123",
  "paymentMethod": PaymentInstructionType
}

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
}

PropertyConnection

Paginated list of properties.

Fields

NameDescription
edgeCount(Int!)

Number of nodes in the edge.

edges([PropertyEdge]!)

Contains the nodes in this connection.

pageInfo(PageInfo!)

Pagination data for this connection.

totalCount(Int!)

Total number of nodes.

Example

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

PropertyEdge

A Relay edge containing a Property and its cursor.

Fields

NameDescription
cursor(String!)

A cursor for use in pagination

node(PropertyInterface)

The item at the end of the edge

Example

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

Fields

NameDescription
administrativeArea(String)

Top-level administrative subdivision, e.g. US state, AU state/territory, NZ, region, 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.

asString(String)

The entire formatted address represented as a single string, as it would be written on an envelope.

The formatting of this field may vary according to the country of the address (which may not match this Kraken installation's home country). It may also change if we update our address-formatting code or if our understanding of the correct formatting for a given country changes. Avoid parsing individual components of an address out of this field's value; use the other fields on this type instead.

Arguments

showCountry (Boolean)

Whether to include the country. The country will be spelled out in all-caps on the last line, as per Universal Postal Union standards.

showName (Boolean)

Whether to include the name attached to this address.

showPostalCode (Boolean)

Whether to include the postal code attached to this address.

country(String)

ISO 3166-1 alpha-2 code of the country this address belongs to, e.g. AU, GB, NZ.

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, NZ suburb and city/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
  • kana_company_name
  • kanji_company_name

NZ: New Zealand

The following keys may be present; all are optional. If keys are empty, they may be omitted from the response entirely.

  • flat_or_unit_type
  • flat_or_unit_number
  • floor_or_level_type
  • floor_or_level_number
  • property_name
  • building_name
  • house_number_1
  • house_number_suffix_1
  • house_number_2
  • house_number_suffix_2
  • street_prefix
  • street_name
  • street_type
  • street_suffix
  • rural_delivery_number
  • mailtown
  • postal_delivery_type
  • postal_delivery_location
  • postal_delivery_number_prefix
  • postal_delivery_number_value
  • postal_delivery_number_suffix

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",
  "asString": "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.

ancestors(PropertyConnection)

Ancestor properties in the specified hierarchy, ordered from root to immediate parent. Returns empty list if the property is not in the hierarchy.

Arguments

after (String)

before (String)

first (Int)

hierarchyName (String)

The name of the hierarchy to query within.

last (Int)

coordinates(CoordinatesType)

Coordinates for the property, useful for displaying the property on a map.

descendants(PropertyConnection)

Descendant properties in the specified hierarchy. Returns empty list if the property is not in the hierarchy.

Arguments

after (String)

before (String)

depth (Int)

Maximum depth of descendants to return. Defaults to 1 (immediate children). Set to null for all descendants.

first (Int)

hierarchyName (String)

The name of the hierarchy to query within.

last (Int)

embeddedNetwork(EmbeddedNetworkType)

The embedded network this property belongs to, if any.

id(String)

label(String)

An optional label for the property.

measurements(MeasurementConnection)

Measurements at a property

Arguments

after (String)

before (String)

endAt (DateTime)

Defaults to the far future which will return the most recent readings.

endOn (Date)

Latest date to return measurements for (inclusive).

first (Int)

last (Int)

startAt (DateTime)

Defaults to the far past which will return the oldest readings.

startOn (Date)

Earliest date to return measurements from.

timezone (String)

Timezone to use for grouping. Defaults to Kraken localtime.

utilityFilters ([UtilityFiltersInput])

Filters for each utility being measured.

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.

parent(PropertyInterface)

The parent property in the specified hierarchy. Returns null if the property has no parent or is not in the hierarchy.

Arguments

hierarchyName (String)

The name of the hierarchy to query within.

postcode(String!)

richAddress(PropertyRichAddressType)

Property rich address.

splitAddress([String])

List of address lines.

Example

{
  "id": "abc123",
  "postcode": "abc123",
  "label": "abc123",
  "address": "abc123",
  "richAddress": PropertyRichAddressType,
  "splitAddress": ["abc123"],
  "occupancyPeriods": [OccupancyPeriodType],
  "coordinates": CoordinatesType,
  "embeddedNetwork": EmbeddedNetworkType,
  "parent": PropertyInterface,
  "descendants": PropertyConnection,
  "ancestors": PropertyConnection,
  "measurements": MeasurementConnection
}

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
cost(Money)

The cost for the charge added during a charging session.

end(DateTime!)

The end time of a charging session.

energyAdded(Energy)

The energy added during a charging session.

location(String!)

Location of the charging session.

operatorImageUrl(String)

URL of the operator image.

start(DateTime!)

The start time of a charging session.

stateOfChargeChange(Decimal)

The change in state of charge during a charging session. The value will be between 0 and 100, if not null.

stateOfChargeFinal(Decimal)

The final state of charge after a charging session. The value will be between 0 and 100, if not null.

Example

{
  "start": "2020-01-01T00:00:00.000Z",
  "end": "2020-01-01T00:00:00.000Z",
  "stateOfChargeChange": "1.0",
  "stateOfChargeFinal": "1.0",
  "energyAdded": Energy,
  "cost": Money,
  "location": "abc123",
  "operatorImageUrl": "abc123"
}

Fields

NameDescription
eventType(String!)

id(ID!)

The ID of the object

message(PushNotificationMessageType)

Push notification message of the push notification event.

occurredAt(DateTime!)

Example

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

PushNotificationMessageType

Represents a push notification communication.

Fields

NameDescription
createdAt(DateTime!)

The date and time the push notification was created.

id(ID!)

The ID of the push notification.

sentAt(DateTime)

The date and time the push notification was sent.

supportSiteUrl(String)

URL to view the push notification in the support site.

templateCode(String!)

The trigger type code of the push notification.

textBody(String)

The body text of the push notification.

title(String!)

The title of the push notification.

Example

{
  "id": "abc123",
  "createdAt": "2020-01-01T00:00:00.000Z",
  "sentAt": "2020-01-01T00:00:00.000Z",
  "templateCode": "abc123",
  "title": "abc123",
  "textBody": "abc123",
  "supportSiteUrl": "abc123"
}

Fields

NameDescription
intervalEnd(DateTime)

The exclusive end of this reading's interval.

intervalStart(DateTime)

The inclusive start of this reading's interval.

quality(String)

The quality of this reading if applicable.

source(String)

The source of this reading if applicable.

units(String)

This reading's units.

value(Decimal)

The recorded value for this reading.

Example

{
  "value": "1.0",
  "units": "abc123",
  "intervalStart": "2020-01-01T00:00:00.000Z",
  "intervalEnd": "2020-01-01T00:00:00.000Z",
  "source": "abc123",
  "quality": "abc123"
}

Fields

NameDescription
exportReadings(ExportReadingsConnection)

Readings representing outgoing utility flow e.g., solar generation.

Arguments

after (String)

before (String)

first (Int)

last (Int)

importReadings(ImportReadingsConnection)

Readings representing incoming utility flow e.g., usage or consumption..

Arguments

after (String)

before (String)

first (Int)

last (Int)

Example

{
  "exportReadings": ExportReadingsConnection,
  "importReadings": ImportReadingsConnection
}

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"
}

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.

referringUserTotalPaymentAmount(Int!)

Total payment amount given to the referring account in the smallest unit. of the client's currency.

If you filter the referrals by status, this will only return the total payment amount of referrals with the specified status.

totalCount(Int!)

Total number of nodes.

Example

{
  "pageInfo": PageInfo,
  "edges": ReferralConnectionTypeEdge,
  "totalCount": 1,
  "edgeCount": 1,
  "referringUserTotalPaymentAmount": 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.

isUsageAtCapacity(Boolean)

True if the the scheme has limit of uses, and if the usage is at capacity.

loyaltyPointsBonus(Int)

The number of loyalty points to be awarded to the referrer in addition to the reward amount.

maxRecurrence(Int)

Max number of times this referral code can be credited to a given account.

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 'referrerFamilyName' field is deprecated.

Only make use of the referrerGivenName for privacy reasons.

- Marked as deprecated on 2022-11-07.
- Scheduled for removal on or after 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",
  "maxRecurrence": 1,
  "isUsageAtCapacity": true
}

Fields

NameDescription
business(ReferralSchemeType)

A business scheme type.

domestic(ReferralSchemeType)

A domestic scheme type.

friendsAndFamily(ReferralSchemeType)

A friends and family scheme type.

Deprecated

The 'friendsAndFamily' field is deprecated.

Please use domestic instead.

- Marked as deprecated on 2020-03-05.
- Scheduled for removal on or after 2024-01-01.

Example

{
  "domestic": ReferralSchemeType,
  "business": ReferralSchemeType,
  "friendsAndFamily": ReferralSchemeType
}

ReferralType

Details of an account referral

Fields

NameDescription
code(String)

The referral code.

combinedPaymentAmount(Int)

The payment amount in the smallest unit of the clients currency received by the referrer and the referee combined.

id(ID!)

paymentDate(Date)

The date when the payment was made.

paymentStatus(String)

The status of the payment.

referredUserJoinDate(DateTime)

The date the referred user joined.

referredUserName(String)

The name of the referred user.

referredUserPaymentAmount(Int)

Payment amount given to the referred account in the smallest unit of the client's currency.

referringUserPaymentAmount(Int)

Payment amount given to the referring account in the clients fractional currency unit.

schemeType(ReferralSchemeTypeChoices)

The type of reward scheme.

Example

{
  "id": "abc123",
  "paymentDate": "2020-01-01",
  "schemeType": "REFERRAL_REWARD",
  "code": "abc123",
  "referredUserName": "abc123",
  "paymentStatus": "abc123",
  "referredUserJoinDate": "2020-01-01T00:00:00.000Z",
  "referredUserPaymentAmount": 1,
  "referringUserPaymentAmount": 1,
  "combinedPaymentAmount": 1
}

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"
}

RegistersConnection

Pagination for device registers.

Fields

NameDescription
edgeCount(Int!)

Number of nodes in the edge.

edges([RegistersEdge]!)

Contains the nodes in this connection.

pageInfo(PageInfo!)

Pagination data for this connection.

totalCount(Int!)

Total number of nodes.

Example

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

RegistersEdge

A Relay edge containing a Registers and its cursor.

Fields

NameDescription
cursor(String!)

A cursor for use in pagination

node(DeviceRegister)

The item at the end of the edge

Example

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

Fields

NameDescription
assigneeId(ID)

The id of the user responsible for completing the reminder.

assigneeTeamId(ID)

The id of the team responsible for completing the reminder.

assigneeTeamName(String)

The name of the team responsible for completing the reminder.

assigneeUsername(String)

The username of the user responsible for completing the reminder.

content(String)

Reminder content.

createdAt(DateTime)

The date and time the account reminder was created.

dueAt(DateTime)

When the reminder is due.

id(Int)

The unique ID of the reminder.

isKrakenManaged(Boolean)

If the reminder is managed by Kraken.

reminderTypeName(String)

The reminder type name.

reopenInkConversation(Boolean)

Reopen ink conversation.

Example

{
  "id": 1,
  "reminderTypeName": "abc123",
  "isKrakenManaged": true,
  "content": "abc123",
  "dueAt": "2020-01-01T00:00:00.000Z",
  "assigneeUsername": "abc123",
  "assigneeId": "abc123",
  "assigneeTeamName": "abc123",
  "assigneeTeamId": "abc123",
  "reopenInkConversation": true,
  "createdAt": "2020-01-01T00:00:00.000Z"
}

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"
}

Fields

NameDescription
email(String)

The email that requested a password reset email.

userNumber(String)

The number of the user that requested a password reset email.

Example

{
  "email": "abc123",
  "userNumber": "abc123"
}

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"
}

Fields

NameDescription
failureCodes([String])

A list of codes of which password validation the new password failed against if applicable. One of: - password_too_short - password_too_common - password_reused - password_matches_current - password_has_too_few_numeric_characters - password_has_too_few_special_characters - password_has_too_few_lowercase_characters - password_has_too_few_uppercase_characters - password_contains_account_number - password_contains_part_of_email_address

Deprecated

The 'failureCodes' field is deprecated.

Please handle the KT-CT-5450 error and inspect the `validationErrors[].code` extension instead.

Note that the KT-CT-5450 error will not be raised if you request any of the `failureCodes`, `failureReasons`, or `passwordUpdated` fields.

- Marked as deprecated on 2025-04-07.
- Scheduled for removal on or after 2025-10-04.

failureReasons([String])

A list of messages of which password validations the new password failed against if applicable.

Deprecated

The 'failureReasons' field is deprecated.

Please handle the KT-CT-5450 error and inspect the `validationErrors[].message` extension instead.

Note that the KT-CT-5450 error will not be raised if you request any of the `failureCodes`, `failureReasons`, or `passwordUpdated` fields.

- Marked as deprecated on 2025-04-07.
- Scheduled for removal on or after 2025-10-04.

passwordUpdated(Boolean)

True if the password update was successful, false otherwise.

Deprecated

The 'passwordUpdated' field is deprecated.

Please handle the KT-CT-5450 error instead.

Note that the KT-CT-5450 error will not be raised if you request any of the `failureCodes`, `failureReasons`, or `passwordUpdated` fields.

- Marked as deprecated on 2025-04-07.
- Scheduled for removal on or after 2025-10-04.

userId(ID!)

The ID of the user whose password was changed.

Example

{
  "userId": "abc123",
  "passwordUpdated": true,
  "failureReasons": ["abc123"],
  "failureCodes": ["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])

Field with the possible errors of the query/mutation.

Deprecated

The 'possibleErrors' field is deprecated.

Please use the 'possibleErrors' query or the 'X-Kraken-Possible-Errors' header instead.

- Marked as deprecated on 2025-01-31.
- Scheduled for removal on or after 2025-03-01.

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
code(String)

The referral code.

id(ID!)

paymentDate(Date)

The date when the payment was made.

paymentStatus(ReferralStatusChoices)

The status of the reward payment.

rewardAmount(Int)

Reward amount given to the account in the smallest unit of the clients currency.

schemeType(ReferralSchemeTypeChoices)

The type of reward scheme.

Example

{
  "id": "abc123",
  "paymentDate": "2020-01-01",
  "schemeType": "REFERRAL_REWARD",
  "code": "abc123",
  "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.

If you only need the address in a single string, use the asString property. If you need the address as a list of lines, use the asString property, then use .splitlines() (or your programming language's equivalent) on the resulting value.

Fields

NameDescription
administrativeArea(String)

Top-level administrative subdivision, e.g. US state, AU state/territory, NZ, region, 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.

asString(String)

The entire formatted address represented as a single string, as it would be written on an envelope.

The formatting of this field may vary according to the country of the address (which may not match this Kraken installation's home country). It may also change if we update our address-formatting code or if our understanding of the correct formatting for a given country changes. Avoid parsing individual components of an address out of this field's value; use the other fields on this type instead.

Arguments

showCountry (Boolean)

Whether to include the country. The country will be spelled out in all-caps on the last line, as per Universal Postal Union standards.

showName (Boolean)

Whether to include the name attached to this address.

showPostalCode (Boolean)

Whether to include the postal code attached to this address.

country(String)

ISO 3166-1 alpha-2 code of the country this address belongs to, e.g. AU, GB, NZ.

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, NZ suburb and city/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
  • kana_company_name
  • kanji_company_name

NZ: New Zealand

The following keys may be present; all are optional. If keys are empty, they may be omitted from the response entirely.

  • flat_or_unit_type
  • flat_or_unit_number
  • floor_or_level_type
  • floor_or_level_number
  • property_name
  • building_name
  • house_number_1
  • house_number_suffix_1
  • house_number_2
  • house_number_suffix_2
  • street_prefix
  • street_name
  • street_type
  • street_suffix
  • rural_delivery_number
  • mailtown
  • postal_delivery_type
  • postal_delivery_location
  • postal_delivery_number_prefix
  • postal_delivery_number_value
  • postal_delivery_number_suffix

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",
  "asString": "abc123"
}

Fields

NameDescription
eventType(String!)

id(ID!)

The ID of the object

message(SMSMessageType)

SMS message of the SMS event.

occurredAt(DateTime!)

Example

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

SMSMessageType

Represents a SMS communication.

Fields

NameDescription
account(AccountType)

The account found.

attachments([AttachmentType])

Attachments of the message.

id(ID!)

The ID of the SMS.

recipient(String)

SMS recipient.

sender(String)

SMS sender.

sentAt(DateTime)

The date and time the SMS was sent.

textBody(String)

SMS body.

Example

{
  "id": "abc123",
  "sentAt": "2020-01-01T00:00:00.000Z",
  "account": AccountType,
  "sender": "abc123",
  "recipient": "abc123",
  "textBody": "abc123",
  "attachments": [AttachmentType]
}

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
}

SelectChargePointMake

Options for selecting a charge point's make from a list of options.

Fields

NameDescription
id(ID)

A unique identifier for this onboarding step.

options([SmartFlexListItemInterface])

The options the user can select.

selectedOptionId(ID)

The ID of the option that has been selected, if any.

Example

{
  "id": "abc123",
  "options": SmartFlexListItemInterface,
  "selectedOptionId": "abc123"
}

SelectChargePointMakeForSmartFlexOnboarding

Complete the select charge point make step.

The possible errors that can be raised are:

  • KT-CT-1111: Unauthorized.
  • KT-CT-4371: Onboarding wizard ID is invalid.
  • KT-CT-4372: Simultaneous attempts to update onboarding process.
  • KT-CT-4375: Incorrect or missing parameters for SmartFlex onboarding step.
  • KT-CT-4376: Unable to complete onboarding step. Please try again later.
  • KT-CT-4377: Invalid onboarding step ID.
  • KT-CT-4378: Invalid input or step id. Please make sure you are using the correct step id and providing the expected input params.
  • KT-CT-4379: Vehicle is not ready for a test charge.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription
possibleErrors([PossibleErrorType])

Field with the possible errors of the query/mutation.

Deprecated

The 'possibleErrors' field is deprecated.

Please use the 'possibleErrors' query or the 'X-Kraken-Possible-Errors' header instead.

- Marked as deprecated on 2025-01-31.
- Scheduled for removal on or after 2025-03-01.

wizard(SmartFlexOnboardingWizard)

The wizard created for onboarding the device with SmartFlex.

Example

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

Fields

NameDescription
chargePointMake(ChargePointVariantType)

The make of the charge point, e.g. myenergi.

id(ID)

A unique identifier for this list item.

Example

{
  "id": "abc123",
  "chargePointMake": ChargePointVariantType
}

SelectChargePointVariant

Options for selecting a charge point's variant from a list of options.

Fields

NameDescription
id(ID)

A unique identifier for this onboarding step.

options([SmartFlexListItemInterface])

The options the user can select.

selectedOptionId(ID)

The ID of the option that has been selected, if any.

Example

{
  "id": "abc123",
  "options": SmartFlexListItemInterface,
  "selectedOptionId": "abc123"
}

SelectChargePointVariantForSmartFlexOnboarding

Complete the select charge point variant step.

The possible errors that can be raised are:

  • KT-CT-1111: Unauthorized.
  • KT-CT-4371: Onboarding wizard ID is invalid.
  • KT-CT-4372: Simultaneous attempts to update onboarding process.
  • KT-CT-4375: Incorrect or missing parameters for SmartFlex onboarding step.
  • KT-CT-4376: Unable to complete onboarding step. Please try again later.
  • KT-CT-4377: Invalid onboarding step ID.
  • KT-CT-4378: Invalid input or step id. Please make sure you are using the correct step id and providing the expected input params.
  • KT-CT-4379: Vehicle is not ready for a test charge.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription
possibleErrors([PossibleErrorType])

Field with the possible errors of the query/mutation.

Deprecated

The 'possibleErrors' field is deprecated.

Please use the 'possibleErrors' query or the 'X-Kraken-Possible-Errors' header instead.

- Marked as deprecated on 2025-01-31.
- Scheduled for removal on or after 2025-03-01.

wizard(SmartFlexOnboardingWizard)

The wizard created for onboarding the device with SmartFlex.

Example

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

Fields

NameDescription
chargePointVariant(ChargePointVariantType)

The model variant of the charge point, e.g. Zappi.

id(ID)

A unique identifier for this list item.

Example

{
  "id": "abc123",
  "chargePointVariant": ChargePointVariantType
}

SelectDeviceType

A type where the user must select the type of device to onboard.

Fields

NameDescription
id(ID)

A unique identifier for this onboarding step.

options([SmartFlexListItemInterface])

The options the user can select.

selectedOptionId(ID)

The ID of the option that has been selected, if any.

Example

{
  "id": "abc123",
  "options": SmartFlexListItemInterface,
  "selectedOptionId": "abc123"
}

SelectDeviceTypeForSmartFlexOnboarding

Select the type of device to start the onboarding process.

The possible errors that can be raised are:

  • KT-CT-1111: Unauthorized.
  • KT-CT-4371: Onboarding wizard ID is invalid.
  • KT-CT-4372: Simultaneous attempts to update onboarding process.
  • KT-CT-4375: Incorrect or missing parameters for SmartFlex onboarding step.
  • KT-CT-4376: Unable to complete onboarding step. Please try again later.
  • KT-CT-4377: Invalid onboarding step ID.
  • KT-CT-4378: Invalid input or step id. Please make sure you are using the correct step id and providing the expected input params.
  • KT-CT-4379: Vehicle is not ready for a test charge.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription
possibleErrors([PossibleErrorType])

Field with the possible errors of the query/mutation.

Deprecated

The 'possibleErrors' field is deprecated.

Please use the 'possibleErrors' query or the 'X-Kraken-Possible-Errors' header instead.

- Marked as deprecated on 2025-01-31.
- Scheduled for removal on or after 2025-03-01.

wizard(SmartFlexOnboardingWizard)

The wizard created for onboarding the device with SmartFlex.

Example

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

Fields

NameDescription
id(ID)

A unique identifier for this list item.

label(String)

The device type, e.g. Electric Vehicle.

Example

{
  "id": "abc123",
  "label": "abc123"
}

SelectFromListForSmartFlexOnboarding

Select from a list of options presented (in a step that inherits from SelectFromList).

The possible errors that can be raised are:

  • KT-CT-1111: Unauthorized.
  • KT-CT-4371: Onboarding wizard ID is invalid.
  • KT-CT-4372: Simultaneous attempts to update onboarding process.
  • KT-CT-4375: Incorrect or missing parameters for SmartFlex onboarding step.
  • KT-CT-4376: Unable to complete onboarding step. Please try again later.
  • KT-CT-4377: Invalid onboarding step ID.
  • KT-CT-4378: Invalid input or step id. Please make sure you are using the correct step id and providing the expected input params.
  • KT-CT-4379: Vehicle is not ready for a test charge.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription
possibleErrors([PossibleErrorType])

Field with the possible errors of the query/mutation.

Deprecated

The 'possibleErrors' field is deprecated.

Please use the 'possibleErrors' query or the 'X-Kraken-Possible-Errors' header instead.

- Marked as deprecated on 2025-01-31.
- Scheduled for removal on or after 2025-03-01.

wizard(SmartFlexOnboardingWizard)

The wizard created for onboarding the device with SmartFlex.

Example

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

SelectHeatPumpMake

Options for selecting a heat pump's make from a list of options.

Fields

NameDescription
id(ID)

A unique identifier for this onboarding step.

options([SmartFlexListItemInterface])

The options the user can select.

selectedOptionId(ID)

The ID of the option that has been selected, if any.

Example

{
  "id": "abc123",
  "options": SmartFlexListItemInterface,
  "selectedOptionId": "abc123"
}

SelectHeatPumpMakeForSmartFlexOnboarding

Complete the select heat pump make step.

The possible errors that can be raised are:

  • KT-CT-1111: Unauthorized.
  • KT-CT-4371: Onboarding wizard ID is invalid.
  • KT-CT-4372: Simultaneous attempts to update onboarding process.
  • KT-CT-4375: Incorrect or missing parameters for SmartFlex onboarding step.
  • KT-CT-4376: Unable to complete onboarding step. Please try again later.
  • KT-CT-4377: Invalid onboarding step ID.
  • KT-CT-4378: Invalid input or step id. Please make sure you are using the correct step id and providing the expected input params.
  • KT-CT-4379: Vehicle is not ready for a test charge.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription
possibleErrors([PossibleErrorType])

Field with the possible errors of the query/mutation.

Deprecated

The 'possibleErrors' field is deprecated.

Please use the 'possibleErrors' query or the 'X-Kraken-Possible-Errors' header instead.

- Marked as deprecated on 2025-01-31.
- Scheduled for removal on or after 2025-03-01.

wizard(SmartFlexOnboardingWizard)

The wizard created for onboarding the device with SmartFlex.

Example

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

Fields

NameDescription
heatPumpMake(HeatPumpVariantType)

The make (manufacturer) of the heat pump.

id(ID)

A unique identifier for this list item.

Example

{
  "id": "abc123",
  "heatPumpMake": HeatPumpVariantType
}

SelectHeatPumpVariant

Options for selecting a heat pump's variant from a list of options.

Fields

NameDescription
id(ID)

A unique identifier for this onboarding step.

options([SmartFlexListItemInterface])

The options the user can select.

selectedOptionId(ID)

The ID of the option that has been selected, if any.

Example

{
  "id": "abc123",
  "options": SmartFlexListItemInterface,
  "selectedOptionId": "abc123"
}

Fields

NameDescription
heatPumpVariant(HeatPumpVariantType)

The model variant of the heat pump.

id(ID)

A unique identifier for this list item.

Example

{
  "id": "abc123",
  "heatPumpVariant": HeatPumpVariantType
}

SelectInverterMake

Options for selecting an inverter's make from a list of options.

Fields

NameDescription
id(ID)

A unique identifier for this onboarding step.

options([SmartFlexListItemInterface])

The options the user can select.

selectedOptionId(ID)

The ID of the option that has been selected, if any.

Example

{
  "id": "abc123",
  "options": SmartFlexListItemInterface,
  "selectedOptionId": "abc123"
}

SelectInverterMakeForSmartFlexOnboarding

Complete the select inverter make step.

The possible errors that can be raised are:

  • KT-CT-1111: Unauthorized.
  • KT-CT-4371: Onboarding wizard ID is invalid.
  • KT-CT-4372: Simultaneous attempts to update onboarding process.
  • KT-CT-4375: Incorrect or missing parameters for SmartFlex onboarding step.
  • KT-CT-4376: Unable to complete onboarding step. Please try again later.
  • KT-CT-4377: Invalid onboarding step ID.
  • KT-CT-4378: Invalid input or step id. Please make sure you are using the correct step id and providing the expected input params.
  • KT-CT-4379: Vehicle is not ready for a test charge.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription
possibleErrors([PossibleErrorType])

Field with the possible errors of the query/mutation.

Deprecated

The 'possibleErrors' field is deprecated.

Please use the 'possibleErrors' query or the 'X-Kraken-Possible-Errors' header instead.

- Marked as deprecated on 2025-01-31.
- Scheduled for removal on or after 2025-03-01.

wizard(SmartFlexOnboardingWizard)

The wizard created for onboarding the device with SmartFlex.

Example

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

Fields

NameDescription
id(ID)

A unique identifier for this list item.

inverterMake(InverterVariantType)

The make (manufacturer) of the inverter.

Example

{
  "id": "abc123",
  "inverterMake": InverterVariantType
}

SelectSessionDevice

A type where the user must select a device from a list of session devices.

Fields

NameDescription
id(ID)

A unique identifier for this onboarding step.

options([SmartFlexListItemInterface])

The options the user can select.

selectedOptionId(ID)

The ID of the option that has been selected, if any.

Example

{
  "id": "abc123",
  "options": SmartFlexListItemInterface,
  "selectedOptionId": "abc123"
}

Fields

NameDescription
id(ID)

A unique identifier for this list item.

sessionDevice(SessionDeviceType)

A device associated with the onboarding session.

Example

{
  "id": "abc123",
  "sessionDevice": SessionDeviceType
}

SelectThermostatMake

Options for selecting a thermostat's make from a list of options.

Fields

NameDescription
id(ID)

A unique identifier for this onboarding step.

options([SmartFlexListItemInterface])

The options the user can select.

selectedOptionId(ID)

The ID of the option that has been selected, if any.

Example

{
  "id": "abc123",
  "options": SmartFlexListItemInterface,
  "selectedOptionId": "abc123"
}

Fields

NameDescription
id(ID)

A unique identifier for this list item.

thermostatMake(ThermostatVariantType)

The thermostat make, e.g. Ecobee.

Example

{
  "id": "abc123",
  "thermostatMake": ThermostatVariantType
}

SelectThermostatVariant

Options for selecting a thermostat's variant from a list of options.

Fields

NameDescription
id(ID)

A unique identifier for this onboarding step.

options([SmartFlexListItemInterface])

The options the user can select.

selectedOptionId(ID)

The ID of the option that has been selected, if any.

Example

{
  "id": "abc123",
  "options": SmartFlexListItemInterface,
  "selectedOptionId": "abc123"
}

SelectUserVehicle

Options for selecting a user's vehicle from a list of options.

Fields

NameDescription
id(ID)

A unique identifier for this onboarding step.

options([SmartFlexListItemInterface])

The options the user can select.

selectedOptionId(ID)

The ID of the option that has been selected, if any.

Example

{
  "id": "abc123",
  "options": SmartFlexListItemInterface,
  "selectedOptionId": "abc123"
}

SelectUserVehicleForSmartFlexOnboarding

Complete the select user vehicle step.

The possible errors that can be raised are:

  • KT-CT-1111: Unauthorized.
  • KT-CT-4371: Onboarding wizard ID is invalid.
  • KT-CT-4372: Simultaneous attempts to update onboarding process.
  • KT-CT-4375: Incorrect or missing parameters for SmartFlex onboarding step.
  • KT-CT-4376: Unable to complete onboarding step. Please try again later.
  • KT-CT-4377: Invalid onboarding step ID.
  • KT-CT-4378: Invalid input or step id. Please make sure you are using the correct step id and providing the expected input params.
  • KT-CT-4379: Vehicle is not ready for a test charge.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription
possibleErrors([PossibleErrorType])

Field with the possible errors of the query/mutation.

Deprecated

The 'possibleErrors' field is deprecated.

Please use the 'possibleErrors' query or the 'X-Kraken-Possible-Errors' header instead.

- Marked as deprecated on 2025-01-31.
- Scheduled for removal on or after 2025-03-01.

wizard(SmartFlexOnboardingWizard)

The wizard created for onboarding the device with SmartFlex.

Example

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

Fields

NameDescription
id(ID)

A unique identifier for this list item.

userVehicle(ElectricVehicleType)

The selected electric vehicle when multiple vehicles were available.

Deprecated

The 'userVehicle' field is deprecated.

Please use 'SelectUserVehicleListItem.vehicle' instead.

- Marked as deprecated on 2025-04-10.
- Scheduled for removal on or after 2025-07-10.

vehicle(VehicleInformationType)

A vehicle associated with the user's OEM account.

Example

{
  "id": "abc123",
  "userVehicle": ElectricVehicleType,
  "vehicle": VehicleInformationType
}

SelectVehicleMake

Options for selecting a vehicle's make from a list of options.

Fields

NameDescription
id(ID)

A unique identifier for this onboarding step.

options([SmartFlexListItemInterface])

The options the user can select.

selectedOptionId(ID)

The ID of the option that has been selected, if any.

Example

{
  "id": "abc123",
  "options": SmartFlexListItemInterface,
  "selectedOptionId": "abc123"
}

SelectVehicleMakeForSmartFlexOnboarding

Complete the select vehicle make step.

The possible errors that can be raised are:

  • KT-CT-1111: Unauthorized.
  • KT-CT-4371: Onboarding wizard ID is invalid.
  • KT-CT-4372: Simultaneous attempts to update onboarding process.
  • KT-CT-4375: Incorrect or missing parameters for SmartFlex onboarding step.
  • KT-CT-4376: Unable to complete onboarding step. Please try again later.
  • KT-CT-4377: Invalid onboarding step ID.
  • KT-CT-4378: Invalid input or step id. Please make sure you are using the correct step id and providing the expected input params.
  • KT-CT-4379: Vehicle is not ready for a test charge.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription
possibleErrors([PossibleErrorType])

Field with the possible errors of the query/mutation.

Deprecated

The 'possibleErrors' field is deprecated.

Please use the 'possibleErrors' query or the 'X-Kraken-Possible-Errors' header instead.

- Marked as deprecated on 2025-01-31.
- Scheduled for removal on or after 2025-03-01.

wizard(SmartFlexOnboardingWizard)

The wizard created for onboarding the device with SmartFlex.

Example

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

Fields

NameDescription
id(ID)

A unique identifier for this list item.

vehicleMake(ElectricVehicleType)

The make of the electric vehicle make, e.g. Tesla.

Example

{
  "id": "abc123",
  "vehicleMake": ElectricVehicleType
}

SelectVehicleOrChargePoint

A step to prompt users to select between their vehicle or charge point.

Fields

NameDescription
id(ID)

A unique identifier for this onboarding step.

selectedIntegration(SelectIntegrationChoices)

Example

{
  "id": "abc123",
  "selectedIntegration": "ELECTRIC_VEHICLE"
}

SelectVehicleVariant

Options for selecting a vehicle's variant from a list of options.

Fields

NameDescription
id(ID)

A unique identifier for this onboarding step.

options([SmartFlexListItemInterface])

The options the user can select.

selectedOptionId(ID)

The ID of the option that has been selected, if any.

Example

{
  "id": "abc123",
  "options": SmartFlexListItemInterface,
  "selectedOptionId": "abc123"
}

SelectVehicleVariantForSmartFlexOnboarding

Complete the select vehicle variant step.

The possible errors that can be raised are:

  • KT-CT-1111: Unauthorized.
  • KT-CT-4371: Onboarding wizard ID is invalid.
  • KT-CT-4372: Simultaneous attempts to update onboarding process.
  • KT-CT-4375: Incorrect or missing parameters for SmartFlex onboarding step.
  • KT-CT-4376: Unable to complete onboarding step. Please try again later.
  • KT-CT-4377: Invalid onboarding step ID.
  • KT-CT-4378: Invalid input or step id. Please make sure you are using the correct step id and providing the expected input params.
  • KT-CT-4379: Vehicle is not ready for a test charge.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription
possibleErrors([PossibleErrorType])

Field with the possible errors of the query/mutation.

Deprecated

The 'possibleErrors' field is deprecated.

Please use the 'possibleErrors' query or the 'X-Kraken-Possible-Errors' header instead.

- Marked as deprecated on 2025-01-31.
- Scheduled for removal on or after 2025-03-01.

wizard(SmartFlexOnboardingWizard)

The wizard created for onboarding the device with SmartFlex.

Example

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

Fields

NameDescription
id(ID)

A unique identifier for this list item.

vehicleVariant(ElectricVehicleType)

The model variant of the electric vehicle, e.g. Model Y.

Example

{
  "id": "abc123",
  "vehicleVariant": ElectricVehicleType
}

Fields

NameDescription
id(String)

A unique session device identifier.

make(String)

The make (manufacturer) of the device.

model(String)

The model of the device.

name(String)

The name of the device.

Example

{
  "id": "abc123",
  "name": "abc123",
  "make": "abc123",
  "model": "abc123"
}

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])

Field with the possible errors of the query/mutation.

Deprecated

The 'possibleErrors' field is deprecated.

Please use the 'possibleErrors' query or the 'X-Kraken-Possible-Errors' header instead.

- Marked as deprecated on 2025-01-31.
- Scheduled for removal on or after 2025-03-01.

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])

Field with the possible errors of the query/mutation.

Deprecated

The 'possibleErrors' field is deprecated.

Please use the 'possibleErrors' query or the 'X-Kraken-Possible-Errors' header instead.

- Marked as deprecated on 2025-01-31.
- Scheduled for removal on or after 2025-03-01.

Example

{
  "possibleErrors": [PossibleErrorType],
  "heatPumpDevice": HeatPumpDeviceType
}

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])

Field with the possible errors of the query/mutation.

Deprecated

The 'possibleErrors' field is deprecated.

Please use the 'possibleErrors' query or the 'X-Kraken-Possible-Errors' header instead.

- Marked as deprecated on 2025-01-31.
- Scheduled for removal on or after 2025-03-01.

Example

{
  "possibleErrors": [PossibleErrorType],
  "heatPumpDevice": HeatPumpDeviceType
}

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])

Field with the possible errors of the query/mutation.

Deprecated

The 'possibleErrors' field is deprecated.

Please use the 'possibleErrors' query or the 'X-Kraken-Possible-Errors' header instead.

- Marked as deprecated on 2025-01-31.
- Scheduled for removal on or after 2025-03-01.

Example

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

ShowInputFieldErrorsActionType

An action that instructs the app to display validation errors on input fields.

Fields

NameDescription
errors([InputFieldErrorType]!)

List of field-level validation errors to display.

id(ID)

Unique identifier of the object.

screenId(String)

Optional ID of the form screen these errors apply to.

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",
  "screenId": "abc123",
  "errors": InputFieldErrorType
}

Fields

NameDescription
consumptionInKw(Decimal)

The current power in kW being consumed by the property from the solar panels, battery and grid. If power is being exported to the grid, that is offset againstconsumption. If power is being used to charge the battery, that doesn't count towards consumption; that'll only count as consumed when it is later used to power the property (this avoids double-counting it).

exportInKw(Decimal)

The current power being exported from the property to the grid in kW. This will be 0 if no export is occurring, or otherwise a positive value.

Example

{
  "consumptionInKw": "1.0",
  "exportInKw": "1.0"
}

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.

chargePointVariant(ChargePointVariantModelType)

This contains more detail about the variant of the charge point model.

chargingPreferences(SmartFlexVehicleChargingPreferences)

The user's preferences for charging using this charge point.

chargingSessions(DeviceChargingSessionConnection)

History of charging sessions for a SmartFlex device.

Arguments

after (DateTime)

Earliest time of the charging sessions i.e. the start of the time window. Only sessions that start at or after this datetime are returned. Must be earlier than before.

before (DateTime)

Latest time of the charging sessions i.e. end of the time window. Only sessions that start before this datetime are returned. Must be later than after.

first (Int)

last (Int)

sessionTypes ([ChargingSessionType])

The types of charging sessions to be returned.

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.

integrationDeviceId(String)

The third-party integration device 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.

preferenceSetting(FlexDevicePreferenceSettingInterface)

The preference setting for this device.

preferences(SmartFlexDevicePreferencesInterface)

The device's preference details.

propertyId(String)

The id of the property linked to the device.

provider(ProviderChoices!)

The third-party that enables control of this device.

reAuthenticationState(DeviceReAuthenticationInterface)

The re-authentication state of this device, if applicable.

status(SmartFlexDeviceStatusInterface!)

Information about the current status of this device.

vehicleVariant(ElectricVehicleModelType)

This contains more detail about the variant of the vehicle model.

Example

{
  "id": "abc123",
  "name": "abc123",
  "deviceType": "BATTERIES",
  "provider": "BYD",
  "integrationDeviceId": "abc123",
  "status": SmartFlexDeviceStatusInterface,
  "propertyId": "abc123",
  "alerts": SmartFlexDeviceAlertInterface,
  "onboardingWizard": SmartFlexOnboardingWizard,
  "preferences": SmartFlexDevicePreferencesInterface,
  "preferenceSetting": FlexDevicePreferenceSettingInterface,
  "reAuthenticationState": DeviceReAuthenticationInterface,
  "chargingSessions": DeviceChargingSessionConnection,
  "make": "abc123",
  "model": "abc123",
  "vehicleVariant": ElectricVehicleModelType,
  "chargePointVariant": ChargePointVariantModelType,
  "chargingPreferences": SmartFlexVehicleChargingPreferences
}

SmartFlexChargePointStatus

The current status of a registered charge point.

Fields

NameDescription
activePower(DecimalReading)

The latest active power reading for the device in kW. A negative value indicates power is being drawn to charge the device.

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.

stateOfCharge(DecimalReading)

The latest SoC received from the vehicle. It has a value between 0-100.

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",
  "stateOfCharge": DecimalReading,
  "activePower": DecimalReading,
  "stateOfChargeLimit": StateOfChargeLimit,
  "testDispatchFailureReason": "NONE"
}

Fields

NameDescription
cause(SmartFlexChargingErrorCause!)

Possible cause of the charging error.

Example

{
  "cause": "SOC_LIMIT_REACHED"
}

Fields

NameDescription
cost(Money)

The cost for the charge added during a charging session.

dispatches([SmartFlexDispatch])

The charging session dispatch.

end(DateTime!)

The end time of a charging session.

energyAdded(Energy)

The energy added during a charging session.

problems([SmartFlexChargingProblem])

Charging problem(s) encountered during the session due to an error or truncation.

start(DateTime!)

The start time of a charging session.

stateOfChargeChange(Decimal)

The change in state of charge during a charging session. The value will be between 0 and 100, if not null.

stateOfChargeFinal(Decimal)

The final state of charge after a charging session. The value will be between 0 and 100, if not null.

targetType(PreferencesTargetType!)

The target type for a user's preferences.

type(SmartFlexChargingType!)

The type of charge, i.e. SMART or BOOST.

Example

{
  "start": "2020-01-01T00:00:00.000Z",
  "end": "2020-01-01T00:00:00.000Z",
  "stateOfChargeChange": "1.0",
  "stateOfChargeFinal": "1.0",
  "energyAdded": Energy,
  "cost": Money,
  "type": "SMART",
  "targetType": "ABSOLUTE_STATE_OF_CHARGE",
  "dispatches": [SmartFlexDispatch],
  "problems": SmartFlexChargingError
}

Fields

NameDescription
achievableStateOfCharge(Decimal!)

The state of charge (in percent) that was possible, given the truncation.

originalAchievableStateOfCharge(Decimal!)

The state of charge (in percent) that could have been achieved, if not for truncation of the charging session.

truncationCause(SmartFlexChargingTruncationCause!)

The cause for the truncation of a charging session.

Example

{
  "truncationCause": "DISCONNECTED",
  "originalAchievableStateOfCharge": "1.0",
  "achievableStateOfCharge": "1.0"
}

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.

integrationDeviceId(String)

The third-party integration device ID.

name(String)

The user-friendly name for the device.

onboardingWizard(SmartFlexOnboardingWizard)

The current onboarding wizard for a device.

preferenceSetting(FlexDevicePreferenceSettingInterface)

The preference setting for this device.

preferences(SmartFlexDevicePreferencesInterface)

The device's preference details.

propertyId(String)

The id of the property linked to the device.

provider(ProviderChoices!)

The third-party that enables control of this device.

reAuthenticationState(DeviceReAuthenticationInterface)

The re-authentication state of this device, if applicable.

status(SmartFlexDeviceStatusInterface!)

Information about the current status of this device.

Example

{
  "id": "abc123",
  "name": "abc123",
  "deviceType": "BATTERIES",
  "provider": "BYD",
  "integrationDeviceId": "abc123",
  "status": SmartFlexDeviceStatusInterface,
  "propertyId": "abc123",
  "alerts": SmartFlexDeviceAlertInterface,
  "onboardingWizard": SmartFlexOnboardingWizard,
  "preferences": SmartFlexDevicePreferencesInterface,
  "preferenceSetting": FlexDevicePreferenceSettingInterface,
  "reAuthenticationState": DeviceReAuthenticationInterface
}

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"
}

SmartFlexDevicePreferenceSchedule

A schedule entry for device preferences specifying target values for a specific day and time.

For information about valid value ranges, time constraints, and step increments, query the device's preferenceSettings field which provides bounds and validation rules.

Fields

NameDescription
dayOfWeek(DayOfWeek!)

Day of week schedule applies to.

max(Float)

Maximum value for the schedule. Usage depends on the targetType and mode - e.g. target state of charge for EVs, or cooling set point for heat pumps.For valid bounds and step increments, see the device's preferenceSettings field.

min(Float)

Minimum value for the schedule when applicable. Usage depends on the targetType and mode - e.g. heating set point temperature for heat pumps. May be null for device types that don't require a lower bound. For valid bounds and step increments, see the device's preferenceSettings field.

time(Time!)

Time of day the preference applies.

upperLimit(Float)

Upper limit value for the schedule when applicable.Usage depends on the targetType - e.g., charge level to never be exceeded for V2G EVs.May be null for device types that don't require an upper bound.

Example

{
  "dayOfWeek": "MONDAY",
  "time": "00:00:00.000Z",
  "min": 1.0,
  "max": 1.0,
  "upperLimit": 1.0
}

Fields

NameDescription
gridExport(FlexGridExportStatus!)

The status of the device's grid export capability.

isChargingDurationCapped(FlexIsChargingDurationCapped!)

The status of the device's charging duration cap.

mode(PreferencesModeChoices!)

The device's preference mode.

schedules([SmartFlexDevicePreferenceSchedule])

The schedules of the device's preference.

targetType(PreferencesTargetType!)

The target type of the preference.

unit(PreferencesUnitChoices!)

The unit of the preference schedules' min and max values.

Example

{
  "targetType": "ABSOLUTE_STATE_OF_CHARGE",
  "unit": "CELSIUS",
  "mode": "CHARGE",
  "schedules": [SmartFlexDevicePreferenceSchedule],
  "gridExport": "ENABLED",
  "isChargingDurationCapped": "ENABLED"
}

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
importSupplyPointId(String!)

Import supply point ID.

smartFlexDeviceId(String!)

SmartFlex device ID.

Example

{
  "importSupplyPointId": "abc123",
  "smartFlexDeviceId": "abc123"
}

Fields

NameDescription
end(DateTime!)

The end time of the dispatch.

energyAddedKwh(Decimal)

The energy added in kWh of the dispatch.

start(DateTime!)

The start time of the dispatch.

type(SmartFlexChargingType!)

The type of charge.

Example

{
  "start": "2020-01-01T00:00:00.000Z",
  "end": "2020-01-01T00:00:00.000Z",
  "type": "SMART",
  "energyAddedKwh": "1.0"
}

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.

integrationDeviceId(String)

The third-party integration device 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.

preferenceSetting(FlexDevicePreferenceSettingInterface)

The preference setting for this device.

preferences(SmartFlexDevicePreferencesInterface)

The device's preference details.

propertyId(String)

The id of the property linked to the device.

provider(ProviderChoices!)

The third-party that enables control of this device.

reAuthenticationState(DeviceReAuthenticationInterface)

The re-authentication state of this device, if applicable.

status(SmartFlexDeviceStatusInterface!)

Information about the current status of this device.

zoneType(ZoneTypeChoices)

The type of zone that this heat pump device represents.

Example

{
  "id": "abc123",
  "name": "abc123",
  "deviceType": "BATTERIES",
  "provider": "BYD",
  "integrationDeviceId": "abc123",
  "status": SmartFlexDeviceStatusInterface,
  "propertyId": "abc123",
  "alerts": SmartFlexDeviceAlertInterface,
  "onboardingWizard": SmartFlexOnboardingWizard,
  "preferences": SmartFlexDevicePreferencesInterface,
  "preferenceSetting": FlexDevicePreferenceSettingInterface,
  "reAuthenticationState": DeviceReAuthenticationInterface,
  "make": "abc123",
  "model": "abc123",
  "powerInKw": NormalizedDecimal,
  "zoneType": "CLIMATE"
}

Fields

NameDescription
activity(Activity)

The data related to the latest reported activity of the heat pump.

current(SmartFlexDeviceLifecycleStatus)

The current status of the device.

currentState(SmartFlexDeviceState)

The current state of this SmartFlex device state machine.

currentTemperatures([ZoneTemperature])

The data related to the latest reported temperature of different zones.

isSuspended(Boolean)

Whether control of the device is currently disabled.

mode(FunctionalMode)

The data related to the latest reported mode of the heat pump.

targetTemperature(TargetTemperature)

The data related to the target temperature of the heat pump.

Example

{
  "current": "ONBOARDING",
  "isSuspended": true,
  "currentState": "AUTHENTICATION_PENDING",
  "mode": FunctionalMode,
  "currentTemperatures": [ZoneTemperature],
  "targetTemperature": TargetTemperature,
  "activity": Activity
}

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.

integrationDeviceId(String)

The third-party integration device 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.

preferenceSetting(FlexDevicePreferenceSettingInterface)

The preference setting for this device.

preferences(SmartFlexDevicePreferencesInterface)

The device's preference details.

propertyId(String)

The id of the property linked to the device.

provider(ProviderChoices!)

The third-party that enables control of this device.

reAuthenticationState(DeviceReAuthenticationInterface)

The re-authentication state of this device, if applicable.

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": "BYD",
  "integrationDeviceId": "abc123",
  "status": SmartFlexDeviceStatusInterface,
  "propertyId": "abc123",
  "alerts": SmartFlexDeviceAlertInterface,
  "onboardingWizard": SmartFlexOnboardingWizard,
  "preferences": SmartFlexDevicePreferencesInterface,
  "preferenceSetting": FlexDevicePreferenceSettingInterface,
  "reAuthenticationState": DeviceReAuthenticationInterface,
  "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
}

SmartFlexOnboardingDeviceRegistration

A type that returns True if the device(s) were successfully registered.

Fields

NameDescription
deviceRegistered(Boolean)

Returns true if the device(s) were successfully registered.

id(ID)

A unique identifier for this onboarding step.

Example

{
  "id": "abc123",
  "deviceRegistered": true
}

Fields

NameDescription
backendScreen(BackendScreenType)

A Backend Screen that renders the SmartFlex onboarding wizard.

Arguments

maxVersionSupported (Int)

The maximum version of Backend Screens supported by the client.

completedSteps([SmartFlexOnboardingStepInterface])

The completed steps for all onboarding wizards that are currently in progress. Note: - The last step is the most recent one. - If an onboarding journey is completed, it will not be included in this list.

currentStep(SmartFlexOnboardingStepInterface)

The next step of the SmartFlex onboarding wizard. Returns None if the onboarding journey is completed.

deviceType(KrakenFlexDeviceTypes)

The onboarding wizard's selected device type to be onboarded.

displayName(String)

The onboarding wizard's display name extracted from the wizard's selected device attributes.

id(ID!)

A unique identifier for this SmartFlex onboarding wizard.

resumable(SmartFlexResumable)

Determines whether the wizard's onboarding journey can be resumed.

Example

{
  "id": "abc123",
  "resumable": SmartFlexResumable,
  "deviceType": "BATTERIES",
  "displayName": "abc123",
  "backendScreen": ComponentListType,
  "currentStep": SmartFlexOnboardingStepInterface,
  "completedSteps": SmartFlexOnboardingStepInterface
}

Fields

NameDescription
isResumable(Boolean)

A boolean to determine whether the wizard's onboarding journey can be resumed.

resumableReasons([String])

Reasons why a wizard cannot be resumed.

Example

{
  "isResumable": true,
  "resumableReasons": ["abc123"]
}

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.

integrationDeviceId(String)

The third-party integration device ID.

make(String)

The manufacturer of the thermostat.

name(String)

The user-friendly name for the thermostat.

onboardingWizard(SmartFlexOnboardingWizard)

The current onboarding wizard for a device.

preferenceSetting(FlexDevicePreferenceSettingInterface)

The preference setting for this device.

preferences(SmartFlexDevicePreferencesInterface)

The device's preference details.

propertyId(String)

The id of the property linked to the device.

provider(ProviderChoices!)

The third-party that enables control of this device.

reAuthenticationState(DeviceReAuthenticationInterface)

The re-authentication state of this device, if applicable.

status(SmartFlexDeviceStatusInterface!)

Information about the current status of this device.

Example

{
  "id": "abc123",
  "name": "abc123",
  "deviceType": "BATTERIES",
  "provider": "BYD",
  "integrationDeviceId": "abc123",
  "status": SmartFlexDeviceStatusInterface,
  "propertyId": "abc123",
  "alerts": SmartFlexDeviceAlertInterface,
  "onboardingWizard": SmartFlexOnboardingWizard,
  "preferences": SmartFlexDevicePreferencesInterface,
  "preferenceSetting": FlexDevicePreferenceSettingInterface,
  "reAuthenticationState": DeviceReAuthenticationInterface,
  "make": "abc123"
}

Fields

NameDescription
current(SmartFlexDeviceLifecycleStatus)

The current status of the device.

currentState(SmartFlexDeviceState)

The current state of this SmartFlex device state machine.

currentTemperature(Temperature)

Current ambient temperature reported by the thermostat.

isSuspended(Boolean)

Whether control of the device is currently disabled.

mode(ThermostatMode)

Current operation mode of the thermostat.

targetCoolTemperature(Temperature)

The target set point for cooling.

targetHeatTemperature(Temperature)

The target set point for heating.

timestamp(DateTime)

The timestamp of the latest status update.

Example

{
  "current": "ONBOARDING",
  "isSuspended": true,
  "currentState": "AUTHENTICATION_PENDING",
  "mode": "HEATING",
  "currentTemperature": Temperature,
  "targetCoolTemperature": Temperature,
  "targetHeatTemperature": Temperature,
  "timestamp": "2020-01-01T00:00:00.000Z"
}

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.

chargePointVariant(ChargePointVariantModelType)

This contains more detail about the variant of the charge point model.

chargingPreferences(SmartFlexVehicleChargingPreferences)

The user's preferences for charging this vehicle.

Deprecated

The 'chargingPreferences' field is deprecated.

Please use 'devices.preferences' instead.

- Marked as deprecated on 2024-11-01.
- Scheduled for removal on or after 2025-05-06.

chargingSessions(DeviceChargingSessionConnection)

History of charging sessions for a SmartFlex device.

Arguments

after (DateTime)

Earliest time of the charging sessions i.e. the start of the time window. Only sessions that start at or after this datetime are returned. Must be earlier than before.

before (DateTime)

Latest time of the charging sessions i.e. end of the time window. Only sessions that start before this datetime are returned. Must be later than after.

first (Int)

last (Int)

sessionTypes ([ChargingSessionType])

The types of charging sessions to be returned.

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.

integrationDeviceId(String)

The third-party integration device 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.

preferenceSetting(FlexDevicePreferenceSettingInterface)

The preference setting for this device.

preferences(SmartFlexDevicePreferencesInterface)

The device's preference details.

propertyId(String)

The id of the property linked to the device.

provider(ProviderChoices!)

The third-party that enables control of this device.

reAuthenticationState(DeviceReAuthenticationInterface)

The re-authentication state of this device, if applicable.

status(SmartFlexDeviceStatusInterface!)

Information about the current status of this device.

vehicleVariant(ElectricVehicleModelType)

This contains more detail about the variant of the vehicle model.

Example

{
  "id": "abc123",
  "name": "abc123",
  "deviceType": "BATTERIES",
  "provider": "BYD",
  "integrationDeviceId": "abc123",
  "status": SmartFlexDeviceStatusInterface,
  "propertyId": "abc123",
  "alerts": SmartFlexDeviceAlertInterface,
  "onboardingWizard": SmartFlexOnboardingWizard,
  "preferences": SmartFlexDevicePreferencesInterface,
  "preferenceSetting": FlexDevicePreferenceSettingInterface,
  "reAuthenticationState": DeviceReAuthenticationInterface,
  "chargingSessions": DeviceChargingSessionConnection,
  "make": "abc123",
  "model": "abc123",
  "vehicleVariant": ElectricVehicleModelType,
  "chargePointVariant": ChargePointVariantModelType,
  "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
activePower(DecimalReading)

The latest active power reading for the device in kW. A negative value indicates power is being drawn to charge the device.

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.

stateOfCharge(DecimalReading)

The latest SoC received from the vehicle. It has a value between 0-100.

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",
  "stateOfCharge": DecimalReading,
  "activePower": DecimalReading,
  "stateOfChargeLimit": StateOfChargeLimit,
  "testDispatchFailureReason": "NONE"
}

Fields

NameDescription
powerInKw(Decimal)

The current power being generated by the solar panels in kW. This will be null if there are no solar panels, 0 if there are solar panels but they are not generating, or a positive value if they are generating.

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
createdAt(DateTime)

The date and time the special circumstance record was created.

id(ID)

internalCode(String)

summary(String)

Example

{
  "id": "abc123",
  "summary": "abc123",
  "internalCode": "abc123",
  "createdAt": "2020-01-01T00:00:00.000Z"
}

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
}

StartReAuthentication

Create a wizard for re-authenticating a device with SmartFlex.

The possible errors that can be raised are:

  • KT-CT-4321: Serializer validation error.
  • KT-CT-4385: Re-authentication is not supported for this device.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription
possibleErrors([PossibleErrorType])

Field with the possible errors of the query/mutation.

Deprecated

The 'possibleErrors' field is deprecated.

Please use the 'possibleErrors' query or the 'X-Kraken-Possible-Errors' header instead.

- Marked as deprecated on 2025-01-31.
- Scheduled for removal on or after 2025-03-01.

wizard(SmartFlexOnboardingWizard)

The wizard created for re-authenticating the device with SmartFlex.

Example

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

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-4385: Re-authentication is not supported for this device.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription
possibleErrors([PossibleErrorType])

Field with the possible errors of the query/mutation.

Deprecated

The 'possibleErrors' field is deprecated.

Please use the 'possibleErrors' query or the 'X-Kraken-Possible-Errors' header instead.

- Marked as deprecated on 2025-01-31.
- Scheduled for removal on or after 2025-03-01.

wizard(SmartFlexOnboardingWizard)

The wizard created for onboarding the device with SmartFlex.

Example

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

StartTestChargeForSmartFlexOnboarding

Attempt to start a test charge.

The possible errors that can be raised are:

  • KT-CT-1111: Unauthorized.
  • KT-CT-4371: Onboarding wizard ID is invalid.
  • KT-CT-4372: Simultaneous attempts to update onboarding process.
  • KT-CT-4375: Incorrect or missing parameters for SmartFlex onboarding step.
  • KT-CT-4376: Unable to complete onboarding step. Please try again later.
  • KT-CT-4377: Invalid onboarding step ID.
  • KT-CT-4378: Invalid input or step id. Please make sure you are using the correct step id and providing the expected input params.
  • KT-CT-4379: Vehicle is not ready for a test charge.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription
possibleErrors([PossibleErrorType])

Field with the possible errors of the query/mutation.

Deprecated

The 'possibleErrors' field is deprecated.

Please use the 'possibleErrors' query or the 'X-Kraken-Possible-Errors' header instead.

- Marked as deprecated on 2025-01-31.
- Scheduled for removal on or after 2025-03-01.

wizard(SmartFlexOnboardingWizard)

The wizard created for onboarding the device with SmartFlex.

Example

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

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.

documentDebtPosition(BillingDocumentPositionType)

Position of the billing document in the delinquent debt tracking system.

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)

ID for the statement billing document.

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.

paymentDueDate(Date)

The date due for payment for the statement.

pdfUrl(String)

URL to the PDF of the statement.

startAt(DateTime!)

The start of the statement's period.

totalCharges(StatementTotalType)

The total amounts for all charges on the statement.

totalCredits(StatementTotalType)

The total amounts for all credits on the statement.

transactions(BillTransactionConnectionTypeConnection)

Transactions on the statement

Arguments

after (String)

before (String)

first (Int)

last (Int)

orderBy (TransactionsOrderBy)

The order in which to return the transactions.

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",
  "paymentDueDate": "2020-01-01",
  "pdfUrl": "abc123",
  "annulledBy": AnnulmentBillingDocumentType,
  "totalCharges": StatementTotalType,
  "totalCredits": StatementTotalType,
  "transactions": BillTransactionConnectionTypeConnection,
  "documentDebtPosition": BillingDocumentPositionType
}

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
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"
}

Fields

NameDescription
characteristic(CharacteristicType)

The product characteristic.

stringValue(String!)

The string value of the characteristic.

value(String)

A string representation of a characteristic value, for convenience.

Example

{
  "value": "abc123",
  "characteristic": CharacteristicType,
  "stringValue": "abc123"
}

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)

Deprecated

The 'ledgerId' field is deprecated.

Please use 'ledgerNumber' instead. This is in the form of 'L-123456789A'

- Marked as deprecated on 2024-10-22.
- Scheduled for removal on or after 2025-06-25.

ledgerType(String)

name(String)

The display name of the ledger.

number(String)

The canonical name of the ledger.

paymentAdequacy(PaymentAdequacyDetailsType)

Example

{
  "id": "abc123",
  "name": "abc123",
  "ledgerType": "abc123",
  "number": "abc123",
  "currentBalance": 1,
  "paymentAdequacy": PaymentAdequacyDetailsType
}

SupplyPointType

Represents a SupplyPoint.

Fields

NameDescription
devices(DevicesConnection)

Get list of devices under a supply point.

Arguments

after (String)

before (String)

deviceIdentifiers ([String])

The ids of the devices to get. If not provided, all devices for the supply point will be returned.

first (Int)

last (Int)

externalIdentifier(String)

The external identifier of the supply point.

id(ID!)

The ID of the supply point.

marketName(String!)

The market this supply point belongs to.

property(PropertyType)

The supply point's property.

readings(Readings)

Get readings from a readable device e.g., a supply point, device, or register.

Arguments

endAt (DateTime!)

The exclusive end of the time period as an isoformatted string.

readingType (ReadingTypes!)

Get readings of only this type.

startAt (DateTime!)

The inclusive start of the time period as an isoformatted string.

timeGranularity (TimeGranularities)

Time buckets to group readings into.

timezone (String)

The timezone in which to return readings.

units ([Units])

Optional filter to return readings only for specific list of units or unit (e.g., KILOWATTHOURS, METERSCUBED, LITER, etc.).

Example

{
  "id": "abc123",
  "marketName": "abc123",
  "externalIdentifier": "abc123",
  "readings": Readings,
  "property": PropertyType,
  "devices": DevicesConnection
}

SupplyProductTagType

A product tag.

Fields

NameDescription
code(String)

Tag code.

displayName(String)

Tag display name.

Example

{
  "code": "abc123",
  "displayName": "abc123"
}

SupplyProductType

GraphQL type for a supply product.

Fields

NameDescription
availabilityStatus(ProductAvailability)

The product availability status.

availableFrom(DateTime)

The date and time the product is available from.

availableTo(DateTime)

The date and time the product is available to.

brandCode(String)

The brand code of the product.

code(String)

The product code.

description(String)

The product description.

displayName(String)

The product description.

endsAt(DateTime)

The date the product ends.

fullName(String)

The product title.

id(ID!)

isHidden(Boolean)

Whether the product is hidden.

marketName(String)

The name of the market the product belongs to.

notes(String)

The product notes.

params(JSONString)

The product parameters.

tags([SupplyProductTagType!]!)

Tags associated with the product.

term(Int)

The product term in months.

termsAndConditionsTypes([TermsAndConditionsType!]!)

Active terms and conditions for a market supply product.

termsContractType(String)

The product contract type.

Example

{
  "id": "abc123",
  "code": "abc123",
  "notes": "abc123",
  "fullName": "abc123",
  "displayName": "abc123",
  "description": "abc123",
  "availableFrom": "2020-01-01T00:00:00.000Z",
  "availableTo": "2020-01-01T00:00:00.000Z",
  "isHidden": true,
  "term": 1,
  "endsAt": "2020-01-01T00:00:00.000Z",
  "brandCode": "abc123",
  "marketName": "abc123",
  "availabilityStatus": "EVERYONE",
  "termsContractType": "abc123",
  "termsAndConditionsTypes": TermsAndConditionsType,
  "params": {"key": "value"},
  "tags": SupplyProductTagType
}

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])

Field with the possible errors of the query/mutation.

Deprecated

The 'possibleErrors' field is deprecated.

Please use the 'possibleErrors' query or the 'X-Kraken-Possible-Errors' header instead.

- Marked as deprecated on 2025-01-31.
- Scheduled for removal on or after 2025-03-01.

Example

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

Fields

NameDescription
timestamp(DateTime)

The time the data was submitted.

value(Decimal)

The target temperature in Celsius.

Example

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

Fields

NameDescription
scale(TemperatureScale)

Temperature scale.

value(Decimal)

Numeric value representing the temperature.

Example

{
  "value": "1.0",
  "scale": "CELSIUS"
}

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
createdAt(DateTime)

The date and time the special circumstance record was created.

expiryDate(Date)

id(ID)

internalCode(String)

summary(String)

Example

{
  "id": "abc123",
  "summary": "abc123",
  "internalCode": "abc123",
  "createdAt": "2020-01-01T00:00:00.000Z",
  "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"
}

TeslaModifyScopes

A step which indicates that the Tesla permission scopes need to be granted by the user in order to register their vehicle.

Fields

NameDescription
id(ID)

A unique identifier for this onboarding step.

modifyScopesUri(String)

Returns the URI to update the permission scopes.

redirectUri(String)

The redirect URI to return to after updating the permission scopes.

Example

{
  "id": "abc123",
  "modifyScopesUri": "abc123",
  "redirectUri": "abc123"
}

TeslaRegistrationFailed

A step which indicates that the Tesla registration failed and the user must re-grant permission scopes to register their vehicle.

Fields

NameDescription
id(ID)

A unique identifier for this onboarding step.

modifyScopesSelected(Boolean)

Returns:- true if user wants to update permissions scopes.- false if user wants to retry the OAuth journey.- null if user has not made a decision.

Example

{
  "id": "abc123",
  "modifyScopesSelected": true
}

TeslaSetupVirtualKey

A step which indicates that the user must add the given URI as a virtual key in their Tesla account.

Fields

NameDescription
id(ID)

A unique identifier for this onboarding step.

key(String)

The name of the key to add.

uri(String)

The URI to add as a virtual key in the user's Tesla account.

Example

{
  "id": "abc123",
  "key": "abc123",
  "uri": "abc123"
}

TestCharge

A step which indicates if we're able to test charge the user's vehicle(s).

Fields

NameDescription
error(TestChargeError)

Returns the error raised from a failed test charge.

id(ID)

A unique identifier for this onboarding step.

isReady(Boolean)

Returns true if the device is ready for a test charge.

isStarted(Boolean)

Returns true if the test charge has started.

status(TestDispatchStatus)

Returns the dispatch status of test charge.

Deprecated

The 'status' field is deprecated.

Please use 'isStarted' and 'error' instead.

- Marked as deprecated on 2024-12-12.
- Scheduled for removal on or after 2025-02-12.

Example

{
  "id": "abc123",
  "error": TestChargeError,
  "isReady": true,
  "status": "TRIGGERED",
  "isStarted": true
}

TestChargeError

Errors can be of two kinds (assuming the user is querying this type with message, reasons, errorType, and descriptions fields):

  1. If we were unable to start a test charge, the response will be: { "message": "TestChargeRefused", "reasons": [Returns a list of values from `TestChargeRefusalReason`], "errorType": "UNABLE_TO_INITIATE_TEST_CHARGE", "descriptions": [Returns a list of descriptions for the refusal reasons] }

    Where descriptions can be: - DEVICE_LIVE: "device is already live" - DEVICE_ONBOARDING_IN_PROGRESS: "test dispatch already in progress" - DEVICE_RETIRED: "device is retired" - DEVICE_SUSPENDED: "device is suspended" - DEVICE_DISCONNECTED: "device is disconnected" - DEVICE_ALREADY_CHARGING: "device is already charging" - DEVICE_AWAY_FROM_HOME: "device is away from home" - DEVICE_NO_LOCATION_CONFIGURED: "device has no location configured" - DEVICE_LOCATION_UNABLE_TO_IDENTIFY: "unable to identify device location" - DEVICE_LOCATION_MISSING: "device location is missing"

  2. If an error occurred during a test charge, the response will be: { "message": "Test dispatch failed", "reasons": [Returns a list of values from `TestDispatchAssessmentFailureReason`], "errorType": "UNABLE_TO_COMPLETE_TEST_CHARGE", "descriptions": [Returns a list of descriptions for the refusal reasons] }

    Where descriptions can be: - ASSESSMENTS_FAILED: "Both power-based and charge status-based assessments failed" - NOT_AT_HOME: "Device location not at home" - UNKNOWN: "Unknown failure" - UNABLE_TO_COMMUNICATE: "Unable to communicate with device" - DEVICE_DISCONNECTED: "Device disconnected" - SOC_LIMIT_REACHED: "State of charge limit reached" - ERROR: "Could not fetch the test charge failure reason" - NONE: "No failure reason"

Fields

NameDescription
descriptions([String])

A list of error descriptions for a failed test charge attempt.

errorType(TestChargeErrorType)

The type of test charge error.

message(String)

A human readable error message.

reasons([String])

A list of reasons for a failed test charge attempt.

refusalReasons([TestChargeRefusalReason])

A list of refusal reasons from the failed test charge attempt.

Deprecated

The 'refusalReasons' field is deprecated.

Please use `errorType` and `reasons` instead.

- Marked as deprecated on 2025-01-07.
- Scheduled for removal on or after 2025-01-29.

Example

{
  "message": "abc123",
  "refusalReasons": "DEVICE_LIVE",
  "errorType": "UNABLE_TO_INITIATE_TEST_CHARGE",
  "reasons": ["abc123"],
  "descriptions": ["abc123"]
}

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
make(String)

The make (manufacturer) of the device.

Example

{
  "make": "abc123"
}

ThirdPartyCompleteDeviceRegistration

Complete the registration of a device.

The possible errors that can be raised are:

  • KT-CT-4321: Serializer validation error.
  • KT-CT-4322: Unable to complete registration error.
  • KT-CT-1113: Disabled GraphQL field requested.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1112: 'Authorization' header not provided.

Fields

NameDescription
possibleErrors([PossibleErrorType])

Field with the possible errors of the query/mutation.

Deprecated

The 'possibleErrors' field is deprecated.

Please use the 'possibleErrors' query or the 'X-Kraken-Possible-Errors' header instead.

- Marked as deprecated on 2025-01-31.
- Scheduled for removal on or after 2025-03-01.

success(ThirdPartyCompleteDeviceRegistrationType)

The response showing account validity and optional tariff information.

Example

{
  "possibleErrors": [PossibleErrorType]
}

Fields

NameDescription
isAccountValid(Boolean!)

If the account is valid.

isTariffSwitchInProgress(Boolean!)

If a switch to the required tariff is in progress.

tariff(ThirdPartyTariffsType)

The tariff the account is on, if the switch is complete.

Example

{
  "isAccountValid": true,
  "isTariffSwitchInProgress": true
}

ThirdPartyOrganizationType

Type for the third party organization.

Fields

NameDescription
name(String!)

The name of the third party.

permissions([ThirdPartyPermission])

Holds information about the permissions of the current viewer.

Example

{
  "name": "abc123"
}

ThirdPartyPermission

Holds information about a specific permission.

Fields

NameDescription
permission(String)

The short name of the permission.

Example

{
  "permission": "abc123"
}

Fields

NameDescription
daysOfWeek([String]!)

Day(s) of the week of the tariff interval.

endTime(String!)

Local 24hr end time of the tariff interval (format hh:mm).

startTime(String!)

Local 24hr start time of the tariff interval (format hh:mm).

tariffType(String!)

The type of tariff this is (e.g. peak or offPeak).

Example

{
  "startTime": "abc123",
  "endTime": "abc123",
  "daysOfWeek": "abc123",
  "tariffType": "abc123"
}

Fields

NameDescription
currency(String!)

Currency according to the ISO 4217 standard.

price(Decimal!)

Price per kWh in the given currency.

type(String!)

The type of tariff this is (e.g. peak or offPeak).

Example

{
  "currency": "abc123",
  "price": "1.0",
  "type": "abc123"
}

Fields

NameDescription
tariffIntervals([ThirdPartyTariffIntervalType]!)

Tariff intervals of the charging location.

tariffs([ThirdPartyTariffType]!)

Tariff rates of the charging location.

Example

{
  
}

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"
}

UnsupportedCombination

A step that indicates the selected device is not compatible with the users existing devices.

This step cannot be completed and the user must select different device options to continue.

Fields

NameDescription
id(ID)

A unique identifier for this onboarding step.

Example

{
  "id": "abc123"
}

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])

Field with the possible errors of the query/mutation.

Deprecated

The 'possibleErrors' field is deprecated.

Please use the 'possibleErrors' query or the 'X-Kraken-Possible-Errors' header instead.

- Marked as deprecated on 2025-01-31.
- Scheduled for removal on or after 2025-03-01.

Example

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

UpdateOptionsLanguagePreference

Update the language preference for an account. Determines the language in which communications about the account are sent. It does not affect the language seen in the UI.

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
optionsLanguagePreference(OptionsLanguagePreferenceChoices)

The selected language preference.

possibleErrors([PossibleErrorType])

Field with the possible errors of the query/mutation.

Deprecated

The 'possibleErrors' field is deprecated.

Please use the 'possibleErrors' query or the 'X-Kraken-Possible-Errors' header instead.

- Marked as deprecated on 2025-01-31.
- Scheduled for removal on or after 2025-03-01.

Example

{
  "possibleErrors": [PossibleErrorType],
  "optionsLanguagePreference": "ENGLISH"
}

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])

Field with the possible errors of the query/mutation.

Deprecated

The 'possibleErrors' field is deprecated.

Please use the 'possibleErrors' query or the 'X-Kraken-Possible-Errors' header instead.

- Marked as deprecated on 2025-01-31.
- Scheduled for removal on or after 2025-03-01.

viewer(AccountUserType)

Example

{
  "possibleErrors": [PossibleErrorType],
  "viewer": AccountUserType
}

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 'deltaKwh' field is deprecated.

`delta` has replaced `deltaKwh` for increased precision.

- Marked as deprecated on 2024-04-19.
- Scheduled for removal on or after 2025-01-01.

end(DateTime!)

The end time of the dispatch.

endDt(String)

This field has been replaced by end.

Deprecated

The 'endDt' field is deprecated.

`end` has replaced `end_dt` for improved typing.

- Marked as deprecated on 2024-04-19.
- Scheduled for removal on or after 2025-01-01.

meta(UpsideDispatchMetaType)

start(DateTime!)

The start time of the dispatch.

startDt(String)

This field has been replaced by start.

Deprecated

The 'startDt' field is deprecated.

`start` has replaced `start_dt` for improved typing.

- Marked as deprecated on 2024-04-19.
- Scheduled for removal on or after 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
}

UserActionReason

A type that returns a user action that needs to be completed for the device to be successfully registered.

Fields

NameDescription
description(String)

Description of the required user action.

uri(String)

An optional uri that, if provided, can navigate the user to where they can resolve this required action.

userAction(String)

Reference key to the required user action.

Example

{
  "userAction": "abc123",
  "description": "abc123",
  "uri": "abc123"
}

UserActionRequired

A type that returns user actions that need to be completed for the device to be successfully registered

Fields

NameDescription
id(ID)

A unique identifier for this onboarding step.

userActions([UserActionReason])

List of actions the user must resolve in order for the device to be registered.

Example

{
  "id": "abc123",
  "userActions": [UserActionReason]
}

UserInputRequired

A type that returns user inputs that need to be provided for the device to be successfully registered

Fields

NameDescription
id(ID)

A unique identifier for this onboarding step.

userInputs([UserInputType])

A list of requested inputs for a user to provide in order for the onboarding journey to continue.

Example

{
  "id": "abc123",
  "userInputs": [UserInputType]
}

Fields

NameDescription
description(String)

Human friendly description of the requested input.

isRequired(Boolean)

True if the requested user input is required.

isValidated(Boolean)

True if the submitted user input has been successfully validated.

key(String)

Identifier for the requested user input.

value(String)

The value that has been submitted for this input. Can be a string, integer, or boolean.

Example

{
  "key": "abc123",
  "description": "abc123",
  "value": "abc123",
  "isRequired": true,
  "isValidated": true
}

UserManagedPayment

Represents the preference of the user to pay himself, instead of get charged.

Fields

NameDescription
forPaymentsAfter(String)

The start time of the payment preference.

Example

{
  "forPaymentsAfter": "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"
}

WaitForLiveIntegration

Indicates a step where the integration is pending activation.

Progress to the next onboarding step is blocked until the integration becomes active.

Fields

NameDescription
id(ID)

A unique identifier for this onboarding step.

isLive(Boolean)

Returns true if the device integration is supported by us, false otherwise.

Example

{
  "id": "abc123",
  "isLive": true
}

WaitForTransition

A generic step that can be used to hold an onboarding wizard until the device has transitioned from one onboarding state to another.

Generally, this step should be completed via a KF AMI event handler after the device has been registered and transitioned to the desired state.

Fields

NameDescription
id(ID)

A unique identifier for this onboarding step.

Example

{
  "id": "abc123"
}

Fields

NameDescription
deviceId(String)

Serial number.

marketSupplyPointId(String)

Meter point reference.

readingFrequencyType(ReadingFrequencyType)

The frequency of the reading.

Example

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

Fields

NameDescription
currentWaterTemperature(Decimal)

The current temperature of the hot water tank in Celsius.

waterTemperatureEnabled(Boolean)

Example

{
  "waterTemperatureEnabled": true,
  "currentWaterTemperature": "1.0"
}

Fields

NameDescription
timestamp(DateTime)

The time the temperature was reported.

value(Decimal)

Value of the temperature in Celsius.

zone(String)

Name of the zone.

Example

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