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.resiflexna-kraken.systems/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) {
    brand
    status
    balance
    overdueBalance
    urn
    billingName
    billingSubName
    billingEmail
    billingAddress
    billingAddressLine1
    billingAddressLine2
    billingAddressLine3
    billingAddressLine4
    billingAddressLine5
    billingAddressPostcode
    billingCountryCode
    billingDeliveryPointIdentifier
    splitBillingAddress
    address {
      ...RichAddressTypeFragment
    }
    number
    portfolio {
      ...PortfolioTypeFragment
    }
    ledgers {
      ...LedgerTypeFragment
    }
    metadata {
      ...MetadataFragment
    }
    canRequestRefund
    requestRefundEligibility {
      ...RequestRefundEligibilityTypeFragment
    }
    payments {
      ...AccountPaymentConnectionTypeConnectionFragment
    }
    repayments {
      ...AccountRepaymentConnectionTypeConnectionFragment
    }
    paymentPlans {
      ...PaymentPlanConnectionTypeConnectionFragment
    }
    paymentSchedules {
      ...PaymentScheduleConnectionTypeConnectionFragment
    }
    paymentForecast {
      ...PaymentForecastTypeFragment
    }
    paginatedPaymentForecast {
      ...PaymentForecastConnectionTypeConnectionFragment
    }
    referrals {
      ...ReferralConnectionTypeConnectionFragment
    }
    referralsCreated
    rewards {
      ...RewardTypeFragment
    }
    activeReferralSchemes {
      ...ReferralSchemeTypesFragment
    }
    transactions {
      ...TransactionConnectionTypeConnectionFragment
    }
    provisionalTransactions {
      ...ProvisionalTransactionConnectionTypeConnectionFragment
    }
    annualStatements {
      ...AnnualStatementConnectionTypeConnectionFragment
    }
    bills {
      ...BillConnectionTypeConnectionFragment
    }
    billingOptions {
      ...BillingOptionsTypeFragment
    }
    billingTriggerConfiguration {
      ...BillingTriggerConfigurationFragment
    }
    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
    }
    partnerAccessors {
      ...PartnerAccessorAccessConnectionTypeConnectionFragment
    }
    accountUserAccessors {
      ...AccountUserAccessorAccessConnectionTypeConnectionFragment
    }
    complaints {
      ...ComplaintConnectionTypeConnectionFragment
    }
    id
    users {
      ...AccountUserTypeFragment
    }
    properties {
      ...PropertyTypeFragment
    }
    marketSupplyAgreements {
      ...AgreementConnectionFragment
    }
    canModifyPayments {
      ...CanModifyPaymentsTypeFragment
    }
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "account": {
      "brand": "abc123",
      "status": "PENDING",
      "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,
      "number": "abc123",
      "portfolio": PortfolioType,
      "ledgers": [LedgerType],
      "metadata": [Metadata],
      "canRequestRefund": true,
      "requestRefundEligibility": RequestRefundEligibilityType,
      "payments": AccountPaymentConnectionTypeConnection,
      "repayments": AccountRepaymentConnectionTypeConnection,
      "paymentPlans": PaymentPlanConnectionTypeConnection,
      "paymentSchedules": PaymentScheduleConnectionTypeConnection,
      "paymentForecast": [PaymentForecastType],
      "paginatedPaymentForecast": PaymentForecastConnectionTypeConnection,
      "referrals": ReferralConnectionTypeConnection,
      "referralsCreated": 1,
      "rewards": [RewardType],
      "activeReferralSchemes": ReferralSchemeTypes,
      "transactions": TransactionConnectionTypeConnection,
      "provisionalTransactions": ProvisionalTransactionConnectionTypeConnection,
      "annualStatements": AnnualStatementConnectionTypeConnection,
      "bills": BillConnectionTypeConnection,
      "billingOptions": BillingOptionsType,
      "billingTriggerConfiguration": BillingTriggerConfiguration,
      "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],
      "partnerAccessors": PartnerAccessorAccessConnectionTypeConnection,
      "accountUserAccessors": AccountUserAccessorAccessConnectionTypeConnection,
      "complaints": ComplaintConnectionTypeConnection,
      "id": "abc123",
      "users": AccountUserType,
      "properties": [PropertyType],
      "marketSupplyAgreements": AgreementConnection,
      "canModifyPayments": CanModifyPaymentsType
    }
  }
}

accountIoEligibility

Type:AccountIoEligibility

URL:https://api.resiflexna-kraken.systems/v1/graphql/

Determines whether an account is eligible to register devices with SmartFlex.

Arguments

NameDescription

accountNumber (String!)

Account number.

propertyId (Int)

            The property's id where the device will be registered to.
            Note: in future, eligibility checks will be dependent on the property id and
            it will be a required input.

Query

query AccountIoEligibility(
  $accountNumber: String!,
  $propertyId: Int
) {
  accountIoEligibility(
    accountNumber: $accountNumber,
    propertyId: $propertyId
  ) {
    isEligibleForIo
  }
}

Variables

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

Response

{
  "data": {
    "accountIoEligibility": {
      "isEligibleForIo": true
    }
  }
}

accountReference

Type:[AccountReferenceType]

URL:https://api.resiflexna-kraken.systems/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.resiflexna-kraken.systems/v1/graphql/

Retrieve an account user.

