Data Import REST API Changelog
This page shows recent changes to Data Import REST API.
22 May 2026 - Latest
No attributes to display
New
{
"x-enum-descriptions": {
"Calling Circle": "Calling Circle"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"x-enum-descriptions": {
"Calling Circle": "Calling Circle"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"items": {
"x-enum-descriptions": {
"Calling Circle": "Calling Circle"
}
}
}Old
{
"items": {
"x-enum-descriptions": {}
}
}
No attributes to display
No attributes to display
21 May 2026
New
{
"x-enum-descriptions": {
"ALL_CALLS_BAR": "ALL_CALLS_BAR",
"PARTIAL_SUSPEND": "PARTIAL_SUSPEND"
}
}Old
{
"x-enum-descriptions": {}
}New
[
{
"name": "Validate account type is valid",
"description": "Validate that only one account type is specified in the payload.",
"possible_errors": [
"multiple_account_types_selected"
]
},
{
"name": "Validate billing address fields",
"description": "If a legacy billing address is provided, validate that it is in the correct format.",
"possible_errors": [
"invalid_address"
]
},
{
"name": "Validate customer family name",
"description": "Validate the family name is provided for all customers on a domestic account. For Business accounts, set the family name to 'Business' if it is not provided.",
"possible_errors": [
"customer_family_name_required"
]
},
{
"name": "Validate metadata",
"description": "Validate that metadata, which is a list of key value pairs, does not contain duplicate keys.",
"possible_errors": [
"metadata_has_duplicate_keys"
]
},
{
"name": "Validate unique property external identifiers",
"description": "Ensures that <code>property_external_identifier</code> is not repeated across <code>supply_addresses</code> and <code>properties</code>.",
"possible_errors": [
"duplicate_property_external_identifiers"
]
},
{
"name": "Validate managed account type is allowed",
"description": "Validate that this instance of Kraken allows managed account types.",
"possible_errors": [
"managed_accounts_are_not_allowed"
]
},
{
"name": "Validate only portfolio lead has portfolio setting",
"description": "Validates that if portfolio settings are provided, then the account is marked as the portfolio lead.",
"possible_errors": [
"portfolio_settings_included_when_not_lead"
]
},
{
"name": "Validate business type and company number not provided for domestic accounts",
"description": "Validate that neither a business type or company number are provided for domestic accounts.",
"possible_errors": [
"business_fields_provided_for_domestic_accounts"
]
},
{
"name": "Validate no customers for unknown occupier",
"description": "Validate that no customers are provided for an unknown occupier.",
"possible_errors": [
"customer_with_unknown_occupier"
]
},
{
"name": "Validate that a customer given name is provided for business accounts",
"description": "Validate that a given name is provided for all customers on a business account. Note that this validation only applies if Kraken is configured to send registration flows for this import supplier.",
"possible_errors": [
"customer_given_name_required"
]
},
{
"name": "Validate portfolio reference provided correctly",
"description": "Validate that a portfolio reference is provided if portfolio settings have been provided and that a portfolio reference is not provided if the import supplier is set to create new portfolios.",
"possible_errors": [
"portfolio_references_missing",
"portfolio_references_provided"
]
},
{
"name": "Validate billing address style",
"description": "Validate that a legacy billing address (<code>billing_address1</code> etc.) and new-style billing address (<code>billing_address</code> object) are not both provided.",
"possible_errors": [
"billing_address_new_style_and_legacy"
]
},
{
"name": "Validate supply charge line items covered by a single agreement",
"description": "Validate each supply charge has a single agreement with matching product code that covers the period defined by it's line items minimum <code>start_date</code> to maximum <code>end_date</code>.",
"possible_errors": [
"supply_charge_line_items_not_covered_by_single_agreement"
]
},
{
"name": "Validate that Kraken can calculate when to start billing the account",
"description": "Validate that Kraken can calculate when to start billing the account. This is determined based on the existence of last billed to date, last statement closing date, and agreements.",
"possible_errors": [
"cannot_determine_responsible_for_billing_from_date"
]
},
{
"name": "Validate that terms with supply type matches a supply point supply type",
"description": "Validate that for terms containing a <code>supply_type</code> field that there is a supply point in the payload with a matching <code>supply_type</code>.",
"possible_errors": [
"term_supply_type_mismatch"
]
},
{
"name": "Validate that supply addresses and supply points are provided if account contracts are provided",
"description": "Validate that if <code>account_contracts</code> have been provided that a supply address with supply points has been provided under <code>supply_addresses</code>",
"possible_errors": [
"account_contracts_without_supply_points"
]
},
{
"name": "Validate historical statement billing document identifier presence",
"description": "Ensure that billing document identifiers are only provided for historical statement transactions and only when the relevant feature flag is enabled.",
"possible_errors": [
"historical_statement_billing_document_identifier_missing",
"historical_statement_billing_document_identifier_not_allowed_when_feature_flag_disabled"
]
},
{
"name": "Validate current statement transactions do not provide <code>billing_document_identifier</code>",
"description": "Validate that none of the current statement transactions include a <code>billing_document_identifier</code>, as this field is only applicable to historical statement transactions.",
"possible_errors": [
"billing_document_identifier_not_allowed_for_current_statement_transactions"
]
},
{
"name": "Validate historical statement transaction billing document identifier",
"description": "Ensure that the billing document identifier is the same for all historical statement transactions.",
"possible_errors": [
"historical_statement_billing_document_identifier_mismatch"
]
},
{
"name": "Validate that contract terms' product codes are part of supply agreements",
"description": "Ensure that any contract terms with product references have corresponding products in supply addresses.",
"possible_errors": [
"contract_term_product_code_not_in_agreements"
]
},
{
"name": "Validate that business is provided if enforcing business contracts",
"description": "Validate that the business field is provided if <code>enforce_business_contracts_exist</code> is set to True on the import supplier configuration.",
"possible_errors": [
"business_field_required"
]
},
{
"name": "Validate that the sum of ledger balances equals the transfer balance",
"description": "Validate that the sum of all <code>ledger_balance</code> provided for each ledger in <code>ledgers</code> equals the account-level <code>transfer_balance</code>.",
"possible_errors": [
"ledger_balances_not_equal_to_transfer_balance"
]
},
{
"name": "Validate business user info against customer info",
"description": "Validates that business user information matches the corresponding customer information for basic fields.",
"possible_errors": [
"customer_details_and_user_details_both_provided"
]
},
{
"name": "Validate payment preference <code>ledger_identifier</code>",
"description": "Ensure that the <code>ledger_identifier</code> provided has an equivalent <code>ledger</code> object with the same <code>ledger_identifier</code> .",
"possible_errors": [
"invalid_payment_preference_ledger_identifier"
]
},
{
"name": "Validate that referenced ledgers are unique in payment preferences",
"description": "Ensure that each ledger is referenced in at most one payment preference.",
"possible_errors": [
"duplicate_ledger_in_payment_preferences"
]
},
{
"name": "Validate that valid instruction_identifier provided for <code>ACTIVE_NEW</code> payment preference",
"description": "Ensure that <code>ACTIVE_NEW</code> payment preference has instruction_identifier from </code>payment_instructions</code> object.",
"possible_errors": [
"active_new_payment_preference_invalid_instruction_identifier"
]
},
{
"name": "Validate that the transactions for a voucher do not exceed its value",
"description": "Validate that the sum of all transaction values for a voucher is not greater than the value of the voucher.",
"possible_errors": [
"voucher_transactions_sum_greater_than_voucher_value"
]
},
{
"name": "Validate that each voucher charge transaction id has a matching transaction id within a transaction of type CHARGE",
"description": "Validate that each <code>voucher</code> <code>charge_transaction_id</code> has a matching <code>transaction_id</code> within a transaction of <code>type</code> CHARGE in <code>current_statement_transactions</code>, <code>historical_statement_transactions</code> or <code>historical_billing_documents</code>.",
"possible_errors": [
"voucher_charge_transaction_id_not_found"
]
},
{
"name": "Validate that each voucher redemption credit transaction id has a matching transaction id within a transaction of type CREDIT",
"description": "Validate that every <code>credit_transaction_id</code> in all <code>voucher_redemptions</code> in every <code>voucher</code> has a matching <code>transaction_id</code> within a transaction of <code>type</code> CREDIT in <code>current_statement_transactions</code>, <code>historical_statement_transactions</code> or <code>historical_billing_documents</code>.",
"possible_errors": [
"voucher_redemption_credit_transaction_id_not_found"
]
},
{
"name": "Validate parent property references exist",
"description": "Validates that all <code>parent_property_reference</code> values in <code>supply_addresses</code> and <code>properties</code> correspond to a <code>property_external_identifier</code> in the payload. This ensures the property hierarchy is valid.",
"possible_errors": [
"parent_property_reference_not_found"
]
}
]Old
[
{
"name": "Validate account type is valid",
"description": "Validate that only one account type is specified in the payload.",
"possible_errors": [
"multiple_account_types_selected"
]
},
{
"name": "Validate billing address fields",
"description": "If a legacy billing address is provided, validate that it is in the correct format.",
"possible_errors": [
"invalid_address"
]
},
{
"name": "Validate customer family name",
"description": "Validate the family name is provided for all customers on a domestic account. For Business accounts, set the family name to 'Business' if it is not provided.",
"possible_errors": [
"customer_family_name_required"
]
},
{
"name": "Validate metadata",
"description": "Validate that metadata, which is a list of key value pairs, does not contain duplicate keys.",
"possible_errors": [
"metadata_has_duplicate_keys"
]
},
{
"name": "Validate unique property external identifiers",
"description": "Ensures that <code>property_external_identifier</code> is not repeated across <code>supply_addresses</code> and <code>properties</code>.",
"possible_errors": [
"duplicate_property_external_identifiers"
]
},
{
"name": "Validate managed account type is allowed",
"description": "Validate that this instance of Kraken allows managed account types.",
"possible_errors": [
"managed_accounts_are_not_allowed"
]
},
{
"name": "Validate only portfolio lead has portfolio setting",
"description": "Validates that if portfolio settings are provided, then the account is marked as the portfolio lead.",
"possible_errors": [
"portfolio_settings_included_when_not_lead"
]
},
{
"name": "Validate business type and company number not provided for domestic accounts",
"description": "Validate that neither a business type or company number are provided for domestic accounts.",
"possible_errors": [
"business_fields_provided_for_domestic_accounts"
]
},
{
"name": "Validate no customers for unknown occupier",
"description": "Validate that no customers are provided for an unknown occupier.",
"possible_errors": [
"customer_with_unknown_occupier"
]
},
{
"name": "Validate that a customer given name is provided for business accounts",
"description": "Validate that a given name is provided for all customers on a business account. Note that this validation only applies if Kraken is configured to send registration flows for this import supplier.",
"possible_errors": [
"customer_given_name_required"
]
},
{
"name": "Validate portfolio reference provided correctly",
"description": "Validate that a portfolio reference is provided if portfolio settings have been provided and that a portfolio reference is not provided if the import supplier is set to create new portfolios.",
"possible_errors": [
"portfolio_references_missing",
"portfolio_references_provided"
]
},
{
"name": "Validate billing address style",
"description": "Validate that a legacy billing address (<code>billing_address1</code> etc.) and new-style billing address (<code>billing_address</code> object) are not both provided.",
"possible_errors": [
"billing_address_new_style_and_legacy"
]
},
{
"name": "Validate supply charge line items covered by a single agreement",
"description": "Validate each supply charge has a single agreement with matching product code that covers the period defined by it's line items minimum <code>start_date</code> to maximum <code>end_date</code>.",
"possible_errors": [
"supply_charge_line_items_not_covered_by_single_agreement"
]
},
{
"name": "Validate that Kraken can calculate when to start billing the account",
"description": "Validate that Kraken can calculate when to start billing the account. This is determined based on the existence of last billed to date, last statement closing date, and agreements.",
"possible_errors": [
"cannot_determine_responsible_for_billing_from_date"
]
},
{
"name": "Validate that terms with supply type matches a supply point supply type",
"description": "Validate that for terms containing a <code>supply_type</code> field that there is a supply point in the payload with a matching <code>supply_type</code>.",
"possible_errors": [
"term_supply_type_mismatch"
]
},
{
"name": "Validate that supply addresses and supply points are provided if account contracts are provided",
"description": "Validate that if <code>account_contracts</code> have been provided that a supply address with supply points has been provided under <code>supply_addresses</code>",
"possible_errors": [
"account_contracts_without_supply_points"
]
},
{
"name": "Validate historical statement billing document identifier presence",
"description": "Ensure that billing document identifiers are only provided for historical statement transactions and only when the relevant feature flag is enabled.",
"possible_errors": [
"historical_statement_billing_document_identifier_missing",
"historical_statement_billing_document_identifier_not_allowed_when_feature_flag_disabled"
]
},
{
"name": "Validate current statement transactions do not provide <code>billing_document_identifier</code>",
"description": "Validate that none of the current statement transactions include a <code>billing_document_identifier</code>, as this field is only applicable to historical statement transactions.",
"possible_errors": [
"billing_document_identifier_not_allowed_for_current_statement_transactions"
]
},
{
"name": "Validate historical statement transaction billing document identifier",
"description": "Ensure that the billing document identifier is the same for all historical statement transactions.",
"possible_errors": [
"historical_statement_billing_document_identifier_mismatch"
]
},
{
"name": "Validate that contract terms' product codes are part of supply agreements",
"description": "Ensure that any contract terms with product references have corresponding products in supply addresses.",
"possible_errors": [
"contract_term_product_code_not_in_agreements"
]
},
{
"name": "Validate that business is provided if enforcing business contracts",
"description": "Validate that the business field is provided if <code>enforce_business_contracts_exist</code> is set to True on the import supplier configuration.",
"possible_errors": [
"business_field_required"
]
},
{
"name": "Validate that the sum of ledger balances equals the transfer balance",
"description": "Validate that the sum of all <code>ledger_balance</code> provided for each ledger in <code>ledgers</code> equals the account-level <code>transfer_balance</code>.",
"possible_errors": [
"ledger_balances_not_equal_to_transfer_balance"
]
},
{
"name": "Validate business user info against customer info",
"description": "Validates that business user information matches the corresponding customer information for basic fields.",
"possible_errors": [
"customer_details_and_user_details_both_provided"
]
},
{
"name": "Validate payment preference <code>ledger_identifier</code>",
"description": "Ensure that the <code>ledger_identifier</code> provided has an equivalent <code>ledger</code> object with the same <code>ledger_identifier</code> .",
"possible_errors": [
"invalid_payment_preference_ledger_identifier"
]
},
{
"name": "Validate that referenced ledgers are unique in payment preferences",
"description": "Ensure that each ledger is referenced in at most one payment preference.",
"possible_errors": [
"duplicate_ledger_in_payment_preferences"
]
},
{
"name": "Validate that valid instruction_identifier provided for <code>ACTIVE_NEW</code> payment preference",
"description": "Ensure that <code>ACTIVE_NEW</code> payment preference has instruction_identifier from </code>payment_instructions</code> object.",
"possible_errors": [
"active_new_payment_preference_invalid_instruction_identifier"
]
},
{
"name": "Validate that the transactions for a voucher do not exceed its value",
"description": "Validate that the sum of all transaction values for a voucher is not greater than the value of the voucher.",
"possible_errors": [
"voucher_transactions_sum_greater_than_voucher_value"
]
},
{
"name": "Validate that each voucher charge transaction id has a matching transaction id within a transaction of type CHARGE",
"description": "Validate that each <code>voucher</code> <code>charge_transaction_id</code> has a matching <code>transaction_id</code> within a transaction of <code>type</code> CHARGE in <code>current_statement_transactions</code>, <code>historical_statement_transactions</code> or <code>historical_billing_documents</code>.",
"possible_errors": [
"voucher_charge_transaction_id_not_found"
]
},
{
"name": "Validate that each voucher redemption credit transaction id has a matching transaction id within a transaction of type CREDIT",
"description": "Validate that every <code>credit_transaction_id</code> in all <code>voucher_redemptions</code> in every <code>voucher</code> has a matching <code>transaction_id</code> within a transaction of <code>type</code> CREDIT in <code>current_statement_transactions</code>, <code>historical_statement_transactions</code> or <code>historical_billing_documents</code>.",
"possible_errors": [
"voucher_redemption_credit_transaction_id_not_found"
]
}
]Old
{
"maxItems": 1
}19 May 2026
No attributes to display
18 May 2026
New
{
"CORRECTIVE_PERIOD": "#/components/schemas/CorrectivePeriod"
}New
[
{
"$ref": "#/components/schemas/BespokeRateConfiguration"
},
{
"$ref": "#/components/schemas/BillDueDate"
},
{
"$ref": "#/components/schemas/BillingDocumentIssuanceFrequencyTerm"
},
{
"$ref": "#/components/schemas/CharacteristicOverrideConfiguration"
},
{
"$ref": "#/components/schemas/CollateralRequired"
},
{
"$ref": "#/components/schemas/ContractMetaData"
},
{
"$ref": "#/components/schemas/ContractedVolumeConfiguration"
},
{
"$ref": "#/components/schemas/CorrectivePeriod"
},
{
"$ref": "#/components/schemas/DelayerDays"
},
{
"$ref": "#/components/schemas/GuaranteeOfOriginConfiguration"
},
{
"$ref": "#/components/schemas/LatePaymentFees"
},
{
"$ref": "#/components/schemas/MinimumContractLength"
},
{
"$ref": "#/components/schemas/PaysByDirectDebitTerm"
},
{
"$ref": "#/components/schemas/ProductRateOverrideConfiguration"
},
{
"$ref": "#/components/schemas/PromotionAssignmentTerm"
},
{
"$ref": "#/components/schemas/RateGroupEligibilityConfiguration"
},
{
"$ref": "#/components/schemas/TaxAdjustmentConfiguration"
},
{
"$ref": "#/components/schemas/TerminationFee"
},
{
"$ref": "#/components/schemas/TelcoDiscountGroup"
},
{
"$ref": "#/components/schemas/TelcoEndOfContractPriceRiseGroup"
},
{
"$ref": "#/components/schemas/TelcoYearlyPriceRiseGroup"
},
{
"$ref": "#/components/schemas/TelcoWaiveExitFeeTerm"
},
{
"$ref": "#/components/schemas/TelcoContractInfo"
},
{
"$ref": "#/components/schemas/TelcoCommitmentEndDate"
},
{
"$ref": "#/components/schemas/TelcoProductMinimumCommitmentLength"
}
]Old
[
{
"$ref": "#/components/schemas/BespokeRateConfiguration"
},
{
"$ref": "#/components/schemas/BillDueDate"
},
{
"$ref": "#/components/schemas/BillingDocumentIssuanceFrequencyTerm"
},
{
"$ref": "#/components/schemas/CharacteristicOverrideConfiguration"
},
{
"$ref": "#/components/schemas/CollateralRequired"
},
{
"$ref": "#/components/schemas/ContractMetaData"
},
{
"$ref": "#/components/schemas/ContractedVolumeConfiguration"
},
{
"$ref": "#/components/schemas/DelayerDays"
},
{
"$ref": "#/components/schemas/GuaranteeOfOriginConfiguration"
},
{
"$ref": "#/components/schemas/LatePaymentFees"
},
{
"$ref": "#/components/schemas/MinimumContractLength"
},
{
"$ref": "#/components/schemas/PaysByDirectDebitTerm"
},
{
"$ref": "#/components/schemas/ProductRateOverrideConfiguration"
},
{
"$ref": "#/components/schemas/PromotionAssignmentTerm"
},
{
"$ref": "#/components/schemas/RateGroupEligibilityConfiguration"
},
{
"$ref": "#/components/schemas/TaxAdjustmentConfiguration"
},
{
"$ref": "#/components/schemas/TerminationFee"
},
{
"$ref": "#/components/schemas/TelcoDiscountGroup"
},
{
"$ref": "#/components/schemas/TelcoEndOfContractPriceRiseGroup"
},
{
"$ref": "#/components/schemas/TelcoYearlyPriceRiseGroup"
},
{
"$ref": "#/components/schemas/TelcoWaiveExitFeeTerm"
},
{
"$ref": "#/components/schemas/TelcoContractInfo"
},
{
"$ref": "#/components/schemas/TelcoCommitmentEndDate"
},
{
"$ref": "#/components/schemas/TelcoProductMinimumCommitmentLength"
}
]14 May 2026
New
{
"x-enum-descriptions": {
"BOOLEAN": "BOOLEAN"
}
}Old
{
"x-enum-descriptions": {}
}
No attributes to display
13 May 2026
New
[
{
"name": "Validate account type is valid",
"description": "Validate that only one account type is specified in the payload.",
"possible_errors": [
"multiple_account_types_selected"
]
},
{
"name": "Validate billing address fields",
"description": "If a legacy billing address is provided, validate that it is in the correct format.",
"possible_errors": [
"invalid_address"
]
},
{
"name": "Validate customer family name",
"description": "Validate the family name is provided for all customers on a domestic account. For Business accounts, set the family name to 'Business' if it is not provided.",
"possible_errors": [
"customer_family_name_required"
]
},
{
"name": "Validate metadata",
"description": "Validate that metadata, which is a list of key value pairs, does not contain duplicate keys.",
"possible_errors": [
"metadata_has_duplicate_keys"
]
},
{
"name": "Validate unique property external identifiers",
"description": "Ensures that <code>property_external_identifier</code> is not repeated across <code>supply_addresses</code> and <code>properties</code>.",
"possible_errors": [
"duplicate_property_external_identifiers"
]
},
{
"name": "Validate managed account type is allowed",
"description": "Validate that this instance of Kraken allows managed account types.",
"possible_errors": [
"managed_accounts_are_not_allowed"
]
},
{
"name": "Validate only portfolio lead has portfolio setting",
"description": "Validates that if portfolio settings are provided, then the account is marked as the portfolio lead.",
"possible_errors": [
"portfolio_settings_included_when_not_lead"
]
},
{
"name": "Validate business type and company number not provided for domestic accounts",
"description": "Validate that neither a business type or company number are provided for domestic accounts.",
"possible_errors": [
"business_fields_provided_for_domestic_accounts"
]
},
{
"name": "Validate no customers for unknown occupier",
"description": "Validate that no customers are provided for an unknown occupier.",
"possible_errors": [
"customer_with_unknown_occupier"
]
},
{
"name": "Validate that a customer given name is provided for business accounts",
"description": "Validate that a given name is provided for all customers on a business account. Note that this validation only applies if Kraken is configured to send registration flows for this import supplier.",
"possible_errors": [
"customer_given_name_required"
]
},
{
"name": "Validate portfolio reference provided correctly",
"description": "Validate that a portfolio reference is provided if portfolio settings have been provided and that a portfolio reference is not provided if the import supplier is set to create new portfolios.",
"possible_errors": [
"portfolio_references_missing",
"portfolio_references_provided"
]
},
{
"name": "Validate billing address style",
"description": "Validate that a legacy billing address (<code>billing_address1</code> etc.) and new-style billing address (<code>billing_address</code> object) are not both provided.",
"possible_errors": [
"billing_address_new_style_and_legacy"
]
},
{
"name": "Validate supply charge line items covered by a single agreement",
"description": "Validate each supply charge has a single agreement with matching product code that covers the period defined by it's line items minimum <code>start_date</code> to maximum <code>end_date</code>.",
"possible_errors": [
"supply_charge_line_items_not_covered_by_single_agreement"
]
},
{
"name": "Validate that Kraken can calculate when to start billing the account",
"description": "Validate that Kraken can calculate when to start billing the account. This is determined based on the existence of last billed to date, last statement closing date, and agreements.",
"possible_errors": [
"cannot_determine_responsible_for_billing_from_date"
]
},
{
"name": "Validate that terms with supply type matches a supply point supply type",
"description": "Validate that for terms containing a <code>supply_type</code> field that there is a supply point in the payload with a matching <code>supply_type</code>.",
"possible_errors": [
"term_supply_type_mismatch"
]
},
{
"name": "Validate that supply addresses and supply points are provided if account contracts are provided",
"description": "Validate that if <code>account_contracts</code> have been provided that a supply address with supply points has been provided under <code>supply_addresses</code>",
"possible_errors": [
"account_contracts_without_supply_points"
]
},
{
"name": "Validate historical statement billing document identifier presence",
"description": "Ensure that billing document identifiers are only provided for historical statement transactions and only when the relevant feature flag is enabled.",
"possible_errors": [
"historical_statement_billing_document_identifier_missing",
"historical_statement_billing_document_identifier_not_allowed_when_feature_flag_disabled"
]
},
{
"name": "Validate current statement transactions do not provide <code>billing_document_identifier</code>",
"description": "Validate that none of the current statement transactions include a <code>billing_document_identifier</code>, as this field is only applicable to historical statement transactions.",
"possible_errors": [
"billing_document_identifier_not_allowed_for_current_statement_transactions"
]
},
{
"name": "Validate historical statement transaction billing document identifier",
"description": "Ensure that the billing document identifier is the same for all historical statement transactions.",
"possible_errors": [
"historical_statement_billing_document_identifier_mismatch"
]
},
{
"name": "Validate that contract terms' product codes are part of supply agreements",
"description": "Ensure that any contract terms with product references have corresponding products in supply addresses.",
"possible_errors": [
"contract_term_product_code_not_in_agreements"
]
},
{
"name": "Validate that business is provided if enforcing business contracts",
"description": "Validate that the business field is provided if <code>enforce_business_contracts_exist</code> is set to True on the import supplier configuration.",
"possible_errors": [
"business_field_required"
]
},
{
"name": "Validate that the sum of ledger balances equals the transfer balance",
"description": "Validate that the sum of all <code>ledger_balance</code> provided for each ledger in <code>ledgers</code> equals the account-level <code>transfer_balance</code>.",
"possible_errors": [
"ledger_balances_not_equal_to_transfer_balance"
]
},
{
"name": "Validate business user info against customer info",
"description": "Validates that business user information matches the corresponding customer information for basic fields.",
"possible_errors": [
"customer_details_and_user_details_both_provided"
]
},
{
"name": "Validate payment preference <code>ledger_identifier</code>",
"description": "Ensure that the <code>ledger_identifier</code> provided has an equivalent <code>ledger</code> object with the same <code>ledger_identifier</code> .",
"possible_errors": [
"invalid_payment_preference_ledger_identifier"
]
},
{
"name": "Validate that referenced ledgers are unique in payment preferences",
"description": "Ensure that each ledger is referenced in at most one payment preference.",
"possible_errors": [
"duplicate_ledger_in_payment_preferences"
]
},
{
"name": "Validate that valid instruction_identifier provided for <code>ACTIVE_NEW</code> payment preference",
"description": "Ensure that <code>ACTIVE_NEW</code> payment preference has instruction_identifier from </code>payment_instructions</code> object.",
"possible_errors": [
"active_new_payment_preference_invalid_instruction_identifier"
]
},
{
"name": "Validate that the transactions for a voucher do not exceed its value",
"description": "Validate that the sum of all transaction values for a voucher is not greater than the value of the voucher.",
"possible_errors": [
"voucher_transactions_sum_greater_than_voucher_value"
]
},
{
"name": "Validate that each voucher charge transaction id has a matching transaction id within a transaction of type CHARGE",
"description": "Validate that each <code>voucher</code> <code>charge_transaction_id</code> has a matching <code>transaction_id</code> within a transaction of <code>type</code> CHARGE in <code>current_statement_transactions</code>, <code>historical_statement_transactions</code> or <code>historical_billing_documents</code>.",
"possible_errors": [
"voucher_charge_transaction_id_not_found"
]
},
{
"name": "Validate that each voucher redemption credit transaction id has a matching transaction id within a transaction of type CREDIT",
"description": "Validate that every <code>credit_transaction_id</code> in all <code>voucher_redemptions</code> in every <code>voucher</code> has a matching <code>transaction_id</code> within a transaction of <code>type</code> CREDIT in <code>current_statement_transactions</code>, <code>historical_statement_transactions</code> or <code>historical_billing_documents</code>.",
"possible_errors": [
"voucher_redemption_credit_transaction_id_not_found"
]
}
]Old
[
{
"name": "Validate account type is valid",
"description": "Validate that only one account type is specified in the payload.",
"possible_errors": [
"multiple_account_types_selected"
]
},
{
"name": "Validate billing address fields",
"description": "If a legacy billing address is provided, validate that it is in the correct format.",
"possible_errors": [
"invalid_address"
]
},
{
"name": "Validate customer family name",
"description": "Validate the family name is provided for all customers on a domestic account. For Business accounts, set the family name to 'Business' if it is not provided.",
"possible_errors": [
"customer_family_name_required"
]
},
{
"name": "Validate metadata",
"description": "Validate that metadata, which is a list of key value pairs, does not contain duplicate keys.",
"possible_errors": [
"metadata_has_duplicate_keys"
]
},
{
"name": "Validate managed account type is allowed",
"description": "Validate that this instance of Kraken allows managed account types.",
"possible_errors": [
"managed_accounts_are_not_allowed"
]
},
{
"name": "Validate only portfolio lead has portfolio setting",
"description": "Validates that if portfolio settings are provided, then the account is marked as the portfolio lead.",
"possible_errors": [
"portfolio_settings_included_when_not_lead"
]
},
{
"name": "Validate business type and company number not provided for domestic accounts",
"description": "Validate that neither a business type or company number are provided for domestic accounts.",
"possible_errors": [
"business_fields_provided_for_domestic_accounts"
]
},
{
"name": "Validate no customers for unknown occupier",
"description": "Validate that no customers are provided for an unknown occupier.",
"possible_errors": [
"customer_with_unknown_occupier"
]
},
{
"name": "Validate that a customer given name is provided for business accounts",
"description": "Validate that a given name is provided for all customers on a business account. Note that this validation only applies if Kraken is configured to send registration flows for this import supplier.",
"possible_errors": [
"customer_given_name_required"
]
},
{
"name": "Validate portfolio reference provided correctly",
"description": "Validate that a portfolio reference is provided if portfolio settings have been provided and that a portfolio reference is not provided if the import supplier is set to create new portfolios.",
"possible_errors": [
"portfolio_references_missing",
"portfolio_references_provided"
]
},
{
"name": "Validate billing address style",
"description": "Validate that a legacy billing address (<code>billing_address1</code> etc.) and new-style billing address (<code>billing_address</code> object) are not both provided.",
"possible_errors": [
"billing_address_new_style_and_legacy"
]
},
{
"name": "Validate supply charge line items covered by a single agreement",
"description": "Validate each supply charge has a single agreement with matching product code that covers the period defined by it's line items minimum <code>start_date</code> to maximum <code>end_date</code>.",
"possible_errors": [
"supply_charge_line_items_not_covered_by_single_agreement"
]
},
{
"name": "Validate that Kraken can calculate when to start billing the account",
"description": "Validate that Kraken can calculate when to start billing the account. This is determined based on the existence of last billed to date, last statement closing date, and agreements.",
"possible_errors": [
"cannot_determine_responsible_for_billing_from_date"
]
},
{
"name": "Validate that terms with supply type matches a supply point supply type",
"description": "Validate that for terms containing a <code>supply_type</code> field that there is a supply point in the payload with a matching <code>supply_type</code>.",
"possible_errors": [
"term_supply_type_mismatch"
]
},
{
"name": "Validate that supply addresses and supply points are provided if account contracts are provided",
"description": "Validate that if <code>account_contracts</code> have been provided that a supply address with supply points has been provided under <code>supply_addresses</code>",
"possible_errors": [
"account_contracts_without_supply_points"
]
},
{
"name": "Validate historical statement billing document identifier presence",
"description": "Ensure that billing document identifiers are only provided for historical statement transactions and only when the relevant feature flag is enabled.",
"possible_errors": [
"historical_statement_billing_document_identifier_missing",
"historical_statement_billing_document_identifier_not_allowed_when_feature_flag_disabled"
]
},
{
"name": "Validate current statement transactions do not provide <code>billing_document_identifier</code>",
"description": "Validate that none of the current statement transactions include a <code>billing_document_identifier</code>, as this field is only applicable to historical statement transactions.",
"possible_errors": [
"billing_document_identifier_not_allowed_for_current_statement_transactions"
]
},
{
"name": "Validate historical statement transaction billing document identifier",
"description": "Ensure that the billing document identifier is the same for all historical statement transactions.",
"possible_errors": [
"historical_statement_billing_document_identifier_mismatch"
]
},
{
"name": "Validate that contract terms' product codes are part of supply agreements",
"description": "Ensure that any contract terms with product references have corresponding products in supply addresses.",
"possible_errors": [
"contract_term_product_code_not_in_agreements"
]
},
{
"name": "Validate that business is provided if enforcing business contracts",
"description": "Validate that the business field is provided if <code>enforce_business_contracts_exist</code> is set to True on the import supplier configuration.",
"possible_errors": [
"business_field_required"
]
},
{
"name": "Validate that the sum of ledger balances equals the transfer balance",
"description": "Validate that the sum of all <code>ledger_balance</code> provided for each ledger in <code>ledgers</code> equals the account-level <code>transfer_balance</code>.",
"possible_errors": [
"ledger_balances_not_equal_to_transfer_balance"
]
},
{
"name": "Validate business user info against customer info",
"description": "Validates that business user information matches the corresponding customer information for basic fields.",
"possible_errors": [
"customer_details_and_user_details_both_provided"
]
},
{
"name": "Validate payment preference <code>ledger_identifier</code>",
"description": "Ensure that the <code>ledger_identifier</code> provided has an equivalent <code>ledger</code> object with the same <code>ledger_identifier</code> .",
"possible_errors": [
"invalid_payment_preference_ledger_identifier"
]
},
{
"name": "Validate that referenced ledgers are unique in payment preferences",
"description": "Ensure that each ledger is referenced in at most one payment preference.",
"possible_errors": [
"duplicate_ledger_in_payment_preferences"
]
},
{
"name": "Validate that valid instruction_identifier provided for <code>ACTIVE_NEW</code> payment preference",
"description": "Ensure that <code>ACTIVE_NEW</code> payment preference has instruction_identifier from </code>payment_instructions</code> object.",
"possible_errors": [
"active_new_payment_preference_invalid_instruction_identifier"
]
},
{
"name": "Validate that the transactions for a voucher do not exceed its value",
"description": "Validate that the sum of all transaction values for a voucher is not greater than the value of the voucher.",
"possible_errors": [
"voucher_transactions_sum_greater_than_voucher_value"
]
},
{
"name": "Validate that each voucher charge transaction id has a matching transaction id within a transaction of type CHARGE",
"description": "Validate that each <code>voucher</code> <code>charge_transaction_id</code> has a matching <code>transaction_id</code> within a transaction of <code>type</code> CHARGE in <code>current_statement_transactions</code>, <code>historical_statement_transactions</code> or <code>historical_billing_documents</code>.",
"possible_errors": [
"voucher_charge_transaction_id_not_found"
]
},
{
"name": "Validate that each voucher redemption credit transaction id has a matching transaction id within a transaction of type CREDIT",
"description": "Validate that every <code>credit_transaction_id</code> in all <code>voucher_redemptions</code> in every <code>voucher</code> has a matching <code>transaction_id</code> within a transaction of <code>type</code> CREDIT in <code>current_statement_transactions</code>, <code>historical_statement_transactions</code> or <code>historical_billing_documents</code>.",
"possible_errors": [
"voucher_redemption_credit_transaction_id_not_found"
]
}
]12 May 2026
New
[
{
"name": "Validate <code>\u2068valid_to\u2069</code> not before <code>\u2068valid_from\u2069</code>",
"description": "Validates that <code>\u2068valid_to\u2069</code>, if given, is on or later than <code>\u2068valid_from\u2069</code>.",
"possible_errors": [
"start_date_later_than_end_date"
]
},
{
"name": "Validate each item represents a possible rate for the product",
"description": "Validate each item's rate specification, characteristic values, and scheme labels represent a rate defned on the product.",
"possible_errors": [
"characteristic_code_not_found",
"invalid_characteristic_value",
"invalid_profile_variant_for_specification",
"product_specification_not_found_for_product",
"rate_specification_not_found_for_product",
"shared_rate_not_found",
"shared_rate_not_found_for_product"
]
}
]Old
[
{
"name": "Validate <code>\u2068valid_to\u2069</code> not before <code>\u2068valid_from\u2069</code>",
"description": "Validates that <code>\u2068valid_to\u2069</code>, if given, is on or later than <code>\u2068valid_from\u2069</code>.",
"possible_errors": [
"start_date_later_than_end_date"
]
},
{
"name": "Validate each item represents a possible rate for the product",
"description": "Validate each item's rate specification, characteristic values, and scheme labels represent a rate defned on the product.",
"possible_errors": [
"characteristic_code_not_found",
"invalid_characteristic_value",
"invalid_profile_variant_for_specification",
"product_specification_not_found_for_product",
"rate_specification_not_found_for_product"
]
}
]
No attributes to display
New
{
"x-enum-descriptions": {
"Copper Voice": "Copper Voice"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"x-enum-descriptions": {
"Copper Voice": "Copper Voice"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"items": {
"x-enum-descriptions": {
"Copper Voice": "Copper Voice"
}
}
}Old
{
"items": {
"x-enum-descriptions": {}
}
}New
{
"x-enum-descriptions": {
"COPPER_VOICE_SERVICE": "COPPER_VOICE_SERVICE"
}
}Old
{
"x-enum-descriptions": {}
}8 May 2026
New
{
"x-enum-descriptions": {
"VOIP_BOLTON_BOOST_SERVICE": "VOIP_BOLTON_BOOST_SERVICE"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"x-removal-date": "2026-05-25"
}New
{
"x-removal-date": "2026-05-25"
}7 May 2026
No attributes to display
No attributes to display
No attributes to display
6 May 2026
New
[
{
"name": "data-import--validation--time-series-exists-for-product",
"description": "Validate that the time series code provided matches the time series for the product with the provided product code.",
"possible_errors": [
"product_specification_not_found_for_product",
"time_series_not_found_for_product"
]
}
]Old
[
{
"name": "data-import--validation--time-series-exists-for-product",
"description": "Validate that the time series code provided matches the time series for the product with the provided product code.",
"possible_errors": [
"time_series_not_found_for_product"
]
}
]New
{
"x-enum-descriptions": {
"VOIP_BOLTON_PAID_FEATURE_SERVICE": "VOIP_BOLTON_PAID_FEATURE_SERVICE"
}
}Old
{
"x-enum-descriptions": {}
}
No attributes to display
27 April 2026
No attributes to display
24 April 2026
No attributes to display
No attributes to display
New
[
{
"name": "Promotion assignment discount targets are valid",
"description": "Validates that the promotion exists, discounts are defined in the promotion, target types match the discount target type, and target identifiers are valid.",
"possible_errors": [
"discount_not_in_promotion",
"invalid_input_data",
"promotion_not_registered",
"rate_source_provider_not_registered",
"source_data_not_supported_for_fixed_rate",
"source_data_reference_mismatch",
"target_identifier_invalid",
"target_type_mismatch",
"target_type_not_registered"
]
}
]Old
[
{
"name": "Promotion assignment discount targets are valid",
"description": "Validates that the promotion exists, discounts are defined in the promotion, target types match the discount target type, and target identifiers are valid.",
"possible_errors": [
"discount_not_in_promotion",
"promotion_not_registered",
"target_identifier_invalid",
"target_type_mismatch",
"target_type_not_registered"
]
}
]22 April 2026
New
{
"x-enum-descriptions": {
"CALLING_CIRCLE_NUMBERS": "CALLING_CIRCLE_NUMBERS",
"CALLING_CIRCLE_PRIMARY_NUMBER": "CALLING_CIRCLE_PRIMARY_NUMBER"
}
}Old
{
"x-enum-descriptions": {}
}21 April 2026
No attributes to display
No attributes to display
20 April 2026
New
{
"x-removal-date": "2026-05-20"
}
No attributes to display
No attributes to display
17 April 2026
No attributes to display
7 April 2026
New
{
"x-enum-descriptions": {
"CLI": "CLI"
}
}Old
{
"x-enum-descriptions": {
"PHONE_NUMBER": "PHONE_NUMBER"
}
}30 March 2026
No attributes to display
No attributes to display
27 March 2026
New
{
"x-enum-descriptions": {
"CUSTOM": "Custom"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"x-enum-descriptions": {
"CUSTOM": "Custom"
}
}Old
{
"x-enum-descriptions": {}
}25 March 2026
New
{
"x-enum-descriptions": {
"VoIP Bolton Boost": "VoIP Bolton Boost",
"VoIP Bolton Paid Feature": "VoIP Bolton Paid Feature"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"x-enum-descriptions": {
"VoIP Bolton Boost": "VoIP Bolton Boost",
"VoIP Bolton Paid Feature": "VoIP Bolton Paid Feature"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"items": {
"x-enum-descriptions": {
"VoIP Bolton Boost": "VoIP Bolton Boost",
"VoIP Bolton Paid Feature": "VoIP Bolton Paid Feature"
}
}
}Old
{
"items": {
"x-enum-descriptions": {}
}
}23 March 2026
New
{
"x-enum-descriptions": {
"TELEPHONE_NUMBER": "TELEPHONE_NUMBER"
}
}Old
{
"x-enum-descriptions": {
"EXISTING_TELEPHONE_NUMBER": "EXISTING_TELEPHONE_NUMBER",
"REQUESTED_TELEPHONE_NUMBER": "REQUESTED_TELEPHONE_NUMBER"
}
}13 March 2026
New
{
"items": {
"x-enum-descriptions": {
"FREE_EERO_MESH_ROUTER_X1": "Free Eero Mesh Router (x1)",
"FREE_EERO_MESH_ROUTER_X2": "Free Eero Mesh Router (x2)",
"FREE_EERO_MESH_ROUTER_X3": "Free Eero Mesh Router (x3)"
}
}
}Old
{
"items": {
"x-enum-descriptions": {}
}
}
No attributes to display
12 March 2026
New
{
"x-enum-descriptions": {
"VoIP Bolton": "VoIP Bolton"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"x-enum-descriptions": {
"VoIP Bolton": "VoIP Bolton"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"items": {
"x-enum-descriptions": {
"VoIP Bolton": "VoIP Bolton"
}
}
}Old
{
"items": {
"x-enum-descriptions": {}
}
}New
{
"x-enum-descriptions": {
"CPWN_REFERENCE": "CPWN_REFERENCE"
}
}Old
{
"x-enum-descriptions": {}
}27 February 2026
New
{
"x-validators": [
{
"name": "Validate <code>organisation_number</code>",
"description": "Validate that the given <code>organisation_number</code> has a corresponding organisation registered in the database.",
"possible_errors": [
"partner_organisation_does_not_exist"
]
}
]
}26 February 2026
New
{
"x-enum-descriptions": {}
}Old
{
"x-enum-descriptions": {
"TalkTalk Android TV": "TalkTalk Android TV"
}
}New
{
"x-enum-descriptions": {}
}Old
{
"x-enum-descriptions": {
"TalkTalk Android TV": "TalkTalk Android TV"
}
}New
{
"items": {
"x-enum-descriptions": {}
}
}Old
{
"items": {
"x-enum-descriptions": {
"TalkTalk Android TV": "TalkTalk Android TV"
}
}
}25 February 2026
New
{
"pattern": "^-?\\d{0,7}(?:\\.\\d{0,4})?$"
}Old
{
"pattern": "^-?\\d{0,7}(?:\\.\\d{0,2})?$"
}24 February 2026
New
{
"x-enum-descriptions": {
"DIRECTORY_ENTRY_TYPE": "DIRECTORY_ENTRY_TYPE",
"DIRECTORY_ENTRY_LINE_USE": "DIRECTORY_ENTRY_LINE_USE",
"DIRECTORY_ENTRY_POSTCODE": "DIRECTORY_ENTRY_POSTCODE",
"DIRECTORY_ENTRY_PREFERENCE": "DIRECTORY_ENTRY_PREFERENCE",
"DIRECTORY_ENTRY_FILE_PLACEMENT": "DIRECTORY_ENTRY_FILE_PLACEMENT",
"DIRECTORY_ENTRY_PARTIAL_ADDRESS_INDICATOR": "DIRECTORY_ENTRY_PARTIAL_ADDRESS_INDICATOR"
}
}Old
{
"x-enum-descriptions": {}
}
No attributes to display