Skip to main content

Input Objects

In this section

About Input Objects

Input objects can be described as "composable objects" because they include a set of input fields that define the object.

Input fields

NameDescription

accountNumber (ID)

The account number to filter for.

category (APIExceptionCategories)

The category to filter for.

channel (String)

The channel to filter for.

customerContact (String)

The customer contact to filter for.

externalIdentifier (String)

The external identifier to filter for.

priority (APIExceptionPriority)

The priority to filter for.

resolutionStatus (APIExceptionResolutionStatus)

The resolution status to filter for.

resolutionType (APIExceptionResolutionType)

The resolution type to filter for.

supplyPointIdentifier (ID)

The supply point identifier to filter for.

tags ([APIExceptionTags])

Tags to filter for.

userId (ID)

The user ID to filter for.

Example

{
  "externalIdentifier": "abc123",
  "resolutionStatus": "ASSIGNED",
  "resolutionType": "AUTOMATIC",
  "channel": "abc123",
  "priority": "LOW",
  "tags": "MOVE_IN",
  "category": "ACCOUNT",
  "accountNumber": "abc123",
  "userId": "abc123",
  "customerContact": "abc123",
  "supplyPointIdentifier": "abc123"
}

Input fields

NameDescription

accountNumber (String!)

The account number.

clientParams (JSONString)

A JSON object containing client parameters to store on the quote.

marketParams (JSONString)

A JSON object containing market parameters to store on the purchase.

quoteId (Int!)

ID of the accepted quote.

Example

{
  "accountNumber": "abc123",
  "quoteId": 1,
  "clientParams": {"key": "value"},
  "marketParams": {"key": "value"}
}

Input fields

NameDescription

accountNumber (String!)

The account number.

enrolmentId (ID!)

The ID of the Enrolment.

termsVersion (TermsVersionInput!)

The version of accepted terms and conditions.

Example

{
  "accountNumber": "abc123",
  "enrolmentId": "abc123",
  "termsVersion": TermsVersionInput
}

Input fields

NameDescription

accountNumber (String)

The account number of the account to update.

billingAddress (BillingAddressDetailsInput)

Billing address details.

Example

{
  "accountNumber": "abc123",
  "billingAddress": BillingAddressDetailsInput
}

Input fields

NameDescription

accountNumber (ID!)

The account number.

ledgerId (ID!)

The ledger id for the account.

Example

{
  "accountNumber": "abc123",
  "ledgerId": "abc123"
}

Input fields

NameDescription

accountNumber (String!)

Account number.

Example

{
  "accountNumber": "abc123"
}

AccountReferenceInput

The input type for the account reference.

Input fields

NameDescription

accountNumber (String!)

The account number.

namespace (String!)

The namespace for the reference.

value (String!)

The reference value.

Example

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

Input fields

NameDescription

account (String)

Internal account id (not account number).

accountNumber (String)

The account number eg. A-FF15AE70.

accountReferences (String)

Account Reference.

billingName (String)

Account or Billing name.

businessName (String)

Business name.

businessNumber (String)

Business identifier or number.

location (String)

Location (Supply or Billing, full or partial, address or post code).

meterSerialNumber (String)

Meter Serial Number.

mpan (String)

MPAN of property.

mprn (String)

MPRN of property.

portfolioNumber (String)

The portfolio number eg. P-A123B456.

statements (String)

Statements.

telephoneNumber (String)

Telephone.

urn (String)

URN Number.

user (String)

The Account User ID (not account number).

Example

{
  "accountNumber": "abc123",
  "portfolioNumber": "abc123",
  "urn": "abc123",
  "user": "abc123",
  "account": "abc123",
  "statements": "abc123",
  "meterSerialNumber": "abc123",
  "location": "abc123",
  "billingName": "abc123",
  "businessName": "abc123",
  "businessNumber": "abc123",
  "accountReferences": "abc123",
  "mpan": "abc123",
  "mprn": "abc123",
  "telephoneNumber": "abc123"
}

Input fields

NameDescription

creditScoreData (CreditScoreData)

creditScoreFetchedAt (DateTime)

dateOfBirth (Date)

email (String!)

familyName (String!)

givenName (String!)

mobile (String!)

optedInForMarketing (Boolean!)

psrData (UpdateSpecialCircumstancesInput)

roles ([String])

Role codes of the roles to be assigned to the user.

Example

{
  "givenName": "abc123",
  "familyName": "abc123",
  "email": "abc123",
  "mobile": "abc123",
  "optedInForMarketing": true,
  "creditScoreData": CreditScoreData,
  "creditScoreFetchedAt": "2020-01-01T00:00:00.000Z",
  "dateOfBirth": "2020-01-01",
  "psrData": UpdateSpecialCircumstancesInput,
  "roles": ["abc123"]
}

Input fields

NameDescription

accountNumber (String!)

The account number.

campaign (String!)

The slug of the campaign we want to assign.

Example

{
  "accountNumber": "abc123",
  "campaign": "abc123"
}

AddEvPublicChargingTokenInput

The input type for adding an EV Public Charging token.

Input fields

NameDescription

externalAccountId (String!)

Identifier of an account in the external system.

tokenValue (String!)

Token identifier.

validFrom (DateTime!)

The start time of token's validity.

Example

{
  "externalAccountId": "abc123",
  "tokenValue": "abc123",
  "validFrom": "2020-01-01T00:00:00.000Z"
}

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

Input fields

NameDescription

addressLine1 (String)

addressLine2 (String)

addressLine3 (String)

addressLine4 (String)

addressLine5 (String)

postcode (String!)

Postcode of the property where the appointment took place.

Example

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

Input fields

NameDescription

addressLine1 (String!)

addressLine2 (String!)

addressLine3 (String!)

county (String!)

postcode (String!)

town (String!)

Example

{
  "addressLine1": "abc123",
  "addressLine2": "abc123",
  "addressLine3": "abc123",
  "town": "abc123",
  "county": "abc123",
  "postcode": "abc123"
}

Input fields

NameDescription

agreementId (ID!)

The Kraken ID of the agreement to be renewed. The agreement must be currently active.

productCode (String!)

The code of the product the agreement will be renewed to.

Example

{
  "agreementId": "abc123",
  "productCode": "abc123"
}

Input fields

NameDescription

accountNumber (String!)

The account number.

amount (Int!)

The new amount for the amended payment.

paymentDate (Date!)

The new date to collect the payment.

paymentId (Int!)

The ID of the payment to amend.

reason (String)

Reason for amending the payment.

Example

{
  "accountNumber": "abc123",
  "paymentId": 1,
  "amount": 1,
  "paymentDate": "2020-01-01",
  "reason": "abc123"
}

Input fields

NameDescription

readingDatetime (DateTime!)

The new datetime of reading.

readingId (Int!)

The ID of the reading that will be amended.

readingValue (Int!)

The new value of reading.

Example

{
  "readingId": 1,
  "readingValue": 1,
  "readingDatetime": "2020-01-01T00:00:00.000Z"
}

Input fields

NameDescription

bucketName (String!)

The name of the bucket to assign the conversation to.

clientMutationId (String)

conversationRelayId (ID!)

The relay id of the conversation that will be assigned to the bucket.

Example

{
  "conversationRelayId": "abc123",
  "bucketName": "abc123",
  "clientMutationId": "abc123"
}

Input fields

NameDescription

accessToken (String)

SSO access token for the chosen provider authentication.

authorizationCode (String)

Provider code from user login used for SSO.

expiresIn (Int)

SSO token expiry for the provider's authentication (integer in seconds).

providerDeviceId (String)

ID of the device in the external provider system.

redirectUri (String)

Full redirect URI (including all query string parameters) from the result of an OAuth 2.0 flow.

refreshToken (String)

SSO refresh token for the chosen provider authentication.

state (String)

State from user login used for SSO.

Example

{
  "accessToken": "abc123",
  "authorizationCode": "abc123",
  "refreshToken": "abc123",
  "expiresIn": 1,
  "state": "abc123",
  "providerDeviceId": "abc123",
  "redirectUri": "abc123"
}

BackendScreenEventInput

Input for a backend action.

Input fields

NameDescription

eventId (ID!)

The ID of the action to perform.

params ([BackendScreenParamInputType])

List of key-value pairs (strings) to pass as parameters to the mutation.

Example

{
  "eventId": "abc123",
  "params": BackendScreenParamInputType
}

BackendScreenParamInputType

A key-value pair (both Strings) which is passed in parameters to a backend action.

Input fields

NameDescription

key (String!)

value (String!)

Example

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

Input fields

NameDescription

accountHolder (String)

accountNumber (String)

accountType (String)

bankCode (String)

branchCode (String)

iban (String)

Example

{
  "accountHolder": "abc123",
  "iban": "abc123",
  "accountNumber": "abc123",
  "bankCode": "abc123",
  "branchCode": "abc123",
  "accountType": "abc123"
}

Input fields

NameDescription

accountNumber (String!)

Account number.

minimumSocPercentage (Int!)

The minimum state of charge (soc) %.

Example

{
  "accountNumber": "abc123",
  "minimumSocPercentage": 1
}

Input fields

NameDescription

rateType (NonBespokeElectricityRateTypeChoices!)

Rate type associated with the given unit rate.

unitRate (Decimal!)

Electricity bespoke unit rate to override the unit rate associated with the tariff.

Example

{
  "unitRate": 1.0,
  "rateType": "STANDARD"
}

Input fields

NameDescription

paymentMethod (PaymentMethod!)

Payment method associated with the given unit rate.

standingCharge (Decimal)

Bespoke standing charge.

unitRate (Decimal)

Gas bespoke unit rate.

unitRates ([BespokeElectricityUnitRatesInput])

Electricity bespoke unit rates with their associated rate type.

Example

{
  "standingCharge": 1.0,
  "unitRate": 1.0,
  "unitRates": BespokeElectricityUnitRatesInput,
  "paymentMethod": "DIRECT_DEBIT"
}

Input fields

NameDescription

standingCharge (Decimal)

Bespoke standing charge.

unitRate (Decimal)

Gas bespoke unit rate.

unitRates ([BespokeElectricityUnitRatesInput])

Electricity bespoke unit rates with their associated rate type.

Example

{
  "standingCharge": 1.0,
  "unitRate": 1.0,
  "unitRates": BespokeElectricityUnitRatesInput
}

Input fields

NameDescription

accountNumber (String!)

The account number.

mpan (String!)

The mpan number.

Example

{
  "accountNumber": "abc123",
  "mpan": "abc123"
}

Input fields

NameDescription

administrativeArea (String)

Administrative area.

country (String)

Billing country.

deliveryPointIdentifier (String)

Billing delivery point identifier.

dependentLocality (String)

Billing dependent locality.

locality (String)

Billing locality.

postalCode (String)

Billing postal code.

sortingCode (String)

Billing sorting code.

streetAddress (String)

Billing street address.

structuredStreetAddress (GenericScalar)

Billing structured street address.

Example

{
  "streetAddress": "abc123",
  "structuredStreetAddress": "abc123" | 1 | 1.0 | true | ["abc123"] | AccountType,
  "dependentLocality": "abc123",
  "locality": "abc123",
  "postalCode": "abc123",
  "sortingCode": "abc123",
  "deliveryPointIdentifier": "abc123",
  "administrativeArea": "abc123",
  "country": "abc123"
}

Input fields

NameDescription

accountNumber (ID!)

The account number.

paymentId (ID!)

The ID of the payment to cancel.

reason (String)

Reason for cancelling the payment.

Example

{
  "accountNumber": "abc123",
  "paymentId": "abc123",
  "reason": "abc123"
}

Input fields

NameDescription

requestId (String!)

The id of the request to be cancelled.

Example

{
  "requestId": "abc123"
}

Input fields

NameDescription

number (String!)

The export certificate number.

type (CertificateType!)

The export certificate type.

Example

{
  "number": "abc123",
  "type": "MCS"
}

ChargeCarbonOffsetInput

The values used to create a carbon offset charge on the account.

Input fields

NameDescription

accountNumber (String!)

The account number.

expectedCost (Int!)

The amount the customer was quoted and is expecting to be charged in pence. Used to abort the charge if differs.

hoursToOffset (Int!)

The number of hours to offset.

transportModeCode (String!)

The transport mode for the journey offset calculation, e.g. CAR.

transportModeSubCode (String)

The transport sub code for the journey offset calculation e.g. PETROL. Only applies to some transport modes.

Example

{
  "expectedCost": 1,
  "transportModeCode": "abc123",
  "transportModeSubCode": "abc123",
  "hoursToOffset": 1,
  "accountNumber": "abc123"
}

Input fields

NameDescription

chargePointId (ID)

The unique charge point id.

make (String)

The charge point make.

model (String)

The charge point model.

power (Decimal)

The charge point power (kW).

Example

{
  "make": "abc123",
  "model": "abc123",
  "power": 1.0,
  "chargePointId": "abc123"
}

Input fields

NameDescription

accountNumber (String!)

Account number.

state (Boolean!)

The state that the climate control device should be set to. A value of true indicates that the device should be turned on, and a value of false indicates it should be switched off.

Example

{
  "accountNumber": "abc123",
  "state": true
}

Input fields

NameDescription

accountNumber (String!)

The account number.

amount (Int!)

The payment amount (in pence).

collectionMethod (PaymentType)

The type of the payment instruction.

description (String!)

The reason a payment is being collected, for internal audit purposes

idempotencyKey (String!)

ledgerId (ID!)

The ID of the ledger on which to collect the payment.

paymentDate (Date!)

The date to attempt to take the payment. Cannot be a date in the past. Payment will be collected on the requested date or as soon as possible after that date.

Example

{
  "accountNumber": "abc123",
  "amount": 1,
  "paymentDate": "2020-01-01",
  "description": "abc123",
  "idempotencyKey": "abc123",
  "collectionMethod": "BPAY",
  "ledgerId": "abc123"
}

Input fields

NameDescription

fixedTpiFee (Int)

The fixed comission fee, in pence, which is paid to the third-party intermediary.

organizationName (String!)

The third-party intermediary who sold this renewal to the customer.

unitRateUplift (Decimal!)

The amount to add to the unit rate when billing, in pence/kWh, which is paid to the third-party intermediary.

Example

{
  "organizationName": "abc123",
  "unitRateUplift": 1.0,
  "fixedTpiFee": 1
}

Input fields

NameDescription

chfDeviceId (String!)

Device ID of the CHF (Communications Hub Function).

installationCode (String!)

Code provided by manufacturer as part of ASN data, and included as part of device pre-notification, which is required to authorise device commissioning.

meterDeviceId (String!)

Device ID (ESME or GSME) of the device being commissioned.

meterType (MeterTypeChoices!)

Type of meter being commissioned

mpxn (String)

serialNumber (String)