The possible errors that can be raised are:

  • KT-CT-5418: Account user not found.
  • KT-CT-5415: Account user not found.
  • KT-CT-5423: Account user not found.
  • KT-CT-5424: Invalid data.
  • KT-CT-5421: Account user not found.
  • KT-CT-5425: Account user not found.
  • KT-CT-5427: Account user not found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

email (String)

Email associated with an account user.

number (ID)

Kraken number associated with an account user.

externalId (ID)

External ID associated with an account user.

detail (AccountUserDetailInput)

Account user detail namespace/value pair which uniquely identifies a user.

Query

query AccountUser(
  $email: String,
  $number: ID,
  $externalId: ID,
  $detail: AccountUserDetailInput
) {
  accountUser(
    email: $email,
    number: $number,
    externalId: $externalId,
    detail: $detail
  ) {
    id
    number
    givenName
    familyName
    email
    mobile
    landline
    title
    pronouns
    isDeceased
    liveSecretKey
    createdAt
    permissions {
      ...AccountUserPermissionFragment
    }
    accounts {
      ...AccountInterfaceFragment
    }
    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
    }
    externalId
    details {
      ...AccountUserDetailTypeFragment
    }
    consents {
      ...ConsentTypeFragment
    }
    paymentMethods {
      ...PaymentInstructionConnectionTypeConnectionFragment
    }
  }
}

Variables

{
  "email": "abc123",
  "number": "abc123",
  "externalId": "abc123",
  "detail": AccountUserDetailInput
}

Response

{
  "data": {
    "accountUser": {
      "id": "abc123",
      "number": "abc123",
      "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],
      "accounts": AccountInterface,
      "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],
      "externalId": "abc123",
      "details": [AccountUserDetailType],
      "consents": ConsentType,
      "paymentMethods": PaymentInstructionConnectionTypeConnection
    }
  }
}

accountsSearch

Type:[AccountSearchItemType]

URL:https://api.resiflexna-kraken.systems/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"
      }
    ]
  }
}

backendScreen

Type:BackendScreenType

URL:https://api.resiflexna-kraken.systems/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.resiflexna-kraken.systems/v1/graphql/

Get all registered backend screen event IDs.

Query

query BackendScreenEventIds {
  backendScreenEventIds
}

Response

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

Query

query BackendScreenIds {
  backendScreenIds
}

Response

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

business

Type:BusinessType

URL:https://api.resiflexna-kraken.systems/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.

displayableNumber (String)

Kraken-generated, human-readable number for display purposes.

details ([BusinessDetailInput])

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

Query

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

Variables

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

Response

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

call

Type:CallInterface!

URL:https://api.resiflexna-kraken.systems/v1/graphql/

Get a call using an integer or UUID identifier.

The possible errors that can be raised are:

  • KT-CT-11802: Call not found.
  • KT-CT-11817: Invalid call ID.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

id (ID!)

Identifier for the call, as an integer or a UUID.

Query

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

Variables

{
  "id": "abc123"
}

Response

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

callRecordingDetail

Type:CallRecordingDetailType!

URL:https://api.resiflexna-kraken.systems/v1/graphql/

Get recording detail for a call and call recording.

The possible errors that can be raised are:

  • KT-CT-11822: Recording detail incomplete.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

vendor (VoiceVendor!)

The voice vendor managing the call.

vendorRecordingId (ID!)

Unique ID of the call in the vendor's system.

Query

query CallRecordingDetail(
  $vendor: VoiceVendor!,
  $vendorRecordingId: ID!
) {
  callRecordingDetail(
    vendor: $vendor,
    vendorRecordingId: $vendorRecordingId
  ) {
    callId
    callDirection
    primaryAgentEmail
    toPhoneNumber
    fromPhoneNumber
    startTime
    endTime
    events {
      ...CallRecordingDetailEventTypeFragment
    }
    download {
      ...CallRecordingDownloadTypeFragment
    }
  }
}

Variables

{
  "vendor": "TWILIO",
  "vendorRecordingId": "abc123"
}

Response

{
  "data": {
    "callRecordingDetail": {
      "callId": "abc123",
      "callDirection": "abc123",
      "primaryAgentEmail": "abc123",
      "toPhoneNumber": "abc123",
      "fromPhoneNumber": "abc123",
      "startTime": "2020-01-01T00:00:00.000Z",
      "endTime": "2020-01-01T00:00:00.000Z",
      "events": [CallRecordingDetailEventType],
      "download": CallRecordingDownloadType
    }
  }
}

callTag

Type:CallTagType!

URL:https://api.resiflexna-kraken.systems/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
    }
  }
}

callTranscripts

Type:CallTranscriptConnectionTypeConnection!

URL:https://api.resiflexna-kraken.systems/v1/graphql/

Get all non-deleted transcripts for the given call, newest first. In-progress and failed transcripts are included for diagnostic visibility but their download field will be null.

Arguments

NameDescription

callId (ID!)

Identifier for the call, as an integer or a UUID.

before (String)

after (String)

first (Int)

last (Int)

Query

query CallTranscripts(
  $callId: ID!,
  $before: String,
  $after: String,
  $first: Int,
  $last: Int
) {
  callTranscripts(
    callId: $callId,
    before: $before,
    after: $after,
    first: $first,
    last: $last
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...CallTranscriptConnectionTypeEdgeFragment
    }
    totalCount
    edgeCount
  }
}

Variables

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

Response

