Skip to main content

Queries

In this section

About Queries

Every GraphQL schema has a root type for both queries and mutations. The query type defines GraphQL operations that retrieve data from the server.

API Site

account

Type:AccountType

URL:https://api.st.kraken.tech/v1/graphql/

Get details about an account.

The possible errors that can be raised are:

  • KT-CT-4177: Unauthorized.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

accountNumber (String!)

Query

query Account($accountNumber: String!) {
  account(accountNumber: $accountNumber) {
    id
    number
    status
    paymentSchedules {
      ...PaymentScheduleConnectionTypeConnectionFragment
    }
    users {
      ...AccountUserTypeFragment
    }
    complaints {
      ...ComplaintConnectionTypeConnectionFragment
    }
    brand
    balance
    overdueBalance
    urn
    billingName
    billingSubName
    billingEmail
    billingAddress
    billingAddressLine1
    billingAddressLine2
    billingAddressLine3
    billingAddressLine4
    billingAddressLine5
    billingAddressPostcode
    billingCountryCode
    billingDeliveryPointIdentifier
    splitBillingAddress
    address {
      ...RichAddressTypeFragment
    }
    portfolio {
      ...PortfolioTypeFragment
    }
    ledgers {
      ...LedgerTypeFragment
    }
    metadata {
      ...MetadataFragment
    }
    canRequestRefund
    requestRefundEligibility {
      ...RequestRefundEligibilityTypeFragment
    }
    payments {
      ...AccountPaymentConnectionTypeConnectionFragment
    }
    repayments {
      ...AccountRepaymentConnectionTypeConnectionFragment
    }
    paymentPlans {
      ...PaymentPlanConnectionTypeConnectionFragment
    }
    paymentForecast {
      ...PaymentForecastTypeFragment
    }
    paginatedPaymentForecast {
      ...PaymentForecastConnectionTypeConnectionFragment
    }
    referrals {
      ...ReferralConnectionTypeConnectionFragment
    }
    referralsCreated
    rewards {
      ...RewardTypeFragment
    }
    activeReferralSchemes {
      ...ReferralSchemeTypesFragment
    }
    transactions {
      ...TransactionConnectionTypeConnectionFragment
    }
    provisionalTransactions {
      ...ProvisionalTransactionConnectionTypeConnectionFragment
    }
    annualStatements {
      ...AnnualStatementConnectionTypeConnectionFragment
    }
    bills {
      ...BillConnectionTypeConnectionFragment
    }
    billingOptions {
      ...BillingOptionsTypeFragment
    }
    bill {
      ...BillInterfaceFragment
    }
    directDebitInstructions {
      ...DirectDebitInstructionConnectionTypeConnectionFragment
    }
    paymentMethods {
      ...PaymentInstructionConnectionTypeConnectionFragment
    }
    events {
      ...AccountEventConnectionTypeConnectionFragment
    }
    applications {
      ...AccountApplicationConnectionTypeConnectionFragment
    }
    accountType
    businessType
    business {
      ...BusinessTypeFragment
    }
    commsDeliveryPreference
    communicationDeliveryPreference
    documentAccessibility
    references {
      ...AccountReferenceTypeFragment
    }
    fileAttachments {
      ...AccountFileAttachmentFragment
    }
    paginatedFileAttachments {
      ...AccountFileAttachmentConnectionTypeConnectionFragment
    }
    maximumRefund {
      ...MaximumRefundTypeFragment
    }
    campaigns {
      ...AccountCampaignTypeFragment
    }
    isInHardship
    activeHardshipAgreements {
      ...HardshipAgreementTypeFragment
    }
    notes {
      ...AccountNoteTypeFragment
    }
    contributionAgreements {
      ...ContributionAgreementTypeFragment
    }
    assistanceAgreements {
      ...AssistanceAgreementTypeFragment
    }
    debtCollectionProceedings {
      ...DebtCollectionProceedingTypeFragment
    }
    createdAt
    preferredLanguageForComms
    consents {
      ...ConsentTypeFragment
    }
    reminders {
      ...AccountReminderConnectionTypeConnectionFragment
    }
    customerAssets {
      ...CustomerAssetTypeFragment
    }
    properties {
      ...PropertyTypeFragment
    }
    marketSupplyAgreements {
      ...AgreementConnectionFragment
    }
    canModifyPayments {
      ...CanModifyPaymentsTypeFragment
    }
    agreements {
      ...AgreementConnectionTypeConnectionFragment
    }
    isLatestPaymentScheduleFromAnnualBilling
    isMeasured
    hasActiveDunningProcess
    hasActiveDebtCollectionProceeding
    hasActiveSocialAgreement
    hasActiveWatersureAgreement
    hasActiveAssessedAgreement
    hasActiveFixedDiscountAgreement
    hasCompletedUpcomingAnnualBilling
    potentialSwitchToMeasured {
      ...PotentialTariffSwitchTypeFragment
    }
    eligibleRewardJourneys
    isOnPccDunningJourney
    isOnSteppedTariff
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "account": {
      "id": "abc123",
      "number": "abc123",
      "status": "PENDING",
      "paymentSchedules": PaymentScheduleConnectionTypeConnection,
      "users": AccountUserType,
      "complaints": ComplaintConnectionTypeConnection,
      "brand": "abc123",
      "balance": 1,
      "overdueBalance": 1,
      "urn": "abc123",
      "billingName": "abc123",
      "billingSubName": "abc123",
      "billingEmail": "abc123",
      "billingAddress": "abc123",
      "billingAddressLine1": "abc123",
      "billingAddressLine2": "abc123",
      "billingAddressLine3": "abc123",
      "billingAddressLine4": "abc123",
      "billingAddressLine5": "abc123",
      "billingAddressPostcode": "abc123",
      "billingCountryCode": "abc123",
      "billingDeliveryPointIdentifier": "abc123",
      "splitBillingAddress": ["abc123"],
      "address": RichAddressType,
      "portfolio": PortfolioType,
      "ledgers": [LedgerType],
      "metadata": [Metadata],
      "canRequestRefund": true,
      "requestRefundEligibility": RequestRefundEligibilityType,
      "payments": AccountPaymentConnectionTypeConnection,
      "repayments": AccountRepaymentConnectionTypeConnection,
      "paymentPlans": PaymentPlanConnectionTypeConnection,
      "paymentForecast": [PaymentForecastType],
      "paginatedPaymentForecast": PaymentForecastConnectionTypeConnection,
      "referrals": ReferralConnectionTypeConnection,
      "referralsCreated": 1,
      "rewards": [RewardType],
      "activeReferralSchemes": ReferralSchemeTypes,
      "transactions": TransactionConnectionTypeConnection,
      "provisionalTransactions": ProvisionalTransactionConnectionTypeConnection,
      "annualStatements": AnnualStatementConnectionTypeConnection,
      "bills": BillConnectionTypeConnection,
      "billingOptions": BillingOptionsType,
      "bill": BillInterface,
      "directDebitInstructions": DirectDebitInstructionConnectionTypeConnection,
      "paymentMethods": PaymentInstructionConnectionTypeConnection,
      "events": AccountEventConnectionTypeConnection,
      "applications": AccountApplicationConnectionTypeConnection,
      "accountType": "BUSINESS",
      "businessType": "SOLE_TRADER",
      "business": BusinessType,
      "commsDeliveryPreference": "EMAIL",
      "communicationDeliveryPreference": "abc123",
      "documentAccessibility": "LARGE_PRINT",
      "references": [AccountReferenceType],
      "fileAttachments": [AccountFileAttachment],
      "paginatedFileAttachments": AccountFileAttachmentConnectionTypeConnection,
      "maximumRefund": MaximumRefundType,
      "campaigns": [AccountCampaignType],
      "isInHardship": true,
      "activeHardshipAgreements": [HardshipAgreementType],
      "notes": [AccountNoteType],
      "contributionAgreements": [ContributionAgreementType],
      "assistanceAgreements": [AssistanceAgreementType],
      "debtCollectionProceedings": [DebtCollectionProceedingType],
      "createdAt": "2020-01-01T00:00:00.000Z",
      "preferredLanguageForComms": "abc123",
      "consents": ConsentType,
      "reminders": AccountReminderConnectionTypeConnection,
      "customerAssets": [CustomerAssetType],
      "properties": [PropertyType],
      "marketSupplyAgreements": AgreementConnection,
      "canModifyPayments": CanModifyPaymentsType,
      "agreements": AgreementConnectionTypeConnection,
      "isLatestPaymentScheduleFromAnnualBilling": true,
      "isMeasured": true,
      "hasActiveDunningProcess": true,
      "hasActiveDebtCollectionProceeding": true,
      "hasActiveSocialAgreement": true,
      "hasActiveWatersureAgreement": true,
      "hasActiveAssessedAgreement": true,
      "hasActiveFixedDiscountAgreement": true,
      "hasCompletedUpcomingAnnualBilling": true,
      "potentialSwitchToMeasured": PotentialTariffSwitchType,
      "eligibleRewardJourneys": ["abc123"],
      "isOnPccDunningJourney": true,
      "isOnSteppedTariff": true
    }
  }
}

accountChargeReasons

Type:[ChargeReasonType]

URL:https://api.st.kraken.tech/v1/graphql/

Available reasons for use in account charge mutations.

Query

query AccountChargeReasons {
  accountChargeReasons {
    code
    display
    isDeprecated
    isTaxExempt
    isHidden
    group
  }
}

Response

{
  "data": {
    "accountChargeReasons": [
      {
        "code": "abc123",
        "display": "abc123",
        "isDeprecated": true,
        "isTaxExempt": true,
        "isHidden": true,
        "group": "abc123"
      }
    ]
  }
}

accountContract

Type:Contract

URL:https://api.st.kraken.tech/v1/graphql/

Get details about an account contract.

The possible errors that can be raised are:

  • KT-CT-10003: Contract not found.
  • KT-CT-10005: Missing required parameter: either identifier or accountNumber must be provided.
  • KT-CT-10006: Account not found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

identifier (String)

The identifier of the contract.

accountNumber (String)

The account number to find the contract for.

version (Int)

The version of the contract.

Query

query AccountContract(
  $identifier: String,
  $accountNumber: String,
  $version: Int
) {
  accountContract(
    identifier: $identifier,
    accountNumber: $accountNumber,
    version: $version
  ) {
    identifier
    title
    party {
      ... on AccountType {
        ...AccountTypeFragment
      }
      ... on BusinessType {
        ...BusinessTypeFragment
      }
    }
    subject {
      ...AccountTypeFragment
    }
    status
    validFrom
    validTo
    signedAt
    cancelledAt
    lifecycle {
      ...ContractVersionFragment
    }
    notes {
      ...ContractNoteTypeFragment
    }
    terms {
      ...TermInterfaceFragment
    }
  }
}

Variables

{
  "identifier": "abc123",
  "accountNumber": "abc123",
  "version": 1
}

Response

{
  "data": {
    "accountContract": {
      "identifier": NonEmptyString,
      "title": "abc123",
      "party": AccountType,
      "subject": [AccountType],
      "status": "REVOKED",
      "validFrom": "2020-01-01T00:00:00.000Z",
      "validTo": "2020-01-01T00:00:00.000Z",
      "signedAt": "2020-01-01T00:00:00.000Z",
      "cancelledAt": "2020-01-01T00:00:00.000Z",
      "lifecycle": ContractVersion,
      "notes": [ContractNoteType],
      "terms": TermInterface
    }
  }
}

accountCreditReasons

Type:[CreditReasonType]

URL:https://api.st.kraken.tech/v1/graphql/

Available reasons for use in account credit mutations.

Query

query AccountCreditReasons {
  accountCreditReasons {
    code
    display
    isDeprecated
    isTaxExempt
    isHidden
    group
  }
}

Response

{
  "data": {
    "accountCreditReasons": [
      {
        "code": "abc123",
        "display": "abc123",
        "isDeprecated": true,
        "isTaxExempt": true,
        "isHidden": true,
        "group": "abc123"
      }
    ]
  }
}

accountReference

Type:[AccountReferenceType]

URL:https://api.st.kraken.tech/v1/graphql/

List of matching account references.

The possible errors that can be raised are:

  • KT-CT-8310: Invalid data.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

value (String)

Filter account references by this value.

Query

query AccountReference($value: String) {
  accountReference(value: $value) {
    namespace
    value
    createdAt
    updatedAt
    account {
      ...AccountTypeFragment
    }
  }
}

Variables

{
  "value": "abc123"
}

Response

{
  "data": {
    "accountReference": [
      {
        "namespace": "abc123",
        "value": "abc123",
        "createdAt": "2020-01-01T00:00:00.000Z",
        "updatedAt": "2020-01-01T00:00:00.000Z",
        "account": AccountType
      }
    ]
  }
}

accountUser

Type:AccountUserType

URL:https://api.st.kraken.tech/v1/graphql/

Get account user by ID or unique and non-encrypted detail. If both ID and detail are provided, ID is used.

This field requires the Authorization header to be set.

The possible errors that can be raised are:

  • KT-CT-5416: Account user detail namespace is invalid.
  • KT-CT-5417: Search could not find a unique account user.
  • KT-GB-5417: Invalid input data.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

id (ID)

The ID of the account user.

detail (StringKeyValueInput)

The unique detail.

Query

query AccountUser(
  $id: ID,
  $detail: StringKeyValueInput
) {
  accountUser(
    id: $id,
    detail: $detail
  ) {
    id
    number
    accounts {
      ...AccountInterfaceFragment
    }
    givenName
    familyName
    email
    mobile
    landline
    title
    pronouns
    isDeceased
    liveSecretKey
    createdAt
    permissions {
      ...AccountUserPermissionFragment
    }
    displayName
    firstName
    lastName
    fullName
    preferredName
    isActive
    address {
      ...RichAddressTypeFragment
    }
    portfolioId
    portfolioIds
    portfolios {
      ...PortfolioConnectionTypeConnectionFragment
    }
    businesses {
      ...BusinessConnectionTypeConnectionFragment
    }
    specialCircumstances {
      ...SpecialCircumstancesTypeFragment
    }
    preferences {
      ...AccountUserCommsPreferencesFragment
    }
    dateOfBirth
    label
    landlinePhoneNumber
    alternativePhoneNumbers
    hasFamilyIssues
    isInHardship
    accountUserRoles {
      ...AccountUserRoleTypeFragment
    }
    portfolioUserRoles {
      ...PortfolioUserRoleTypeFragment
    }
    details {
      ...AccountUserDetailTypeFragment
    }
    consents {
      ...ConsentTypeFragment
    }
    paymentMethods {
      ...PaymentInstructionConnectionTypeConnectionFragment
    }
    lastLogin
    hasSetPassword
    commsPreferences {
      ...AccountUserCommsPreferencesTypeFragment
    }
    isPsrRenewalDue
    hasRestrictedAccess
  }
}

Variables

{
  "id": "abc123",
  "detail": StringKeyValueInput
}

Response

{
  "data": {
    "accountUser": {
      "id": "abc123",
      "number": "abc123",
      "accounts": AccountInterface,
      "givenName": "abc123",
      "familyName": "abc123",
      "email": "abc123",
      "mobile": "abc123",
      "landline": "abc123",
      "title": "abc123",
      "pronouns": "abc123",
      "isDeceased": true,
      "liveSecretKey": "abc123",
      "createdAt": "2020-01-01T00:00:00.000Z",
      "permissions": [AccountUserPermission],
      "displayName": "abc123",
      "firstName": "abc123",
      "lastName": "abc123",
      "fullName": "abc123",
      "preferredName": "abc123",
      "isActive": true,
      "address": RichAddressType,
      "portfolioId": "abc123",
      "portfolioIds": ["abc123"],
      "portfolios": PortfolioConnectionTypeConnection,
      "businesses": BusinessConnectionTypeConnection,
      "specialCircumstances": SpecialCircumstancesType,
      "preferences": AccountUserCommsPreferences,
      "dateOfBirth": "2020-01-01",
      "label": "abc123",
      "landlinePhoneNumber": "abc123",
      "alternativePhoneNumbers": ["abc123"],
      "hasFamilyIssues": true,
      "isInHardship": true,
      "accountUserRoles": [AccountUserRoleType],
      "portfolioUserRoles": [PortfolioUserRoleType],
      "details": [AccountUserDetailType],
      "consents": ConsentType,
      "paymentMethods": PaymentInstructionConnectionTypeConnection,
      "lastLogin": "2020-01-01T00:00:00.000Z",
      "hasSetPassword": true,
      "commsPreferences": AccountUserCommsPreferencesType,
      "isPsrRenewalDue": true,
      "hasRestrictedAccess": true
    }
  }
}

accountUserByUniqueDetailValue

Type:AccountUserType

URL:https://api.st.kraken.tech/v1/graphql/

Search account user by unique and non-encrypted detail.

This field requires the Authorization header to be set.

The possible errors that can be raised are:

  • KT-CT-5416: Account user detail namespace is invalid.
  • KT-CT-5417: Search could not find a unique account user.
  • KT-CT-1113: Disabled GraphQL field requested.

Deprecated

The 'accountUserByUniqueDetailValue' field is deprecated.

Please use `accountUser` query instead.

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

Arguments

NameDescription

namespace (String!)

The unique detail namespace.

value (String!)

Value searched for in the given namespace.

Query

query AccountUserByUniqueDetailValue(
  $namespace: String!,
  $value: String!
) {
  accountUserByUniqueDetailValue(
    namespace: $namespace,
    value: $value
  ) {
    id
    number
    accounts {
      ...AccountInterfaceFragment
    }
    givenName
    familyName
    email
    mobile
    landline
    title
    pronouns
    isDeceased
    liveSecretKey
    createdAt
    permissions {
      ...AccountUserPermissionFragment
    }
    displayName
    firstName
    lastName
    fullName
    preferredName
    isActive
    address {
      ...RichAddressTypeFragment
    }
    portfolioId
    portfolioIds
    portfolios {
      ...PortfolioConnectionTypeConnectionFragment
    }
    businesses {
      ...BusinessConnectionTypeConnectionFragment
    }
    specialCircumstances {
      ...SpecialCircumstancesTypeFragment
    }
    preferences {
      ...AccountUserCommsPreferencesFragment
    }
    dateOfBirth
    label
    landlinePhoneNumber
    alternativePhoneNumbers
    hasFamilyIssues
    isInHardship
    accountUserRoles {
      ...AccountUserRoleTypeFragment
    }
    portfolioUserRoles {
      ...PortfolioUserRoleTypeFragment
    }
    details {
      ...AccountUserDetailTypeFragment
    }
    consents {
      ...ConsentTypeFragment
    }
    paymentMethods {
      ...PaymentInstructionConnectionTypeConnectionFragment
    }
    lastLogin
    hasSetPassword
    commsPreferences {
      ...AccountUserCommsPreferencesTypeFragment
    }
    isPsrRenewalDue
    hasRestrictedAccess
  }
}

Variables

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

Response

{
  "data": {
    "accountUserByUniqueDetailValue": {
      "id": "abc123",
      "number": "abc123",
      "accounts": AccountInterface,
      "givenName": "abc123",
      "familyName": "abc123",
      "email": "abc123",
      "mobile": "abc123",
      "landline": "abc123",
      "title": "abc123",
      "pronouns": "abc123",
      "isDeceased": true,
      "liveSecretKey": "abc123",
      "createdAt": "2020-01-01T00:00:00.000Z",
      "permissions": [AccountUserPermission],
      "displayName": "abc123",
      "firstName": "abc123",
      "lastName": "abc123",
      "fullName": "abc123",
      "preferredName": "abc123",
      "isActive": true,
      "address": RichAddressType,
      "portfolioId": "abc123",
      "portfolioIds": ["abc123"],
      "portfolios": PortfolioConnectionTypeConnection,
      "businesses": BusinessConnectionTypeConnection,
      "specialCircumstances": SpecialCircumstancesType,
      "preferences": AccountUserCommsPreferences,
      "dateOfBirth": "2020-01-01",
      "label": "abc123",
      "landlinePhoneNumber": "abc123",
      "alternativePhoneNumbers": ["abc123"],
      "hasFamilyIssues": true,
      "isInHardship": true,
      "accountUserRoles": [AccountUserRoleType],
      "portfolioUserRoles": [PortfolioUserRoleType],
      "details": [AccountUserDetailType],
      "consents": ConsentType,
      "paymentMethods": PaymentInstructionConnectionTypeConnection,
      "lastLogin": "2020-01-01T00:00:00.000Z",
      "hasSetPassword": true,
      "commsPreferences": AccountUserCommsPreferencesType,
      "isPsrRenewalDue": true,
      "hasRestrictedAccess": true
    }
  }
}

accounts

Type:[AccountType]

URL:https://api.st.kraken.tech/v1/graphql/

Get details about multiple accounts.

The possible errors that can be raised are:

  • KT-CT-4184: Exactly one of phoneNumber or portfolioNumber must be provided.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

phoneNumber (String)

A phone number to find accounts associated with.

portfolioNumber (String)

A portfolio number to find accounts associated with.

Query