Serial number for ESME or GSME devices.

Example

{
  "mpxn": "abc123",
  "chfDeviceId": "abc123",
  "meterDeviceId": "abc123",
  "installationCode": "abc123",
  "meterType": "ELECTRICITY_METER",
  "serialNumber": "abc123"
}

Input fields

NameDescription

accountNumber (String!)

Account number that the device is registered to.

externalDeviceIdentifier (String!)

External reference in the third-party system to identify the device.

postalCode (String!)

Postcode of the property (linked to the account) that the device is registered to.

Example

{
  "accountNumber": "abc123",
  "postalCode": "abc123",
  "externalDeviceIdentifier": "abc123"
}

Input fields

NameDescription

consentToMbna (Boolean)

Consent to MBNA.

email (String!)

Email.

firstName (String!)

First name.

lastName (String!)

Last name.

phone (String!)

Phone.

Example

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

Input fields

NameDescription

apiExceptionId (Int)

The ID of the associated API exception, if any.

context (JSONString)

Any optional useful context involved in the API call.

correlationId (String!)

The correlation id header from the HTTP request.

inputData (JSONString)

The input data provided to the API, if any.

operationName (String!)

The name of the operation associated with this call.

response (JSONString!)

The response returned by the API.

Example

{
  "correlationId": "abc123",
  "operationName": "abc123",
  "inputData": {"key": "value"},
  "response": {"key": "value"},
  "context": {"key": "value"},
  "apiExceptionId": 1
}

Input fields

NameDescription

apiExceptionId (Int)

The ID of the associated API exception, if any.

category (String!)

The event category.

context (JSONString)

Any optional useful context involved in the event.

description (String!)

Any useful event description.

eventType (String!)

The event type.

Example

{
  "eventType": "abc123",
  "category": "abc123",
  "description": "abc123",
  "context": {"key": "value"},
  "apiExceptionId": 1
}

Input fields

NameDescription

accountNumber (ID)

The account number associated with the exception, if available.

assignedUserId (Int)

The ID of the user assigned to handle this exception.If no user is provided, no user will be assigned to the exception.

category (APIExceptionCategories)

Category associated with this exception. Uses the default category if not provided.

channel (String!)

The API client channel where the exception was triggered from.

context (JSONString)

Contextual information about the exception, if any.

customerContact (String)

The customer contact associated with the exception, if available.

externalIdentifier (String!)

External identifier mapping an entity on the client's database.

keyDate (Date)

The key date associated with the exception, if available.

operationsTeamId (Int)

The ID of an operations team to handle this exception. If no team is provided, no team will be assigned to the exception.

priority (APIExceptionPriority)

The priority. Defaults to LOW if not provided.

resolutionStatus (APIExceptionResolutionStatus)

The resolution status. Defaults to UNASSIGNED if not provided.

resolutionType (APIExceptionResolutionType)

The resolution type. Defaults to UNASSIGNED if not provided.

supplyPointIdentifier (String)

The supply point identifier associated with the exception, if available.

tags ([APIExceptionTags])

Tags associated with this exception if any.

userId (Int)

The user ID associated with the exception, if available.

Example

{
  "externalIdentifier": "abc123",
  "resolutionStatus": "ASSIGNED",
  "resolutionType": "AUTOMATIC",
  "priority": "LOW",
  "context": {"key": "value"},
  "channel": "abc123",
  "assignedUserId": 1,
  "operationsTeamId": 1,
  "tags": "MOVE_IN",
  "category": "ACCOUNT",
  "accountNumber": "abc123",
  "userId": 1,
  "customerContact": "abc123",
  "supplyPointIdentifier": "abc123",
  "keyDate": "2020-01-01"
}

Input fields

NameDescription

apiExceptionId (ID!)

The ID of the associated API exception.

body (String!)

The body of the note.

Example

{
  "body": "abc123",
  "apiExceptionId": "abc123"
}

CreateAccountChargeInput

The input type for the account charge.

Input fields

NameDescription

accountNumber (String!)

The account number.

cclAmount (Int)

The climate change levy amount of the charge to be added.

displayNote (String)

Optional short note about account charge for customer display.

grossAmount (Int!)

The gross amount of the charge to be added.

metadata (JSONString)

Any extra data that will be associated with account charge.

netAmount (Int)

The net amount of the charge to be added.

note (String)

Optional short note about account charge for internal use.

reason (String!)

The reason why the charge is added to the account. This should be a valid charge reason code.

salesTaxAmount (Int)

The sales tax amount of the charge to be added.

Example

{
  "accountNumber": "abc123",
  "netAmount": 1,
  "grossAmount": 1,
  "salesTaxAmount": 1,
  "cclAmount": 1,
  "metadata": {"key": "value"},
  "note": "abc123",
  "displayNote": "abc123",
  "reason": "abc123"
}

CreateAccountCreditInput

The input type for the account credit.

Input fields

NameDescription

accountNumber (String!)

The account number.

grossAmount (Int!)

The gross amount of the credit to be created.

metadata (JSONString)

Any extra data that will be associated with account credit.

netAmount (Int!)

The net amount of the credit to be created.

note (String)

Optional short note about account credit.

reason (AccountCreditReasonType!)

The reason why the credit is added to the account.

salesTaxAmount (Int!)

The sales tax amount of the credit to be created.

Example

{
  "accountNumber": "abc123",
  "netAmount": 1,
  "grossAmount": 1,
  "salesTaxAmount": 1,
  "metadata": {"key": "value"},
  "note": "abc123",
  "reason": "EXTERNAL_REFERRAL_CREDIT"
}

Input fields

NameDescription

accountNumber (String!)

category (Category!)

clientMutationId (String)

filename (String!)

Example

{
  "filename": "abc123",
  "accountNumber": "abc123",
  "category": "FILE_ATTACHMENT_MCS_CERT",
  "clientMutationId": "abc123"
}

Input fields

NameDescription

accountNumber (String!)

The account number.

isPinned (Boolean!)

Pin the note to account.

note (String!)

The note to add.

Example

{
  "accountNumber": "abc123",
  "note": "abc123",
  "isPinned": true
}

Input fields

NameDescription

accountNumber (String!)

The account number.

content (String!)

Reminder content.

dueAt (DateTime)

When the reminder is due.

reminderType (AccountReminderTypes!)

The reminder type.

Example

{
  "accountNumber": "abc123",
  "reminderType": "AD_HOC",
  "content": "abc123",
  "dueAt": "2020-01-01T00:00:00.000Z"
}

Input fields

NameDescription

electricityMeterPoints ([ElectricityMeterPointConsumptionInput])

The electricity meter points to create a quote request for.

gasMeterPoints ([GasMeterPointConsumptionInput])

The gas meter points to create a quote request for.

paymentMethod (PaymentMethodChoices)

Optional parameter for the payment method to quote for. Defaults to Direct Debit.

postcode (String!)

The postcode of the meter points being quoted.

productCodes ([String]!)

The product codes of products to quote for.

Example

{
  "electricityMeterPoints": ElectricityMeterPointConsumptionInput,
  "gasMeterPoints": GasMeterPointConsumptionInput,
  "postcode": "abc123",
  "productCodes": "abc123",
  "paymentMethod": "DIRECT_DEBIT"
}

Input fields

NameDescription

contactEmail (String!)

contactName (String!)

organisationId (ID!)

The organisation for whom to create the affiliate link for.

subdomain (String!)

Will be validated as follows:

  • should be at least two characters
  • should only contain (letters, numbers, and Hyphen)
  • should not contain bad words
  • should not contain any of the reserved words including: affiliates, api, business, click, consul, developer, friends, kraken, mail, sendgrid, tech, webhooks, www, www2

Example

{
  "organisationId": "abc123",
  "subdomain": "abc123",
  "contactName": "abc123",
  "contactEmail": "abc123"
}

Input fields

NameDescription

allowAlternativePaymentMethods (Boolean)

Is this partner allowed to specify payment methods other than Direct Debit in the import csv or API

canRegisterBusinessMeterPoints (Boolean)

Are meter point registrations limited for profile classes 1 and 2 for registrations from csv or API

canRegisterCustomersWithoutEmailAddress (Boolean)

Allow registration requests with customers without an email address.

canRegisterPortfolioAccounts (Boolean)

Allow registration requests with exiting account user emails to add to the portfolio belonging to the account user.

canRenewTariffs (Boolean)

Allow performing tariff renewals via API.

canUseIvrSupportApi (Boolean)

Allow this partner access to the IVR support API (modify their own IVR handling through third party 'IVR Flow Editor')

defaultAccountType (AccountTypeChoices!)

Default Account Type

isFieldSalesOnlyProduct (Boolean)

Restrict to field-sales-only products? This is only allowed for the 'field-sales' and 'events' sales channels

name (String!)

salesChannel (SalesChannelChoices!)

Sales Channel

skipMeterPointAddressValidation (Boolean)

Allow this partner to skip validation that ensures all meter points belong to the same address

Example

{
  "name": "abc123",
  "salesChannel": "DIRECT",
  "defaultAccountType": "BUSINESS",
  "canRegisterBusinessMeterPoints": true,
  "canRegisterPortfolioAccounts": true,
  "canRegisterCustomersWithoutEmailAddress": true,
  "skipMeterPointAddressValidation": true,
  "allowAlternativePaymentMethods": true,
  "canRenewTariffs": true,
  "canUseIvrSupportApi": true,
  "isFieldSalesOnlyProduct": true
}

Input fields

NameDescription

ipAddress (String)

The IP Address of the user.

linkId (ID!)

The affiliate link for whom to create the session for.

queryParams (JSONString)

Additional query parameters to attach to this session.

quoteShareId (ID)

The quote share that led to this session.

userAgent (String)

The HTTP user agent.

Example

{
  "linkId": "abc123",
  "ipAddress": "abc123",
  "userAgent": "abc123",
  "queryParams": {"key": "value"},
  "quoteShareId": "abc123"
}

CreateAutoTopupConfigInput

The input type for creating an auto top-up config.

Input 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'.

topupAmount (Int!)

The amount to top-up. The amount should always be provided in the minor unit of currency, i.e. USA cents / GBP pence / etc. Minimum allowed amount is 1.

Example

{
  "accountNumber": "abc123",
  "deviceId": "abc123",
  "topupAmount": 1
}

Input fields

NameDescription

accountNumber (String!)

The account number.

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 currency supports. e.g. Pence, Cents, Yen, etc.

interval (Interval!)

The frequency of contributions.

schemeCode (String!)

The code of the scheme to contribute to.

Example

{
  "accountNumber": "abc123",
  "schemeCode": "abc123",
  "interval": "MONTHLY",
  "amount": 1,
  "activeFrom": "2020-01-01T00:00:00.000Z",
  "activeTo": "2020-01-01T00:00:00.000Z"
}

Input fields

NameDescription

accountNumber (String!)

directDebitInstruction (DirectDebitInstructionLocalBankDetailsInput!)

Example

{
  "accountNumber": "abc123",
  "directDebitInstruction": DirectDebitInstructionLocalBankDetailsInput
}

CreateElectricJuiceAgreementInput

The input type for creating an Electric Juice agreement.

Input fields

NameDescription

accountNumber (String!)

The account number.

validFrom (DateTime)

The time from which the new agreement is valid (default: now).

Example

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

CreateElectricJuiceChargeCardInput

The input type for creating a new Electric Juice charge card.

Input fields

NameDescription

accountNumber (String!)

The account number of the account this charge card should be associated with.

chargeCardUid (String!)

The UID on the charge card.

nameOnCard (String!)

The name printed on the charge card.

Example

{
  "chargeCardUid": "abc123",
  "nameOnCard": "abc123",
  "accountNumber": "abc123"
}

CreateElectricJuiceChargeInput

The input type for adding a charge for Electric Juice.

Input fields

NameDescription

accountNumber (String!)

The account number.

additionalFees (Int!)

The price of additional (non-consumption) fees on this charge.

chargeCardUid (String)

The UID of the Electric Juice charge card to associate with this charge.

chargeProvider (String!)

The provider that originated this charge.

currency (CurrencyOptions)

The currency of the charge.

kwhUsed (Decimal!)

The amount of energy consumed in kWh.

netAmount (Int!)

The amount to be charged (excl. tax).

periodEndAt (DateTime!)

The end time of the charge period.

periodStartAt (DateTime!)

The start time of the charge period.

postcode (String!)

The location of the charging point this charge is associated with.

pricePerKwh (Decimal!)

The price per kWh.

Example

{
  "accountNumber": "abc123",
  "chargeCardUid": "abc123",
  "periodStartAt": "2020-01-01T00:00:00.000Z",
  "periodEndAt": "2020-01-01T00:00:00.000Z",
  "netAmount": 1,
  "currency": "UK_PENCE",
  "chargeProvider": "abc123",
  "postcode": "abc123",
  "kwhUsed": 1.0,
  "pricePerKwh": 1.0,
  "additionalFees": 1
}

CreateElectricJuiceCreditInput

The input type for an Electric Juice ledger credit.

Input fields

NameDescription

accountNumber (String!)

The account number.

grossAmount (Int!)

The gross amount of the credit to be created.

netAmount (Int!)

The net amount of the credit to be created.

note (String)

Optional short note about account credit.

reason (AccountCreditReasonType!)

The reason why the credit is added to the account.

taxAmount (Int!)

The tax amount of the credit to be created.

Example

{
  "accountNumber": "abc123",
  "netAmount": 1,
  "grossAmount": 1,
  "taxAmount": 1,
  "note": "abc123",
  "reason": "EXTERNAL_REFERRAL_CREDIT"
}

CreateEvPublicChargingAgreementInput

The input type for creating an EV Public Charging agreement.

Input fields

NameDescription

accountNumber (String!)

The account number.

externalAccountId (String!)

Identifier of an account in the external system.

validFrom (DateTime!)

The start time of the agreement.

Example

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

Input fields

NameDescription

accountNumber (String!)

The number of the account that the event should be created for.

category (ExternalAccountEventCategory!)

The category of the event.

content ([ExternalAccountEventContent]!)

An array of content data associated with the event.

description (String)

A human-readable description of the event.

subcategory (ExternalAccountEventSubCategory)

The subcategory of the event.

Example

{
  "accountNumber": "abc123",
  "category": "COMMUNICATIONS",
  "subcategory": "TELEPHONE",
  "description": "abc123",
  "content": ExternalAccountEventContent
}

Input fields

NameDescription

accountNumber (String!)

The account number.

clientParams (GenericScalar)

A JSON object containing client parameters to store on the quote.

productsToQuote ([ProductToQuoteInput]!)

Products to get a quote for.

Example

{
  "accountNumber": "abc123",
  "productsToQuote": ProductToQuoteInput,
  "clientParams": "abc123" | 1 | 1.0 | true | ["abc123"] | AccountType
}

