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.

  • API Site
  • 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": "UNKNOWN",
      "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 (ID!)

    ID of the accepted quote.

    Example

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

    Input fields

    NameDescription

    billingInformation (BillingInformationInputType!)

    The billing fields.

    customerDetails (CustomerDetailsInputType!)

    The personal information fields.

    existingAccountNumber (String)

    The existing account number, if the customer is already registered.

    paymentInformation (PaymentInformationInputType)

    The payment information.

    quoteCode (UUID!)

    The identifier of the quote we're accepting.

    requiresPostalComms (Boolean)

    Requires postal communications.

    salesInformation (SalesInformationInputType)

    The sales information.

    supplyPoints ([SupplyPointInputType]!)

    The list of supply points.

    Example

    {
      "quoteCode": "500c164d-38c7-4f74-9ac6-be210197e9e4",
      "paymentInformation": PaymentInformationInputType,
      "salesInformation": SalesInformationInputType,
      "customerDetails": CustomerDetailsInputType,
      "billingInformation": BillingInformationInputType,
      "supplyPoints": SupplyPointInputType,
      "existingAccountNumber": "abc123",
      "requiresPostalComms": true
    }

    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.

    Deprecated

    The 'ledgerId' field is deprecated.

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

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

    ledgerNumber (String)

    The ledger number for the account.

    Example

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

    billingAddressCity (String!)

    The customer's billing address city name.

    billingAddressNumStreet (String!)

    The customer's billing address (number + street).

    billingAddressPostcode (String!)

    The customer's billing address postal code.

    bypassWithdrawalPeriod (Boolean!)

    If true the customer can have a supply date at D+1 minimum. If false the withdrawal period will be active so the customer can have a supply date at D+14 minimum.

    dateOfBirth (Date!)

    The customer's date of birth.

    email (String!)

    The customer's email for account user creation.

    familyName (String!)

    The customer's family name.

    givenName (String!)

    The customer's given name.

    iban (String)

    The customer's iban.

    mobile (String!)

    The customer's mobile phone number.

    note (String)

    Additional information for ops users (client have additional questions, etc...).

    paymentDay (Int!)

    The preferred day of the month the customer wants to be charged.

    productCode (String!)

    The identifier of chosen product.

    pronouns (String)

    The customer's applicable pronouns if any.

    quoteCode (UUID!)

    The identifier of the quote we're accepting.

    requestedSupplyStartDate (Date)

    The date from which the client wants to switch provider. Minimum D+1 with a bypass of the withdrawal period, D+14 without a bypass of the withdrawal period.

    subscriptionType (SubscriptionType!)

    Subscription type the supply point is eligible for (resulting from previous eligibility check).

    supplyPointId (String!)

    The customer's supply point id.

    switchReadings (ReadingInputType)

    Readings supplied by the customer in case of non communicating supply_point.

    switchReadingsDate (Date)

    The date of the reading.

    title (String!)

    The title of civility of the customer ('M.' or 'Mme').

    Example

    {
      "quoteCode": "500c164d-38c7-4f74-9ac6-be210197e9e4",
      "productCode": "abc123",
      "supplyPointId": "abc123",
      "givenName": "abc123",
      "familyName": "abc123",
      "title": "abc123",
      "dateOfBirth": "2020-01-01",
      "pronouns": "abc123",
      "email": "abc123",
      "mobile": "abc123",
      "requestedSupplyStartDate": "2020-01-01",
      "billingAddressNumStreet": "abc123",
      "billingAddressPostcode": "abc123",
      "billingAddressCity": "abc123",
      "iban": "abc123",
      "paymentDay": 1,
      "bypassWithdrawalPeriod": true,
      "subscriptionType": "CDF",
      "note": "abc123",
      "switchReadings": ReadingInputType,
      "switchReadingsDate": "2020-01-01"
    }

    Input fields

    NameDescription

    enedisClientConsent (Boolean!)

    True if the client consented to allow Enedis to collect meter point data.

    subscriptionType (RequestedSubscriptionType!)

    Subscription type to request to Enedis.

    supplyPointId (String!)

    The customer's supply point id.

    Example

    {
      "supplyPointId": "abc123",
      "subscriptionType": "CDF",
      "enedisClientConsent": true
    }

    Input fields

    NameDescription

    annualConsumption (AnnualConsumptionType!)

    The forecast consumption for a year.

    heatingType (HeatingType)

    Type of heating.

    providerCalendarId (ProviderCalendarIdType)

    The provider calendar id to use for this quote (if not provided by Enedis).

    residenceType (ResidenceType)

    Type of residence.

    supplyPointId (String!)

    The customer's supply point id.

    Example

    {
      "supplyPointId": "abc123",
      "annualConsumption": AnnualConsumptionType,
      "residenceType": "PRIMARY",
      "heatingType": "POWER",
      "providerCalendarId": "BASE"
    }

    Input fields

    NameDescription

    allDay (Int!)

    All-day energy consumption (in kWh) accumulated over a year.

    Example

    {
      "allDay": 1
    }

    Input fields

    NameDescription

    allDay (Int!)

    The all day part of the reading (in kWh).

    Example

    {
      "allDay": 1
    }

    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

    BASE (Int)

    The BASE part of the forecast consumption (in kWh).

    HC (Int)

    The HC part of the forecast consumption (in kWh).

    HP (Int)

    The HP part of the forecast consumption (in kWh).

    Example

    {
      "BASE": 1,
      "HP": 1,
      "HC": 1
    }

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

    Input fields

    NameDescription

    targetBalance (Int)

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

    Example

    {
      "targetBalance": 1
    }

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

    Input fields

    NameDescription

    billingAddressCountryCode (String!)

    The customer's billing address country code.

    billingAddressLine1 (String!)

    The customer's billing address number and street.

    billingAddressLine2 (String)

    The customer's billing address line 2.

    billingAddressLine3 (String)

    The customer's billing address line 3.

    billingAddressLine4 (String!)

    TThe customer's billing address city.

    billingAddressLine5 (String)

    TThe customer's billing address line 5.

    billingAddressPostcode (String!)

    The customer's billing address postal code.

    billingFrequency (BillingFrequency)

    The billing frequency.

    billingName (String)

    The customer's billing name.

    Example

    {
      "billingAddressLine1": "abc123",
      "billingAddressLine2": "abc123",
      "billingAddressLine3": "abc123",
      "billingAddressLine4": "abc123",
      "billingAddressLine5": "abc123",
      "billingAddressPostcode": "abc123",
      "billingAddressCountryCode": "abc123",
      "billingName": "abc123",
      "billingFrequency": "MONTHLY"
    }

    Input fields

    NameDescription

    accountNumber (String)

    The account number of the item.

    callWindowEnd (DateTime)

    The end of the call window for the item.

    callWindowStart (DateTime)

    The start of the call window for the item.

    metadata (JSONString)

    The metadata of the item.

    phoneNumber (String)

    The phone number of the item.

    Example

    {
      "phoneNumber": "abc123",
      "callWindowStart": "2020-01-01T00:00:00.000Z",
      "callWindowEnd": "2020-01-01T00:00:00.000Z",
      "accountNumber": "abc123",
      "metadata": {"key": "value"}
    }

    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

    clientConsent (Boolean)

    True if the client consented to allow the DSO to collect meter point data.

    isClientAuthorizedToRequestData (Boolean)

    Is the client is authorized to request consumption data from the meter point?

    meterPoints ([MeterPointInputType]!)

    The list of meter points.

    Example

    {
      "meterPoints": MeterPointInputType,
      "clientConsent": true,
      "isClientAuthorizedToRequestData": true
    }

    Input fields

    NameDescription

    acceptedTAndC (Boolean!)

    True if the customer has accepted the terms and conditions.

    accountUserMetadata ([MetadataInput])

    Account user metadata.

    billingFrequency (BillingFrequency)

    The billing frequency.

    billingName (String)

    The customer's billing name (only required for direct debit).

    consentData (FraConsentDataInput)

    Consents for Distribution Network Operators.

    Deprecated

    The 'consentData' field is deprecated.

    Consents are now set per supply point ID. Please use 'consentDataPerSupplyPointId' instead.

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

    consentDataPerSupplyPointId ([IndustryConsentDataPerSupplyPointInput!])

    Consents per supply point for Distribution Network Operators.

    iban (String)

    The IBAN number.

    paymentDay (Int)

    The preferred day of the month the customer wants the payment to occur (only required for direct debit).

    preferences (UpdateAccountUserCommsPreferencesInput!)

    Comms preferences.

    quoteCode (UUID!)

    The code for the quote to be checked out.

    requiresPostalComms (Boolean)

    Requires postal communications.

    scheduleType (ScheduleType)

    The payment method for the schedule.

    Example

    {
      "quoteCode": "500c164d-38c7-4f74-9ac6-be210197e9e4",
      "iban": "abc123",
      "scheduleType": "BACS_TRANSFER",
      "billingName": "abc123",
      "paymentDay": 1,
      "acceptedTAndC": true,
      "preferences": UpdateAccountUserCommsPreferencesInput,
      "consentData": FraConsentDataInput,
      "consentDataPerSupplyPointId": IndustryConsentDataPerSupplyPointInput,
      "billingFrequency": "MONTHLY",
      "requiresPostalComms": true,
      "accountUserMetadata": MetadataInput
    }

    Input fields

    NameDescription

    accountNumber (String!)

    The account number.

    agency (String!)

    The DCA agency owning the proceeding.

    campaign (String)

    The campaign for the proceeding.

    notifyDca (Boolean)

    Whether to send a notification to the DCA.

    stopReason (String!)

    The reason for stopping.

    stoppedDate (Date!)

    The date where dca proceeding stopped.

    Example

    {
      "accountNumber": "abc123",
      "stopReason": "abc123",
      "stoppedDate": "2020-01-01",
      "notifyDca": true,
      "agency": "abc123",
      "campaign": "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.

    Deprecated

    The 'ledgerId' field is deprecated.

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

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

    ledgerNumber (String)

    The number 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",
      "ledgerNumber": "abc123"
    }

    Input fields

    NameDescription

    accountNumber (String!)

    The account number.

    agency (String!)

    The agency.

    amount (Int)

    Amount of debt.

    campaign (String!)

    The campaign.

    dateStarted (String!)

    The date where commencement started.

    isWhiteLabel (Boolean!)

    If the commencement is white label.

    notes (String)

    Notes for the commencement.

    Example

    {
      "accountNumber": "abc123",
      "agency": "abc123",
      "campaign": "abc123",
      "isWhiteLabel": true,
      "dateStarted": "abc123",
      "amount": 1,
      "notes": "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

    code (String!)

    The code of the consent type.

    value (ConsentValue!)

    The value to update the consent to.

    Example

    {
      "code": "abc123",
      "value": "ACCEPTED"
    }

    Input fields

    NameDescription

    consentTypeCode (String!)

    The code of the consent type.

    value (ConsentValue)

    Example

    {
      "consentTypeCode": "abc123",
      "value": "ACCEPTED"
    }

    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": "UNKNOWN",
      "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.
    - Scheduled for removal on or after 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.
    - Scheduled for removal on or after 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.
    - Scheduled for removal on or after 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').

    contactEmail (String)

    The primary contact email for the organisation.

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

    Input fields

    NameDescription

    campaignId (String!)

    The campaign ID.

    campaignItems ([CampaignItemInput]!)

    The items to add.

    Example

    {
      "campaignId": "abc123",
      "campaignItems": CampaignItemInput
    }

    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

    sourceLedgerNumber (String!)

    Source ledger number.

    targetLedgerNumber (String!)

    Target ledger number.

    Example

    {
      "sourceLedgerNumber": "abc123",
      "targetLedgerNumber": "abc123"
    }

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

    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.

    content (String!)

    Reminder content.

    dueAt (DateTime!)

    When the reminder is due.

    reminderTypeName (String!)

    The reminder type name.

    Example

    {
      "accountNumber": "abc123",
      "reminderTypeName": "abc123",
      "content": "abc123",
      "dueAt": "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

    accountNumber (String!)

    Account number of the request.

    paymentReason (PaymentReason)

    Payment reason of the request. Preferably left empty to let Kraken choose one.

    requestedAmount (Int!)

    Amount of the request (in cents).

    sourceLedgerId (ID!)

    Id of the source ledger concerned (ex: pot ledger).

    targetLedgerId (ID!)

    Id of the target ledger concerned (ex: charging ledger).

    Example

    {
      "accountNumber": "abc123",
      "sourceLedgerId": "abc123",
      "targetLedgerId": "abc123",
      "requestedAmount": 1,
      "paymentReason": "ACCOUNT_CHARGE_PAYMENT"
    }

    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

    dateOfBirth (Date!)

    The customer's date of birth.

    email (String!)

    The customer's email for account retrieval.

    familyName (String!)

    The customer's family name.

    givenName (String!)

    The customer's given name.

    mobile (String!)

    The customer's mobile phone number.

    title (String!)

    The title of civility of the customer ('M.' or 'Mme').

    Example

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

    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

    allDay (AllDayAnnualConsumptionInput)

    All-day energy consumption accumulated over a year.

    peakOffPeak (PeakOffPeakAnnualConsumptionInput)

    Energy consumption during peak/off-peak hours accumulated over a year.


    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)

    The frequency of the reading.

    readingQuality (ReadingQualityType)

    registerId (String)

    Example

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

    Input fields

    NameDescription

    agreementId (Int)

    ID of the agreement for which the quote is requested.

    providedAnnualConsumption (ElectricityAnnualConsumptionInput)

    The annual consumption to base the quote upon.

    providerCalendar (ElectricityProviderCalendarType)

    The provider calendar to use for this quote (if not provided by the DSO).

    subscribedMaxPower (Int)

    Request a specific subscribed max power during subscription.

    supplyPointId (ID!)

    The customer's supply point id.

    Example

    {
      "supplyPointId": "abc123",
      "providedAnnualConsumption": ElectricityAnnualConsumptionInput,
      "providerCalendar": "ALL_DAY",
      "agreementId": 1,
      "subscribedMaxPower": 1
    }

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

    FraConsentDataInput

    Update consents for French Distribution Network Operators.

    Input fields

    NameDescription

    enedisCurves (Boolean)

    Update the consent to fetch enedis curves.

    enedisIndex (Boolean)

    Update the consent to fetch enedis index.

    Example

    {
      "enedisIndex": true,
      "enedisCurves": true
    }

    Input fields

    NameDescription

    allDay (AllDayAnnualConsumptionInput!)

    All-day energy consumption accumulated over a year.

    Example


    GasFiltersInput

    Filter measurements by gas parameters.

    Input fields

    NameDescription

    deviceId (String)

    marketSupplyPointId (String)

    readingFrequencyType (ReadingFrequencyType)

    The frequency of the reading.

    registerId (String)

    Example

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

    Input fields

    NameDescription

    providedAnnualConsumption (GasAnnualConsumptionInput)

    The annual consumption to base the quote upon.

    supplyPointId (ID!)

    The customer's supply point id.

    Example

    {
      "supplyPointId": "abc123",
      "providedAnnualConsumption": GasAnnualConsumptionInput
    }

    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)

    The ledger ID.

    Deprecated

    The 'ledgerId' field is deprecated.

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

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

    ledgerNumber (String)

    WARNING: Will be mandatory in future versions

    The number of the ledger.

    Example

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

    GetEmbeddedSecretForNewPaymentInstructionWithoutAccountInput

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

    Input fields

    NameDescription

    instructionType (PaymentType!)

    The type of the new payment instruction.

    Example

    {
      "instructionType": "BPAY"
    }

    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

    leadId (ID)

    The identifier the lead.

    Example

    {
      "leadId": "abc123"
    }

    IndustryConsentDataInput

    Customer consents for the French industry.

    Input fields

    NameDescription

    collectDailyConsumptionData (Boolean)

    Consent to collect daily consumption data from the industry.

    collectHalfHourlyConsumptionData (Boolean)

    Consent to collect half-hourly consumption data from the industry.

    Example

    {
      "collectDailyConsumptionData": true,
      "collectHalfHourlyConsumptionData": true
    }

    IndustryConsentDataPerSupplyPointInput

    Industry consents to be set on a particular supply point.

    Input fields

    NameDescription

    consentData (IndustryConsentDataInput!)

    New consent data.

    supplyPointId (ID!)

    Supply point id to be updated.

    Example

    {
      "supplyPointId": "abc123",
      "consentData": IndustryConsentDataInput
    }

    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 number (or ledger id, please see deprecated fields).

    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.

    Deprecated

    The 'ledgerId' field is deprecated.

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

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

    ledgerNumber (String)

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

    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.

    suppressCommunications (Boolean)

    Suppress Product Switch communications.

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

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

    Deprecated

    The 'ledgerId' field is deprecated.

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

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

    ledgerNumber (String)

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

    Example

    {
      "accountNumber": "abc123",
      "amount": 1,
      "description": "abc123",
      "collectionMethod": "CARD",
      "ledgerId": "abc123",
      "ledgerNumber": "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.

    vendorName (Vendor!)

    The name of the vendor the payment instruction was set up with.

    vendorReference (String!)

    The vendor's reference for this payment instruction.

    Example

    {
      "vendorName": "GOCARDLESS",
      "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"
    }

    Input fields

    NameDescription

    affiliateSessionId (String!)

    The session id of the affiliate.

    memberNumber (String!)

    UFC member number.

    Example

    {
      "affiliateSessionId": "abc123",
      "memberNumber": "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 account number of the join supplier process (e.g. A-12345678).

    joinSupplierProcessId (Int!)

    The JoinSupplierProcess ID.

    Example

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

    Input fields

    NameDescription

    accountNumber (String!)

    The Kraken account number.

    declaredReason (LeaveSupplierReason!)

    The declared reason for the request.

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

    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 or email for the Account User 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

    journeyType (JourneyType!)

    The type of journey the client is in, either commissioning or change of supplier.

    marketName (String!)

    The market name.

    meterPointId (String!)

    The customer's meter point id.

    requestedCustomerCategory (CustomerCategoryType)

    The requested account type.

    Example

    {
      "meterPointId": "abc123",
      "marketName": "abc123",
      "journeyType": "COMMISSIONING",
      "requestedCustomerCategory": "DOMESTIC"
    }

    Input fields

    NameDescription

    addressDetails (String)

    The customer's address details; e.g. the building floor.

    city (String!)

    The customer's address city.

    finalUserName (String)

    The actual or previous customer's name.

    inseeCode (String)

    The insee code of the city.

    marketName (String!)

    The market name.

    outOfSupplierPerimeter (Boolean)

    True if the address is out of the supplier perimeter.

    postcode (String!)

    The customer's address postcode.

    serialNumber (String)

    The customer's meter point serial number.

    streetName (String!)

    The customer's address street name.

    streetNumber (String)

    The customer's address street number.

    Example

    {
      "marketName": "abc123",
      "streetNumber": "abc123",
      "streetName": "abc123",
      "postcode": "abc123",
      "city": "abc123",
      "addressDetails": "abc123",
      "serialNumber": "abc123",
      "finalUserName": "abc123",
      "inseeCode": "abc123",
      "outOfSupplierPerimeter": true
    }

    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

    email (String!)

    The email address to send the summary to.

    emailConsent (Boolean!)

    Customer consents to receive emails.

    token (UUID!)

    Identifier of the analysis.

    Example

    {
      "token": "500c164d-38c7-4f74-9ac6-be210197e9e4",
      "email": "abc123",
      "emailConsent": true
    }

    Input fields

    NameDescription

    accountNumber (String!)

    Account number for which to pause the dunning process.

    note (String)

    An optional note for the pause.

    pathName (String!)

    The dunning process path name to pause.

    startDate (Date!)

    The date from which the pause to take effect.

    stopDate (Date!)

    The date at which the pause should stop.

    Example

    {
      "accountNumber": "abc123",
      "pathName": "abc123",
      "startDate": "2020-01-01",
      "stopDate": "2020-01-01",
      "note": "abc123"
    }

    Input fields

    NameDescription

    iban (String!)

    The IBAN number.

    paymentDay (Int!)

    The preferred day of the month the customer wants the payment to occur.

    Example

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

    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)

    billTriggeredBalanceTarget (BillTriggeredBalanceTargetScheduleInput)

    regularTriggered (RegularTriggeredScheduleInput)

    Example

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

    Input fields

    NameDescription

    offPeak (Int!)

    Energy consumption (in kWh) during off-peak hours accumulated over a year.

    peak (Int!)

    Energy consumption (in kWh) during peak hours accumulated over a year.

    Example

    {
      "peak": 1,
      "offPeak": 1
    }

    Input fields

    NameDescription

    offPeak (Int!)

    The off peak part of the reading (in kWh).

    peak (Int!)

    The peak part of the reading (in kWh).

    Example

    {
      "peak": 1,
      "offPeak": 1
    }

    PossibleErrorsInputType

    Information about the query/mutation for which one wants to know the possible errors.

    Input fields

    NameDescription

    authErrors (Boolean)

    Whether to include possible authentication errors.

    name (String!)

    Name of the query/mutation for which to get the possible errors.

    type (query_type!)

    Type of the query (query or mutation).

    Example

    {
      "name": "abc123",
      "type": "query",
      "authErrors": true
    }

    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.

    Deprecated

    The 'ledgerId' field is deprecated.

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

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

    ledgerNumber (String)

    The number 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",
      "ledgerNumber": "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

    PCEId (String)

    PCE ID of the gas meter point.

    PRMId (String)

    PRM ID of the electricity meter point.

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

    Customer details required to make a French account.

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

    Input fields

    NameDescription

    numberOfUnits (Int!)

    Number of units.

    pricePerUnit (Int)

    Price per unit in smallest sub-unit of the currency. Only used if the product accepts arbitrary prices.

    productCode (String!)

    Products code to purchase.

    Example

    {
      "productCode": "abc123",
      "numberOfUnits": 1,
      "pricePerUnit": 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 (ID!)

    ID of the product to quote.

    Example

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

    accountNumber (String)

    Account for which the quote was created.

    quoteCode (String!)

    Quote code.

    recipient (Recipient!)

    Recipient information.

    Example

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

    Input fields

    NameDescription

    allDay (Int)

    The BASE part of the reading (in kWh).

    offPeak (Int)

    The HC part of the reading (in kWh).

    peak (Int)

    The HP part of the reading (in kWh).

    Example

    {
      "allDay": 1,
      "peak": 1,
      "offPeak": 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"
    }

    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.

    expiresAt (DateTime)

    The time at which the push notification binding expires.

    token (String!)

    Device push notification token.

    Example

    {
      "token": "abc123",
      "bundleId": "abc123",
      "expiresAt": "2020-01-01T00:00:00.000Z"
    }

    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
    }

    Input fields

    NameDescription

    accountNumber (String!)

    The account number.

    campaignName (String!)

    The name of the campaign to be removed.

    Example

    {
      "accountNumber": "abc123",
      "campaignName": "abc123"
    }

    Input fields

    NameDescription

    campaignId (String!)

    The campaign ID.

    campaignItemIds ([String]!)

    The IDs of the items to remove.

    Example

    {
      "campaignId": "abc123",
      "campaignItemIds": "abc123"
    }

    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.

    billingDocumentId (ID!)

    The ID of the billing document to request a printed bill for.

    Example

    {
      "billingDocumentId": "abc123",
      "accountNumber": "abc123"
    }

    Input fields

    NameDescription

    affiliateSessionId (ID)

    The session ID of the affiliate.

    audioRecordingId (UUID)

    The ID of the audio recording.

    electricityQuotes ([ElectricityQuoteInput!])

    List of electricity quotes to request.

    gasQuotes ([GasQuoteInput!])

    List of gas quotes to request.

    includeServices (Boolean)

    Whether the customer is interested in being quoted for available services.

    pmaxAnalysisToken (UUID)

    PMAX token if user come from an analysis.

    propertyHeatingKind (HeatingKind)

    Heating kind in use in the property.

    Example

    {
      "affiliateSessionId": "abc123",
      "audioRecordingId": "500c164d-38c7-4f74-9ac6-be210197e9e4",
      "electricityQuotes": ElectricityQuoteInput,
      "gasQuotes": GasQuoteInput,
      "includeServices": true,
      "propertyHeatingKind": "ELECTRIC_HEATING",
      "pmaxAnalysisToken": "500c164d-38c7-4f74-9ac6-be210197e9e4"
    }

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

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

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

    Input fields

    NameDescription

    currentOccupierConsent (Boolean!)

    Customer certifies to be the current occupant of the property to which the PRM is attached.

    firstName (String!)

    The first name of the customer.

    industryConsent (Boolean!)

    Customer consents for 'ConsulterPoint' + 'ConsulterMesuresDetaillees'.

    lastName (String!)

    The last name of the customer.

    meterPointId (String!)

    The prm id.

    productCode (String)

    Product on which analysis is based for profits computation.

    Example

    {
      "meterPointId": "abc123",
      "firstName": "abc123",
      "lastName": "abc123",
      "industryConsent": true,
      "currentOccupierConsent": true,
      "productCode": "abc123"
    }

    SalesInformationInput

    Information about the sale to associate with the account.

    Input fields

    NameDescription

    affiliateSessionId (String)

    Optional ID of the affiliate session.

    referralCode (String)

    The referral code used by the customer when signing up.

    salesChannel (String)

    Sales channel.

    Deprecated

    The 'salesChannel' field is deprecated.

    Please use affiliateSessionId to provide custom sales info, or log in with the correct Organisation.

    - Marked as deprecated on 2024-10-17.
    - Scheduled for removal on or after 2024-12-01.

    salesSubchannel (String)

    Sales subchannel.

    Deprecated

    The 'salesSubchannel' field is deprecated.

    Please use affiliateSessionId to provide custom sales info, or log in with the correct Organisation.

    - Marked as deprecated on 2024-10-17.
    - Scheduled for removal on or after 2024-12-01.

    urn (String)

    Unique reference number.

    Example

    {
      "affiliateSessionId": "abc123",
      "salesChannel": "abc123",
      "salesSubchannel": "abc123",
      "urn": "abc123",
      "referralCode": "abc123"
    }

    Input fields

    NameDescription

    affiliateSessionId (ID)

    The session id of the affiliate.

    referralCode (String)

    The referral code used by the customer.

    salesChannel (SalesChannelChoices)

    The sales channel for the activation.

    seoReference (SeoReferenceType)

    The customer traffic origin.

    Example

    {
      "salesChannel": "DIRECT",
      "affiliateSessionId": "abc123",
      "seoReference": "NATURAL",
      "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"
    }

    SelfReadingInputType

    Self reading input

    Input fields

    NameDescription

    agreementId (Int!)

    The agreement's id.

    readingDate (Date)

    The date of the reading.

    readings (ReadingInputType!)

    Self readings supplied by the customer.

    Example

    {
      "agreementId": 1,
      "readingDate": "2020-01-01",
      "readings": ReadingInputType
    }

    Input fields

    NameDescription

    agreementId (Int!)

    Activation process' agreement id.

    readingDate (Date)

    The date of the reading.

    switchReadings (ReadingInputType!)

    The value of the meter readings.

    Example

    {
      "agreementId": 1,
      "switchReadings": ReadingInputType,
      "readingDate": "2020-01-01"
    }

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

    The number of the account.

    bankDetails (BankDetailsInput!)

    The details with which to set up the instruction (these will be sent to the vendor).

    ledgerId (ID)

    The id of the ledger on which the instruction should be created (or "main").

    Deprecated

    The 'ledgerId' field is deprecated.

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

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

    ledgerNumber (String)

    The number of the ledger on which the instruction should be created.

    validFrom (DateTime!)

    The date-time that the instruction is valid from.

    Example

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

    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)

    The ID of the ledger to which the instructions will be linked.

    Deprecated

    The 'ledgerId' field is deprecated.

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

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

    ledgerNumber (String)

    WARNING: Will be mandatory in future versions

    The number of the ledger 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",
      "ledgerNumber": "abc123"
    }

    Input fields

    NameDescription

    bypassWithdrawalPeriod (Boolean!)

    The customer doesn't want to wait for their withdrawal period.

    journeyType (JourneyType!)

    The type of journey the client is in, either commissioning or change of supplier.

    productCode (String!)

    The identifier of chosen product.

    propertyId (Int)

    The property to link the supply point to.

    requestedSupplyStartDate (Date!)

    The date from which the client wants to switch provider. Minimum D+1 with a bypass of the withdrawal period, D+14 without a bypass of the withdrawal period. Maximum D+40.

    supplyPointId (ID!)

    The customer's Kraken supply point id.

    switchReadings (SwitchReadingInputType)

    Readings supplied by the customer in case of non communicating supply point.

    switchReadingsDate (Date)

    The date of the reading.

    useEstimatedSwitchReadings (Boolean)

    True if the customer agrees to use estimated switch readings.

    Example

    {
      "supplyPointId": "abc123",
      "journeyType": "COMMISSIONING",
      "requestedSupplyStartDate": "2020-01-01",
      "switchReadings": SwitchReadingInputType,
      "switchReadingsDate": "2020-01-01",
      "useEstimatedSwitchReadings": true,
      "productCode": "abc123",
      "bypassWithdrawalPeriod": true,
      "propertyId": 1
    }

    SwitchAccountToVariablePaymentScheduleInput

    Input type for switching an account to a variable payment schedule. Requires an account_number and ledger_id 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.

    note (String)

    A note to be added to the payment schedule to explain the change.

    targetChangeDate (Date)

    The date from which the variable payment schedule should start. Defaults to today.

    Example

    {
      "accountNumber": "abc123",
      "ledgerNumber": "abc123",
      "targetChangeDate": "2020-01-01",
      "note": "abc123"
    }

    Input fields

    NameDescription

    accountNumber (String!)

    The account requesting the product switch.

    accountUserMetadata ([MetadataInput])

    Account user metadata.

    billingFrequency (BillingFrequency)

    The new billing frequency if it changes.

    paymentDay (Int)

    The preferred day of the month the customer wants to be charged.

    productCode (String!)

    The identifier of chosen product.

    quoteCode (UUID!)

    Quote identifier.

    switchDate (Date)

    The date where the switch takes place.

    Example

    {
      "accountNumber": "abc123",
      "quoteCode": "500c164d-38c7-4f74-9ac6-be210197e9e4",
      "productCode": "abc123",
      "switchDate": "2020-01-01",
      "billingFrequency": "MONTHLY",
      "paymentDay": 1,
      "accountUserMetadata": MetadataInput
    }

    Input fields

    NameDescription

    allDay (AllDaySwitchReadingsInputType)

    The all day part of the reading (in kWh).

    peakOffPeak (PeakOffPeakSwitchReadingsInputType)

    The peak and off peak part of the reading, only for electricity supply points (in kWh).


    Input fields

    NameDescription

    activeAt (DateTime)

    Datetime when the credit transfer permission is valid.

    sourceLedgerNumber (String!)

    Source ledger number of the credit transfer permission.

    targetLedgerNumber (String!)

    Target ledger number of the credit transfer permission.

    Example

    {
      "sourceLedgerNumber": "abc123",
      "targetLedgerNumber": "abc123",
      "activeAt": "2020-01-01T00:00:00.000Z"
    }

    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": "UNKNOWN",
      "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').

    contactEmail (String)

    The primary contact email for the organisation, used to send notifications about API usage such as authentication and permissions.

    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",
      "contactEmail": "abc123",
      "salesChannel": "DIRECT",
      "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 or ledger_number, 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.

    Deprecated

    The 'ledgerId' field is deprecated.

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

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

    ledgerNumber (String)

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

    paymentAmount (Int!)

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

    Example

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

    Input fields

    NameDescription

    externalReference (String)

    The reference code for the active flow.

    number (String!)

    The Collection Process Record Number.

    Example

    {
      "number": "abc123",
      "externalReference": "abc123"
    }

    Input fields

    NameDescription

    completionDetails (String)

    The Completion details for the Collection Process.

    completionReason (CollectionProcessRecordCompletionTypeChoices)

    The Completion reason for the Collection Process.

    number (String!)

    The Collection Process Record Number.

    Example

    {
      "number": "abc123",
      "completionReason": "ENDED",
      "completionDetails": "abc123"
    }

    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

    items ([_UpdateExtraDetailsItem])

    The keys and values to be updated.

    leadId (ID)

    The identifier the lead to update.

    Example

    {
      "leadId": "abc123",
      "items": _UpdateExtraDetailsItem
    }

    Input fields

    NameDescription

    latestAction (String)

    The latest action that was performed.

    leadId (ID)

    The identifier the lead to update.

    stage (String)

    The stage that the lead should be updated to.

    Example

    {
      "leadId": "abc123",
      "stage": "abc123",
      "latestAction": "abc123"
    }

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

    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
    }

    Input fields

    NameDescription

    emailAddress (String!)

    The email address to check.

    quoteCode (UUID!)

    Active quote on checkout process.

    Example

    {
      "emailAddress": "abc123",
      "quoteCode": "500c164d-38c7-4f74-9ac6-be210197e9e4"
    }

    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

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

    Account number for which to withdraw the dunning process.

    note (String)

    An optional note for the withdraw.

    pathName (String!)

    The dunning process path name to withdraw.

    Example

    {
      "accountNumber": "abc123",
      "pathName": "abc123",
      "note": "abc123"
    }

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

    Input fields

    NameDescription

    key (String)

    The key of the extra detail item to be added or modified.

    value (String)

    The value to of the extra detail item to be added or modified.

    Example

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

  • Authentication Server
  • Input fields

    NameDescription

    mfaMethod (MFAMethodChoices!)

    MFA enrolment method.

    Example

    {
      "mfaMethod": "EMAIL"
    }

    Input fields

    NameDescription

    mfaMethod (MFAMethodChoices!)

    MFA method.

    Example

    {
      "mfaMethod": "EMAIL"
    }

    Input fields

    NameDescription

    mfaMethod (MFAMethodChoices!)

    MFA method.

    token (String!)

    Token sent to the user via the MFA method.

    Example

    {
      "mfaMethod": "EMAIL",
      "token": "abc123"
    }