query Accounts(
  $phoneNumber: String,
  $portfolioNumber: String
) {
  accounts(
    phoneNumber: $phoneNumber,
    portfolioNumber: $portfolioNumber
  ) {
    id
    number
    status
    paymentSchedules {
      ...PaymentScheduleConnectionTypeConnectionFragment
    }
    users {
      ...AccountUserTypeFragment
    }
    complaints {
      ...ComplaintConnectionTypeConnectionFragment
    }
    brand
    balance
    overdueBalance
    urn
    billingName
    billingSubName
    billingEmail
    billingAddress
    billingAddressLine1
    billingAddressLine2
    billingAddressLine3
    billingAddressLine4
    billingAddressLine5
    billingAddressPostcode
    billingCountryCode
    billingDeliveryPointIdentifier
    splitBillingAddress
    address {
      ...RichAddressTypeFragment
    }
    portfolio {
      ...PortfolioTypeFragment
    }
    ledgers {
      ...LedgerTypeFragment
    }
    metadata {
      ...MetadataFragment
    }
    canRequestRefund
    requestRefundEligibility {
      ...RequestRefundEligibilityTypeFragment
    }
    payments {
      ...AccountPaymentConnectionTypeConnectionFragment
    }
    repayments {
      ...AccountRepaymentConnectionTypeConnectionFragment
    }
    paymentPlans {
      ...PaymentPlanConnectionTypeConnectionFragment
    }
    paymentForecast {
      ...PaymentForecastTypeFragment
    }
    paginatedPaymentForecast {
      ...PaymentForecastConnectionTypeConnectionFragment
    }
    referrals {
      ...ReferralConnectionTypeConnectionFragment
    }
    referralsCreated
    rewards {
      ...RewardTypeFragment
    }
    activeReferralSchemes {
      ...ReferralSchemeTypesFragment
    }
    transactions {
      ...TransactionConnectionTypeConnectionFragment
    }
    provisionalTransactions {
      ...ProvisionalTransactionConnectionTypeConnectionFragment
    }
    annualStatements {
      ...AnnualStatementConnectionTypeConnectionFragment
    }
    bills {
      ...BillConnectionTypeConnectionFragment
    }
    billingOptions {
      ...BillingOptionsTypeFragment
    }
    bill {
      ...BillInterfaceFragment
    }
    directDebitInstructions {
      ...DirectDebitInstructionConnectionTypeConnectionFragment
    }
    paymentMethods {
      ...PaymentInstructionConnectionTypeConnectionFragment
    }
    events {
      ...AccountEventConnectionTypeConnectionFragment
    }
    applications {
      ...AccountApplicationConnectionTypeConnectionFragment
    }
    accountType
    businessType
    business {
      ...BusinessTypeFragment
    }
    commsDeliveryPreference
    communicationDeliveryPreference
    documentAccessibility
    references {
      ...AccountReferenceTypeFragment
    }
    fileAttachments {
      ...AccountFileAttachmentFragment
    }
    paginatedFileAttachments {
      ...AccountFileAttachmentConnectionTypeConnectionFragment
    }
    maximumRefund {
      ...MaximumRefundTypeFragment
    }
    campaigns {
      ...AccountCampaignTypeFragment
    }
    isInHardship
    activeHardshipAgreements {
      ...HardshipAgreementTypeFragment
    }
    notes {
      ...AccountNoteTypeFragment
    }
    contributionAgreements {
      ...ContributionAgreementTypeFragment
    }
    assistanceAgreements {
      ...AssistanceAgreementTypeFragment
    }
    debtCollectionProceedings {
      ...DebtCollectionProceedingTypeFragment
    }
    createdAt
    preferredLanguageForComms
    consents {
      ...ConsentTypeFragment
    }
    reminders {
      ...AccountReminderConnectionTypeConnectionFragment
    }
    customerAssets {
      ...CustomerAssetTypeFragment
    }
    properties {
      ...PropertyTypeFragment
    }
    marketSupplyAgreements {
      ...AgreementConnectionFragment
    }
    canModifyPayments {
      ...CanModifyPaymentsTypeFragment
    }
    agreements {
      ...AgreementConnectionTypeConnectionFragment
    }
    isLatestPaymentScheduleFromAnnualBilling
    isMeasured
    hasActiveDunningProcess
    hasActiveDebtCollectionProceeding
    hasActiveSocialAgreement
    hasActiveWatersureAgreement
    hasActiveAssessedAgreement
    hasActiveFixedDiscountAgreement
    hasCompletedUpcomingAnnualBilling
    potentialSwitchToMeasured {
      ...PotentialTariffSwitchTypeFragment
    }
    eligibleRewardJourneys
    isOnPccDunningJourney
    isOnSteppedTariff
  }
}

Variables

{
  "phoneNumber": "abc123",
  "portfolioNumber": "abc123"
}

Response

{
  "data": {
    "accounts": [
      {
        "id": "abc123",
        "number": "abc123",
        "status": "PENDING",
        "paymentSchedules": PaymentScheduleConnectionTypeConnection,
        "users": AccountUserType,
        "complaints": ComplaintConnectionTypeConnection,
        "brand": "abc123",
        "balance": 1,
        "overdueBalance": 1,
        "urn": "abc123",
        "billingName": "abc123",
        "billingSubName": "abc123",
        "billingEmail": "abc123",
        "billingAddress": "abc123",
        "billingAddressLine1": "abc123",
        "billingAddressLine2": "abc123",
        "billingAddressLine3": "abc123",
        "billingAddressLine4": "abc123",
        "billingAddressLine5": "abc123",
        "billingAddressPostcode": "abc123",
        "billingCountryCode": "abc123",
        "billingDeliveryPointIdentifier": "abc123",
        "splitBillingAddress": ["abc123"],
        "address": RichAddressType,
        "portfolio": PortfolioType,
        "ledgers": [LedgerType],
        "metadata": [Metadata],
        "canRequestRefund": true,
        "requestRefundEligibility": RequestRefundEligibilityType,
        "payments": AccountPaymentConnectionTypeConnection,
        "repayments": AccountRepaymentConnectionTypeConnection,
        "paymentPlans": PaymentPlanConnectionTypeConnection,
        "paymentForecast": [PaymentForecastType],
        "paginatedPaymentForecast": PaymentForecastConnectionTypeConnection,
        "referrals": ReferralConnectionTypeConnection,
        "referralsCreated": 1,
        "rewards": [RewardType],
        "activeReferralSchemes": ReferralSchemeTypes,
        "transactions": TransactionConnectionTypeConnection,
        "provisionalTransactions": ProvisionalTransactionConnectionTypeConnection,
        "annualStatements": AnnualStatementConnectionTypeConnection,
        "bills": BillConnectionTypeConnection,
        "billingOptions": BillingOptionsType,
        "bill": BillInterface,
        "directDebitInstructions": DirectDebitInstructionConnectionTypeConnection,
        "paymentMethods": PaymentInstructionConnectionTypeConnection,
        "events": AccountEventConnectionTypeConnection,
        "applications": AccountApplicationConnectionTypeConnection,
        "accountType": "BUSINESS",
        "businessType": "SOLE_TRADER",
        "business": BusinessType,
        "commsDeliveryPreference": "EMAIL",
        "communicationDeliveryPreference": "abc123",
        "documentAccessibility": "LARGE_PRINT",
        "references": [AccountReferenceType],
        "fileAttachments": [AccountFileAttachment],
        "paginatedFileAttachments": AccountFileAttachmentConnectionTypeConnection,
        "maximumRefund": MaximumRefundType,
        "campaigns": [AccountCampaignType],
        "isInHardship": true,
        "activeHardshipAgreements": [HardshipAgreementType],
        "notes": [AccountNoteType],
        "contributionAgreements": [ContributionAgreementType],
        "assistanceAgreements": [AssistanceAgreementType],
        "debtCollectionProceedings": [DebtCollectionProceedingType],
        "createdAt": "2020-01-01T00:00:00.000Z",
        "preferredLanguageForComms": "abc123",
        "consents": ConsentType,
        "reminders": AccountReminderConnectionTypeConnection,
        "customerAssets": [CustomerAssetType],
        "properties": [PropertyType],
        "marketSupplyAgreements": AgreementConnection,
        "canModifyPayments": CanModifyPaymentsType,
        "agreements": AgreementConnectionTypeConnection,
        "isLatestPaymentScheduleFromAnnualBilling": true,
        "isMeasured": true,
        "hasActiveDunningProcess": true,
        "hasActiveDebtCollectionProceeding": true,
        "hasActiveSocialAgreement": true,
        "hasActiveWatersureAgreement": true,
        "hasActiveAssessedAgreement": true,
        "hasActiveFixedDiscountAgreement": true,
        "hasCompletedUpcomingAnnualBilling": true,
        "potentialSwitchToMeasured": PotentialTariffSwitchType,
        "eligibleRewardJourneys": ["abc123"],
        "isOnPccDunningJourney": true,
        "isOnSteppedTariff": true
      }
    ]
  }
}

accountsSearch

Type:[AccountSearchItemType]

URL:https://api.st.kraken.tech/v1/graphql/

Search for account that are already in Kraken and match the search terms.

The possible errors that can be raised are:

  • KT-CT-4183: One of more search terms failed validations.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

searchTerms (AccountSearchInputType)

Search operators.

maxResults (Int)

The maximum number of results to return.

Query

query AccountsSearch(
  $searchTerms: AccountSearchInputType,
  $maxResults: Int
) {
  accountsSearch(
    searchTerms: $searchTerms,
    maxResults: $maxResults
  ) {
    account {
      ...AccountTypeFragment
    }
    score
  }
}

Variables

{
  "searchTerms": AccountSearchInputType,
  "maxResults": 1
}

Response

{
  "data": {
    "accountsSearch": [
      {
        "account": AccountType,
        "score": "1.0"
      }
    ]
  }
}

activeAffiliateReferralScheme

Type:ReferralSchemeType

URL:https://api.st.kraken.tech/v1/graphql/

Return the current active referral reward scheme of a given affiliate organisation, if any exists.

Arguments

NameDescription

subdomain (String!)

The affiliate link subdomain.

accountType (ReferralSchemeAccountTypeOptions)

The account type for which to get the referral scheme.

Query

query ActiveAffiliateReferralScheme(
  $subdomain: String!,
  $accountType: ReferralSchemeAccountTypeOptions
) {
  activeAffiliateReferralScheme(
    subdomain: $subdomain,
    accountType: $accountType
  ) {
    referralUrl
    referralDisplayUrl
    referrerRewardAmount
    referredRewardAmount
    combinedRewardAmount
    loyaltyPointsBonus
    canBeReferred
    code
    referrerGivenName
    referrerFamilyName
    schemeType
    maxRecurrence
    isUsageAtCapacity
  }
}

Variables

{
  "subdomain": "abc123",
  "accountType": "DOMESTIC"
}

Response

{
  "data": {
    "activeAffiliateReferralScheme": {
      "referralUrl": "abc123",
      "referralDisplayUrl": "abc123",
      "referrerRewardAmount": 1,
      "referredRewardAmount": 1,
      "combinedRewardAmount": 1,
      "loyaltyPointsBonus": 1,
      "canBeReferred": true,
      "code": "abc123",
      "referrerGivenName": "abc123",
      "referrerFamilyName": "abc123",
      "schemeType": "abc123",
      "maxRecurrence": 1,
      "isUsageAtCapacity": true
    }
  }
}

activeDomesticSignupRewardScheme

Type:ReferralSchemeType

URL:https://api.st.kraken.tech/v1/graphql/

Return the current active signup referral reward scheme with the given code, if any exists.

Query

query ActiveDomesticSignupRewardScheme {
  activeDomesticSignupRewardScheme {
    referralUrl
    referralDisplayUrl
    referrerRewardAmount
    referredRewardAmount
    combinedRewardAmount
    loyaltyPointsBonus
    canBeReferred
    code
    referrerGivenName
    referrerFamilyName
    schemeType
    maxRecurrence
    isUsageAtCapacity
  }
}

Response

{
  "data": {
    "activeDomesticSignupRewardScheme": {
      "referralUrl": "abc123",
      "referralDisplayUrl": "abc123",
      "referrerRewardAmount": 1,
      "referredRewardAmount": 1,
      "combinedRewardAmount": 1,
      "loyaltyPointsBonus": 1,
      "canBeReferred": true,
      "code": "abc123",
      "referrerGivenName": "abc123",
      "referrerFamilyName": "abc123",
      "schemeType": "abc123",
      "maxRecurrence": 1,
      "isUsageAtCapacity": true
    }
  }
}

activeSalesChannels

Type:[SalesChannelType]

URL:https://api.st.kraken.tech/v1/graphql/

A list of active sales channels.

The possible errors that can be raised are:

  • KT-CT-12702: Invalid datetime range.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

activeFrom (DateTime)

The datetime from which to filter active sales channels.

activeTo (DateTime)

The datetime up to which to filter active sales channels.

Query

query ActiveSalesChannels(
  $activeFrom: DateTime,
  $activeTo: DateTime
) {
  activeSalesChannels(
    activeFrom: $activeFrom,
    activeTo: $activeTo
  ) {
    name
    code
    description
    hierarchicalName
  }
}

Variables

{
  "activeFrom": "2020-01-01T00:00:00.000Z",
  "activeTo": "2020-01-01T00:00:00.000Z"
}

Response

{
  "data": {
    "activeSalesChannels": [
      {
        "name": "abc123",
        "code": "abc123",
        "description": "abc123",
        "hierarchicalName": "abc123"
      }
    ]
  }
}

Type:AffiliateLinkType!

URL:https://api.st.kraken.tech/v1/graphql/

Link object for an affiliate organization.

The possible errors that can be raised are:

  • KT-CT-7713: Invalid data.
  • KT-CT-7718: Affiliate link is expired.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

subdomain (String!)

The affiliate link subdomain.

Query

query AffiliateLink($subdomain: String!) {
  affiliateLink(subdomain: $subdomain) {
    id
    organisation {
      ...AffiliateOrganisationTypeFragment
    }
    subdomain
    trainingStatus
    isBusiness
    contactName
    contactEmail
    landingUrl
  }
}

Variables

{
  "subdomain": "abc123"
}

Response

{
  "data": {
    "affiliateLink": {
      "id": "abc123",
      "organisation": AffiliateOrganisationType,
      "subdomain": "abc123",
      "trainingStatus": "NOT_APPLICABLE",
      "isBusiness": true,
      "contactName": "abc123",
      "contactEmail": "abc123",
      "landingUrl": "abc123"
    }
  }
}

Type:[AffiliateLinkType!]!

URL:https://api.st.kraken.tech/v1/graphql/

Links (urls) for the affiliate organizations.

Arguments

NameDescription

agentContactEmail (String!)

Email address of the affiliate agent.

Query

query AffiliateLinks($agentContactEmail: String!) {
  affiliateLinks(agentContactEmail: $agentContactEmail) {
    id
    organisation {
      ...AffiliateOrganisationTypeFragment
    }
    subdomain
    trainingStatus
    isBusiness
    contactName
    contactEmail
    landingUrl
  }
}

Variables

{
  "agentContactEmail": "abc123"
}

Response

{
  "data": {
    "affiliateLinks": {
      "id": "abc123",
      "organisation": AffiliateOrganisationType,
      "subdomain": "abc123",
      "trainingStatus": "NOT_APPLICABLE",
      "isBusiness": true,
      "contactName": "abc123",
      "contactEmail": "abc123",
      "landingUrl": "abc123"
    }
  }
}

affiliateOrganisation

Type:AffiliateOrganisationType

URL:https://api.st.kraken.tech/v1/graphql/

Return the details of a given affiliate organization, if any exists.

The possible errors that can be raised are:

  • KT-CT-7701: The affiliate organisation was not found.
  • KT-CT-7702: Either id or number must be provided.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

id (Int)

The affiliate organisation ID.

number (String)

The affiliate organisation number.

Query

query AffiliateOrganisation(
  $id: Int,
  $number: String
) {
  affiliateOrganisation(
    id: $id,
    number: $number
  ) {
    id
    number
    name
    contactEmail
    canRenewTariffs
    defaultAccountType
    allowAlternativePaymentMethods
    canRegisterBusinessMeterPoints
    canRegisterPortfolioAccounts
    canRegisterCustomersWithoutEmailAddress
    canUseIvrSupportApi
    skipMeterPointAddressValidation
    salesChannel
    salesChannelCode
    isFieldSalesOnlyProduct
  }
}

Variables

{
  "id": 1,
  "number": "abc123"
}

Response

{
  "data": {
    "affiliateOrganisation": {
      "id": "abc123",
      "number": "abc123",
      "name": "abc123",
      "contactEmail": "abc123",
      "canRenewTariffs": true,
      "defaultAccountType": "BUSINESS",
      "allowAlternativePaymentMethods": true,
      "canRegisterBusinessMeterPoints": true,
      "canRegisterPortfolioAccounts": true,
      "canRegisterCustomersWithoutEmailAddress": true,
      "canUseIvrSupportApi": true,
      "skipMeterPointAddressValidation": true,
      "salesChannel": "REFERRAL",
      "salesChannelCode": "abc123",
      "isFieldSalesOnlyProduct": true
    }
  }
}

agentCallCenterStatus

Type:AgentCallCenterStatusType!

URL:https://api.st.kraken.tech/v1/graphql/

Get the call center status for a given agent.

The possible errors that can be raised are:

  • KT-CT-7813: Support user not found with that username.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

supportUserName (String!)

The support user name.

Query

query AgentCallCenterStatus($supportUserName: String!) {
  agentCallCenterStatus(supportUserName: $supportUserName) {
    id
    status
    updatedAt
    mostRecentCallId
  }
}

Variables

{
  "supportUserName": "abc123"
}

Response

{
  "data": {
    "agentCallCenterStatus": {
      "id": "abc123",
      "status": "abc123",
      "updatedAt": "2020-01-01T00:00:00.000Z",
      "mostRecentCallId": 1
    }
  }
}

agreement

Type:CommonAgreementType

URL:https://api.st.kraken.tech/v1/graphql/

Get an agreement by its ID.

The possible errors that can be raised are:

  • KT-CT-1501: Agreement not found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

id (ID!)

Agreement identifier.

Query

query Agreement($id: ID!) {
  agreement(id: $id) {
    id
    validFrom
    validTo
    agreedAt
    terminatedAt
    rescissionDeadlineAt
    account {
      ...AccountTypeFragment
    }
    supplyPoint {
      ...SupplyPointTypeFragment
    }
    product {
      ...SupplyProductTypeFragment
    }
    isActive
    characteristicValues {
      ...CharacteristicValueInterfaceFragment
    }
    agreedFrom
    agreedTo
    isRevoked
    params
  }
}

Variables

{
  "id": "abc123"
}

Response

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

agreementRollover

Type:AgreementRolloverType

URL:https://api.st.kraken.tech/v1/graphql/

Get an agreement rollover by its number.

The possible errors that can be raised are:

  • KT-CT-13705: Agreement rollover not found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

number (String!)

Number of the agreement rollover.

Query

query AgreementRollover($number: String!) {
  agreementRollover(number: $number) {
    id
    number
    agreement {
      ...AgreementFragment
    }
    rolledOnTo {
      ...AgreementFragment
    }
    quoteRequests {
      ...MarketSupplyQuoteRequestTypeFragment
    }
    rolloverType
    expectedSendDate
    status
    params
    failureReason
    actualSendDate
    suppressComms
    tags
    createdAt
    updatedAt
  }
}

Variables

{
  "number": "abc123"
}

Response

{
  "data": {
    "agreementRollover": {
      "id": "abc123",
      "number": "abc123",
      "agreement": Agreement,
      "rolledOnTo": Agreement,
      "quoteRequests": MarketSupplyQuoteRequestType,
      "rolloverType": "DEFAULT",
      "expectedSendDate": "2020-01-01",
      "status": "PENDING",
      "params": {"key": "value"},
      "failureReason": "abc123",
      "actualSendDate": "2020-01-01",
      "suppressComms": true,
      "tags": ["abc123"],
      "createdAt": "2020-01-01T00:00:00.000Z",
      "updatedAt": "2020-01-01T00:00:00.000Z"
    }
  }
}

agreementsForRollover

Type:[CommonAgreementType]

URL:https://api.st.kraken.tech/v1/graphql/

Get agreements eligible for the rollover process.

Arguments

NameDescription

daysBeforeExpiration (Int!)

Days before the agreement expiration.

windowSize (Int!)

Window size in days.

Query

query AgreementsForRollover(
  $daysBeforeExpiration: Int!,
  $windowSize: Int!
) {
  agreementsForRollover(
    daysBeforeExpiration: $daysBeforeExpiration,
    windowSize: $windowSize
  ) {
    id
    validFrom
    validTo
    agreedAt
    terminatedAt
    rescissionDeadlineAt
    account {
      ...AccountTypeFragment
    }
    supplyPoint {
      ...SupplyPointTypeFragment
    }
    product {
      ...SupplyProductTypeFragment
    }
    isActive
    characteristicValues {
      ...CharacteristicValueInterfaceFragment
    }
    agreedFrom
    agreedTo
    isRevoked
    params
  }
}

Variables

{
  "daysBeforeExpiration": 1,
  "windowSize": 1
}

Response

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

Arguments

NameDescription

input (APIBrownoutInput)

Statuses to filter for. Otherwise return active and upcoming brownouts.

before (String)

after (String)

first (Int)

last (Int)

Query

query ApiBrownouts(
  $input: APIBrownoutInput,
  $before: String,
  $after: String,
  $first: Int,
  $last: Int
) {
  apiBrownouts(
    input: $input,
    before: $before,
    after: $after,
    first: $first,
    last: $last
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...APIBrownoutEdgeFragment
    }
    totalCount
    edgeCount
  }
}

Variables

{
  "input": APIBrownoutInput,
  "before": "abc123",
  "after": "abc123",
  "first": 1,
  "last": 1
}

Response

{
  "data": {
    "apiBrownouts": {
      "pageInfo": PageInfo,
      "edges": APIBrownoutEdge,
      "totalCount": 1,
      "edgeCount": 1
    }
  }
}

Arguments

NameDescription

input (APIExceptionQueryInput)

Fields to filter for. Otherwise don't filter at all.

before (String)

after (String)

first (Int)

last (Int)

Query

query ApiExceptions(
  $input: APIExceptionQueryInput,
  $before: String,
  $after: String,
  $first: Int,
  $last: Int
) {
  apiExceptions(
    input: $input,
    before: $before,
    after: $after,
    first: $first,
    last: $last
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...APIExceptionConnectionTypeEdgeFragment
    }
    totalCount
    edgeCount
  }
}

Variables

{
  "input": APIExceptionQueryInput,
  "before": "abc123",
  "after": "abc123",
  "first": 1,
  "last": 1
}

Response

{
  "data": {
    "apiExceptions": {
      "pageInfo": PageInfo,
      "edges": APIExceptionConnectionTypeEdge,
      "totalCount": 1,
      "edgeCount": 1
    }
  }
}

appSessions

Type:AppSessionConnectionTypeConnection!

URL:https://api.st.kraken.tech/v1/graphql/

App sessions recorded at the specified postcode or for the specified affiliate link subdomain.

Arguments

NameDescription

postcode (String)

The postcode of the address at which the app session was recorded.

subdomain (String)

The affiliate link subdomain to filter app sessions by.

before (String)

after (String)

first (Int)

last (Int)

Query

query AppSessions(
  $postcode: String,
  $subdomain: String,
  $before: String,
  $after: String,
  $first: Int,
  $last: Int
) {
  appSessions(
    postcode: $postcode,
    subdomain: $subdomain,
    before: $before,
    after: $after,
    first: $first,
    last: $last
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...AppSessionConnectionTypeEdgeFragment
    }
    totalCount
    edgeCount
  }
}