Input fields

NameDescription

clientParams (GenericScalar)

A JSON object containing client parameters to store on the quote.

customerProfile (CustomerProfileInput!)

Customer profile.

productsToQuote ([ProductToQuoteInput]!)

Products to get a quote for.

Example

{
  "customerProfile": CustomerProfileInput,
  "productsToQuote": ProductToQuoteInput,
  "clientParams": "abc123" | 1 | 1.0 | true | ["abc123"] | AccountType
}

Input fields

NameDescription

accountNumber (String)

Account to associate quote to.

addressDetails (AddressDetailsInput!)

Details of the address.

contactDetails (ContactDetailsInput!)

Details to pass to hubspot.

productId (Int!)

ID of the product to quote.

propertyDetails (PropertyDetailsInput!)

Details of the property, used for eligiblity checks.

Example

{
  "accountNumber": "abc123",
  "productId": 1,
  "addressDetails": AddressDetailsInput,
  "contactDetails": ContactDetailsInput,
  "propertyDetails": PropertyDetailsInput
}

Input fields

NameDescription

channel (InkCommunicationChannel!)

clientMutationId (String)

messageHeaders (JSONString)

An optional parameter where we can pass the generic message headers if it has one

Email channel tries to get the value conversation-relay-id from this parameter

messageId (String!)

An arbitrary, unique ID for this message.

This must be unique for each message that is supplied using the same organisation; collisions between messages provided by different organisations are tolerated.

Stored as vendor_id.

newMessage (InkMessageInput!)

vendor (String)

An optional vendor value to denote which system it originated from.

If no vendor is passed, we will get the default generic vendor from the setting called INKDEFAULTGENERICMESSAGEAPI_VENDOR.

Example

{
  "channel": "EMAIL",
  "messageId": "abc123",
  "newMessage": InkMessageInput,
  "vendor": "abc123",
  "messageHeaders": {"key": "value"},
  "clientMutationId": "abc123"
}

Input fields

NameDescription

accountUserId (String)

The id of the account user.

number (String)

The number of the loyalty card.

scheme (String)

The scheme of the loyalty card.

Example

{
  "accountUserId": "abc123",
  "scheme": "abc123",
  "number": "abc123"
}

Input fields

NameDescription

brandCode (String)

The brand to associate with this portfolio, if not provided the default brand will be used.

collectiveBilling (Boolean)

Whether collective bills should be issued for the portfolio's accounts. The default value is False.

operationsTeamId (ID)

The ID of the operations team to associate with this portfolio.If no team is provided, no team will be assigned to the portfolio.

Example

{
  "brandCode": "abc123",
  "operationsTeamId": "abc123",
  "collectiveBilling": true
}

Input fields

NameDescription

accountUserId (ID!)

The user to associate with the portfolio.

portfolioId (ID!)

The portfolio to associate the user with.

role (PortfolioUserRoleEnum)

The role to assign to the user. If not provided the default role will be used.

Example

{
  "portfolioId": "abc123",
  "accountUserId": "abc123",
  "role": "TRACED"
}

Input fields

NameDescription

accountNumber (String!)

The account number.

clientParams (JSONString)

A JSON object containing client parameters to store on the quote.

marketParams (JSONString)

A JSON object containing client parameters to store on the purchase.

saleItems ([ProductToPurchaseInput]!)

Products being purchased.

Example

{
  "accountNumber": "abc123",
  "saleItems": ProductToPurchaseInput,
  "clientParams": {"key": "value"},
  "marketParams": {"key": "value"}
}

Input fields

NameDescription

address (QuoteAddressInput)

Optional address information about the customer

affiliateSessionId (String)

brandCode (String!)

electricityMeterPoints ([ElectricityMeterPointConsumptionInput])

gasMeterPoints ([GasMeterPointConsumptionInput])

gspGroupId (String)

hasConsentedToIndustryDataSearch (Boolean)

Whether the user has consented to their energy consumption estimates being retrieved from the industry vendors. This currently applies to business accounts only.

isBusiness (Boolean)

paymentMethod (QuotePaymentMethodChoices)

Optional parameter to select the payment method for the quote, default is direct debit.

position (PositionInput)

Used to verify the position that field sales agents generate quotes from

postcode (String!)

Example

{
  "postcode": "abc123",
  "electricityMeterPoints": ElectricityMeterPointConsumptionInput,
  "gasMeterPoints": GasMeterPointConsumptionInput,
  "position": PositionInput,
  "gspGroupId": "abc123",
  "affiliateSessionId": "abc123",
  "brandCode": "abc123",
  "address": QuoteAddressInput,
  "isBusiness": true,
  "hasConsentedToIndustryDataSearch": true,
  "paymentMethod": "DIRECTDEBIT"
}

Input fields

NameDescription

accountNumber (String!)

The account number.

paymentMethod (PaymentMethodChoices)

Optional parameter to override the payment method on the current agreement.

persistFlatRate (Boolean)

If the customer is currently on a flat rate tariff, create a flat rate quote.

productCodes ([String]!)

The product codes of products to quote for.

propertyId (Int!)

The property id to create a quote request for.

renewalAt (DateTime!)

The date at which the agreements would be renewed.

Example

{
  "accountNumber": "abc123",
  "propertyId": 1,
  "productCodes": "abc123",
  "renewalAt": "2020-01-01T00:00:00.000Z",
  "persistFlatRate": true,
  "paymentMethod": "DIRECT_DEBIT"
}

CreateReferralInput

Required information for creating a referral

Input fields

NameDescription

accountNumber (String!)

The account number for the referred account.

reference (String!)

An email address, link or code, referencing the referring account.

Example

{
  "accountNumber": "abc123",
  "reference": "abc123"
}

Input fields

NameDescription

accountNumber (String!)

The account number.

propertyId (Int!)

The property id to create a quote request for.

renewalAt (DateTime!)

The date at which the agreements would be renewed.

Example

{
  "accountNumber": "abc123",
  "propertyId": 1,
  "renewalAt": "2020-01-01T00:00:00.000Z"
}

Input fields

NameDescription

billingAddressLine1 (String)

billingAddressLine2 (String)

billingAddressLine3 (String)

billingAddressLine4 (String)

billingAddressLine5 (String)

billingName (String)

billingPeriodDay (Int)

Day to fixed bill on if billingperiodlength set.

billingPeriodLength (String)

For fixed billing accounts only, the length of their billing period. Can be MONTHLY or QUARTERLY.

billingPeriodMonth (Int)

Month to start billing from if billingperiodlength set to QUARTERLY or the multiplier is > 1.

billingPeriodMultiplier (Int)

For fixed billing accounts only, the number the period length is to be multiplied by to get the total period length, i.e. for billing every second month, select 2 combined with a billing period length MONTHLY. Can't be > 1 for quarterly billing.

billingPostcode (String)

billingRichAddress (String)

brand (String)

businessType (String)

clientMutationId (String)

companyName (String)

companyNumber (String)

dateOfBirth (Date)

email (String!)

familyName (String!)

givenName (String!)

isBusinessAccount (Boolean)

landline (String)

mobile (String)

password (String)

passwordUpdateToken (String)

portfolioNumber (String)

urn (String)

Example

{
  "portfolioNumber": "abc123",
  "givenName": "abc123",
  "familyName": "abc123",
  "billingName": "abc123",
  "email": "abc123",
  "mobile": "abc123",
  "landline": "abc123",
  "brand": "abc123",
  "dateOfBirth": "2020-01-01",
  "billingAddressLine1": "abc123",
  "billingAddressLine2": "abc123",
  "billingAddressLine3": "abc123",
  "billingAddressLine4": "abc123",
  "billingAddressLine5": "abc123",
  "billingPostcode": "abc123",
  "billingRichAddress": "abc123",
  "billingPeriodLength": "abc123",
  "billingPeriodMultiplier": 1,
  "billingPeriodDay": 1,
  "billingPeriodMonth": 1,
  "isBusinessAccount": true,
  "companyName": "abc123",
  "companyNumber": "abc123",
  "businessType": "abc123",
  "password": "abc123",
  "passwordUpdateToken": "abc123",
  "urn": "abc123",
  "clientMutationId": "abc123"
}

Input fields

NameDescription

riskBracket (String!)

score (Int!)

Example

{
  "riskBracket": "abc123",
  "score": 1
}

CustomerDetailsInput

Details about the customer.

Input fields

NameDescription

dateOfBirth (Date)

The customer's date of birth.

email (String)

Account email.

familyName (String!)

Family name.

givenName (String!)

Given name.

landline (String)

Account landline number.

mobile (String)

Account mobile phone number.

preferences (UpdateAccountUserCommsPreferencesInput)

The customer's communication preferences.

pronouns (String)

The customer's pronouns.

title (String)

The customer's title.

Example

{
  "givenName": "abc123",
  "familyName": "abc123",
  "title": "abc123",
  "pronouns": "abc123",
  "email": "abc123",
  "mobile": "abc123",
  "landline": "abc123",
  "dateOfBirth": "2020-01-01",
  "preferences": UpdateAccountUserCommsPreferencesInput
}

Input fields

NameDescription

accountNumber (String!)

answer (String)

feedbackId (Int!)

formId (Int!)

issueResolved (Boolean!)

Example

{
  "answer": "abc123",
  "issueResolved": true,
  "formId": 1,
  "feedbackId": 1,
  "accountNumber": "abc123"
}

Input fields

NameDescription

addressLine1 (String!)

Line 1 of customer's address.

addressLine2 (String)

Line 2 of customer's address.

addressLine3 (String)

Line 3 of customer's address.

addressLine4 (String)

Line 4 of customer's address.

addressLine5 (String)

Line 5 of customer's address.

email (String!)

Customer's email.

familyName (String!)

Customer's family name.

givenName (String!)

Customer's given name.

phoneNumber (String!)

Customer's phone number.

postcode (String!)

Customer's postcode.

Example

{
  "givenName": "abc123",
  "familyName": "abc123",
  "email": "abc123",
  "phoneNumber": "abc123",
  "postcode": "abc123",
  "addressLine1": "abc123",
  "addressLine2": "abc123",
  "addressLine3": "abc123",
  "addressLine4": "abc123",
  "addressLine5": "abc123"
}

Input fields

NameDescription

accountNumber (String!)

Account number.

deviceType (KrakenFlexDeviceTypes)

The most recently registered device of this type will be de-authenticated.

Example

{
  "accountNumber": "abc123",
  "deviceType": "BATTERIES"
}

Input fields

NameDescription

deviceId (String!)

Device ID for the device being decommissioned.

Example

{
  "deviceId": "abc123"
}

Input fields

NameDescription

accountNumber (String!)

The account number associated with the removed AccountReference.

namespace (String!)

The namespace associated with the removed AccountReference

Example

{
  "accountNumber": "abc123",
  "namespace": "abc123"
}

Input fields

NameDescription

accountNumber (String!)

Account number.

Example

{
  "accountNumber": "abc123"
}

Input fields

NameDescription

token (String!)

Device push notification token.

Example

{
  "token": "abc123"
}

Input fields

NameDescription

auxDeviceVariantId (ID)

Auxiliary device variant id.

deviceVariantId (ID)

Unique device variant id.

Example

{
  "deviceVariantId": "abc123",
  "auxDeviceVariantId": "abc123"
}

Input fields

NameDescription

accountNumber (String!)

Account number.

authentication (AuthenticationInput)

The authentication details required given the chosen provider.

deviceDetails (DeviceDetailsInput)

The device type specific details required for registering a device.

deviceType (KrakenFlexDeviceTypes!)

The device type to be registered - batteries, electric vehicles, heat pumps or thermostats.

propertyId (Int!)

The ID of the property the device belongs to.

provider (ProviderChoices!)

The provider used to authenticate the device.

Example

{
  "accountNumber": "abc123",
  "propertyId": 1,
  "deviceType": "BATTERIES",
  "provider": "DAIKIN",
  "deviceDetails": DeviceDetailsInput,
  "authentication": AuthenticationInput
}

Input fields

NameDescription

accountHolder (String!)

accountNumber (String!)

sortCode (String!)

Example

{
  "accountNumber": "abc123",
  "accountHolder": "abc123",
  "sortCode": "abc123"
}

Input fields

NameDescription

accountNumber (String!)

paymentDay (Int!)

Example

{
  "accountNumber": "abc123",
  "paymentDay": 1
}

DisableAutoTopupInput

The input type for disabling auto top-up.

Input 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'.

Example

{
  "accountNumber": "abc123",
  "deviceId": "abc123"
}

Input fields

NameDescription

amount (Int!)

The amount (excl. tax) in smallest units of currency.

band (ProductRateBands!)

The rate band of this line item.

metadata (JSONString)

JSON containing any additional metadata.

periodEndAt (DateTime!)

The end of the public charging session.

periodStartAt (DateTime!)

The start of the public charging session.

Example

{
  "amount": 1,
  "periodStartAt": "2020-01-01T00:00:00.000Z",
  "periodEndAt": "2020-01-01T00:00:00.000Z",
  "band": "CONSUMPTION",
  "metadata": {"key": "value"}
}

Input fields

NameDescription

amount (Int!)

The amount in smallest units of currency.

amountTaxed (Int!)

The amount (excl. tax) that this tax was calculated from, in smallest units of currency.

metadata (JSONString)

JSON containing any additional metadata.

rate (Decimal!)

The rate at which tax was applied.

taxType (String!)

The type of tax (e.g. 'VAT').

unitType (TaxUnitType!)

The unit of the tax rate.

Example

{
  "amount": 1,
  "amountTaxed": 1,
  "rate": 1.0,
  "unitType": "PROPORTION",
  "taxType": "abc123",
  "metadata": {"key": "value"}
}

Input fields

NameDescription

day (Decimal)

Daily bespoke rate for electricity.

night (Decimal)

Nightly bespoke rate for electricity.

offPeak (Decimal)

Off peak rate for electricity.

standard (Decimal)

Standard bespoke rate for electricity.

standingCharge (Decimal!)

Standing charge for electricity.

Example

{
  "standard": 1.0,
  "day": 1.0,
  "night": 1.0,
  "offPeak": 1.0,
  "standingCharge": 1.0
}

Input fields

NameDescription

day (Int)

Daily electricity consumption.

isEstimate (Boolean)

If the consumption values are estimated, set this to 'True'.

night (Int)

Nightly electricity consumption.

offPeak (Int)

Off peak hours electricity consumption.

standard (Int)

Amount of electricity consumed.

Example

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

ElectricityFiltersInput

Filter measurements by electricity parameters.

Input fields

NameDescription

deviceId (String)

marketSupplyPointId (String)

readingDirection (ReadingDirectionType)

readingFrequencyType (ReadingFrequencyType)

readingQuality (ReadingQualityType)

