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

portfolioNumber (String)

The portfolio number eg. P-A123B456.

statements (String)

Statements.

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

Input fields

NameDescription

accountNumber (String!)

The account number.

campaign (String!)

The slug of the campaign we want to assign.

expiryDate (Date)

The date in which the link between the campaing and the account is meant to expire. If null, no specific expiring date will be set.

startDate (Date)

The date in which the link between the campaing and the account is meant to start. If null, no specific start date will be set.

Example

{
  "accountNumber": "abc123",
  "campaign": "abc123",
  "startDate": "2020-01-01",
  "expiryDate": "2020-01-01"
}

Input fields

NameDescription

postcode (String!)

The customer's postcode.

street (String!)

The customer's street.

streetNumber (String!)

The customer's street number.

streetNumberSuffix (String)

The customer's street number suffix.

town (String!)

The customer's town.

Example

{
  "street": "abc123",
  "streetNumber": "abc123",
  "streetNumberSuffix": "abc123",
  "postcode": "abc123",
  "town": "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"
}

AnnulOrderInput

The input for annulling an order.

Input fields

NameDescription

accountNumber (String!)

The account number.

reason (String)

Annulment reason.

supplyPointId (Int!)

The supply point id of the order.

Example

{
  "supplyPointId": 1,
  "accountNumber": "abc123",
  "reason": "abc123"
}

Input fields

NameDescription

accountNumber (ID!)

The account number for the requested repayment.

repaymentId (ID!)

The id of the account repayment to be approved.

Example

{
  "accountNumber": "abc123",
  "repaymentId": "abc123"
}

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

BalanceTriggeredScheduleInput

A payment schedule which triggers a payment the balance of a ledger drops below a certain value.

Input fields

NameDescription

balanceThreshold (Int!)

The ledger balance (in the minor currency unit) which when passed will trigger a payment to be taken.

targetBalance (Int)

The target balance (in the minor currency unit) for the ledger; used to calculate the payment amount. Defaults to zero.

Example

{
  "balanceThreshold": 1,
  "targetBalance": 1
}

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

BillTriggeredScheduleInput

A payment schedule which triggers a payment when a bill is issued.

Optionally a payment day frequency multiplier can be specified in which case the payment is taken on the first occurrence of the payment day after a bill has been issued.

Input fields

NameDescription

frequencyMultiplier (Int)

The multiple of months at which payment are taken. Required when a payment day is chosen, ignored if payment day not set.

paymentDay (Int)

The day of the month at which to take payment (1-28). If not provided payment is taken whenever a bill is issued.

Example

{
  "paymentDay": 1,
  "frequencyMultiplier": 1
}

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

CancelContractInput

The input for cancelling the contract and receive a confirmation email.

Input fields

NameDescription

accountNumber (String!)

The account number.

lastDayOfSupply (String!)

Last day of supply of the customer. Has to be at least 30 days in the future. Format should be: '%Y-%m-%d'.

reason (String)

Cancellation reason.

supplyPointId (Int!)

The supply point id of the contract.

Example

{
  "supplyPointId": 1,
  "accountNumber": "abc123",
  "lastDayOfSupply": "abc123",
  "reason": "abc123"
}

CancelLeaveSupplierInput

Input required to cancel a LeaveSupplier journey.

Input fields

NameDescription

leaveSupplierProcessId (ID!)

The ID of the LeaveSupplier process to cancel.

reason (String)

The reason for the cancellation.

Example