{
  "data": {
    "callTranscripts": {
      "pageInfo": PageInfo,
      "edges": CallTranscriptConnectionTypeEdge,
      "totalCount": 1,
      "edgeCount": 1
    }
  }
}

callTranscriptsInWindow

Type:CallTranscriptConnectionTypeConnection!

URL:https://api.resiflexna-kraken.systems/v1/graphql/

Get all completed transcripts whose transcribed_at falls within a time window.

Arguments

NameDescription

transcribedAfter (DateTime!)

Only transcripts where transcribed_at is at or after this datetime.

transcribedBefore (DateTime)

Only transcripts where transcribed_at is at or before this datetime. Defaults to the current time when omitted.

before (String)

after (String)

first (Int)

last (Int)

Query

query CallTranscriptsInWindow(
  $transcribedAfter: DateTime!,
  $transcribedBefore: DateTime,
  $before: String,
  $after: String,
  $first: Int,
  $last: Int
) {
  callTranscriptsInWindow(
    transcribedAfter: $transcribedAfter,
    transcribedBefore: $transcribedBefore,
    before: $before,
    after: $after,
    first: $first,
    last: $last
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...CallTranscriptConnectionTypeEdgeFragment
    }
    totalCount
    edgeCount
  }
}

Variables

{
  "transcribedAfter": "2020-01-01T00:00:00.000Z",
  "transcribedBefore": "2020-01-01T00:00:00.000Z",
  "before": "abc123",
  "after": "abc123",
  "first": 1,
  "last": 1
}

Response

{
  "data": {
    "callTranscriptsInWindow": {
      "pageInfo": PageInfo,
      "edges": CallTranscriptConnectionTypeEdge,
      "totalCount": 1,
      "edgeCount": 1
    }
  }
}

calls

Type:CallConnectionTypeConnection!

URL:https://api.resiflexna-kraken.systems/v1/graphql/

Get calls involving a given phone number, most recent first, optionally filtered by call tags. For example, this can be used to check whether previous calls from a phone number were tagged in a particular way.

Arguments

NameDescription

phoneNumber (String!)

Phone number to find calls for. Matches calls where either the caller's or the recipient's phone number contains this value.

callTagIds ([ID!])

Only include calls that have all of the given call tags applied.

before (String)

after (String)

first (Int)

last (Int)

Query

query Calls(
  $phoneNumber: String!,
  $callTagIds: [ID!],
  $before: String,
  $after: String,
  $first: Int,
  $last: Int
) {
  calls(
    phoneNumber: $phoneNumber,
    callTagIds: $callTagIds,
    before: $before,
    after: $after,
    first: $first,
    last: $last
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...CallConnectionTypeEdgeFragment
    }
    totalCount
    edgeCount
  }
}

Variables

{
  "phoneNumber": "abc123",
  "callTagIds": ["abc123"],
  "before": "abc123",
  "after": "abc123",
  "first": 1,
  "last": 1
}

Response

{
  "data": {
    "calls": {
      "pageInfo": PageInfo,
      "edges": CallConnectionTypeEdge,
      "totalCount": 1,
      "edgeCount": 1
    }
  }
}

chargePointVariants

Type:[ChargePointVariantType]

URL:https://api.resiflexna-kraken.systems/v1/graphql/

All charge points variants.

Deprecated

The 'chargePointVariants' field is deprecated.

Please use 'flexSupportedDevices' instead.

- Marked as deprecated on 2026-04-15.
- Scheduled for removal on or after 2026-10-15.

Query

query ChargePointVariants {
  chargePointVariants {
    make
    models {
      ...ChargePointVariantModelTypeFragment
    }
  }
}

Response

{
  "data": {
    "chargePointVariants": [
      {
        "make": "abc123",
        "models": [ChargePointVariantModelType]
      }
    ]
  }
}

completedDispatches

Type:[UpsideDispatchType]

URL:https://api.resiflexna-kraken.systems/v1/graphql/

All completed device dispatches 12 hours behind, in reverse time order.

The possible errors that can be raised are:

  • KT-CT-1111: Unauthorized.
  • KT-CT-4341: Unable to fetch completed dispatches.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

accountNumber (String!)

Query

query CompletedDispatches($accountNumber: String!) {
  completedDispatches(accountNumber: $accountNumber) {
    start
    end
    startDt
    endDt
    deltaKwh
    delta
    meta {
      ...UpsideDispatchMetaTypeFragment
    }
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "completedDispatches": [
      {
        "start": "2020-01-01T00:00:00.000Z",
        "end": "2020-01-01T00:00:00.000Z",
        "startDt": "abc123",
        "endDt": "abc123",
        "deltaKwh": 1,
        "delta": "1.0",
        "meta": UpsideDispatchMetaType
      }
    ]
  }
}

costOfCharge

Type:[CostOfChargeType]

URL:https://api.resiflexna-kraken.systems/v1/graphql/

Aggregated cost of charge for an EV device.

The possible errors that can be raised are:

  • KT-CT-4326: Could not get consumption cost data.
  • KT-CT-1113: Disabled GraphQL field requested.

Deprecated

The 'costOfCharge' field is deprecated.

Use `cost` field on `SmartFlexChargingSession` instead.

- Marked as deprecated on 2025-05-13.
- Scheduled for removal on or after 2026-01-16.

You can read more about this deprecation on:
https://announcements.kraken.tech/announcements/public/605/

Arguments

NameDescription

accountNumber (String!)

frequency (DataFrequency!)