Variables

{
  "postcode": "abc123",
  "subdomain": "abc123",
  "before": "abc123",
  "after": "abc123",
  "first": 1,
  "last": 1
}

Response

{
  "data": {
    "appSessions": {
      "pageInfo": PageInfo,
      "edges": AppSessionConnectionTypeEdge,
      "totalCount": 1,
      "edgeCount": 1
    }
  }
}

authorizedApplications

Type:[AuthorizedApplication]

URL:https://api.st.kraken.tech/v1/graphql/

Get all the confidential-client applications the current user has authorized.

Query

query AuthorizedApplications {
  authorizedApplications {
    name
    clientId
  }
}

Response

{
  "data": {
    "authorizedApplications": [
      {
        "name": "abc123",
        "clientId": "abc123"
      }
    ]
  }
}

availableOfferings

Type:[OfferingType]

URL:https://api.st.kraken.tech/v1/graphql/

Get a list of actively available offerings from the catalog.

Query

query AvailableOfferings {
  availableOfferings {
    identifier
    internalName
    customerName
    customerDescription
    isSellable
    lifecycle {
      ...LifecycleTypeFragment
    }
    tags {
      ...TagTypeFragment
    }
    productComponents {
      ...ProductComponentTypeFragment
    }
    offeringComponents {
      ...OfferingComponentTypeFragment
    }
    termTemplateComponents {
      ...TermTemplateComponentTypeFragment
    }
    groups {
      ...GroupTypeFragment
    }
    isAmendable
    isExpired
    isActive
    isDraft
    isLatestVersion
    isFirstDraft
  }
}

Response

{
  "data": {
    "availableOfferings": [
      {
        "identifier": "abc123",
        "internalName": "abc123",
        "customerName": "abc123",
        "customerDescription": "abc123",
        "isSellable": true,
        "lifecycle": LifecycleType,
        "tags": [TagType],
        "productComponents": [ProductComponentType],
        "offeringComponents": [OfferingComponentType],
        "termTemplateComponents": [TermTemplateComponentType],
        "groups": [GroupType],
        "isAmendable": true,
        "isExpired": true,
        "isActive": true,
        "isDraft": true,
        "isLatestVersion": true,
        "isFirstDraft": true
      }
    ]
  }
}

availableProductSwitchDates

Type:[Date]

URL:https://api.st.kraken.tech/v1/graphql/

Get available dates for product switch.

The possible errors that can be raised are:

  • KT-CT-1501: Agreement not found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

agreementId (Int!)

Agreement ID.

maxRange (Int)

The maximum number of days to look for available dates.

Query

query AvailableProductSwitchDates(
  $agreementId: Int!,
  $maxRange: Int
) {
  availableProductSwitchDates(
    agreementId: $agreementId,
    maxRange: $maxRange
  )
}

Variables

{
  "agreementId": 1,
  "maxRange": 1
}

Response

{
  "data": {
    "availableProductSwitchDates": ["2020-01-01"]
  }
}

availableProducts

Type:[SupplyProductType]

URL:https://api.st.kraken.tech/v1/graphql/

Get available products for the given market.

The possible errors that can be raised are:

  • KT-CT-4930: Unsupported market.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

marketName (String!)

Products available for the target market.

Query

query AvailableProducts($marketName: String!) {
  availableProducts(marketName: $marketName) {
    id
    code
    notes
    fullName
    displayName
    description
    availableFrom
    availableTo
    isHidden
    term
    endsAt
    brandCode
    marketName
    availabilityStatus
    termsContractType
    termsAndConditionsTypes {
      ...TermsAndConditionsTypeFragment
    }
    params
    tags {
      ...SupplyProductTagTypeFragment
    }
  }
}

Variables

{
  "marketName": "abc123"
}

Response

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

availableServiceOrderAppointments

Type:ServiceOrderAppointmentType!

URL:https://api.st.kraken.tech/v1/graphql/

Available appointment slots for service order.

The possible errors that can be raised are:

  • KT-GB-4237: Unauthorized.
  • KT-GB-4241: Invalid service order payload.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

propertyId (ID!)

The property id.

jobName (ServiceOrderJourney!)

Job name that determines Journey type and Job type.

notes (String)

Additional notes.

meterSerialNumber (String)

Optional Meter Serial Number.

startAt (DateTime)

Start time of available appointment slots.

endAt (DateTime)

End time of available appointment slots.

Query

query AvailableServiceOrderAppointments(
  $propertyId: ID!,
  $jobName: ServiceOrderJourney!,
  $notes: String,
  $meterSerialNumber: String,
  $startAt: DateTime,
  $endAt: DateTime
) {
  availableServiceOrderAppointments(
    propertyId: $propertyId,
    jobName: $jobName,
    notes: $notes,
    meterSerialNumber: $meterSerialNumber,
    startAt: $startAt,
    endAt: $endAt
  ) {
    vendorReference
    availableTimeslots {
      ...AppointmentSlotConnectionTypeConnectionFragment
    }
  }
}

Variables

{
  "propertyId": "abc123",
  "jobName": "APPLY_FOR_METER",
  "notes": "abc123",
  "meterSerialNumber": "abc123",
  "startAt": "2020-01-01T00:00:00.000Z",
  "endAt": "2020-01-01T00:00:00.000Z"
}

Response

{
  "data": {
    "availableServiceOrderAppointments": {
      "vendorReference": "abc123",
      "availableTimeslots": AppointmentSlotConnectionTypeConnection
    }
  }
}

backendScreen

Type:BackendScreenType

URL:https://api.st.kraken.tech/v1/graphql/

Get mobile screen details to render.

The possible errors that can be raised are:

  • KT-CT-8001: No backend screen available.
  • KT-CT-8005: Backend screen does not support parameters.
  • KT-CT-8008: Incorrect or missing data necessary to build the screen.
  • KT-CT-8006: Error applying parameters to backend screen.
  • KT-CT-8009: Error translating screen content.
  • KT-CT-8010: Invalid step ID.
  • KT-CT-8011: Cannot rewind past a previous irreversible step.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

screenId (ID!)

The ID of the screen to return.

params ([BackendScreenParamInputType])

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

maxVersionSupported (Int)

The maximum version of backend screens supported by the client.

Query

query BackendScreen(
  $screenId: ID!,
  $params: [BackendScreenParamInputType],
  $maxVersionSupported: Int
) {
  backendScreen(
    screenId: $screenId,
    params: $params,
    maxVersionSupported: $maxVersionSupported
  ) {
    ... on ComponentListType {
      ...ComponentListTypeFragment
    }
    ... on GenericBackendScreen {
      ...GenericBackendScreenFragment
    }
    ... on Dashboard {
      ...DashboardFragment
    }
    ... on FormScreenType {
      ...FormScreenTypeFragment
    }
  }
}

Variables

{
  "screenId": "abc123",
  "params": BackendScreenParamInputType,
  "maxVersionSupported": 1
}

Response

{
  "data": {
    "backendScreen": ComponentListType
  }
}

backendScreenEventIds

Type:[String]

URL:https://api.st.kraken.tech/v1/graphql/

Get all registered backend screen event IDs.

Query

query BackendScreenEventIds {
  backendScreenEventIds
}

Response

{
  "data": {
    "backendScreenEventIds": ["abc123"]
  }
}

backendScreenIds

Type:[String]

URL:https://api.st.kraken.tech/v1/graphql/

Get all registered backend screen IDs.

Query

query BackendScreenIds {
  backendScreenIds
}

Response

{
  "data": {
    "backendScreenIds": ["abc123"]
  }
}

Arguments

NameDescription

iban (NonEmptyString!)

The IBAN of the bank account.

Query

query BankDetailsValidation($iban: NonEmptyString!) {
  bankDetailsValidation(iban: $iban) {
    areValid
    message
  }
}

Variables

{
  "iban": NonEmptyString
}

Response

{
  "data": {
    "bankDetailsValidation": {
      "areValid": true,
      "message": "abc123"
    }
  }
}

billingAddressesSearch

Type:PartialAddressesConnectionTypeConnection

URL:https://api.st.kraken.tech/v1/graphql/

Search for GBR billing addresses. Provide a postcode and optionally a partial address to refine results.

Arguments

NameDescription

postcode (String!)

Postcode.

searchTerm (String)

Partial address to refine the search (e.g. house number or street name).

before (String)

after (String)

first (Int)

last (Int)

Query

query BillingAddressesSearch(
  $postcode: String!,
  $searchTerm: String,
  $before: String,
  $after: String,
  $first: Int,
  $last: Int
) {
  billingAddressesSearch(
    postcode: $postcode,
    searchTerm: $searchTerm,
    before: $before,
    after: $after,
    first: $first,
    last: $last
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...PartialAddressesConnectionTypeEdgeFragment
    }
    totalCount
    edgeCount
  }
}

Variables

{
  "postcode": "abc123",
  "searchTerm": "abc123",
  "before": "abc123",
  "after": "abc123",
  "first": 1,
  "last": 1
}

Response

{
  "data": {
    "billingAddressesSearch": {
      "pageInfo": PageInfo,
      "edges": PartialAddressesConnectionTypeEdge,
      "totalCount": 1,
      "edgeCount": 1
    }
  }
}

blackholeEmailAccount

Type:BlackholeEmailAccountType

URL:https://api.st.kraken.tech/v1/graphql/

Details of the account of an account user updating their blackhole email.

The possible errors that can be raised are:

  • KT-CT-4123: Unauthorized.
  • KT-CT-1113: Disabled GraphQL field requested.

Deprecated

The 'blackholeEmailAccount' field is deprecated.

Please use `blackholeEmailAccountUser.accounts` query instead.

- Marked as deprecated on 2024-07-09.
- Scheduled for removal on or after 2024-11-01.

Arguments

NameDescription

accountNumber (String!)

The account number.

Query

query BlackholeEmailAccount($accountNumber: String!) {
  blackholeEmailAccount(accountNumber: $accountNumber) {
    number
    address
    accountUserNames {
      ...AccountUserNameTypeFragment
    }
    isBusinessAccount
    isPortfolioLeadAccount
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "blackholeEmailAccount": {
      "number": "abc123",
      "address": "abc123",
      "accountUserNames": [AccountUserNameType],
      "isBusinessAccount": true,
      "isPortfolioLeadAccount": true
    }
  }
}

blackholeEmailAccountUser

Type:BlackholeEmailAccountUserType

URL:https://api.st.kraken.tech/v1/graphql/

Details of account user updating their blackhole email.

This field requires the Authorization header to be set.

Query

query BlackholeEmailAccountUser {
  blackholeEmailAccountUser {
    email
    fullName
    givenName
    familyName
    hasSetPassword
    userId
    userNumber
    hasMobileNumber
    hasDateOfBirth
    accounts {
      ...BlackholeEmailAccountTypeFragment
    }
  }
}

Response

{
  "data": {
    "blackholeEmailAccountUser": {
      "email": "abc123",
      "fullName": "abc123",
      "givenName": "abc123",
      "familyName": "abc123",
      "hasSetPassword": true,
      "userId": "abc123",
      "userNumber": "abc123",
      "hasMobileNumber": true,
      "hasDateOfBirth": true,
      "accounts": [BlackholeEmailAccountType]
    }
  }
}

business

Type:BusinessType

URL:https://api.st.kraken.tech/v1/graphql/

Get details about a business.

The possible errors that can be raised are:

  • KT-CT-11101: The viewer is not authorized to execute the query/mutation. Check the ownership/permissions of provided data.
  • KT-CT-11107: Unauthorized.
  • KT-CT-1605: Invalid input.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

id (ID)

The business ID.

details ([BusinessDetailInput])

List of business detail key-value pairs to filter by.

Query

query Business(
  $id: ID,
  $details: [BusinessDetailInput]
) {
  business(
    id: $id,
    details: $details
  ) {
    id
    name
    number
    businessType
    sectors
    details {
      ...BusinessDetailTypeFragment
    }
    billingAddress {
      ...RichAddressTypeFragment
    }
    legalAddress {
      ...RichAddressTypeFragment
    }
    linkedAccountNumber
    linkedAccountNumbers
    segmentName
    paymentMethods {
      ...PaymentInstructionConnectionTypeConnectionFragment
    }
  }
}

Variables

{
  "id": "abc123",
  "details": BusinessDetailInput
}

Response

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

businessAccountReferralRewardScheme

Type:ReferralSchemeType

URL:https://api.st.kraken.tech/v1/graphql/

Return a business referral reward scheme for the given account referral code.

Arguments

NameDescription

code (String!)

Friend referral code.

Query

query BusinessAccountReferralRewardScheme($code: String!) {
  businessAccountReferralRewardScheme(code: $code) {
    referralUrl
    referralDisplayUrl
    referrerRewardAmount
    referredRewardAmount
    combinedRewardAmount
    loyaltyPointsBonus
    canBeReferred
    code
    referrerGivenName
    referrerFamilyName
    schemeType
    maxRecurrence
    isUsageAtCapacity
  }
}

Variables

{
  "code": "abc123"
}

Response

{
  "data": {
    "businessAccountReferralRewardScheme": {
      "referralUrl": "abc123",
      "referralDisplayUrl": "abc123",
      "referrerRewardAmount": 1,
      "referredRewardAmount": 1,
      "combinedRewardAmount": 1,
      "loyaltyPointsBonus": 1,
      "canBeReferred": true,
      "code": "abc123",
      "referrerGivenName": "abc123",
      "referrerFamilyName": "abc123",
      "schemeType": "abc123",
      "maxRecurrence": 1,
      "isUsageAtCapacity": true
    }
  }
}

businessContract

Type:Contract

URL:https://api.st.kraken.tech/v1/graphql/

Get details about an account contract.

The possible errors that can be raised are:

  • KT-CT-10003: Contract not found.
  • KT-CT-10005: Missing required parameter: either identifier or accountNumber must be provided.
  • KT-CT-10006: Account not found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

identifier (String)

The identifier of the contract.

accountNumber (String)

The account number to find the business contract for.

version (Int)

The version of the contract.

Query

query BusinessContract(
  $identifier: String,
  $accountNumber: String,
  $version: Int
) {
  businessContract(
    identifier: $identifier,
    accountNumber: $accountNumber,
    version: $version
  ) {
    identifier
    title
    party {
      ... on AccountType {
        ...AccountTypeFragment
      }
      ... on BusinessType {
        ...BusinessTypeFragment
      }
    }
    subject {
      ...AccountTypeFragment
    }
    status
    validFrom
    validTo
    signedAt
    cancelledAt
    lifecycle {
      ...ContractVersionFragment
    }
    notes {
      ...ContractNoteTypeFragment
    }
    terms {
      ...TermInterfaceFragment
    }
  }
}

Variables

{
  "identifier": "abc123",
  "accountNumber": "abc123",
  "version": 1
}

Response

{
  "data": {
    "businessContract": {
      "identifier": NonEmptyString,
      "title": "abc123",
      "party": AccountType,
      "subject": [AccountType],
      "status": "REVOKED",
      "validFrom": "2020-01-01T00:00:00.000Z",
      "validTo": "2020-01-01T00:00:00.000Z",
      "signedAt": "2020-01-01T00:00:00.000Z",
      "cancelledAt": "2020-01-01T00:00:00.000Z",
      "lifecycle": ContractVersion,
      "notes": [ContractNoteType],
      "terms": TermInterface
    }
  }
}

call

Type:CallInterface!

URL:https://api.st.kraken.tech/v1/graphql/

Get a call for a given ID.

The possible errors that can be raised are:

  • KT-CT-11802: Call not found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

id (ID!)

The call ID.

Query

query Call($id: ID!) {
  call(id: $id) {
    id
    account {
      ...AccountTypeFragment
    }
    metadata {
      ...CallMetadataItemTypeFragment
    }
  }
}

Variables

{
  "id": "abc123"
}

Response

{
  "data": {
    "call": {
      "id": "abc123",
      "account": AccountType,
      "metadata": CallMetadataItemType
    }
  }
}

callTag

Type:CallTagType!

URL:https://api.st.kraken.tech/v1/graphql/

Get the call tag for a given ID.

The possible errors that can be raised are:

  • KT-CT-11809: Call tag not found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

id (ID!)

The call tag ID.

Query

query CallTag($id: ID!) {
  callTag(id: $id) {
    id
    name
    isActive
  }
}

Variables

{
  "id": "abc123"
}

Response

{
  "data": {
    "callTag": {
      "id": "abc123",
      "name": "abc123",
      "isActive": true
    }
  }
}

Arguments

NameDescription

name (String)

Filter by call tag name.

isActive (Boolean)

Filter by active status.

before (String)

after (String)

first (Int)

last (Int)

Query

query CallTags(
  $name: String,
  $isActive: Boolean,
  $before: String,
  $after: String,
  $first: Int,
  $last: Int
) {
  callTags(
    name: $name,
    isActive: $isActive,
    before: $before,
    after: $after,
    first: $first,
    last: $last
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...CallTagConnectionTypeEdgeFragment
    }
    totalCount
    edgeCount
  }
}

Variables

{
  "name": "abc123",
  "isActive": true,
  "before": "abc123",
  "after": "abc123",
  "first": 1,
  "last": 1
}

Response

{
  "data": {
    "callTags": {
      "pageInfo": PageInfo,
      "edges": CallTagConnectionTypeEdge,
      "totalCount": 1,
      "edgeCount": 1
    }
  }
}

Arguments

NameDescription

accountNumber (String!)

The account number.

before (String)

after (String)

first (Int)

last (Int)

Query

query Campaigns(
  $accountNumber: String!,
  $before: String,
  $after: String,
  $first: Int,
  $last: Int
) {
  campaigns(
    accountNumber: $accountNumber,
    before: $before,
    after: $after,
    first: $first,
    last: $last
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...AccountCampaignConnectionTypeEdgeFragment
    }
    totalCount
    edgeCount
  }
}

Variables

{
  "accountNumber": "abc123",
  "before": "abc123",
  "after": "abc123",
  "first": 1,
  "last": 1
}

Response

{
  "data": {
    "campaigns": {
      "pageInfo": PageInfo,
      "edges": AccountCampaignConnectionTypeEdge,
      "totalCount": 1,
      "edgeCount": 1
    }
  }
}

canRescindAgreement

Type:Boolean

URL:https://api.st.kraken.tech/v1/graphql/

Check if an agreement can be rescinded.

The possible errors that can be raised are:

  • KT-CT-1501: Agreement not found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

agreementId (Int!)

The ID of the agreement to check.

Query

query CanRescindAgreement($agreementId: Int!) {
  canRescindAgreement(agreementId: $agreementId)
}

Variables

{
  "agreementId": 1
}

Response

{
  "data": {
    "canRescindAgreement": true
  }
}

collectionProcessDetails

Type:CollectionProcessDetailsType

URL:https://api.st.kraken.tech/v1/graphql/

Collection process record details.

The possible errors that can be raised are:

  • KT-CT-1111: Unauthorized.
  • KT-CT-11201: No Collection Process Records associated with id.
  • KT-CT-11206: Unable to retrieve disconnection related data for collection process.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

collectionProcessRecordNumber (String!)

The collection process record number.

Query

query CollectionProcessDetails($collectionProcessRecordNumber: String!) {
  collectionProcessDetails(collectionProcessRecordNumber: $collectionProcessRecordNumber) {
    collectionProcessRecordNumber
    isPaused
    isComplete
    isActive
    completionType
    associatedItems {
      ...CollectionProcessRecordAssociatedItemTypeFragment
    }
    pausedDays
    collectionProcessType
    targetObjectIdentifier
  }
}

Variables

{
  "collectionProcessRecordNumber": "abc123"
}

Response

{
  "data": {
    "collectionProcessDetails": {
      "collectionProcessRecordNumber": "abc123",
      "isPaused": true,
      "isComplete": true,
      "isActive": true,
      "completionType": "abc123",
      "associatedItems": [CollectionProcessRecordAssociatedItemType],
      "pausedDays": 1,
      "collectionProcessType": "ACCOUNT",
      "targetObjectIdentifier": "abc123"
    }
  }
}

complaint

Type:ComplaintType

URL:https://api.st.kraken.tech/v1/graphql/

Get a complaint.

The possible errors that can be raised are:

  • KT-CT-12301: Complaint not found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

complaintId (Int!)

Query

query Complaint($complaintId: Int!) {
  complaint(complaintId: $complaintId) {
    id
    contacts {
      ...ComplaintContactConnectionTypeConnectionFragment
    }
    type
    subtype
    creationDate
    resolutionDate
    assigneeId
  }
}

Variables

{
  "complaintId": 1
}

Response

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

consentTypes

Type:[ConsentTypeType]

URL:https://api.st.kraken.tech/v1/graphql/

A list of the consent types available.

Query

query ConsentTypes {
  consentTypes {
    code
    description
    name
    defaultValue
  }
}

Response

{
  "data": {
    "consentTypes": [
      {
        "code": "abc123",
        "description": "abc123",
        "name": "abc123",
        "defaultValue": "ACCEPTED"
      }
    ]
  }
}

contractCreationJourney

Type:ContractCreationJourneyType

URL:https://api.st.kraken.tech/v1/graphql/

Get details about a contract creation journey.

The possible errors that can be raised are:

  • KT-CT-10017: The contract journey could not be found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

number (String!)

The number of the contract journey.

Query

query ContractCreationJourney($number: String!) {
  contractCreationJourney(number: $number) {
    number
    status
    contractDetails {
      ...ContractDetailsFragment
    }
    journeyType
    requestedAt
    orderReference
    notes {
      ...ContractNoteTypeFragment
    }
    context {
      ...ContractCreationContextFragment
    }
  }
}

Variables

{
  "number": "abc123"
}

Response

{
  "data": {
    "contractCreationJourney": {
      "number": NonEmptyString,
      "status": "IN_PROGRESS",
      "contractDetails": ContractDetails,
      "journeyType": "CONTRACT_CREATION",
      "requestedAt": "2020-01-01T00:00:00.000Z",
      "orderReference": "abc123",
      "notes": [ContractNoteType],
      "context": ContractCreationContext
    }
  }
}

contractNoteReasons

Type:[ContractNoteReasonType]

URL:https://api.st.kraken.tech/v1/graphql/

Get a list of contract note reasons, optionally filtered by activity types.