registerId (String)

Example

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

Input fields

NameDescription

annualConsumptionDay (Int)

annualConsumptionNight (Int)

annualConsumptionStandard (Int)

isEstimate (Boolean!)

mpan (String)

profileClass (Int)

Example

{
  "profileClass": 1,
  "mpan": "abc123",
  "isEstimate": true,
  "annualConsumptionStandard": 1,
  "annualConsumptionDay": 1,
  "annualConsumptionNight": 1
}

Input fields

NameDescription

consumption (ElectricityConsumptionInput)

Annual consumption values for this meter point. Must be provided if no MPAN is provided.

flatRate (Boolean)

Should the meter point be quoted on a flat rate.

gspId (String)

The grid supply point ID of this meter point.

meterType (MeterType)

The meter type on this meter point. Must be provided if no MPAN is provided.

mpan (String)

Must be provided if no custom consumption input is provided.

Example

{
  "mpan": "abc123",
  "consumption": ElectricityConsumptionInput,
  "meterType": "STANDARD",
  "gspId": "abc123",
  "flatRate": true
}

Input fields

NameDescription

consumption (ElectricityConsumptionInput)

Annual consumption values for this meter point. Must be provided if no MPAN is provided.

flatRate (Boolean)

Should the meter point be quoted on a flat rate.

gspId (String)

The grid supply point ID of this meter point.

meterType (MeterType)

The meter type on this meter point. Must be provided if no MPAN is provided.

mpan (String)

Must be provided if no custom consumption input is provided.

productsInput ([ElectricityProductInput!]!)

A list of products and optional product parameters to quote for.

Example

{
  "mpan": "abc123",
  "consumption": ElectricityConsumptionInput,
  "meterType": "STANDARD",
  "gspId": "abc123",
  "flatRate": true,
  "productsInput": ElectricityProductInput
}

Input fields

NameDescription

bespokeRates (ElectricityBespokeRates)

Bespoke rates to override default electricity unit rates.

code (String)

Code specifying the product to quote for.

paymentMethod (PaymentMethodChoices)

Optional payment method to quote for.

Example

{
  "code": "abc123",
  "paymentMethod": "DIRECT_DEBIT",
  "bespokeRates": ElectricityBespokeRates
}

Input fields

NameDescription

contributionAgreementId (ID!)

The ID of the Contribution Agreement to end.

endAt (DateTime)

The future end datetime of the agreement. If not given, terminate now.

Example

{
  "contributionAgreementId": "abc123",
  "endAt": "2020-01-01T00:00:00.000Z"
}

ExpireEvPublicChargingTokenInput

The input type for expiring an EV Public Charging token.

Input fields

NameDescription

externalAccountId (String!)

Identifier of an account in the external system.

tokenValue (String!)

Token identifier.

validTo (DateTime!)

The end time of token's validity.

Example

{
  "externalAccountId": "abc123",
  "tokenValue": "abc123",
  "validTo": "2020-01-01T00:00:00.000Z"
}

ExternalAccountEventContent

A piece of content associated with an external account event.

Input fields

NameDescription

contentType (ExternalAccountEventContentType!)

The content type of the content.

description (String!)

A human-readable description of the content.

value (String!)

The value of the content.

Example

{
  "description": "abc123",
  "contentType": "PLAINTEXT",
  "value": "abc123"
}

FanClubDiscountNotificationInput

The input type for sending Fan Club push notifications for discounts.

Input fields

NameDescription

catchments ([String]!)

The list of valid catchment areas.

endAt (DateTime!)

The end time of the likely Fan Club discount.

startAt (DateTime!)

The start time of the likely Fan Club discount.

Example

{
  "catchments": "abc123",
  "startAt": "2020-01-01T00:00:00.000Z",
  "endAt": "2020-01-01T00:00:00.000Z"
}

Input fields

NameDescription

accountNumber (String!)

The account number associated with this schedule.

scheduleId (ID!)

The ID of the schedule to accept.

Example

{
  "scheduleId": "abc123",
  "accountNumber": "abc123"
}

Input fields

NameDescription

fitId (String!)

meters ([FitMeterInput]!)

Example

{
  "fitId": "abc123",
  "meters": FitMeterInput
}

Input fields

NameDescription

id (Int!)

reading (FitReadingInput!)

Example

{
  "id": 1,
  "reading": FitReadingInput
}

Input fields

NameDescription

installations ([FitInstallationInput]!)

Example

{
  "installations": FitInstallationInput
}

Input fields

NameDescription

isBiennial (Boolean)

readAt (DateTime!)

value (Decimal!)

Example

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

Input fields

NameDescription

flowTemperature (TemperatureInput)

Flow temperature if weather compensation is off.

useWeatherCompensation (Boolean!)

Whether weather compensation should be enabled or not.

weatherCompensationValues (TemperatureRangeInput)

The min and max temperatures for when weather compensation is enabled.

Example

{
  "useWeatherCompensation": true,
  "weatherCompensationValues": TemperatureRangeInput,
  "flowTemperature": TemperatureInput
}

ForceReauthenticationInput

The input type for repudiating previously issued Kraken Tokens and refresh tokens.

Input fields

NameDescription

includeThirdParties (Boolean!)

Also force third-party applications you have authorized to use your account to reauthenticate.

Example

{
  "includeThirdParties": true
}

Input fields

NameDescription

accountNumber (String!)

content (JSONString!)

Form content

formType (FormType)

Form type

Example

{
  "accountNumber": "abc123",
  "formType": "COVID_19_FINANCIAL_ENERGY_ASSESSMENT",
  "content": {"key": "value"}
}

Input fields

NameDescription

standingCharge (Decimal!)

Standing charge for gas.

value (Decimal!)

Standard bespoke rate for gas.

Example

{
  "value": 1.0,
  "standingCharge": 1.0
}

Input fields

NameDescription

isEstimate (Boolean)

If the consumption values are estimated, set this to 'True'.

value (Int!)

Amount of gas consumed.

Example

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

GasFiltersInput

Filter measurements by gas parameters.

Input fields

NameDescription

deviceId (String)

marketSupplyPointId (String)

readingFrequencyType (ReadingFrequencyType)

registerId (String)

Example

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

Input fields

NameDescription

annualConsumption (Int)

isEstimate (Boolean!)

mprn (String)

Example

{
  "mprn": "abc123",
  "isEstimate": true,
  "annualConsumption": 1
}

Input fields

NameDescription

consumption (GasConsumptionInput)

Annual consumption values for this meter point.

gspId (String)

The grid supply point ID of this meter point.

mprn (String)

Must be provided if no custom consumption input is provided.

Example

{
  "mprn": "abc123",
  "consumption": GasConsumptionInput,
  "gspId": "abc123"
}

Input fields

NameDescription

consumption (GasConsumptionInput)

Annual consumption values for this meter point.

gspId (String)

The grid supply point ID of this meter point.

mprn (String)

Must be provided if no custom consumption input is provided.

productsInput ([GasProductInput!]!)

A list of products and optional product parameters to quote for.

Example

{
  "mprn": "abc123",
  "consumption": GasConsumptionInput,
  "gspId": "abc123",
  "productsInput": GasProductInput
}

Input fields

NameDescription

bespokeRates (GasBespokeRates)

Bespoke rates to override default gas unit rates.

code (String)

Code specifying the product to quote for.

paymentMethod (PaymentMethodChoices)

Optional payment method to quote for.

Example

{
  "code": "abc123",
  "paymentMethod": "DIRECT_DEBIT",
  "bespokeRates": GasBespokeRates
}

Input fields

NameDescription

channel (InkCommunicationChannel!)

The channel of the contact.

filename (String!)

The name of the file.

Example

{
  "channel": "EMAIL",
  "filename": "abc123"
}

GetEmbeddedSecretForNewPaymentInstructionInput

The input for getting the client secret for an embedded new card payment method form.

Input fields

NameDescription

accountNumber (String!)

The account number.

instructionType (PaymentType!)

The type of the new payment instruction.

ledgerId (String)

WARNING: Will be mandatory in future versions

The ledger ID.

Example

{
  "accountNumber": "abc123",
  "instructionType": "BPAY",
  "ledgerId": "abc123"
}

GetHostedUrlForNewPaymentInstructionInput

The input needed for getting the external URL for setting up a payment instruction.

Input fields

NameDescription

accountNumber (String!)

The account number.

instructionType (PaymentType!)

The type of the new payment instruction.

ledgerNumber (String!)

The ledger number.

returnUrlCancel (String)

The URL to redirect the user to after the action was cancelled.

returnUrlError (String)

The URL to redirect the user to after the action resulted in an error.

returnUrlFailure (String)

The URL to redirect the user to after the action resulted in a failure.

returnUrlSuccess (String)

The URL to redirect the user to after the action was completed successfuly.

Example

{
  "accountNumber": "abc123",
  "ledgerNumber": "abc123",
  "instructionType": "BPAY",
  "returnUrlSuccess": "abc123",
  "returnUrlFailure": "abc123",
  "returnUrlError": "abc123",
  "returnUrlCancel": "abc123"
}

Input fields

NameDescription

heatPumpId (ID!)

The heat pump variant ID.

Example

{
  "heatPumpId": "abc123"
}

Input fields

NameDescription

accountNumber (String!)

Account number.

state (Boolean!)

The state that the hot water device should be set to. A value of true indicates that the device should be turned on, and a value of false indicates it should be switched off.

Example

{
  "accountNumber": "abc123",
  "state": true
}

InitiateHostedStandalonePaymentInput

Input fields for initiating a hosted standalone payment.

The amount should always be provided in the minor unit of currency (e.g., pence not pounds, cents not dollars, etc.).

A standalone payment can be made against a specific ledger (e.g., a debt ledger) by providing the ledger id. Accounts have a default ledger that will be used if not provided.

Input fields

NameDescription

accountNumber (String!)

The account number.

amount (Int!)

The amount to be collected in the minor unit of currency.

collectionMethod (CollectionMethod!)

The method by which the payment is being collected.

description (String!)

A description of the purpose of the payment.

ledgerId (ID)

The id of the specific ledger against which this payment should be applied. Please provide either ledger number or ID.

ledgerNumber (String)

The number of the specific ledger against which this payment should be applied. Please provide either ledger number or ID.

returnUrlCancel (String)

The URL to redirect the user to after the action was cancelled.

returnUrlError (String)

The URL to redirect the user to after the action resulted in an error.

returnUrlExpired (String)

The URL to redirect the user to if the url is not longer valid.

returnUrlFailure (String)

The URL to redirect the user to after the action resulted in a failure.

returnUrlPending (String)

The URL to redirect the user to after the action was completed but the payment is still being processed.

returnUrlSuccess (String)

The URL to redirect the user to after the action was completed successfuly.

Example

{
  "accountNumber": "abc123",
  "amount": 1,
  "description": "abc123",
  "collectionMethod": "CARD",
  "ledgerNumber": "abc123",
  "ledgerId": "abc123",
  "returnUrlSuccess": "abc123",
  "returnUrlPending": "abc123",
  "returnUrlFailure": "abc123",
  "returnUrlError": "abc123",
  "returnUrlCancel": "abc123",
  "returnUrlExpired": "abc123"
}

InitiateStandalonePaymentInput

Input fields for initiating a standalone payment.

The amount should always be provided in the minor unit of currency (e.g., pence not pounds, cents not dollars, etc.).

A standalone payment can be made against a specific ledger (e.g., a debt ledger) by providing the ledger id. Accounts have a default ledger that will be used if not provided.

Input fields

NameDescription

accountNumber (String!)

The account number.

amount (Int!)

The amount to be collected in the minor unit of currency.

collectionMethod (CollectionMethod)

The method by which the payment is being collected.

description (String!)

A description of the purpose of the payment.

ledgerId (ID)

The id of the specific ledger against which this payment should be applied.

Example

{
  "accountNumber": "abc123",
  "amount": 1,
  "description": "abc123",
  "collectionMethod": "CARD",
  "ledgerId": "abc123"
}

InkEmailMessageInput

This type is used to create an inbound email.

Input fields

NameDescription

attachments ([InkGenericMessageAttachmentInput!])

Message attachments.

ccAddresses ([Email!])

The carbon copy (cc) email addresses the message was sent to.

fromAddress (Email!)

The email address the message was sent from.

plainTextContent (String!)

The content of the message, as plain text.

subject (String!)

The email subject/title.

toAddresses ([Email!]!)

The email addresses the message was sent to.

Example

{
  "plainTextContent": "abc123",
  "attachments": InkGenericMessageAttachmentInput,
  "subject": "abc123",
  "fromAddress": Email,
  "toAddresses": Email,
  "ccAddresses": [Email]
}

Input fields

NameDescription

s3Bucket (String!)

The S3 bucket of the attachment.

s3Key (String!)

The S3 key of the attachment.

Example

{
  "s3Key": "abc123",
  "s3Bucket": "abc123"
}

InkGenericMessageInput

This type is used to create an generic message.

Input fields

NameDescription

attachments ([InkGenericMessageAttachmentInput!])

Message attachments.

fromHandle (String!)

The identity the message was sent from.

plainTextContent (String!)

The content of the message, as plain text.

toHandle (String!)

The identity the message was sent to.

Example

{
  "plainTextContent": "abc123",
  "attachments": InkGenericMessageAttachmentInput,
  "fromHandle": "abc123",
  "toHandle": "abc123"
}

InkMessageInput

An Ink message used as an input.

This is intended to be morally equivalent to a tagged union; exactly one of the properties provided here is expected to be provided.

At current, only the generic message type is provided, because only the generic message type is currently supported as an input type. This is intended to be a backwards-compatible extension point to allow other message input types to be added in the future.

Input fields

NameDescription

email (InkEmailMessageInput)

generic (InkGenericMessageInput)

post (InkPostMessageInput)

Example


InkPostMessageInput

This type is used to create an inbound post.

Input fields

NameDescription

accountNumber (String)

The account number that the letter was sent from.

attachments ([InkGenericMessageAttachmentInput!])

Message attachments.

notes (String)

Notes on the letter.

plainTextContent (String!)

The content of the message, as plain text.

Example

{
  "plainTextContent": "abc123",
  "attachments": InkGenericMessageAttachmentInput,
  "accountNumber": "abc123",
  "notes": "abc123"
}

InvalidatePaymentInstructionInput

Input for invalidating an arbitrary payment instruction.

Input fields

NameDescription

accountNumber (String!)

id (String!)

The id of the payment instruction to be invalidated.

Example

{
  "accountNumber": "abc123",
  "id": "abc123"
}

InvalidatePreSignedTokenInput

Input type for the InvalidatePreSignedToken mutation.

Input fields

NameDescription

token (String!)

Example

{
  "token": "abc123"
}

InvalidatePreSignedTokensForUserInput