Frequency by day, week, month or year.

reportDate (Date)

The date up to which data should be relative to.

startDate (Date)

The start date of the results required. Overrides report date (end date) if provided.

Query

query CostOfCharge(
  $accountNumber: String!,
  $frequency: DataFrequency!,
  $reportDate: Date,
  $startDate: Date
) {
  costOfCharge(
    accountNumber: $accountNumber,
    frequency: $frequency,
    reportDate: $reportDate,
    startDate: $startDate
  ) {
    costOfChargeId
    krakenflexDeviceId
    reportDate
    isSmartCharge
    totalConsumption
    totalCostExclTax
    totalCostInclTax
  }
}

Variables

{
  "accountNumber": "abc123",
  "frequency": "DAILY",
  "reportDate": "2020-01-01",
  "startDate": "2020-01-01"
}

Response

{
  "data": {
    "costOfCharge": [
      {
        "costOfChargeId": "abc123",
        "krakenflexDeviceId": "abc123",
        "reportDate": "2020-01-01",
        "isSmartCharge": true,
        "totalConsumption": 1.0,
        "totalCostExclTax": 1.0,
        "totalCostInclTax": 1.0
      }
    ]
  }
}

dashboardScreen

Type:Dashboard

URL:https://api.resiflexna-kraken.systems/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"
    }
  }
}

Arguments

NameDescription

accountNumber (String!)

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

propertyId (ID)

Only list devices registered to this property.

deviceId (String)

Only list the device with this ID.

integrationDeviceId (String)

Only list the device with this integration device ID.

Query

query Devices(
  $accountNumber: String!,
  $propertyId: ID,
  $deviceId: String,
  $integrationDeviceId: String
) {
  devices(
    accountNumber: $accountNumber,
    propertyId: $propertyId,
    deviceId: $deviceId,
    integrationDeviceId: $integrationDeviceId
  ) {
    id
    name
    deviceType
    provider
    integrationDeviceId
    status {
      ...SmartFlexDeviceStatusInterfaceFragment
    }
    propertyId
    alerts {
      ...SmartFlexDeviceAlertInterfaceFragment
    }
    onboardingWizard {
      ...SmartFlexOnboardingWizardFragment
    }
    preferences {
      ...SmartFlexDevicePreferencesInterfaceFragment
    }
    preferenceSetting {
      ...FlexDevicePreferenceSettingInterfaceFragment
    }
    reAuthenticationState {
      ...DeviceReAuthenticationInterfaceFragment
    }
  }
}

Variables

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

Response

{
  "data": {
    "devices": [
      {
        "id": "abc123",
        "name": "abc123",
        "deviceType": "BATTERIES",
        "provider": "BMW",
        "integrationDeviceId": "abc123",
        "status": SmartFlexDeviceStatusInterface,
        "propertyId": "abc123",
        "alerts": SmartFlexDeviceAlertInterface,
        "onboardingWizard": SmartFlexOnboardingWizard,
        "preferences": SmartFlexDevicePreferencesInterface,
        "preferenceSetting": FlexDevicePreferenceSettingInterface,
        "reAuthenticationState": DeviceReAuthenticationInterface
      }
    ]
  }
}

electricVehicles

Type:[ElectricVehicleType]

URL:https://api.resiflexna-kraken.systems/v1/graphql/

All electric vehicle types and their details.

The possible errors that can be raised are:

  • KT-CT-4343: Unable to fetch electric vehicles list for make.
  • KT-CT-4344: Make is not supported by provider.
  • KT-CT-1113: Disabled GraphQL field requested.

Deprecated

The 'electricVehicles' field is deprecated.

Please use 'flexSupportedDevices' instead.

- Marked as deprecated on 2026-04-15.
- Scheduled for removal on or after 2026-10-15.

Arguments

NameDescription

make (String)

Only return vehicle types for the specified make.

supportedProvider (ProviderChoices)

Only return vehicle types supported by the specified provider, e.g. Tesla.

isIntegrationLive (Boolean)

Only return vehicles that are currently integrated.

Query

query ElectricVehicles(
  $make: String,
  $supportedProvider: ProviderChoices,
  $isIntegrationLive: Boolean
) {
  electricVehicles(
    make: $make,
    supportedProvider: $supportedProvider,
    isIntegrationLive: $isIntegrationLive
  ) {
    make
    models {
      ...ElectricVehicleModelTypeFragment
    }
  }
}

Variables

{
  "make": "abc123",
  "supportedProvider": "BMW",
  "isIntegrationLive": true
}

Response

{
  "data": {
    "electricVehicles": [
      {
        "make": "abc123",
        "models": [ElectricVehicleModelType]
      }
    ]
  }
}

eligibleDeviceTypes

Type:[KrakenFlexDeviceTypes]

URL:https://api.resiflexna-kraken.systems/v1/graphql/

A list of device types that are eligible for registration.

Arguments

NameDescription

accountNumber (String!)

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

propertyId (Int)

            The property's id where the device will be registered to.
            Note: in future, eligible device types will be dependent on the property id and
            it will be a required input.

Query

query EligibleDeviceTypes(
  $accountNumber: String!,
  $propertyId: Int
) {
  eligibleDeviceTypes(
    accountNumber: $accountNumber,
    propertyId: $propertyId
  )
}

Variables

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

Response

{
  "data": {
    "eligibleDeviceTypes": "BATTERIES"
  }
}

estimateMeterReadings