Arguments

NameDescription

activityTypes ([ContractActivityTypeOptions])

Filter reasons applicable to any of the given contract activity types.

Query

query ContractNoteReasons($activityTypes: [ContractActivityTypeOptions]) {
  contractNoteReasons(activityTypes: $activityTypes) {
    slug
    description
    activityTypes
  }
}

Variables

{
  "activityTypes": "ALL_ACTIVITY_TYPES"
}

Response

{
  "data": {
    "contractNoteReasons": [
      {
        "slug": "abc123",
        "description": "abc123",
        "activityTypes": "ALL_ACTIVITY_TYPES"
      }
    ]
  }
}

contracts

Type:[Contract]

URL:https://api.st.kraken.tech/v1/graphql/

Get a list of contracts filtered by party or subject.

The possible errors that can be raised are:

  • KT-CT-10029: Missing contract filters.
  • KT-CT-10030: Filter by subject is not implemented.
  • KT-CT-10031: Invalid party filter.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

filters (ContractFiltersInput!)

Filters to apply when querying contracts. At least one filter must be provided.

Query

query Contracts($filters: ContractFiltersInput!) {
  contracts(filters: $filters) {
    identifier
    title
    party {
      ... on AccountType {
        ...AccountTypeFragment
      }
      ... on BusinessType {
        ...BusinessTypeFragment
      }
    }
    subject {
      ...AccountTypeFragment
    }
    status
    validFrom
    validTo
    signedAt
    cancelledAt
    lifecycle {
      ...ContractVersionFragment
    }
    notes {
      ...ContractNoteTypeFragment
    }
    terms {
      ...TermInterfaceFragment
    }
  }
}

Variables

{
  "filters": ContractFiltersInput
}

Response

{
  "data": {
    "contracts": [
      {
        "identifier": NonEmptyString,
        "title": "abc123",
        "party": AccountType,
        "subject": [AccountType],
        "status": "REVOKED",
        "validFrom": "2020-01-01T00:00:00.000Z",
        "validTo": "2020-01-01T00:00:00.000Z",
        "signedAt": "2020-01-01T00:00:00.000Z",
        "cancelledAt": "2020-01-01T00:00:00.000Z",
        "lifecycle": ContractVersion,
        "notes": [ContractNoteType],
        "terms": TermInterface
      }
    ]
  }
}

Query

query ContributionSchemes {
  contributionSchemes {
    id
    code
    displayName
    taxable
    acceptingContributions
  }
}

Response

{
  "data": {
    "contributionSchemes": [
      {
        "id": "abc123",
        "code": "abc123",
        "displayName": "abc123",
        "taxable": true,
        "acceptingContributions": true
      }
    ]
  }
}

Query

query CurrentFinancialYear {
  currentFinancialYear {
    startAt
    endAt
  }
}

Response

{
  "data": {
    "currentFinancialYear": {
      "startAt": "2020-01-01T00:00:00.000Z",
      "endAt": "2020-01-01T00:00:00.000Z"
    }
  }
}

Arguments

NameDescription

customerAssetId (String!)

Customer asset ID.

Query

query CustomerAsset($customerAssetId: String!) {
  customerAsset(customerAssetId: $customerAssetId) {
    id
    physicalId
    name
    type
    activeFrom
    activeTo
    accountNumber
  }
}

Variables

{
  "customerAssetId": "abc123"
}

Response

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

customerFeedbackForms

Type:CustomerFeedbackFormConnectionTypeConnection

URL:https://api.st.kraken.tech/v1/graphql/

Returns all active customer feedback forms for the account's brand.

Arguments

NameDescription

accountNumber (String!)

The account number.

feedbackSource (CustomerFeedbackSourceChoices)

Feedback sources currently supported.

before (String)

after (String)

first (Int)

last (Int)

Query

query CustomerFeedbackForms(
  $accountNumber: String!,
  $feedbackSource: CustomerFeedbackSourceChoices,
  $before: String,
  $after: String,
  $first: Int,
  $last: Int
) {
  customerFeedbackForms(
    accountNumber: $accountNumber,
    feedbackSource: $feedbackSource,
    before: $before,
    after: $after,
    first: $first,
    last: $last
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...CustomerFeedbackFormConnectionTypeEdgeFragment
    }
    totalCount
    edgeCount
  }
}

Variables

{
  "accountNumber": "abc123",
  "feedbackSource": "FEEDBACK_SOURCE_PHONE_CALL_FOLLOW_UP",
  "before": "abc123",
  "after": "abc123",
  "first": 1,
  "last": 1
}

Response

{
  "data": {
    "customerFeedbackForms": {
      "pageInfo": PageInfo,
      "edges": CustomerFeedbackFormConnectionTypeEdge,
      "totalCount": 1,
      "edgeCount": 1
    }
  }
}

dashboardScreen

Type:Dashboard

URL:https://api.st.kraken.tech/v1/graphql/

Get a dashboard screen to render in the form of a json list of sections containing cards or grouped cards each with an order attribute.

The possible errors that can be raised are:

  • KT-CT-3820: Received both ledger ID and number.
  • KT-CT-8001: No backend screen available.
  • KT-CT-8005: Backend screen does not support parameters.
  • KT-CT-8008: Incorrect or missing data necessary to build the screen.
  • KT-CT-8006: Error applying parameters to backend screen.
  • KT-CT-8009: Error translating screen content.
  • KT-CT-8010: Invalid step ID.
  • KT-CT-8011: Cannot rewind past a previous irreversible step.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

dashboardId (ID!)

The ID of the dashboard type screen to return.

accountNumber (String!)

The account number of the user.

maxVersionSupported (Int!)

The maximum version of dahshboard type screens supported by the client.

ledgerId (String)

The ledger id associated to the account.

ledgerNumber (String)

The ledger number associated to the account.

propertyId (String)

The property id associated to the account.

params ([BackendScreenParamInputType])

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

Query

query DashboardScreen(
  $dashboardId: ID!,
  $accountNumber: String!,
  $maxVersionSupported: Int!,
  $ledgerId: String,
  $ledgerNumber: String,
  $propertyId: String,
  $params: [BackendScreenParamInputType]
) {
  dashboardScreen(
    dashboardId: $dashboardId,
    accountNumber: $accountNumber,
    maxVersionSupported: $maxVersionSupported,
    ledgerId: $ledgerId,
    ledgerNumber: $ledgerNumber,
    propertyId: $propertyId,
    params: $params
  ) {
    id
    typename
    dashboardItems {
      ...SectionTypeFragment
    }
    serialisedDashboardItems
  }
}

Variables

{
  "dashboardId": "abc123",
  "accountNumber": "abc123",
  "maxVersionSupported": 1,
  "ledgerId": "abc123",
  "ledgerNumber": "abc123",
  "propertyId": "abc123",
  "params": BackendScreenParamInputType
}

Response

{
  "data": {
    "dashboardScreen": {
      "id": "abc123",
      "typename": "abc123",
      "dashboardItems": SectionType,
      "serialisedDashboardItems": "abc123"
    }
  }
}

defaultPaymentInstruction

Type:PaymentInstructionType

URL:https://api.st.kraken.tech/v1/graphql/

Get the default payment instruction for the account's main ledger.

Deprecated

The 'defaultPaymentInstruction' field is deprecated.

Please use 'usablePaymentInstructions' on the Ledger type to get all usable instructions, or 'paymentPreferenceAtTime' on the Ledger type to get a specific one. Both require explicitly requesting a ledger.

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

Arguments

NameDescription

accountNumber (String!)

The account number.

instructionType (PaymentType)

Provide an option to get either a CARD or DIRECT_DEBIT instruction.

Query

query DefaultPaymentInstruction(
  $accountNumber: String!,
  $instructionType: PaymentType
) {
  defaultPaymentInstruction(
    accountNumber: $accountNumber,
    instructionType: $instructionType
  ) {
    id
    status
    sortCode
    iban
    accountHolder
    instructionType
    cardPaymentNetwork
    cardExpiryMonth
    cardExpiryYear
    supplementaryLedger {
      ...SupplementaryLedgerTypeFragment
    }
    bankCode
    accountType
    validFrom
    vendor
    cardNumber
    cardType
    maskedAccountIdentifier
    owners {
      ...PaymentInstructionOwnerTypeFragment
    }
  }
}

Variables

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

Response

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

defaultRawScore

Type:Int

URL:https://api.st.kraken.tech/v1/graphql/

Get default raw score for a customer feedback form.

The possible errors that can be raised are:

  • KT-CT-5513: Invalid data.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

formId (Int!)

Query

query DefaultRawScore($formId: Int!) {
  defaultRawScore(formId: $formId)
}

Variables

{
  "formId": 1
}

Response

{
  "data": {
    "defaultRawScore": 1
  }
}

depositAgreements

Type:[DepositAgreementOutput]

URL:https://api.st.kraken.tech/v1/graphql/

Get deposit agreements for a given account.

The possible errors that can be raised are:

  • KT-CT-4177: Unauthorized.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

accountNumber (String!)

Query

query DepositAgreements($accountNumber: String!) {
  depositAgreements(accountNumber: $accountNumber) {
    depositKey
    depositAmount
    acceptedAt
    fulfilledAt
    collectionDate
    dueDate
    returnStrategy
    currentEligibilityStatus {
      ...CurrentEligibilityStatusOutputFragment
    }
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "depositAgreements": [
      {
        "depositKey": "abc123",
        "depositAmount": 1,
        "acceptedAt": "2020-01-01T00:00:00.000Z",
        "fulfilledAt": "2020-01-01T00:00:00.000Z",
        "collectionDate": "2020-01-01",
        "dueDate": "2020-01-01",
        "returnStrategy": "abc123",
        "currentEligibilityStatus": CurrentEligibilityStatusOutput
      }
    ]
  }
}

domesticAccountReferralRewardScheme

Type:ReferralSchemeType

URL:https://api.st.kraken.tech/v1/graphql/

Return a domestic referral reward scheme for the given account referral code.

Arguments

NameDescription

code (String!)

Friend referral code.

Query

query DomesticAccountReferralRewardScheme($code: String!) {
  domesticAccountReferralRewardScheme(code: $code) {
    referralUrl
    referralDisplayUrl
    referrerRewardAmount
    referredRewardAmount
    combinedRewardAmount
    loyaltyPointsBonus
    canBeReferred
    code
    referrerGivenName
    referrerFamilyName
    schemeType
    maxRecurrence
    isUsageAtCapacity
  }
}

Variables

{
  "code": "abc123"
}

Response

{
  "data": {
    "domesticAccountReferralRewardScheme": {
      "referralUrl": "abc123",
      "referralDisplayUrl": "abc123",
      "referrerRewardAmount": 1,
      "referredRewardAmount": 1,
      "combinedRewardAmount": 1,
      "loyaltyPointsBonus": 1,
      "canBeReferred": true,
      "code": "abc123",
      "referrerGivenName": "abc123",
      "referrerFamilyName": "abc123",
      "schemeType": "abc123",
      "maxRecurrence": 1,
      "isUsageAtCapacity": true
    }
  }
}

domesticJoiningRewardScheme

Type:ReferralSchemeType

URL:https://api.st.kraken.tech/v1/graphql/

Return a joining reward scheme with the given code, if it's active. A joining reward can be a signup reward or a promotional reward.

Arguments

NameDescription

code (String!)

Reward code for the scheme.

Query

query DomesticJoiningRewardScheme($code: String!) {
  domesticJoiningRewardScheme(code: $code) {
    referralUrl
    referralDisplayUrl
    referrerRewardAmount
    referredRewardAmount
    combinedRewardAmount
    loyaltyPointsBonus
    canBeReferred
    code
    referrerGivenName
    referrerFamilyName
    schemeType
    maxRecurrence
    isUsageAtCapacity
  }
}

Variables

{
  "code": "abc123"
}

Response

{
  "data": {
    "domesticJoiningRewardScheme": {
      "referralUrl": "abc123",
      "referralDisplayUrl": "abc123",
      "referrerRewardAmount": 1,
      "referredRewardAmount": 1,
      "combinedRewardAmount": 1,
      "loyaltyPointsBonus": 1,
      "canBeReferred": true,
      "code": "abc123",
      "referrerGivenName": "abc123",
      "referrerFamilyName": "abc123",
      "schemeType": "abc123",
      "maxRecurrence": 1,
      "isUsageAtCapacity": true
    }
  }
}

domesticSignupRewardScheme

Type:ReferralSchemeType

URL:https://api.st.kraken.tech/v1/graphql/

Return a signup referral reward scheme with the given code, if it's active.

Arguments

NameDescription

code (String!)

Reward code for the scheme.

Query

query DomesticSignupRewardScheme($code: String!) {
  domesticSignupRewardScheme(code: $code) {
    referralUrl
    referralDisplayUrl
    referrerRewardAmount
    referredRewardAmount
    combinedRewardAmount
    loyaltyPointsBonus
    canBeReferred
    code
    referrerGivenName
    referrerFamilyName
    schemeType
    maxRecurrence
    isUsageAtCapacity
  }
}

Variables

{
  "code": "abc123"
}

Response

{
  "data": {
    "domesticSignupRewardScheme": {
      "referralUrl": "abc123",
      "referralDisplayUrl": "abc123",
      "referrerRewardAmount": 1,
      "referredRewardAmount": 1,
      "combinedRewardAmount": 1,
      "loyaltyPointsBonus": 1,
      "canBeReferred": true,
      "code": "abc123",
      "referrerGivenName": "abc123",
      "referrerFamilyName": "abc123",
      "schemeType": "abc123",
      "maxRecurrence": 1,
      "isUsageAtCapacity": true
    }
  }
}

eligibilityToJoinLoyaltyPointsProgram

Type:LoyaltyPointsProgramEligibilityType

URL:https://api.st.kraken.tech/v1/graphql/

Check if an account is eligible to join the loyalty points program.

The possible errors that can be raised are:

  • KT-CT-9202: Loyalty Points adapter not configured.
  • KT-CT-9218: Unauthorized.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

input (LoyaltyPointsProgramEligibilityInput!)

Query

query EligibilityToJoinLoyaltyPointsProgram($input: LoyaltyPointsProgramEligibilityInput!) {
  eligibilityToJoinLoyaltyPointsProgram(input: $input) {
    isEligible
    primaryIneligibilityReason
  }
}

Response

{
  "data": {
    "eligibilityToJoinLoyaltyPointsProgram": {
      "isEligible": true,
      "primaryIneligibilityReason": "abc123"
    }
  }
}

Arguments

NameDescription

id (ID!)

Query

query EmbeddedNetwork($id: ID!) {
  embeddedNetwork(id: $id) {
    id
    name
    embeddedProperties {
      ...EmbeddedPropertyTypeFragment
    }
  }
}

Variables

{
  "id": "abc123"
}

Response

{
  "data": {
    "embeddedNetwork": {
      "id": "abc123",
      "name": "abc123",
      "embeddedProperties": [EmbeddedPropertyType]
    }
  }
}

Query

query EnergyMixData {
  energyMixData {
    carbonIntensityIndex
  }
}

Response

{
  "data": {
    "energyMixData": {
      "carbonIntensityIndex": "abc123"
    }
  }
}

estimateReading

Type:EstimatedReadingType

URL:https://api.st.kraken.tech/v1/graphql/

Get the estimated reading for the given meter.

The possible errors that can be raised are:

  • KT-GB-6415: Water meter cannot be found.
  • KT-GB-6416: Unable to estimate the reading for the given meter.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

estimateOn (Date!)

Date to estimate reading on.

meterExternalReference (String!)

Meter external reference.

serialNumber (String)

Meter serial number.

Query

query EstimateReading(
  $estimateOn: Date!,
  $meterExternalReference: String!,
  $serialNumber: String
) {
  estimateReading(
    estimateOn: $estimateOn,
    meterExternalReference: $meterExternalReference,
    serialNumber: $serialNumber
  ) {
    estimateOn
    estimatedValue
  }
}

Variables

{
  "estimateOn": "2020-01-01",
  "meterExternalReference": "abc123",
  "serialNumber": "abc123"
}

Response

{
  "data": {
    "estimateReading": {
      "estimateOn": "2020-01-01",
      "estimatedValue": "1.0"
    }
  }
}

externalAccountEvents

Type:ExternalAccountEventConnectionTypeConnection

URL:https://api.st.kraken.tech/v1/graphql/

Get a list of audit account events, of type external, for a given account.

Arguments

NameDescription

accountNumber (String!)

Account number to filter by.

before (String)

after (String)

first (Int)

last (Int)

Query

query ExternalAccountEvents(
  $accountNumber: String!,
  $before: String,
  $after: String,
  $first: Int,
  $last: Int
) {
  externalAccountEvents(
    accountNumber: $accountNumber,
    before: $before,
    after: $after,
    first: $first,
    last: $last
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...ExternalAccountEventConnectionTypeEdgeFragment
    }
    totalCount
    edgeCount
  }
}

Variables

{
  "accountNumber": "abc123",
  "before": "abc123",
  "after": "abc123",
  "first": 1,
  "last": 1
}

Response

{
  "data": {
    "externalAccountEvents": {
      "pageInfo": PageInfo,
      "edges": ExternalAccountEventConnectionTypeEdge,
      "totalCount": 1,
      "edgeCount": 1
    }
  }
}

fraudMeterPointChecks

Type:FraudMeterPointCheckType

URL:https://api.st.kraken.tech/v1/graphql/

Check if a given meter point ID is in suspicious meter point IDs list.

Arguments

NameDescription

meterPointId (String!)

The meter point ID.

Query

query FraudMeterPointChecks($meterPointId: String!) {
  fraudMeterPointChecks(meterPointId: $meterPointId) {
    meterPointId
    isInSuspiciousList
  }
}

Variables

{
  "meterPointId": "abc123"
}

Response

{
  "data": {
    "fraudMeterPointChecks": {
      "meterPointId": "abc123",
      "isInSuspiciousList": true
    }
  }
}

fraudRiskLevel

Type:FinancialRiskLevelType

URL:https://api.st.kraken.tech/v1/graphql/

Check if a given ID and type have a financial risk level.

Arguments

NameDescription

identifierValue (String!)

The ID to be checked.

identifierType (String!)

The type of object the ID represents.

Query

query FraudRiskLevel(
  $identifierValue: String!,
  $identifierType: String!
) {
  fraudRiskLevel(
    identifierValue: $identifierValue,
    identifierType: $identifierType
  ) {
    identifierValue
    identifierType
    riskLevel
    isInRiskList
  }
}

Variables

{
  "identifierValue": "abc123",
  "identifierType": "abc123"
}

Response

{
  "data": {
    "fraudRiskLevel": {
      "identifierValue": "abc123",
      "identifierType": "abc123",
      "riskLevel": "1.0",
      "isInRiskList": true
    }
  }
}

Arguments

NameDescription

externalReference (String!)

The external reference of the appointment to return.

agent (OnSiteJobsAgent!)

The agent for the appointment.

Query

query GetOnSiteJobsAppointmentByExternalReference(
  $externalReference: String!,
  $agent: OnSiteJobsAgent!
) {
  getOnSiteJobsAppointmentByExternalReference(
    externalReference: $externalReference,
    agent: $agent
  ) {
    id
    externalReference
    createdAt
    startAt
    endAt
    preferredStartDate
    deadlineDate
    jobDetails
    jobNotes
    comments
    cancellationSubCategory
    externalJobType
    externalJobTypeMapping {
      ...OnSiteJobsExternalJobTypeMappingTypeFragment
    }
    krakenWorkCategory
    agent
    status
    commsStrategy
    cancellationCategory
    appointmentActions {
      ...OnSiteJobsAppointmentActionConnectionTypeConnectionFragment
    }
    assets {
      ...OnSiteJobsAssetConnectionTypeConnectionFragment
    }
  }
}

Variables

{
  "externalReference": "abc123",
  "agent": "GENERIC_AGENT"
}

Response

{
  "data": {
    "getOnSiteJobsAppointmentByExternalReference": {
      "id": "500c164d-38c7-4f74-9ac6-be210197e9e4",
      "externalReference": "abc123",
      "createdAt": "2020-01-01T00:00:00.000Z",
      "startAt": "2020-01-01T00:00:00.000Z",
      "endAt": "2020-01-01T00:00:00.000Z",
      "preferredStartDate": "2020-01-01",
      "deadlineDate": "2020-01-01",
      "jobDetails": {"key": "value"},
      "jobNotes": {"key": "value"},
      "comments": "abc123",
      "cancellationSubCategory": "abc123",
      "externalJobType": "abc123",
      "externalJobTypeMapping": OnSiteJobsExternalJobTypeMappingType,
      "krakenWorkCategory": "EXCHANGE",
      "agent": "GENERIC_AGENT",
      "status": "PENDING",
      "commsStrategy": "SEND_ALL",
      "cancellationCategory": "CANCELLED_BY_CUSTOMER",
      "appointmentActions": OnSiteJobsAppointmentActionConnectionTypeConnection,
      "assets": OnSiteJobsAssetConnectionTypeConnection
    }
  }
}

Arguments

NameDescription

appointmentId (UUID)

The Kraken ID of the appointment to return.

Query

query GetOnSiteJobsAppointmentById($appointmentId: UUID) {
  getOnSiteJobsAppointmentById(appointmentId: $appointmentId) {
    id
    externalReference
    createdAt
    startAt
    endAt
    preferredStartDate
    deadlineDate
    jobDetails
    jobNotes
    comments
    cancellationSubCategory
    externalJobType
    externalJobTypeMapping {
      ...OnSiteJobsExternalJobTypeMappingTypeFragment
    }
    krakenWorkCategory
    agent
    status
    commsStrategy
    cancellationCategory
    appointmentActions {
      ...OnSiteJobsAppointmentActionConnectionTypeConnectionFragment
    }
    assets {
      ...OnSiteJobsAssetConnectionTypeConnectionFragment
    }
  }
}

Variables

{
  "appointmentId": "500c164d-38c7-4f74-9ac6-be210197e9e4"
}

Response

