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

Code name of the sensor.

displayName(String)

User determined name for a sensor.

enabled(Boolean)

Whether or not a sensor is enabled.

type(SensorType)

Sensor type (NTC).

Example

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

APIBrownoutEdge

A Relay edge containing a APIBrownout and its cursor.

Fields

NameDescription
cursor(String!)

A cursor for use in pagination

node(APIBrownout)

The item at the end of the edge

Example

{
  "cursor": "abc123"
}

APIExceptionConnectionTypeEdge

A Relay edge containing a APIExceptionConnectionType and its cursor.

Fields

NameDescription
cursor(String!)

A cursor for use in pagination

node(APIExceptionType)

The item at the end of the edge

Example

{
  "cursor": "abc123"
}

AcceptGoodsQuote

The possible errors that can be raised are:

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

Fields

NameDescription
goodsPurchase(GoodsPurchase)

Goods purchase created.

possibleErrors([PossibleErrorType])

Field with the possible errors of the query/mutation.

Example

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

AcceptTermsAndConditions

Record the terms have been accepted and progress the workflow.

Fields

NameDescription
acceptedVersion(String)

Version of terms and conditions that were accepted.

Example

{
  "acceptedVersion": "abc123"
}

Fields

NameDescription
edgeCount(Int!)

Number of nodes in the edge.