Type:MeterReadingEstimationReadingConnection

URL:https://api.resiflexna-kraken.systems/v1/graphql/

Estimated meter readings.

Deprecated

The 'estimateMeterReadings' field is deprecated.

Use `estimatedSupplyPointReadings` instead.

- Marked as deprecated on 2026-07-30.
- Scheduled for removal on or after 2026-08-10.

You can read more about this deprecation on:
https://announcements.kraken.tech/announcements/public/1621/

Arguments

NameDescription

periodStart (DateTime!)

The start of the period estimated.

periodEnd (DateTime!)

The end of the period estimated.

marketIdentifier (ID!)

This is the unique identifier used by the market to identify the supply point.

deviceId (ID)

The meter id to perform estimation on.

registerId (ID)

The meter's register identifier.

before (String)

after (String)

first (Int)

last (Int)

Query

query EstimateMeterReadings(
  $periodStart: DateTime!,
  $periodEnd: DateTime!,
  $marketIdentifier: ID!,
  $deviceId: ID,
  $registerId: ID,
  $before: String,
  $after: String,
  $first: Int,
  $last: Int
) {
  estimateMeterReadings(
    periodStart: $periodStart,
    periodEnd: $periodEnd,
    marketIdentifier: $marketIdentifier,
    deviceId: $deviceId,
    registerId: $registerId,
    before: $before,
    after: $after,
    first: $first,
    last: $last
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...MeterReadingEstimationReadingEdgeFragment
    }
    totalCount
    edgeCount
  }
}

Variables

{
  "periodStart": "2020-01-01T00:00:00.000Z",
  "periodEnd": "2020-01-01T00:00:00.000Z",
  "marketIdentifier": "abc123",
  "deviceId": "abc123",
  "registerId": "abc123",
  "before": "abc123",
  "after": "abc123",
  "first": 1,
  "last": 1
}

Response

{
  "data": {
    "estimateMeterReadings": {
      "pageInfo": PageInfo,
      "edges": MeterReadingEstimationReadingEdge,
      "totalCount": 1,
      "edgeCount": 1
    }
  }
}

estimatedSupplyPointReadings

Type:[EstimatedSupplyPointReadingType]

URL:https://api.resiflexna-kraken.systems/v1/graphql/

Return actual readings within the requested period followed by forward-estimated readings up to end_at. Estimated readings are extrapolated from the most recent actual reading.

The possible errors that can be raised are:

  • KT-CT-13610: Supply point not found or not configured for estimation.
  • KT-CT-13611: No readings found for the requested period.
  • KT-CT-13612: PEAK reading type is not supported for estimation.
  • KT-CT-13613: Market not configured for supply point readings.
  • KT-CT-13614: Invalid timezone.
  • KT-CT-13615: No readings available for estimation.
  • KT-CT-13616: Meter readings are invalid.
  • KT-CT-13617: Unsupported time granularity for estimation.
  • KT-CT-13618: Register metadata not found for supply point.
  • KT-CT-13619: Multiple register metadata records found for supply point.
  • KT-CT-13605: No estimation algorithm configured for the requested parameters.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

supplyPointId (String!)

The market-level external identifier of the supply point (e.g. ICP number).

marketName (String!)

The market this supply point belongs to.

startAt (DateTime!)

The start of the requested period (inclusive, timezone-aware).

endAt (DateTime!)

The end of the requested period (exclusive, timezone-aware).

timezone (String!)

IANA timezone name used for aggregation boundaries (e.g. 'Pacific/Auckland').

readingType (ReadingTypes!)

The reading type to estimate. PEAK is not supported.

timeGranularity (TimeGranularities!)

The time granularity for aggregating readings.

deviceId (ID)

Optional meter device identifier to filter readings.

registerId (ID)

Optional register identifier to filter readings.

Query

query EstimatedSupplyPointReadings(
  $supplyPointId: String!,
  $marketName: String!,
  $startAt: DateTime!,
  $endAt: DateTime!,
  $timezone: String!,
  $readingType: ReadingTypes!,
  $timeGranularity: TimeGranularities!,
  $deviceId: ID,
  $registerId: ID
) {
  estimatedSupplyPointReadings(
    supplyPointId: $supplyPointId,
    marketName: $marketName,
    startAt: $startAt,
    endAt: $endAt,
    timezone: $timezone,
    readingType: $readingType,
    timeGranularity: $timeGranularity,
    deviceId: $deviceId,
    registerId: $registerId
  ) {
    intervalStart
    intervalEnd
    value
    quality
    isEstimated
  }
}

Variables

{
  "supplyPointId": "abc123",
  "marketName": "abc123",
  "startAt": "2020-01-01T00:00:00.000Z",
  "endAt": "2020-01-01T00:00:00.000Z",
  "timezone": "abc123",
  "readingType": "INTERVAL",
  "timeGranularity": "FIVE_MIN",
  "deviceId": "abc123",
  "registerId": "abc123"
}

Response

{
  "data": {
    "estimatedSupplyPointReadings": [
      {
        "intervalStart": "2020-01-01T00:00:00.000Z",
        "intervalEnd": "2020-01-01T00:00:00.000Z",
        "value": "1.0",
        "quality": "abc123",
        "isEstimated": true
      }
    ]
  }
}

flexPlannedDispatches

Type:[SmartFlexDispatch]

URL:https://api.resiflexna-kraken.systems/v1/graphql/