{
  "data": {
    "getOnSiteJobsAppointmentById": {
      "id": "500c164d-38c7-4f74-9ac6-be210197e9e4",
      "externalReference": "abc123",
      "createdAt": "2020-01-01T00:00:00.000Z",
      "startAt": "2020-01-01T00:00:00.000Z",
      "endAt": "2020-01-01T00:00:00.000Z",
      "preferredStartDate": "2020-01-01",
      "deadlineDate": "2020-01-01",
      "jobDetails": {"key": "value"},
      "jobNotes": {"key": "value"},
      "comments": "abc123",
      "cancellationSubCategory": "abc123",
      "externalJobType": "abc123",
      "externalJobTypeMapping": OnSiteJobsExternalJobTypeMappingType,
      "krakenWorkCategory": "EXCHANGE",
      "agent": "GENERIC_AGENT",
      "status": "PENDING",
      "commsStrategy": "SEND_ALL",
      "cancellationCategory": "CANCELLED_BY_CUSTOMER",
      "appointmentActions": OnSiteJobsAppointmentActionConnectionTypeConnection,
      "assets": OnSiteJobsAssetConnectionTypeConnection
    }
  }
}

getOnSiteJobsAppointmentSlots

Type:OnSiteJobsAppointmentSlotResultsType

URL:https://api.st.kraken.tech/v1/graphql/

Get appointment slot results using appointment booking session ID.

Arguments

NameDescription

appointmentBookingSessionId (UUID!)

Appointment booking session ID to fetch slots for. ID can be obtained via startOnSiteJobsAppointmentBookingSession mutation.

appointmentDate (Date!)

Appointment date (inclusive) to fetch slots from.

Query

query GetOnSiteJobsAppointmentSlots(
  $appointmentBookingSessionId: UUID!,
  $appointmentDate: Date!
) {
  getOnSiteJobsAppointmentSlots(
    appointmentBookingSessionId: $appointmentBookingSessionId,
    appointmentDate: $appointmentDate
  ) {
    slots {
      ...OnSiteJobsAppointmentSlotTypeFragment
    }
    isComplete
  }
}

Variables

{
  "appointmentBookingSessionId": "500c164d-38c7-4f74-9ac6-be210197e9e4",
  "appointmentDate": "2020-01-01"
}

Response

{
  "data": {
    "getOnSiteJobsAppointmentSlots": {
      "slots": OnSiteJobsAppointmentSlotType,
      "isComplete": true
    }
  }
}

getOnSiteJobsCheckResults

Type:OnSiteJobsCheckResultsType

URL:https://api.st.kraken.tech/v1/graphql/

Get check results for creating requests and appointments.

Arguments

NameDescription

supplyPointIdentifierToMarketNameMapping ([SupplyPointIdentifierToMarketNameMappingInput])

Supply point identifier to market name mapping. If this is provided, supplyPointInternalIds cannot be provided. Either one of them must be provided.

supplyPointInternalIds ([Int])

List of internal IDs of supply points. If this is provided, supplyPointIdentifierToMarketNameMapping cannot be provided. Either one of them must be provided.

jobType (String)

Job type for appointment checks.

Query

query GetOnSiteJobsCheckResults(
  $supplyPointIdentifierToMarketNameMapping: [SupplyPointIdentifierToMarketNameMappingInput],
  $supplyPointInternalIds: [Int],
  $jobType: String
) {
  getOnSiteJobsCheckResults(
    supplyPointIdentifierToMarketNameMapping: $supplyPointIdentifierToMarketNameMapping,
    supplyPointInternalIds: $supplyPointInternalIds,
    jobType: $jobType
  ) {
    requestCheckResults {
      ...CheckResultTypeFragment
    }
    appointmentCheckResults {
      ...CheckResultTypeFragment
    }
    canCreateRequest
    canCreateAppointment
    hasRequestWarnings
    hasAppointmentWarnings
  }
}

Variables

{
  "supplyPointIdentifierToMarketNameMapping": SupplyPointIdentifierToMarketNameMappingInput,
  "supplyPointInternalIds": [1],
  "jobType": "abc123"
}

Response

{
  "data": {
    "getOnSiteJobsCheckResults": {
      "requestCheckResults": [CheckResultType],
      "appointmentCheckResults": [CheckResultType],
      "canCreateRequest": true,
      "canCreateAppointment": true,
      "hasRequestWarnings": true,
      "hasAppointmentWarnings": true
    }
  }
}

getOnSiteJobsJobTypes

Type:[OnSiteJobsJobTypeType]

URL:https://api.st.kraken.tech/v1/graphql/

Get available job types for an on-site jobs request.

Arguments

NameDescription

requestId (UUID!)

The ID of the request for which to fetch available job types.

workCategory (OnSiteJobsWorkCategory)

Work category to filter job types by. If it's left as blank, all job types will be returned.

Query

query GetOnSiteJobsJobTypes(
  $requestId: UUID!,
  $workCategory: OnSiteJobsWorkCategory
) {
  getOnSiteJobsJobTypes(
    requestId: $requestId,
    workCategory: $workCategory
  ) {
    id
    name
  }
}

Variables

{
  "requestId": "500c164d-38c7-4f74-9ac6-be210197e9e4",
  "workCategory": "EXCHANGE"
}

Response

{
  "data": {
    "getOnSiteJobsJobTypes": [
      {
        "id": "abc123",
        "name": "abc123"
      }
    ]
  }
}

Arguments

NameDescription

requestId (UUID)

The ID of the request to return.

Query

query GetOnSiteJobsRequestById($requestId: UUID) {
  getOnSiteJobsRequestById(requestId: $requestId) {
    id
    reason
    subReason
    isEmergency
    externalReference
    agent
    comment
    account
    marketSupplyPoints {
      ...SupplyPointConnectionTypeConnectionFragment
    }
    property {
      ...PropertyTypeFragment
    }
    status
    overallActionsStatus
    requestActions {
      ...OnSiteJobsRequestActionConnectionTypeConnectionFragment
    }
    assets {
      ...OnSiteJobsAssetConnectionTypeConnectionFragment
    }
    appointments {
      ...OnSiteJobsAppointmentConnectionTypeConnectionFragment
    }
    createdBy
  }
}

Variables

{
  "requestId": "500c164d-38c7-4f74-9ac6-be210197e9e4"
}

Response

{
  "data": {
    "getOnSiteJobsRequestById": {
      "id": "500c164d-38c7-4f74-9ac6-be210197e9e4",
      "reason": "abc123",
      "subReason": "abc123",
      "isEmergency": true,
      "externalReference": "abc123",
      "agent": "abc123",
      "comment": "abc123",
      "account": "abc123",
      "marketSupplyPoints": SupplyPointConnectionTypeConnection,
      "property": PropertyType,
      "status": "BOOKED",
      "overallActionsStatus": "SKIPPED",
      "requestActions": OnSiteJobsRequestActionConnectionTypeConnection,
      "assets": OnSiteJobsAssetConnectionTypeConnection,
      "appointments": OnSiteJobsAppointmentConnectionTypeConnection,
      "createdBy": 1
    }
  }
}

Arguments

NameDescription

supplyPointsToMarketNamesMapping ([SupplyPointIdentifierToMarketNameMappingInput])

A list of supply point identifiers to filter requests by. If this is provided, supplyPointInternalIds cannot be provided.

supplyPointInternalIds ([Int])

List of internal IDs of supply points to filter requests by. If this is provided, supplyPointsToMarketNamesMapping cannot be provided.

statuses ([OnSiteJobsRequestStatus])

A list of statuses to filter requests by.

before (String)

after (String)

first (Int)

last (Int)

Query

query GetOnSiteJobsRequests(
  $supplyPointsToMarketNamesMapping: [SupplyPointIdentifierToMarketNameMappingInput],
  $supplyPointInternalIds: [Int],
  $statuses: [OnSiteJobsRequestStatus],
  $before: String,
  $after: String,
  $first: Int,
  $last: Int
) {
  getOnSiteJobsRequests(
    supplyPointsToMarketNamesMapping: $supplyPointsToMarketNamesMapping,
    supplyPointInternalIds: $supplyPointInternalIds,
    statuses: $statuses,
    before: $before,
    after: $after,
    first: $first,
    last: $last
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...OnSiteJobsRequestConnectionTypeEdgeFragment
    }
    totalCount
    edgeCount
  }
}

Variables

{
  "supplyPointsToMarketNamesMapping": SupplyPointIdentifierToMarketNameMappingInput,
  "supplyPointInternalIds": [1],
  "statuses": "BOOKED",
  "before": "abc123",
  "after": "abc123",
  "first": 1,
  "last": 1
}

Response

{
  "data": {
    "getOnSiteJobsRequests": {
      "pageInfo": PageInfo,
      "edges": OnSiteJobsRequestConnectionTypeEdge,
      "totalCount": 1,
      "edgeCount": 1
    }
  }
}

Arguments

NameDescription

marketName (String!)

Market name of the products to list.

productType ([String])

Types of the products to filter by.

code ([String])

Code of the products to filter by.

before (String)

after (String)

first (Int)

last (Int)

Query

query GoodsProducts(
  $marketName: String!,
  $productType: [String],
  $code: [String],
  $before: String,
  $after: String,
  $first: Int,
  $last: Int
) {
  goodsProducts(
    marketName: $marketName,
    productType: $productType,
    code: $code,
    before: $before,
    after: $after,
    first: $first,
    last: $last
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...GoodsProductConnectionTypeEdgeFragment
    }
    totalCount
    edgeCount
  }
}

Variables

{
  "marketName": "abc123",
  "productType": ["abc123"],
  "code": ["abc123"],
  "before": "abc123",
  "after": "abc123",
  "first": 1,
  "last": 1
}

Response

{
  "data": {
    "goodsProducts": {
      "pageInfo": PageInfo,
      "edges": GoodsProductConnectionTypeEdge,
      "totalCount": 1,
      "edgeCount": 1
    }
  }
}

Arguments

NameDescription

accountNumber (String!)

The account number.

Query

query GoodsPurchases($accountNumber: String!) {
  goodsPurchases(accountNumber: $accountNumber) {
    code
    ledgerId
    ledgerNumber
    goodsSaleItems {
      ...GoodsSaleItemFragment
    }
    goodsGrants {
      ...GoodsGrantFragment
    }
    marketName
    marketParams
    clientParams
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "goodsPurchases": [
      {
        "code": "abc123",
        "ledgerId": "abc123",
        "ledgerNumber": "abc123",
        "goodsSaleItems": [GoodsSaleItem],
        "goodsGrants": [GoodsGrant],
        "marketName": "abc123",
        "marketParams": {"key": "value"},
        "clientParams": {"key": "value"}
      }
    ]
  }
}

goodsQuotes

Type:[GoodsQuote]

URL:https://api.st.kraken.tech/v1/graphql/

List quotes given an account number or retrieve a Goods quote given a quote code.

The possible errors that can be raised are:

  • KT-CT-8204: Invalid arguments.
  • KT-CT-8223: Unauthorized.
  • KT-CT-8201: Received an invalid quoteId.
  • KT-CT-8204: Invalid arguments.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

accountNumber (String)

The account number.

quoteCode (String)

The quote code.

Query

query GoodsQuotes(
  $accountNumber: String,
  $quoteCode: String
) {
  goodsQuotes(
    accountNumber: $accountNumber,
    quoteCode: $quoteCode
  ) {
    id
    code
    totalNetAmount
    quotedAt
    goodsQuotedProducts {
      ...GoodsQuotedProductFragment
    }
    hasQuoteExpired
  }
}

Variables

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

Response

{
  "data": {
    "goodsQuotes": [
      {
        "id": "abc123",
        "code": "abc123",
        "totalNetAmount": 1,
        "quotedAt": "2020-01-01T00:00:00.000Z",
        "goodsQuotedProducts": [GoodsQuotedProduct],
        "hasQuoteExpired": true
      }
    ]
  }
}

Query

query InboundCallAverageWaitTime {
  inboundCallAverageWaitTime {
    yesterday
    recent
  }
}

Response

{
  "data": {
    "inboundCallAverageWaitTime": {
      "yesterday": 1,
      "recent": 1
    }
  }
}

initialPaymentEstimate

Type:InitialPaymentEstimateType!

URL:https://api.st.kraken.tech/v1/graphql/

Get the initial payment estimate for the given account.

The possible errors that can be raised are:

  • KT-CT-3815: No active payment schedule found for this account.
  • KT-CT-8802: Supply point missing area code.
  • KT-GB-8801: No property type found for the supply point.
  • KT-CT-6627: Property is missing number of occupants.
  • KT-CT-5821: No agreement found.
  • KT-CT-4192: Account has no supply points.
  • KT-CT-4193: Unexpected number of supply points.
  • KT-GB-3812: No assessed rates found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

accountNumber (String!)

The account number.

Query

query InitialPaymentEstimate($accountNumber: String!) {
  initialPaymentEstimate(accountNumber: $accountNumber) {
    paymentAmount
    paymentFrequency
    paymentFrequencyMultiplier
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "initialPaymentEstimate": {
      "paymentAmount": 1,
      "paymentFrequency": "Weekly",
      "paymentFrequencyMultiplier": 1
    }
  }
}

inkCommsTemplate

Type:String!

URL:https://api.st.kraken.tech/v1/graphql/

Fetch the content of a given comms template name.

The possible errors that can be raised are:

  • KT-CT-7648: The comms template was not found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

templateIdentifier (String!)

The identifier of the comms template.

Query

query InkCommsTemplate($templateIdentifier: String!) {
  inkCommsTemplate(templateIdentifier: $templateIdentifier)
}

Variables

{
  "templateIdentifier": "abc123"
}

Response

{
  "data": {
    "inkCommsTemplate": "abc123"
  }
}

inkConversation

Type:InkConversation!

URL:https://api.st.kraken.tech/v1/graphql/

Get the Ink conversation for a given account.

The possible errors that can be raised are:

  • KT-CT-7612: The Ink conversation was not found.
  • KT-CT-4177: Unauthorized.
  • KT-CT-7610: No Ink conversation for account.
  • KT-CT-7617: Must supply account number or relay id to get a conversation.
  • KT-CT-7638: Invalid conversation ID.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

accountNumber (String)

The account number.

conversationRelayId (String)

The conversation's relay id.

Query

query InkConversation(
  $accountNumber: String,
  $conversationRelayId: String
) {
  inkConversation(
    accountNumber: $accountNumber,
    conversationRelayId: $conversationRelayId
  ) {
    id
    status
    contactChannelIdentities {
      ...InkContactChannelIdentitiesFragment
    }
    accountUsers {
      ...AccountUserTypeFragment
    }
    accountNumber
    events {
      ...InkConversationEventsConnectionFragment
    }
    buckets {
      ...InkBucketFragment
    }
    tags {
      ...InkTagFragment
    }
  }
}

Variables

{
  "accountNumber": "abc123",
  "conversationRelayId": "abc123"
}

Response

{
  "data": {
    "inkConversation": {
      "id": "abc123",
      "status": "OPEN",
      "contactChannelIdentities": InkContactChannelIdentities,
      "accountUsers": [AccountUserType],
      "accountNumber": "abc123",
      "events": InkConversationEventsConnection,
      "buckets": [InkBucket],
      "tags": [InkTag]
    }
  }
}

inkMessage

Type:InkMessage!

URL:https://api.st.kraken.tech/v1/graphql/

Get the content for a given message.

The possible errors that can be raised are:

  • KT-CT-7611: The message was not found.
  • KT-CT-7638: Invalid conversation ID.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

messageRelayId (String!)

The message's relay id.

Query

query InkMessage($messageRelayId: String!) {
  inkMessage(messageRelayId: $messageRelayId) {
    ... on InkEmail {
      ...InkEmailFragment
    }
    ... on InkSMS {
      ...InkSMSFragment
    }
    ... on InkLine {
      ...InkLineFragment
    }
    ... on InkWhatsApp {
      ...InkWhatsAppFragment
    }
    ... on InkTwilioWhatsApp {
      ...InkTwilioWhatsAppFragment
    }
    ... on InkPost {
      ...InkPostFragment
    }
    ... on InkGenericMessage {
      ...InkGenericMessageFragment
    }
    ... on InkLiveChatMessage {
      ...InkLiveChatMessageFragment
    }
  }
}

Variables

{
  "messageRelayId": "abc123"
}

Response

{
  "data": {
    "inkMessage": InkEmail
  }
}

inkMessageAttributes

Type:InkMessageAttributes!

URL:https://api.st.kraken.tech/v1/graphql/

Get attributes of a message at time of query.

The possible errors that can be raised are:

  • KT-CT-7611: The message was not found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

vendor (String!)

The message's vendor.

vendorId (String!)

The message's vendor id.

Query

query InkMessageAttributes(
  $vendor: String!,
  $vendorId: String!
) {
  inkMessageAttributes(
    vendor: $vendor,
    vendorId: $vendorId
  ) {
    accounts
    accountType
    buckets
    conversationId
    hourOccurredAt
    hoursWaiting
    isAssignedToUserBucket
    isFirstFromContact
    isNewThread
    opsTeam
    recentlyReceivedAutoReplies
    replyToCommsSms
    weekDayOccurredAt
  }
}

Variables

{
  "vendor": "abc123",
  "vendorId": "abc123"
}

Response

{
  "data": {
    "inkMessageAttributes": {
      "accounts": "abc123",
      "accountType": "abc123",
      "buckets": ["abc123"],
      "conversationId": 1,
      "hourOccurredAt": 1,
      "hoursWaiting": 1,
      "isAssignedToUserBucket": true,
      "isFirstFromContact": true,
      "isNewThread": true,
      "opsTeam": "abc123",
      "recentlyReceivedAutoReplies": "abc123",
      "replyToCommsSms": "abc123",
      "weekDayOccurredAt": 1
    }
  }
}

inkMessageTextContent

Type:String!

URL:https://api.st.kraken.tech/v1/graphql/

Fetch the text content of a given message.

The possible errors that can be raised are:

  • KT-CT-7611: The message was not found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

messageId (ID!)

The message's id or relay id.

Query

query InkMessageTextContent($messageId: ID!) {
  inkMessageTextContent(messageId: $messageId)
}

Variables

{
  "messageId": "abc123"
}

Response

{
  "data": {
    "inkMessageTextContent": "abc123"
  }
}

Arguments

NameDescription

before (String)

after (String)

first (Int)

last (Int)

Query

query InternalCompanies(
  $before: String,
  $after: String,
  $first: Int,
  $last: Int
) {
  internalCompanies(
    before: $before,
    after: $after,
    first: $first,
    last: $last
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...InternalCompanyConnectionTypeEdgeFragment
    }
    totalCount
    edgeCount
  }
}

Variables

{
  "before": "abc123",
  "after": "abc123",
  "first": 1,
  "last": 1
}

Response

{
  "data": {
    "internalCompanies": {
      "pageInfo": PageInfo,
      "edges": InternalCompanyConnectionTypeEdge,
      "totalCount": 1,
      "edgeCount": 1
    }
  }
}

internalCompany

Type:InternalCompanyType

URL:https://api.st.kraken.tech/v1/graphql/

Get an internal company by a set of criteria. Criteria will be added as needed, check documentation for the criteria object to see what is currently supported.

The possible errors that can be raised are:

  • KT-CT-14401: Unauthorized.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

criteria (SearchCriteriaInput!)

Criteria to identify the internal company.

Query

query InternalCompany($criteria: SearchCriteriaInput!) {
  internalCompany(criteria: $criteria) {
    id
    displayableNumber
    name
    primaryRegistrationNumber
    secondaryRegistrationNumber
    primaryTaxIdentifierNumber
    legalAddress {
      ...RichAddressTypeFragment
    }
  }
}

Variables

{
  "criteria": SearchCriteriaInput
}

Response

{
  "data": {
    "internalCompany": {
      "id": "abc123",
      "displayableNumber": "abc123",
      "name": "abc123",
      "primaryRegistrationNumber": "abc123",
      "secondaryRegistrationNumber": "abc123",
      "primaryTaxIdentifierNumber": "abc123",
      "legalAddress": RichAddressType
    }
  }
}

isCustomerEligibleToGiveFeedbackFollowingCall

Type:Boolean

URL:https://api.st.kraken.tech/v1/graphql/

Check if customer is eligible to give feedback following a phone call.

The possible errors that can be raised are:

  • KT-CT-5519: Voice call not found.
  • KT-CT-5521: Eligibility configuration not found.
  • KT-CT-5522: Invalid eligibility configuration.
  • KT-CT-5523: Invalid account or account user.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

accountNumber (String!)

Number of the account.

accountUserNumber (String!)

Number of the account user.

callId (Int!)

ID of the voice call.

Query

query IsCustomerEligibleToGiveFeedbackFollowingCall(
  $accountNumber: String!,
  $accountUserNumber: String!,
  $callId: Int!
) {
  isCustomerEligibleToGiveFeedbackFollowingCall(
    accountNumber: $accountNumber,
    accountUserNumber: $accountUserNumber,
    callId: $callId
  )
}

Variables

{
  "accountNumber": "abc123",
  "accountUserNumber": "abc123",
  "callId": 1
}

Response

{
  "data": {
    "isCustomerEligibleToGiveFeedbackFollowingCall": true
  }
}

isCustomerEligibleToGiveFeedbackFollowingEmail

Type:Boolean

URL:https://api.st.kraken.tech/v1/graphql/

Check if customer is eligible to give feedback following an email conversation.

The possible errors that can be raised are:

  • KT-CT-5520: Ink conversation not found.
  • KT-CT-5521: Eligibility configuration not found.
  • KT-CT-5522: Invalid eligibility configuration.
  • KT-CT-5523: Invalid account or account user.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

accountNumber (String!)

Number of the account.

accountUserNumber (String!)

Number of the account user.

inkConversationId (Int!)

ID of the Ink conversation.

conversationClosedAt (DateTime!)

Datetime when the conversation was closed.

Query

query IsCustomerEligibleToGiveFeedbackFollowingEmail(
  $accountNumber: String!,
  $accountUserNumber: String!,
  $inkConversationId: Int!,
  $conversationClosedAt: DateTime!
) {
  isCustomerEligibleToGiveFeedbackFollowingEmail(
    accountNumber: $accountNumber,
    accountUserNumber: $accountUserNumber,
    inkConversationId: $inkConversationId,
    conversationClosedAt: $conversationClosedAt
  )
}

Variables

{
  "accountNumber": "abc123",
  "accountUserNumber": "abc123",
  "inkConversationId": 1,
  "conversationClosedAt": "2020-01-01T00:00:00.000Z"
}

Response

{
  "data": {
    "isCustomerEligibleToGiveFeedbackFollowingEmail": true
  }
}

isPasswordResetTokenValid

