Data Import REST API Changelog
This page shows recent changes to Data Import REST API.
24 June 2026 - Latest
No attributes to display
23 June 2026
No attributes to display
19 June 2026
No attributes to display
15 June 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 agreements are consecutive per supply point",
"description": "Validate that the agreements provided in the payload are consecutive per supply point i.e. there are no gaps or overlaps. The exception to this is for agreements provided before the current supply period for the supply point. Agreements provided before the <code>supply_start_date</code> are allowed gaps since they represent historic periods of supply and cannot be used for billing in Kraken.",
"possible_errors": [
"gaps_or_overlaps_in_agreement_dates"
]
},
{
"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 historical statement period end must not be in the future",
"description": "Ensures that the historical statement period end date (last_statement_closing_date or latest transaction_date) is not set in the future.",
"possible_errors": [
"historical_statement_period_end_in_future"
]
},
{
"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 agreement business contract identifier is declared",
"description": "Validates that an agreement's <code>business_contract_identifier</code>, if provided, is one of the account's declared <code>business_contract_identifiers</code>.",
"possible_errors": [
"agreement_business_contract_identifier_not_declared"
]
},
{
"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"
]
},
{
"name": "Validate that a portfolio lead account has no supply address since it makes no sense for it to have one",
"description": "Validate that a portfolio lead account has no supply address.",
"possible_errors": [
"portfolio_lead_has_a_supply_address"
]
},
{
"name": "Validate that a system account has no supply address",
"description": "Validate that a system account has no supply address",
"possible_errors": [
"system_account_has_a_supply_address"
]
},
{
"name": "Validate ledger identifiers are known",
"description": "Validate ledger identifiers are among supply point identifiers.",
"possible_errors": [
"unknown_ledger_identifiers"
]
},
{
"name": "Validate identifiers are unique in ledgers",
"description": "Validate identifier is not declared twice in ledgers.",
"possible_errors": [
"duplicate_identifiers_entries_found"
]
},
{
"name": "Validate agreements cover last statement closing date",
"description": "Validate that there is an agreement for each supply point covering each ledger's <code>last_statement_closing_date</code>.",
"possible_errors": [
"no_agreement_covering_last_statement_closing_date"
]
},
{
"name": "Validate no unbilled period on former supply addresses",
"description": "Validate that if a customer is no longer at the given supply address they have been fully billed. This check is performed if we are importing supply address history.",
"possible_errors": [
"unbilled_former_supply_address"
]
},
{
"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 only payment schedule or monthly billing frequency is provided",
"description": "Validate that only a <code>payment_schedule</code> or a monthly <code>billing_frequency</code> is provided, but not both.",
"possible_errors": [
"billing_frequency_incompatible_with_payment_schedule"
]
},
{
"name": "Validate that the account type is compatible with agreement's products",
"description": "Validate that the account type is compatible with all of the agreements' product codes. Business products cannot be provided for <code>DOMESTIC</code> accounts and vice versa.",
"possible_errors": [
"account_type_incompatible_with_agreement_product"
]
},
{
"name": "Validates that a supply address is provided for non portfolio lead accounts",
"description": "Validates if an account has account type that is not <code>PORTFOLIO_LEAD</code> then at least one supply address is provided.",
"possible_errors": [
"supply_address_missing"
]
}
]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 agreements are consecutive per supply point",
"description": "Validate that the agreements provided in the payload are consecutive per supply point i.e. there are no gaps or overlaps. The exception to this is for agreements provided before the current supply period for the supply point. Agreements provided before the <code>supply_start_date</code> are allowed gaps since they represent historic periods of supply and cannot be used for billing in Kraken.",
"possible_errors": [
"gaps_or_overlaps_in_agreement_dates"
]
},
{
"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 historical statement period end must not be in the future",
"description": "Ensures that the historical statement period end date (last_statement_closing_date or latest transaction_date) is not set in the future.",
"possible_errors": [
"historical_statement_period_end_in_future"
]
},
{
"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"
]
},
{
"name": "Validate that a portfolio lead account has no supply address since it makes no sense for it to have one",
"description": "Validate that a portfolio lead account has no supply address.",
"possible_errors": [
"portfolio_lead_has_a_supply_address"
]
},
{
"name": "Validate that a system account has no supply address",
"description": "Validate that a system account has no supply address",
"possible_errors": [
"system_account_has_a_supply_address"
]
},
{
"name": "Validate ledger identifiers are known",
"description": "Validate ledger identifiers are among supply point identifiers.",
"possible_errors": [
"unknown_ledger_identifiers"
]
},
{
"name": "Validate identifiers are unique in ledgers",
"description": "Validate identifier is not declared twice in ledgers.",
"possible_errors": [
"duplicate_identifiers_entries_found"
]
},
{
"name": "Validate agreements cover last statement closing date",
"description": "Validate that there is an agreement for each supply point covering each ledger's <code>last_statement_closing_date</code>.",
"possible_errors": [
"no_agreement_covering_last_statement_closing_date"
]
},
{
"name": "Validate no unbilled period on former supply addresses",
"description": "Validate that if a customer is no longer at the given supply address they have been fully billed. This check is performed if we are importing supply address history.",
"possible_errors": [
"unbilled_former_supply_address"
]
},
{
"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 only payment schedule or monthly billing frequency is provided",
"description": "Validate that only a <code>payment_schedule</code> or a monthly <code>billing_frequency</code> is provided, but not both.",
"possible_errors": [
"billing_frequency_incompatible_with_payment_schedule"
]
},
{
"name": "Validate that the account type is compatible with agreement's products",
"description": "Validate that the account type is compatible with all of the agreements' product codes. Business products cannot be provided for <code>DOMESTIC</code> accounts and vice versa.",
"possible_errors": [
"account_type_incompatible_with_agreement_product"
]
},
{
"name": "Validates that a supply address is provided for non portfolio lead accounts",
"description": "Validates if an account has account type that is not <code>PORTFOLIO_LEAD</code> then at least one supply address is provided.",
"possible_errors": [
"supply_address_missing"
]
}
]
No attributes to display
12 June 2026
No attributes to display
No attributes to display
11 June 2026
No attributes to display
5 June 2026
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"
]
},
{
"name": "Promotion assignment params are valid",
"description": "Validates that the params field contains only valid values. If promotion_start_date is provided, it must be a valid ISO 8601 datetime string.",
"possible_errors": [
"invalid_promotion_start_date"
]
}
]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",
"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"
]
}
]
No attributes to display
4 June 2026
No attributes to display
No attributes to display
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 agreements are consecutive per supply point",
"description": "Validate that the agreements provided in the payload are consecutive per supply point i.e. there are no gaps or overlaps. The exception to this is for agreements provided before the current supply period for the supply point. Agreements provided before the <code>supply_start_date</code> are allowed gaps since they represent historic periods of supply and cannot be used for billing in Kraken.",
"possible_errors": [
"gaps_or_overlaps_in_agreement_dates"
]
},
{
"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 historical statement period end must not be in the future",
"description": "Ensures that the historical statement period end date (last_statement_closing_date or latest transaction_date) is not set in the future.",
"possible_errors": [
"historical_statement_period_end_in_future"
]
},
{
"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"
]
},
{
"name": "Validate that a portfolio lead account has no supply address since it makes no sense for it to have one",
"description": "Validate that a portfolio lead account has no supply address.",
"possible_errors": [
"portfolio_lead_has_a_supply_address"
]
},
{
"name": "Validate that a system account has no supply address",
"description": "Validate that a system account has no supply address",
"possible_errors": [
"system_account_has_a_supply_address"
]
},
{
"name": "Validate ledger identifiers are known",
"description": "Validate ledger identifiers are among supply point identifiers.",
"possible_errors": [
"unknown_ledger_identifiers"
]
},
{
"name": "Validate identifiers are unique in ledgers",
"description": "Validate identifier is not declared twice in ledgers.",
"possible_errors": [
"duplicate_identifiers_entries_found"
]
},
{
"name": "Validate agreements cover last statement closing date",
"description": "Validate that there is an agreement for each supply point covering each ledger's <code>last_statement_closing_date</code>.",
"possible_errors": [
"no_agreement_covering_last_statement_closing_date"
]
},
{
"name": "Validate no unbilled period on former supply addresses",
"description": "Validate that if a customer is no longer at the given supply address they have been fully billed. This check is performed if we are importing supply address history.",
"possible_errors": [
"unbilled_former_supply_address"
]
},
{
"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 only payment schedule or monthly billing frequency is provided",
"description": "Validate that only a <code>payment_schedule</code> or a monthly <code>billing_frequency</code> is provided, but not both.",
"possible_errors": [
"billing_frequency_incompatible_with_payment_schedule"
]
},
{
"name": "Validate that the account type is compatible with agreement's products",
"description": "Validate that the account type is compatible with all of the agreements' product codes. Business products cannot be provided for <code>DOMESTIC</code> accounts and vice versa.",
"possible_errors": [
"account_type_incompatible_with_agreement_product"
]
},
{
"name": "Validates that a supply address is provided for non portfolio lead accounts",
"description": "Validates if an account has account type that is not <code>PORTFOLIO_LEAD</code> then at least one supply address is provided.",
"possible_errors": [
"supply_address_missing"
]
}
]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 agreements are consecutive per supply point",
"description": "Validate that the agreements provided in the payload are consecutive per supply point i.e. there are no gaps or overlaps. The exception to this is for agreements provided before the current supply period for the supply point. Agreements provided before the <code>supply_start_date</code> are allowed gaps since they represent historic periods of supply and cannot be used for billing in Kraken.",
"possible_errors": [
"gaps_or_overlaps_in_agreement_dates"
]
},
{
"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 historical statement period end must not be in the future",
"description": "Ensures that the historical statement period end date (last_statement_closing_date or latest transaction_date) is not set in the future.",
"possible_errors": [
"historical_statement_period_end_in_future"
]
},
{
"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"
]
},
{
"name": "Validate ledger identifiers are known",
"description": "Validate ledger identifiers are among supply point identifiers.",
"possible_errors": [
"unknown_ledger_identifiers"
]
},
{
"name": "Validate identifiers are unique in ledgers",
"description": "Validate identifier is not declared twice in ledgers.",
"possible_errors": [
"duplicate_identifiers_entries_found"
]
},
{
"name": "Validate agreements cover last statement closing date",
"description": "Validate that there is an agreement for each supply point covering each ledger's <code>last_statement_closing_date</code>.",
"possible_errors": [
"no_agreement_covering_last_statement_closing_date"
]
},
{
"name": "Validate no unbilled period on former supply addresses",
"description": "Validate that if a customer is no longer at the given supply address they have been fully billed. This check is performed if we are importing supply address history.",
"possible_errors": [
"unbilled_former_supply_address"
]
},
{
"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 only payment schedule or monthly billing frequency is provided",
"description": "Validate that only a <code>payment_schedule</code> or a monthly <code>billing_frequency</code> is provided, but not both.",
"possible_errors": [
"billing_frequency_incompatible_with_payment_schedule"
]
},
{
"name": "Validate that the account type is compatible with agreement's products",
"description": "Validate that the account type is compatible with all of the agreements' product codes. Business products cannot be provided for <code>DOMESTIC</code> accounts and vice versa.",
"possible_errors": [
"account_type_incompatible_with_agreement_product"
]
},
{
"name": "Validates that a supply address is provided for non portfolio lead accounts",
"description": "Validates if an account has account type that is not <code>PORTFOLIO_LEAD</code> then at least one supply address is provided.",
"possible_errors": [
"supply_address_missing"
]
},
{
"name": "Validate that a portfolio lead account has no supply address since it makes no sense for it to have one",
"description": "Validate that a portfolio lead account has no supply address.",
"possible_errors": [
"portfolio_lead_has_a_supply_address"
]
}
]New
{
"x-enum-descriptions": {
"SYSTEM": "System"
}
}Old
{
"x-enum-descriptions": {}
}2 June 2026
New
{
"TRANCHE_TARGET_RESIDUAL_FEE": "#/components/schemas/TrancheTargetResidualFee"
}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/TrancheTargetResidualFee"
},
{
"$ref": "#/components/schemas/TaxAdjustmentConfiguration"
},
{
"$ref": "#/components/schemas/TerminationFee"
}
]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/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"
}
]1 June 2026
New
{
"x-enum-descriptions": {
"menace_mediateur": "Menace Mediateur"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"x-enum-descriptions": {
"Menace Mediateur": "Menace Mediateur"
}
}Old
{
"x-enum-descriptions": {}
}29 May 2026
Old
{
"maxItems": 2
}24 May 2026
No attributes to display
No attributes to display
22 May 2026
No attributes to display
No attributes to display
21 May 2026
No attributes to display
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 agreements are consecutive per supply point",
"description": "Validate that the agreements provided in the payload are consecutive per supply point i.e. there are no gaps or overlaps. The exception to this is for agreements provided before the current supply period for the supply point. Agreements provided before the <code>supply_start_date</code> are allowed gaps since they represent historic periods of supply and cannot be used for billing in Kraken.",
"possible_errors": [
"gaps_or_overlaps_in_agreement_dates"
]
},
{
"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 historical statement period end must not be in the future",
"description": "Ensures that the historical statement period end date (last_statement_closing_date or latest transaction_date) is not set in the future.",
"possible_errors": [
"historical_statement_period_end_in_future"
]
},
{
"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"
]
},
{
"name": "Validate ledger identifiers are known",
"description": "Validate ledger identifiers are among supply point identifiers.",
"possible_errors": [
"unknown_ledger_identifiers"
]
},
{
"name": "Validate identifiers are unique in ledgers",
"description": "Validate identifier is not declared twice in ledgers.",
"possible_errors": [
"duplicate_identifiers_entries_found"
]
},
{
"name": "Validate agreements cover last statement closing date",
"description": "Validate that there is an agreement for each supply point covering each ledger's <code>last_statement_closing_date</code>.",
"possible_errors": [
"no_agreement_covering_last_statement_closing_date"
]
},
{
"name": "Validate no unbilled period on former supply addresses",
"description": "Validate that if a customer is no longer at the given supply address they have been fully billed. This check is performed if we are importing supply address history.",
"possible_errors": [
"unbilled_former_supply_address"
]
},
{
"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 only payment schedule or monthly billing frequency is provided",
"description": "Validate that only a <code>payment_schedule</code> or a monthly <code>billing_frequency</code> is provided, but not both.",
"possible_errors": [
"billing_frequency_incompatible_with_payment_schedule"
]
},
{
"name": "Validate that the account type is compatible with agreement's products",
"description": "Validate that the account type is compatible with all of the agreements' product codes. Business products cannot be provided for <code>DOMESTIC</code> accounts and vice versa.",
"possible_errors": [
"account_type_incompatible_with_agreement_product"
]
},
{
"name": "Validates that a supply address is provided for non portfolio lead accounts",
"description": "Validates if an account has account type that is not <code>PORTFOLIO_LEAD</code> then at least one supply address is provided.",
"possible_errors": [
"supply_address_missing"
]
},
{
"name": "Validate that a portfolio lead account has no supply address since it makes no sense for it to have one",
"description": "Validate that a portfolio lead account has no supply address.",
"possible_errors": [
"portfolio_lead_has_a_supply_address"
]
}
]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 agreements are consecutive per supply point",
"description": "Validate that the agreements provided in the payload are consecutive per supply point i.e. there are no gaps or overlaps. The exception to this is for agreements provided before the current supply period for the supply point. Agreements provided before the <code>supply_start_date</code> are allowed gaps since they represent historic periods of supply and cannot be used for billing in Kraken.",
"possible_errors": [
"gaps_or_overlaps_in_agreement_dates"
]
},
{
"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 historical statement period end must not be in the future",
"description": "Ensures that the historical statement period end date (last_statement_closing_date or latest transaction_date) is not set in the future.",
"possible_errors": [
"historical_statement_period_end_in_future"
]
},
{
"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 ledger identifiers are known",
"description": "Validate ledger identifiers are among supply point identifiers.",
"possible_errors": [
"unknown_ledger_identifiers"
]
},
{
"name": "Validate identifiers are unique in ledgers",
"description": "Validate identifier is not declared twice in ledgers.",
"possible_errors": [
"duplicate_identifiers_entries_found"
]
},
{
"name": "Validate agreements cover last statement closing date",
"description": "Validate that there is an agreement for each supply point covering each ledger's <code>last_statement_closing_date</code>.",
"possible_errors": [
"no_agreement_covering_last_statement_closing_date"
]
},
{
"name": "Validate no unbilled period on former supply addresses",
"description": "Validate that if a customer is no longer at the given supply address they have been fully billed. This check is performed if we are importing supply address history.",
"possible_errors": [
"unbilled_former_supply_address"
]
},
{
"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 only payment schedule or monthly billing frequency is provided",
"description": "Validate that only a <code>payment_schedule</code> or a monthly <code>billing_frequency</code> is provided, but not both.",
"possible_errors": [
"billing_frequency_incompatible_with_payment_schedule"
]
},
{
"name": "Validate that the account type is compatible with agreement's products",
"description": "Validate that the account type is compatible with all of the agreements' product codes. Business products cannot be provided for <code>DOMESTIC</code> accounts and vice versa.",
"possible_errors": [
"account_type_incompatible_with_agreement_product"
]
},
{
"name": "Validates that a supply address is provided for non portfolio lead accounts",
"description": "Validates if an account has account type that is not <code>PORTFOLIO_LEAD</code> then at least one supply address is provided.",
"possible_errors": [
"supply_address_missing"
]
},
{
"name": "Validate that a portfolio lead account has no supply address since it makes no sense for it to have one",
"description": "Validate that a portfolio lead account has no supply address.",
"possible_errors": [
"portfolio_lead_has_a_supply_address"
]
}
]Old
{
"maxItems": 1
}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"
}
]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"
}
]
No attributes to display
19 May 2026
No attributes to display
No attributes to display
13 May 2026
New
{
"x-enum-descriptions": {
"CHARGEBACK": "Chargeback"
}
}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 agreements are consecutive per supply point",
"description": "Validate that the agreements provided in the payload are consecutive per supply point i.e. there are no gaps or overlaps. The exception to this is for agreements provided before the current supply period for the supply point. Agreements provided before the <code>supply_start_date</code> are allowed gaps since they represent historic periods of supply and cannot be used for billing in Kraken.",
"possible_errors": [
"gaps_or_overlaps_in_agreement_dates"
]
},
{
"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 historical statement period end must not be in the future",
"description": "Ensures that the historical statement period end date (last_statement_closing_date or latest transaction_date) is not set in the future.",
"possible_errors": [
"historical_statement_period_end_in_future"
]
},
{
"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 ledger identifiers are known",
"description": "Validate ledger identifiers are among supply point identifiers.",
"possible_errors": [
"unknown_ledger_identifiers"
]
},
{
"name": "Validate identifiers are unique in ledgers",
"description": "Validate identifier is not declared twice in ledgers.",
"possible_errors": [
"duplicate_identifiers_entries_found"
]
},
{
"name": "Validate agreements cover last statement closing date",
"description": "Validate that there is an agreement for each supply point covering each ledger's <code>last_statement_closing_date</code>.",
"possible_errors": [
"no_agreement_covering_last_statement_closing_date"
]
},
{
"name": "Validate no unbilled period on former supply addresses",
"description": "Validate that if a customer is no longer at the given supply address they have been fully billed. This check is performed if we are importing supply address history.",
"possible_errors": [
"unbilled_former_supply_address"
]
},
{
"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 only payment schedule or monthly billing frequency is provided",
"description": "Validate that only a <code>payment_schedule</code> or a monthly <code>billing_frequency</code> is provided, but not both.",
"possible_errors": [
"billing_frequency_incompatible_with_payment_schedule"
]
},
{
"name": "Validate that the account type is compatible with agreement's products",
"description": "Validate that the account type is compatible with all of the agreements' product codes. Business products cannot be provided for <code>DOMESTIC</code> accounts and vice versa.",
"possible_errors": [
"account_type_incompatible_with_agreement_product"
]
},
{
"name": "Validates that a supply address is provided for non portfolio lead accounts",
"description": "Validates if an account has account type that is not <code>PORTFOLIO_LEAD</code> then at least one supply address is provided.",
"possible_errors": [
"supply_address_missing"
]
},
{
"name": "Validate that a portfolio lead account has no supply address since it makes no sense for it to have one",
"description": "Validate that a portfolio lead account has no supply address.",
"possible_errors": [
"portfolio_lead_has_a_supply_address"
]
}
]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 agreements are consecutive per supply point",
"description": "Validate that the agreements provided in the payload are consecutive per supply point i.e. there are no gaps or overlaps. The exception to this is for agreements provided before the current supply period for the supply point. Agreements provided before the <code>supply_start_date</code> are allowed gaps since they represent historic periods of supply and cannot be used for billing in Kraken.",
"possible_errors": [
"gaps_or_overlaps_in_agreement_dates"
]
},
{
"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 historical statement period end must not be in the future",
"description": "Ensures that the historical statement period end date (last_statement_closing_date or latest transaction_date) is not set in the future.",
"possible_errors": [
"historical_statement_period_end_in_future"
]
},
{
"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 ledger identifiers are known",
"description": "Validate ledger identifiers are among supply point identifiers.",
"possible_errors": [
"unknown_ledger_identifiers"
]
},
{
"name": "Validate identifiers are unique in ledgers",
"description": "Validate identifier is not declared twice in ledgers.",
"possible_errors": [
"duplicate_identifiers_entries_found"
]
},
{
"name": "Validate agreements cover last statement closing date",
"description": "Validate that there is an agreement for each supply point covering each ledger's <code>last_statement_closing_date</code>.",
"possible_errors": [
"no_agreement_covering_last_statement_closing_date"
]
},
{
"name": "Validate no unbilled period on former supply addresses",
"description": "Validate that if a customer is no longer at the given supply address they have been fully billed. This check is performed if we are importing supply address history.",
"possible_errors": [
"unbilled_former_supply_address"
]
},
{
"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 only payment schedule or monthly billing frequency is provided",
"description": "Validate that only a <code>payment_schedule</code> or a monthly <code>billing_frequency</code> is provided, but not both.",
"possible_errors": [
"billing_frequency_incompatible_with_payment_schedule"
]
},
{
"name": "Validate that the account type is compatible with agreement's products",
"description": "Validate that the account type is compatible with all of the agreements' product codes. Business products cannot be provided for <code>DOMESTIC</code> accounts and vice versa.",
"possible_errors": [
"account_type_incompatible_with_agreement_product"
]
},
{
"name": "Validates that a supply address is provided for non portfolio lead accounts",
"description": "Validates if an account has account type that is not <code>PORTFOLIO_LEAD</code> then at least one supply address is provided.",
"possible_errors": [
"supply_address_missing"
]
},
{
"name": "Validate that a portfolio lead account has no supply address since it makes no sense for it to have one",
"description": "Validate that a portfolio lead account has no supply address.",
"possible_errors": [
"portfolio_lead_has_a_supply_address"
]
}
]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
11 May 2026
No attributes to display
8 May 2026
New
{
"x-removal-date": "2026-05-25"
}New
{
"x-removal-date": "2026-05-25"
}Old
{
"x-removal-date": "2026-05-25"
}Old
{
"x-removal-date": "2026-05-25"
}New
{
"x-removal-date": "2026-05-25"
}New
{
"x-removal-date": "2026-05-25"
}7 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"
]
}
]
No attributes to display
No attributes to display
No attributes to display
No attributes to display
New
{
"x-enum-descriptions": {
"active_cp": "Active_CP"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"x-enum-descriptions": {
"Active_CP": "Active_CP"
}
}Old
{
"x-enum-descriptions": {}
}5 May 2026
New
{
"x-enum-descriptions": {
"deposit_type": "deposit_type"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"x-enum-descriptions": {}
}Old
{
"x-enum-descriptions": {
"METERING_JOB_SMS": "METERING_JOB_SMS",
"GREEN_DEAL_CHARGE": "GREEN_DEAL_CHARGE",
"SOLR_BALANCE_TRANSFER": "SOLR_BALANCE_TRANSFER",
"BUSINESS_ADVANCE_PAYMENT": "BUSINESS_ADVANCE_PAYMENT",
"METERING_JOB_NATIONAL_GRID": "METERING_JOB_NATIONAL_GRID",
"NEST_LEARNING_THERMOSTAT_RENTAL": "NEST_LEARNING_THERMOSTAT_RENTAL"
}
}29 April 2026
No attributes to display
No attributes to display
28 April 2026
No attributes to display
New
{
"x-enum-descriptions": {
"ECO_SESSIONS": "ECO_SESSIONS"
}
}Old
{
"x-enum-descriptions": {}
}27 April 2026
No attributes to display
New
{
"enum": [
"BROKER"
],
"type": "string",
"x-spec-enum-id": "c8644376cc0fe51b",
"x-enum-descriptions": {
"BROKER": "Broker role"
}
}Old
{
"x-comment": "Choices for this field are dynamic, once appropriate values have been configured they will be rendered here.",
"x-spec-enum-id": "4f53cda18c2baa0c"
}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"
]
}
]23 April 2026
No attributes to display
22 April 2026
New
[
{
"name": "Validate that both SIREN and SIRET are provided for a business",
"description": "Validate that <code>siren</code> and <code>siret</code> are provided for a business. <code>siret</code> should be provided in business details.",
"possible_errors": [
"siren_or_siret_not_provided_for_business"
]
},
{
"name": "Validate that the combination of SIREN and SIRET or condominium registration number is provided for SDC (Syndic de Copropri\u00e9t\u00e9) business",
"description": "Validate that either a combination of <code>siren</code> and <code>siret</code> or <code>condominium_registration_number</code> is provided for business, when the business type is SDC. Both <code>siren</code> and <code>condominium_registration_number</code> should be provided in business details.",
"possible_errors": [
"siren_and_siret_or_condominium_registration_number_not_provided_for_sdc"
]
},
{
"name": "Validate that the provided <code>siret</code> is registered with only one business",
"description": "Validate that SIRET provided is registered with only one business. SIRET should be unique.",
"possible_errors": [
"siret_registered_with_another_business"
]
}
]Old
[
{
"name": "Validate that both SIREN and SIRET are provided for a business",
"description": "Validate that <code>siren</code> and <code>siret</code> are provided for a business. <code>siret</code> should be provided in business details.",
"possible_errors": [
"siren_or_siret_not_provided_for_business"
]
},
{
"name": "Validate that the combination of SIREN and SIRET or condominium registration number is provided for SDC (Syndic de Copropri\u00e9t\u00e9) business",
"description": "Validate that either a combination of <code>siren</code> and <code>siret</code> or <code>condominium_registration_number</code> is provided for business, when the business type is SDC. Both <code>siren</code> and <code>condominium_registration_number</code> should be provided in business details.",
"possible_errors": [
"siren_and_siret_or_condominium_registration_number_not_provided_for_sdc"
]
}
]New
{
"x-validators": [
{
"name": "Validate that the provided <code>siret</code> is valid",
"description": "Validate that SIRET provided is valid. SIRET should be a 14 digit number.",
"possible_errors": [
"siret_is_not_valid"
]
}
]
}Old
{
"x-validators": [
{
"name": "Validate that the provided <code>siret</code> is valid",
"description": "Validate that SIRET provided is valid. SIRET should be a 14 digit number.",
"possible_errors": [
"siret_is_not_valid"
]
},
{
"name": "Validate that the provided <code>siret</code> is registered with only one business",
"description": "Validate that SIRET provided is registered with only one business. SIRET should be unique.",
"possible_errors": [
"siret_registered_with_another_business"
]
}
]
}New
[
{
"name": "Validate that both SIREN and SIRET are provided for a business",
"description": "Validate that <code>siren</code> and <code>siret</code> are provided for a business. <code>siret</code> should be provided in business details.",
"possible_errors": [
"siren_or_siret_not_provided_for_business"
]
},
{
"name": "Validate that the combination of SIREN and SIRET or condominium registration number is provided for SDC (Syndic de Copropri\u00e9t\u00e9) business",
"description": "Validate that either a combination of <code>siren</code> and <code>siret</code> or <code>condominium_registration_number</code> is provided for business, when the business type is SDC. Both <code>siren</code> and <code>condominium_registration_number</code> should be provided in business details.",
"possible_errors": [
"siren_and_siret_or_condominium_registration_number_not_provided_for_sdc"
]
},
{
"name": "Validate that the provided <code>siret</code> is registered with only one business",
"description": "Validate that SIRET provided is registered with only one business. SIRET should be unique.",
"possible_errors": [
"siret_registered_with_another_business"
]
}
]Old
[
{
"name": "Validate that both SIREN and SIRET are provided for a business",
"description": "Validate that <code>siren</code> and <code>siret</code> are provided for a business. <code>siret</code> should be provided in business details.",
"possible_errors": [
"siren_or_siret_not_provided_for_business"
]
},
{
"name": "Validate that the combination of SIREN and SIRET or condominium registration number is provided for SDC (Syndic de Copropri\u00e9t\u00e9) business",
"description": "Validate that either a combination of <code>siren</code> and <code>siret</code> or <code>condominium_registration_number</code> is provided for business, when the business type is SDC. Both <code>siren</code> and <code>condominium_registration_number</code> should be provided in business details.",
"possible_errors": [
"siren_and_siret_or_condominium_registration_number_not_provided_for_sdc"
]
}
]New
{
"x-validators": [
{
"name": "Validate that the provided <code>siret</code> is valid",
"description": "Validate that SIRET provided is valid. SIRET should be a 14 digit number.",
"possible_errors": [
"siret_is_not_valid"
]
}
]
}Old
{
"x-validators": [
{
"name": "Validate that the provided <code>siret</code> is valid",
"description": "Validate that SIRET provided is valid. SIRET should be a 14 digit number.",
"possible_errors": [
"siret_is_not_valid"
]
},
{
"name": "Validate that the provided <code>siret</code> is registered with only one business",
"description": "Validate that SIRET provided is registered with only one business. SIRET should be unique.",
"possible_errors": [
"siret_registered_with_another_business"
]
}
]
}21 April 2026
No attributes to display
No attributes to display
20 April 2026
New
{
"x-removal-date": "2026-05-20"
}New
{
"x-removal-date": "2026-05-20"
}Old
{
"nullable": true
}Old
{
"x-removal-date": "2026-05-20"
}New
{
"nullable": true
}Old
{
"x-removal-date": "2026-05-20"
}New
{
"x-removal-date": "2026-05-20"
}New
{
"x-removal-date": "2026-05-20"
}Old
{
"nullable": true
}
No attributes to display
No attributes to display
17 April 2026
No attributes to display
10 April 2026
New
{
"x-enum-descriptions": {
"eco_session_ete_2026": "ECO_SESSION_ETE_2026",
"eco_session_ete_2027": "ECO_SESSION_ETE_2027",
"eco_session_hiver_2026_2027": "ECO_SESSION_HIVER_2026_2027",
"eco_session_hiver_2027_2028": "ECO_SESSION_HIVER_2027_2028"
}
}Old
{
"x-enum-descriptions": {
"eco_session_2025": "eco_session_2025",
"eco_session_2026": "eco_session_2026"
}
}New
{
"x-enum-descriptions": {
"ECO_SESSION_ETE_2026": "ECO_SESSION_ETE_2026",
"ECO_SESSION_ETE_2027": "ECO_SESSION_ETE_2027",
"ECO_SESSION_HIVER_2026_2027": "ECO_SESSION_HIVER_2026_2027",
"ECO_SESSION_HIVER_2027_2028": "ECO_SESSION_HIVER_2027_2028"
}
}Old
{
"x-enum-descriptions": {
"eco_session_2025": "eco_session_2025",
"eco_session_2026": "eco_session_2026"
}
}9 April 2026
New
{
"x-enum-descriptions": {
"POLE": "Pole",
"LIGHT": "Light"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"x-enum-descriptions": {
"POLE": "Pole",
"LIGHT": "Light"
}
}Old
{
"x-enum-descriptions": {}
}
No attributes to display
No attributes to display
3 April 2026
New
{
"x-enum-descriptions": {
"eco_session_2025": "eco_session_2025",
"eco_session_2026": "eco_session_2026"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"x-enum-descriptions": {
"eco_session_2025": "eco_session_2025",
"eco_session_2026": "eco_session_2026"
}
}Old
{
"x-enum-descriptions": {}
}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": {}
}New
{
"x-enum-descriptions": {
"CUSTOM": "Custom"
}
}Old
{
"x-enum-descriptions": {}
}24 March 2026
New
{
"x-removal-date": "2026-04-29"
}16 March 2026
No attributes to display
10 March 2026
New
{
"x-enum-descriptions": {
"WORKPLACE_POP_UP": "WORKPLACE_POP_UP"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"items": {
"x-enum-descriptions": {
"COMPLAINT_WIZARD_PILOT_TEST": "COMPLAINT_WIZARD_PILOT_TEST"
}
}
}Old
{
"items": {
"x-enum-descriptions": {}
}
}New
{
"items": {
"x-enum-descriptions": {
"COMPLAINT_WIZARD_PILOT_TEST": "COMPLAINT_WIZARD_PILOT_TEST"
}
}
}Old
{
"items": {
"x-enum-descriptions": {}
}
}New
{
"x-enum-descriptions": {
"COMPLAINT_WIZARD_PILOT_TEST": "COMPLAINT_WIZARD_PILOT_TEST"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"x-enum-descriptions": {
"WORKPLACE_POP_UP": "Workplace Pop Up"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"x-enum-descriptions": {
"WORKPLACE_POP_UP": "Workplace Pop Up"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"items": {
"x-enum-descriptions": {
"COMPLAINT_WIZARD_PILOT_TEST": "COMPLAINT_WIZARD_PILOT_TEST"
}
}
}Old
{
"items": {
"x-enum-descriptions": {}
}
}9 March 2026
New
{
"x-enum-descriptions": {
"DIRECT__NANTES": "DIRECT__NANTES",
"DIRECT__YOUTUBE": "DIRECT__YOUTUBE",
"DIRECT__FACEBOOK": "DIRECT__FACEBOOK",
"MATT_SALES_CHANNEL": "MATT_SALES_CHANNEL",
"DIRECT__FACEBOOK__SUMMER": "DIRECT__FACEBOOK__SUMMER",
"MY_LONG_TEST_CHANNEL_NAME": "MY_LONG_TEST_CHANNEL_NAME",
"MATT_SALES_CHANNEL__EXAMPLE": "MATT_SALES_CHANNEL__EXAMPLE",
"DIRECT__FACEBOOK__SUMMER__TESTONE": "DIRECT__FACEBOOK__SUMMER__TESTONE",
"MATT_SALES_CHANNEL__EXAMPLE__TESTTWO": "MATT_SALES_CHANNEL__EXAMPLE__TESTTWO"
}
}Old
{
"x-enum-descriptions": {
"REFERRAL": "REFERRAL",
"SALES_TENDER": "SALES_TENDER",
"DIGI_TELESALES": "DIGI_TELESALES",
"WORKPLACE_POP_UP": "WORKPLACE_POP_UP"
}
}New
{
"x-enum-descriptions": {
"DIRECT__NANTES": "Direct -> Nantes",
"DIRECT__YOUTUBE": "Direct -> Youtube",
"DIRECT__FACEBOOK": "Direct -> Facebook",
"PRICE_COMPARISON": "Price Comparison",
"MATT_SALES_CHANNEL": "MATT SALES CHANNEL",
"DIRECT__FACEBOOK__SUMMER": "Direct -> Facebook -> Summer",
"MY_LONG_TEST_CHANNEL_NAME": "My long test channel name",
"MATT_SALES_CHANNEL__EXAMPLE": "MATT SALES CHANNEL -> Example",
"DIRECT__FACEBOOK__SUMMER__TESTONE": "Direct -> Facebook -> Summer -> TestOne",
"MATT_SALES_CHANNEL__EXAMPLE__TESTTWO": "MATT SALES CHANNEL -> Example -> TESTTWO"
}
}Old
{
"x-enum-descriptions": {
"REFERRAL": "Referral",
"SALES_TENDER": "Sales-Tender",
"DIGI_TELESALES": "Digital telesales",
"PRICE_COMPARISON": "Price comparison",
"WORKPLACE_POP_UP": "Workplace pop-up"
}
}New
{
"x-enum-descriptions": {
"DIRECT__NANTES": "Direct -> Nantes",
"DIRECT__YOUTUBE": "Direct -> Youtube",
"DIRECT__FACEBOOK": "Direct -> Facebook",
"PRICE_COMPARISON": "Price Comparison",
"MATT_SALES_CHANNEL": "MATT SALES CHANNEL",
"DIRECT__FACEBOOK__SUMMER": "Direct -> Facebook -> Summer",
"MY_LONG_TEST_CHANNEL_NAME": "My long test channel name",
"MATT_SALES_CHANNEL__EXAMPLE": "MATT SALES CHANNEL -> Example",
"DIRECT__FACEBOOK__SUMMER__TESTONE": "Direct -> Facebook -> Summer -> TestOne",
"MATT_SALES_CHANNEL__EXAMPLE__TESTTWO": "MATT SALES CHANNEL -> Example -> TESTTWO"
}
}Old
{
"x-enum-descriptions": {
"REFERRAL": "Referral",
"SALES_TENDER": "Sales-Tender",
"DIGI_TELESALES": "Digital telesales",
"PRICE_COMPARISON": "Price comparison",
"WORKPLACE_POP_UP": "Workplace pop-up"
}
}4 March 2026
New
{
"x-enum-descriptions": {
"AUTO_CHEQUE_DEMAT": "Auto Cheque Demat"
}
}Old
{
"x-enum-descriptions": {}
}
No attributes to display
New
{
"pattern": "^-?\\d{0,7}(?:\\.\\d{0,4})?$"
}Old
{
"pattern": "^-?\\d{0,7}(?:\\.\\d{0,2})?$"
}23 February 2026
New
{
"x-enum-descriptions": {
"WRITE_OFF_CERTIFICATES_OF_IRRECOVERABILITY_VAT_STANDARD": "WRITE_OFF_CERTIFICATES_OF_IRRECOVERABILITY_VAT_STANDARD"
}
}Old
{
"x-enum-descriptions": {}
}19 February 2026
New
{
"x-validators": [
{
"name": "Validate agreements are continuous and non-overlapping",
"description": "Validate that there are no gaps or overlaps between agreements for the same supply point.",
"possible_errors": [
"gaps_or_overlaps_in_agreement_dates"
]
},
{
"name": "Validate the supply point's market is compatible with the agreements",
"description": "Validate the supply point's agreements are on products with the same market as the supply point.",
"possible_errors": [
"tariff_code_not_compatible_with_supply_point_market"
]
}
]
}Old
{
"x-validators": [
{
"name": "Validate agreements are continuous and non-overlapping",
"description": "Validate that there are no gaps or overlaps between agreements for the same supply point.",
"possible_errors": [
"gaps_or_overlaps_in_agreement_dates"
]
},
{
"name": "Validate the supply point's market is compatible with the contracts",
"description": "Validate the supply point's contracts are on products with the same market as the supply point.",
"possible_errors": [
"tariff_code_not_compatible_with_supply_point_market"
]
}
]
}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 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 agreements are consecutive per supply point",
"description": "Validate that the agreements provided in the payload are consecutive per supply point i.e. there are no gaps or overlaps. The exception to this is for agreements provided before the current supply period for the supply point. Agreements provided before the <code>supply_start_date</code> are allowed gaps since they represent historic periods of supply and cannot be used for billing in Kraken.",
"possible_errors": [
"gaps_or_overlaps_in_agreement_dates"
]
},
{
"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 historical statement period end must not be in the future",
"description": "Ensures that the historical statement period end date (last_statement_closing_date or latest transaction_date) is not set in the future.",
"possible_errors": [
"historical_statement_period_end_in_future"
]
},
{
"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 ledger identifiers are known",
"description": "Validate ledger identifiers are among supply point identifiers.",
"possible_errors": [
"unknown_ledger_identifiers"
]
},
{
"name": "Validate identifiers are unique in ledgers",
"description": "Validate identifier is not declared twice in ledgers.",
"possible_errors": [
"duplicate_identifiers_entries_found"
]
},
{
"name": "Validate agreements cover last statement closing date",
"description": "Validate that there is an agreement for each supply point covering each ledger's <code>last_statement_closing_date</code>.",
"possible_errors": [
"no_agreement_covering_last_statement_closing_date"
]
},
{
"name": "Validate no unbilled period on former supply addresses",
"description": "Validate that if a customer is no longer at the given supply address they have been fully billed. This check is performed if we are importing supply address history.",
"possible_errors": [
"unbilled_former_supply_address"
]
},
{
"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 only payment schedule or monthly billing frequency is provided",
"description": "Validate that only a <code>payment_schedule</code> or a monthly <code>billing_frequency</code> is provided, but not both.",
"possible_errors": [
"billing_frequency_incompatible_with_payment_schedule"
]
},
{
"name": "Validate that the account type is compatible with agreement's products",
"description": "Validate that the account type is compatible with all of the agreements' product codes. Business products cannot be provided for <code>DOMESTIC</code> accounts and vice versa.",
"possible_errors": [
"account_type_incompatible_with_agreement_product"
]
},
{
"name": "Validates that a supply address is provided for non portfolio lead accounts",
"description": "Validates if an account has account type that is not <code>PORTFOLIO_LEAD</code> then at least one supply address is provided.",
"possible_errors": [
"supply_address_missing"
]
},
{
"name": "Validate that a portfolio lead account has no supply address since it makes no sense for it to have one",
"description": "Validate that a portfolio lead account has no supply address.",
"possible_errors": [
"portfolio_lead_has_a_supply_address"
]
}
]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 contracts are consecutive per supply point",
"description": "Validate that the contracts provided in the payload are consecutive per supply point i.e. there are no gaps or overlaps. The exception to this is for contracts provided before the current supply period for the supply point. Contracts provided before the <code>supply_start_date</code> are allowed gaps since they represent historic periods of supply and cannot be used for billing in Kraken.",
"possible_errors": [
"gaps_or_overlaps_in_agreement_dates"
]
},
{
"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 historical statement period end must not be in the future",
"description": "Ensures that the historical statement period end date (last_statement_closing_date or latest transaction_date) is not set in the future.",
"possible_errors": [
"historical_statement_period_end_in_future"
]
},
{
"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 ledger identifiers are known",
"description": "Validate ledger identifiers are among supply point identifiers.",
"possible_errors": [
"unknown_ledger_identifiers"
]
},
{
"name": "Validate identifiers are unique in ledgers",
"description": "Validate identifier is not declared twice in ledgers.",
"possible_errors": [
"duplicate_identifiers_entries_found"
]
},
{
"name": "Validate agreements cover last statement closing date",
"description": "Validate that there is an agreement for each supply point covering each ledger's <code>last_statement_closing_date</code>.",
"possible_errors": [
"no_agreement_covering_last_statement_closing_date"
]
},
{
"name": "Validate no unbilled period on former supply addresses",
"description": "Validate that if a customer is no longer at the given supply address they have been fully billed. This check is performed if we are importing supply address history.",
"possible_errors": [
"unbilled_former_supply_address"
]
},
{
"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 only payment schedule or monthly billing frequency is provided",
"description": "Validate that only a <code>payment_schedule</code> or a monthly <code>billing_frequency</code> is provided, but not both.",
"possible_errors": [
"billing_frequency_incompatible_with_payment_schedule"
]
},
{
"name": "Validate that the account type is compatible with agreement's products",
"description": "Validate that the account type is compatible with all of the agreements' product codes. Business products cannot be provided for <code>DOMESTIC</code> accounts and vice versa.",
"possible_errors": [
"account_type_incompatible_with_agreement_product"
]
},
{
"name": "Validates that a supply address is provided for non portfolio lead accounts",
"description": "Validates if an account has account type that is not <code>PORTFOLIO_LEAD</code> then at least one supply address is provided.",
"possible_errors": [
"supply_address_missing"
]
},
{
"name": "Validate that a portfolio lead account has no supply address since it makes no sense for it to have one",
"description": "Validate that a portfolio lead account has no supply address.",
"possible_errors": [
"portfolio_lead_has_a_supply_address"
]
}
]New
{
"x-validators": [
{
"name": "Validate agreements are continuous and non-overlapping",
"description": "Validate that there are no gaps or overlaps between agreements for the same supply point.",
"possible_errors": [
"gaps_or_overlaps_in_agreement_dates"
]
},
{
"name": "Validate the supply point's market is compatible with the agreements",
"description": "Validate the supply point's agreements are on products with the same market as the supply point.",
"possible_errors": [
"tariff_code_not_compatible_with_supply_point_market"
]
}
]
}Old
{
"x-validators": [
{
"name": "Validate agreements are continuous and non-overlapping",
"description": "Validate that there are no gaps or overlaps between agreements for the same supply point.",
"possible_errors": [
"gaps_or_overlaps_in_agreement_dates"
]
},
{
"name": "Validate the supply point's market is compatible with the contracts",
"description": "Validate the supply point's contracts are on products with the same market as the supply point.",
"possible_errors": [
"tariff_code_not_compatible_with_supply_point_market"
]
}
]
}18 February 2026
New
{
"x-validators": [
{
"name": "Validate line item periods",
"description": "Validate that no line items overlap (checked per supply point, product, and rate band combination) or have gaps (checked per supply point only) in supply charge transactions.",
"possible_errors": [
"gaps_or_overlaps_in_periods"
]
}
]
}Old
{
"x-validators": [
{
"name": "Validate line item periods",
"description": "Validate that no line items overlap (checked per supply point, product, and rate band combination) or have gaps (checked per supply point only) in supply charge transactions.",
"possible_errors": [
"zero_length_periods",
"gaps_or_overlaps_in_periods"
]
}
]
}New
{
"x-validators": [
{
"name": "Validate line item periods",
"description": "Validate that no line items overlap (checked per supply point, product, and rate band combination) or have gaps (checked per supply point only) in supply charge transactions.",
"possible_errors": [
"gaps_or_overlaps_in_periods"
]
}
]
}Old
{
"x-validators": [
{
"name": "Validate line item periods",
"description": "Validate that no line items overlap (checked per supply point, product, and rate band combination) or have gaps (checked per supply point only) in supply charge transactions.",
"possible_errors": [
"zero_length_periods",
"gaps_or_overlaps_in_periods"
]
}
]
}17 February 2026
No attributes to display
No attributes to display
No attributes to display
No attributes to display
13 February 2026
Use instead
consents
12 February 2026
New
{
"x-enum-descriptions": {}
}Old
{
"x-enum-descriptions": {
"DAY": "Day"
}
}