All planned device dispatches in time order.

The possible errors that can be raised are:

  • KT-CT-1111: Unauthorized.
  • KT-CT-4340: Unable to fetch planned dispatches.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

deviceId (String!)

The SmartFlex device ID to get the planned dispatches for.

Query

query FlexPlannedDispatches($deviceId: String!) {
  flexPlannedDispatches(deviceId: $deviceId) {
    start
    end
    type
    energyAddedKwh
  }
}

Variables

{
  "deviceId": "abc123"
}

Response

{
  "data": {
    "flexPlannedDispatches": [
      {
        "start": "2020-01-01T00:00:00.000Z",
        "end": "2020-01-01T00:00:00.000Z",
        "type": "SMART",
        "energyAddedKwh": "1.0"
      }
    ]
  }
}

flexSupportedDevices

Type:FlexSupportedDevices

URL:https://api.resiflexna-kraken.systems/v1/graphql/

Devices capable of being registered with SmartFlex.

The possible errors that can be raised are:

  • KT-CT-4342: One of deviceType or supportedDeviceType must be provided.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

deviceType (KrakenFlexDeviceTypes)

The device type to get the supported devices for. Deprecated: use supportedDeviceType instead, which also includes charge points. Exactly one of deviceType or supportedDeviceType must be provided.

supportedDeviceType (FlexSupportedDeviceTypes)

The device type to get the supported devices for, including charge points. Exactly one of deviceType or supportedDeviceType must be provided.

Query

query FlexSupportedDevices(
  $deviceType: KrakenFlexDeviceTypes,
  $supportedDeviceType: FlexSupportedDeviceTypes
) {
  flexSupportedDevices(
    deviceType: $deviceType,
    supportedDeviceType: $supportedDeviceType
  ) {
    deviceType
    supportedDeviceType
    supportedMakes {
      ...FlexSupportedMakeFragment
    }
  }
}

Variables

{
  "deviceType": "BATTERIES",
  "supportedDeviceType": "CHARGE_POINTS"
}

Response

{
  "data": {
    "flexSupportedDevices": {
      "deviceType": "BATTERIES",
      "supportedDeviceType": "CHARGE_POINTS",
      "supportedMakes": FlexSupportedMake
    }
  }
}

Query

query InboundCallAverageWaitTime {
  inboundCallAverageWaitTime {
    yesterday
    recent
  }
}

Response

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

inboundCallAverageWaitTimeForAttributes

Type:InboundCallAverageWaitTimeForAttributesType

URL:https://api.resiflexna-kraken.systems/v1/graphql/

Get the average wait time for inbound calls with the given routing attributes. Note that calls with more attributes than those given will be included.

Arguments

NameDescription

attributes ([String]!)

Routing attribute references to filter calls by. Calls must have all of the given attributes to be included.

Query

query InboundCallAverageWaitTimeForAttributes($attributes: [String]!) {
  inboundCallAverageWaitTimeForAttributes(attributes: $attributes) {
    yesterday
    recent
  }
}

Variables

{
  "attributes": "abc123"
}

Response

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

inkCommsTemplate

Type:String!

URL:https://api.resiflexna-kraken.systems/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.resiflexna-kraken.systems/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-7658: Unauthorized to access this conversation.
  • 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
    }
    lastMessageAt
  }
}

Variables

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

Response

{
  "data": {
    "inkConversation": {
      "id": "abc123",
      "status": "OPEN",
      "contactChannelIdentities": InkContactChannelIdentities,
      "accountUsers": [AccountUserType],
      "accountNumber": "abc123",
      "events": InkConversationEventsConnection,
      "buckets": [InkBucket],
      "tags": [InkTag],
      "lastMessageAt": "2020-01-01T00:00:00.000Z"
    }
  }
}

inkLiveChatConversations

Type:InkConversationsConnection!

URL:https://api.resiflexna-kraken.systems/v1/graphql/

Returns a list of paginated conversations associated with the user.

Arguments

NameDescription

status (String)

Filter by conversation's status.

before (String)

after (String)

first (Int)

last (Int)

Query

query InkLiveChatConversations(
  $status: String,
  $before: String,
  $after: String,
  $first: Int,
  $last: Int
) {
  inkLiveChatConversations(
    status: $status,
    before: $before,
    after: $after,
    first: $first,
    last: $last
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...InkConversationsEdgeFragment
    }
  }
}

Variables

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

Response

{
  "data": {
    "inkLiveChatConversations": {
      "pageInfo": PageInfo,
      "edges": InkConversationsEdge
    }
  }
}

inkMessage

Type:InkMessage!

URL:https://api.resiflexna-kraken.systems/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.resiflexna-kraken.systems/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.resiflexna-kraken.systems/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"
  }
}

Query

query KrakenVersion {
  krakenVersion {
    number
    SHA
    isPinned
  }
}

Response

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

node

Type:Node

URL:https://api.resiflexna-kraken.systems/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"
    }
  }
}

ocppConnection

Type:OCPPConnectionType

URL:https://api.resiflexna-kraken.systems/v1/graphql/

To confirm whether a device is connected to OCPP.

The possible errors that can be raised are:

  • KT-CT-1111: Unauthorized.
  • KT-CT-4311: Unable to confirm OCPP connection.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

accountNumber (String!)

Query

query OcppConnection($accountNumber: String!) {
  ocppConnection(accountNumber: $accountNumber) {
    isConnected
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "ocppConnection": {
      "isConnected": true
    }
  }
}