Type:Boolean

URL:https://api.st.kraken.tech/v1/graphql/

Check validity of a password reset token.

Arguments

NameDescription

userId (String!)

Base64 encoded user id.

token (String!)

Password reset token to check.

Query

query IsPasswordResetTokenValid(
  $userId: String!,
  $token: String!
) {
  isPasswordResetTokenValid(
    userId: $userId,
    token: $token
  )
}

Variables

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

Response

{
  "data": {
    "isPasswordResetTokenValid": true
  }
}

joinSupplierProcess

Type:JoinSupplierProcessType

URL:https://api.st.kraken.tech/v1/graphql/

The possible errors that can be raised are:

  • KT-CT-10332: Join supplier process not found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

number (String!)

The join supplier process number, e.g. JS-12345678.

Query

query JoinSupplierProcess($number: String!) {
  joinSupplierProcess(number: $number) {
    id
    status
    supplyPoints {
      ...SupplyPointConnectionTypeConnectionFragment
    }
    number
    subtype
    contractIdentifiers
    currentProcessData {
      ...JoinSupplierProcessDataTypeFragment
    }
    ledgerAssignments {
      ...JoinSupplierLedgerAssignmentConnectionTypeConnectionFragment
    }
  }
}

Variables

{
  "number": "abc123"
}

Response

{
  "data": {
    "joinSupplierProcess": {
      "id": "abc123",
      "status": "PENDING",
      "supplyPoints": SupplyPointConnectionTypeConnection,
      "number": "abc123",
      "subtype": "abc123",
      "contractIdentifiers": ["abc123"],
      "currentProcessData": JoinSupplierProcessDataType,
      "ledgerAssignments": JoinSupplierLedgerAssignmentConnectionTypeConnection
    }
  }
}

Query

query KrakenVersion {
  krakenVersion {
    number
    SHA
    isPinned
  }
}

Response

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

leadBlocklistValidations

Type:LeadBlockListValidationOutput

URL:https://api.st.kraken.tech/v1/graphql/

Run a blocklist validation out of some dynamic client entry types.

Arguments

NameDescription

blockListEntries (LeadBlockListValidationInput)

List of client-configured black list entry types.

Query

query LeadBlocklistValidations($blockListEntries: LeadBlockListValidationInput) {
  leadBlocklistValidations(blockListEntries: $blockListEntries) {
    valid
    blockListHits
  }
}

Variables

{
  "blockListEntries": LeadBlockListValidationInput
}

Response

{
  "data": {
    "leadBlocklistValidations": {
      "valid": true,
      "blockListHits": ["abc123"]
    }
  }
}

leadByNumber

Type:LeadOutput

URL:https://api.st.kraken.tech/v1/graphql/

Get lead details by number.

The possible errors that can be raised are:

  • KT-CT-8907: Lead not found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

number (String)

Lead number.

Query

query LeadByNumber($number: String) {
  leadByNumber(number: $number) {
    leadId
    accountNumber
    givenName
    familyName
    billingName
    billingAddress {
      ...AddressOutputFragment
    }
    billingRichAddress {
      ...RichAddressTypeFragment
    }
    email
    phoneNumber
    number
    funnel {
      ...SalesFunnelFragment
    }
    stage
    extraDetails
    extraDetailItems {
      ...ExtraDetailFragment
    }
    brand
    salesChannel
    assignedToTeam
    assignedToUser
    nationalId
    leadType
    consents {
      ...ConsentOutputFragment
    }
    assignedToAffiliateNumber
  }
}

Variables

{
  "number": "abc123"
}

Response

{
  "data": {
    "leadByNumber": {
      "leadId": "abc123",
      "accountNumber": "abc123",
      "givenName": "abc123",
      "familyName": "abc123",
      "billingName": "abc123",
      "billingAddress": AddressOutput,
      "billingRichAddress": RichAddressType,
      "email": "abc123",
      "phoneNumber": "abc123",
      "number": "abc123",
      "funnel": SalesFunnel,
      "stage": "abc123",
      "extraDetails": {"key": "value"},
      "extraDetailItems": [ExtraDetail],
      "brand": "abc123",
      "salesChannel": "abc123",
      "assignedToTeam": "abc123",
      "assignedToUser": "abc123",
      "nationalId": "abc123",
      "leadType": "abc123",
      "consents": [ConsentOutput],
      "assignedToAffiliateNumber": "abc123"
    }
  }
}

leads

Type:LeadsConnection

URL:https://api.st.kraken.tech/v1/graphql/

Fetch all leads for this Kraken, with optional filtering.

Arguments

NameDescription

input (LeadsQueryInput)

Input fields for retrieving leads.

offset (Int)

before (String)

after (String)

first (Int)

last (Int)

Query

query Leads(
  $input: LeadsQueryInput,
  $offset: Int,
  $before: String,
  $after: String,
  $first: Int,
  $last: Int
) {
  leads(
    input: $input,
    offset: $offset,
    before: $before,
    after: $after,
    first: $first,
    last: $last
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...LeadsEdgeFragment
    }
    totalCount
    edgeCount
  }
}

Variables

{
  "input": LeadsQueryInput,
  "offset": 1,
  "before": "abc123",
  "after": "abc123",
  "first": 1,
  "last": 1
}

Response

{
  "data": {
    "leads": {
      "pageInfo": PageInfo,
      "edges": LeadsEdge,
      "totalCount": 1,
      "edgeCount": 1
    }
  }
}

leaveSupplierProcess

Type:LeaveSupplierProcessType

URL:https://api.st.kraken.tech/v1/graphql/

Details associated with a LeaveSupplier process.

The possible errors that can be raised are:

  • KT-CT-10302: Invalid data.
  • KT-CT-10333: Missing either number of leave supplier process id.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

number (String)

The leave supplier process number, e.g. LS-12345678.

leaveSupplierProcessId (ID)

The leave supplier process ID.

Query

query LeaveSupplierProcess(
  $number: String,
  $leaveSupplierProcessId: ID
) {
  leaveSupplierProcess(
    number: $number,
    leaveSupplierProcessId: $leaveSupplierProcessId
  ) {
    id
    status
    number
    supplyPoints {
      ...SupplyPointConnectionTypeConnectionFragment
    }
    subtype
  }
}

Variables

{
  "number": "abc123",
  "leaveSupplierProcessId": "abc123"
}

Response

{
  "data": {
    "leaveSupplierProcess": {
      "id": "abc123",
      "status": "PENDING",
      "number": "abc123",
      "supplyPoints": SupplyPointConnectionTypeConnection,
      "subtype": "abc123"
    }
  }
}

legacyOrderDetails

Type:LegacyOrderDetailsType

URL:https://api.st.kraken.tech/v1/graphql/

The possible errors that can be raised are:

  • KT-CT-13101: Order not found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

identifier (String!)

Order identifier.

Query

query LegacyOrderDetails($identifier: String!) {
  legacyOrderDetails(identifier: $identifier) {
    order {
      ...LegacyOrderTypeFragment
    }
    status
    resources {
      ...LegacyOrderResourceFragment
    }
  }
}

Variables

{
  "identifier": "abc123"
}

Response

{
  "data": {
    "legacyOrderDetails": {
      "order": LegacyOrderType,
      "status": "PENDING",
      "resources": [LegacyOrderResource]
    }
  }
}

lifecycleProcesses

Type:LifecycleProcessesType

URL:https://api.st.kraken.tech/v1/graphql/

Get all lifecycle processes associated with an account.

The possible errors that can be raised are:

  • KT-CT-4123: Unauthorized.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

onlyActive (Boolean)

A flag to filter out only active/current processes.

sortOrder (LifecycleProcessesSortOrder)

The chronological order in which the lifecycle processes are sorted.

accountNumber (String!)

The account number, e.g. A-12345678.

Query

query LifecycleProcesses(
  $onlyActive: Boolean,
  $sortOrder: LifecycleProcessesSortOrder,
  $accountNumber: String!
) {
  lifecycleProcesses(
    onlyActive: $onlyActive,
    sortOrder: $sortOrder,
    accountNumber: $accountNumber
  ) {
    leaveSupplierProcesses {
      ...LeaveSupplierProcessConnectionTypeConnectionFragment
    }
    joinSupplierProcesses {
      ...JoinSupplierProcessConnectionTypeConnectionFragment
    }
    occupyPropertyProcesses {
      ...OccupyPropertyProcessConnectionTypeConnectionFragment
    }
    leavePropertyProcesses {
      ...LeavePropertyProcessConnectionTypeConnectionFragment
    }
  }
}

Variables

{
  "onlyActive": true,
  "sortOrder": "ASC",
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "lifecycleProcesses": {
      "leaveSupplierProcesses": LeaveSupplierProcessConnectionTypeConnection,
      "joinSupplierProcesses": JoinSupplierProcessConnectionTypeConnection,
      "occupyPropertyProcesses": OccupyPropertyProcessConnectionTypeConnection,
      "leavePropertyProcesses": LeavePropertyProcessConnectionTypeConnection
    }
  }
}

livePaymentAdequacyCalculation

Type:LivePaymentAdequacyCalculation

URL:https://api.st.kraken.tech/v1/graphql/

Get payment adequacy data with an up to date calculation.

The possible errors that can be raised are:

  • KT-CT-3963: Could not calculate live PA data.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

ledgerNumber (String!)

Kraken ledger number.

Query

query LivePaymentAdequacyCalculation($ledgerNumber: String!) {
  livePaymentAdequacyCalculation(ledgerNumber: $ledgerNumber) {
    suggestedNewMonthlyAmount
    consumption {
      ...ConsumptionBreakdownConnectionTypeConnectionFragment
    }
    averageMonthlyCharge
    existingMonthlyAmount
    balanceAdjustment
    currentBalance
    targetBalance
    reviewedOn
  }
}

Variables

{
  "ledgerNumber": "abc123"
}

Response

{
  "data": {
    "livePaymentAdequacyCalculation": {
      "suggestedNewMonthlyAmount": 1,
      "consumption": ConsumptionBreakdownConnectionTypeConnection,
      "averageMonthlyCharge": 1,
      "existingMonthlyAmount": 1,
      "balanceAdjustment": 1,
      "currentBalance": 1,
      "targetBalance": 1,
      "reviewedOn": "2020-01-01"
    }
  }
}

loyaltyCards

Type:[LoyaltyCardType]

URL:https://api.st.kraken.tech/v1/graphql/

Get all loyalty cards for the given account user.

The possible errors that can be raised are:

  • KT-CT-5412: No account user exists with the given id.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

accountUserId (String!)

Account user id.

Query

query LoyaltyCards($accountUserId: String!) {
  loyaltyCards(accountUserId: $accountUserId) {
    id
    scheme
    number
    status
  }
}

Variables

{
  "accountUserId": "abc123"
}

Response

{
  "data": {
    "loyaltyCards": [
      {
        "id": "abc123",
        "scheme": "abc123",
        "number": "abc123",
        "status": "abc123"
      }
    ]
  }
}

loyaltyPointLedgerEntry

Type:LoyaltyPointLedgerEntryType

URL:https://api.st.kraken.tech/v1/graphql/

Resolve a loyalty point ledger entry.

The possible errors that can be raised are:

  • KT-CT-9215: Loyalty points balance query disabled.
  • KT-CT-9223: Loyalty points ledger entry not found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

input (LoyaltyPointLedgerEntryInput!)

Query

query LoyaltyPointLedgerEntry($input: LoyaltyPointLedgerEntryInput!) {
  loyaltyPointLedgerEntry(input: $input) {
    id
    ledgerType
    value
    balanceBroughtForward
    balanceCarriedForward
    reasonCode
    idempotencyKey
    postedAt
    accountNumber
  }
}

Variables

Response

{
  "data": {
    "loyaltyPointLedgerEntry": {
      "id": "abc123",
      "ledgerType": "abc123",
      "value": "abc123",
      "balanceBroughtForward": "abc123",
      "balanceCarriedForward": "abc123",
      "reasonCode": "abc123",
      "idempotencyKey": "500c164d-38c7-4f74-9ac6-be210197e9e4",
      "postedAt": "2020-01-01T00:00:00.000Z",
      "accountNumber": "abc123"
    }
  }
}

loyaltyPointLedgers

Type:[LoyaltyPointLedgerEntryType]

URL:https://api.st.kraken.tech/v1/graphql/

Get the Loyalty Point ledger entries for the passed user.

The possible errors that can be raised are:

  • KT-CT-1111: Unauthorized.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

input (LoyaltyPointLedgersInput)

The input object for retrieving a loyalty point ledger entry.

Query

query LoyaltyPointLedgers($input: LoyaltyPointLedgersInput) {
  loyaltyPointLedgers(input: $input) {
    id
    ledgerType
    value
    balanceBroughtForward
    balanceCarriedForward
    reasonCode
    idempotencyKey
    postedAt
    accountNumber
  }
}

Variables

Response

{
  "data": {
    "loyaltyPointLedgers": [
      {
        "id": "abc123",
        "ledgerType": "abc123",
        "value": "abc123",
        "balanceBroughtForward": "abc123",
        "balanceCarriedForward": "abc123",
        "reasonCode": "abc123",
        "idempotencyKey": "500c164d-38c7-4f74-9ac6-be210197e9e4",
        "postedAt": "2020-01-01T00:00:00.000Z",
        "accountNumber": "abc123"
      }
    ]
  }
}

loyaltyPointsBalance

Type:AccountLoyaltyPointsType

URL:https://api.st.kraken.tech/v1/graphql/

Get the loyalty points balance for an account.

The possible errors that can be raised are:

  • KT-CT-9218: Unauthorized.
  • KT-CT-9217: Unauthorized.
  • KT-CT-9215: Loyalty points balance query disabled.
  • KT-CT-9216: Unauthorized.
  • KT-CT-9222: Loyalty points balance query requires either accountNumber field (deprecated) or input object (preferred) with account number and optional account user id.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

accountNumber (String)

The account number.

input (LoyaltyPointsBalanceInput)

Query

query LoyaltyPointsBalance(
  $accountNumber: String,
  $input: LoyaltyPointsBalanceInput
) {
  loyaltyPointsBalance(
    accountNumber: $accountNumber,
    input: $input
  ) {
    loyaltyPoints
    totalMonetaryAmount
  }
}

Variables

{
  "accountNumber": "abc123",
  "input": LoyaltyPointsBalanceInput
}

Response

{
  "data": {
    "loyaltyPointsBalance": {
      "loyaltyPoints": 1,
      "totalMonetaryAmount": 1
    }
  }
}

metadata

Type:[Metadata]

URL:https://api.st.kraken.tech/v1/graphql/

Metadata for a linked object.

The possible errors that can be raised are:

  • KT-CT-4123: Unauthorized.
  • KT-CT-4124: Unauthorized.
  • KT-CT-8411: Invalid data.
  • KT-CT-4177: Unauthorized.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

linkedObjectType (LinkedObjectType)

identifier (String!)

Query

query Metadata(
  $linkedObjectType: LinkedObjectType,
  $identifier: String!
) {
  metadata(
    linkedObjectType: $linkedObjectType,
    identifier: $identifier
  ) {
    key
    value
  }
}

Variables

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

Response

{
  "data": {
    "metadata": [
      {
        "key": "abc123",
        "value": {"key": "value"}
      }
    ]
  }
}

metadataForKey

Type:Metadata

URL:https://api.st.kraken.tech/v1/graphql/

Metadata for a linked object with key.

The possible errors that can be raised are:

  • KT-CT-4123: Unauthorized.
  • KT-CT-4124: Unauthorized.
  • KT-CT-8411: Invalid data.
  • KT-CT-4179: No metadata found with given key.
  • KT-CT-4155: Invalid data.
  • KT-CT-4177: Unauthorized.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

linkedObjectType (LinkedObjectType)

identifier (String!)

key (String!)

Query

query MetadataForKey(
  $linkedObjectType: LinkedObjectType,
  $identifier: String!,
  $key: String!
) {
  metadataForKey(
    linkedObjectType: $linkedObjectType,
    identifier: $identifier,
    key: $key
  ) {
    key
    value
  }
}

Variables

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

Response

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

mfaDevices

Type:[MfaDevice]

URL:https://api.st.kraken.tech/v1/graphql/

Get all MFA devices for the current user.

Query

query MfaDevices {
  mfaDevices {
    deviceType
    isConfirmed
  }
}

Response

{
  "data": {
    "mfaDevices": [
      {
        "deviceType": "abc123",
        "isConfirmed": true
      }
    ]
  }
}

node

Type:Node

URL:https://api.st.kraken.tech/v1/graphql/

Represents an individual object/resource in the API.

Arguments

NameDescription

id (ID!)

The ID of the object

Query

query Node($id: ID!) {
  node(id: $id) {
    id
  }
}

Variables

{
  "id": "abc123"
}

Response

{
  "data": {
    "node": {
      "id": "abc123"
    }
  }
}

Arguments

NameDescription

identifier (ID)

The identifier of the offer to query.

Query

query OfferForQuoting($identifier: ID) {
  offerForQuoting(identifier: $identifier) {
    identifier
    quote {
      ...QuoteType_Fragment
    }
    description
    validFrom
    validTo
    acceptedAt
    rejectedAt
    createdBy {
      ...ActorTypeFragment
    }
  }
}

Variables

{
  "identifier": "abc123"
}

Response

{
  "data": {
    "offerForQuoting": {
      "identifier": "abc123",
      "quote": QuoteType_,
      "description": "abc123",
      "validFrom": "2020-01-01T00:00:00.000Z",
      "validTo": "2020-01-01T00:00:00.000Z",
      "acceptedAt": "2020-01-01T00:00:00.000Z",
      "rejectedAt": "2020-01-01T00:00:00.000Z",
      "createdBy": ActorType
    }
  }
}

Arguments

NameDescription

identifier (ID)

The identifier of the offer group to query.

Query

query OfferGroupForQuoting($identifier: ID) {
  offerGroupForQuoting(identifier: $identifier) {
    identifier
    offers {
      ...OfferTypeFragment
    }
    createdAt
    createdBy {
      ...ActorTypeFragment
    }
  }
}

Variables

{
  "identifier": "abc123"
}

Response

{
  "data": {
    "offerGroupForQuoting": {
      "identifier": "abc123",
      "offers": [OfferType],
      "createdAt": "2020-01-01T00:00:00.000Z",
      "createdBy": ActorType
    }
  }
}

offering

Type:OfferingType

URL:https://api.st.kraken.tech/v1/graphql/

Get details about a product offering.

The possible errors that can be raised are:

  • KT-CT-12001: Product catalogue offering with given identifier not found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

identifier (String)

The identifier of the offering to query.

Query

query Offering($identifier: String) {
  offering(identifier: $identifier) {
    identifier
    internalName
    customerName
    customerDescription
    isSellable
    lifecycle {
      ...LifecycleTypeFragment
    }
    tags {
      ...TagTypeFragment
    }
    productComponents {
      ...ProductComponentTypeFragment
    }
    offeringComponents {
      ...OfferingComponentTypeFragment
    }
    termTemplateComponents {
      ...TermTemplateComponentTypeFragment
    }
    groups {
      ...GroupTypeFragment
    }
    isAmendable
    isExpired
    isActive
    isDraft
    isLatestVersion
    isFirstDraft
  }
}

Variables

{
  "identifier": "abc123"
}

Response

{
  "data": {
    "offering": {
      "identifier": "abc123",
      "internalName": "abc123",
      "customerName": "abc123",
      "customerDescription": "abc123",
      "isSellable": true,
      "lifecycle": LifecycleType,
      "tags": [TagType],
      "productComponents": [ProductComponentType],
      "offeringComponents": [OfferingComponentType],
      "termTemplateComponents": [TermTemplateComponentType],
      "groups": [GroupType],
      "isAmendable": true,
      "isExpired": true,
      "isActive": true,
      "isDraft": true,
      "isLatestVersion": true,
      "isFirstDraft": true
    }
  }
}

opportunities

Type:OpportunitiesConnection

URL:https://api.st.kraken.tech/v1/graphql/

Fetch all opportunities for this Kraken, with optional filtering.

Arguments

NameDescription

input (OpportunitiesQueryInput)

Input fields for retrieving opportunities.

offset (Int)

before (String)

after (String)

first (Int)

last (Int)

Query

query Opportunities(
  $input: OpportunitiesQueryInput,
  $offset: Int,
  $before: String,
  $after: String,
  $first: Int,
  $last: Int
) {
  opportunities(
    input: $input,
    offset: $offset,
    before: $before,
    after: $after,
    first: $first,
    last: $last
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...OpportunitiesEdgeFragment
    }
    totalCount
    edgeCount
  }
}

Variables

{
  "input": OpportunitiesQueryInput,
  "offset": 1,
  "before": "abc123",
  "after": "abc123",
  "first": 1,
  "last": 1
}

Response

{
  "data": {
    "opportunities": {
      "pageInfo": PageInfo,
      "edges": OpportunitiesEdge,
      "totalCount": 1,
      "edgeCount": 1
    }
  }
}

opportunityByNumber

Type:OpportunityOutput

URL:https://api.st.kraken.tech/v1/graphql/

Get opportunity details by number.

The possible errors that can be raised are:

  • KT-CT-8906: Opportunity not found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

number (String)

Opportunity number identifier.

Query

query OpportunityByNumber($number: String) {
  opportunityByNumber(number: $number) {
    opportunityId
    leadNumber
    leadType
    name
    email
    phoneNumber
    number
    funnel {
      ...SalesFunnelFragment
    }
    stage
    extraDetails
    extraDetailItems {
      ...ExtraDetailFragment
    }
    opportunityAddress {
      ...AddressOutputFragment
    }
    opportunityRichAddress {
      ...RichAddressTypeFragment
    }
    salesChannel
    assignedToTeam
    assignedToUser
    productOfferingId
    productOffering {
      ...OfferingTypeFragment
    }
    offerGroupId
    consents {
      ...ConsentOutputFragment
    }
    notes
    attachments {
      ...OpportunityAttachmentFragment
    }
    supplyPoints {
      ...LeadSupplyPointTypeFragment
    }
    assignedToAffiliateNumber
  }
}

Variables

{
  "number": "abc123"
}

Response