Input type for the InvalidatePreSignedTokensForUser mutation.

Input fields

NameDescription

email (String!)

The email address of the user whose tokens should be invalidated.

scope (PreSignedTokenScope)

The scope of the token to invalidate. If this argument is not specified, all pre-signed tokens issued to the user are invalidated.

Example

{
  "email": "abc123",
  "scope": "SUBMIT_METER_READINGS"
}

InvalidateRefreshTokenInput

Input type for the InvalidateRefreshToken mutation.

Input fields

NameDescription

refreshToken (String!)

Example

{
  "refreshToken": "abc123"
}

InvalidateRefreshTokensForUserInput

Input type for the InvalidateRefreshTokensForUser mutation.

Input fields

NameDescription

email (String!)

The email address of the user whose tokens should be invalidated.

Example

{
  "email": "abc123"
}

Input fields

NameDescription

chfDeviceId (String!)

Device ID of the CHF (Communications Hub Function).

consumerDeviceId (String!)

Device ID (IHD, PPMID, CAD or Alt HAN) of the device being added to the CHF.

consumerDeviceType (JoinConsumerDeviceChoices!)

The device type being joined to the CHF.

fuelType (FuelTypeChoices)

The fuel type of the device, electricity, gas or dual fuel

installationCode (String)

Code provided by manufacturer as part of ASN data, and included as part of device pre-notification, which can be required to authorise the joined device.

Example

{
  "fuelType": "ELECTRICITY",
  "chfDeviceId": "abc123",
  "consumerDeviceId": "abc123",
  "installationCode": "abc123",
  "consumerDeviceType": "PPMID"
}

JoinFanClubInput

The input type for signing an account up to Fan Club.

Input fields

NameDescription

accountNumber (String!)

The account number.

cappedCatchments ([String])

The list of catchments that have exceeded the member cap.

catchments ([String]!)

The list of valid catchment areas.

email (String!)

User's email address.

Example

{
  "accountNumber": "abc123",
  "catchments": "abc123",
  "cappedCatchments": ["abc123"],
  "email": "abc123"
}

JoinSavingSessionsCampaignInput

The input type for signing an account up to Saving Sessions.

Input fields

NameDescription

accountNumber (String!)

The account number.

mpan (String!)

The MPAN to be signed up.

Example

{
  "accountNumber": "abc123",
  "mpan": "abc123"
}

JoinSavingSessionsEventInput

The input type for opting an account in to a Saving Sessions event.

Input fields

NameDescription

accountNumber (String!)

The account number.

eventCode (String!)

The code of the event the user is trying to sign up to.

Example

{
  "accountNumber": "abc123",
  "eventCode": "abc123"
}

Input fields

NameDescription

accountNumber (String!)

The Kraken account number.

marketData (LeaveSupplierMarketInputType)

requestedSupplyEndDate (Date!)

The requested last day of supply.

Example

{
  "accountNumber": "abc123",
  "requestedSupplyEndDate": "2020-01-01",
  "marketData": LeaveSupplierMarketInputType
}

Input fields

NameDescription

supplyPointData ([_DefaultMarketTerminationInput])

A list of supply points for initiating a leave supplier journey.

Example

{
  "supplyPointData": _DefaultMarketTerminationInput
}

Input fields

NameDescription

countryCode (String)

Country code.

line1 (String!)

Line 1 of address.

line2 (String)

Line 2 of address.

line3 (String)

Line 3 of address.

line4 (String)

Line 4 of address.

line5 (String)

Line 5 of address.

postalCode (String!)

Postal code.

Example

{
  "line1": "abc123",
  "postalCode": "abc123",
  "countryCode": "abc123",
  "line2": "abc123",
  "line3": "abc123",
  "line4": "abc123",
  "line5": "abc123"
}

LinkUserToLineInput

Link an AccountUser to a LINE account.

Input fields

NameDescription

linkToken (String!)

Example

{
  "linkToken": "abc123"
}

MetadataInput

The metadata input type for mutations.

Input fields

NameDescription

identifier (String!)

An identifier for the associated object, e.g. account_number for the Account linked object type.

key (String!)

The key for the metadata.

linkedObjectType (LinkedObjectType!)

The object that the metadata is associated with.

value (JSONString!)

The metadata value which should be a valid JSON string.

Example

{
  "identifier": "abc123",
  "linkedObjectType": "ACCOUNT",
  "key": "abc123",
  "value": {"key": "value"}
}

Input fields

NameDescription

meterType (String)

The type of meter. This field is not required but should be supplied whenever possible.

serialNumber (String!)

Serial number of the meter involved in the appointments

status (MeterStatus)

Whether the meter details refer to a meter that is currently installed at the site or one that has been removed or replaced.

Example

{
  "serialNumber": "abc123",
  "status": "REMOVED",
  "meterType": "abc123"
}

Input fields

NameDescription

changeOn (Date)

The date the product switch should take effect. Defaults to the current agreement end date, or tomorrow if the agreement is open-ended.

commission (CommissionInput)

Information on the commission that's associated with this agreement.

flatRate (Boolean)

Should the meter point be on a flat rate.

mpxn (String!)

The MPxN of the meter point.

quotedProductId (ID!)

The ID of the selected quoted product.

Example

{
  "mpxn": "abc123",
  "quotedProductId": "abc123",
  "changeOn": "2020-01-01",
  "commission": CommissionInput,
  "flatRate": true
}

Input fields

NameDescription

address (String!)

Street address of the new property. Should not contain the postcode.

moveInDate (String)

Date of moving into the new property.

moveInNewProperty (Boolean)

If True, this will trigger the move in flow at the new property for the account.

mpans ([String])

MPANs of the electricity meter points at the new property.

mprns ([String])

MPRNs of the gas meter points at the new property.

postcode (String!)

Postcode of new property.

productCode (String)

The product to use when creating agreements for the new property. If not provided, the current product for each meter point is used if available, or else the default SVT product. If provided, quote_code must also be provided.

quoteCode (String)

A quote that contains the product provided in productcode. Should be provided only if productcode is also provided.

Example

{
  "address": "abc123",
  "postcode": "abc123",
  "moveInDate": "abc123",
  "mpans": ["abc123"],
  "mprns": ["abc123"],
  "productCode": "abc123",
  "quoteCode": "abc123",
  "moveInNewProperty": true
}

Input fields

NameDescription

accountNumber (String!)

moveOutDate (Date!)

newProperty (MoveInNewProperty)

The property to perform a move in for.

newTenant (MoveOutNewTenant)

The details of the next occupant of the property.

propertyId (String!)

Example

{
  "accountNumber": "abc123",
  "propertyId": "abc123",
  "moveOutDate": "2020-01-01",
  "newProperty": MoveInNewProperty,
  "newTenant": MoveOutNewTenant
}

Input fields

NameDescription

email (String)

familyName (String)

givenName (String)

mobile (String)

role (String)

Example

{
  "givenName": "abc123",
  "familyName": "abc123",
  "email": "abc123",
  "mobile": "abc123",
  "role": "abc123"
}

Input fields

NameDescription

accountType (AccountTypeChoices!)

Account type to quote for (e.g. Business or Domestic).

affiliateSessionId (String)

Optional ID of the affiliate session active when creating this quote.

brandCode (String!)

Company brand to quote for.

paymentMethod (PaymentMethodChoices)

Optional parameter for the payment method to quote for. Defaults to Direct Debit.

Example

{
  "accountType": "BUSINESS",
  "brandCode": "abc123",
  "paymentMethod": "DIRECT_DEBIT",
  "affiliateSessionId": "abc123"
}

Input fields

NameDescription

email (String)

Lead email.

leadType (String)

To know if the lead is domestic or business.

marketName (String)

The product the lead is interested in.

name (String)

Lead name.

phone (String)

Lead phone.

source (String)

The source where the lead comes from.

Example

{
  "source": "abc123",
  "phone": "abc123",
  "email": "abc123",
  "name": "abc123",
  "leadType": "abc123",
  "marketName": "abc123"
}

Input fields

NameDescription

accountNumber (String!)

Account number.

details (String!)

The OCPP authentication details.

Example

{
  "accountNumber": "abc123",
  "details": "abc123"
}

ObtainJSONWebTokenInput

The input type for obtaining a Kraken Token (JWT).

Input fields

NameDescription

APIKey (String)

API key of the account user. Use standalone, don't provide a second input field.

email (String)

Email address of the account user. Use with 'password' field.

organizationSecretKey (String)

Live secret key of an third-party organization. Use standalone, don't provide a second input field.

password (String)

Password of the account user. Use with 'email' field.

preSignedKey (String)