edges([AccountApplicationConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo(PageInfo!)

Pagination data for this connection.

totalCount(Int!)

Total number of nodes.

Example

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

AccountApplicationConnectionTypeEdge

A Relay edge containing a AccountApplicationConnectionType and its cursor.

Fields

NameDescription
cursor(String!)

A cursor for use in pagination

node(AccountApplicationType)

The item at the end of the edge

Example

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

Fields

NameDescription
coolingOffEndDate(Date)

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

dateOfSale(Date)

Date at which this account decided to switch to us.

isMigrated(Boolean)

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

migrationSource(String)

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

salesChannel(String!)

salesSubchannel(String)

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

status(AccountApplicationStatus!)

Example

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

Fields

NameDescription
campaignExpiryDate(Date)

The date on which the associated campaign itself concludes.

expiryDate(Date)

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

name(String)

The name of the campaign.

slug(String)

The slug of the campaign.

startDate(Date)

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

Example

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

Fields

NameDescription
data(JSONString)

A JSON object containing unstructured data about the account charge.

updatedAt(DateTime)

The date and time the metadata was last updated.

Example

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

Fields

NameDescription
cclAmount(BigInt)

The climate change levy amount of the charge.

displayNote(String)

The display note for the charge.

grossAmount(BigInt)

The gross amount of the charge.

id(ID)

The ID of the account charge.

metadata(AccountChargeMetadataType)

netAmount(BigInt)

The net amount of the charge.

note(String)

The note for the charge.

reason(String)

The reason for the charge.

salesTaxAmount(BigInt)

The sales tax amount of the charge.

Example

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

Fields

NameDescription
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
data(JSONString!)

updatedAt(DateTime!)

Example

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

Fields

NameDescription
grossAmount(BigInt!)

id(ID!)

metadata(AccountCreditMetadataType)

netAmount(BigInt!)

note(String!)

reason(String!)

salesTaxAmount(BigInt!)

Example

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

Fields

NameDescription
edgeCount(Int!)

Number of nodes in the edge.

edges([AccountEventConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo(PageInfo!)

Pagination data for this connection.

totalCount(Int!)

Total number of nodes.

Example

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

AccountEventConnectionTypeEdge

A Relay edge containing a AccountEventConnectionType and its cursor.

Fields

NameDescription
cursor(String!)

A cursor for use in pagination

node(AccountEvent)

The item at the end of the edge

Example

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

Fields

NameDescription
category(String!)

fetchUrl(String)

filename(String!)

id(ID!)

The ID of the object

isReady(Boolean)

Is the file ready for use / downloadable?

isUploaded(Boolean)

Is the file uploaded to S3?

sizeInBytes(Int)

Example

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

Fields

NameDescription
edgeCount(Int!)

Number of nodes in the edge.

edges([AccountFileAttachmentConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo(PageInfo!)

Pagination data for this connection.

totalCount(Int!)

Total number of nodes.

Example

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

AccountFileAttachmentConnectionTypeEdge

A Relay edge containing a AccountFileAttachmentConnectionType and its cursor.

Fields

NameDescription
cursor(String!)

A cursor for use in pagination

node(AccountFileAttachment)

The item at the end of the edge

Example

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

Fields

NameDescription
isEligibleForIo(Boolean)

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

Example

{
  "isEligibleForIo": true
}

Fields

NameDescription
edgeCount(Int!)

Number of nodes in the edge.

edges([AccountPaymentConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo(PageInfo!)

Pagination data for this connection.

totalCount(Int!)

Total number of nodes.

Example

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

AccountPaymentConnectionTypeEdge

A Relay edge containing a AccountPaymentConnectionType and its cursor.

Fields

NameDescription
cursor(String!)

A cursor for use in pagination

node(AccountPaymentType)

The item at the end of the edge

Example

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

Fields

NameDescription
amount(BigInt!)

Amount of payment in pence

id(ID!)

paymentDate(Date!)

The date this payment is scheduled to be debited

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([AccountRepaymentConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo(PageInfo!)

Pagination data for this connection.

totalCount(Int!)

Total number of nodes.

Example

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

AccountRepaymentConnectionTypeEdge

A Relay edge containing a AccountRepaymentConnectionType and its cursor.

Fields

NameDescription
cursor(String!)

A cursor for use in pagination

node(AccountRepaymentType)

The item at the end of the edge

Example

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

Fields

NameDescription
amount(BigInt!)

Amount of payment in pence

id(ID!)

paymentDate(Date!)

The date this payment is scheduled to be debited

status(AccountRepaymentStatusOptions)

The current status of the repayment.

Example

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

AccountType

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

Fields

NameDescription
accountType(AccountTypeChoices)

The type of account.

activeHardshipAgreements([HardshipAgreementType])

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

activeReferralSchemes(ReferralSchemeTypes)

The referral schemes currently active for this account.

address(RichAddressType)

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

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

annualStatements(AnnualStatementConnectionTypeConnection)

Fetch annual statements for the account.

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)

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

billingAddress(String)

The billing address of the account.

billingAddressLine1(String)

billingAddressLine2(String)

billingAddressLine3(String)

billingAddressLine4(String)

billingAddressLine5(String)

billingAddressPostcode(String)

billingCountryCode(String)

billingDeliveryPointIdentifier(String)

billingEmail(String)

The billing email of the account.

billingName(String)

The billing name of the account.

billingOptions(BillingOptionsType)

Information about the account's billing cycle.

billingPostcode(String)

The postcode of the billing address.

billingSubName(String)

The billing sub name of the account.

bills(BillConnectionTypeConnection)

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

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)

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.

canBeWithdrawn(Boolean)

Whether an account can be withdrawn.

canChangePayments(Boolean)

Whether an account can change their payment schedule.

canInputMeterReadingsViaIvr(Boolean)

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

canRenewTariff(Boolean)

Whether the account is eligible for tariff renewal.

canRequestRefund(Boolean)

Whether the account can request a credit refund.

commsDeliveryPreference(CommsDeliveryPreference)

The method the account has specified they prefer we contact them.

communicationDeliveryPreference(String)

Deprecated

The 'communicationDeliveryPreference' field is deprecated.

Use `commsDeliveryPreference` instead

- Marked as deprecated on 2022-05-27.
- Scheduled for removal on or after 2024-01-01.

consents([ConsentType!]!)

Consents linked to this account.

contributionAgreements([ContributionAgreementType])

Contribution agreements for account.

cotReadingWindowDays(Int)

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

createdAt(DateTime)

The datetime that the account was originally created.

currentEstimatedSsd(Date)

The current estimated supply start day on an account.

debtCollectionProceedings([DebtCollectionProceedingType])

Debt collection proceedings for account.

directDebitInstructions(DirectDebitInstructionConnectionTypeConnection)

The direct debit instructions of the account

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.

earliestPossibleSsd(Date)

The earliest possible supply start day on an account.

electricityAgreements([ElectricityAgreementType])

The electricity agreements belonging to the account

Arguments

active (Boolean)

eligibilityForWarmHomeDiscount(WarmHomeDiscountEligibility)

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

events(AccountEventConnectionTypeConnection)

The account events that were recorded for the account.

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.

gasAgreements([GasAgreementType])

The gas agreements belonging to the account

Arguments

active (Boolean)

greenAccomplishments(GreenAccomplishmentsType)

The green benefits achieved over the lifetime of an account.

hasActiveCollectionsProceedings(Boolean)

Whether or not the account has active collections proceedings.

hasActiveDunningProcess(Boolean)

Whether or not the account has an active Dunning process.

id(ID!)

isEligibleForElectricityReadingIncentive(Boolean)

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

isEligibleForGasReadingIncentive(Boolean)

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

isInBlockingMigration(Boolean)

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

isInHardship(Boolean)

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

latestPossibleSsd(Date)

The latest possible supply start day on an account.

ledgers([LedgerType])

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

Arguments

ledgerId (ID)

The ledger to return.

ledgerNumber (String)

The ledger to return by its number.

maximumRefund(MaximumRefundType)

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

metadata([Metadata])

Metadata associated with the account.

notes([AccountNoteType])

Notes for the account.

number(String)

A code that uniquely identifies the account.

operationsTeam(OperationsTeamType)

The operations team that the account belongs to.

overdueBalance(Int)

The current account overdue balance.

paginatedFileAttachments(AccountFileAttachmentConnectionTypeConnection)

Files attached to this account.

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.

paymentAdequacy(PaymentAdequacyType)

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

paymentForecast([PaymentForecastType])

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

Deprecated

The 'paymentForecast' field is deprecated.

Please use 'paginatedPaymentForecast' instead.

- Marked as deprecated on 2024-01-03.
- 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.

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.

projectedBalance(Int)

Expected balance in a year's time.

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)

recommendedBalanceAdjustment(Int)

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

references([AccountReferenceType])

Account references linked to this account.

referrals(ReferralConnectionTypeConnection)

The referrals created by this account.

Arguments

after (String)

before (String)

first (Int)

last (Int)

referralsCreated(Int)

Number of referrals created by this account.

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.

rewards([RewardType])

The rewards applied to this account.

shouldReviewPayments(Boolean)

Whether the account's payment should be adjusted.

smets2Interest(SmartMeterInterestChoices)

The interest of an account in procuring smart meters.

smets2RefusalReason(SMETS2InterestReason)

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

splitBillingAddress([String])

List of billing address lines.

status(AccountStatus)

The current status of the account.

trackerTariffDailyPricing(TrackerTariffDailyPricing)

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

transactions(TransactionConnectionTypeConnection)

Fetch transactions that have taken place on the account.

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

warmHomeDiscount(WarmHomeDiscount)

Get details about warm home discount applications and records.

Example

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

Fields

NameDescription
url(String)

A url pertaining to a specific account.

urlIdentifier(String)

A description of the url's effect.

Example

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

AccountUserCommsPreferences

Information about the preferences set up for a user.

Fields

NameDescription
emailFormat(EmailFormats)

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

fontSizeMultiplier(Float)

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

isOptedInMeterReadingConfirmations(Boolean)

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

isOptedInToClientMessages(Boolean)

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

isOptedInToOfferMessages(Boolean)

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

isOptedInToRecommendedMessages(Boolean)

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

isOptedInToSmsMessages(Boolean)

Whether the user has opted in to receive SMS messages.

isOptedInToThirdPartyMessages(Boolean)

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

isOptedInToUpdateMessages(Boolean)

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

isUsingInvertedEmailColours(Boolean)

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

preferredHoldMusic(Songs)

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

Example

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

AccountUserConsents

Information about the consents for an account user.

Fields

NameDescription
consents([ConsentType!]!)

Consents linked to this user.

Example

{
  "consents": ConsentType
}

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
}

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.

alternativePhoneNumbers([String])

List of alternative phone numbers for the account user.

consents([ConsentType!]!)

Consents linked to this user.

dateOfBirth(Date)

AccountUser's date of birth.

details([AccountUserDetailType])

List of details linked to this user.

displayName(String)

We recommend you use fullName instead of this field.

Deprecated

The 'displayName' field is deprecated.

Please use fullName instead of this field.

- Marked as deprecated on 2019-12-11.
- 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.

holdMusicChoices([TrackOptionType])

List of hold music options.

id(ID!)

isDeceased(Boolean!)

Designates whether this user is deceased.

isInHardship(Boolean)

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

isOptedInToWof(Boolean)

landline(String!)

landlinePhoneNumber(String)

The user's landline phone number.

Deprecated

The 'landlinePhoneNumber' field is deprecated.

Use 'landline' instead.

- Marked as deprecated on 2021-03-22.
- 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!)

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

Fields

NameDescription
agent(SiteworksAppointmentAgent)

agentReference(String)

appointmentDate(Date!)

cancellationCategory(CancellationCategory)

The reason the appointment was cancelled (category).

cancellationSubCategory(String)

The reason the appointment was cancelled (sub-category).

createdAt(DateTime!)

date(Date)

id(UUID!)

isTradToSmartExchange(Boolean)

Is the appointment switching from a traditional (not SMETS1) meter to a smart meter?

requestId(String)

status(SiteworksAppointmentStatus)

The current status of the Siteworks application.

timeSlotEnd(Time)

timeSlotStart(Time)

workCategory(WorkCategory)

The category of work the appointment has been booked for.

Example

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

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

AddCampaignToAccount

The possible errors that can be raised are:

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

Fields

NameDescription
campaignAdded(Boolean)

Whether the campaign was successfully added.

possibleErrors([PossibleErrorType])

Field with the possible errors of the query/mutation.

Example

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

AddCreditToSmartMeter

Add credit to a smart prepayment meter.

Fields

NameDescription
amount(Int!)

Top-up amount in pence to add to smart meter.

Example

{
  "amount": 1
}

Fields

NameDescription
mpan(String)

profileClass(String)

Example

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

Fields

NameDescription
mprn(String)

Example

{
  "mprn": "abc123"
}

AddressConnectionTypeConnection

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

Fields

NameDescription
edgeCount(Int!)

Number of nodes in the edge.

edges([AddressConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo(PageInfo!)

Pagination data for this connection.

totalCount(Int!)

Total number of nodes.

Example

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

AddressConnectionTypeEdge

A Relay edge containing a AddressConnectionType and its cursor.

Fields

NameDescription
cursor(String!)

A cursor for use in pagination

node(AddressType)

The item at the end of the edge

Example

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

Fields

NameDescription
addressLine1(String!)

First address line.

addressLine2(String)

Second address line.

addressLine3(String)

Third address line.

addressLine4(String)

Fourth address line.

addressLine5(String)

Fifth address line.

postcode(String!)

Postcode.

uprn(String)

Unique Property Reference Number.

Example

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

Fields

NameDescription
electricityMeterPoints([ElectricMeterTechnicalDetails])

List of energised electricity meter points associated with the address.

gasMeterPoints([GasMeterTechnicalDetails])

List of gas meter points associated with the address.

Example

{
  "electricityMeterPoints": [ElectricMeterTechnicalDetails],
  "gasMeterPoints": [GasMeterTechnicalDetails]
}

Fields

NameDescription
addressKey(String!)

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

addressType(AddressTypeEnum)

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

display(String!)

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

electricityMeterPoints([AddressAPIElectricityMeterPointType])

gasMeterPoints([AddressAPIGasMeterPointType])

gspGroupId(String!)

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

hasPrepaidMeters(Boolean!)

houseNumber(String)

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

line1(String!)

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

line2(String!)

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

line3(String!)

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

line4(String!)

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

line5(String!)

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

postcode(String!)

streetName(String)

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

Example

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

AddressUPRNTypeConnection

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([AddressUPRNTypeEdge]!)

Contains the nodes in this connection.

pageInfo(PageInfo!)

Pagination data for this connection.

totalCount(Int!)

Total number of nodes.

Example

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

AddressUPRNTypeEdge

A Relay edge containing a AddressUPRNType and its cursor.

Fields

NameDescription
cursor(String!)

A cursor for use in pagination

node(UniqueRELAddressType)

The item at the end of the edge

Example

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

Fields

NameDescription
gspCoefficient(Float)

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

peakOffset(Float)

The peak offset for the unit rate.

priceCap(Float)

The maximum value/cap for the unit rate.

Example

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

AlreadyLinkedError

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

Fields

NameDescription
type(LineLinkErrorType!)

The type of error that occurred.

Example

{
  "type": "NO_MATCHING_LINE_LINK"
}

AmendPayment

The possible errors that can be raised are:

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

Fields

NameDescription
payment(AccountPaymentType)

possibleErrors([PossibleErrorType])

Field with the possible errors of the query/mutation.

Example

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

AmendUnbilledElectricityReading

Amend unbilled electricity reading.

Fields

NameDescription
readingAmended(Boolean)

Example

{
  "readingAmended": true
}

AnimationType

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

Fields

NameDescription
accessibilityHidden(Boolean)

Whether the element is hidden from view.

accessibilityLabel(String)

Accessible description of the element.

horizontalAlignment(Alignment)

The horizontal alignment of the media.

id(ID)

Unique identifier of the object.

mediaUrl(String!)

The resource URL of the media.

typename(String)

The name of the object's type.

width(ItemSizeType)

The measurement of the element.

Example

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

Fields

NameDescription
edgeCount(Int!)

Number of nodes in the edge.

edges([AnnualStatementConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo(PageInfo!)

Pagination data for this connection.

totalCount(Int!)

Total number of nodes.

Example

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

AnnualStatementConnectionTypeEdge

A Relay edge containing a AnnualStatementConnectionType and its cursor.

Fields

NameDescription
cursor(String!)

A cursor for use in pagination

node(AnnualStatementType)

The item at the end of the edge

Example

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

AnnualStatementType

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

Fields

NameDescription
id(ID)

pdfUrl(String)

periodEndsAt(DateTime!)

periodStartsAt(DateTime!)

Example

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

AnnulmentBillingDocumentType

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

Fields

NameDescription
annulledBillingDocumentId(Int!)

ID of the billing document annulled by this annulment.

firstIssued(DateTime)

First time the annulment was issued.

id(Int!)

pdfUrl(String)

URL to the PDF of the annulment.

Example

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

Fields

NameDescription
validFrom(DateTime)

validTo(DateTime)

value(Decimal)

Example

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

ApplicableRateConnectionTypeConnection

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

Fields

NameDescription
edgeCount(Int!)

Number of nodes in the edge.

edges([ApplicableRateConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo(PageInfo!)

Pagination data for this connection.

totalCount(Int!)

Total number of nodes.

Example

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

ApplicableRateConnectionTypeEdge

A Relay edge containing a ApplicableRateConnectionType and its cursor.

Fields

NameDescription
cursor(String!)

A cursor for use in pagination

node(ApplicableRate)

The item at the end of the edge

Example

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

AssignDiscountCode

The possible errors that can be raised are:

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

Fields

NameDescription
discountCode(String)

The assigned discount code.

possibleErrors([PossibleErrorType])

Field with the possible errors of the query/mutation.

Example

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

AssistanceAgreementType

A single Assistance Agreement.

Fields

NameDescription
activeFrom(Date)

The start datetime of the agreement.

activeTo(Date)

The end datetime of the agreement, if any.

assistanceType(String)

The type of assistance provided by the agreement.

Example

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

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

AutoTopupConfigConnectionTypeConnection

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

Using this class instead of AutoTopupConfigType directly allows for pagination.

Fields

NameDescription
edges([AutoTopupConfigConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo(PageInfo!)

Pagination data for this connection.

Example


AutoTopupConfigConnectionTypeEdge

A Relay edge containing a AutoTopupConfigConnectionType and its cursor.

Fields

NameDescription
cursor(String!)

A cursor for use in pagination

node(AutoTopupConfigType)

The item at the end of the edge

Example

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

AutoTopupConfigType

GraphQL output type for querying auto top-up configs.

Fields

NameDescription
accountNumber(String!)

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

deviceId(String!)

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

effectiveFrom(DateTime!)

The date and time when the config became effective.

effectiveTo(DateTime)

The date and time when the config stopped being effective.

id(ID!)

topupAmount(Int!)

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

Example

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

AutoTopupTriggerConnectionTypeConnection

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

Using this class instead of AutoTopupTriggerType directly allows for pagination.

Fields

NameDescription
edges([AutoTopupTriggerConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo(PageInfo!)

Pagination data for this connection.

Example


AutoTopupTriggerConnectionTypeEdge

A Relay edge containing a AutoTopupTriggerConnectionType and its cursor.

Fields

NameDescription
cursor(String!)

A cursor for use in pagination

node(AutoTopupTriggerType)

The item at the end of the edge

Example

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

AutoTopupTriggerType

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

Fields

NameDescription
autoTopupConfigId(ID!)

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

createdAt(DateTime!)

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

failureReason(SmartDeviceAutoTopupTriggerFailureReasons)

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

id(ID!)

source(SmartDeviceAutoTopupTriggerSources!)

Source of the auto top-up trigger event.

status(SmartDeviceAutoTopupTriggerStatus!)

Status of the auto top-up trigger event.

triggeredAt(DateTime!)

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

updatedAt(DateTime!)

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

Example

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

Fields

NameDescription
electricity(SupplyTypeSpecificSpinsType)

Spin information for an electricity agreement.

gas(SupplyTypeSpecificSpinsType)

Spin information for a gas agreement.


BackendScreenEvent

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

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

The possible errors that can be raised are:

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

Fields

NameDescription
action(ActionType)

An action to perform.

possibleErrors([PossibleErrorType])

Field with the possible errors of the query/mutation.

Example

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

BackendScreenEventActionType

An action which triggers some event in the Kraken backend.

Fields

NameDescription
eventId(String!)

The ID of the event to trigger.

id(ID)

Unique identifier of the object.

params([BackendScreenParam]!)

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

typeName(String)

The name of the action object's type.

typename(String)

The name of the object's type.

Example

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

BackendScreenParam

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

Fields

NameDescription
key(String!)

value(String!)

Example

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

Fields

NameDescription
isAvailable(Boolean)

Whether the balance forecast is available for the given account.

Example

{
  "isAvailable": true
}

Fields

NameDescription
maximumSocPercentage(Int)

The maximum state of charge (soc) %.

minimumSocPercentage(Int)

The minimum state of charge (soc) %.

Example

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

Fields

NameDescription
chargingPreferences(BatteryChargingPreferencesType)

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

deviceStatus(DeviceStatusType)

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

deviceType(KrakenFlexDeviceTypes)

Batteries.

krakenflexDeviceId(ID)

ID of the device in KrakenFlex.

params(BatteryParamsType)

Device specific parameters.

provider(ProviderChoices)

Battery integration provider (make).

Example

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

Fields

NameDescription
variantId(ID)

ID of the battery variant.

Example

{
  "variantId": "abc123"
}

Fields

NameDescription
connectionStatus(ConnectionStatus)

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

powerInKw(Decimal)

The current power of the battery in kW.

stateOfCharge(Decimal)

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

Example

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

Fields

NameDescription
batteryCapacityInKwh(Decimal)

Usable capacity in kWh.

couplingType(BatteryCouplingType)

Coupling type (AC/DC).

isDeprecated(Boolean)

Whether a variant is deprecated.

isIntegrationLive(Boolean)

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

maxPowerInKw(Decimal)

Max import/export power in kW.

model(String)

Model name of the battery.

variantId(ID)

ID of the battery variant.

Example

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

Fields

NameDescription
make(String)

Make of the home battery.

models([BatteryVariantModelsType])

List of home battery models per make.

Example

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

BillConnectionTypeConnection

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

Fields

NameDescription
edgeCount(Int!)

Number of nodes in the edge.

edges([BillConnectionTypeEdge]!)

Contains the nodes in this connection.

pageInfo(PageInfo!)

Pagination data for this connection.

totalCount(Int!)

Total number of nodes.

Example

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

BillConnectionTypeEdge

A Relay edge containing a BillConnectionType and its cursor.

Fields

NameDescription
cursor(String!)

A cursor for use in pagination

node(BillInterface)

The item at the end of the edge

Example

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

BillToLatestSmartMeterSnapshot

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

Fields

NameDescription
billedToDate(Date)

The date that has been billed up to.

currentBalance(Decimal)

The balance after attempting to bill.

Example

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

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

BillingOptionsType

Information about an account's billing schedule.

Fields

NameDescription
currentBillingPeriodEndDate(Date)

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

currentBillingPeriodStartDate(Date)

The date on which the current billing cycle started.

isFixed(Boolean!)

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

nextBillingDate(Date)

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

periodLength(AccountBillingOptionsPeriodLength)

periodLengthMultiplier(Int)

periodStartDay(Int)

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

Example

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

BulkUpdateSensorDisplayName

The possible errors that can be raised are:

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

Fields

NameDescription
possibleErrors([PossibleErrorType])

Field with the possible errors of the query/mutation.

transactionIds([SensorUpdateTransactionId])

A mapping of transaction ids for each sensor.

Example

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

Fields

NameDescription
businessType(BusinessTypeOptions)

The company type of a business account.

linkedAccountNumber(ID!)

Account number linked to this business.

name(String!)

The business' name

number(String!)

The business' number

Example

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

CallTagConnectionTypeEdge

A Relay edge containing a CallTagConnectionType and its cursor.

Fields

NameDescription
cursor(String!)

A cursor for use in pagination

node(CallTagType)

The item at the end of the edge

Example

{
  "cursor": "abc123"
}

Fields

NameDescription
expiryDate(Date)

name(String!)

slug(String!)

Example

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

CancelRepaymentRequest

Cancel a repayment or refund request.

The possible errors that can be raised are:

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

Fields

NameDescription
possibleErrors([PossibleErrorType])

Field with the possible errors of the query/mutation.

repaymentRequest(CancelRepaymentRequestOutputType)

The cancelled repayment/refund request.

Example

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

CancelRepaymentRequestOutputType

Output from cancelling a repayment or refund request.

Fields

NameDescription
requestId(String)

The ID of the cancelled request.

status(RepaymentRequestStatus)

The current status of the cancelled request.

Example

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

CancelSmartFlexOnboarding

Cancel onboarding of a device with SmartFlex.

The possible errors that can be raised are:

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

Fields

NameDescription
possibleErrors([PossibleErrorType])

Field with the possible errors of the query/mutation.

wizard(SmartFlexOnboardingWizard)

The wizard created for onboarding the device with SmartFlex.

Example

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

CardComponentType

A card containing a list of items

Fields

NameDescription
accessibilityHidden(Boolean)

Whether the element is hidden from view.

accessibilityLabel(String)

Accessible description of the element.

id(ID)

Unique identifier of the object.

items([CardItemType]!)

The list of components.

typename(String)

The name of the object's type.

Example

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

Fields

NameDescription
cards([CardComponentType]!)

The list of cards.

id(ID)

Unique identifier of the object.

typename(String)

The name of the object's type.

Example

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

Fields

NameDescription
description(String)

The description for each kind of Constantine.

displayName(String)

The name describing which kind of Constantine this Constantine is.

firstCaught(DateTime)

The first time this Constantine was caught.

prizeEntries(Int)

How many prize entries catching this Constantine is worth.

rarity(Rarity)

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

slug(String)

The slug for this kind of Constantine.

totalCaught(Int)

The amount of times this Constantine has been caught.

Example

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

Charge

A charge to the customer.

Fields

NameDescription
accountNumber(String)

Unique identifier of the account the transaction belongs to.

amount(Int)

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

Deprecated

The 'amount' field is deprecated.

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

- Marked as deprecated on 2023-12-06.
- Scheduled for removal on or after 2024-06-01.

amounts(TransactionAmountType)

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

balanceCarriedForward(Int)

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

billingDocumentIdentifier(ID)

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

consumption(Consumption)

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

createdAt(DateTime)

The date time when the transaction is created.

hasStatement(Boolean)

Returns True if the transaction is linked with a statement.

id(ID)

isAccountCharge(Boolean)

Deprecated.

Deprecated

The 'isAccountCharge' field is deprecated.

This information is provided by the __typename introspection query.

- Marked as deprecated on 2020-06-19.
- Scheduled for removal on or after 2022-11-15.

isAccountPayment(Boolean)

Deprecated.

Deprecated

The 'isAccountPayment' field is deprecated.

This information is provided by the __typename introspection query.

- Marked as deprecated on 2020-06-19.
- Scheduled for removal on or after 2022-11-15.

isCredit(Boolean)

Deprecated.

Deprecated

The 'isCredit' field is deprecated.

This information is provided by the __typename introspection query.

- Marked as deprecated on 2020-06-19.
- Scheduled for removal on or after 2022-11-15.

isExport(Boolean)

Whether the charge is for export electricity.

isHeld(Boolean)

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

isIssued(Boolean)

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

isReversed(Boolean!)

note(String)

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

postedDate(Date)

reasonCode(String)

Returns the reason.

statementId(ID)

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

Deprecated

The 'statementId' field is deprecated.

Use `billingDocumentIdentifier` instead.

- Marked as deprecated on 2023-11-30.
- Scheduled for removal on or after 2024-06-01.

title(String)

Example

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

Fields

NameDescription
make(String)

models([ChargePointModelsType])

Example

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

Fields

NameDescription
model(String)

powerInKw([String])

Example

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

Fields

NameDescription
amperage(Int)

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

integrationStatus(IntegrationStatus)

Shows the availability status of an integration.

isIntegrationLive(Boolean)

model(String)

powerInKw(Decimal)

</