{
  "data": {
    "opportunityByNumber": {
      "opportunityId": "abc123",
      "leadNumber": "abc123",
      "leadType": "abc123",
      "name": "abc123",
      "email": "abc123",
      "phoneNumber": "abc123",
      "number": "abc123",
      "funnel": SalesFunnel,
      "stage": "abc123",
      "extraDetails": {"key": "value"},
      "extraDetailItems": [ExtraDetail],
      "opportunityAddress": AddressOutput,
      "opportunityRichAddress": RichAddressType,
      "salesChannel": "abc123",
      "assignedToTeam": "abc123",
      "assignedToUser": "abc123",
      "productOfferingId": "abc123",
      "productOffering": OfferingType,
      "offerGroupId": "abc123",
      "consents": [ConsentOutput],
      "notes": "abc123",
      "attachments": [OpportunityAttachment],
      "supplyPoints": [LeadSupplyPointType],
      "assignedToAffiliateNumber": "abc123"
    }
  }
}

opportunityProductSummary

Type:[OpportunityProductSummary!]!

URL:https://api.st.kraken.tech/v1/graphql/

Return summaries of all products in opportunity's accepted offer. Supports multi-product offerings like dual fuel.

The possible errors that can be raised are:

  • KT-CT-8906: Opportunity not found.
  • KT-CT-8923: The opportunity does not have a linked offer group.
  • KT-CT-8922: The opportunity does not have an accepted offer.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

number (String)

Opportunity number.

Query

query OpportunityProductSummary($number: String) {
  opportunityProductSummary(number: $number) {
    productOfferingIdentifier
    productIdentifier
    productCode
    productCharacteristics
    market
  }
}

Variables

{
  "number": "abc123"
}

Response

{
  "data": {
    "opportunityProductSummary": {
      "productOfferingIdentifier": "abc123",
      "productIdentifier": "abc123",
      "productCode": "abc123",
      "productCharacteristics": "abc123" | 1 | 1.0 | true | ["abc123"] | AccountType,
      "market": "abc123"
    }
  }
}

opportunityValueByKey

Type:String

URL:https://api.st.kraken.tech/v1/graphql/

Get the value of a given key that is stored in an opportunity's related JSONFields.

The possible errors that can be raised are:

  • KT-CT-8903: Unable to update opportunity.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

opportunityId (ID)

The identifier of the opportunity to query.

key (String)

The key the a funnel-specific value you wish to obtain.

Query

query OpportunityValueByKey(
  $opportunityId: ID,
  $key: String
) {
  opportunityValueByKey(
    opportunityId: $opportunityId,
    key: $key
  )
}

Variables

{
  "opportunityId": "abc123",
  "key": "abc123"
}

Response

{
  "data": {
    "opportunityValueByKey": "abc123"
  }
}

passwordValidatorHelpTexts

Type:[String]

URL:https://api.st.kraken.tech/v1/graphql/

The help text of all configured password validators as plain-text or html. Defaults to plain-text.

Arguments

NameDescription

asHtml (Boolean)

Return the results as html instead of plain-text. Defaults to False.

Query

query PasswordValidatorHelpTexts($asHtml: Boolean) {
  passwordValidatorHelpTexts(asHtml: $asHtml)
}

Variables

{
  "asHtml": true
}

Response

{
  "data": {
    "passwordValidatorHelpTexts": ["abc123"]
  }
}

paymentFingerprintChecks

Type:PaymentFingerPrintCheckType

URL:https://api.st.kraken.tech/v1/graphql/

Check if a given payment fingerprint already exists and/or is risk-listed.

Arguments

NameDescription

fingerprint (String!)

Fingerprint.

Query

query PaymentFingerprintChecks($fingerprint: String!) {
  paymentFingerprintChecks(fingerprint: $fingerprint) {
    fingerprint
    isFound
    isRiskListed
  }
}

Variables

{
  "fingerprint": "abc123"
}

Response

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

paymentRequests

Type:PaymentRequestsType

URL:https://api.st.kraken.tech/v1/graphql/

Get all payment requests for the given ledger.

Arguments

NameDescription

ledgerNumber (String!)

Kraken ledger number.

Query

query PaymentRequests($ledgerNumber: String!) {
  paymentRequests(ledgerNumber: $ledgerNumber) {
    paymentRequest {
      ...PaymentRequestConnectionTypeConnectionFragment
    }
  }
}

Variables

{
  "ledgerNumber": "abc123"
}

Response

{
  "data": {
    "paymentRequests": {
      "paymentRequest": PaymentRequestConnectionTypeConnection
    }
  }
}

portfolio

Type:PortfolioType

URL:https://api.st.kraken.tech/v1/graphql/

Get details about a portfolio, using its portfolio number.

The possible errors that can be raised are:

  • KT-CT-9403: Received an invalid portfolioId.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

portfolioNumber (String!)

Portfolio number to be retrieved.

Query

query Portfolio($portfolioNumber: String!) {
  portfolio(portfolioNumber: $portfolioNumber) {
    id
    number
    createdAt
    updatedAt
    billingName
    collectiveBilling
    operationsTeam {
      ...OperationsTeamTypeFragment
    }
    leadAccountNumber
    brand
    name
    depth
    parent {
      ...PortfolioTypeFragment
    }
    ancestors {
      ...PortfolioConnectionTypeConnectionFragment
    }
    descendants {
      ...PortfolioConnectionTypeConnectionFragment
    }
    accounts {
      ...AccountConnectionTypeConnectionFragment
    }
    accountBalances
  }
}

Variables

{
  "portfolioNumber": "abc123"
}

Response

{
  "data": {
    "portfolio": {
      "id": "abc123",
      "number": "abc123",
      "createdAt": "2020-01-01T00:00:00.000Z",
      "updatedAt": "2020-01-01T00:00:00.000Z",
      "billingName": "abc123",
      "collectiveBilling": true,
      "operationsTeam": OperationsTeamType,
      "leadAccountNumber": "abc123",
      "brand": "abc123",
      "name": "abc123",
      "depth": 1,
      "parent": PortfolioType,
      "ancestors": PortfolioConnectionTypeConnection,
      "descendants": PortfolioConnectionTypeConnection,
      "accounts": AccountConnectionTypeConnection,
      "accountBalances": 1
    }
  }
}

portfolioByReference

Type:PortfolioType

URL:https://api.st.kraken.tech/v1/graphql/

Get details about a portfolio, using its reference.

The possible errors that can be raised are:

  • KT-CT-9409: Invalid portfolio reference.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

portfolioReference (PortfolioReferenceInput!)

Portfolio reference namespace-value pair to filter by.

Query

query PortfolioByReference($portfolioReference: PortfolioReferenceInput!) {
  portfolioByReference(portfolioReference: $portfolioReference) {
    id
    number
    createdAt
    updatedAt
    billingName
    collectiveBilling
    operationsTeam {
      ...OperationsTeamTypeFragment
    }
    leadAccountNumber
    brand
    name
    depth
    parent {
      ...PortfolioTypeFragment
    }
    ancestors {
      ...PortfolioConnectionTypeConnectionFragment
    }
    descendants {
      ...PortfolioConnectionTypeConnectionFragment
    }
    accounts {
      ...AccountConnectionTypeConnectionFragment
    }
    accountBalances
  }
}

Variables

{
  "portfolioReference": PortfolioReferenceInput
}

Response

{
  "data": {
    "portfolioByReference": {
      "id": "abc123",
      "number": "abc123",
      "createdAt": "2020-01-01T00:00:00.000Z",
      "updatedAt": "2020-01-01T00:00:00.000Z",
      "billingName": "abc123",
      "collectiveBilling": true,
      "operationsTeam": OperationsTeamType,
      "leadAccountNumber": "abc123",
      "brand": "abc123",
      "name": "abc123",
      "depth": 1,
      "parent": PortfolioType,
      "ancestors": PortfolioConnectionTypeConnection,
      "descendants": PortfolioConnectionTypeConnection,
      "accounts": AccountConnectionTypeConnection,
      "accountBalances": 1
    }
  }
}

possibleErrors

Type:PossibleErrorsOutputType

URL:https://api.st.kraken.tech/v1/graphql/

Possible errors of the requested query/mutation.

The possible errors that can be raised are:

  • KT-CT-1606: Query/Mutation not found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

input (PossibleErrorsInputType!)

Query or Mutation for which to get the possible errors list.

Query

query PossibleErrors($input: PossibleErrorsInputType!) {
  possibleErrors(input: $input) {
    name
    type
    authErrors
    possibleErrors {
      ...PossibleErrorTypeFragment
    }
  }
}

Variables

Response

{
  "data": {
    "possibleErrors": {
      "name": "abc123",
      "type": "query",
      "authErrors": true,
      "possibleErrors": [PossibleErrorType]
    }
  }
}

printBatch

Type:PrintBatchType!

URL:https://api.st.kraken.tech/v1/graphql/

Get print batch details, including messages in the batch.

The possible errors that can be raised are:

  • KT-CT-9013: Invalid data.
  • KT-CT-9012: Invalid data.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

printBatchId (Int)

The print batch ID.

batchId (ID)

The print batch ID.

Query

query PrintBatch(
  $printBatchId: Int,
  $batchId: ID
) {
  printBatch(
    printBatchId: $printBatchId,
    batchId: $batchId
  ) {
    id
    status
    messages {
      ...PrintMessageTypeConnectionFragment
    }
  }
}

Variables

{
  "printBatchId": 1,
  "batchId": "abc123"
}

Response

{
  "data": {
    "printBatch": {
      "id": "abc123",
      "status": "OPEN",
      "messages": PrintMessageTypeConnection
    }
  }
}

propertiesSearch

Type:[PropertySearchResult!]!

URL:https://api.st.kraken.tech/v1/graphql/

Search for properties that are already in Kraken and match the search term.

Arguments

NameDescription

searchTerm (String!)

The search term. It can be an address or a meter point identifier.

Query

query PropertiesSearch($searchTerm: String!) {
  propertiesSearch(searchTerm: $searchTerm) {
    score
    property {
      ...PropertyTypeFragment
    }
  }
}

Variables

{
  "searchTerm": "abc123"
}

Response

{
  "data": {
    "propertiesSearch": {
      "score": "1.0",
      "property": PropertyType
    }
  }
}

property

Type:PropertyType

URL:https://api.st.kraken.tech/v1/graphql/

A property with the given ID. Usually associated with supply points.

The possible errors that can be raised are:

  • KT-CT-6622: Unauthorized.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

id (ID!)

The property ID.

Query

query Property($id: ID!) {
  property(id: $id) {
    id
    postcode
    label
    address
    richAddress {
      ...PropertyRichAddressTypeFragment
    }
    splitAddress
    occupancyPeriods {
      ...OccupancyPeriodTypeFragment
    }
    coordinates {
      ...CoordinatesTypeFragment
    }
    embeddedNetwork {
      ...EmbeddedNetworkTypeFragment
    }
    parent {
      ...PropertyInterfaceFragment
    }
    descendants {
      ...PropertyConnectionFragment
    }
    ancestors {
      ...PropertyConnectionFragment
    }
    measurements {
      ...MeasurementConnectionFragment
    }
    activeWaterMeters {
      ...WaterMeterTypeFragment
    }
    freshWaterSupplyPoint {
      ...FreshWaterSupplyPointTypeFragment
    }
    wasteWaterSupplyPoint {
      ...WasteWaterSupplyPointTypeFragment
    }
    propertyDetail {
      ...PropertyDetailTypeFragment
    }
    externalIdentifier
    externalPropertyReference
    serviceOrders {
      ...ServiceOrderConnectionTypeConnectionFragment
    }
  }
}

Variables

{
  "id": "abc123"
}

Response

{
  "data": {
    "property": {
      "id": "abc123",
      "postcode": "abc123",
      "label": "abc123",
      "address": "abc123",
      "richAddress": PropertyRichAddressType,
      "splitAddress": ["abc123"],
      "occupancyPeriods": [OccupancyPeriodType],
      "coordinates": CoordinatesType,
      "embeddedNetwork": EmbeddedNetworkType,
      "parent": PropertyInterface,
      "descendants": PropertyConnection,
      "ancestors": PropertyConnection,
      "measurements": MeasurementConnection,
      "activeWaterMeters": [WaterMeterType],
      "freshWaterSupplyPoint": FreshWaterSupplyPointType,
      "wasteWaterSupplyPoint": WasteWaterSupplyPointType,
      "propertyDetail": PropertyDetailType,
      "externalIdentifier": "abc123",
      "externalPropertyReference": "abc123",
      "serviceOrders": ServiceOrderConnectionTypeConnection
    }
  }
}

propertySearch

Type:[PropertyType]

URL:https://api.st.kraken.tech/v1/graphql/

Search for properties that are already in Kraken and match the search term.

Deprecated

The 'propertySearch' field is deprecated.

This query is being deprecated in favour of `propertiesSearch`. The latter returns not only the matched properties but the level of confidence in the results through the `score` field.

- Marked as deprecated on 2023-05-23.
- Scheduled for removal on or after 2024-01-01.

Arguments

NameDescription

searchTerm (String!)

The search term. It can be an address or a meter point identifier.

Query

query PropertySearch($searchTerm: String!) {
  propertySearch(searchTerm: $searchTerm) {
    id
    postcode
    label
    address
    richAddress {
      ...PropertyRichAddressTypeFragment
    }
    splitAddress
    occupancyPeriods {
      ...OccupancyPeriodTypeFragment
    }
    coordinates {
      ...CoordinatesTypeFragment
    }
    embeddedNetwork {
      ...EmbeddedNetworkTypeFragment
    }
    parent {
      ...PropertyInterfaceFragment
    }
    descendants {
      ...PropertyConnectionFragment
    }
    ancestors {
      ...PropertyConnectionFragment
    }
    measurements {
      ...MeasurementConnectionFragment
    }
    activeWaterMeters {
      ...WaterMeterTypeFragment
    }
    freshWaterSupplyPoint {
      ...FreshWaterSupplyPointTypeFragment
    }
    wasteWaterSupplyPoint {
      ...WasteWaterSupplyPointTypeFragment
    }
    propertyDetail {
      ...PropertyDetailTypeFragment
    }
    externalIdentifier
    externalPropertyReference
    serviceOrders {
      ...ServiceOrderConnectionTypeConnectionFragment
    }
  }
}

Variables

{
  "searchTerm": "abc123"
}

Response

{
  "data": {
    "propertySearch": [
      {
        "id": "abc123",
        "postcode": "abc123",
        "label": "abc123",
        "address": "abc123",
        "richAddress": PropertyRichAddressType,
        "splitAddress": ["abc123"],
        "occupancyPeriods": [OccupancyPeriodType],
        "coordinates": CoordinatesType,
        "embeddedNetwork": EmbeddedNetworkType,
        "parent": PropertyInterface,
        "descendants": PropertyConnection,
        "ancestors": PropertyConnection,
        "measurements": MeasurementConnection,
        "activeWaterMeters": [WaterMeterType],
        "freshWaterSupplyPoint": FreshWaterSupplyPointType,
        "wasteWaterSupplyPoint": WasteWaterSupplyPointType,
        "propertyDetail": PropertyDetailType,
        "externalIdentifier": "abc123",
        "externalPropertyReference": "abc123",
        "serviceOrders": ServiceOrderConnectionTypeConnection
      }
    ]
  }
}

proposedDirectDebitPaymentSchedule

Type:ProposedDirectDebitPaymentScheduleType!

URL:https://api.st.kraken.tech/v1/graphql/

The payment schedule that would be set up with the given parameters. Used to inform customers of the Direct Debit plan that they are about to set up.

The possible errors that can be raised are:

  • KT-CT-1128: Unauthorized.
  • KT-GB-3922: This configuration of payment schedule is not supported.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

accountNumber (String!)

The account number.

scheduleType (DirectDebitScheduleChoices!)

The type of schedule to create.

reduceInstalments (Boolean)

Whether to reduce the number of instalments.

Query

query ProposedDirectDebitPaymentSchedule(
  $accountNumber: String!,
  $scheduleType: DirectDebitScheduleChoices!,
  $reduceInstalments: Boolean
) {
  proposedDirectDebitPaymentSchedule(
    accountNumber: $accountNumber,
    scheduleType: $scheduleType,
    reduceInstalments: $reduceInstalments
  ) {
    amount
    firstPossibleCollectionDate
    paymentAmounts {
      ...ProposedInstalmentsConnectionTypeConnectionFragment
    }
  }
}

Variables

{
  "accountNumber": "abc123",
  "scheduleType": "MONTHLY",
  "reduceInstalments": true
}

Response

{
  "data": {
    "proposedDirectDebitPaymentSchedule": {
      "amount": 1,
      "firstPossibleCollectionDate": "2020-01-01",
      "paymentAmounts": ProposedInstalmentsConnectionTypeConnection
    }
  }
}

psrRecordType

Type:[PSRRecordType]

URL:https://api.st.kraken.tech/v1/graphql/

List of all available active PSR record types.

Query

query PsrRecordType {
  psrRecordType {
    id
    description
    internalCode
    isTemporary
    extraInfoFields
  }
}

Response

{
  "data": {
    "psrRecordType": [
      {
        "id": "abc123",
        "description": "abc123",
        "internalCode": "abc123",
        "isTemporary": true,
        "extraInfoFields": ["abc123"]
      }
    ]
  }
}

Arguments

NameDescription

input (QueryComplexityInputType!)

Query and relevant variables required to calculate the complexity.

Query

query QueryComplexity($input: QueryComplexityInputType!) {
  queryComplexity(input: $input) {
    complexityValue
  }
}

Variables

Response

{
  "data": {
    "queryComplexity": {
      "complexityValue": 1
    }
  }
}

question

Type:String

URL:https://api.st.kraken.tech/v1/graphql/

Get the customer feedback survey question.

The possible errors that can be raised are:

  • KT-CT-5513: Invalid data.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

formId (Int!)

Query

query Question($formId: Int!) {
  question(formId: $formId)
}

Variables

{
  "formId": 1
}

Response

{
  "data": {
    "question": "abc123"
  }
}

quotingParamDefinitionsForProductOffering

Type:QuotedOfferingParamsType

URL:https://api.st.kraken.tech/v1/graphql/

The possible errors that can be raised are:

  • KT-CT-12403: Product offering not found.
  • KT-CT-12404: Product offering has expired.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

productOfferingIdentifier (ID)

The identifier of the product offering.

Query

query QuotingParamDefinitionsForProductOffering($productOfferingIdentifier: ID) {
  quotingParamDefinitionsForProductOffering(productOfferingIdentifier: $productOfferingIdentifier) {
    offeringIdentifier
    productComponents {
      ...QuotedProductComponentTypeFragment
    }
    offeringComponents {
      ...QuotedOfferingParamsTypeFragment
    }
  }
}

Variables

{
  "productOfferingIdentifier": "abc123"
}

Response

{
  "data": {
    "quotingParamDefinitionsForProductOffering": {
      "offeringIdentifier": "abc123",
      "productComponents": [QuotedProductComponentType],
      "offeringComponents": [QuotedOfferingParamsType]
    }
  }
}

rateLimitInfo

Type:CombinedRateLimitInformation

URL:https://api.st.kraken.tech/v1/graphql/

Combined information about points-allowance rate limiting and request-specific rate limiting.

Query

query RateLimitInfo {
  rateLimitInfo {
    pointsAllowanceRateLimit {
      ...PointsAllowanceRateLimitInformationFragment
    }
    fieldSpecificRateLimits {
      ...FieldSpecificRateLimitInformationConnectionTypeConnectionFragment
    }
  }
}

Response

{
  "data": {
    "rateLimitInfo": {
      "pointsAllowanceRateLimit": PointsAllowanceRateLimitInformation,
      "fieldSpecificRateLimits": FieldSpecificRateLimitInformationConnectionTypeConnection
    }
  }
}

returnSchedule

Type:[DepositReturnScheduleOutput]

URL:https://api.st.kraken.tech/v1/graphql/

Get deposit agreement related return schedules for a given account.

The possible errors that can be raised are:

  • KT-CT-4177: Unauthorized.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

accountNumber (String!)

Query

query ReturnSchedule($accountNumber: String!) {
  returnSchedule(accountNumber: $accountNumber) {
    dueDate
    amount
    status
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "returnSchedule": [
      {
        "dueDate": "2020-01-01",
        "amount": 1,
        "status": "abc123"
      }
    ]
  }
}

routingAttributes

Type:[RoutingAttributeType]!

URL:https://api.st.kraken.tech/v1/graphql/

Get routing attributes available for call routing configuration.

The possible errors that can be raised are:

  • KT-CT-11816: Invalid routing attribute category.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

category (String)

Filter by category (LANGUAGE, OPERATIONS_GROUP, SKILL).

search (String)

Filter by friendly name (case-insensitive).

Query

query RoutingAttributes(
  $category: String,
  $search: String
) {
  routingAttributes(
    category: $category,
    search: $search
  ) {
    ref
    category
    subcategory
    friendlyName
    isActive
  }
}

Variables

{
  "category": "abc123",
  "search": "abc123"
}

Response

{
  "data": {
    "routingAttributes": {
      "ref": "abc123",
      "category": "abc123",
      "subcategory": "abc123",
      "friendlyName": "abc123",
      "isActive": true
    }
  }
}

salesFunnelByCode

Type:SalesFunnel

URL:https://api.st.kraken.tech/v1/graphql/

Get the sales funnel by input.

The possible errors that can be raised are:

  • KT-CT-8912: Funnel not found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

input (SalesFunnelInput!)

Input fields for retrieving the sales funnel.

Query

query SalesFunnelByCode($input: SalesFunnelInput!) {
  salesFunnelByCode(input: $input) {
    code
    name
    funnelType
    status
    stages {
      ...SalesFunnelStageFragment
    }
    collections {
      ...CollectionFragment
    }
    uncollectedFields {
      ...FunnelFieldFragment
    }
    rules {
      ...SalesFunnelRuleFragment
    }
  }
}

Variables

{
  "input": SalesFunnelInput
}

Response

{
  "data": {
    "salesFunnelByCode": {
      "code": "abc123",
      "name": "abc123",
      "funnelType": "LEAD",
      "status": "DRAFT",
      "stages": [SalesFunnelStage],
      "collections": [Collection],
      "uncollectedFields": [FunnelField],
      "rules": [SalesFunnelRule]
    }
  }
}

Arguments

NameDescription

input (SalesFunnelsInput)

Input fields for retrieving the sales funnels.

Query