ocppDetails

Type:OCPPDetailsType

URL:https://api.resiflexna-kraken.systems/v1/graphql/

The user specific generated OCPP details.

The possible errors that can be raised are:

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

Arguments

NameDescription

accountNumber (String!)

Query

query OcppDetails($accountNumber: String!) {
  ocppDetails(accountNumber: $accountNumber) {
    url
    username
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "ocppDetails": {
      "url": "abc123",
      "username": "abc123"
    }
  }
}

paymentFingerprintChecks

Type:PaymentFingerPrintCheckType

URL:https://api.resiflexna-kraken.systems/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
    }
  }
}

plannedDispatches

Type:[UpsideDispatchType]

URL:https://api.resiflexna-kraken.systems/v1/graphql/

All planned device dispatches 24 hours ahead, (usually) in time order.

The possible errors that can be raised are:

  • KT-CT-1111: Unauthorized.
  • KT-CT-4340: Unable to fetch planned dispatches.
  • KT-CT-1113: Disabled GraphQL field requested.

Deprecated

The 'plannedDispatches' field is deprecated.

Please use 'flexPlannedDispatches' instead.

- Marked as deprecated on 2025-05-27.
- Scheduled for removal on or after 2026-01-16.

You can read more about this deprecation on:
https://announcements.kraken.tech/announcements/public/604/

Arguments

NameDescription

accountNumber (String!)

Query

query PlannedDispatches($accountNumber: String!) {
  plannedDispatches(accountNumber: $accountNumber) {
    start
    end
    startDt
    endDt
    deltaKwh
    delta
    meta {
      ...UpsideDispatchMetaTypeFragment
    }
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "plannedDispatches": [
      {
        "start": "2020-01-01T00:00:00.000Z",
        "end": "2020-01-01T00:00:00.000Z",
        "startDt": "abc123",
        "endDt": "abc123",
        "deltaKwh": 1,
        "delta": "1.0",
        "meta": UpsideDispatchMetaType
      }
    ]
  }
}

providerVirtualKeyDetails

Type:ProviderVirtualKeyDetailsType

URL:https://api.resiflexna-kraken.systems/v1/graphql/

Virtual key details (e.g. certificate public key) for the provider (if available).

Arguments

NameDescription

provider (ProviderChoices!)

The provider to get the virtual key details for.

deviceType (KrakenFlexDeviceTypes!)

The device type to get the virtual key details for (as providers may support multiple).

Query

query ProviderVirtualKeyDetails(
  $provider: ProviderChoices!,
  $deviceType: KrakenFlexDeviceTypes!
) {
  providerVirtualKeyDetails(
    provider: $provider,
    deviceType: $deviceType
  ) {
    virtualKeyName
    virtualKeyUri
  }
}

Variables

{
  "provider": "BMW",
  "deviceType": "BATTERIES"
}

Response

{
  "data": {
    "providerVirtualKeyDetails": {
      "virtualKeyName": "abc123",
      "virtualKeyUri": "abc123"
    }
  }
}

registeredKrakenflexDevice

Type:KrakenFlexDeviceType

URL:https://api.resiflexna-kraken.systems/v1/graphql/

A device registered with KrakenFlex for a given account.

The possible errors that can be raised are:

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

Deprecated

The 'registeredKrakenflexDevice' field is deprecated.

Please use 'devices' instead.

- Marked as deprecated on 2024-04-23.
- Scheduled for removal on or after 2026-03-01.

You can read more about this deprecation on:
https://announcements.kraken.tech/announcements/public/677/

Arguments

NameDescription

accountNumber (String!)

Query

query RegisteredKrakenflexDevice($accountNumber: String!) {
  registeredKrakenflexDevice(accountNumber: $accountNumber) {
    krakenflexDeviceId
    provider
    vehicleMake
    vehicleModel
    vehicleBatterySizeInKwh
    chargePointMake
    chargePointModel
    chargePointPowerInKw
    status
    suspended
    hasToken
    createdAt
    stateOfChargeLimit {
      ...StateOfChargeLimitFragment
    }
    testDispatchFailureReason
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "registeredKrakenflexDevice": {
      "krakenflexDeviceId": "abc123",
      "provider": "BMW",
      "vehicleMake": "abc123",
      "vehicleModel": "abc123",
      "vehicleBatterySizeInKwh": "1.0",
      "chargePointMake": "abc123",
      "chargePointModel": "abc123",
      "chargePointPowerInKw": "1.0",
      "status": "abc123",
      "suspended": true,
      "hasToken": true,
      "createdAt": "2020-01-01T00:00:00.000Z",
      "stateOfChargeLimit": StateOfChargeLimit,
      "testDispatchFailureReason": "NONE"
    }
  }
}

routingAttributes

Type:[RoutingAttributeType]!

URL:https://api.resiflexna-kraken.systems/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
    }
  }
}

Arguments

NameDescription

smartFlexDeviceId (String)

The SmartFlex device ID to get the supply point details for.

Query

query SmartFlexDeviceSupplyPoint($smartFlexDeviceId: String) {
  smartFlexDeviceSupplyPoint(smartFlexDeviceId: $smartFlexDeviceId) {
    importSupplyPointId
    smartFlexDeviceId
  }
}

Variables

{
  "smartFlexDeviceId": "abc123"
}

Response

