Data Import REST API Changelog
This page shows recent changes to Data Import REST API.
31 July 2026 - Latest
New
[
{
"name": "Validate <code>\u2068valid_to\u2069</code> not before or equal to <code>\u2068valid_from\u2069</code>",
"description": "Validates that <code>\u2068valid_to\u2069</code>, if given, is strictly later than \u2068valid_from\u2069.",
"possible_errors": [
"start_date_same_as_end_date"
]
}
]Old
[
{
"name": "Validate <code>\u2068valid_to\u2069</code> not before or equal to <code>\u2068valid_from\u2069</code>",
"description": "Validates that <code>\u2068valid_to\u2069</code>, if given, is strictly later than \u2068valid_from\u2069.",
"possible_errors": [
"start_date_same_as_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"
]
},
{
"name": "Validate that all required bespoke rates are present and no non-overridable rates are supplied",
"description": "Validates that bespoke rate schedules include all rate specifications marked as must-be-overridden and mandatory, and do not include any rate specifications marked as cannot-be-overridden.",
"possible_errors": [
"bespoke_rate_cannot_be_overridden",
"missing_required_bespoke_rate"
]
}
]Old
{
"x-validators": [
{
"name": "Validate product code exists",
"description": "Validate that the product code exists in Kraken.",
"possible_errors": [
"product_code_does_not_exist"
]
}
]
}Old
{
"x-validators": [
{
"name": "Validate bespoke rate items are unique",
"description": "Validate that no two bespoke rate items in a schedule share the same rate specification code, rate specification type, and variant profile.",
"possible_errors": [
"duplicate_bespoke_rate_items"
]
}
]
}New
{
"x-validators": [
{
"name": "Validate bespoke rates do not conflict",
"description": "Validate bespoke rates for the same target and rate do not conflict during the same period. The target of a bespoke rate is determined by the supply point identifier and product code.",
"possible_errors": [
"overlapping_bespoke_rate_schedules"
]
},
{
"name": "Validate bespoke rate schedules target consistently",
"description": "Validate that bespoke rate schedules either all target supply points via the supply_point_identifier field or none do.",
"possible_errors": [
"inconsistent_bespoke_rate_schedule_targeting"
]
},
{
"name": "Validate bespoke rate schedules are valid",
"description": "Validate that each schedule references an existing product, contains unique items, represents rates defined by the product specification, and satisfies the product's rate override strategies.",
"possible_errors": [
"bespoke_rate_cannot_be_overridden",
"characteristic_code_not_found",
"duplicate_bespoke_rate_items",
"invalid_characteristic_value",
"invalid_profile_variant_for_specification",
"missing_required_bespoke_rate",
"product_code_does_not_exist",
"product_specification_not_found_for_product",
"rate_specification_not_found_for_product",
"shared_rate_not_found",
"shared_rate_not_found_for_product"
]
}
]
}Old
{
"x-validators": [
{
"name": "Validate bespoke rates do not conflict",
"description": "Validate bespoke rates for the same target and rate do not conflict during the same period. The target of a bespoke rate is determined by the supply point identifier and product code.",
"possible_errors": [
"overlapping_bespoke_rate_schedules"
]
},
{
"name": "Validate bespoke rate schedules target consistently",
"description": "Validate that bespoke rate schedules either all target supply points via the supply_point_identifier field or none do.",
"possible_errors": [
"inconsistent_bespoke_rate_schedule_targeting"
]
}
]
}New
{
"x-enum-descriptions": {
"billing_hold_zero_rate_mischarge": "Account mis-billed \u00a30 charges"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"x-enum-descriptions": {
"Account mis-billed \u00a30 charges": "Account mis-billed \u00a30 charges"
}
}Old
{
"x-enum-descriptions": {}
}30 July 2026
New
{
"x-enum-descriptions": {
"ESIMGO": "ESIMGO"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"x-enum-descriptions": {
"ESIMGO": "ESIMGO"
}
}Old
{
"x-enum-descriptions": {}
}28 July 2026
New
{
"TRANCHE_TARGET_CONFIGURATION": "#/components/schemas/TrancheTargetConfiguration"
}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/PartnerCommission"
},
{
"$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"
},
{
"$ref": "#/components/schemas/TrancheTargetConfiguration"
},
{
"$ref": "#/components/schemas/TelcoDiscountGroup"
},
{
"$ref": "#/components/schemas/TelcoEndOfContractPriceRiseGroup"
},
{
"$ref": "#/components/schemas/TelcoYearlyPriceRiseGroup"
},
{
"$ref": "#/components/schemas/TelcoWaiveExitFeeTerm"
},
{
"$ref": "#/components/schemas/TelcoContractInfo"
},
{
"$ref": "#/components/schemas/TelcoCommitmentEndDate"
},
{
"$ref": "#/components/schemas/TelcoProductMinimumCommitmentLength"
}
]Old
[
{
"$ref": "#/components/schemas/BespokeRateConfiguration"
},
{
"$ref": "#/components/schemas/BillDueDate"
},
{
"$ref": "#/components/schemas/BillingDocumentIssuanceFrequencyTerm"
},
{
"$ref": "#/components/schemas/CharacteristicOverrideConfiguration"
},
{
"$ref": "#/components/schemas/CollateralRequired"
},
{
"$ref": "#/components/schemas/ContractMetaData"
},
{
"$ref": "#/components/schemas/ContractedVolumeConfiguration"
},
{
"$ref": "#/components/schemas/CorrectivePeriod"
},
{
"$ref": "#/components/schemas/DelayerDays"
},
{
"$ref": "#/components/schemas/GuaranteeOfOriginConfiguration"
},
{
"$ref": "#/components/schemas/LatePaymentFees"
},
{
"$ref": "#/components/schemas/MinimumContractLength"
},
{
"$ref": "#/components/schemas/PartnerCommission"
},
{
"$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"
},
{
"$ref": "#/components/schemas/TelcoDiscountGroup"
},
{
"$ref": "#/components/schemas/TelcoEndOfContractPriceRiseGroup"
},
{
"$ref": "#/components/schemas/TelcoYearlyPriceRiseGroup"
},
{
"$ref": "#/components/schemas/TelcoWaiveExitFeeTerm"
},
{
"$ref": "#/components/schemas/TelcoContractInfo"
},
{
"$ref": "#/components/schemas/TelcoCommitmentEndDate"
},
{
"$ref": "#/components/schemas/TelcoProductMinimumCommitmentLength"
}
]27 July 2026
New
{
"x-enum-descriptions": {
"eSIM": "eSIM"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"x-enum-descriptions": {
"eSIM": "eSIM"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"items": {
"x-enum-descriptions": {
"eSIM": "eSIM"
}
}
}Old
{
"items": {
"x-enum-descriptions": {}
}
}New
{
"x-enum-descriptions": {
"ESIM_SERVICE": "Esim Service"
}
}Old
{
"x-enum-descriptions": {}
}23 July 2026
New
[
{
"name": "Normalise calling circle numbers to E.164 and validate category caps",
"description": "Converts all calling circle numbers to E.164 format and checks that the count of numbers in each category (UK landline/mobile, international, UK 0845) does not exceed the configured cap.",
"possible_errors": [
"calling_circle_invalid"
]
},
{
"name": "Validate that the product fields are valid for the product type as some fields are product type specific.",
"description": "Validates that the product fields are valid for the product type as some fields are product type specific.",
"possible_errors": [
"product_field_invalid_for_type",
"product_is_misconfigured",
"required"
]
},
{
"name": "Validate that equipment orders are provided for Set-top Box (TV) products.",
"description": "Validates that the equipment_orders field is provided when the product type is Set-top Box (STB/TV), as equipment order details are required for TV product imports.",
"possible_errors": [
"required"
]
},
{
"name": "Validate that equipment SKUs match the CPE product specification code.",
"description": "Validates that every equipment order line SKU matches the product specification code attached to its CPE product.",
"possible_errors": [
"equipment_sku_does_not_match_product_specification_code"
]
},
{
"name": "Validate that the characteristic codes of the selected characteristic values are valid for the catalog product.",
"description": "Validates that the characteristic codes of the selected characteristic values are valid for the catalog product.",
"possible_errors": [
"selected_characteristic_value_invalid_characteristic_code_for_product"
]
},
{
"name": "Validate that the value is valid for the characteristic's value options.",
"description": "Validates that the value is valid for the characteristic's value options.",
"possible_errors": [
"selected_characteristic_value_invalid_for_value_options"
]
},
{
"name": "Validates that the broadband product contains the mandatory fields required for the specified network provider.",
"description": "Validates that the broadband product contains the mandatory fields required for the specified network provider (e.g. ont port and reference for Openreach).",
"possible_errors": [
"missing_fields_for_network_provider"
]
}
]Old
[
{
"name": "Normalise calling circle numbers to E.164 and validate category caps",
"description": "Converts all calling circle numbers to E.164 format and checks that the count of numbers in each category (UK landline/mobile, international, UK 0845) does not exceed the configured cap.",
"possible_errors": [
"calling_circle_invalid"
]
},
{
"name": "Validate that the product fields are valid for the product type as some fields are product type specific.",
"description": "Validates that the product fields are valid for the product type as some fields are product type specific.",
"possible_errors": [
"product_field_invalid_for_type",
"product_is_misconfigured",
"required"
]
},
{
"name": "Validate that equipment orders are provided for Set-top Box (TV) products.",
"description": "Validates that the equipment_orders field is provided when the product type is Set-top Box (STB/TV), as equipment order details are required for TV product imports.",
"possible_errors": [
"required"
]
},
{
"name": "Validate that the characteristic codes of the selected characteristic values are valid for the catalog product.",
"description": "Validates that the characteristic codes of the selected characteristic values are valid for the catalog product.",
"possible_errors": [
"selected_characteristic_value_invalid_characteristic_code_for_product"
]
},
{
"name": "Validate that the value is valid for the characteristic's value options.",
"description": "Validates that the value is valid for the characteristic's value options.",
"possible_errors": [
"selected_characteristic_value_invalid_for_value_options"
]
},
{
"name": "Validates that the broadband product contains the mandatory fields required for the specified network provider.",
"description": "Validates that the broadband product contains the mandatory fields required for the specified network provider (e.g. ont port and reference for Openreach).",
"possible_errors": [
"missing_fields_for_network_provider"
]
}
]22 July 2026
New
{
"x-validators": [
{
"name": "Validate that each child has a unique combination of values for the <code>\u2068payment_date, payment_type\u2069</code> fields",
"description": "Validate that each child has a unique combination of values for the <code>\u2068payment_date, payment_type\u2069</code> fields.",
"possible_errors": [
"children_with_duplicate_values"
]
}
]
}Old
{
"x-validators": [
{
"name": "Validate that each child has unique values for the <code>\u2068payment_date\u2069</code> field",
"description": "Validate that each child has unique values for the <code>\u2068payment_date\u2069</code> field.",
"possible_errors": [
"children_with_duplicate_values"
]
}
]
}New
{
"x-enum-descriptions": {
"insight_name_contains_invalid_string": "Insight: Name Contains Invalid String"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"x-enum-descriptions": {
"Insight: Name Contains Invalid String": "Insight: Name Contains Invalid String"
}
}Old
{
"x-enum-descriptions": {}
}21 July 2026
No attributes to display
New
{
"x-enum-descriptions": {
"suppress_transactional_communications": "Suppress transactional communications"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"x-enum-descriptions": {
"Suppress transactional communications": "Suppress transactional communications"
}
}Old
{
"x-enum-descriptions": {}
}17 July 2026
No attributes to display
No attributes to display
No attributes to display
16 July 2026
No attributes to display
New
{
"items": {
"$ref": "#/components/schemas/TelcoCustomer"
}
}Old
{
"items": {
"$ref": "#/components/schemas/TalktalkCustomer"
}
}Old
{
"x-validators": [
{
"name": "Validate alternative phone number is not in kraken",
"description": "Validate the alternative phone number provided does not exist in the database.",
"possible_errors": [
"alternative_phone_numbers_already_exists"
]
}
]
}15 July 2026
New
{
"x-enum-descriptions": {
"FLAT": "contracts--terms--termination-fee-fee-type-flat"
}
}Old
{
"x-enum-descriptions": {
"FLAT": "Flat"
}
}New
{
"x-enum-descriptions": {
"MARKETING.PROFILING.CONSENT_GIVEN": "User chooses to consent to their marketing profiling information being stored"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"x-enum-descriptions": {
"MARKETING.PROFILING.CONSENT_GIVEN": "User chooses to consent to their marketing profiling information being stored"
}
}Old
{
"x-enum-descriptions": {}
}New
[
{
"name": "Validate <code>\u2068end_date\u2069</code> not before <code>\u2068start_date\u2069</code>",
"description": "Validates that <code>\u2068end_date\u2069</code>, if given, is on or later than <code>\u2068start_date\u2069</code>.",
"possible_errors": [
"start_date_later_than_end_date"
]
},
{
"name": "Validate fixed payment schedule has amount",
"description": "Validates that a fixed payment schedule has an non zero amount provided in the payload. A fixed schedule is defined as a payment schedule with a trigger that is not type BILL.",
"possible_errors": [
"zero_payment_schedule_amount"
]
},
{
"name": "Validate regular payment schedule frequency provided",
"description": "Validates that a fixed regular payment schedule has a frequency provided in the payload.",
"possible_errors": [
"fixed_payment_schedule_missing_frequency"
]
},
{
"name": "Validate payment schedule balance threshold provided",
"description": "Validates that a payment schedule with a balance trigger has a balance threshold provided in the payload. This balance threshold is the amount the ledger balance must drop below to trigger a payment.",
"possible_errors": [
"balance_triggered_schedule_missing_threshold"
]
},
{
"name": "Validate debt repayment end date provided",
"description": "Validates that a debt repayment end date is provided in the payload if a debt repayment element is provided.",
"possible_errors": [
"debt_repayment_missing_end_date"
]
},
{
"name": "Validate debt repayment end date is not later than schedule end date",
"description": "Validates that a debt repayment end date is not later than the payment schedule end date if both are provided.",
"possible_errors": [
"debt_repayment_end_date_after_schedule_end_date"
]
},
{
"name": "Validate exempt from payment adequacy is applied only to regular schedule",
"description": "Validates that only a regular payment schedule is marked as exempted from payment adequacy, so as to create a fixed regular payment schedule.",
"possible_errors": [
"invalid_payment_schedule_to_exempt_from_payment_adequacy"
]
},
{
"name": "Validate fixed payment schedule has payment day",
"description": "Validates that a fixed payment schedule has a day of month in the payload. A fixed schedule is defined as a payment schedule with a trigger of type REGULAR.",
"possible_errors": [
"fixed_payment_schedule_missing_day_of_month"
]
},
{
"name": "Validate instalments is provided if trigger is PLAN",
"description": "Validate that the instalment field is not empty if payment schedule trigger is PLAN.",
"possible_errors": [
"payment_instalments_not_provided"
]
},
{
"name": "Validate instalment payment amounts sum to total amount",
"description": "Validate instalment payment amounts sum to total amount given.",
"possible_errors": [
"payment_instalments_do_not_sum_to_total"
]
},
{
"name": "Validate instalment payment date is within payment schedule active period",
"description": "Validate instalment payment date is within the period between start date and end date provided.",
"possible_errors": [
"payment_instalments_date_outside_of_payment_schedule_active_period"
]
},
{
"name": "Validate that the delayer days is set if delayer strategy is set",
"description": "Validate that the delayer days is set if delayer strategy is set",
"possible_errors": [
"payment_schedule_delay_must_have_bill_trigger",
"payment_schedule_delay_strategy_missing_delay_days"
]
},
{
"name": "Validate that the payment amount for fixed payment schedules is within the minor currency unit range of \u20680\u2069 - \u2068upper_bound\u2069",
"description": "Validate that the payment amount for any fixed payment schedule is within the major currency unit range of \u2068lower_limit\u2069 - \u2068UNLIMITED\u2069.",
"possible_errors": [
"fixed_payment_schedule_amount_out_of_range"
]
},
{
"name": "Standalone payment request method code is unexpected",
"description": "Validates that standalone_payment_request_method_code is only provided for MANUAL payment schedules.",
"possible_errors": [
"standalone_payment_request_method_code_unexpected"
]
},
{
"name": "Standalone payment request method code is valid",
"description": "Validates that standalone_payment_request_method_code matches a registered method.",
"possible_errors": [
"standalone_payment_request_method_code_invalid"
]
}
]Old
[
{
"name": "Validate <code>\u2068end_date\u2069</code> not before <code>\u2068start_date\u2069</code>",
"description": "Validates that <code>\u2068end_date\u2069</code>, if given, is on or later than <code>\u2068start_date\u2069</code>.",
"possible_errors": [
"start_date_later_than_end_date"
]
},
{
"name": "Validate fixed payment schedule has amount",
"description": "Validates that a fixed payment schedule has an non zero amount provided in the payload. A fixed schedule is defined as a payment schedule with a trigger that is not type BILL.",
"possible_errors": [
"zero_payment_schedule_amount"
]
},
{
"name": "Validate regular payment schedule frequency provided",
"description": "Validates that a fixed regular payment schedule has a frequency provided in the payload.",
"possible_errors": [
"fixed_payment_schedule_missing_frequency"
]
},
{
"name": "Validate payment schedule balance threshold provided",
"description": "Validates that a payment schedule with a balance trigger has a balance threshold provided in the payload. This balance threshold is the amount the ledger balance must drop below to trigger a payment.",
"possible_errors": [
"balance_triggered_schedule_missing_threshold"
]
},
{
"name": "Validate debt repayment end date provided",
"description": "Validates that a debt repayment end date is provided in the payload if a debt repayment element is provided.",
"possible_errors": [
"debt_repayment_missing_end_date"
]
},
{
"name": "Validate debt repayment end date is not later than schedule end date",
"description": "Validates that a debt repayment end date is not later than the payment schedule end date if both are provided.",
"possible_errors": [
"debt_repayment_end_date_after_schedule_end_date"
]
},
{
"name": "Validate exempt from payment adequacy is applied only to regular schedule",
"description": "Validates that only a regular payment schedule is marked as exempted from payment adequacy, so as to create a fixed regular payment schedule.",
"possible_errors": [
"invalid_payment_schedule_to_exempt_from_payment_adequacy"
]
},
{
"name": "Validate fixed payment schedule has payment day",
"description": "Validates that a fixed payment schedule has a day of month in the payload. A fixed schedule is defined as a payment schedule with a trigger of type REGULAR.",
"possible_errors": [
"fixed_payment_schedule_missing_day_of_month"
]
},
{
"name": "Validate instalments is provided if trigger is PLAN",
"description": "Validate that the instalment field is not empty if payment schedule trigger is PLAN.",
"possible_errors": [
"payment_instalments_not_provided"
]
},
{
"name": "Validate instalment payment amounts sum to total amount",
"description": "Validate instalment payment amounts sum to total amount given.",
"possible_errors": [
"payment_instalments_do_not_sum_to_total"
]
},
{
"name": "Validate instalment payment date is within payment schedule active period",
"description": "Validate instalment payment date is within the period between start date and end date provided.",
"possible_errors": [
"payment_instalments_date_outside_of_payment_schedule_active_period"
]
},
{
"name": "Validate that the delayer days is set if delayer strategy is set",
"description": "Validate that the delayer days is set if delayer strategy is set",
"possible_errors": [
"payment_schedule_delay_must_have_bill_trigger",
"payment_schedule_delay_strategy_missing_delay_days"
]
},
{
"name": "Validate that the payment amount for fixed payment schedules is within the minor currency unit range of \u20680\u2069 - \u2068upper_bound\u2069",
"description": "Validate that the payment amount for any fixed payment schedule is within the major currency unit range of \u2068lower_limit\u2069 - \u2068UNLIMITED\u2069.",
"possible_errors": [
"fixed_payment_schedule_amount_out_of_range"
]
}
]14 July 2026
New
[
{
"name": "data-import--validation--shared-rate-exists-for-product",
"description": "Validate that the shared rate code provided matches the shared rate 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": [
"product_specification_not_found_for_product",
"time_series_not_found_for_product"
]
}
]10 July 2026
No attributes to display
9 July 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": "Derive occupier billing address from supply address",
"description": "When an occupier account has no explicit billing address and exactly one supply address is provided, copy the supply address into the billing address fields.",
"possible_errors": []
},
{
"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 only portfolio lead has portfolio setting",
"description": "Validates that if portfolio settings are provided, then the account is marked as the portfolio lead.",
"possible_errors": [
"portfolio_settings_included_when_not_lead"
]
},
{
"name": "Validate business type and company number not provided for domestic accounts",
"description": "Validate that neither a business type or company number are provided for domestic accounts.",
"possible_errors": [
"business_fields_provided_for_domestic_accounts"
]
},
{
"name": "Validate no customers for unknown occupier",
"description": "Validate that no customers are provided for an unknown occupier.",
"possible_errors": [
"customer_with_unknown_occupier"
]
},
{
"name": "Validate that a customer given name is provided for business accounts",
"description": "Validate that a given name is provided for all customers on a business account. Note that this validation only applies if Kraken is configured to send registration flows for this import supplier.",
"possible_errors": [
"customer_given_name_required"
]
},
{
"name": "Validate portfolio reference provided correctly",
"description": "Validate that a portfolio reference is provided if portfolio settings have been provided and that a portfolio reference is not provided if the import supplier is set to create new portfolios.",
"possible_errors": [
"portfolio_references_missing",
"portfolio_references_provided"
]
},
{
"name": "Validate billing address style",
"description": "Validate that a legacy billing address (<code>billing_address1</code> etc.) and new-style billing address (<code>billing_address</code> object) are not both provided.",
"possible_errors": [
"billing_address_new_style_and_legacy"
]
},
{
"name": "Validate supply charge line items covered by a single agreement",
"description": "Validate each supply charge has a single agreement with matching product code that covers the period defined by it's line items minimum <code>start_date</code> to maximum <code>end_date</code>.",
"possible_errors": [
"supply_charge_line_items_not_covered_by_single_agreement"
]
},
{
"name": "Validate that Kraken can calculate when to start billing the account",
"description": "Validate that Kraken can calculate when to start billing the account. This is determined based on the existence of last billed to date, last statement closing date, and agreements.",
"possible_errors": [
"cannot_determine_responsible_for_billing_from_date"
]
},
{
"name": "Validate that terms with supply type matches a supply point supply type",
"description": "Validate that for terms containing a <code>supply_type</code> field that there is a supply point in the payload with a matching <code>supply_type</code>.",
"possible_errors": [
"term_supply_type_mismatch"
]
},
{
"name": "Validate that 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 that the historical and current statement repayment parent payment is unique",
"description": "Validates that the historical and current statement repayment parent payment is unique. This means that the parent payment for a statement repayment should not be duplicated across different statements.",
"possible_errors": [
"duplicated_transaction_statement_payment",
"duplicated_transaction_statement_repayment",
"repayment_transaction_statement_missing_reference",
"repayment_transaction_statement_no_linked_payment"
]
},
{
"name": "telco:data-import--validation--active-supply-address-exists-for-offering-start-date--display-name",
"description": "telco:data-import--validation--active-supply-address-exists-for-offering-start-date--help-text",
"possible_errors": [
"offering_start_date_outside_supply_address_occupancy"
]
},
{
"name": "Validate that the location schemes required by the network provider are included either within the active supply address or product offering",
"description": "Validates that the location schemes required by the network provider are included either within the active supply address or product offering.",
"possible_errors": [
"location_scheme_missing_for_network_provider"
]
}
]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 only portfolio lead has portfolio setting",
"description": "Validates that if portfolio settings are provided, then the account is marked as the portfolio lead.",
"possible_errors": [
"portfolio_settings_included_when_not_lead"
]
},
{
"name": "Validate business type and company number not provided for domestic accounts",
"description": "Validate that neither a business type or company number are provided for domestic accounts.",
"possible_errors": [
"business_fields_provided_for_domestic_accounts"
]
},
{
"name": "Validate no customers for unknown occupier",
"description": "Validate that no customers are provided for an unknown occupier.",
"possible_errors": [
"customer_with_unknown_occupier"
]
},
{
"name": "Validate that a customer given name is provided for business accounts",
"description": "Validate that a given name is provided for all customers on a business account. Note that this validation only applies if Kraken is configured to send registration flows for this import supplier.",
"possible_errors": [
"customer_given_name_required"
]
},
{
"name": "Validate portfolio reference provided correctly",
"description": "Validate that a portfolio reference is provided if portfolio settings have been provided and that a portfolio reference is not provided if the import supplier is set to create new portfolios.",
"possible_errors": [
"portfolio_references_missing",
"portfolio_references_provided"
]
},
{
"name": "Validate billing address style",
"description": "Validate that a legacy billing address (<code>billing_address1</code> etc.) and new-style billing address (<code>billing_address</code> object) are not both provided.",
"possible_errors": [
"billing_address_new_style_and_legacy"
]
},
{
"name": "Validate supply charge line items covered by a single agreement",
"description": "Validate each supply charge has a single agreement with matching product code that covers the period defined by it's line items minimum <code>start_date</code> to maximum <code>end_date</code>.",
"possible_errors": [
"supply_charge_line_items_not_covered_by_single_agreement"
]
},
{
"name": "Validate that Kraken can calculate when to start billing the account",
"description": "Validate that Kraken can calculate when to start billing the account. This is determined based on the existence of last billed to date, last statement closing date, and agreements.",
"possible_errors": [
"cannot_determine_responsible_for_billing_from_date"
]
},
{
"name": "Validate that terms with supply type matches a supply point supply type",
"description": "Validate that for terms containing a <code>supply_type</code> field that there is a supply point in the payload with a matching <code>supply_type</code>.",
"possible_errors": [
"term_supply_type_mismatch"
]
},
{
"name": "Validate that 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 that the historical and current statement repayment parent payment is unique",
"description": "Validates that the historical and current statement repayment parent payment is unique. This means that the parent payment for a statement repayment should not be duplicated across different statements.",
"possible_errors": [
"duplicated_transaction_statement_payment",
"duplicated_transaction_statement_repayment",
"repayment_transaction_statement_missing_reference",
"repayment_transaction_statement_no_linked_payment"
]
},
{
"name": "telco:data-import--validation--active-supply-address-exists-for-offering-start-date--display-name",
"description": "telco:data-import--validation--active-supply-address-exists-for-offering-start-date--help-text",
"possible_errors": [
"offering_start_date_outside_supply_address_occupancy"
]
},
{
"name": "Validate that the location schemes required by the network provider are included either within the active supply address or product offering",
"description": "Validates that the location schemes required by the network provider are included either within the active supply address or product offering.",
"possible_errors": [
"location_scheme_missing_for_network_provider"
]
}
]8 July 2026
New
{
"x-validators": [
{
"name": "Validate bespoke rates do not conflict",
"description": "Validate bespoke rates for the same target and rate do not conflict during the same period. The target of a bespoke rate is determined by the supply point identifier and product code.",
"possible_errors": [
"overlapping_bespoke_rate_schedules"
]
},
{
"name": "Validate bespoke rate schedules target consistently",
"description": "Validate that bespoke rate schedules either all target supply points via the supply_point_identifier field or none do.",
"possible_errors": [
"inconsistent_bespoke_rate_schedule_targeting"
]
}
]
}Old
{
"x-validators": [
{
"name": "Validate schedules do not overlap",
"description": "Validate bespoke rate schedules for the same target do not overlap. The supply point identifier will be used as the target if provided, falling back to the product code.",
"possible_errors": [
"overlapping_bespoke_rate_schedules"
]
},
{
"name": "Validate bespoke rate schedules target consistently",
"description": "Validate that bespoke rate schedules either all target supply points via the supply_point_identifier field or none do.",
"possible_errors": [
"inconsistent_bespoke_rate_schedule_targeting"
]
}
]
}7 July 2026
New
[
{
"name": "Validate <code>\u2068valid_to\u2069</code> not before or equal to <code>\u2068valid_from\u2069</code>",
"description": "Validates that <code>\u2068valid_to\u2069</code>, if given, is strictly later than \u2068valid_from\u2069.",
"possible_errors": [
"start_date_same_as_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"
]
},
{
"name": "Validate that all required bespoke rates are present and no non-overridable rates are supplied",
"description": "Validates that bespoke rate schedules include all rate specifications marked as must-be-overridden and mandatory, and do not include any rate specifications marked as cannot-be-overridden.",
"possible_errors": [
"bespoke_rate_cannot_be_overridden",
"missing_required_bespoke_rate"
]
}
]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",
"shared_rate_not_found",
"shared_rate_not_found_for_product"
]
},
{
"name": "Validate that all required bespoke rates are present and no non-overridable rates are supplied",
"description": "Validates that bespoke rate schedules include all rate specifications marked as must-be-overridden and mandatory, and do not include any rate specifications marked as cannot-be-overridden.",
"possible_errors": [
"bespoke_rate_cannot_be_overridden",
"missing_required_bespoke_rate"
]
}
]6 July 2026
New
[
{
"name": "Validate <code>\u2068suspended_at\u2069</code> not before <code>\u2068started_at\u2069</code>",
"description": "Validates that <code>\u2068suspended_at\u2069</code>, if given, is on or later than <code>\u2068started_at\u2069</code>.",
"possible_errors": [
"start_date_later_than_end_date"
]
},
{
"name": "Validate that the service reference for the specified carrier does not already exist",
"description": "Validates that the service reference for the specified carrier does not already exist.",
"possible_errors": [
"service_reference_for_carrier_exists"
]
},
{
"name": "Validate that cdr_system is only provided for VOIP services",
"description": "Validates that the cdr_system field is only provided when the service type is VOIP_SERVICE.",
"possible_errors": [
"cdr_system_only_with_voip_service"
]
},
{
"name": "Validate that voip_phone_numbers is only provided for VOIP services",
"description": "Validates that the voip_phone_numbers field is only provided when the service type is VOIP_SERVICE.",
"possible_errors": [
"voip_phone_number_only_with_voip_service"
]
},
{
"name": "Validate that at most one VoIP phone number has no end date",
"description": "Validates that at most one entry in voip_phone_numbers has no end_date, as only one number can be active at a time.",
"possible_errors": [
"voip_phone_numbers_multiple_active"
]
},
{
"name": "Validate that AGENT_ID and CPWN_REFERENCE characteristics are present on broadband and VOIP services",
"description": "For C7 accounts, validates that the AGENT_ID and CPWN_REFERENCE characteristics are present on each BROADBAND_SERVICE and VOIP_SERVICE.",
"possible_errors": [
"missing_required_service_characteristics"
]
},
{
"name": "Validate that voip_phone_numbers is present and non-empty for VOIP services",
"description": "For C7 accounts, validates that the voip_phone_numbers field is present and contains at least one entry when the service type is VOIP_SERVICE.",
"possible_errors": [
"voip_phone_numbers_required_for_voip_service"
]
},
{
"name": "Validate that the VOIP service_reference matches the CLI of the active phone number",
"description": "Validates that the service_reference on a VOIP_SERVICE matches the CLI derived from the active voip_phone_numbers entry.",
"possible_errors": [
"service_reference_does_not_match_active_cli"
]
}
]Old
[
{
"name": "Validate <code>\u2068suspended_at\u2069</code> not before <code>\u2068started_at\u2069</code>",
"description": "Validates that <code>\u2068suspended_at\u2069</code>, if given, is on or later than <code>\u2068started_at\u2069</code>.",
"possible_errors": [
"start_date_later_than_end_date"
]
},
{
"name": "Validate that the service reference for the specified carrier does not already exist",
"description": "Validates that the service reference for the specified carrier does not already exist.",
"possible_errors": [
"service_reference_for_carrier_exists"
]
},
{
"name": "Validate that cdr_system is only provided for VOIP services",
"description": "Validates that the cdr_system field is only provided when the service type is VOIP_SERVICE.",
"possible_errors": [
"cdr_system_only_with_voip_service"
]
},
{
"name": "Validate that voip_phone_numbers is only provided for VOIP services",
"description": "Validates that the voip_phone_numbers field is only provided when the service type is VOIP_SERVICE.",
"possible_errors": [
"voip_phone_number_only_with_voip_service"
]
},
{
"name": "Validate that at most one VoIP phone number has no end date",
"description": "Validates that at most one entry in voip_phone_numbers has no end_date, as only one number can be active at a time.",
"possible_errors": [
"voip_phone_numbers_multiple_active"
]
},
{
"name": "Validate that AGENT_ID and CPWN_REFERENCE characteristics are present on broadband and VOIP services",
"description": "For C7 accounts, validates that the AGENT_ID and CPWN_REFERENCE characteristics are present on each BROADBAND_SERVICE and VOIP_SERVICE.",
"possible_errors": [
"missing_required_service_characteristics"
]
},
{
"name": "Validate that voip_phone_numbers is present and non-empty for VOIP services",
"description": "For C7 accounts, validates that the voip_phone_numbers field is present and contains at least one entry when the service type is VOIP_SERVICE.",
"possible_errors": [
"voip_phone_numbers_required_for_voip_service"
]
}
]
No attributes to display
2 July 2026
New
{
"PARTNER_COMMISSION": "#/components/schemas/PartnerCommission"
}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/PartnerCommission"
},
{
"$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"
},
{
"$ref": "#/components/schemas/TelcoDiscountGroup"
},
{
"$ref": "#/components/schemas/TelcoEndOfContractPriceRiseGroup"
},
{
"$ref": "#/components/schemas/TelcoYearlyPriceRiseGroup"
},
{
"$ref": "#/components/schemas/TelcoWaiveExitFeeTerm"
},
{
"$ref": "#/components/schemas/TelcoContractInfo"
},
{
"$ref": "#/components/schemas/TelcoCommitmentEndDate"
},
{
"$ref": "#/components/schemas/TelcoProductMinimumCommitmentLength"
}
]Old
[
{
"$ref": "#/components/schemas/BespokeRateConfiguration"
},
{
"$ref": "#/components/schemas/BillDueDate"
},
{
"$ref": "#/components/schemas/BillingDocumentIssuanceFrequencyTerm"
},
{
"$ref": "#/components/schemas/CharacteristicOverrideConfiguration"
},
{
"$ref": "#/components/schemas/CollateralRequired"
},
{
"$ref": "#/components/schemas/ContractMetaData"
},
{
"$ref": "#/components/schemas/ContractedVolumeConfiguration"
},
{
"$ref": "#/components/schemas/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"
},
{
"$ref": "#/components/schemas/TelcoDiscountGroup"
},
{
"$ref": "#/components/schemas/TelcoEndOfContractPriceRiseGroup"
},
{
"$ref": "#/components/schemas/TelcoYearlyPriceRiseGroup"
},
{
"$ref": "#/components/schemas/TelcoWaiveExitFeeTerm"
},
{
"$ref": "#/components/schemas/TelcoContractInfo"
},
{
"$ref": "#/components/schemas/TelcoCommitmentEndDate"
},
{
"$ref": "#/components/schemas/TelcoProductMinimumCommitmentLength"
}
]
No attributes to display
No attributes to display
Old
{
"maxItems": 1
}Old
{
"maxItems": 1
}1 July 2026
New
{
"x-enum-descriptions": {
"Enhanced": "Enhanced"
}
}Old
{
"x-enum-descriptions": {
"Advanced": "Advanced"
}
}New
{
"x-validators": [
{
"name": "Validate bespoke rate items are unique",
"description": "Validate that no two bespoke rate items in a schedule share the same rate specification code, rate specification type, and variant profile.",
"possible_errors": [
"duplicate_bespoke_rate_items"
]
}
]
}30 June 2026
New
[
{
"name": "Ensures only <code>user_details</code> or <code>details</code> are provided",
"description": "Ensures that only <code>user_details</code> or <code>details</code> are provided, not both.",
"possible_errors": [
"customer_details_and_user_details_both_provided"
]
},
{
"name": "Validate no contact details for occupier",
"description": "Validates that a customer identified as \"The Occupier\" does not have contact details. If contact details are provided it implies that the identity of the customer is known, and it therefore not an unknown occupier.",
"possible_errors": [
"contact_details_for_occupier"
]
},
{
"name": "Validate that the customer's name is not \"The Occupier\"",
"description": "Validate that the customer's name is not \"The Occupier\". To indicate an occupier account, use the <code>unknown_occupier</code> flag at the account-level.",
"possible_errors": [
"customer_may_not_be_named_the_occupier"
]
},
{
"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 user role",
"description": "Validates that at least one user role is provided through <code>portfolio_roles</code> or <code>account_roles</code>.",
"possible_errors": [
"required_user_role"
]
},
{
"name": "Validate exclusive role assignment",
"description": "Validates that an exclusively-assignable role is not assigned to a user alongside any other role, whether in the same payload or already held by the user.",
"possible_errors": [
"customer_has_exclusive_role_conflict"
]
},
{
"name": "Validate that <code>\u2068customer_preferences\u2069</code> and <code>\u2068consents\u2069</code> are not both provided",
"description": "Validate that \u2068customer_preferences\u2069 and \u2068consents\u2069 are not both provided.",
"possible_errors": [
"fields_are_mutually_exclusive"
]
}
]Old
[
{
"name": "Ensures only <code>user_details</code> or <code>details</code> are provided",
"description": "Ensures that only <code>user_details</code> or <code>details</code> are provided, not both.",
"possible_errors": [
"customer_details_and_user_details_both_provided"
]
},
{
"name": "Validate no contact details for occupier",
"description": "Validates that a customer identified as \"The Occupier\" does not have contact details. If contact details are provided it implies that the identity of the customer is known, and it therefore not an unknown occupier.",
"possible_errors": [
"contact_details_for_occupier"
]
},
{
"name": "Validate that the customer's name is not \"The Occupier\"",
"description": "Validate that the customer's name is not \"The Occupier\". To indicate an occupier account, use the <code>unknown_occupier</code> flag at the account-level.",
"possible_errors": [
"customer_may_not_be_named_the_occupier"
]
},
{
"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 user role",
"description": "Validates that at least one user role is provided through <code>portfolio_roles</code> or <code>account_roles</code>.",
"possible_errors": [
"required_user_role"
]
},
{
"name": "Validate that <code>\u2068customer_preferences\u2069</code> and <code>\u2068consents\u2069</code> are not both provided",
"description": "Validate that \u2068customer_preferences\u2069 and \u2068consents\u2069 are not both provided.",
"possible_errors": [
"fields_are_mutually_exclusive"
]
}
]
No attributes to display
No attributes to display
29 June 2026
New
{
"x-enum-descriptions": {
"THREE_WAY_CALLING": "THREE_WAY_CALLING"
}
}Old
{
"x-enum-descriptions": {}
}
No attributes to display
26 June 2026
New
[
{
"name": "Validate that the non-draft product offering exists",
"description": "Validates that an active or expired product offering exists for the provided internal name and optional identifier.",
"possible_errors": [
"offering_internal_name_does_not_exist"
]
},
{
"name": "Validate that an active product rate exists for the product at the start of the product offering's validity period",
"description": "Validates that an active product rate exists for the product at the start of the product offering's validity period. If a characteristics-based rate specification is configured for the product, an active product rate must exist matching the characteristic variant profile.",
"possible_errors": [
"product_rate_is_misconfigured"
]
},
{
"name": "Validate that the product offering date range is correct",
"description": "Validate that the product offering valid from date is before the valid to date.",
"possible_errors": [
"invalid_product_offering_date_range"
]
},
{
"name": "Validate that the product dates are within the product offering validity period",
"description": "Validates that the product dates (e.g. product.valid_from_date) are within the product offering validity period.",
"possible_errors": [
"product_dates_not_in_offering_date_range"
]
},
{
"name": "telco:data-import--validation--location-identifier-and-scheme-consistency--display-name",
"description": "telco:data-import--validation--location-identifier-and-scheme-consistency--help-text",
"possible_errors": [
"location_identified_and_scheme_mismatch"
]
},
{
"name": "Validate that the location scheme matches the location identifier",
"description": "Validates that the location scheme provided matches the expected scheme for the location identifier provided.",
"possible_errors": [
"location_identified_and_scheme_mismatch"
]
},
{
"name": "telco:data-import--validation--selected-components-are-valid-for-offering--display-name",
"description": "telco:data-import--validation--selected-components-are-valid-for-offering--help-text",
"possible_errors": [
"invalid_product_quantity_within_offering",
"invalid_selected_sub_offering_quantity_within_offering",
"product_code_not_in_offering",
"selected_sub_offering_internal_name_does_not_exist"
]
},
{
"name": "Validate that provider-restricted VoIP settings are only provided for their allowed wholesale providers",
"description": "Validates that VoIP settings restricted to specific wholesale providers (e.g. call_waiting for C7 / PXC-LLU) are only provided when the account's wholesale provider allows them.",
"possible_errors": [
"voip_setting_not_allowed_for_provider"
]
},
{
"name": "Validate that paid VoIP bolt-on products match VoIP settings",
"description": "Validates that paid VoIP bolt-on products are selected exactly when the matching VoIP settings are enabled in the data import payload.",
"possible_errors": [
"paid_voip_bolton_mismatch"
]
}
]Old
[
{
"name": "Validate that the non-draft product offering exists",
"description": "Validates that an active or expired product offering exists for the provided internal name and optional identifier.",
"possible_errors": [
"offering_internal_name_does_not_exist"
]
},
{
"name": "Validate that an active product rate exists for the product at the start of the product offering's validity period",
"description": "Validates that an active product rate exists for the product at the start of the product offering's validity period. If a characteristics-based rate specification is configured for the product, an active product rate must exist matching the characteristic variant profile.",
"possible_errors": [
"product_rate_is_misconfigured"
]
},
{
"name": "Validate that the product offering date range is correct",
"description": "Validate that the product offering valid from date is before the valid to date.",
"possible_errors": [
"invalid_product_offering_date_range"
]
},
{
"name": "Validate that the product dates are within the product offering validity period",
"description": "Validates that the product dates (e.g. product.valid_from_date) are within the product offering validity period.",
"possible_errors": [
"product_dates_not_in_offering_date_range"
]
},
{
"name": "telco:data-import--validation--location-identifier-and-scheme-consistency--display-name",
"description": "telco:data-import--validation--location-identifier-and-scheme-consistency--help-text",
"possible_errors": [
"location_identified_and_scheme_mismatch"
]
},
{
"name": "Validate that the location scheme matches the location identifier",
"description": "Validates that the location scheme provided matches the expected scheme for the location identifier provided.",
"possible_errors": [
"location_identified_and_scheme_mismatch"
]
},
{
"name": "telco:data-import--validation--selected-components-are-valid-for-offering--display-name",
"description": "telco:data-import--validation--selected-components-are-valid-for-offering--help-text",
"possible_errors": [
"invalid_product_quantity_within_offering",
"invalid_selected_sub_offering_quantity_within_offering",
"product_code_not_in_offering",
"selected_sub_offering_internal_name_does_not_exist"
]
},
{
"name": "Validate that paid VoIP bolt-on products match VoIP settings",
"description": "Validates that paid VoIP bolt-on products are selected exactly when the matching VoIP settings are enabled in the data import payload.",
"possible_errors": [
"paid_voip_bolton_mismatch"
]
}
]New
[
{
"name": "Validate that the non-draft product offering exists",
"description": "Validates that an active or expired product offering exists for the provided internal name and optional identifier.",
"possible_errors": [
"offering_internal_name_does_not_exist"
]
},
{
"name": "Validate that an active product rate exists for the product at the start of the product offering's validity period",
"description": "Validates that an active product rate exists for the product at the start of the product offering's validity period. If a characteristics-based rate specification is configured for the product, an active product rate must exist matching the characteristic variant profile.",
"possible_errors": [
"product_rate_is_misconfigured"
]
},
{
"name": "Validate that the product offering date range is correct",
"description": "Validate that the product offering valid from date is before the valid to date.",
"possible_errors": [
"invalid_product_offering_date_range"
]
},
{
"name": "Validate that the product dates are within the product offering validity period",
"description": "Validates that the product dates (e.g. product.valid_from_date) are within the product offering validity period.",
"possible_errors": [
"product_dates_not_in_offering_date_range"
]
},
{
"name": "telco:data-import--validation--location-identifier-and-scheme-consistency--display-name",
"description": "telco:data-import--validation--location-identifier-and-scheme-consistency--help-text",
"possible_errors": [
"location_identified_and_scheme_mismatch"
]
},
{
"name": "Validate that the location scheme matches the location identifier",
"description": "Validates that the location scheme provided matches the expected scheme for the location identifier provided.",
"possible_errors": [
"location_identified_and_scheme_mismatch"
]
},
{
"name": "Validate that the product code exists within the product offering",
"description": "Validates that the product code exists within the product offering.",
"possible_errors": [
"product_code_not_in_offering"
]
},
{
"name": "Validate that the product quantity is valid for the offering",
"description": "Validates that the product quantity is valid for the offering.",
"possible_errors": [
"invalid_product_quantity_within_offering"
]
},
{
"name": "Validate that provider-restricted VoIP settings are only provided for their allowed wholesale providers",
"description": "Validates that VoIP settings restricted to specific wholesale providers (e.g. call_waiting for C7 / PXC-LLU) are only provided when the account's wholesale provider allows them.",
"possible_errors": [
"voip_setting_not_allowed_for_provider"
]
},
{
"name": "Validate that paid VoIP bolt-on products match VoIP settings",
"description": "Validates that paid VoIP bolt-on products are selected exactly when the matching VoIP settings are enabled in the data import payload.",
"possible_errors": [
"paid_voip_bolton_mismatch"
]
}
]Old
[
{
"name": "Validate that the non-draft product offering exists",
"description": "Validates that an active or expired product offering exists for the provided internal name and optional identifier.",
"possible_errors": [
"offering_internal_name_does_not_exist"
]
},
{
"name": "Validate that an active product rate exists for the product at the start of the product offering's validity period",
"description": "Validates that an active product rate exists for the product at the start of the product offering's validity period. If a characteristics-based rate specification is configured for the product, an active product rate must exist matching the characteristic variant profile.",
"possible_errors": [
"product_rate_is_misconfigured"
]
},
{
"name": "Validate that the product offering date range is correct",
"description": "Validate that the product offering valid from date is before the valid to date.",
"possible_errors": [
"invalid_product_offering_date_range"
]
},
{
"name": "Validate that the product dates are within the product offering validity period",
"description": "Validates that the product dates (e.g. product.valid_from_date) are within the product offering validity period.",
"possible_errors": [
"product_dates_not_in_offering_date_range"
]
},
{
"name": "telco:data-import--validation--location-identifier-and-scheme-consistency--display-name",
"description": "telco:data-import--validation--location-identifier-and-scheme-consistency--help-text",
"possible_errors": [
"location_identified_and_scheme_mismatch"
]
},
{
"name": "Validate that the location scheme matches the location identifier",
"description": "Validates that the location scheme provided matches the expected scheme for the location identifier provided.",
"possible_errors": [
"location_identified_and_scheme_mismatch"
]
},
{
"name": "Validate that the product code exists within the product offering",
"description": "Validates that the product code exists within the product offering.",
"possible_errors": [
"product_code_not_in_offering"
]
},
{
"name": "Validate that the product quantity is valid for the offering",
"description": "Validates that the product quantity is valid for the offering.",
"possible_errors": [
"invalid_product_quantity_within_offering"
]
},
{
"name": "Validate that paid VoIP bolt-on products match VoIP settings",
"description": "Validates that paid VoIP bolt-on products are selected exactly when the matching VoIP settings are enabled in the data import payload.",
"possible_errors": [
"paid_voip_bolton_mismatch"
]
}
]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"
]
},
{
"name": "Validate that all required bespoke rates are present and no non-overridable rates are supplied",
"description": "Validates that bespoke rate schedules include all rate specifications marked as must-be-overridden and mandatory, and do not include any rate specifications marked as cannot-be-overridden.",
"possible_errors": [
"bespoke_rate_cannot_be_overridden",
"missing_required_bespoke_rate"
]
}
]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",
"shared_rate_not_found",
"shared_rate_not_found_for_product"
]
}
]New
[
{
"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 no duplicate portfolio reference namespaces",
"description": "Validate that there are no duplicate portfolio reference namespaces in the payload.",
"possible_errors": [
"duplicate_portfolio_references"
]
}
]Old
[
{
"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"
]
}
]New
[
{
"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 no duplicate portfolio reference namespaces",
"description": "Validate that there are no duplicate portfolio reference namespaces in the payload.",
"possible_errors": [
"duplicate_portfolio_references"
]
}
]Old
[
{
"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"
]
}
]New
[
{
"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 no duplicate portfolio reference namespaces",
"description": "Validate that there are no duplicate portfolio reference namespaces in the payload.",
"possible_errors": [
"duplicate_portfolio_references"
]
}
]Old
[
{
"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"
]
}
]25 June 2026
New
{
"x-enum-descriptions": {
"fttc": "fttc"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"x-enum-descriptions": {
"ONLINE": "ONLINE",
"DIGITAL_TELESALES": "Digital telesales",
"DIRECT__DIRECT_AGENT_PORTAL": "Direct -> DIRECT AGENT PORTAL"
}
}Old
{
"x-enum-descriptions": {
"ONLINE": "Online",
"DIGI_TELESALES": "Digital telesales",
"WORKPLACE_POP_UP": "Workplace pop-up",
"DIRECT__DIRECT_AGENT_PORTAL": "Direct agent portal"
}
}New
{
"x-enum-descriptions": {
"PROFILING.CONSENT_GIVEN": "User chooses to consent to their profiling information being stored"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"x-enum-descriptions": {
"PROFILING.CONSENT_GIVEN": "User chooses to consent to their profiling information being stored"
}
}Old
{
"x-enum-descriptions": {}
}23 June 2026
No attributes to display
22 June 2026
New
[
{
"name": "Validate that business information is provided if not linking account to business with contract",
"description": "Validate that business information is provided for the business to link the account to if <code>link_account_to_business_with_contract</code> is false for the given import supplier.",
"possible_errors": [
"business_information_required_if_not_linking_via_contract"
]
},
{
"name": "Validate that business information is not provided if linking an account to the business of the business contract.",
"description": "Validate that business information is not provided for the business to link the account to if <code>link_account_to_business_with_contract</code> is true for the given import supplier.",
"possible_errors": [
"business_information_not_required_if_linking_via_contract"
]
},
{
"name": "Validate that at least one contract identifier is provided for import",
"description": "Validate that at least one of <code>business_contract_identifiers</code> or <code>business_contract_identifier</code> is provided in the payload.",
"possible_errors": [
"missing_contract_identifier"
]
}
]Old
[
{
"name": "Validate that values are unique in Kraken for unique registered keys",
"description": "Validate that keys with unique constraints do not already have provided value in Kraken.",
"possible_errors": [
"business_detail_value_exists_for_unique_key"
]
},
{
"name": "Validate that business information is provided if not linking account to business with contract",
"description": "Validate that business information is provided for the business to link the account to if <code>link_account_to_business_with_contract</code> is false for the given import supplier.",
"possible_errors": [
"business_information_required_if_not_linking_via_contract"
]
},
{
"name": "Validate that business information is not provided if linking an account to the business of the business contract.",
"description": "Validate that business information is not provided for the business to link the account to if <code>link_account_to_business_with_contract</code> is true for the given import supplier.",
"possible_errors": [
"business_information_not_required_if_linking_via_contract"
]
},
{
"name": "Validate that at least one contract identifier is provided for import",
"description": "Validate that at least one of <code>business_contract_identifiers</code> or <code>business_contract_identifier</code> is provided in the payload.",
"possible_errors": [
"missing_contract_identifier"
]
}
]
No attributes to display
19 June 2026
No attributes to display
New
{
"x-enum-descriptions": {
"ONLINE": "Online",
"DIGI_TELESALES": "Digital telesales",
"WORKPLACE_POP_UP": "Workplace pop-up",
"DIRECT__DIRECT_AGENT_PORTAL": "Direct agent portal"
}
}Old
{
"x-enum-descriptions": {
"ONLINE": "ONLINE",
"DIGITAL_TELESALES": "Digital telesales",
"DIRECT__DIRECT_AGENT_PORTAL": "Direct -> DIRECT AGENT PORTAL"
}
}18 June 2026
New
{
"x-enum-descriptions": {
"ACCESS_TECHNOLOGY": "ACCESS_TECHNOLOGY"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"x-enum-descriptions": {
"ONLINE": "ONLINE",
"DIGITAL_TELESALES": "Digital telesales",
"DIRECT__DIRECT_AGENT_PORTAL": "Direct -> DIRECT AGENT PORTAL"
}
}Old
{
"x-enum-descriptions": {
"ONLINE": "Online",
"DIGI_TELESALES": "Digital telesales",
"WORKPLACE_POP_UP": "Workplace pop-up"
}
}17 June 2026
New
{
"x-enum-descriptions": {
"CALL_WAITING": "CALL_WAITING"
}
}Old
{
"x-enum-descriptions": {}
}
No attributes to display
New
{
"x-enum-descriptions": {
"no_usage_account": "No Usage Account"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"x-enum-descriptions": {
"No Usage Account": "No Usage Account"
}
}Old
{
"x-enum-descriptions": {}
}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 only portfolio lead has portfolio setting",
"description": "Validates that if portfolio settings are provided, then the account is marked as the portfolio lead.",
"possible_errors": [
"portfolio_settings_included_when_not_lead"
]
},
{
"name": "Validate business type and company number not provided for domestic accounts",
"description": "Validate that neither a business type or company number are provided for domestic accounts.",
"possible_errors": [
"business_fields_provided_for_domestic_accounts"
]
},
{
"name": "Validate no customers for unknown occupier",
"description": "Validate that no customers are provided for an unknown occupier.",
"possible_errors": [
"customer_with_unknown_occupier"
]
},
{
"name": "Validate that a customer given name is provided for business accounts",
"description": "Validate that a given name is provided for all customers on a business account. Note that this validation only applies if Kraken is configured to send registration flows for this import supplier.",
"possible_errors": [
"customer_given_name_required"
]
},
{
"name": "Validate portfolio reference provided correctly",
"description": "Validate that a portfolio reference is provided if portfolio settings have been provided and that a portfolio reference is not provided if the import supplier is set to create new portfolios.",
"possible_errors": [
"portfolio_references_missing",
"portfolio_references_provided"
]
},
{
"name": "Validate billing address style",
"description": "Validate that a legacy billing address (<code>billing_address1</code> etc.) and new-style billing address (<code>billing_address</code> object) are not both provided.",
"possible_errors": [
"billing_address_new_style_and_legacy"
]
},
{
"name": "Validate supply charge line items covered by a single agreement",
"description": "Validate each supply charge has a single agreement with matching product code that covers the period defined by it's line items minimum <code>start_date</code> to maximum <code>end_date</code>.",
"possible_errors": [
"supply_charge_line_items_not_covered_by_single_agreement"
]
},
{
"name": "Validate that Kraken can calculate when to start billing the account",
"description": "Validate that Kraken can calculate when to start billing the account. This is determined based on the existence of last billed to date, last statement closing date, and agreements.",
"possible_errors": [
"cannot_determine_responsible_for_billing_from_date"
]
},
{
"name": "Validate that terms with supply type matches a supply point supply type",
"description": "Validate that for terms containing a <code>supply_type</code> field that there is a supply point in the payload with a matching <code>supply_type</code>.",
"possible_errors": [
"term_supply_type_mismatch"
]
},
{
"name": "Validate that 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 that the historical and current statement repayment parent payment is unique",
"description": "Validates that the historical and current statement repayment parent payment is unique. This means that the parent payment for a statement repayment should not be duplicated across different statements.",
"possible_errors": [
"duplicated_transaction_statement_payment",
"duplicated_transaction_statement_repayment",
"repayment_transaction_statement_missing_reference",
"repayment_transaction_statement_no_linked_payment"
]
},
{
"name": "telco:data-import--validation--active-supply-address-exists-for-offering-start-date--display-name",
"description": "telco:data-import--validation--active-supply-address-exists-for-offering-start-date--help-text",
"possible_errors": [
"offering_start_date_outside_supply_address_occupancy"
]
},
{
"name": "Validate that the location schemes required by the network provider are included either within the active supply address or product offering",
"description": "Validates that the location schemes required by the network provider are included either within the active supply address or product offering.",
"possible_errors": [
"location_scheme_missing_for_network_provider"
]
}
]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 only portfolio lead has portfolio setting",
"description": "Validates that if portfolio settings are provided, then the account is marked as the portfolio lead.",
"possible_errors": [
"portfolio_settings_included_when_not_lead"
]
},
{
"name": "Validate business type and company number not provided for domestic accounts",
"description": "Validate that neither a business type or company number are provided for domestic accounts.",
"possible_errors": [
"business_fields_provided_for_domestic_accounts"
]
},
{
"name": "Validate no customers for unknown occupier",
"description": "Validate that no customers are provided for an unknown occupier.",
"possible_errors": [
"customer_with_unknown_occupier"
]
},
{
"name": "Validate that a customer given name is provided for business accounts",
"description": "Validate that a given name is provided for all customers on a business account. Note that this validation only applies if Kraken is configured to send registration flows for this import supplier.",
"possible_errors": [
"customer_given_name_required"
]
},
{
"name": "Validate portfolio reference provided correctly",
"description": "Validate that a portfolio reference is provided if portfolio settings have been provided and that a portfolio reference is not provided if the import supplier is set to create new portfolios.",
"possible_errors": [
"portfolio_references_missing",
"portfolio_references_provided"
]
},
{
"name": "Validate billing address style",
"description": "Validate that a legacy billing address (<code>billing_address1</code> etc.) and new-style billing address (<code>billing_address</code> object) are not both provided.",
"possible_errors": [
"billing_address_new_style_and_legacy"
]
},
{
"name": "Validate supply charge line items covered by a single agreement",
"description": "Validate each supply charge has a single agreement with matching product code that covers the period defined by it's line items minimum <code>start_date</code> to maximum <code>end_date</code>.",
"possible_errors": [
"supply_charge_line_items_not_covered_by_single_agreement"
]
},
{
"name": "Validate that Kraken can calculate when to start billing the account",
"description": "Validate that Kraken can calculate when to start billing the account. This is determined based on the existence of last billed to date, last statement closing date, and agreements.",
"possible_errors": [
"cannot_determine_responsible_for_billing_from_date"
]
},
{
"name": "Validate that terms with supply type matches a supply point supply type",
"description": "Validate that for terms containing a <code>supply_type</code> field that there is a supply point in the payload with a matching <code>supply_type</code>.",
"possible_errors": [
"term_supply_type_mismatch"
]
},
{
"name": "Validate that 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 that the historical and current statement repayment parent payment is unique",
"description": "Validates that the historical and current statement repayment parent payment is unique. This means that the parent payment for a statement repayment should not be duplicated across different statements.",
"possible_errors": [
"duplicated_transaction_statement_payment",
"duplicated_transaction_statement_repayment",
"repayment_transaction_statement_missing_reference",
"repayment_transaction_statement_no_linked_payment"
]
},
{
"name": "telco:data-import--validation--active-supply-address-exists-for-offering-start-date--display-name",
"description": "telco:data-import--validation--active-supply-address-exists-for-offering-start-date--help-text",
"possible_errors": [
"offering_start_date_outside_supply_address_occupancy"
]
},
{
"name": "Validate that the location schemes required by the network provider are included either within the active supply address or product offering",
"description": "Validates that the location schemes required by the network provider are included either within the active supply address or product offering.",
"possible_errors": [
"location_scheme_missing_for_network_provider"
]
}
]12 June 2026
New
{
"items": {
"$ref": "#/components/schemas/TalktalkProductOrder"
}
}Old
{
"items": {
"$ref": "#/components/schemas/TelcoProductOrder"
}
}11 June 2026
No attributes to display
No attributes to display
10 June 2026
New
{
"allOf": [
{
"$ref": "#/components/schemas/TalktalkVoipSettings"
}
]
}Old
{
"allOf": [
{
"$ref": "#/components/schemas/TelcoVoipSettings"
}
]
}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 only portfolio lead has portfolio setting",
"description": "Validates that if portfolio settings are provided, then the account is marked as the portfolio lead.",
"possible_errors": [
"portfolio_settings_included_when_not_lead"
]
},
{
"name": "Validate business type and company number not provided for domestic accounts",
"description": "Validate that neither a business type or company number are provided for domestic accounts.",
"possible_errors": [
"business_fields_provided_for_domestic_accounts"
]
},
{
"name": "Validate no customers for unknown occupier",
"description": "Validate that no customers are provided for an unknown occupier.",
"possible_errors": [
"customer_with_unknown_occupier"
]
},
{
"name": "Validate that a customer given name is provided for business accounts",
"description": "Validate that a given name is provided for all customers on a business account. Note that this validation only applies if Kraken is configured to send registration flows for this import supplier.",
"possible_errors": [
"customer_given_name_required"
]
},
{
"name": "Validate portfolio reference provided correctly",
"description": "Validate that a portfolio reference is provided if portfolio settings have been provided and that a portfolio reference is not provided if the import supplier is set to create new portfolios.",
"possible_errors": [
"portfolio_references_missing",
"portfolio_references_provided"
]
},
{
"name": "Validate billing address style",
"description": "Validate that a legacy billing address (<code>billing_address1</code> etc.) and new-style billing address (<code>billing_address</code> object) are not both provided.",
"possible_errors": [
"billing_address_new_style_and_legacy"
]
},
{
"name": "Validate supply charge line items covered by a single agreement",
"description": "Validate each supply charge has a single agreement with matching product code that covers the period defined by it's line items minimum <code>start_date</code> to maximum <code>end_date</code>.",
"possible_errors": [
"supply_charge_line_items_not_covered_by_single_agreement"
]
},
{
"name": "Validate that Kraken can calculate when to start billing the account",
"description": "Validate that Kraken can calculate when to start billing the account. This is determined based on the existence of last billed to date, last statement closing date, and agreements.",
"possible_errors": [
"cannot_determine_responsible_for_billing_from_date"
]
},
{
"name": "Validate that terms with supply type matches a supply point supply type",
"description": "Validate that for terms containing a <code>supply_type</code> field that there is a supply point in the payload with a matching <code>supply_type</code>.",
"possible_errors": [
"term_supply_type_mismatch"
]
},
{
"name": "Validate that 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 that the historical and current statement repayment parent payment is unique",
"description": "Validates that the historical and current statement repayment parent payment is unique. This means that the parent payment for a statement repayment should not be duplicated across different statements.",
"possible_errors": [
"duplicated_transaction_statement_payment",
"duplicated_transaction_statement_repayment",
"repayment_transaction_statement_missing_reference",
"repayment_transaction_statement_no_linked_payment"
]
},
{
"name": "telco:data-import--validation--active-supply-address-exists-for-offering-start-date--display-name",
"description": "telco:data-import--validation--active-supply-address-exists-for-offering-start-date--help-text",
"possible_errors": [
"offering_start_date_outside_supply_address_occupancy"
]
},
{
"name": "Validate that the location schemes required by the network provider are included either within the active supply address or product offering",
"description": "Validates that the location schemes required by the network provider are included either within the active supply address or product offering.",
"possible_errors": [
"location_scheme_missing_for_network_provider"
]
}
]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 only portfolio lead has portfolio setting",
"description": "Validates that if portfolio settings are provided, then the account is marked as the portfolio lead.",
"possible_errors": [
"portfolio_settings_included_when_not_lead"
]
},
{
"name": "Validate business type and company number not provided for domestic accounts",
"description": "Validate that neither a business type or company number are provided for domestic accounts.",
"possible_errors": [
"business_fields_provided_for_domestic_accounts"
]
},
{
"name": "Validate no customers for unknown occupier",
"description": "Validate that no customers are provided for an unknown occupier.",
"possible_errors": [
"customer_with_unknown_occupier"
]
},
{
"name": "Validate that a customer given name is provided for business accounts",
"description": "Validate that a given name is provided for all customers on a business account. Note that this validation only applies if Kraken is configured to send registration flows for this import supplier.",
"possible_errors": [
"customer_given_name_required"
]
},
{
"name": "Validate portfolio reference provided correctly",
"description": "Validate that a portfolio reference is provided if portfolio settings have been provided and that a portfolio reference is not provided if the import supplier is set to create new portfolios.",
"possible_errors": [
"portfolio_references_missing",
"portfolio_references_provided"
]
},
{
"name": "Validate billing address style",
"description": "Validate that a legacy billing address (<code>billing_address1</code> etc.) and new-style billing address (<code>billing_address</code> object) are not both provided.",
"possible_errors": [
"billing_address_new_style_and_legacy"
]
},
{
"name": "Validate supply charge line items covered by a single agreement",
"description": "Validate each supply charge has a single agreement with matching product code that covers the period defined by it's line items minimum <code>start_date</code> to maximum <code>end_date</code>.",
"possible_errors": [
"supply_charge_line_items_not_covered_by_single_agreement"
]
},
{
"name": "Validate that Kraken can calculate when to start billing the account",
"description": "Validate that Kraken can calculate when to start billing the account. This is determined based on the existence of last billed to date, last statement closing date, and agreements.",
"possible_errors": [
"cannot_determine_responsible_for_billing_from_date"
]
},
{
"name": "Validate that terms with supply type matches a supply point supply type",
"description": "Validate that for terms containing a <code>supply_type</code> field that there is a supply point in the payload with a matching <code>supply_type</code>.",
"possible_errors": [
"term_supply_type_mismatch"
]
},
{
"name": "Validate that 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 the historical and current statement repayment parent payment is unique",
"description": "Validates that the historical and current statement repayment parent payment is unique. This means that the parent payment for a statement repayment should not be duplicated across different statements.",
"possible_errors": [
"duplicated_transaction_statement_payment",
"duplicated_transaction_statement_repayment",
"repayment_transaction_statement_missing_reference",
"repayment_transaction_statement_no_linked_payment"
]
},
{
"name": "telco:data-import--validation--active-supply-address-exists-for-offering-start-date--display-name",
"description": "telco:data-import--validation--active-supply-address-exists-for-offering-start-date--help-text",
"possible_errors": [
"offering_start_date_outside_supply_address_occupancy"
]
},
{
"name": "Validate that the location schemes required by the network provider are included either within the active supply address or product offering",
"description": "Validates that the location schemes required by the network provider are included either within the active supply address or product offering.",
"possible_errors": [
"location_scheme_missing_for_network_provider"
]
}
]2 June 2026
New
{
"x-enum-descriptions": {
"C7": "C7"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"x-enum-descriptions": {
"C7": "C7"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"x-enum-descriptions": {
"C7": "C7"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"x-enum-descriptions": {
"C7": "C7"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"x-enum-descriptions": {
"C7": "C7"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"x-enum-descriptions": {
"C7": "C7"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"x-enum-descriptions": {
"C7": "C7"
}
}Old
{
"x-enum-descriptions": {}
}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"
},
{
"$ref": "#/components/schemas/TelcoDiscountGroup"
},
{
"$ref": "#/components/schemas/TelcoEndOfContractPriceRiseGroup"
},
{
"$ref": "#/components/schemas/TelcoYearlyPriceRiseGroup"
},
{
"$ref": "#/components/schemas/TelcoWaiveExitFeeTerm"
},
{
"$ref": "#/components/schemas/TelcoContractInfo"
},
{
"$ref": "#/components/schemas/TelcoCommitmentEndDate"
},
{
"$ref": "#/components/schemas/TelcoProductMinimumCommitmentLength"
}
]Old
[
{
"$ref": "#/components/schemas/BespokeRateConfiguration"
},
{
"$ref": "#/components/schemas/BillDueDate"
},
{
"$ref": "#/components/schemas/BillingDocumentIssuanceFrequencyTerm"
},
{
"$ref": "#/components/schemas/CharacteristicOverrideConfiguration"
},
{
"$ref": "#/components/schemas/CollateralRequired"
},
{
"$ref": "#/components/schemas/ContractMetaData"
},
{
"$ref": "#/components/schemas/ContractedVolumeConfiguration"
},
{
"$ref": "#/components/schemas/CorrectivePeriod"
},
{
"$ref": "#/components/schemas/DelayerDays"
},
{
"$ref": "#/components/schemas/GuaranteeOfOriginConfiguration"
},
{
"$ref": "#/components/schemas/LatePaymentFees"
},
{
"$ref": "#/components/schemas/MinimumContractLength"
},
{
"$ref": "#/components/schemas/PaysByDirectDebitTerm"
},
{
"$ref": "#/components/schemas/ProductRateOverrideConfiguration"
},
{
"$ref": "#/components/schemas/PromotionAssignmentTerm"
},
{
"$ref": "#/components/schemas/RateGroupEligibilityConfiguration"
},
{
"$ref": "#/components/schemas/TaxAdjustmentConfiguration"
},
{
"$ref": "#/components/schemas/TerminationFee"
},
{
"$ref": "#/components/schemas/TelcoDiscountGroup"
},
{
"$ref": "#/components/schemas/TelcoEndOfContractPriceRiseGroup"
},
{
"$ref": "#/components/schemas/TelcoYearlyPriceRiseGroup"
},
{
"$ref": "#/components/schemas/TelcoWaiveExitFeeTerm"
},
{
"$ref": "#/components/schemas/TelcoContractInfo"
},
{
"$ref": "#/components/schemas/TelcoCommitmentEndDate"
},
{
"$ref": "#/components/schemas/TelcoProductMinimumCommitmentLength"
}
]29 May 2026
New
[
{
"name": "Validate that the non-draft product offering exists",
"description": "Validates that an active or expired product offering exists for the provided internal name and optional identifier.",
"possible_errors": [
"offering_internal_name_does_not_exist"
]
},
{
"name": "Validate that an active product rate exists for the product at the start of the product offering's validity period",
"description": "Validates that an active product rate exists for the product at the start of the product offering's validity period. If a characteristics-based rate specification is configured for the product, an active product rate must exist matching the characteristic variant profile.",
"possible_errors": [
"product_rate_is_misconfigured"
]
},
{
"name": "Validate that the product offering date range is correct",
"description": "Validate that the product offering valid from date is before the valid to date.",
"possible_errors": [
"invalid_product_offering_date_range"
]
},
{
"name": "Validate that the product dates are within the product offering validity period",
"description": "Validates that the product dates (e.g. product.valid_from_date) are within the product offering validity period.",
"possible_errors": [
"product_dates_not_in_offering_date_range"
]
},
{
"name": "telco:data-import--validation--location-identifier-and-scheme-consistency--display-name",
"description": "telco:data-import--validation--location-identifier-and-scheme-consistency--help-text",
"possible_errors": [
"location_identified_and_scheme_mismatch"
]
},
{
"name": "Validate that the location scheme matches the location identifier",
"description": "Validates that the location scheme provided matches the expected scheme for the location identifier provided.",
"possible_errors": [
"location_identified_and_scheme_mismatch"
]
},
{
"name": "telco:data-import--validation--selected-components-are-valid-for-offering--display-name",
"description": "telco:data-import--validation--selected-components-are-valid-for-offering--help-text",
"possible_errors": [
"invalid_product_quantity_within_offering",
"invalid_selected_sub_offering_quantity_within_offering",
"product_code_not_in_offering",
"selected_sub_offering_internal_name_does_not_exist"
]
},
{
"name": "Validate that paid VoIP bolt-on products match VoIP settings",
"description": "Validates that paid VoIP bolt-on products are selected exactly when the matching VoIP settings are enabled in the data import payload.",
"possible_errors": [
"paid_voip_bolton_mismatch"
]
}
]Old
[
{
"name": "Validate that the non-draft product offering exists",
"description": "Validates that an active or expired product offering exists for the provided internal name and optional identifier.",
"possible_errors": [
"offering_internal_name_does_not_exist"
]
},
{
"name": "Validate that an active product rate exists for the product at the start of the product offering's validity period",
"description": "Validates that an active product rate exists for the product at the start of the product offering's validity period. If a characteristics-based rate specification is configured for the product, an active product rate must exist matching the characteristic variant profile.",
"possible_errors": [
"product_rate_is_misconfigured"
]
},
{
"name": "Validate that the product offering date range is correct",
"description": "Validate that the product offering valid from date is before the valid to date.",
"possible_errors": [
"invalid_product_offering_date_range"
]
},
{
"name": "Validate that the product dates are within the product offering validity period",
"description": "Validates that the product dates (e.g. product.valid_from_date) are within the product offering validity period.",
"possible_errors": [
"product_dates_not_in_offering_date_range"
]
},
{
"name": "telco:data-import--validation--location-identifier-and-scheme-consistency--display-name",
"description": "telco:data-import--validation--location-identifier-and-scheme-consistency--help-text",
"possible_errors": [
"location_identified_and_scheme_mismatch"
]
},
{
"name": "Validate that the location scheme matches the location identifier",
"description": "Validates that the location scheme provided matches the expected scheme for the location identifier provided.",
"possible_errors": [
"location_identified_and_scheme_mismatch"
]
},
{
"name": "telco:data-import--validation--selected-components-are-valid-for-offering--display-name",
"description": "telco:data-import--validation--selected-components-are-valid-for-offering--help-text",
"possible_errors": [
"invalid_product_quantity_within_offering",
"invalid_selected_sub_offering_quantity_within_offering",
"product_code_not_in_offering",
"selected_sub_offering_internal_name_does_not_exist"
]
},
{
"name": "Validate that selected VoIP settings include their required paid bolt-on products",
"description": "Validates that when a VoIP setting requires a paid bolt-on product, that paid bolt-on product is selected in the data import payload.",
"possible_errors": [
"missing_paid_voip_bolton"
]
}
]New
[
{
"name": "Validate that the non-draft product offering exists",
"description": "Validates that an active or expired product offering exists for the provided internal name and optional identifier.",
"possible_errors": [
"offering_internal_name_does_not_exist"
]
},
{
"name": "Validate that an active product rate exists for the product at the start of the product offering's validity period",
"description": "Validates that an active product rate exists for the product at the start of the product offering's validity period. If a characteristics-based rate specification is configured for the product, an active product rate must exist matching the characteristic variant profile.",
"possible_errors": [
"product_rate_is_misconfigured"
]
},
{
"name": "Validate that the product offering date range is correct",
"description": "Validate that the product offering valid from date is before the valid to date.",
"possible_errors": [
"invalid_product_offering_date_range"
]
},
{
"name": "Validate that the product dates are within the product offering validity period",
"description": "Validates that the product dates (e.g. product.valid_from_date) are within the product offering validity period.",
"possible_errors": [
"product_dates_not_in_offering_date_range"
]
},
{
"name": "telco:data-import--validation--location-identifier-and-scheme-consistency--display-name",
"description": "telco:data-import--validation--location-identifier-and-scheme-consistency--help-text",
"possible_errors": [
"location_identified_and_scheme_mismatch"
]
},
{
"name": "Validate that the location scheme matches the location identifier",
"description": "Validates that the location scheme provided matches the expected scheme for the location identifier provided.",
"possible_errors": [
"location_identified_and_scheme_mismatch"
]
},
{
"name": "Validate that the product code exists within the product offering",
"description": "Validates that the product code exists within the product offering.",
"possible_errors": [
"product_code_not_in_offering"
]
},
{
"name": "Validate that the product quantity is valid for the offering",
"description": "Validates that the product quantity is valid for the offering.",
"possible_errors": [
"invalid_product_quantity_within_offering"
]
},
{
"name": "Validate that paid VoIP bolt-on products match VoIP settings",
"description": "Validates that paid VoIP bolt-on products are selected exactly when the matching VoIP settings are enabled in the data import payload.",
"possible_errors": [
"paid_voip_bolton_mismatch"
]
}
]Old
[
{
"name": "Validate that the non-draft product offering exists",
"description": "Validates that an active or expired product offering exists for the provided internal name and optional identifier.",
"possible_errors": [
"offering_internal_name_does_not_exist"
]
},
{
"name": "Validate that an active product rate exists for the product at the start of the product offering's validity period",
"description": "Validates that an active product rate exists for the product at the start of the product offering's validity period. If a characteristics-based rate specification is configured for the product, an active product rate must exist matching the characteristic variant profile.",
"possible_errors": [
"product_rate_is_misconfigured"
]
},
{
"name": "Validate that the product offering date range is correct",
"description": "Validate that the product offering valid from date is before the valid to date.",
"possible_errors": [
"invalid_product_offering_date_range"
]
},
{
"name": "Validate that the product dates are within the product offering validity period",
"description": "Validates that the product dates (e.g. product.valid_from_date) are within the product offering validity period.",
"possible_errors": [
"product_dates_not_in_offering_date_range"
]
},
{
"name": "telco:data-import--validation--location-identifier-and-scheme-consistency--display-name",
"description": "telco:data-import--validation--location-identifier-and-scheme-consistency--help-text",
"possible_errors": [
"location_identified_and_scheme_mismatch"
]
},
{
"name": "Validate that the location scheme matches the location identifier",
"description": "Validates that the location scheme provided matches the expected scheme for the location identifier provided.",
"possible_errors": [
"location_identified_and_scheme_mismatch"
]
},
{
"name": "Validate that the product code exists within the product offering",
"description": "Validates that the product code exists within the product offering.",
"possible_errors": [
"product_code_not_in_offering"
]
},
{
"name": "Validate that the product quantity is valid for the offering",
"description": "Validates that the product quantity is valid for the offering.",
"possible_errors": [
"invalid_product_quantity_within_offering"
]
},
{
"name": "Validate that selected VoIP settings include their required paid bolt-on products",
"description": "Validates that when a VoIP setting requires a paid bolt-on product, that paid bolt-on product is selected in the data import payload.",
"possible_errors": [
"missing_paid_voip_bolton"
]
}
]28 May 2026
New
[
{
"name": "Validate that contract versions include a version for the current terms",
"description": "Validate that the earliest version in the list of contract versions provided has an <code>applicable_at_date</code> that is equal to the contract <code>valid_from_date</code>.",
"possible_errors": [
"contract_versions_does_not_include_current"
]
},
{
"name": "Validate that the initial price adjustment effective from date matches the contract start date.",
"description": "Validates that the initial price adjustment effective from date matches the contract valid from date.",
"possible_errors": [
"initial_rate_event_effective_from_mismatch"
]
},
{
"name": "Validate that product_minimum_commitment_length is provided for VoIP boost and paid feature products",
"description": "Validates that product_minimum_commitment_length is provided for VoIP boost and paid feature products.",
"possible_errors": [
"missing_product_minimum_commitment_length"
]
},
{
"name": "Validate that selected_offerings and product_offerings fields are mutually exclusive",
"description": "Validates that selected_offerings and product_offerings fields are mutually exclusive.",
"possible_errors": [
"mutually_exclusive_selected_offerings_provided"
]
}
]Old
[
{
"name": "Validate that contract versions include a version for the current terms",
"description": "Validate that the earliest version in the list of contract versions provided has an <code>applicable_at_date</code> that is equal to the contract <code>valid_from_date</code>.",
"possible_errors": [
"contract_versions_does_not_include_current"
]
},
{
"name": "Validate that the initial price adjustment effective from date matches the contract start date.",
"description": "Validates that the initial price adjustment effective from date matches the contract valid from date.",
"possible_errors": [
"initial_rate_event_effective_from_mismatch"
]
},
{
"name": "Validate that selected_offerings and product_offerings fields are mutually exclusive",
"description": "Validates that selected_offerings and product_offerings fields are mutually exclusive.",
"possible_errors": [
"mutually_exclusive_selected_offerings_provided"
]
}
]27 May 2026
New
{
"x-enum-descriptions": {
"TALKTALK-CALLSAFE": "TALKTALK-CALLSAFE"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"x-enum-descriptions": {
"TALKTALK-CALLSAFE": "TALKTALK-CALLSAFE"
}
}Old
{
"x-enum-descriptions": {}
}26 May 2026
No attributes to display
Old
{
"required": true
}24 May 2026
No attributes to display
No attributes to display
22 May 2026
No attributes to display
New
{
"x-enum-descriptions": {
"Calling Circle": "Calling Circle"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"x-enum-descriptions": {
"Calling Circle": "Calling Circle"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"items": {
"x-enum-descriptions": {
"Calling Circle": "Calling Circle"
}
}
}Old
{
"items": {
"x-enum-descriptions": {}
}
}
No attributes to display
No attributes to display
21 May 2026
New
{
"x-enum-descriptions": {
"ALL_CALLS_BAR": "ALL_CALLS_BAR",
"PARTIAL_SUSPEND": "PARTIAL_SUSPEND"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"x-enum-descriptions": {
"DELAY_CREDIT": "DELAY_CREDIT",
"MISSED_APPOINTMENT_CREDIT": "MISSED_APPOINTMENT_CREDIT"
}
}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 only portfolio lead has portfolio setting",
"description": "Validates that if portfolio settings are provided, then the account is marked as the portfolio lead.",
"possible_errors": [
"portfolio_settings_included_when_not_lead"
]
},
{
"name": "Validate business type and company number not provided for domestic accounts",
"description": "Validate that neither a business type or company number are provided for domestic accounts.",
"possible_errors": [
"business_fields_provided_for_domestic_accounts"
]
},
{
"name": "Validate no customers for unknown occupier",
"description": "Validate that no customers are provided for an unknown occupier.",
"possible_errors": [
"customer_with_unknown_occupier"
]
},
{
"name": "Validate that a customer given name is provided for business accounts",
"description": "Validate that a given name is provided for all customers on a business account. Note that this validation only applies if Kraken is configured to send registration flows for this import supplier.",
"possible_errors": [
"customer_given_name_required"
]
},
{
"name": "Validate portfolio reference provided correctly",
"description": "Validate that a portfolio reference is provided if portfolio settings have been provided and that a portfolio reference is not provided if the import supplier is set to create new portfolios.",
"possible_errors": [
"portfolio_references_missing",
"portfolio_references_provided"
]
},
{
"name": "Validate billing address style",
"description": "Validate that a legacy billing address (<code>billing_address1</code> etc.) and new-style billing address (<code>billing_address</code> object) are not both provided.",
"possible_errors": [
"billing_address_new_style_and_legacy"
]
},
{
"name": "Validate supply charge line items covered by a single agreement",
"description": "Validate each supply charge has a single agreement with matching product code that covers the period defined by it's line items minimum <code>start_date</code> to maximum <code>end_date</code>.",
"possible_errors": [
"supply_charge_line_items_not_covered_by_single_agreement"
]
},
{
"name": "Validate that Kraken can calculate when to start billing the account",
"description": "Validate that Kraken can calculate when to start billing the account. This is determined based on the existence of last billed to date, last statement closing date, and agreements.",
"possible_errors": [
"cannot_determine_responsible_for_billing_from_date"
]
},
{
"name": "Validate that terms with supply type matches a supply point supply type",
"description": "Validate that for terms containing a <code>supply_type</code> field that there is a supply point in the payload with a matching <code>supply_type</code>.",
"possible_errors": [
"term_supply_type_mismatch"
]
},
{
"name": "Validate that 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 the historical and current statement repayment parent payment is unique",
"description": "Validates that the historical and current statement repayment parent payment is unique. This means that the parent payment for a statement repayment should not be duplicated across different statements.",
"possible_errors": [
"duplicated_transaction_statement_payment",
"duplicated_transaction_statement_repayment",
"repayment_transaction_statement_missing_reference",
"repayment_transaction_statement_no_linked_payment"
]
},
{
"name": "telco:data-import--validation--active-supply-address-exists-for-offering-start-date--display-name",
"description": "telco:data-import--validation--active-supply-address-exists-for-offering-start-date--help-text",
"possible_errors": [
"offering_start_date_outside_supply_address_occupancy"
]
},
{
"name": "Validate that the location schemes required by the network provider are included either within the active supply address or product offering",
"description": "Validates that the location schemes required by the network provider are included either within the active supply address or product offering.",
"possible_errors": [
"location_scheme_missing_for_network_provider"
]
}
]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 only portfolio lead has portfolio setting",
"description": "Validates that if portfolio settings are provided, then the account is marked as the portfolio lead.",
"possible_errors": [
"portfolio_settings_included_when_not_lead"
]
},
{
"name": "Validate business type and company number not provided for domestic accounts",
"description": "Validate that neither a business type or company number are provided for domestic accounts.",
"possible_errors": [
"business_fields_provided_for_domestic_accounts"
]
},
{
"name": "Validate no customers for unknown occupier",
"description": "Validate that no customers are provided for an unknown occupier.",
"possible_errors": [
"customer_with_unknown_occupier"
]
},
{
"name": "Validate that a customer given name is provided for business accounts",
"description": "Validate that a given name is provided for all customers on a business account. Note that this validation only applies if Kraken is configured to send registration flows for this import supplier.",
"possible_errors": [
"customer_given_name_required"
]
},
{
"name": "Validate portfolio reference provided correctly",
"description": "Validate that a portfolio reference is provided if portfolio settings have been provided and that a portfolio reference is not provided if the import supplier is set to create new portfolios.",
"possible_errors": [
"portfolio_references_missing",
"portfolio_references_provided"
]
},
{
"name": "Validate billing address style",
"description": "Validate that a legacy billing address (<code>billing_address1</code> etc.) and new-style billing address (<code>billing_address</code> object) are not both provided.",
"possible_errors": [
"billing_address_new_style_and_legacy"
]
},
{
"name": "Validate supply charge line items covered by a single agreement",
"description": "Validate each supply charge has a single agreement with matching product code that covers the period defined by it's line items minimum <code>start_date</code> to maximum <code>end_date</code>.",
"possible_errors": [
"supply_charge_line_items_not_covered_by_single_agreement"
]
},
{
"name": "Validate that Kraken can calculate when to start billing the account",
"description": "Validate that Kraken can calculate when to start billing the account. This is determined based on the existence of last billed to date, last statement closing date, and agreements.",
"possible_errors": [
"cannot_determine_responsible_for_billing_from_date"
]
},
{
"name": "Validate that terms with supply type matches a supply point supply type",
"description": "Validate that for terms containing a <code>supply_type</code> field that there is a supply point in the payload with a matching <code>supply_type</code>.",
"possible_errors": [
"term_supply_type_mismatch"
]
},
{
"name": "Validate that 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 that the historical and current statement repayment parent payment is unique",
"description": "Validates that the historical and current statement repayment parent payment is unique. This means that the parent payment for a statement repayment should not be duplicated across different statements.",
"possible_errors": [
"duplicated_transaction_statement_payment",
"duplicated_transaction_statement_repayment",
"repayment_transaction_statement_missing_reference",
"repayment_transaction_statement_no_linked_payment"
]
},
{
"name": "telco:data-import--validation--active-supply-address-exists-for-offering-start-date--display-name",
"description": "telco:data-import--validation--active-supply-address-exists-for-offering-start-date--help-text",
"possible_errors": [
"offering_start_date_outside_supply_address_occupancy"
]
},
{
"name": "Validate that the location schemes required by the network provider are included either within the active supply address or product offering",
"description": "Validates that the location schemes required by the network provider are included either within the active supply address or product offering.",
"possible_errors": [
"location_scheme_missing_for_network_provider"
]
}
]New
{
"x-enum-descriptions": {
"RETENTIONS_CREDIT": "RETENTIONS_CREDIT"
}
}Old
{
"x-enum-descriptions": {}
}Old
{
"maxItems": 1
}20 May 2026
New
[
{
"name": "Validate <code>\u2068suspended_at\u2069</code> not before <code>\u2068started_at\u2069</code>",
"description": "Validates that <code>\u2068suspended_at\u2069</code>, if given, is on or later than <code>\u2068started_at\u2069</code>.",
"possible_errors": [
"start_date_later_than_end_date"
]
},
{
"name": "Validate that the service reference for the specified carrier does not already exist",
"description": "Validates that the service reference for the specified carrier does not already exist.",
"possible_errors": [
"service_reference_for_carrier_exists"
]
},
{
"name": "Validate that cdr_system is only provided for VOIP services",
"description": "Validates that the cdr_system field is only provided when the service type is VOIP_SERVICE.",
"possible_errors": [
"cdr_system_only_with_voip_service"
]
},
{
"name": "Validate that voip_phone_numbers is only provided for VOIP services",
"description": "Validates that the voip_phone_numbers field is only provided when the service type is VOIP_SERVICE.",
"possible_errors": [
"voip_phone_number_only_with_voip_service"
]
},
{
"name": "Validate that at most one VoIP phone number has no end date",
"description": "Validates that at most one entry in voip_phone_numbers has no end_date, as only one number can be active at a time.",
"possible_errors": [
"voip_phone_numbers_multiple_active"
]
}
]Old
[
{
"name": "Validate <code>\u2068suspended_at\u2069</code> not before <code>\u2068started_at\u2069</code>",
"description": "Validates that <code>\u2068suspended_at\u2069</code>, if given, is on or later than <code>\u2068started_at\u2069</code>.",
"possible_errors": [
"start_date_later_than_end_date"
]
},
{
"name": "Validate that the service reference for the specified carrier does not already exist",
"description": "Validates that the service reference for the specified carrier does not already exist.",
"possible_errors": [
"service_reference_for_carrier_exists"
]
},
{
"name": "Validate that voip_phone_numbers is only provided for VOIP services",
"description": "Validates that the voip_phone_numbers field is only provided when the service type is VOIP_SERVICE.",
"possible_errors": [
"voip_phone_number_only_with_voip_service"
]
},
{
"name": "Validate that at most one VoIP phone number has no end date",
"description": "Validates that at most one entry in voip_phone_numbers has no end_date, as only one number can be active at a time.",
"possible_errors": [
"voip_phone_numbers_multiple_active"
]
}
]
No attributes to display
19 May 2026
No attributes to display
18 May 2026
New
{
"CORRECTIVE_PERIOD": "#/components/schemas/CorrectivePeriod"
}New
[
{
"$ref": "#/components/schemas/BespokeRateConfiguration"
},
{
"$ref": "#/components/schemas/BillDueDate"
},
{
"$ref": "#/components/schemas/BillingDocumentIssuanceFrequencyTerm"
},
{
"$ref": "#/components/schemas/CharacteristicOverrideConfiguration"
},
{
"$ref": "#/components/schemas/CollateralRequired"
},
{
"$ref": "#/components/schemas/ContractMetaData"
},
{
"$ref": "#/components/schemas/ContractedVolumeConfiguration"
},
{
"$ref": "#/components/schemas/CorrectivePeriod"
},
{
"$ref": "#/components/schemas/DelayerDays"
},
{
"$ref": "#/components/schemas/GuaranteeOfOriginConfiguration"
},
{
"$ref": "#/components/schemas/LatePaymentFees"
},
{
"$ref": "#/components/schemas/MinimumContractLength"
},
{
"$ref": "#/components/schemas/PaysByDirectDebitTerm"
},
{
"$ref": "#/components/schemas/ProductRateOverrideConfiguration"
},
{
"$ref": "#/components/schemas/PromotionAssignmentTerm"
},
{
"$ref": "#/components/schemas/RateGroupEligibilityConfiguration"
},
{
"$ref": "#/components/schemas/TaxAdjustmentConfiguration"
},
{
"$ref": "#/components/schemas/TerminationFee"
},
{
"$ref": "#/components/schemas/TelcoDiscountGroup"
},
{
"$ref": "#/components/schemas/TelcoEndOfContractPriceRiseGroup"
},
{
"$ref": "#/components/schemas/TelcoYearlyPriceRiseGroup"
},
{
"$ref": "#/components/schemas/TelcoWaiveExitFeeTerm"
},
{
"$ref": "#/components/schemas/TelcoContractInfo"
},
{
"$ref": "#/components/schemas/TelcoCommitmentEndDate"
},
{
"$ref": "#/components/schemas/TelcoProductMinimumCommitmentLength"
}
]Old
[
{
"$ref": "#/components/schemas/BespokeRateConfiguration"
},
{
"$ref": "#/components/schemas/BillDueDate"
},
{
"$ref": "#/components/schemas/BillingDocumentIssuanceFrequencyTerm"
},
{
"$ref": "#/components/schemas/CharacteristicOverrideConfiguration"
},
{
"$ref": "#/components/schemas/CollateralRequired"
},
{
"$ref": "#/components/schemas/ContractMetaData"
},
{
"$ref": "#/components/schemas/ContractedVolumeConfiguration"
},
{
"$ref": "#/components/schemas/DelayerDays"
},
{
"$ref": "#/components/schemas/GuaranteeOfOriginConfiguration"
},
{
"$ref": "#/components/schemas/LatePaymentFees"
},
{
"$ref": "#/components/schemas/MinimumContractLength"
},
{
"$ref": "#/components/schemas/PaysByDirectDebitTerm"
},
{
"$ref": "#/components/schemas/ProductRateOverrideConfiguration"
},
{
"$ref": "#/components/schemas/PromotionAssignmentTerm"
},
{
"$ref": "#/components/schemas/RateGroupEligibilityConfiguration"
},
{
"$ref": "#/components/schemas/TaxAdjustmentConfiguration"
},
{
"$ref": "#/components/schemas/TerminationFee"
},
{
"$ref": "#/components/schemas/TelcoDiscountGroup"
},
{
"$ref": "#/components/schemas/TelcoEndOfContractPriceRiseGroup"
},
{
"$ref": "#/components/schemas/TelcoYearlyPriceRiseGroup"
},
{
"$ref": "#/components/schemas/TelcoWaiveExitFeeTerm"
},
{
"$ref": "#/components/schemas/TelcoContractInfo"
},
{
"$ref": "#/components/schemas/TelcoCommitmentEndDate"
},
{
"$ref": "#/components/schemas/TelcoProductMinimumCommitmentLength"
}
]14 May 2026
New
[
{
"name": "Validate that the characteristic is valid",
"description": "Validates that the characteristic is valid.",
"possible_errors": [
"invalid_service_characteristic_name"
]
}
]Old
[
{
"name": "Validate that the characteristic is valid",
"description": "Validates that the characteristic is valid.",
"possible_errors": [
"invalid_service_characteristic_value"
]
},
{
"name": "Validate that if a characteristic type with the provided name already exists then its data type matches the provided data type",
"description": "Validates that if a characteristic type with the provided name already exists then its data type matches the provided data type.",
"possible_errors": [
"service_characteristic_data_type_mismatch"
]
}
]
No attributes to display
No attributes to display
13 May 2026
New
{
"x-enum-descriptions": {
"CHARGEBACK": "Chargeback"
}
}Old
{
"x-enum-descriptions": {}
}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 only portfolio lead has portfolio setting",
"description": "Validates that if portfolio settings are provided, then the account is marked as the portfolio lead.",
"possible_errors": [
"portfolio_settings_included_when_not_lead"
]
},
{
"name": "Validate business type and company number not provided for domestic accounts",
"description": "Validate that neither a business type or company number are provided for domestic accounts.",
"possible_errors": [
"business_fields_provided_for_domestic_accounts"
]
},
{
"name": "Validate no customers for unknown occupier",
"description": "Validate that no customers are provided for an unknown occupier.",
"possible_errors": [
"customer_with_unknown_occupier"
]
},
{
"name": "Validate that a customer given name is provided for business accounts",
"description": "Validate that a given name is provided for all customers on a business account. Note that this validation only applies if Kraken is configured to send registration flows for this import supplier.",
"possible_errors": [
"customer_given_name_required"
]
},
{
"name": "Validate portfolio reference provided correctly",
"description": "Validate that a portfolio reference is provided if portfolio settings have been provided and that a portfolio reference is not provided if the import supplier is set to create new portfolios.",
"possible_errors": [
"portfolio_references_missing",
"portfolio_references_provided"
]
},
{
"name": "Validate billing address style",
"description": "Validate that a legacy billing address (<code>billing_address1</code> etc.) and new-style billing address (<code>billing_address</code> object) are not both provided.",
"possible_errors": [
"billing_address_new_style_and_legacy"
]
},
{
"name": "Validate supply charge line items covered by a single agreement",
"description": "Validate each supply charge has a single agreement with matching product code that covers the period defined by it's line items minimum <code>start_date</code> to maximum <code>end_date</code>.",
"possible_errors": [
"supply_charge_line_items_not_covered_by_single_agreement"
]
},
{
"name": "Validate that Kraken can calculate when to start billing the account",
"description": "Validate that Kraken can calculate when to start billing the account. This is determined based on the existence of last billed to date, last statement closing date, and agreements.",
"possible_errors": [
"cannot_determine_responsible_for_billing_from_date"
]
},
{
"name": "Validate that terms with supply type matches a supply point supply type",
"description": "Validate that for terms containing a <code>supply_type</code> field that there is a supply point in the payload with a matching <code>supply_type</code>.",
"possible_errors": [
"term_supply_type_mismatch"
]
},
{
"name": "Validate that 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 that the historical and current statement repayment parent payment is unique",
"description": "Validates that the historical and current statement repayment parent payment is unique. This means that the parent payment for a statement repayment should not be duplicated across different statements.",
"possible_errors": [
"duplicated_transaction_statement_payment",
"duplicated_transaction_statement_repayment",
"repayment_transaction_statement_missing_reference",
"repayment_transaction_statement_no_linked_payment"
]
},
{
"name": "telco:data-import--validation--active-supply-address-exists-for-offering-start-date--display-name",
"description": "telco:data-import--validation--active-supply-address-exists-for-offering-start-date--help-text",
"possible_errors": [
"offering_start_date_outside_supply_address_occupancy"
]
},
{
"name": "Validate that the location schemes required by the network provider are included either within the active supply address or product offering",
"description": "Validates that the location schemes required by the network provider are included either within the active supply address or product offering.",
"possible_errors": [
"location_scheme_missing_for_network_provider"
]
}
]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 only portfolio lead has portfolio setting",
"description": "Validates that if portfolio settings are provided, then the account is marked as the portfolio lead.",
"possible_errors": [
"portfolio_settings_included_when_not_lead"
]
},
{
"name": "Validate business type and company number not provided for domestic accounts",
"description": "Validate that neither a business type or company number are provided for domestic accounts.",
"possible_errors": [
"business_fields_provided_for_domestic_accounts"
]
},
{
"name": "Validate no customers for unknown occupier",
"description": "Validate that no customers are provided for an unknown occupier.",
"possible_errors": [
"customer_with_unknown_occupier"
]
},
{
"name": "Validate that a customer given name is provided for business accounts",
"description": "Validate that a given name is provided for all customers on a business account. Note that this validation only applies if Kraken is configured to send registration flows for this import supplier.",
"possible_errors": [
"customer_given_name_required"
]
},
{
"name": "Validate portfolio reference provided correctly",
"description": "Validate that a portfolio reference is provided if portfolio settings have been provided and that a portfolio reference is not provided if the import supplier is set to create new portfolios.",
"possible_errors": [
"portfolio_references_missing",
"portfolio_references_provided"
]
},
{
"name": "Validate billing address style",
"description": "Validate that a legacy billing address (<code>billing_address1</code> etc.) and new-style billing address (<code>billing_address</code> object) are not both provided.",
"possible_errors": [
"billing_address_new_style_and_legacy"
]
},
{
"name": "Validate supply charge line items covered by a single agreement",
"description": "Validate each supply charge has a single agreement with matching product code that covers the period defined by it's line items minimum <code>start_date</code> to maximum <code>end_date</code>.",
"possible_errors": [
"supply_charge_line_items_not_covered_by_single_agreement"
]
},
{
"name": "Validate that Kraken can calculate when to start billing the account",
"description": "Validate that Kraken can calculate when to start billing the account. This is determined based on the existence of last billed to date, last statement closing date, and agreements.",
"possible_errors": [
"cannot_determine_responsible_for_billing_from_date"
]
},
{
"name": "Validate that terms with supply type matches a supply point supply type",
"description": "Validate that for terms containing a <code>supply_type</code> field that there is a supply point in the payload with a matching <code>supply_type</code>.",
"possible_errors": [
"term_supply_type_mismatch"
]
},
{
"name": "Validate that 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 that the historical and current statement repayment parent payment is unique",
"description": "Validates that the historical and current statement repayment parent payment is unique. This means that the parent payment for a statement repayment should not be duplicated across different statements.",
"possible_errors": [
"duplicated_transaction_statement_payment",
"duplicated_transaction_statement_repayment",
"repayment_transaction_statement_missing_reference",
"repayment_transaction_statement_no_linked_payment"
]
},
{
"name": "telco:data-import--validation--active-supply-address-exists-for-offering-start-date--display-name",
"description": "telco:data-import--validation--active-supply-address-exists-for-offering-start-date--help-text",
"possible_errors": [
"offering_start_date_outside_supply_address_occupancy"
]
},
{
"name": "Validate that the location schemes required by the network provider are included either within the active supply address or product offering",
"description": "Validates that the location schemes required by the network provider are included either within the active supply address or product offering.",
"possible_errors": [
"location_scheme_missing_for_network_provider"
]
}
]12 May 2026
New
[
{
"name": "Validate <code>\u2068valid_to\u2069</code> not before <code>\u2068valid_from\u2069</code>",
"description": "Validates that <code>\u2068valid_to\u2069</code>, if given, is on or later than <code>\u2068valid_from\u2069</code>.",
"possible_errors": [
"start_date_later_than_end_date"
]
},
{
"name": "Validate each item represents a possible rate for the product",
"description": "Validate each item's rate specification, characteristic values, and scheme labels represent a rate defned on the product.",
"possible_errors": [
"characteristic_code_not_found",
"invalid_characteristic_value",
"invalid_profile_variant_for_specification",
"product_specification_not_found_for_product",
"rate_specification_not_found_for_product",
"shared_rate_not_found",
"shared_rate_not_found_for_product"
]
}
]Old
[
{
"name": "Validate <code>\u2068valid_to\u2069</code> not before <code>\u2068valid_from\u2069</code>",
"description": "Validates that <code>\u2068valid_to\u2069</code>, if given, is on or later than <code>\u2068valid_from\u2069</code>.",
"possible_errors": [
"start_date_later_than_end_date"
]
},
{
"name": "Validate each item represents a possible rate for the product",
"description": "Validate each item's rate specification, characteristic values, and scheme labels represent a rate defned on the product.",
"possible_errors": [
"characteristic_code_not_found",
"invalid_characteristic_value",
"invalid_profile_variant_for_specification",
"product_specification_not_found_for_product",
"rate_specification_not_found_for_product"
]
}
]
No attributes to display
New
{
"x-enum-descriptions": {
"Copper Voice": "Copper Voice"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"x-enum-descriptions": {
"COPPER_VOICE_SERVICE": "Copper Voice Service"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"x-enum-descriptions": {
"Copper Voice": "Copper Voice"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"items": {
"x-enum-descriptions": {
"Copper Voice": "Copper Voice"
}
}
}Old
{
"items": {
"x-enum-descriptions": {}
}
}11 May 2026
New
{
"items": {
"$ref": "#/components/schemas/TalktalkAccountContract"
}
}Old
{
"items": {
"$ref": "#/components/schemas/TelcoAccountContract"
}
}8 May 2026
New
{
"x-enum-descriptions": {
"VOIP_BOLTON_BOOST_SERVICE": "Voip Bolton Boost Service"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"x-removal-date": "2026-05-25"
}New
{
"x-removal-date": "2026-05-25"
}7 May 2026
New
[
{
"name": "Validate that the non-draft product offering exists",
"description": "Validates that an active or expired product offering exists for the provided internal name and optional identifier.",
"possible_errors": [
"offering_internal_name_does_not_exist"
]
},
{
"name": "Validate that an active product rate exists for the product at the start of the product offering's validity period",
"description": "Validates that an active product rate exists for the product at the start of the product offering's validity period. If a characteristics-based rate specification is configured for the product, an active product rate must exist matching the characteristic variant profile.",
"possible_errors": [
"product_rate_is_misconfigured"
]
},
{
"name": "Validate that the product offering date range is correct",
"description": "Validate that the product offering valid from date is before the valid to date.",
"possible_errors": [
"invalid_product_offering_date_range"
]
},
{
"name": "Validate that the product dates are within the product offering validity period",
"description": "Validates that the product dates (e.g. product.valid_from_date) are within the product offering validity period.",
"possible_errors": [
"product_dates_not_in_offering_date_range"
]
},
{
"name": "telco:data-import--validation--location-identifier-and-scheme-consistency--display-name",
"description": "telco:data-import--validation--location-identifier-and-scheme-consistency--help-text",
"possible_errors": [
"location_identified_and_scheme_mismatch"
]
},
{
"name": "Validate that the location scheme matches the location identifier",
"description": "Validates that the location scheme provided matches the expected scheme for the location identifier provided.",
"possible_errors": [
"location_identified_and_scheme_mismatch"
]
},
{
"name": "telco:data-import--validation--selected-components-are-valid-for-offering--display-name",
"description": "telco:data-import--validation--selected-components-are-valid-for-offering--help-text",
"possible_errors": [
"invalid_product_quantity_within_offering",
"invalid_selected_sub_offering_quantity_within_offering",
"product_code_not_in_offering",
"selected_sub_offering_internal_name_does_not_exist"
]
},
{
"name": "Validate that selected VoIP settings include their required paid bolt-on products",
"description": "Validates that when a VoIP setting requires a paid bolt-on product, that paid bolt-on product is selected in the data import payload.",
"possible_errors": [
"missing_paid_voip_bolton"
]
}
]Old
[
{
"name": "Validate that the non-draft product offering exists",
"description": "Validates that an active or expired product offering exists for the provided internal name and optional identifier.",
"possible_errors": [
"offering_internal_name_does_not_exist"
]
},
{
"name": "Validate that an active product rate exists for the product at the start of the product offering's validity period",
"description": "Validates that an active product rate exists for the product at the start of the product offering's validity period. If a characteristics-based rate specification is configured for the product, an active product rate must exist matching the characteristic variant profile.",
"possible_errors": [
"product_rate_is_misconfigured"
]
},
{
"name": "Validate that the product offering date range is correct",
"description": "Validate that the product offering valid from date is before the valid to date.",
"possible_errors": [
"invalid_product_offering_date_range"
]
},
{
"name": "Validate that the product dates are within the product offering validity period",
"description": "Validates that the product dates (e.g. product.valid_from_date) are within the product offering validity period.",
"possible_errors": [
"product_dates_not_in_offering_date_range"
]
},
{
"name": "telco:data-import--validation--location-identifier-and-scheme-consistency--display-name",
"description": "telco:data-import--validation--location-identifier-and-scheme-consistency--help-text",
"possible_errors": [
"location_identified_and_scheme_mismatch"
]
},
{
"name": "Validate that the location scheme matches the location identifier",
"description": "Validates that the location scheme provided matches the expected scheme for the location identifier provided.",
"possible_errors": [
"location_identified_and_scheme_mismatch"
]
},
{
"name": "telco:data-import--validation--selected-components-are-valid-for-offering--display-name",
"description": "telco:data-import--validation--selected-components-are-valid-for-offering--help-text",
"possible_errors": [
"invalid_product_quantity_within_offering",
"invalid_selected_sub_offering_quantity_within_offering",
"product_code_not_in_offering",
"selected_sub_offering_internal_name_does_not_exist"
]
}
]New
[
{
"name": "Validate that the non-draft product offering exists",
"description": "Validates that an active or expired product offering exists for the provided internal name and optional identifier.",
"possible_errors": [
"offering_internal_name_does_not_exist"
]
},
{
"name": "Validate that an active product rate exists for the product at the start of the product offering's validity period",
"description": "Validates that an active product rate exists for the product at the start of the product offering's validity period. If a characteristics-based rate specification is configured for the product, an active product rate must exist matching the characteristic variant profile.",
"possible_errors": [
"product_rate_is_misconfigured"
]
},
{
"name": "Validate that the product offering date range is correct",
"description": "Validate that the product offering valid from date is before the valid to date.",
"possible_errors": [
"invalid_product_offering_date_range"
]
},
{
"name": "Validate that the product dates are within the product offering validity period",
"description": "Validates that the product dates (e.g. product.valid_from_date) are within the product offering validity period.",
"possible_errors": [
"product_dates_not_in_offering_date_range"
]
},
{
"name": "telco:data-import--validation--location-identifier-and-scheme-consistency--display-name",
"description": "telco:data-import--validation--location-identifier-and-scheme-consistency--help-text",
"possible_errors": [
"location_identified_and_scheme_mismatch"
]
},
{
"name": "Validate that the location scheme matches the location identifier",
"description": "Validates that the location scheme provided matches the expected scheme for the location identifier provided.",
"possible_errors": [
"location_identified_and_scheme_mismatch"
]
},
{
"name": "Validate that the product code exists within the product offering",
"description": "Validates that the product code exists within the product offering.",
"possible_errors": [
"product_code_not_in_offering"
]
},
{
"name": "Validate that the product quantity is valid for the offering",
"description": "Validates that the product quantity is valid for the offering.",
"possible_errors": [
"invalid_product_quantity_within_offering"
]
},
{
"name": "Validate that selected VoIP settings include their required paid bolt-on products",
"description": "Validates that when a VoIP setting requires a paid bolt-on product, that paid bolt-on product is selected in the data import payload.",
"possible_errors": [
"missing_paid_voip_bolton"
]
}
]Old
[
{
"name": "Validate that the non-draft product offering exists",
"description": "Validates that an active or expired product offering exists for the provided internal name and optional identifier.",
"possible_errors": [
"offering_internal_name_does_not_exist"
]
},
{
"name": "Validate that an active product rate exists for the product at the start of the product offering's validity period",
"description": "Validates that an active product rate exists for the product at the start of the product offering's validity period. If a characteristics-based rate specification is configured for the product, an active product rate must exist matching the characteristic variant profile.",
"possible_errors": [
"product_rate_is_misconfigured"
]
},
{
"name": "Validate that the product offering date range is correct",
"description": "Validate that the product offering valid from date is before the valid to date.",
"possible_errors": [
"invalid_product_offering_date_range"
]
},
{
"name": "Validate that the product dates are within the product offering validity period",
"description": "Validates that the product dates (e.g. product.valid_from_date) are within the product offering validity period.",
"possible_errors": [
"product_dates_not_in_offering_date_range"
]
},
{
"name": "telco:data-import--validation--location-identifier-and-scheme-consistency--display-name",
"description": "telco:data-import--validation--location-identifier-and-scheme-consistency--help-text",
"possible_errors": [
"location_identified_and_scheme_mismatch"
]
},
{
"name": "Validate that the location scheme matches the location identifier",
"description": "Validates that the location scheme provided matches the expected scheme for the location identifier provided.",
"possible_errors": [
"location_identified_and_scheme_mismatch"
]
},
{
"name": "Validate that the product code exists within the product offering",
"description": "Validates that the product code exists within the product offering.",
"possible_errors": [
"product_code_not_in_offering"
]
},
{
"name": "Validate that the product quantity is valid for the offering",
"description": "Validates that the product quantity is valid for the offering.",
"possible_errors": [
"invalid_product_quantity_within_offering"
]
}
]
No attributes to display
No attributes to display
6 May 2026
Old
{
"required": true
}New
{
"x-enum-descriptions": {
"VOIP_BOLTON_PAID_FEATURE_SERVICE": "Voip Bolton Paid Feature Service"
}
}Old
{
"x-enum-descriptions": {}
}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
5 May 2026
New
{
"x-enum-descriptions": {
"PXC-LLU": "PXC-LLU",
"PXC-NGA": "PXC-NGA"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"x-enum-descriptions": {
"PXC-LLU": "PXC-LLU",
"PXC-NGA": "PXC-NGA"
}
}Old
{
"x-enum-descriptions": {}
}4 May 2026
No attributes to display
Old
{
"x-validators": [
{
"name": "Validate that active product offering internal name exists",
"description": "Validates that the active product offering internal name exists.",
"possible_errors": [
"offering_internal_name_does_not_exist"
]
}
]
}New
[
{
"name": "Validate that the non-draft product offering exists",
"description": "Validates that an active or expired product offering exists for the provided internal name and optional identifier.",
"possible_errors": [
"offering_internal_name_does_not_exist"
]
},
{
"name": "Validate that an active product rate exists for the product at the start of the product offering's validity period",
"description": "Validates that an active product rate exists for the product at the start of the product offering's validity period. If a characteristics-based rate specification is configured for the product, an active product rate must exist matching the characteristic variant profile.",
"possible_errors": [
"product_rate_is_misconfigured"
]
},
{
"name": "Validate that the product offering date range is correct",
"description": "Validate that the product offering valid from date is before the valid to date.",
"possible_errors": [
"invalid_product_offering_date_range"
]
},
{
"name": "Validate that the product dates are within the product offering validity period",
"description": "Validates that the product dates (e.g. product.valid_from_date) are within the product offering validity period.",
"possible_errors": [
"product_dates_not_in_offering_date_range"
]
},
{
"name": "telco:data-import--validation--location-identifier-and-scheme-consistency--display-name",
"description": "telco:data-import--validation--location-identifier-and-scheme-consistency--help-text",
"possible_errors": [
"location_identified_and_scheme_mismatch"
]
},
{
"name": "Validate that the location scheme matches the location identifier",
"description": "Validates that the location scheme provided matches the expected scheme for the location identifier provided.",
"possible_errors": [
"location_identified_and_scheme_mismatch"
]
},
{
"name": "telco:data-import--validation--selected-components-are-valid-for-offering--display-name",
"description": "telco:data-import--validation--selected-components-are-valid-for-offering--help-text",
"possible_errors": [
"invalid_product_quantity_within_offering",
"invalid_selected_sub_offering_quantity_within_offering",
"product_code_not_in_offering",
"selected_sub_offering_internal_name_does_not_exist"
]
}
]Old
[
{
"name": "Validate that an active product rate exists for the product at the start of the product offering's validity period",
"description": "Validates that an active product rate exists for the product at the start of the product offering's validity period. If a characteristics-based rate specification is configured for the product, an active product rate must exist matching the characteristic variant profile.",
"possible_errors": [
"product_rate_is_misconfigured"
]
},
{
"name": "Validate that the product offering date range is correct",
"description": "Validate that the product offering valid from date is before the valid to date.",
"possible_errors": [
"invalid_product_offering_date_range"
]
},
{
"name": "Validate that the product dates are within the product offering validity period",
"description": "Validates that the product dates (e.g. product.valid_from_date) are within the product offering validity period.",
"possible_errors": [
"product_dates_not_in_offering_date_range"
]
},
{
"name": "telco:data-import--validation--location-identifier-and-scheme-consistency--display-name",
"description": "telco:data-import--validation--location-identifier-and-scheme-consistency--help-text",
"possible_errors": [
"location_identified_and_scheme_mismatch"
]
},
{
"name": "Validate that the location scheme matches the location identifier",
"description": "Validates that the location scheme provided matches the expected scheme for the location identifier provided.",
"possible_errors": [
"location_identified_and_scheme_mismatch"
]
},
{
"name": "telco:data-import--validation--selected-components-are-valid-for-offering--display-name",
"description": "telco:data-import--validation--selected-components-are-valid-for-offering--help-text",
"possible_errors": [
"invalid_product_quantity_within_offering",
"invalid_selected_sub_offering_quantity_within_offering",
"product_code_not_in_offering",
"selected_sub_offering_internal_name_does_not_exist"
]
}
]
No attributes to display
Old
{
"x-validators": [
{
"name": "Validate that active product offering internal name exists",
"description": "Validates that the active product offering internal name exists.",
"possible_errors": [
"offering_internal_name_does_not_exist"
]
}
]
}New
[
{
"name": "Validate that the non-draft product offering exists",
"description": "Validates that an active or expired product offering exists for the provided internal name and optional identifier.",
"possible_errors": [
"offering_internal_name_does_not_exist"
]
},
{
"name": "Validate that an active product rate exists for the product at the start of the product offering's validity period",
"description": "Validates that an active product rate exists for the product at the start of the product offering's validity period. If a characteristics-based rate specification is configured for the product, an active product rate must exist matching the characteristic variant profile.",
"possible_errors": [
"product_rate_is_misconfigured"
]
},
{
"name": "Validate that the product offering date range is correct",
"description": "Validate that the product offering valid from date is before the valid to date.",
"possible_errors": [
"invalid_product_offering_date_range"
]
},
{
"name": "Validate that the product dates are within the product offering validity period",
"description": "Validates that the product dates (e.g. product.valid_from_date) are within the product offering validity period.",
"possible_errors": [
"product_dates_not_in_offering_date_range"
]
},
{
"name": "telco:data-import--validation--location-identifier-and-scheme-consistency--display-name",
"description": "telco:data-import--validation--location-identifier-and-scheme-consistency--help-text",
"possible_errors": [
"location_identified_and_scheme_mismatch"
]
},
{
"name": "Validate that the location scheme matches the location identifier",
"description": "Validates that the location scheme provided matches the expected scheme for the location identifier provided.",
"possible_errors": [
"location_identified_and_scheme_mismatch"
]
},
{
"name": "Validate that the product code exists within the product offering",
"description": "Validates that the product code exists within the product offering.",
"possible_errors": [
"product_code_not_in_offering"
]
},
{
"name": "Validate that the product quantity is valid for the offering",
"description": "Validates that the product quantity is valid for the offering.",
"possible_errors": [
"invalid_product_quantity_within_offering"
]
}
]Old
[
{
"name": "Validate that an active product rate exists for the product at the start of the product offering's validity period",
"description": "Validates that an active product rate exists for the product at the start of the product offering's validity period. If a characteristics-based rate specification is configured for the product, an active product rate must exist matching the characteristic variant profile.",
"possible_errors": [
"product_rate_is_misconfigured"
]
},
{
"name": "Validate that the product offering date range is correct",
"description": "Validate that the product offering valid from date is before the valid to date.",
"possible_errors": [
"invalid_product_offering_date_range"
]
},
{
"name": "Validate that the product dates are within the product offering validity period",
"description": "Validates that the product dates (e.g. product.valid_from_date) are within the product offering validity period.",
"possible_errors": [
"product_dates_not_in_offering_date_range"
]
},
{
"name": "telco:data-import--validation--location-identifier-and-scheme-consistency--display-name",
"description": "telco:data-import--validation--location-identifier-and-scheme-consistency--help-text",
"possible_errors": [
"location_identified_and_scheme_mismatch"
]
},
{
"name": "Validate that the location scheme matches the location identifier",
"description": "Validates that the location scheme provided matches the expected scheme for the location identifier provided.",
"possible_errors": [
"location_identified_and_scheme_mismatch"
]
},
{
"name": "Validate that the product code exists within the product offering",
"description": "Validates that the product code exists within the product offering.",
"possible_errors": [
"product_code_not_in_offering"
]
},
{
"name": "Validate that the product quantity is valid for the offering",
"description": "Validates that the product quantity is valid for the offering.",
"possible_errors": [
"invalid_product_quantity_within_offering"
]
}
]
No attributes to display
Old
{
"x-validators": [
{
"name": "Validate that active product offering internal name exists",
"description": "Validates that the active product offering internal name exists.",
"possible_errors": [
"offering_internal_name_does_not_exist"
]
}
]
}29 April 2026
No attributes to display
No attributes to display
28 April 2026
New
{
"x-enum-descriptions": {
"PXC-DUMMY": "PXC-DUMMY"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"x-enum-descriptions": {
"PXC-DUMMY": "PXC-DUMMY"
}
}Old
{
"x-enum-descriptions": {}
}27 April 2026
No attributes to display
24 April 2026
No attributes to display
No attributes to display
New
[
{
"name": "Promotion assignment discount targets are valid",
"description": "Validates that the promotion exists, discounts are defined in the promotion, target types match the discount target type, and target identifiers are valid.",
"possible_errors": [
"discount_not_in_promotion",
"invalid_input_data",
"promotion_not_registered",
"rate_source_provider_not_registered",
"source_data_not_supported_for_fixed_rate",
"source_data_reference_mismatch",
"target_identifier_invalid",
"target_type_mismatch",
"target_type_not_registered"
]
}
]Old
[
{
"name": "Promotion assignment discount targets are valid",
"description": "Validates that the promotion exists, discounts are defined in the promotion, target types match the discount target type, and target identifiers are valid.",
"possible_errors": [
"discount_not_in_promotion",
"promotion_not_registered",
"target_identifier_invalid",
"target_type_mismatch",
"target_type_not_registered"
]
}
]22 April 2026
New
{
"x-enum-descriptions": {
"EQUIPMENT_RETURNS_BAG_ORDER": "Equipment Returns Bag Order"
}
}Old
{
"x-enum-descriptions": {
"EQUIPMENT RETURNS BAG ORDER": "Equipment Returns Bag Order"
}
}
No attributes to display
No attributes to display
New
{
"x-enum-descriptions": {
"CALLING_CIRCLE_NUMBERS": "CALLING_CIRCLE_NUMBERS",
"CALLING_CIRCLE_PRIMARY_NUMBER": "CALLING_CIRCLE_PRIMARY_NUMBER"
}
}Old
{
"x-enum-descriptions": {}
}21 April 2026
No attributes to display
No attributes to display
20 April 2026
New
[
{
"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 only portfolio lead has portfolio setting",
"description": "Validates that if portfolio settings are provided, then the account is marked as the portfolio lead.",
"possible_errors": [
"portfolio_settings_included_when_not_lead"
]
},
{
"name": "Validate business type and company number not provided for domestic accounts",
"description": "Validate that neither a business type or company number are provided for domestic accounts.",
"possible_errors": [
"business_fields_provided_for_domestic_accounts"
]
},
{
"name": "Validate no customers for unknown occupier",
"description": "Validate that no customers are provided for an unknown occupier.",
"possible_errors": [
"customer_with_unknown_occupier"
]
},
{
"name": "Validate that a customer given name is provided for business accounts",
"description": "Validate that a given name is provided for all customers on a business account. Note that this validation only applies if Kraken is configured to send registration flows for this import supplier.",
"possible_errors": [
"customer_given_name_required"
]
},
{
"name": "Validate portfolio reference provided correctly",
"description": "Validate that a portfolio reference is provided if portfolio settings have been provided and that a portfolio reference is not provided if the import supplier is set to create new portfolios.",
"possible_errors": [
"portfolio_references_missing",
"portfolio_references_provided"
]
},
{
"name": "Validate billing address style",
"description": "Validate that a legacy billing address (<code>billing_address1</code> etc.) and new-style billing address (<code>billing_address</code> object) are not both provided.",
"possible_errors": [
"billing_address_new_style_and_legacy"
]
},
{
"name": "Validate supply charge line items covered by a single agreement",
"description": "Validate each supply charge has a single agreement with matching product code that covers the period defined by it's line items minimum <code>start_date</code> to maximum <code>end_date</code>.",
"possible_errors": [
"supply_charge_line_items_not_covered_by_single_agreement"
]
},
{
"name": "Validate that Kraken can calculate when to start billing the account",
"description": "Validate that Kraken can calculate when to start billing the account. This is determined based on the existence of last billed to date, last statement closing date, and agreements.",
"possible_errors": [
"cannot_determine_responsible_for_billing_from_date"
]
},
{
"name": "Validate that terms with supply type matches a supply point supply type",
"description": "Validate that for terms containing a <code>supply_type</code> field that there is a supply point in the payload with a matching <code>supply_type</code>.",
"possible_errors": [
"term_supply_type_mismatch"
]
},
{
"name": "Validate that 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 that the historical and current statement repayment parent payment is unique",
"description": "Validates that the historical and current statement repayment parent payment is unique. This means that the parent payment for a statement repayment should not be duplicated across different statements.",
"possible_errors": [
"duplicated_transaction_statement_payment",
"duplicated_transaction_statement_repayment",
"repayment_transaction_statement_missing_reference",
"repayment_transaction_statement_no_linked_payment"
]
},
{
"name": "telco:data-import--validation--active-supply-address-exists-for-offering-start-date--display-name",
"description": "telco:data-import--validation--active-supply-address-exists-for-offering-start-date--help-text",
"possible_errors": [
"offering_start_date_outside_supply_address_occupancy"
]
},
{
"name": "Validate that the location schemes required by the network provider are included either within the active supply address or product offering",
"description": "Validates that the location schemes required by the network provider are included either within the active supply address or product offering.",
"possible_errors": [
"location_scheme_missing_for_network_provider"
]
}
]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 only portfolio lead has portfolio setting",
"description": "Validates that if portfolio settings are provided, then the account is marked as the portfolio lead.",
"possible_errors": [
"portfolio_settings_included_when_not_lead"
]
},
{
"name": "Validate business type and company number not provided for domestic accounts",
"description": "Validate that neither a business type or company number are provided for domestic accounts.",
"possible_errors": [
"business_fields_provided_for_domestic_accounts"
]
},
{
"name": "Validate no customers for unknown occupier",
"description": "Validate that no customers are provided for an unknown occupier.",
"possible_errors": [
"customer_with_unknown_occupier"
]
},
{
"name": "Validate that a customer given name is provided for business accounts",
"description": "Validate that a given name is provided for all customers on a business account. Note that this validation only applies if Kraken is configured to send registration flows for this import supplier.",
"possible_errors": [
"customer_given_name_required"
]
},
{
"name": "Validate portfolio reference provided correctly",
"description": "Validate that a portfolio reference is provided if portfolio settings have been provided and that a portfolio reference is not provided if the import supplier is set to create new portfolios.",
"possible_errors": [
"portfolio_references_missing",
"portfolio_references_provided"
]
},
{
"name": "Validate billing address style",
"description": "Validate that a legacy billing address (<code>billing_address1</code> etc.) and new-style billing address (<code>billing_address</code> object) are not both provided.",
"possible_errors": [
"billing_address_new_style_and_legacy"
]
},
{
"name": "Validate supply charge line items covered by a single agreement",
"description": "Validate each supply charge has a single agreement with matching product code that covers the period defined by it's line items minimum <code>start_date</code> to maximum <code>end_date</code>.",
"possible_errors": [
"supply_charge_line_items_not_covered_by_single_agreement"
]
},
{
"name": "Validate that Kraken can calculate when to start billing the account",
"description": "Validate that Kraken can calculate when to start billing the account. This is determined based on the existence of last billed to date, last statement closing date, and agreements.",
"possible_errors": [
"cannot_determine_responsible_for_billing_from_date"
]
},
{
"name": "Validate that terms with supply type matches a supply point supply type",
"description": "Validate that for terms containing a <code>supply_type</code> field that there is a supply point in the payload with a matching <code>supply_type</code>.",
"possible_errors": [
"term_supply_type_mismatch"
]
},
{
"name": "Validate that 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 that the historical and current statement repayment parent payment is unique",
"description": "Validates that the historical and current statement repayment parent payment is unique. This means that the parent payment for a statement repayment should not be duplicated across different statements.",
"possible_errors": [
"duplicated_transaction_statement_payment",
"duplicated_transaction_statement_repayment",
"repayment_transaction_statement_missing_reference",
"repayment_transaction_statement_no_linked_payment"
]
},
{
"name": "Validate that the location schemes required by the network provider are included either within the active supply address or product offering",
"description": "Validates that the location schemes required by the network provider are included either within the active supply address or product offering.",
"possible_errors": [
"location_scheme_missing_for_network_provider"
]
}
]New
{
"x-removal-date": "2026-05-20"
}
No attributes to display
No attributes to display
17 April 2026
No attributes to display
No attributes to display
New
[
{
"name": "Validate <code>\u2068suspended_at\u2069</code> not before <code>\u2068started_at\u2069</code>",
"description": "Validates that <code>\u2068suspended_at\u2069</code>, if given, is on or later than <code>\u2068started_at\u2069</code>.",
"possible_errors": [
"start_date_later_than_end_date"
]
},
{
"name": "Validate that the service reference for the specified carrier does not already exist",
"description": "Validates that the service reference for the specified carrier does not already exist.",
"possible_errors": [
"service_reference_for_carrier_exists"
]
},
{
"name": "Validate that voip_phone_numbers is only provided for VOIP services",
"description": "Validates that the voip_phone_numbers field is only provided when the service type is VOIP_SERVICE.",
"possible_errors": [
"voip_phone_number_only_with_voip_service"
]
},
{
"name": "Validate that at most one VoIP phone number has no end date",
"description": "Validates that at most one entry in voip_phone_numbers has no end_date, as only one number can be active at a time.",
"possible_errors": [
"voip_phone_numbers_multiple_active"
]
}
]Old
[
{
"name": "Validate <code>\u2068suspended_at\u2069</code> not before <code>\u2068started_at\u2069</code>",
"description": "Validates that <code>\u2068suspended_at\u2069</code>, if given, is on or later than <code>\u2068started_at\u2069</code>.",
"possible_errors": [
"start_date_later_than_end_date"
]
},
{
"name": "Validate that the service reference for the specified carrier does not already exist",
"description": "Validates that the service reference for the specified carrier does not already exist.",
"possible_errors": [
"service_reference_for_carrier_exists"
]
}
]
No attributes to display
16 April 2026
No attributes to display
No attributes to display
15 April 2026
No attributes to display
14 April 2026
No attributes to display
No attributes to display
13 April 2026
New
{
"x-enum-descriptions": {
"FreedomFibre": "FreedomFibre",
"CommunityFibre": "CommunityFibre"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"x-enum-descriptions": {
"FreedomFibre": "FreedomFibre",
"CommunityFibre": "CommunityFibre"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"x-enum-descriptions": {
"FreedomFibre": "FreedomFibre",
"CommunityFibre": "CommunityFibre"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"x-enum-descriptions": {
"FreedomFibre": "FreedomFibre",
"CommunityFibre": "CommunityFibre"
}
}Old
{
"x-enum-descriptions": {}
}7 April 2026
New
{
"x-enum-descriptions": {
"CLI": "CLI"
}
}Old
{
"x-enum-descriptions": {
"PHONE_NUMBER": "PHONE_NUMBER"
}
}2 April 2026
New
{
"x-enum-descriptions": {
"NUMBER_PORTING_FAILED": "NUMBER_PORTING_FAILED"
}
}Old
{
"x-enum-descriptions": {}
}New
[
{
"name": "Validate that the product fields are valid for the product type as some fields are product type specific.",
"description": "Validates that the product fields are valid for the product type as some fields are product type specific.",
"possible_errors": [
"product_field_invalid_for_type",
"product_is_misconfigured",
"required"
]
},
{
"name": "Validate that equipment orders are provided for Set-top Box (TV) products.",
"description": "Validates that the equipment_orders field is provided when the product type is Set-top Box (STB/TV), as equipment order details are required for TV product imports.",
"possible_errors": [
"required"
]
},
{
"name": "Validate that the characteristic codes of the selected characteristic values are valid for the catalog product.",
"description": "Validates that the characteristic codes of the selected characteristic values are valid for the catalog product.",
"possible_errors": [
"selected_characteristic_value_invalid_characteristic_code_for_product"
]
},
{
"name": "Validate that the value is valid for the characteristic's value options.",
"description": "Validates that the value is valid for the characteristic's value options.",
"possible_errors": [
"selected_characteristic_value_invalid_for_value_options"
]
},
{
"name": "Validates that the broadband product contains the mandatory fields required for the specified network provider.",
"description": "Validates that the broadband product contains the mandatory fields required for the specified network provider (e.g. ont port and reference for Openreach).",
"possible_errors": [
"missing_fields_for_network_provider"
]
}
]Old
[
{
"name": "Validate that the product fields are valid for the product type as some fields are product type specific.",
"description": "Validates that the product fields are valid for the product type as some fields are product type specific.",
"possible_errors": [
"product_field_invalid_for_type",
"product_is_misconfigured",
"required"
]
},
{
"name": "Validate that the characteristic codes of the selected characteristic values are valid for the catalog product.",
"description": "Validates that the characteristic codes of the selected characteristic values are valid for the catalog product.",
"possible_errors": [
"selected_characteristic_value_invalid_characteristic_code_for_product"
]
},
{
"name": "Validate that the value is valid for the characteristic's value options.",
"description": "Validates that the value is valid for the characteristic's value options.",
"possible_errors": [
"selected_characteristic_value_invalid_for_value_options"
]
},
{
"name": "Validates that the broadband product contains the mandatory fields required for the specified network provider.",
"description": "Validates that the broadband product contains the mandatory fields required for the specified network provider (e.g. ont port and reference for Openreach).",
"possible_errors": [
"missing_fields_for_network_provider"
]
}
]31 March 2026
No attributes to display
30 March 2026
No attributes to display
No attributes to display
27 March 2026
New
{
"x-enum-descriptions": {
"CUSTOM": "Custom"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"x-enum-descriptions": {
"CUSTOM": "Custom"
}
}Old
{
"x-enum-descriptions": {}
}25 March 2026
New
{
"x-enum-descriptions": {
"VoIP Bolton Boost": "VoIP Bolton Boost",
"VoIP Bolton Paid Feature": "VoIP Bolton Paid Feature"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"x-enum-descriptions": {
"VoIP Bolton Boost": "VoIP Bolton Boost",
"VoIP Bolton Paid Feature": "VoIP Bolton Paid Feature"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"items": {
"x-enum-descriptions": {
"VoIP Bolton Boost": "VoIP Bolton Boost",
"VoIP Bolton Paid Feature": "VoIP Bolton Paid Feature"
}
}
}Old
{
"items": {
"x-enum-descriptions": {}
}
}24 March 2026
No attributes to display
No attributes to display
No attributes to display
No attributes to display
23 March 2026
New
{
"x-enum-descriptions": {
"TELEPHONE_NUMBER": "TELEPHONE_NUMBER"
}
}Old
{
"x-enum-descriptions": {
"EXISTING_TELEPHONE_NUMBER": "EXISTING_TELEPHONE_NUMBER",
"REQUESTED_TELEPHONE_NUMBER": "REQUESTED_TELEPHONE_NUMBER"
}
}20 March 2026
New
{
"enum": [
"Partial"
],
"x-spec-enum-id": "84495b471b836dd1",
"x-enum-descriptions": {
"Partial": "Partial"
}
}New
{
"enum": [
"Disabled",
"Basic",
"Advanced"
],
"x-spec-enum-id": "d637e353a50f2632",
"x-enum-descriptions": {
"Basic": "Basic",
"Advanced": "Advanced",
"Disabled": "Disabled"
}
}New
{
"x-enum-descriptions": {
"CEASE": "Cease",
"LEAKAGE": "Leakage",
"REGRADE": "Regrade",
"RENEWAL": "Renewal",
"SUSPEND": "Suspend",
"ROLLOVER": "Rollover",
"UNSUSPEND": "Unsuspend",
"SPEED_CHANGE": "Speed Change",
"CHANGE_OPTIONS": "Change Options",
"CHANGE_CONTRACT": "Change Contract",
"CHANGE_CONFIGURATION": "Change Configuration",
"EQUIPMENT_REPLACEMENT": "Equipment Replacement",
"EQUIPMENT RETURNS BAG ORDER": "Equipment Returns Bag Order",
"EQUIPMENT_RETURNS_BAG_REORDER": "Equipment Returns Bag Reorder"
}
}Old
{
"x-enum-descriptions": {}
}19 March 2026
No attributes to display
New
{
"x-enum-descriptions": {
"BEREAVEMENT": "BEREAVEMENT",
"GOODWILL_CREDIT_BALANCE": "GOODWILL_CREDIT_BALANCE"
}
}Old
{
"x-enum-descriptions": {}
}17 March 2026
New
{
"x-enum-descriptions": {
"MARKETING.CONTACT_BY_PUSH": "User chooses to be contacted by push as a marketing preference."
}
}Old
{
"x-enum-descriptions": {}
}New
{
"x-enum-descriptions": {
"MARKETING.CONTACT_BY_PUSH": "User chooses to be contacted by push as a marketing preference."
}
}Old
{
"x-enum-descriptions": {}
}16 March 2026
New
{
"x-enum-descriptions": {
"ADD_ADDON": "Add Addon"
}
}Old
{
"x-enum-descriptions": {}
}13 March 2026
No attributes to display
New
{
"x-enum-descriptions": {
"REMOVE_ADDON": "Remove Addon"
}
}Old
{
"x-enum-descriptions": {}
}12 March 2026
New
{
"x-enum-descriptions": {
"VoIP Bolton": "VoIP Bolton"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"x-enum-descriptions": {
"VoIP Bolton": "VoIP Bolton"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"items": {
"x-enum-descriptions": {
"VoIP Bolton": "VoIP Bolton"
}
}
}Old
{
"items": {
"x-enum-descriptions": {}
}
}New
{
"x-enum-descriptions": {
"CPWN_REFERENCE": "CPWN_REFERENCE"
}
}Old
{
"x-enum-descriptions": {}
}9 March 2026
No attributes to display
No attributes to display
No attributes to display
4 March 2026
New
{
"x-enum-descriptions": {
"CHANGE_CONFIGURATION": "Change Configuration"
}
}Old
{
"x-enum-descriptions": {}
}2 March 2026
New
{
"x-enum-descriptions": {
"exc_coll": "Exc Collections - Do not use"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"x-enum-descriptions": {
"Exc Collections - Do not use": "Exc Collections - Do not use"
}
}Old
{
"x-enum-descriptions": {}
}27 February 2026
New
{
"x-validators": [
{
"name": "Validate <code>organisation_number</code>",
"description": "Validate that the given <code>organisation_number</code> has a corresponding organisation registered in the database.",
"possible_errors": [
"partner_organisation_does_not_exist"
]
}
]
}26 February 2026
New
{
"x-enum-descriptions": {}
}Old
{
"x-enum-descriptions": {
"TalkTalk Android TV": "TalkTalk Android TV"
}
}New
{
"x-enum-descriptions": {}
}Old
{
"x-enum-descriptions": {
"TalkTalk Android TV": "TalkTalk Android TV"
}
}New
{
"items": {
"x-enum-descriptions": {}
}
}Old
{
"items": {
"x-enum-descriptions": {
"TalkTalk Android TV": "TalkTalk Android TV"
}
}
}25 February 2026
New
{
"pattern": "^-?\\d{0,7}(?:\\.\\d{0,4})?$"
}Old
{
"pattern": "^-?\\d{0,7}(?:\\.\\d{0,2})?$"
}24 February 2026
New
{
"x-enum-descriptions": {
"DIRECTORY_ENTRY_TYPE": "DIRECTORY_ENTRY_TYPE",
"DIRECTORY_ENTRY_LINE_USE": "DIRECTORY_ENTRY_LINE_USE",
"DIRECTORY_ENTRY_POSTCODE": "DIRECTORY_ENTRY_POSTCODE",
"DIRECTORY_ENTRY_PREFERENCE": "DIRECTORY_ENTRY_PREFERENCE",
"DIRECTORY_ENTRY_FILE_PLACEMENT": "DIRECTORY_ENTRY_FILE_PLACEMENT",
"DIRECTORY_ENTRY_PARTIAL_ADDRESS_INDICATOR": "DIRECTORY_ENTRY_PARTIAL_ADDRESS_INDICATOR"
}
}Old
{
"x-enum-descriptions": {}
}
No attributes to display
20 February 2026
New
{
"x-enum-descriptions": {
"skip_annual_price_rise": "Skip annual price rise"
}
}Old
{
"x-enum-descriptions": {}
}New
{
"x-enum-descriptions": {
"Skip annual price rise": "Skip annual price rise"
}
}Old
{
"x-enum-descriptions": {}
}18 February 2026
New
[
{
"name": "Validate that an active product rate exists for the product at the start of the product offering's validity period",
"description": "Validates that an active product rate exists for the product at the start of the product offering's validity period. If a characteristics-based rate specification is configured for the product, an active product rate must exist matching the characteristic variant profile.",
"possible_errors": [
"product_rate_is_misconfigured"
]
},
{
"name": "Validate that the product offering date range is correct",
"description": "Validate that the product offering valid from date is before the valid to date.",
"possible_errors": [
"invalid_product_offering_date_range"
]
},
{
"name": "Validate that the product dates are within the product offering validity period",
"description": "Validates that the product dates (e.g. product.valid_from_date) are within the product offering validity period.",
"possible_errors": [
"product_dates_not_in_offering_date_range"
]
},
{
"name": "telco:data-import--validation--location-identifier-and-scheme-consistency--display-name",
"description": "telco:data-import--validation--location-identifier-and-scheme-consistency--help-text",
"possible_errors": [
"location_identified_and_scheme_mismatch"
]
},
{
"name": "Validate that the location scheme matches the location identifier",
"description": "Validates that the location scheme provided matches the expected scheme for the location identifier provided.",
"possible_errors": [
"location_identified_and_scheme_mismatch"
]
},
{
"name": "Validate that the product code exists within the product offering",
"description": "Validates that the product code exists within the product offering.",
"possible_errors": [
"product_code_not_in_offering"
]
},
{
"name": "Validate that the product quantity is valid for the offering",
"description": "Validates that the product quantity is valid for the offering.",
"possible_errors": [
"invalid_product_quantity_within_offering"
]
}
]Old
[
{
"name": "Validate that the product offering date range is correct",
"description": "Validate that the product offering valid from date is before the valid to date.",
"possible_errors": [
"invalid_product_offering_date_range"
]
},
{
"name": "Validate that the product code exists within the product offering",
"description": "Validates that the product code exists within the product offering.",
"possible_errors": [
"product_code_not_in_offering"
]
},
{
"name": "Validate that the product quantity is valid for the offering",
"description": "Validates that the product quantity is valid for the offering.",
"possible_errors": [
"invalid_product_quantity_within_offering"
]
},
{
"name": "Validate that an active product rate exists for the product at the start of the product offering's validity period",
"description": "Validates that an active product rate exists for the product at the start of the product offering's validity period. If a characteristics-based rate specification is configured for the product, an active product rate must exist matching the characteristic variant profile.",
"possible_errors": [
"product_rate_is_misconfigured"
]
},
{
"name": "Validate that the product dates are within the product offering validity period",
"description": "Validates that the product dates (e.g. product.valid_from_date) are within the product offering validity period.",
"possible_errors": [
"product_dates_not_in_offering_date_range"
]
},
{
"name": "telco:data-import--validation--location-identifier-and-scheme-consistency--display-name",
"description": "telco:data-import--validation--location-identifier-and-scheme-consistency--help-text",
"possible_errors": [
"location_identified_and_scheme_mismatch"
]
},
{
"name": "Validate that the location scheme matches the location identifier",
"description": "Validates that the location scheme provided matches the expected scheme for the location identifier provided.",
"possible_errors": [
"location_identified_and_scheme_mismatch"
]
}
]New
{
"x-validators": [
{
"name": "Validate that active product offering internal name exists",
"description": "Validates that the active product offering internal name exists.",
"possible_errors": [
"offering_internal_name_does_not_exist"
]
}
]
}Old
{
"x-validators": [
{
"name": "Validate that active product offering internal name exists",
"description": "Validates that the active product offering internal name exists.",
"possible_errors": [
"product_offering_internal_name_does_not_exist"
]
}
]
}New
[
{
"name": "Validate that contract versions include a version for the current terms",
"description": "Validate that the earliest version in the list of contract versions provided has an <code>applicable_at_date</code> that is equal to the contract <code>valid_from_date</code>.",
"possible_errors": [
"contract_versions_does_not_include_current"
]
},
{
"name": "Validate that the initial price adjustment effective from date matches the contract start date.",
"description": "Validates that the initial price adjustment effective from date matches the contract valid from date.",
"possible_errors": [
"initial_rate_event_effective_from_mismatch"
]
},
{
"name": "Validate that selected_offerings and product_offerings fields are mutually exclusive",
"description": "Validates that selected_offerings and product_offerings fields are mutually exclusive.",
"possible_errors": [
"mutually_exclusive_selected_offerings_provided"
]
}
]Old
[
{
"name": "Validate that contract versions include a version for the current terms",
"description": "Validate that the earliest version in the list of contract versions provided has an <code>applicable_at_date</code> that is equal to the contract <code>valid_from_date</code>.",
"possible_errors": [
"contract_versions_does_not_include_current"
]
},
{
"name": "Validate that the initial price adjustment effective from date matches the contract start date.",
"description": "Validates that the initial price adjustment effective from date matches the contract valid from date.",
"possible_errors": [
"initial_rate_event_effective_from_mismatch"
]
}
]
No attributes to display