query SalesFunnels($input: SalesFunnelsInput) {
  salesFunnels(input: $input) {
    code
    name
    funnelType
    status
    stages {
      ...SalesFunnelStageFragment
    }
    collections {
      ...CollectionFragment
    }
    uncollectedFields {
      ...FunnelFieldFragment
    }
    rules {
      ...SalesFunnelRuleFragment
    }
  }
}

Variables

{
  "input": SalesFunnelsInput
}

Response

{
  "data": {
    "salesFunnels": [
      {
        "code": "abc123",
        "name": "abc123",
        "funnelType": "LEAD",
        "status": "DRAFT",
        "stages": [SalesFunnelStage],
        "collections": [Collection],
        "uncollectedFields": [FunnelField],
        "rules": [SalesFunnelRule]
      }
    ]
  }
}

searchLead

Type:LeadIdType

URL:https://api.st.kraken.tech/v1/graphql/

Search and return the identifiers of a lead.

The possible errors that can be raised are:

  • KT-CT-8920: Search filters are invalid.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

filters (SearchLeadFilters!)

Filters to search for leads. All passed filters will be checked against the lead.

Query

query SearchLead($filters: SearchLeadFilters!) {
  searchLead(filters: $filters) {
    leadId
    number
  }
}

Variables

{
  "filters": SearchLeadFilters
}

Response

{
  "data": {
    "searchLead": {
      "leadId": "abc123",
      "number": "abc123"
    }
  }
}

serviceableProperties

Type:PropertyMeterConnectionTypeConnection

URL:https://api.st.kraken.tech/v1/graphql/

Get a list of serviceable properties within the given postcode.

Arguments

NameDescription

postcode (String)

Postcode.

before (String)

after (String)

first (Int)

last (Int)

Query

query ServiceableProperties(
  $postcode: String,
  $before: String,
  $after: String,
  $first: Int,
  $last: Int
) {
  serviceableProperties(
    postcode: $postcode,
    before: $before,
    after: $after,
    first: $first,
    last: $last
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...PropertyMeterConnectionTypeEdgeFragment
    }
    totalCount
    edgeCount
  }
}

Variables

{
  "postcode": "abc123",
  "before": "abc123",
  "after": "abc123",
  "first": 1,
  "last": 1
}

Response

{
  "data": {
    "serviceableProperties": {
      "pageInfo": PageInfo,
      "edges": PropertyMeterConnectionTypeEdge,
      "totalCount": 1,
      "edgeCount": 1
    }
  }
}

siteworksRequests

Type:CoreSiteworksRequestConnectionTypeConnection

URL:https://api.st.kraken.tech/v1/graphql/

A query to get a subset of Requests.

Deprecated

The 'siteworksRequests' field is deprecated.

Please use getOnSiteJobsRequests instead.

- Marked as deprecated on 2026-03-01.
- Scheduled for removal on or after 2026-09-01.

Arguments

NameDescription

ids ([UUID])

A list of request IDs. If provided, only these requests will be returned.

createdAfter (DateTime)

Only requests created after this datetime will be included.

statuses ([RequestStatus])

Only requests with a status in this list will be included.

before (String)

after (String)

first (Int)

last (Int)

Query

query SiteworksRequests(
  $ids: [UUID],
  $createdAfter: DateTime,
  $statuses: [RequestStatus],
  $before: String,
  $after: String,
  $first: Int,
  $last: Int
) {
  siteworksRequests(
    ids: $ids,
    createdAfter: $createdAfter,
    statuses: $statuses,
    before: $before,
    after: $after,
    first: $first,
    last: $last
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...CoreSiteworksRequestConnectionTypeEdgeFragment
    }
    totalCount
    edgeCount
  }
}

Variables

{
  "ids": ["500c164d-38c7-4f74-9ac6-be210197e9e4"],
  "createdAfter": "2020-01-01T00:00:00.000Z",
  "statuses": "APPROVAL_PENDING",
  "before": "abc123",
  "after": "abc123",
  "first": 1,
  "last": 1
}

Response

{
  "data": {
    "siteworksRequests": {
      "pageInfo": PageInfo,
      "edges": CoreSiteworksRequestConnectionTypeEdge,
      "totalCount": 1,
      "edgeCount": 1
    }
  }
}

supplyPoint

Type:SupplyPointType

URL:https://api.st.kraken.tech/v1/graphql/

Get a supply point by its market specific id.

The possible errors that can be raised are:

  • KT-CT-4722: Supply point readings API not configured.
  • KT-CT-4719: No supply point found for identifier provided.
  • KT-CT-4723: Invalid market name provided.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

externalIdentifier (String!)

The market specific supply point id.

marketName (String!)

The name of the market in which this supply point exists.

Query

query SupplyPoint(
  $externalIdentifier: String!,
  $marketName: String!
) {
  supplyPoint(
    externalIdentifier: $externalIdentifier,
    marketName: $marketName
  ) {
    id
    marketName
    externalIdentifier
    readings {
      ...ReadingsFragment
    }
    property {
      ...PropertyTypeFragment
    }
    devices {
      ...DevicesConnectionFragment
    }
  }
}

Variables

{
  "externalIdentifier": "abc123",
  "marketName": "abc123"
}

Response

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

Arguments

NameDescription

accountNumber (String)

Filter meter points by account.

portfolioNumber (String)

Filter meter points by portfolio.

before (String)

after (String)

first (Int)

last (Int)

Query

query SupplyPoints(
  $accountNumber: String,
  $portfolioNumber: String,
  $before: String,
  $after: String,
  $first: Int,
  $last: Int
) {
  supplyPoints(
    accountNumber: $accountNumber,
    portfolioNumber: $portfolioNumber,
    before: $before,
    after: $after,
    first: $first,
    last: $last
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...SupplyPointConnectionTypeEdgeFragment
    }
    totalCount
    edgeCount
  }
}

Variables

{
  "accountNumber": "abc123",
  "portfolioNumber": "abc123",
  "before": "abc123",
  "after": "abc123",
  "first": 1,
  "last": 1
}

Response

{
  "data": {
    "supplyPoints": {
      "pageInfo": PageInfo,
      "edges": SupplyPointConnectionTypeEdge,
      "totalCount": 1,
      "edgeCount": 1
    }
  }
}

taskResult

Type:TaskResult

URL:https://api.st.kraken.tech/v1/graphql/

Get the status of a background task.

The possible errors that can be raised are:

  • KT-CT-10401: Task not found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

taskId (String!)

accountNumber (String!)

Query

query TaskResult(
  $taskId: String!,
  $accountNumber: String!
) {
  taskResult(
    taskId: $taskId,
    accountNumber: $accountNumber
  ) {
    status
    result
    error
  }
}

Variables

{
  "taskId": "abc123",
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "taskResult": {
      "status": "STARTED",
      "result": {"key": "value"},
      "error": "abc123"
    }
  }
}

termsAndConditionsForProduct

Type:[TermsAndConditionsType]

URL:https://api.st.kraken.tech/v1/graphql/

Get the active terms and conditions for a market supply product.

The possible errors that can be raised are:

  • KT-CT-8501: No active terms and conditions found for product.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

productCode (String!)

The product code of the market supply product.

Query

query TermsAndConditionsForProduct($productCode: String!) {
  termsAndConditionsForProduct(productCode: $productCode) {
    name
    pdfUrl
    brandCode
    markdown
    html
    version
    effectiveFrom
  }
}

Variables

{
  "productCode": "abc123"
}

Response

{
  "data": {
    "termsAndConditionsForProduct": [
      {
        "name": "abc123",
        "pdfUrl": "abc123",
        "brandCode": "abc123",
        "markdown": "abc123",
        "html": "abc123",
        "version": "abc123",
        "effectiveFrom": "2020-01-01T00:00:00.000Z"
      }
    ]
  }
}

thirdPartyViewer

Type:ThirdPartyOrganizationType

URL:https://api.st.kraken.tech/v1/graphql/

The currently authenticated third party.

This field requires the Authorization header to be set.

Query

query ThirdPartyViewer {
  thirdPartyViewer {
    name
    permissions {
      ...ThirdPartyPermissionFragment
    }
  }
}

Response

{
  "data": {
    "thirdPartyViewer": {
      "name": "abc123",
      "permissions": [ThirdPartyPermission]
    }
  }
}

trigger

Type:Trigger!

URL:https://api.st.kraken.tech/v1/graphql/

Get the details of a published trigger with a given ID.

The possible errors that can be raised are:

  • KT-CT-9904: Trigger not found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

triggerId (ID!)

The ID of the trigger.

Query

query Trigger($triggerId: ID!) {
  trigger(triggerId: $triggerId) {
    id
    triggerTypeCode
    createdAt
    accountsLinkedAt
    accounts {
      ...AccountConnectionTypeConnectionFragment
    }
    messages {
      ...MessageConnectionFragment
    }
    processingStatus
  }
}

Variables

{
  "triggerId": "abc123"
}

Response

{
  "data": {
    "trigger": {
      "id": "abc123",
      "triggerTypeCode": "abc123",
      "createdAt": "2020-01-01T00:00:00.000Z",
      "accountsLinkedAt": "2020-01-01T00:00:00.000Z",
      "accounts": AccountConnectionTypeConnection,
      "messages": MessageConnection,
      "processingStatus": "UNPROCESSED"
    }
  }
}

validateReading

Type:ValidateReadingResultType

URL:https://api.st.kraken.tech/v1/graphql/

Check whether a meter reading would be held if submitted.

The possible errors that can be raised are:

  • KT-GB-6415: Water meter cannot be found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

input (ValidateReadingInputType!)

Input for validating a meter reading.

Query

query ValidateReading($input: ValidateReadingInputType!) {
  validateReading(input: $input) {
    isValid
    heldBecause
    validationErrored
  }
}

Variables

Response

{
  "data": {
    "validateReading": {
      "isValid": true,
      "heldBecause": "abc123",
      "validationErrored": true
    }
  }
}

Arguments

NameDescription

value (String!)

Referral claim code value.

Query

query ValidateReferralCode($value: String!) {
  validateReferralCode(value: $value) {
    id
    value
    referralScheme {
      ...ReferralSchemeTypeFragment
    }
    accountReferral {
      ...ReferralTypeFragment
    }
    isValid
    createdAt
  }
}

Variables

{
  "value": "abc123"
}

Response

{
  "data": {
    "validateReferralCode": {
      "id": 1,
      "value": "abc123",
      "referralScheme": ReferralSchemeType,
      "accountReferral": ReferralType,
      "isValid": true,
      "createdAt": "2020-01-01T00:00:00.000Z"
    }
  }
}

verificationStatus

Type:EmailVerificationStatus

URL:https://api.st.kraken.tech/v1/graphql/

Check the verification status of a given email address.

Arguments

NameDescription

email (String!)

The email address to be checked.

Query

query VerificationStatus($email: String!) {
  verificationStatus(email: $email) {
    email
    status
  }
}

Variables

{
  "email": "abc123"
}

Response

{
  "data": {
    "verificationStatus": {
      "email": "abc123",
      "status": "NOT_SENT"
    }
  }
}

verifyBlackholeEmailUserDetails

Type:Boolean

URL:https://api.st.kraken.tech/v1/graphql/

Verify mobile number or date of birth of the authenticated user.

This field requires the Authorization header to be set.

Arguments

NameDescription

accountNumber (String!)

The account number.

dateOfBirth (Date)

Date of birth.

mobileNumber (String)

Mobile number.

Query

query VerifyBlackholeEmailUserDetails(
  $accountNumber: String!,
  $dateOfBirth: Date,
  $mobileNumber: String
) {
  verifyBlackholeEmailUserDetails(
    accountNumber: $accountNumber,
    dateOfBirth: $dateOfBirth,
    mobileNumber: $mobileNumber
  )
}

Variables

{
  "accountNumber": "abc123",
  "dateOfBirth": "2020-01-01",
  "mobileNumber": "abc123"
}

Response

{
  "data": {
    "verifyBlackholeEmailUserDetails": true
  }
}

verifyUserDetails

Type:Boolean

URL:https://api.st.kraken.tech/v1/graphql/

Verify the account number, mobile number or date of birth of the authenticated user.

This field requires the Authorization header to be set.

Arguments

NameDescription

accountNumber (String)

The account number.

dateOfBirth (Date)

Date of birth.

mobileNumber (String)

Mobile number.

Query

query VerifyUserDetails(
  $accountNumber: String,
  $dateOfBirth: Date,
  $mobileNumber: String
) {
  verifyUserDetails(
    accountNumber: $accountNumber,
    dateOfBirth: $dateOfBirth,
    mobileNumber: $mobileNumber
  )
}

Variables

{
  "accountNumber": "abc123",
  "dateOfBirth": "2020-01-01",
  "mobileNumber": "abc123"
}

Response

{
  "data": {
    "verifyUserDetails": true
  }
}

viewer

Type:AccountUserType

URL:https://api.st.kraken.tech/v1/graphql/

The currently authenticated user.

This field requires the Authorization header to be set.

Query

query Viewer {
  viewer {
    id
    number
    accounts {
      ...AccountInterfaceFragment
    }
    givenName
    familyName
    email
    mobile
    landline
    title
    pronouns
    isDeceased
    liveSecretKey
    createdAt
    permissions {
      ...AccountUserPermissionFragment
    }
    displayName
    firstName
    lastName
    fullName
    preferredName
    isActive
    address {
      ...RichAddressTypeFragment
    }
    portfolioId
    portfolioIds
    portfolios {
      ...PortfolioConnectionTypeConnectionFragment
    }
    businesses {
      ...BusinessConnectionTypeConnectionFragment
    }
    specialCircumstances {
      ...SpecialCircumstancesTypeFragment
    }
    preferences {
      ...AccountUserCommsPreferencesFragment
    }
    dateOfBirth
    label
    landlinePhoneNumber
    alternativePhoneNumbers
    hasFamilyIssues
    isInHardship
    accountUserRoles {
      ...AccountUserRoleTypeFragment
    }
    portfolioUserRoles {
      ...PortfolioUserRoleTypeFragment
    }
    details {
      ...AccountUserDetailTypeFragment
    }
    consents {
      ...ConsentTypeFragment
    }
    paymentMethods {
      ...PaymentInstructionConnectionTypeConnectionFragment
    }
    lastLogin
    hasSetPassword
    commsPreferences {
      ...AccountUserCommsPreferencesTypeFragment
    }
    isPsrRenewalDue
    hasRestrictedAccess
  }
}

Response

{
  "data": {
    "viewer": {
      "id": "abc123",
      "number": "abc123",
      "accounts": AccountInterface,
      "givenName": "abc123",
      "familyName": "abc123",
      "email": "abc123",
      "mobile": "abc123",
      "landline": "abc123",
      "title": "abc123",
      "pronouns": "abc123",
      "isDeceased": true,
      "liveSecretKey": "abc123",
      "createdAt": "2020-01-01T00:00:00.000Z",
      "permissions": [AccountUserPermission],
      "displayName": "abc123",
      "firstName": "abc123",
      "lastName": "abc123",
      "fullName": "abc123",
      "preferredName": "abc123",
      "isActive": true,
      "address": RichAddressType,
      "portfolioId": "abc123",
      "portfolioIds": ["abc123"],
      "portfolios": PortfolioConnectionTypeConnection,
      "businesses": BusinessConnectionTypeConnection,
      "specialCircumstances": SpecialCircumstancesType,
      "preferences": AccountUserCommsPreferences,
      "dateOfBirth": "2020-01-01",
      "label": "abc123",
      "landlinePhoneNumber": "abc123",
      "alternativePhoneNumbers": ["abc123"],
      "hasFamilyIssues": true,
      "isInHardship": true,
      "accountUserRoles": [AccountUserRoleType],
      "portfolioUserRoles": [PortfolioUserRoleType],
      "details": [AccountUserDetailType],
      "consents": ConsentType,
      "paymentMethods": PaymentInstructionConnectionTypeConnection,
      "lastLogin": "2020-01-01T00:00:00.000Z",
      "hasSetPassword": true,
      "commsPreferences": AccountUserCommsPreferencesType,
      "isPsrRenewalDue": true,
      "hasRestrictedAccess": true
    }
  }
}

voiceCampaign

Type:VoiceCampaignType!

URL:https://api.st.kraken.tech/v1/graphql/

Get the voice campaign for a given ID.

The possible errors that can be raised are:

  • KT-CT-11501: Voice campaign not found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

campaignId (String!)

The campaign ID.

Query

query VoiceCampaign($campaignId: String!) {
  voiceCampaign(campaignId: $campaignId) {
    id
    name
    description
    customOutboundPhoneNumber
    tags {
      ...CallTagConnectionTypeConnectionFragment
    }
    status
    campaignType
    campaignItems {
      ...VoiceCampaignItemConnectionTypeConnectionFragment
    }
    preventDuplicateRecords
  }
}

Variables

{
  "campaignId": "abc123"
}

Response

{
  "data": {
    "voiceCampaign": {
      "id": "abc123",
      "name": "abc123",
      "description": "abc123",
      "customOutboundPhoneNumber": "abc123",
      "tags": CallTagConnectionTypeConnection,
      "status": "ACTIVE",
      "campaignType": "PREVIEW",
      "campaignItems": VoiceCampaignItemConnectionTypeConnection,
      "preventDuplicateRecords": true
    }
  }
}

Arguments

NameDescription

status (CampaignStatus)

Filter by campaign status.

campaignType (TypeOfVoiceCampaign)

Filter by campaign type.

name (String)

Filter by campaign name.

before (String)

after (String)

first (Int)

last (Int)

Query

query VoiceCampaigns(
  $status: CampaignStatus,
  $campaignType: TypeOfVoiceCampaign,
  $name: String,
  $before: String,
  $after: String,
  $first: Int,
  $last: Int
) {
  voiceCampaigns(
    status: $status,
    campaignType: $campaignType,
    name: $name,
    before: $before,
    after: $after,
    first: $first,
    last: $last
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...VoiceCampaignConnectionTypeEdgeFragment
    }
    totalCount
    edgeCount
  }
}

Variables

{
  "status": "ACTIVE",
  "campaignType": "PREVIEW",
  "name": "abc123",
  "before": "abc123",
  "after": "abc123",
  "first": 1,
  "last": 1
}

Response

{
  "data": {
    "voiceCampaigns": {
      "pageInfo": PageInfo,
      "edges": VoiceCampaignConnectionTypeEdge,
      "totalCount": 1,
      "edgeCount": 1
    }
  }
}

vouchersBalanceDetail

Type:VouchersBalanceDetail

URL:https://api.st.kraken.tech/v1/graphql/

Query the detail of vouchers balance for an account.

The possible errors that can be raised are:

  • KT-CT-1111: Unauthorized.
  • KT-CT-4178: No account found with given account number.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

accountNumber (ID!)

The account number.

Query

query VouchersBalanceDetail($accountNumber: ID!) {
  vouchersBalanceDetail(accountNumber: $accountNumber) {
    redeemableToday
    redeemableInFuture
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "vouchersBalanceDetail": {
      "redeemableToday": 1,
      "redeemableInFuture": 1
    }
  }
}

Arguments

NameDescription

accountNumber (ID!)

The account number.

redeemableOnly (Boolean!)

Whether to only return vouchers that can be redeemable.

purchasedFromDate (Date)

An optional date to limit the response to vouchers that have been purchased from the particular date (inclusive) onwards.

purchasedBeforeDate (Date)

An optional date to limit the response to vouchers that have been purchased before the particular date (exclusive).

availableFromDate (Date)

An optional date to limit the response to vouchers that are available from the particular date (inclusive) onwards.

availableBeforeDate (Date)

An optional date to limit the response to vouchers that are available before the particular date (exclusive).

excludeRefunded (Boolean)

Whether to exclude refunded vouchers from the response. By default, refunded vouchers will be included in the response.

excludeByDisplayName ([String])

An optional list of display names to exclude from the results (case-insensitive).

before (String)

after (String)

first (Int)

last (Int)

Query

query VouchersForAccount(
  $accountNumber: ID!,
  $redeemableOnly: Boolean!,
  $purchasedFromDate: Date,
  $purchasedBeforeDate: Date,
  $availableFromDate: Date,
  $availableBeforeDate: Date,
  $excludeRefunded: Boolean,
  $excludeByDisplayName: [String],
  $before: String,
  $after: String,
  $first: Int,
  $last: Int
) {
  vouchersForAccount(
    accountNumber: $accountNumber,
    redeemableOnly: $redeemableOnly,
    purchasedFromDate: $purchasedFromDate,
    purchasedBeforeDate: $purchasedBeforeDate,
    availableFromDate: $availableFromDate,
    availableBeforeDate: $availableBeforeDate,
    excludeRefunded: $excludeRefunded,
    excludeByDisplayName: $excludeByDisplayName,
    before: $before,
    after: $after,
    first: $first,
    last: $last
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...VoucherPurchaseConnectionTypeEdgeFragment
    }
    totalCount
    edgeCount
  }
}

Variables

{
  "accountNumber": "abc123",
  "redeemableOnly": true,
  "purchasedFromDate": "2020-01-01",
  "purchasedBeforeDate": "2020-01-01",
  "availableFromDate": "2020-01-01",
  "availableBeforeDate": "2020-01-01",
  "excludeRefunded": true,
  "excludeByDisplayName": ["abc123"],
  "before": "abc123",
  "after": "abc123",
  "first": 1,
  "last": 1
}

Response

{
  "data": {
    "vouchersForAccount": {
      "pageInfo": PageInfo,
      "edges": VoucherPurchaseConnectionTypeEdge,
      "totalCount": 1,
      "edgeCount": 1
    }
  }
}

workSchedule

Type:WorkScheduleType!

URL:https://api.st.kraken.tech/v1/graphql/

Get the work schedule with the given identifier.

The possible errors that can be raised are:

  • KT-CT-11804: Work schedule not found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

identifier (String!)

The identifier of the work schedule (also known as the 'slug').

Query

query WorkSchedule($identifier: String!) {
  workSchedule(identifier: $identifier) {
    identifier
    name
    isOpen
    isPublicHoliday
    openOrClosedReason
  }
}

Variables

{
  "identifier": "abc123"
}

Response

{
  "data": {
    "workSchedule": {
      "identifier": "abc123",
      "name": "abc123",
      "isOpen": true,
      "isPublicHoliday": true,
      "openOrClosedReason": "CLOSED_DUE_TO_PUBLIC_HOLIDAY"
    }
  }
}