{
  "leaveSupplierProcessId": "abc123",
  "reason": "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

wizardId (ID!)

The ID of the SmartFlex onboarding wizard to cancel.

Example

{
  "wizardId": "abc123"
}

Input fields

NameDescription

accountNumber (String!)

The account number.

amount (Int!)

The payment amount (in cents).

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

continuationUri (String!)

The entire continuation URI returned by the vendor.

stepId (ID!)

The ID of the SmartFlex onboarding step to complete.

wizardId (ID!)

The ID of the SmartFlex onboarding wizard.

Example

{
  "wizardId": "abc123",
  "stepId": "abc123",
  "continuationUri": "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

stepId (ID!)

The ID of the SmartFlex onboarding step to complete.

wizardId (ID!)

The ID of the SmartFlex onboarding wizard.

Example

{
  "wizardId": "abc123",
  "stepId": "abc123"
}

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.

Deprecated

The 'cclAmount' field is deprecated.

CCL amount should not be passed in by the API.

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

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.

Deprecated

The 'netAmount' field is deprecated.

The net amount will be calculated automatically by the gross amount.

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

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.

Deprecated

The 'salesTaxAmount' field is deprecated.

The sales tax amount will be calculated automatically by the gross amount.

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

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

The account number.

isPinned (Boolean!)

Pin the note to account.

note (String!)

The note to add.

Example

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

CreateAccountPaymentScheduleInput

Input type for updating the payment schedule on a ledger. Requires an account_number, ledger_id and one of payment_day or payment_amount to be provided.

Input fields

NameDescription

accountNumber (String!)

Number of the account for which to update the schedule.

ledgerNumber (String!)

Number of the ledger associated with the current payment schedule.

paymentAmount (Int)

The new fixed payment amount.

paymentDay (Int)

The new day of the month at which to take payment; ranges from 1 to 28.

Example

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

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

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

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

supplyType (String!)

Example

{
  "accountNumber": "abc123",
  "supplyType": "abc123",
  "directDebitInstruction": DirectDebitInstructionIBANInput
}

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.

occurredAt (DateTime)

The time the event occurred.

subcategory (ExternalAccountEventSubCategory)

The subcategory of the event.

Example

{
  "accountNumber": "abc123",
  "category": "COMMUNICATIONS",
  "subcategory": "TELEPHONE",
  "description": "abc123",
  "occurredAt": "2020-01-01T00:00:00.000Z",
  "content": ExternalAccountEventContent
}

Input fields

NameDescription

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.

occurredAt (DateTime)

The time the event occurred.

subcategory (ExternalAccountEventSubCategory)

The subcategory of the event.

userId (String!)

The user that the event should be created for.

Example

{
  "userId": "abc123",
  "category": "COMMUNICATIONS",
  "subcategory": "TELEPHONE",
  "description": "abc123",
  "occurredAt": "2020-01-01T00:00:00.000Z",
  "content": ExternalAccountEventContent
}

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 quote.

productsToQuote ([ProductToQuoteInput]!)

Products to get a quote for.

Example

{
  "accountNumber": "abc123",
  "productsToQuote": ProductToQuoteInput,
  "clientParams": {"key": "value"},
  "marketParams": {"key": "value"}
}

Input fields

NameDescription

clientParams (JSONString)

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

customerProfile (CustomerProfileInput!)

Customer profile.

marketParams (JSONString)

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

productsToQuote ([ProductToQuoteInput]!)

Products to get a quote for.

Example

{
  "customerProfile": CustomerProfileInput,
  "productsToQuote": ProductToQuoteInput,
  "clientParams": {"key": "value"},
  "marketParams": {"key": "value"}
}

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

occurredAt (DateTime)

When the message occurred in the system of origin.

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"},
  "occurredAt": "2020-01-01T00:00:00.000Z",
  "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 (RoleString)

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

Example

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

Input fields

NameDescription

accountNumber (String!)

The account number.

clientParams (JSONString)

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

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

affiliateSessionId (String)

The session id of the affiliate.

city (String)

elecProductCode (String)

electricityAnnualConsumption (Int)

electricityAnnualNighttimeConsumption (Int)

electricityNetworkOperatorNumber (String)

gasAnnualConsumption (Int)

gasNetworkOperatorNumber (String)

gasProductCode (String)

postcode (String!)

qualifyingDate (DateTime)

Example

{
  "gasNetworkOperatorNumber": "abc123",
  "electricityNetworkOperatorNumber": "abc123",
  "postcode": "abc123",
  "gasAnnualConsumption": 1,
  "electricityAnnualConsumption": 1,
  "electricityAnnualNighttimeConsumption": 1,
  "city": "abc123",
  "qualifyingDate": "2020-01-01T00:00:00.000Z",
  "elecProductCode": "abc123",
  "gasProductCode": "abc123",
  "affiliateSessionId": "abc123"
}

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

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

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

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

namespace (String!)

Namespace of the detail.

value (String)

Value of the detail.

Example

{
  "namespace": "abc123",
  "value": "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!)

iban (String!)

Example

{
  "accountHolder": "abc123",
  "iban": "abc123"
}

ElectricityFiltersInput

Filter measurements by electricity parameters.

Input fields

NameDescription

deviceId (String)

marketSupplyPointId (String)

readingDirection (ReadingDirectionType)

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

readingFrequencyType (ReadingFrequencyType)

readingQuality (ReadingQualityType)

registerId (String)

Example

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

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

Input fields

NameDescription

accountNumber (String!)

The Kraken account number.

bankDetails (BankDetailsInput)

Bank details for setting up a payment instruction as part of the enrollment.

instructionDetails (InstructionDetailsInput)

Details of an externally created payment instruction to be recorded in Kraken.

paymentSchedule (PaymentScheduleDetailsInput)

Details of the payment schedule(s) to be created as part of enrollment.

salesInfo (SalesInformationInput!)

Sales info for this enrollment.

Example

{
  "accountNumber": "abc123",
  "bankDetails": BankDetailsInput,
  "instructionDetails": InstructionDetailsInput,
  "paymentSchedule": PaymentScheduleDetailsInput,
  "salesInfo": SalesInformationInput
}

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

eligibility (String!)

The eligibility status of the customer.

email (String!)

Email address for the customer.

Example

{
  "email": "abc123",
  "eligibility": "abc123"
}

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

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

accountNumber (String!)

The account number.

billingAddress (AddressInputType)

The billing address.

billingAddressSameAsDeliveryAddress (Boolean)

Whether the billing address is the same as the delivery address.

electricityIban (String)

The IBAN for the electricity agreement.

electricityMeterNumber (String)

The electricity meter number.

firstDayOfSupply (Date!)

The first day of supply for the new Property.

gasIban (String)

The IBAN for the gas agreement.

gasMeterNumber (String)

The gas meter number.

lastDayOfSupply (Date!)

The last day of supply for the previous property.

newSupplyAddress (AddressInputType!)

The new supply address.

Example

{
  "accountNumber": "abc123",
  "lastDayOfSupply": "2020-01-01",
  "firstDayOfSupply": "2020-01-01",
  "newSupplyAddress": AddressInputType,
  "billingAddress": AddressInputType,
  "billingAddressSameAsDeliveryAddress": true,
  "electricityMeterNumber": "abc123",
  "gasMeterNumber": "abc123",
  "electricityIban": "abc123",
  "gasIban": "abc123"
}

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

Input fields

NameDescription

accountNumber (String!)

Identification of the account that requesting the product switch.

quotedProductId (ID!)

ID of the selected quoted product, obtain from quoting that supply point.

switchDate (Date!)

The date at which the product switch becomes effective.

userId (ID)

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

Example

{
  "accountNumber": "abc123",
  "quotedProductId": "abc123",
  "switchDate": "2020-01-01",
  "userId": "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.

s3Bucket (String)

The S3 bucket in which the original email is stored.

s3Key (String)

The S3 key of the original email.

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],
  "s3Bucket": "abc123",
  "s3Key": "abc123"
}

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

InstructionDetailsInput

Input type for instruction details that was created using the embedded process.

This means it was set up in the vendor system, and we only need to store a representation of the instruction in Kraken, but not make any calls to the vendor. This method of instruction creation must always be used for creating card instructions.

Input fields

NameDescription

instructionType (PaymentType!)

The type of the payment instruction.

validFrom (DateTime!)

The datetime from which the instruction is vaild.

vendorReference (String!)

The vendor's reference for this payment instruction.

Example

{
  "instructionType": "BPAY",
  "validFrom": "2020-01-01T00:00:00.000Z",
  "vendorReference": "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"
}

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

Input fields

NameDescription

accountNumber (String!)

The Kraken account number.

futureBillingAddress (RichAddressInput)

Future billing address.

marketData (LeaveSupplierMarketInputType)

requestedSupplyEndDate (Date!)

The requested last day of supply.

Example

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

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

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

PaymentScheduleDetailsInput

Input type for payment schedule details.

This enables us to collect information to create 4 different types of schedules during enrollment: - Payment on receipt of bill - Payment at a fixed day of the month once a receipt of bill has been issued - Payment when a ledger balance drops below a certain value - Payment at regular intervals for a fixed amount

This is intended to be morally equivalent to a "union" input type.

Input fields

NameDescription

balanceTriggered (BalanceTriggeredScheduleInput)

billTriggered (BillTriggeredScheduleInput)

regularTriggered (RegularTriggeredScheduleInput)

Example

{
  "regularTriggered": RegularTriggeredScheduleInput,
  "billTriggered": BillTriggeredScheduleInput,
  "balanceTriggered": BalanceTriggeredScheduleInput
}

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

Input fields

NameDescription

dayOfWeek (DayOfWeek!)

The day of the week.

max (Decimal!)

The maximum value.

min (Decimal)

The minimum value.

time (Time!)

Time of day this change should apply. Format: HH:MM.

Example

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

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
}

ProductSwitchInput

The input for confirming a product switch.

Input fields

NameDescription

quotedProductId (Int!)

ID of the quoted product to be switched to.

Example

{
  "quotedProductId": 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

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

QueryComplexityInputType

Information about the complexity of the query.

Input fields

NameDescription

operationName (String)

The operation name of the query to calculate complexity for if more than one is provided.

query (String!)

The query to calculate complexity for.

variables (JSONString)

Any variables to include for the query. Pagination variables should be included as they will affect the overall weight of the query.

Example

{
  "query": "abc123",
  "variables": {"key": "value"},
  "operationName": "abc123"
}

Input fields

NameDescription

quoteCode (String!)

Quote code.

recipient (Recipient!)

Recipient information.

Example

{
  "recipient": Recipient,
  "quoteCode": "abc123"
}

Input fields

NameDescription

accountNumber (String!)

The number of the account for which readings are submitted.

meterId (ID!)

The ID of the meter for which readings are submitted.

readingDate (Date!)

The date of the reading.

readings ([RegisterReadingInput]!)

A list of readings for the meter.

Example

{
  "accountNumber": "abc123",
  "readingDate": "2020-01-01",
  "readings": RegisterReadingInput,
  "meterId": "abc123"
}

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

Input fields

NameDescription

email (String)

Email address of the recipient.

familyName (String)

Family name of the recipient.

givenName (String)

Given name of the recipient.

mobile (String)

Mobile number of the recipient.

Example

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

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
}

RedeemReferralClaimCodeInput

Required payload to redeem the benefit for partner reward referral scheme

Input fields

NameDescription

accountNumber (String!)

The account number for the referred account.

code (String!)

Referral scheme claim code value.

Example

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

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

Input fields

NameDescription

registerObisCode (String!)

The OBIS code of the register.

value (Decimal!)

The value of the reading.

Example

{
  "value": 1.0,
  "registerObisCode": "abc123"
}

RegularTriggeredScheduleInput

A payment schedule which triggers a payment at regular intervals.

Input fields

NameDescription

frequency (ScheduleFrequencyEnum)

The based unit of frequency at which payments are to be taken.

frequencyMultiplier (Int)

The multiple of the frequency at which payment are taken; should be between 1 and 11.

paymentDay (Int)

The day of the month/week at which to take payment; ranges from 1 to 28 for 'Monthly'.

Example

{
  "paymentDay": 1,
  "frequency": "WEEKLY",
  "frequencyMultiplier": 1
}

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

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.

reason (String)

The reason for the repayment.

Example

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

Input fields

NameDescription

clientMutationId (String)

password (String!)

token (String!)

userId (String!)

Example

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

Input fields

NameDescription

newPassword (String!)

The new password.

token (String!)

The token from the presigned url.

userId (String!)

A base64 bytestring representing the user's unique id.

Example

{
  "newPassword": "abc123",
  "userId": "abc123",
  "token": "abc123"
}

RetentionQuoteInput

The arguments required for getting the offered market quote(s) for an account

Input fields

NameDescription

accountNumber (String!)

The account number.

supplyType (RetentionQuoteSupplyTypeChoices!)

The supply type either: 'ELECTRICITY' or 'GAS'

Example

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

Input fields

NameDescription

accountNumber (String!)

The account number.

agreementId (ID!)

The ID of the agreement to be revoked.

reason (String)

The reason for revoking the agreement.

Example

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

RevokeContractInput

The input for revoking a contract.

Input fields

NameDescription

accountNumber (String!)

The account number.

reason (String)

Cancellation reason.

supplyPointId (Int!)

The supply point id of the contract.

Example

{
  "supplyPointId": 1,
  "accountNumber": "abc123",
  "reason": "abc123"
}

RichAddressInput

A postal address.

This data model is based on the structure used by Google's libaddressinput library—so you can use it, or other libraries that use its data model and reference data, to accept input.

All fields can be blank, except for country which must always be supplied.

This type is the input equivalent of RichAddressType; all the fields here are semantically equivalent to fields there, except where documented.

Input fields

NameDescription

administrativeArea (String)

Top-level administrative subdivision, e.g. US state, AU state/territory, IT region, JP prefecture.

country (String)

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

deliveryPointIdentifier (String)

Identifier used by the local postal service for this address, e.g. AU DPID, GB postcode + Delivery Point Suffix, US Zip-9 + Delivery Point.

This is the value that gets encoded in the barcode printed on the envelope by large-volume bulk mail providers.

dependentLocality (String)

UK dependent localities, or neighbourhoods or boroughs in some other locations.

locality (String)

City or town portion of an address, e.g. US city, AU suburb/town, IT comune, UK post town.

name (String)

A personal name.

organization (String)

The name of a business or organisation.

postalCode (String)

Postal code (ZIP code in the US).

sortingCode (String)

Sorting code, e.g. FR CEDEX code. This field is not used in many countries.

streetAddress (String)

At most one of this field and structured_street_address can be supplied.

This is a divergence from RichAddressType.street_address, where the field is always supplied; if structured_street_address is present, it's generated from that.

structuredStreetAddress (GenericScalar)

At most one of this field and street_address can be supplied.

AU: Australia

The following keys may be present; all are optional. All keys have string values, and their meaning is the same as their aseXML counterparts. (Note that, unlike aseXML, all keys are provided at the top level, rather than being nested.)

  • flat_or_unit_type
  • flat_or_unit_number
  • floor_or_level_type
  • floor_or_level_number
  • building_or_property_name
  • location_descriptor
  • lot_number
  • house_number_1
  • house_number_suffix_1
  • house_number_2
  • house_number_suffix_2
  • street_name
  • street_type
  • street_suffix
  • postal_delivery_type
  • postal_delivery_number_prefix
  • postal_delivery_number_value
  • postal_delivery_number_suffix

JP: Japan

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

  • chome
  • banchi
  • go
  • edaban
  • kana_building_name
  • kanji_building_name
  • building_number
  • room_number
  • address_code
  • physical_location_identifier

Example

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

SalesInformationInput

Information about the sale to associate with the account.

Input fields

NameDescription

affiliateParams (String)

Affiliate params.

affiliateSubdomain (String)

Affiliate subdomain.

referralCode (String)

The referral code used by the customer when signing up.

salesChannel (String!)

Sales channel.

salesSubchannel (String)

Sales subchannel.

urn (String)

Unique reference number.

Example

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

Input fields

NameDescription

selectedOption (ID!)

The ID of the selected option from the list.

stepId (ID!)

The ID of the SmartFlex onboarding step to complete.

wizardId (ID!)

The ID of the SmartFlex onboarding wizard.

Example

{
  "wizardId": "abc123",
  "stepId": "abc123",
  "selectedOption": "abc123"
}

Input fields

NameDescription

selectedOption (ID!)

The ID of the selected option from the list.

stepId (ID!)

The ID of the SmartFlex onboarding step to complete.

wizardId (ID!)

The ID of the SmartFlex onboarding wizard.

Example

{
  "wizardId": "abc123",
  "stepId": "abc123",
  "selectedOption": "abc123"
}

Input fields

NameDescription

selectedOption (ID!)

The ID of the selected option from the list.

stepId (ID!)

The ID of the SmartFlex onboarding step to complete.

wizardId (ID!)

The ID of the SmartFlex onboarding wizard.

Example

{
  "wizardId": "abc123",
  "stepId": "abc123",
  "selectedOption": "abc123"
}

Input fields

NameDescription

quoteCode (String!)

Quote code.

selectedQuotedProductIds ([ID]!)

IDs of the quoted products to be selected.

Example

{
  "quoteCode": "abc123",
  "selectedQuotedProductIds": "abc123"
}

Input fields

NameDescription

selectedOption (ID!)

The ID of the selected option from the list.

stepId (ID!)

The ID of the SmartFlex onboarding step to complete.

wizardId (ID!)

The ID of the SmartFlex onboarding wizard.

Example

{
  "wizardId": "abc123",
  "stepId": "abc123",
  "selectedOption": "abc123"
}

Input fields

NameDescription

selectedOption (ID!)

The ID of the selected option from the list.

stepId (ID!)

The ID of the SmartFlex onboarding step to complete.

wizardId (ID!)

The ID of the SmartFlex onboarding wizard.

Example

{
  "wizardId": "abc123",
  "stepId": "abc123",
  "selectedOption": "abc123"
}

Input fields

NameDescription

selectedOption (ID!)

The ID of the selected option from the list.

stepId (ID!)

The ID of the SmartFlex onboarding step to complete.

wizardId (ID!)

The ID of the SmartFlex onboarding wizard.

Example

{
  "wizardId": "abc123",
  "stepId": "abc123",
  "selectedOption": "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

email (String!)

The email to share the quote with.

quoteCode (String!)

The quote to share.

Example

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

Input fields

NameDescription

action (SmartControlAction!)

The smart control action, i.e. suspend or unsuspend.

deviceId (ID!)

The ID of the device.

Example

{
  "deviceId": "abc123",
  "action": "SUSPEND"
}

Input fields

NameDescription

deviceId (ID!)

The ID of the device.

mode (PreferencesModeChoices!)

The mode of the schedule.

schedules ([PreferencesScheduleInput]!)

The schedule with the preference details.

unit (PreferencesUnitChoices!)

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

Example

{
  "deviceId": "abc123",
  "mode": "CHARGE",
  "unit": "CELSIUS",
  "schedules": PreferencesScheduleInput
}

SpecialCancelContractInput

The input for special cancellation of a contract.

Input fields

NameDescription

accountNumber (String!)

The account number.

lastDayOfSupply (Date!)

Requested last day of supply of the customer.

reason (SpecialCancellationReason!)

The special cancellation reason.

supplyPointId (Int!)

The supply point id of the contract.

Example

{
  "supplyPointId": 1,
  "accountNumber": "abc123",
  "lastDayOfSupply": "2020-01-01",
  "reason": "PRICE_CHANGE"
}

Input fields

NameDescription

accountNumber (String!)

The account to which the device should be registered.

propertyId (Int!)

The property where the device is located/charged.

Example

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

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

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
}

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

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": "DEFAULT_SUPPLY",
  "defaultAccountType": "BUSINESS",
  "canRegisterBusinessMeterPoints": true,
  "canRegisterPortfolioAccounts": true,
  "canRegisterCustomersWithoutEmailAddress": true,
  "skipMeterPointAddressValidation": true,
  "allowAlternativePaymentMethods": true,
  "canRenewTariffs": true,
  "canUseIvrSupportApi": true,
  "isFieldSalesOnlyProduct": true
}