{
  "data": {
    "smartFlexDeviceSupplyPoint": {
      "importSupplyPointId": "abc123",
      "smartFlexDeviceId": "abc123"
    }
  }
}

smartFlexOnboardingWizards

Type:[SmartFlexOnboardingWizard!]

URL:https://api.resiflexna-kraken.systems/v1/graphql/

A list of wizards for onboarding devices for an account and property.

The possible errors that can be raised are:

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

Arguments

NameDescription

accountNumber (String!)

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

propertyId (Int)

Only list wizards for this property.

wizardId (ID)

To get a specific wizard by ID, if it exists.

includeCancelled (Boolean)

Include cancelled wizards.

includeCompleted (Boolean)

Include completed wizards.

isResumable (Boolean)

Filters for onboarding wizards that can be resumed. List limits to one resumable wizard.

Query

query SmartFlexOnboardingWizards(
  $accountNumber: String!,
  $propertyId: Int,
  $wizardId: ID,
  $includeCancelled: Boolean,
  $includeCompleted: Boolean,
  $isResumable: Boolean
) {
  smartFlexOnboardingWizards(
    accountNumber: $accountNumber,
    propertyId: $propertyId,
    wizardId: $wizardId,
    includeCancelled: $includeCancelled,
    includeCompleted: $includeCompleted,
    isResumable: $isResumable
  ) {
    id
    resumable {
      ...SmartFlexResumableFragment
    }
    deviceType
    isComplete
    displayName
    backendScreen {
      ... on ComponentListType {
        ...ComponentListTypeFragment
      }
      ... on GenericBackendScreen {
        ...GenericBackendScreenFragment
      }
      ... on Dashboard {
        ...DashboardFragment
      }
      ... on FormScreenType {
        ...FormScreenTypeFragment
      }
    }
    currentStep {
      ...SmartFlexOnboardingStepInterfaceFragment
    }
    completedSteps {
      ...SmartFlexOnboardingStepInterfaceFragment
    }
  }
}

Variables

{
  "accountNumber": "abc123",
  "propertyId": 1,
  "wizardId": "abc123",
  "includeCancelled": true,
  "includeCompleted": true,
  "isResumable": true
}

Response

{
  "data": {
    "smartFlexOnboardingWizards": [
      {
        "id": "abc123",
        "resumable": SmartFlexResumable,
        "deviceType": "BATTERIES",
        "isComplete": true,
        "displayName": "abc123",
        "backendScreen": ComponentListType,
        "currentStep": SmartFlexOnboardingStepInterface,
        "completedSteps": SmartFlexOnboardingStepInterface
      }
    ]
  }
}

thirdPartyViewer

Type:ThirdPartyOrganizationType

URL:https://api.resiflexna-kraken.systems/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]
    }
  }
}

vehicleChargingPreferences

Type:VehicleChargingPreferencesType

URL:https://api.resiflexna-kraken.systems/v1/graphql/

Vehicle charging preference details.

The possible errors that can be raised are:

  • KT-CT-1111: Unauthorized.
  • KT-CT-4339: Your device charging preferences could not be fetched.
  • KT-CT-1113: Disabled GraphQL field requested.

Deprecated

The 'vehicleChargingPreferences' field is deprecated.

Please use 'devices.preferences' instead.

- Marked as deprecated on 2024-04-23.
- Scheduled for removal on or after 2026-03-01.

You can read more about this deprecation on:
https://announcements.kraken.tech/announcements/public/675/

Arguments

NameDescription

accountNumber (String!)

Query

query VehicleChargingPreferences($accountNumber: String!) {
  vehicleChargingPreferences(accountNumber: $accountNumber) {
    weekdayTargetTime
    weekdayTargetSoc
    weekendTargetTime
    weekendTargetSoc
    minimumSocPercentage
    maximumSocPercentage
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "vehicleChargingPreferences": {
      "weekdayTargetTime": "abc123",
      "weekdayTargetSoc": 1,
      "weekendTargetTime": "abc123",
      "weekendTargetSoc": 1,
      "minimumSocPercentage": 1,
      "maximumSocPercentage": 1
    }
  }
}

viewer

Type:AccountUserType

URL:https://api.resiflexna-kraken.systems/v1/graphql/

The currently authenticated user.

This field requires the Authorization header to be set.

Query

query Viewer {
  viewer {
    id
    number
    givenName
    familyName
    email
    mobile
    landline
    title
    pronouns
    isDeceased
    liveSecretKey
    createdAt
    permissions {
      ...AccountUserPermissionFragment
    }
    accounts {
      ...AccountInterfaceFragment
    }
    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
    }
    externalId
    details {
      ...AccountUserDetailTypeFragment
    }
    consents {
      ...ConsentTypeFragment
    }
    paymentMethods {
      ...PaymentInstructionConnectionTypeConnectionFragment
    }
  }
}

Response

{
  "data": {
    "viewer": {
      "id": "abc123",
      "number": "abc123",
      "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],
      "accounts": AccountInterface,
      "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],
      "externalId": "abc123",
      "details": [AccountUserDetailType],
      "consents": ConsentType,
      "paymentMethods": PaymentInstructionConnectionTypeConnection
    }
  }
}

voiceCampaign

Type:VoiceCampaignType!

URL:https://api.resiflexna-kraken.systems/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
    }
  }
}

workSchedule

Type:WorkScheduleType!

URL:https://api.resiflexna-kraken.systems/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"
    }
  }
}