Short-lived, temporary key (that's pre-signed). Use standalone, don't provide a second input field.

refreshToken (String)

The refresh token that can be used to extend the expiry claim of a Kraken token. Use standalone, don't provide a second input field.

Example

{
  "email": "abc123",
  "password": "abc123",
  "APIKey": "abc123",
  "organizationSecretKey": "abc123",
  "preSignedKey": "abc123",
  "refreshToken": "abc123"
}

ObtainLongLivedRefreshTokenInput

The input type for obtaining a long-lived refresh token.

Input fields

NameDescription

krakenToken (String!)

The Kraken Token that will be used to generate the long-lived refresh token.

Example

{
  "krakenToken": "abc123"
}

Input fields

NameDescription

accountNumber (String!)

directDebitInstruction (DirectDebitInstructionLocalBankDetailsInput)

moveInDate (Date)

paymentDay (Int)

The day of the month that payments should be taken from the account. Should be between 1 and 28.

productCode (String!)

propertyId (String!)

quoteCode (String!)

users ([AccountUserInput])

Example

{
  "accountNumber": "abc123",
  "propertyId": "abc123",
  "quoteCode": "abc123",
  "productCode": "abc123",
  "paymentDay": 1,
  "directDebitInstruction": DirectDebitInstructionLocalBankDetailsInput,
  "users": AccountUserInput,
  "moveInDate": "2020-01-01"
}

Input fields

NameDescription

accountNumber (String!)

Input a customer account number.

paymentAmount (Int!)

Payment amount must be inputted as pence.

paymentDay (Int!)

Input a direct debit payment day.

Example

{
  "accountNumber": "abc123",
  "paymentAmount": 1,
  "paymentDay": 1
}

Input fields

NameDescription

latitude (Float)

longitude (Float)

Example

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

Input fields

NameDescription

accountNumber (String!)

The account number.

displayNote (String)

Optional short note about the credit, to be displayed to the user.

ledgerId (ID!)

The ID of the ledger where the credit will be posted.

netAmount (Int!)

The net amount of the credit to be posted. Amount should be posted in the smallest unit of currency.

note (String)

Optional short note about the credit, to be displayed to internal systems.

reason (String!)

The reason why the credit is posted. This should be a valid credit reason code.

taxAmount (Int!)

The tax amount of the credit to be posted. Amount should be posted in the smallest unit of currency.

Example

{
  "accountNumber": "abc123",
  "netAmount": 1,
  "taxAmount": 1,
  "displayNote": "abc123",
  "note": "abc123",
  "reason": "abc123",
  "ledgerId": "abc123"
}

PostEVPublicChargingChargeInput

The input type for post an EV Public Charging charge.

Input fields

NameDescription

lineItems ([EVPCLineItem!]!)

The line items for the new charge.

taxItems ([EVPCTaxItem!]!)

The tax items for the new charge.

tokenValue (String!)

The value of the token used for this session.

Example

{
  "tokenValue": "abc123",
  "lineItems": EVPCLineItem,
  "taxItems": EVPCTaxItem
}

Input fields

NameDescription

displayNote (String)

Optional short note about the credit, to be displayed to the user.

externalAccountId (String!)

The external account identifier.

netAmount (Int!)

The net amount of the credit to be added. Amount should be posted in the smallest unit of currency.

reason (AccountCreditReasonType!)

The reason why the credit is added.

taxAmount (Int!)

The tax amount of the credit to be added. Amount should be posted in the smallest unit of currency.

Example

{
  "externalAccountId": "abc123",
  "netAmount": 1,
  "taxAmount": 1,
  "reason": "EXTERNAL_REFERRAL_CREDIT",
  "displayNote": "abc123"
}

Input fields

NameDescription

accountType (AccountTypeChoices)

The type of account to create.

billingAddress (LifecycleAddressInput!)

The billing address.

billingName (String!)

The billing name.

brandCode (String!)

The brand of the created account.

chosenPaymentDay (Int)

The chosen payment day.

customerDetails (CustomerDetailsInput!)

The customer's details.

dateOfSale (Date)

The date of sale, defaults to today if not provided.

preferredSsd (Date)

The preferred supply start date.

salesInfo (SalesInformationInput!)

Sales information.

Example

{
  "accountType": "BUSINESS",
  "brandCode": "abc123",
  "billingName": "abc123",
  "billingAddress": LifecycleAddressInput,
  "customerDetails": CustomerDetailsInput,
  "salesInfo": SalesInformationInput,
  "preferredSsd": "2020-01-01",
  "dateOfSale": "2020-01-01",
  "chosenPaymentDay": 1
}

Input fields

NameDescription

numberOfUnits (Int!)

Number of units.

productCode (String!)

Products code to purchase.

Example

{
  "productCode": "abc123",
  "numberOfUnits": 1
}

ProductToQuoteInput

Represents a product and the quantity to quote for a customer.

Input fields

NameDescription

currency (String!)

Currency.

numberOfUnits (Int!)

Number of units.

pricePerUnit (Int)

Price per unit in smallest sub-unit of the currency.

productId (Int!)

ID of the product to quote.

Example

{
  "productId": 1,
  "numberOfUnits": 1,
  "pricePerUnit": 1,
  "currency": "abc123"
}

Input fields

NameDescription

hasIndoorSpaceForCylinder (Boolean)

Whether the property has indoor space for a cylinder.

hasOutdoorSpaceForHeatPump (Boolean)

Whether the property has outdoor space for a heat pump.

heatType (HeatPumpHeatType!)

Heat type.

isHomeRenovation (Boolean)

Whether the property is undergoing a home renovation.

propertyType (HeatPumpPropertyType!)

Property type.

Example

{
  "propertyType": "END_OF_TERRACE",
  "heatType": "MAINS_GAS_BOILER",
  "hasOutdoorSpaceForHeatPump": true,
  "hasIndoorSpaceForCylinder": true,
  "isHomeRenovation": true
}

Input fields

NameDescription

euid (String!)

The EUID of the device we are trying to provision.

nonce (String!)

The SHA256 hash of the EUID and timestamp.

signature (String!)

The signature of the nonce generated by the device's private key.

timestamp (String!)

A string representing the number of whole milliseconds since the epoch.

Example

{
  "euid": "abc123",
  "timestamp": "abc123",
  "nonce": "abc123",
  "signature": "abc123"
}

Input fields

NameDescription

params (JSONString!)

The params of the trigger type, as a JSON string. These are defined in the Params class for a trigger type.

triggerTypeCode (String!)

The code of the trigger type to be published.

Example

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

Input fields

NameDescription

accountNumber (String!)

Account number to create this quote for.

at (DateTime!)

Date at which the product switch takes effect.

electricityMeterPointsInput ([ElectricityMeterPointProductsInput!])

A list of electricity meterpoints to create this quote for.

gasMeterPointsInput ([GasMeterPointProductsInput!])

A list of gas meterpoints to create this quote for.

Example

{
  "electricityMeterPointsInput": ElectricityMeterPointProductsInput,
  "gasMeterPointsInput": GasMeterPointProductsInput,
  "accountNumber": "abc123",
  "at": "2020-01-01T00:00:00.000Z"
}

Input fields

NameDescription

addressLine1 (String)

addressLine2 (String)

addressLine3 (String)

Example

{
  "addressLine1": "abc123",
  "addressLine2": "abc123",
  "addressLine3": "abc123"
}

Input fields

NameDescription

accountNumber (String!)

Account number.

campaignSlug (String!)

Slug of campaign to quote on.

propertyId (Int!)

Property to quote on.

Example

{
  "accountNumber": "abc123",
  "propertyId": 1,
  "campaignSlug": "abc123"
}

Input fields

NameDescription

electricityMeterPointsInput ([ElectricityMeterPointInput!])

A list of electricity meterpoints to create this quote for.

gasMeterPointsInput ([GasMeterPointInput!])

A list of gas meterpoints to create this quote for.

newAccountInput (NewAccountInput!)

Additional context about the future account which is required to create the quote.

productTags ([String!])

Only quote on products with these tags. If not provided, quote against all available products.

Example

{
  "electricityMeterPointsInput": ElectricityMeterPointInput,
  "gasMeterPointsInput": GasMeterPointInput,
  "newAccountInput": NewAccountInput,
  "productTags": ["abc123"]
}

Input fields

NameDescription

electricityMeterPointsInput ([ElectricityMeterPointProductsInput!])

A list of electricity meterpoints to create this quote for.

gasMeterPointsInput ([GasMeterPointProductsInput!])

A list of gas meterpoints to create this quote for.

newAccountInput (NewAccountInput!)

Data for creating a new account.

Example

{
  "electricityMeterPointsInput": ElectricityMeterPointProductsInput,
  "gasMeterPointsInput": GasMeterPointProductsInput,
  "newAccountInput": NewAccountInput
}

Input fields

NameDescription

reading (Int)

register (String)

registerId (ID)

Example

{
  "registerId": "abc123",
  "register": "abc123",
  "reading": 1
}

Input fields

NameDescription

accountNumber (String!)

Account number.

authentication (AuthenticationInput!)

The authentication details required for the currently authenticated device.

deviceType (KrakenFlexDeviceTypes!)

The most recently registered device of this type will be re-authenticated.

Example

{
  "accountNumber": "abc123",
  "authentication": AuthenticationInput,
  "deviceType": "BATTERIES"
}

RedeemLoyaltyPointsInput

The input type for redeeming Loyalty Points.

Input fields

NameDescription

accountNumber (String!)

The account number.

points (Int!)

The number of Loyalty Points to redeem.

Example

{
  "accountNumber": "abc123",
  "points": 1
}

RedeemOctoPointsInput

The input type for redeeming OctoPoints.

Input fields

NameDescription

accountNumber (String!)

The account number.

Example

{
  "accountNumber": "abc123"
}

Input fields

NameDescription

code (String!)

Example

{
  "code": "abc123"
}

Input fields

NameDescription

accountNumber (ID!)

The account number.

amountInMinorUnit (Int!)

The amount to be repaid.

idempotencyKey (String!)

Unique constraint to prevent duplicate requests.

paymentId (ID!)

The ID of the payment to refund.

reason (String!)

Reason for refunding the payment.

Example

{
  "accountNumber": "abc123",
  "paymentId": "abc123",
  "amountInMinorUnit": 1,
  "idempotencyKey": "abc123",
  "reason": "abc123"
}

RefundRequestInput

The input type for the refund request.

Input fields

NameDescription

accountNumber (String!)

The account number.

requestedAmount (Int!)

The requested refund amount.

Example

{
  "accountNumber": "abc123",
  "requestedAmount": 1
}

Input fields

NameDescription

accountNumber (String!)

Account number.

authentication (AuthenticationInput)

The authentication details required given the chosen provider.

chargePoint (ChargePointInput!)

The charger details.

propertyId (Int)

The ID of the property the electric vehicle belongs to.

supportedProvider (ProviderChoices!)

The provider used to authenticate the device.

vehicle (VehicleInput!)

The unique vehicle ID of the electric vehicle.

Example

{
  "accountNumber": "abc123",
  "vehicle": VehicleInput,
  "chargePoint": ChargePointInput,
  "supportedProvider": "DAIKIN",
  "authentication": AuthenticationInput,
  "propertyId": 1
}

Input fields

NameDescription

accountNumber (String!)

Account number.

authentication (AuthenticationInput!)

The authentication details required given the chosen provider.

heatPump (HeatPumpInput!)

The make, model and power of the heat pump.

propertyId (Int)

The ID of the property the heat pump belongs to.

provider (ProviderChoices!)

The provider used to authenticate the device.

Example

{
  "accountNumber": "abc123",
  "propertyId": 1,
  "heatPump": HeatPumpInput,
  "provider": "DAIKIN",
  "authentication": AuthenticationInput
}

Input fields

NameDescription

bundleId (String!)

Register a push notification binding. A push notification binding connects an account user to a specific application running on a specific device through a 'registration token' (Android) or 'device token' (iOS). Using this binding we can send push notifications to the account user's devices.

token (String!)

Device push notification token.

Example

{
  "token": "abc123",
  "bundleId": "abc123"
}

RegisterSmartDeviceInput

This type is used by agent services to notify Kraken of a new device.

Input fields

NameDescription

deviceId (String!)

The ID of the device to register.

deviceManufacturer (String!)

The 4-letter manufacturer code for the device.

deviceModel (String!)

Model of the device.

deviceType (String!)

Type of the device, e.g. ESME or GSME.

esmeVariant (String)

ESME variant for an ESME device.

firmwareVersion (String)

Firmware version number.

installCode (String!)

Installation code of the device.

mapMpid (String)

MPID of the Meter Asset Provider for the device. Used with ESME or GSME devices.

serialNumber (String)

Serial number for ESME or GSME devices.

smetsChtsVersion (String)

SMETS CHTS version number.

supplierMpid (String!)

Supplier associated with the device.

Example

{
  "deviceId": "abc123",
  "mapMpid": "abc123",
  "supplierMpid": "abc123",
  "deviceManufacturer": "abc123",
  "deviceModel": "abc123",
  "deviceType": "abc123",
  "smetsChtsVersion": "abc123",
  "installCode": "abc123",
  "esmeVariant": "abc123",
  "serialNumber": "abc123",
  "firmwareVersion": "abc123"
}

Input fields

NameDescription

consumerDeviceId (String!)

Device ID of the CAD being removed from the CHF/HAN.

consumerDeviceType (RemoveConsumerDeviceChoices!)

The device type being joined, currently limited to CAD only.

Example

{
  "consumerDeviceId": "abc123",
  "consumerDeviceType": "CAD"
}

Input fields

NameDescription

meterType (ElectricityMeterTypes)

prepayData (RemovedMeterPrepayDataInput)

readAt (DateTime)

registers ([RemovedElectricityMeterRegisterInput]!)

serialNumber (String!)

Example

{
  "serialNumber": "abc123",
  "meterType": "K",
  "registers": RemovedElectricityMeterRegisterInput,
  "readAt": "2020-01-01T00:00:00.000Z",
  "prepayData": RemovedMeterPrepayDataInput
}

Input fields

NameDescription

meters ([RemovedElectricityMeterInput])

mpan (String)

Example

{
  "mpan": "abc123",
  "meters": RemovedElectricityMeterInput
}

Input fields

NameDescription

finalReading (Float!)

id (String!)

Identifier string/label for the register.

Example

{
  "id": "abc123",
  "finalReading": 1.0
}

Input fields

NameDescription

finalReading (Float!)

meterType (GasMeterTypes)

prepayData (RemovedMeterPrepayDataInput)

readAt (DateTime)

serialNumber (String!)

Example

{
  "serialNumber": "abc123",
  "meterType": "PP",
  "finalReading": 1.0,
  "readAt": "2020-01-01T00:00:00.000Z",
  "prepayData": RemovedMeterPrepayDataInput
}

Input fields

NameDescription

meters ([RemovedGasMeterInput])

mprn (String)

Example

{
  "mprn": "abc123",
  "meters": RemovedGasMeterInput
}

Input fields

NameDescription

balance (Int)

The credit balance of the meter in millipence.

cumulativeDebtBalance (Int)

The total of all debt left on the removed meter in millipence.

emergencyCreditBalance (Int)

Amount of emergency credit remaining on the meter in millipence.

Example

{
  "balance": 1,
  "cumulativeDebtBalance": 1,
  "emergencyCreditBalance": 1
}

Input fields

NameDescription

agreedFromDate (Date)

The date the agreement was agreed from (inclusive, if different to valid_from).

bespokePpsTariffRates ([BespokePPSTariffRatesInput])

Bespoke rates overriding those of the associated tariff, with payment method.

bespokeTariffRates (BespokeTariffRatesInput)

Bespoke rates overriding those of the associated tariff.

commission (CommissionInput)

Information on the commission that's associated with this agreement.

mpxn (String!)

MPxN to renew the agreement for.

tariffCode (String!)

Tariff code for the new agreement.

validFromDate (Date!)

The start date of the new agreement (inclusive).

validToDate (Date)

The end date of the new agreement (exclusive).

Example

{
  "mpxn": "abc123",
  "tariffCode": "abc123",
  "validFromDate": "2020-01-01",
  "validToDate": "2020-01-01",
  "agreedFromDate": "2020-01-01",
  "bespokeTariffRates": BespokeTariffRatesInput,
  "bespokePpsTariffRates": BespokePPSTariffRatesInput,
  "commission": CommissionInput
}

Input fields

NameDescription

accountNumber (String!)

Account number

changeOn (Date)

The date the new agreement takes effect. This can be no more than 90 days in the future.

electricityAgreements ([AgreementRenewalProductInput])

A list of electricity agreements and the code of the product they will be renewed to.

gasAgreements ([AgreementRenewalProductInput])

A list of gas agreements and the code of the product they will be renewed to.

Example

{
  "accountNumber": "abc123",
  "electricityAgreements": AgreementRenewalProductInput,
  "gasAgreements": AgreementRenewalProductInput,
  "changeOn": "2020-01-01"
}

Input fields

NameDescription

accountNumber (String!)

Account number.

changeOn (Date)

The date the new agreement takes effect. This can be no more than 90 days in the future.

makeFullDebtRepayment (Boolean!)

Where the account's current payment schedule has a debt repayment element, we let the user choose whether to continue making catch-up payments, or to repay the full debt in addition to their next payment.

persistFlatRate (Boolean)

If the customer is currently on a flat rate tariff, persist this into the new agreement.

propertyId (ID!)

The ID of the property that agreements should be renewed for.

quotedProductId (ID!)

The ID if the quoted product we wish to use to create new agreements. Part of the tariff renewal journey involves re-quoting to ensure this is available.

Example

{
  "accountNumber": "abc123",
  "quotedProductId": "abc123",
  "propertyId": "abc123",
  "makeFullDebtRepayment": true,
  "persistFlatRate": true,
  "changeOn": "2020-01-01"
}

RepaymentInput

Input fields for Repayment Intervention.

Input fields

NameDescription

reason (String)

The Repayment Intervention reason.

repaymentId (ID!)

The repayment ID.

Example

{
  "repaymentId": "abc123",
  "reason": "abc123"
}

Input fields

NameDescription

accountNumber (String!)

Account number.

mpxn (String!)

MPxN of the related meter point to the agreement.

newProductCode (String!)

Product code to replace with.

replaceOnDate (Date!)

Date to replace on, must be in future.

Example

{
  "accountNumber": "abc123",
  "mpxn": "abc123",
  "replaceOnDate": "2020-01-01",
  "newProductCode": "abc123"
}

ReplaceCommsHubInput

Specify a new SMETS2 Communications Hub to replace an existing Communications Hub.

Input fields

NameDescription

newCommsHubDeviceId (String!)

The device id of the new Communications Hub.

oldCommsHubDeviceId (String!)

The device id of the old Communications Hub.

Example

{
  "oldCommsHubDeviceId": "abc123",
  "newCommsHubDeviceId": "abc123"
}

Input fields

NameDescription

appointmentId (String)

The installer/agents own booking reference for the appointment to remove these meters.

electricityMeterPoint (RemovedElectricityMeterPointInput)

gasMeterPoint (RemovedGasMeterPointInput)

Example

{
  "appointmentId": "abc123",
  "electricityMeterPoint": RemovedElectricityMeterPointInput,
  "gasMeterPoint": RemovedGasMeterPointInput
}

Input fields

NameDescription

deviceId (String!)

Device ID for the meter.

endAt (DateTime)

The last half hourly end time (inclusive) to retrieve.

startAt (DateTime)

The first half hourly period start (inclusive) to retrieve.

Example

{
  "deviceId": "abc123",
  "startAt": "2020-01-01T00:00:00.000Z",
  "endAt": "2020-01-01T00:00:00.000Z"
}

RequestPasswordResetInput

Input type for the RequestPasswordReset mutation.

Input fields

NameDescription

email (String!)

The email requesting a password reset email.

Example

{
  "email": "abc123"
}

Input fields

NameDescription

accountNumber (String!)

The account number for the requested ledger's account.

amountInMinorUnit (Int!)

The amount to be repaid.

idempotencyKey (String!)

Unique constraint to prevent duplicate requests.

ledgerId (String!)

The ledger id from which the repayment will be requested.

method (RequestableRepaymentMethod)

The method by which the money will be transferred to the customer.

Example

{
  "accountNumber": "abc123",
  "ledgerId": "abc123",
  "amountInMinorUnit": 1,
  "method": "BANK_TRANSFER",
  "idempotencyKey": "abc123"
}

Input fields

NameDescription

accountNumber (String!)

includeHiddenProducts (Boolean)

paymentMethod (QuotePaymentMethodChoices)

Optional parameter to select the payment method for the quote, default is direct debit.

persistFlatRate (Boolean)

productAvailableAt (DateTime)

propertyId (ID!)

Example

{
  "accountNumber": "abc123",
  "propertyId": "abc123",
  "productAvailableAt": "2020-01-01T00:00:00.000Z",
  "includeHiddenProducts": true,
  "persistFlatRate": true,
  "paymentMethod": "DIRECTDEBIT"
}

Input fields

NameDescription

clientMutationId (String)

password (String!)

token (String!)

userId (String!)

Example

{
  "password": "abc123",
  "userId": "abc123",
  "token": "abc123",
  "clientMutationId": "abc123"
}

Input fields

NameDescription

accountNumber (String!)

Account number.

temperature (Float!)

The temperature the room should be set to. The valid temperature range is between 12 and 30 degrees in increments of 0.5 degrees.

Example

{
  "accountNumber": "abc123",
  "temperature": 1.0
}

SalesInformationInput

Information about the sale to associate with the account.

Input fields

NameDescription

affiliateParams (String)

Unique reference number.

affiliateSubdomain (String)

Unique reference number.

salesChannel (String!)

Sales channel.

salesSubchannel (String)

Sales subchannel.

urn (String)

Unique reference number.

Example

{
  "salesChannel": "abc123",
  "salesSubchannel": "abc123",
  "urn": "abc123",
  "affiliateSubdomain": "abc123",
  "affiliateParams": "abc123"
}

Input fields

NameDescription

nominatedMpan (String)

The MPAN of the meter point to enrol with Saving Sessions. If not provided, a random eligible meter point for the account will be selected

shouldEnrol (Boolean)

Whether or not the account should enrol in Saving Sessions.

Example

{
  "shouldEnrol": true,
  "nominatedMpan": "abc123"
}

Input fields

NameDescription

action (String!)

Whether this setting turns the zone on or off, or changes its temperature.

setpointInCelsius (FloatSafeDecimal)

Desired zone temperature (for zones which support setpoints).

time (Time!)

Time for when settings should be active, in HH:MM (24h) format .

Example

{
  "time": "00:00:00.000Z",
  "action": "abc123",
  "setpointInCelsius": 20.6
}

SensorDisplayNameUpdate

A mapping of sensor codes to the display names we would like those sensors to have.

Input fields

NameDescription

newDisplayName (String!)

The new display name to set for this sensor.

sensorCode (String!)

The code of the sensor you want to update.

Example

{
  "sensorCode": "abc123",
  "newDisplayName": "abc123"
}

SetLoyaltyPointsUserInput

The input type for setting the Loyalty Points user.

Input fields

NameDescription

accountNumber (String!)

The account number.

newLoyaltyPointsUserId (String!)

The account user receiving the points.

Example

{
  "accountNumber": "abc123",
  "newLoyaltyPointsUserId": "abc123"
}

Input fields

NameDescription

accountNumber (String!)

bankDetails (BankDetailsInput!)

ledgerId (ID!)

validFrom (DateTime!)

Example

{
  "accountNumber": "abc123",
  "ledgerId": "abc123",
  "validFrom": "2020-01-01T00:00:00.000Z",
  "bankDetails": BankDetailsInput
}

Input fields

NameDescription

endAt (DateTime)

Time at which boost should end.

mode (Mode!)

The zone mode, i.e. ON, OFF, AUTO or BOOST.

setpointInCelsius (FloatSafeDecimal)

Target temperature for a zone in celsius.

zone (Zone!)

The heat pump controller zone, i.e. WATER, ZONE1, ZONE2 or AUXILIARY.

Example

{
  "zone": "WATER",
  "mode": "ON",
  "setpointInCelsius": 20.6,
  "endAt": "2020-01-01T00:00:00.000Z"
}

Input fields

NameDescription

sensorCode (String!)

The code for the sensor we want to make primary, such as 'SENSOR01'.

zone (Zone!)

The heat pump controller zone.

Example

{
  "zone": "WATER",
  "sensorCode": "abc123"
}

Input fields

NameDescription

schedules ([ZoneSchedule]!)

The schedule(s) to be set for a specific zone.

zone (Zone!)

The heat pump controller zone, i.e. WATER, ZONE1, ZONE2 or AUXILIARY.

Example

{
  "zone": "WATER",
  "schedules": ZoneSchedule
}

Input fields

NameDescription

email (String!)

The email to share the quote with.

quoteCode (String!)

The quote to share.

Example

{
  "quoteCode": "abc123",
  "email": "abc123"
}

SmartMeterDeviceInput

Identifies a SMETS2 meter (or a SMETS1 E&A'd meter).

Input fields

NameDescription

accountNumber (String!)

Account number of customer.

deviceId (String!)

Electricity or gas meter device ID.

Example

{
  "accountNumber": "abc123",
  "deviceId": "abc123"
}

SmartPrepayMeterAmountInput

This type is used by clients to top-up a smart prepay meter

Input fields

NameDescription

accountNumber (String!)

Account number of customer.

amount (Int!)

Amount of credit to add to the meter, in pence.

deviceId (String!)

Electricity or gas meter device ID.

isTemporaryCredit (Boolean)

Apply as temporary credit.

paymentIntentId (ID)

The top-up will wait for this payment to clear before proceeding.

reason (String)

Reason for top-up.

Example

{
  "accountNumber": "abc123",
  "deviceId": "abc123",
  "amount": 1,
  "paymentIntentId": "abc123",
  "isTemporaryCredit": true,
  "reason": "abc123"
}

Input fields

NameDescription

acceptedTermsAndConditionsVersion (String)

Version of the terms and conditions that have been accepted.

accountNumber (String!)

Account number.

certificate (Certificate)

The export certificate object.

dnoStatus (DNOStatus!)

The DNO status.

exportMpan (String)

The export MPAN.

fitId (String)

The FiT ID.

fitStatus (FITStatus!)

The FiT ownership status.

importMpan (String)

The import MPAN.

includeFitGeneration (Boolean)

Whether to take over the FiT generation payments.

mcsCertNumber (String)

The MCS certificate number.

productCode (String!)

The export product code.

technologyType (ExportTechnologyType!)

The export technology type.

termsAndConditionsAccepted (Boolean!)

Have the terms and conditions for this product been accepted? To be deprecated.

Example

{
  "accountNumber": "abc123",
  "importMpan": "abc123",
  "exportMpan": "abc123",
  "productCode": "abc123",
  "technologyType": "HYDRO",
  "fitStatus": "OWNER",
  "includeFitGeneration": true,
  "fitId": "abc123",
  "mcsCertNumber": "abc123",
  "certificate": Certificate,
  "dnoStatus": "NOTIFIED",
  "termsAndConditionsAccepted": true,
  "acceptedTermsAndConditionsVersion": "abc123"
}

Input fields

NameDescription

accountNumber (String!)

Account number.

isNewAccount (Boolean)

mpan (String)

The MPAN to switch.

mprn (String)

The MPRN to switch.

productCode (String!)

The product code to switch to.

targetAgreementChangeDate (Date)

A target start date for the new agreement. Must be today or later. Will be ignored if date is in the past at time of creating the new agreement.

termsAndConditions (TermsAndConditions)

Example

{
  "accountNumber": "abc123",
  "mpan": "abc123",
  "mprn": "abc123",
  "productCode": "abc123",
  "isNewAccount": true,
  "termsAndConditions": TermsAndConditions,
  "targetAgreementChangeDate": "2020-01-01"
}

StoreElectricJuicePaymentInstructionInput

The input for storing a new card instruction from an embedded form.

Input fields

NameDescription

accountNumber (String!)

The account number.

validFrom (DateTime!)

The datetime from which the instruction is vaild.

vendorReference (String!)

The vendor's reference for this payment method.

Example

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

StorePaymentInstructionInput

The input for storing a new payment instruction created through the embedded process.

Input fields

NameDescription

accountNumber (String!)

The account number.

instructionType (PaymentType!)

The type of the new payment instruction.

ledgerId (String)

WARNING: Will be mandatory in future versions

The ledger ID to which the instructions will be linked.

validFrom (DateTime!)

The datetime from which the instruction is vaild.

vendorReference (String!)

The vendor's reference for this payment method.

Example

{
  "accountNumber": "abc123",
  "instructionType": "BPAY",
  "validFrom": "2020-01-01T00:00:00.000Z",
  "vendorReference": "abc123",
  "ledgerId": "abc123"
}

Input fields

NameDescription

accountNumber (String!)

Account number.

meterPointSwitchContexts ([MeterPointSwitchContext!]!)

The information required to switch each meter point onto the specified product.

updatePaymentAmount (Boolean)

Runs payment adequacy and checks if the amount - the customer is paying each month - should be updated.

Example

{
  "accountNumber": "abc123",
  "meterPointSwitchContexts": MeterPointSwitchContext,
  "updatePaymentAmount": true
}

TemperatureInput

Describes the temperature of something that is relevant to the heating system.

Input fields

NameDescription

unit (TemperatureUnit!)

The units in which the temperature is being measured.

value (Decimal!)

The temperature measured.

Example

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

TemperatureRangeInput

An input type to represent a finite temperature range.

Input fields

NameDescription

maximum (TemperatureInput!)

The maximum allowable temperature in range.

minimum (TemperatureInput!)

The minimum allowable temperature in range.

Example

{
  "minimum": TemperatureInput,
  "maximum": TemperatureInput
}

Input fields

NameDescription

accepted (Boolean!)

version (String!)

The version of the terms and conditions the user was presented with.

Example

{
  "version": "abc123",
  "accepted": true
}

Input fields

NameDescription

versionMajor (Int!)

The major version of terms and conditions that were accepted.

versionMinor (Int!)

The minor version of terms and conditions that were accepted.

Example

{
  "versionMajor": 1,
  "versionMinor": 1
}

Input fields

NameDescription

amount (Int!)

The amount ( in lowest unit ) to transfer. If the amount is negative,the effect is reversed (the source ledger's balance increases and the destination ledger's balance decreases).

note (String)

Optional short note about transfer reason.

sourceAccountLedger (AccountLedgerInput!)

Account's ledger from which the requested amount is debited.

targetAccountLedger (AccountLedgerInput!)

Account's ledger to which the requested amount is credited.

Example

{
  "sourceAccountLedger": AccountLedgerInput,
  "targetAccountLedger": AccountLedgerInput,
  "amount": 1,
  "note": "abc123"
}

TransferLoyaltyPointsBetweenUsersInput

The input type for transferring Loyalty Points.

Input fields

NameDescription

accountNumber (String!)

The account number.

points (Int!)

The number of Loyalty Points to transfer.

receivingUserId (String!)

The account user receiving the points.

Example

{
  "accountNumber": "abc123",
  "receivingUserId": "abc123",
  "points": 1
}

TypedSourceInputType

Provide a typed source to filter measurements. If a typed_source and a raw source is given, preference is given to the raw source. To get better results, make sure none of the input fields are empty.

Input fields

NameDescription

readingDirection (ReadingDirectionType)

readingFrequencyType (ReadingFrequencyType)

readingQuality (ReadingQualityType)

sourceIdentifier (String)

utility (UtilityType)

Example

{
  "utility": "ELECTRICITY",
  "readingFrequencyType": "RAW_INTERVAL",
  "readingDirection": "CONSUMPTION",
  "sourceIdentifier": "abc123",
  "readingQuality": "ACTUAL"
}

Input fields

NameDescription

assignedUserId (Int)

The ID of the user assigned to handle this exception.If no user is provided, no user will be assigned to the exception.

category (APIExceptionCategories)

The new category. If none is provided, the field won't be updated.

context (JSONString)

The new context. If none is provided, the field won't be updated. This will completely replace the existing context by the new one.

id (Int!)

The ID of the API Exception that will be updated.

keyDate (Date)

The new key date. If none is provided, the field won't be updated.

operationsTeamId (Int)

The ID of an operations team to handle this exception. If no team is provided, no team will be assigned to the exception.

priority (APIExceptionPriority)

The new priority. If none is provided, the field won't be updated.

resolutionStatus (APIExceptionResolutionStatus)

The new resolution status. If none is provided, the field won't be updated.

resolutionType (APIExceptionResolutionType)

The new resolution type. If none is provided, the field won't be updated.

tags ([APIExceptionTags])

The updated list of tags. If none is provided, the field won't be updated.

Example

{
  "id": 1,
  "resolutionStatus": "ASSIGNED",
  "resolutionType": "AUTOMATIC",
  "priority": "LOW",
  "context": {"key": "value"},
  "category": "ACCOUNT",
  "tags": "MOVE_IN",
  "keyDate": "2020-01-01",
  "assignedUserId": 1,
  "operationsTeamId": 1
}

Input fields

NameDescription

apiExceptionNoteId (ID!)

The ID of the API Exception note being updated.

body (String!)

The body of the note.

Example

{
  "body": "abc123",
  "apiExceptionNoteId": "abc123"
}

UpdateAccountBillingEmailInput

Input fields for updating billing email for an account.

Input fields

NameDescription

accountNumber (String!)

Account number for account.

billingEmail (String)

The billingemail which can be up to 512 characters. Use null to unset billingemail.

Example

{
  "accountNumber": "abc123",
  "billingEmail": "abc123"
}

Input fields

NameDescription

accountNumber (String!)

smets2Interest (SmartMeterInterestChoices!)

Input field for setting smart meter interest.

smets2InterestSource (SmartMeterInterestSourceChoices)

The source category of the smart meter interest update.

smets2RefusalReason (SMETS2InterestReason)

Input field for setting the reason for why a customer is not interested in a smart meter.

Example

{
  "accountNumber": "abc123",
  "smets2Interest": "INTERESTED",
  "smets2InterestSource": "WEBSITE",
  "smets2RefusalReason": "SMETS2_INTEREST_REASON_DO_NOT_OWN_HOME"
}

Input fields

NameDescription

emailFormat (EmailFormats)

fontSizeMultiplier (Float)

isOptedInMeterReadingConfirmations (Boolean)

isOptedInToClientMessages (Boolean)

isOptedInToOfferMessages (Boolean)

isOptedInToRecommendedMessages (Boolean)

isOptedInToSmsMessages (Boolean)

isOptedInToThirdPartyMessages (Boolean)

isOptedInToUpdateMessages (Boolean)

isUsingInvertedEmailColours (Boolean)

preferredHoldMusic (Songs)

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

Input fields

NameDescription

clientMutationId (String)

emailFormat (String)

fontSizeMultiplier (Float)

isOptedInMeterReadingConfirmations (Boolean)

isOptedInToClientMessages (Boolean)

isOptedInToOfferMessages (Boolean)

isOptedInToRecommendedMessages (Boolean)

isOptedInToSmsMessages (Boolean)

isOptedInToThirdPartyMessages (Boolean)

isOptedInToUpdateMessages (Boolean)

isUsingInvertedEmailColours (Boolean)

preferredHoldMusic (String)

Example

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

Input fields

NameDescription

clientMutationId (String)

dateOfBirth (Date)

email (String)

familyName (String)

givenName (String)

landline (String)

mobile (String)

pronouns (String)

Example

{
  "givenName": "abc123",
  "familyName": "abc123",
  "pronouns": "abc123",
  "mobile": "abc123",
  "email": "abc123",
  "dateOfBirth": "2020-01-01",
  "landline": "abc123",
  "clientMutationId": "abc123"
}

Input fields

NameDescription

contactEmail (String)

contactName (String)

isBusiness (Boolean)

landingUrl (String)

linkId (ID!)

The id of the affiliate link that is going to be edited.

organisationId (ID)

The organisation for whom to update the affiliate link for.

subdomain (String)

Will be validated as follows:

  • should be at least two characters
  • should only contain (letters, numbers, and Hyphen)
  • should not contain bad words
  • should not contain any of the reserved words including: affiliates, api, business, click, consul, developer, friends, kraken, mail, sendgrid, tech, webhooks, www, www2

trainingStatus (String)

Example

{
  "linkId": "abc123",
  "organisationId": "abc123",
  "subdomain": "abc123",
  "contactName": "abc123",
  "contactEmail": "abc123",
  "isBusiness": true,
  "landingUrl": "abc123",
  "trainingStatus": "abc123"
}

Input fields

NameDescription

allowAlternativePaymentMethods (Boolean)

Is this partner allowed to specify payment methods other than Direct Debit in the import csv or API

canRegisterBusinessMeterPoints (Boolean)

Are meter point registrations limited for profile classes 1 and 2 for registrations from csv or API

canRegisterCustomersWithoutEmailAddress (Boolean)

Allow registration requests with customers without an email address.

canRegisterPortfolioAccounts (Boolean)

Allow registration requests with exiting account user emails to add to the portfolio belonging to the account user.

canRenewTariffs (Boolean)

Allow performing tariff renewals via API.

canUseIvrSupportApi (Boolean)

Allow this partner access to the IVR support API (modify their own IVR handling through third party 'IVR Flow Editor')

defaultAccountType (AccountTypeChoices)

Default Account Type

isFieldSalesOnlyProduct (Boolean)

Restrict to field-sales-only products? This is only allowed for the 'field-sales' and 'events' sales channels

name (String)

organisationId (ID!)

The organisation that is going to be edited.

salesChannel (SalesChannelChoices)

Sales Channel

skipMeterPointAddressValidation (Boolean)

Allow this partner to skip validation that ensures all meter points belong to the same address

Example

{
  "organisationId": "abc123",
  "name": "abc123",
  "salesChannel": "DIRECT",
  "defaultAccountType": "BUSINESS",
  "canRegisterBusinessMeterPoints": true,
  "canRegisterPortfolioAccounts": true,
  "canRegisterCustomersWithoutEmailAddress": true,
  "skipMeterPointAddressValidation": true,
  "allowAlternativePaymentMethods": true,
  "canRenewTariffs": true,
  "canUseIvrSupportApi": true,
  "isFieldSalesOnlyProduct": true
}

UpdateAutoTopUpAmountInput

Input type for updating the schedule auto top up amount for for an account. Requires an account_number, ledger_id and payment_amount to be provided.

Input fields

NameDescription

accountNumber (String!)

Account number to update the schedule auto top up amount for.

ledgerId (Int!)

Specifies the ledger ID associated with the current schedule for updates.

paymentAmount (Int!)

The new auto-top-up amount for the payment schedule.

Example

{
  "accountNumber": "abc123",
  "ledgerId": 1,
  "paymentAmount": 1
}

UpdateCommsDeliveryPreferenceInput

Input fields for updating comms delivery preferences for an account

Input fields

NameDescription

accountNumber (String!)

commsDeliveryPreference (CommsDeliveryPreference!)

Example

{
  "accountNumber": "abc123",
  "commsDeliveryPreference": "EMAIL"
}

Input fields

NameDescription

chfConnectionMethod (CHFConnectionMethod)

How the CHF was installed and connected to the rest of the Smart Metering System.

chfDeviceId (String!)

Device ID of the CHF (Communications Hub Function).

chfInstallType (CHFInstallType)

Is it a new or replacement CHF?

chfLocation (CHFLocation)

Location of the CHF.

faultReason (CHFFaultReason)

The engineer's description of the fault.

faultReturnType (CHFFaultReturnType)

Whether a fault was identified before or after the installation.

hasAerialInstalled (Boolean)

Was an external aerial installed?

hasConnectivityObstruction (Boolean)

In the case of NOSMWAN, was the issue a thick stone wall obstruction (as defined in CHSM)?

hasMetalObstruction (Boolean)

In the case of NOSMWAN, was the issue a local metal obstruction (as defined in CHSM)?

hasSharedObstruction (Boolean)

In the case of NOSMWAN, was the CHF in a shared/communal area (as defined in CHSM)?

mpan (String)

MPAN of the meter point linked to the CHF.

mpxn (String)

MPxN of a meter point linked to the CHF.

noFaultReturnType (CHFNoFaultReturnType)

In the case of NOFAULTRETURN, the reason for the meter not being installed.

premiseType (PremiseType)

Type of the premise in which the CHF is located.

updateType (CommsHubStatusUpdateType!)

The type of status update to be sent.

Example

{
  "chfDeviceId": "abc123",
  "updateType": "SUCCESS",
  "mpxn": "abc123",
  "mpan": "abc123",
  "chfInstallType": "NEW",
  "hasAerialInstalled": true,
  "chfLocation": "OUTSIDE",
  "premiseType": "DETACHED_OR_SEMI",
  "hasMetalObstruction": true,
  "hasConnectivityObstruction": true,
  "hasSharedObstruction": true,
  "faultReason": "DAMAGED_CASE",
  "faultReturnType": "PRIOR_TO_INSTALLATION",
  "chfConnectionMethod": "HOT_SHOE",
  "noFaultReturnType": "GENERAL"
}

Input fields

NameDescription

clientMutationId (String)

messageRelayId (ID!)

The message to set the tags on.

tagNames ([String!]!)

The tag names to set on the message.

taggerCode (String!)

The tag code to set on the message.

taggerVersion (String!)

The tag version to set on the message.

Example

{
  "messageRelayId": "abc123",
  "tagNames": "abc123",
  "taggerCode": "abc123",
  "taggerVersion": "abc123",
  "clientMutationId": "abc123"
}

Input fields

NameDescription

newPassword (String!)

New password

newPasswordConfirmed (String!)

Confirm new password

oldPassword (String!)

Old password

Example

{
  "oldPassword": "abc123",
  "newPassword": "abc123",
  "newPasswordConfirmed": "abc123"
}

Input fields

NameDescription

accountNumber (String!)

amount (Int!)

Amount in pence

Example

{
  "accountNumber": "abc123",
  "amount": 1
}

Input fields

NameDescription

accountNumber (String!)

paymentDay (Int!)

Example

{
  "accountNumber": "abc123",
  "paymentDay": 1
}

Input fields

NameDescription

accountNumber (String!)

allowReadingsAnalysis (Boolean)

The consent that smart meter readings can be used for further analysis

readingFrequency (SmartMeterReadingFrequencyChoices!)

The desired reading frequency for the smart meter.

Example

{
  "accountNumber": "abc123",
  "readingFrequency": "DAILY",
  "allowReadingsAnalysis": true
}

Input fields

NameDescription

additionalPresencePreferred (Boolean)

Additional presence preferred

blind (Boolean)

Blind

carelineTelecareSystem (Boolean)

Careline/telecare system

chronicSeriousIllness (Boolean)

Chronic/serious illness

dementia (Boolean)

Dementia

developmentalCondition (Boolean)

Developmental condition

elderly (Boolean)

Pensionable age

familiesWithYoungChildren5OrUnder (Boolean)

familiesWithYoungChildren5OrUnderEndDate (String)

foreignLanguageSpeaker (Boolean)

hearingImpairment (Boolean)

heartLungMachine (Boolean)

Heart, lung & ventilator

kidneyDialysis (Boolean)

Dialysis, feeding pump and automated medication

language (String)

Preferred language

mdeElectricShowering (Boolean)

MDE electric showering

medicineRefrigeration (Boolean)

Medicine refrigeration

mentalHealth (Boolean)

Mental health

nebuliser (Boolean)

Nebuliser and apnoea monitor

oxygenConcentrator (Boolean)

Oxygen concentrator

oxygenUse (Boolean)

Oxygen Use

partialSighted (Boolean)

partnerPassword (String)

physicalImpairment (Boolean)

poorSenseOfSmell (Boolean)

restrictedHandMovement (Boolean)

restrictedMovement (Boolean)

speechImpairment (Boolean)

stairLift (Boolean)

temporaryLifeChanges (Boolean)

temporaryLifeChangesEndDate (String)

temporaryPostHospitalRecovery (Boolean)

temporaryPostHospitalRecoveryEndDate (String)

temporaryYoungAdultHouseholder (Boolean)

temporaryYoungAdultHouseholderEndDate (String)

usePasswordToIdentify (Boolean)

Use a unique password to identify our staff and partners

userConsent (Boolean)

Consent required to allow priority service request information to be shared. You will only need to provide this once

waterDependent (Boolean)

Example

{
  "additionalPresencePreferred": true,
  "blind": true,
  "carelineTelecareSystem": true,
  "chronicSeriousIllness": true,
  "dementia": true,
  "developmentalCondition": true,
  "elderly": true,
  "hearingImpairment": true,
  "heartLungMachine": true,
  "kidneyDialysis": true,
  "mdeElectricShowering": true,
  "medicineRefrigeration": true,
  "mentalHealth": true,
  "nebuliser": true,
  "oxygenConcentrator": true,
  "oxygenUse": true,
  "partialSighted": true,
  "physicalImpairment": true,
  "poorSenseOfSmell": true,
  "restrictedHandMovement": true,
  "restrictedMovement": true,
  "speechImpairment": true,
  "stairLift": true,
  "waterDependent": true,
  "familiesWithYoungChildren5OrUnder": true,
  "familiesWithYoungChildren5OrUnderEndDate": "abc123",
  "temporaryLifeChanges": true,
  "temporaryLifeChangesEndDate": "abc123",
  "temporaryPostHospitalRecovery": true,
  "temporaryPostHospitalRecoveryEndDate": "abc123",
  "temporaryYoungAdultHouseholder": true,
  "temporaryYoungAdultHouseholderEndDate": "abc123",
  "foreignLanguageSpeaker": true,
  "language": "abc123",
  "usePasswordToIdentify": true,
  "partnerPassword": "abc123",
  "userConsent": true
}

Input fields

NameDescription

accountNumber (String!)

The account number.

desiredSsd (Date!)

The desired Supply Start Date (SSD).

Example

{
  "accountNumber": "abc123",
  "desiredSsd": "2020-01-01"
}

Input fields

NameDescription

dateOfBirth (Date)

email (String)

familyName (String)

givenName (String)

landline (String)

Because this field is clearable, null and the empty string are treated differently; passing null or omitting the field leaves the value as-is, but explicitly passing an empty string clears this value.

mobile (String)

Because this field is clearable, null and the empty string are treated differently; passing null or omitting the field leaves the value as-is, but explicitly passing an empty string clears this value.

pronouns (String)

How the user would like us to address them (e.g. 'she/her', 'they/them'). Because this field is clearable, null and the empty string are treated differently; passing null or omitting the field leaves the value as-is, but explicitly passing an empty string clears this value.

title (String)

The user's title.

userId (String)

The user for whom to perform the update. This is only needed when using an Organisation role

Example

{
  "givenName": "abc123",
  "familyName": "abc123",
  "pronouns": "abc123",
  "email": "abc123",
  "mobile": "abc123",
  "dateOfBirth": "2020-01-01",
  "landline": "abc123",
  "userId": "abc123",
  "title": "abc123"
}

UtilityFiltersInput

Filter measurements by the given utility parameters.

Input fields

NameDescription

electricityFilters (ElectricityFiltersInput)

gasFilters (GasFiltersInput)

Example

{
  "electricityFilters": ElectricityFiltersInput,
  "gasFilters": GasFiltersInput
}

ValidateEmailInput

Input required to validate email address via Kickbox

Input fields

NameDescription

email (String!)

The user's email address.

Example

{
  "email": "abc123"
}

Input fields

NameDescription

phoneNumber (String!)

The user's phone number.

Example

{
  "phoneNumber": "abc123"
}

Input fields

NameDescription

accountNumber (String!)

Account number.

targetType (String)

weekdayTargetSoc (Int!)

weekdayTargetTime (String!)

weekendTargetSoc (Int!)

weekendTargetTime (String!)

Example

{
  "accountNumber": "abc123",
  "weekdayTargetTime": "abc123",
  "weekdayTargetSoc": 1,
  "weekendTargetTime": "abc123",
  "weekendTargetSoc": 1,
  "targetType": "abc123"
}

Input fields

NameDescription

registrationNumber (String)

Registration number of a car.

Example

{
  "registrationNumber": "abc123"
}

Input fields

NameDescription

vehicleId (Int!)

The unique electric vehicle id.

Example

{
  "vehicleId": 1
}

Input fields

NameDescription

qualifyingComponent (CurrentQualifyingComponentOptions)

A set of criteria under which someone is eligible for the Warm Home Discount. The applicant must meet at least one of these criteria, as well as at least one qualifying component criteria.

qualifyingCriteria (QualifyingCriteriaOptions)

A set of criteria under which someone is eligible for the Warm Home Discount. The applicant must meet at least one of these criteria, as well as at least one qualifying component criteria.

Example

{
  "qualifyingCriteria": "SAVINGS_ELEMENT_OF_PENSION_CREDIT",
  "qualifyingComponent": "PERSONAL_INDEPENDENCE_PAYMENTS"
}

Input fields

NameDescription

accountNumber (String!)

The number of the account for which readings are submitted.

supplyType (SupplyType!)

The supply type that the spin should be registered for.

termsAccepted (Boolean!)

Indication whether the user has accepted the WoF terms and conditions.

Example

{
  "accountNumber": "abc123",
  "supplyType": "ELECTRICITY",
  "termsAccepted": true
}

Input fields

NameDescription

days (String!)

Days of the week a schedule should be active, Sunday through Saturday, in bitmask format,e.g. Sun, Tue, Wed => 1011000.

settings ([ScheduleSettings]!)

Settings in a schedule for the selected day(s).

Example

{
  "days": "abc123",
  "settings": ScheduleSettings
}

_DefaultMarketTerminationInput

Default input required to initiate a LeaveSupplier journey for a given market. This type should only be used when there are no configured markets while building the LeaveSupplierMarketInputType.

Input fields

NameDescription

supplyPointIdentifier (String!)

The market supply point identification number.

Example

{
  "supplyPointIdentifier": "abc123"
}