Input fields

NameDescription

accountNumber (String!)

A code that uniquely identifies the account.

agreementId (ID!)

A code that uniquely identifies the agreement.

reason (String)

The reason for the change.

validFrom (Date!)

The start date of the agreement.

validTo (Date)

The end date of the agreement (exclusive). The agreement will end on midnight of this date, such that the previous day is the last day covered by this agreement.

Example

{
  "agreementId": "abc123",
  "accountNumber": "abc123",
  "validFrom": "2020-01-01",
  "validTo": "2020-01-01",
  "reason": "abc123"
}

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

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

paymentAmount (Int!)

supplyType (String!)

Example

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

Input fields

NameDescription

accountNumber (String!)

paymentDay (Int!)

supplyType (String!)

Example

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

Input fields

NameDescription

accountNumber (String!)

The account number.

clientParams (JSONString)

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

marketParams (JSONString)

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

purchaseId (ID!)

The purchase ID.

saleItems ([ProductToPurchaseInput]!)

Products being purchased.

Example

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

Input fields

NameDescription

dateOfBirth (Date)

details ([DetailsInputType])

User details.

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",
  "details": DetailsInputType
}

UtilityFiltersInput

Filter measurements by the given utility parameters.

Input fields

NameDescription

electricityFilters (ElectricityFiltersInput)

Example

{
  "electricityFilters": ElectricityFiltersInput
}

ValidateEmailInput

Input required to validate email address via Kickbox

Input fields

NameDescription

checkUniqueness (Boolean)

Check if an email is already in use.

email (String!)

The user's email address.

Example

{
  "email": "abc123",
  "checkUniqueness": true
}

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

accountNumber (String!)

The number of the account belonging to the user (e.g. A-12345678).

firstLineOfAddress (String!)

The first line of the user's address (this could be the energy supply property address or the billing address on the account).

fullName (String!)

The user's full name.

postcode (String!)

The user's postcode (this could be the postcode of the energy supply property address or of the billing address on the account).

Example

{
  "accountNumber": "abc123",
  "fullName": "abc123",
  "firstLineOfAddress": "abc123",
  "postcode": "abc123"
}

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
}

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