# Updates a expiration rule set with the specified ID. This method will update an existing expiration rule set with the specified ID. Endpoint: PUT /expirationRuleSets/{tenantId}/{id} Version: v1-2025-04-18 Security: knox-authorizer ## Path parameters: - `tenantId` (string, required) The id of the tenant being accessed. - `id` (string, required) The ID of the expiration rule set to update. ## Request fields (application/json): - `default_expiration_options` (object, required) The default expiration logic when no rules have been met - `default_expiration_options.allow_reinstatement` (boolean) Whether or not reinstatement is allowed - `default_expiration_options.anniversary_expiration_options` (object) - `default_expiration_options.anniversary_expiration_options.allow_mid_month_expirations` (boolean) If true, a members' subscription will expire on the same day it was purchased, and can expire mid month. Usually sell_for_next_month_after is set to null when this option is used. - `default_expiration_options.anniversary_expiration_options.enable_fixed_expiration_dates` (boolean) If set, anniversary dates will be limited to specific dates based on the original join date - `default_expiration_options.anniversary_expiration_options.fixed_expiration_dates` (array) - `default_expiration_options.anniversary_expiration_options.sell_for_next_month_after` (number) Day of the month after which, subscription starts on the next month. If null, subscription always starts in the current month - `default_expiration_options.anniversary_expiration_options.term_length` (number) Length of subscription - `default_expiration_options.anniversary_expiration_options.term_type` (string) Enum: "days", "months", "quarters", "weeks", "years" - `default_expiration_options.calendar_expiration_options` (object) - `default_expiration_options.calendar_expiration_options.number_of_years` (number) The number of years - `default_expiration_options.calendar_expiration_options.sell_for_next_year_after` (string) The month/day after which, the subscription should extend until the end of the next calendar year. Leave blank to never extend until the next year - `default_expiration_options.calendar_expiration_options.start_of_calendar_year` (number, required) The month, from 1-12, that indicates the start of the calendar year - `default_expiration_options.expiration_type` (string, required) How the expiration is calculated Enum: "anniversary", "calendar", "none" - `default_expiration_options.grace_period` (number) Number of days after expiration in which this a person with this subscription. If not set, the global grace setting is used - `default_expiration_options.reinstatement_options` (object) - `default_expiration_options.reinstatement_options.give_renewal_pricing_during_reinstatement_period` (boolean) If true, a reinstated member only pays renewal pricing - `default_expiration_options.reinstatement_options.reinstatement_period` (number) Number of days after termination after which a person can be reinstated - leave blank for an indefinite time period - `id` (string, required) The unique, string identifier of this expiration rule set - `is_active` (boolean) Whether or not this expiration rule set is active - `name` (string, required) The name of the expiration rule set - `rules` (array) - `rules.expiration_options` (object) - `rules.is_enabled` (boolean) Whether or not this rule is enabled - `rules.matching_conditions` (object) The conditions upon which this expiration rule applies. If not set, then this expiration rule always applies - `rules.matching_conditions.all` (array) - `rules.matching_conditions.all.any` (object) - `rules.matching_conditions.all.fact` (string) The piece of data being examined - `rules.matching_conditions.all.operator` (string) The operator Enum: "contains", "containsString", "doesNotContain", "equal", "greaterThan", "greaterThanInclusive", "in", "isBlank", "isNotBlank", "lessThan", "lessThanInclusive", "matchesPatter", "notContainsString", "notEqual", "notIn", "regex" - `rules.matching_conditions.all.path` (string) The path of the value being tested - `rules.matching_conditions.all.value` (string) - `rules.name` (string, required) The name of the rule - `sys_bulk_load_at` (string) If this record was loaded via bulk, the timestamp when the record was processed - `sys_bulk_load_id` (string) If this record was loaded via bulk, the ID of the bulk load process - `sys_bulk_load_pk` (string) If this record was loaded via bulk, the tenant and key of the bulk load process used as a partition key - `sys_bulk_load_record_no` (number) If this record was loaded via bulk, the record number in the source file - `sys_bulk_load_source_file` (string) If this record was loaded via bulk, the source file - `sys_calculated_field_error` (string) The error associated with the calculated field - `sys_calculated_field_errors` (array) - `sys_calculated_field_errors.error` (string) - `sys_calculated_field_errors.field` (string) - `sys_configuration_snapshot_id` (string) If a snapshot was restored/applies to this record, the ID of the snapshot - `sys_created_at` (string, required) The date/time that this record was created, expressed in ISO-8601 date format - `sys_created_by_id` (string, required) The ID of the user that created this record - `sys_deleted_by_id` (string) The ID of the user that deleted (or last tried to delete) this object - `sys_directive` (string) Means for passing directive information into an object processing logic - `sys_external_id` (string) The ID that a record has from an external system or data import - `sys_has_files_in_s3` (boolean) If true, this record has files in S3. If false, it doesnt, so no need to hit S3 upon deletion - `sys_last_bulk_data_operation_id` (string) If this record was last touched by a bulk data operation, the ID of that operation - `sys_last_bulk_data_operation_sys_version` (string) If this record was last touched by a bulk data operation, the sys_version at the time of that operation - `sys_last_modified_at` (string, required) The date/time that this record record was last modified, expressed in ISO-8601 date format - `sys_last_modified_by_id` (string, required) The ID of the user that last modified this record - `sys_last_security_context` (object) The security context of the last insert, modify, or delete performed on this item - `sys_locked` (boolean) If set, this record is locked and cannot be changed via the API - `sys_snapshot_base_version` (number) The version to use as a base when creating a configuration snapshot; if not set, 1 is used. Helpful when creating a sandbox - `sys_version` (number) A number representing the version of this record in the database ## Response 200 fields (application/json): - `default_expiration_options` (object, required) The default expiration logic when no rules have been met - `default_expiration_options.allow_reinstatement` (boolean) Whether or not reinstatement is allowed - `default_expiration_options.anniversary_expiration_options` (object) - `default_expiration_options.anniversary_expiration_options.allow_mid_month_expirations` (boolean) If true, a members' subscription will expire on the same day it was purchased, and can expire mid month. Usually sell_for_next_month_after is set to null when this option is used. - `default_expiration_options.anniversary_expiration_options.enable_fixed_expiration_dates` (boolean) If set, anniversary dates will be limited to specific dates based on the original join date - `default_expiration_options.anniversary_expiration_options.fixed_expiration_dates` (array) - `default_expiration_options.anniversary_expiration_options.sell_for_next_month_after` (number) Day of the month after which, subscription starts on the next month. If null, subscription always starts in the current month - `default_expiration_options.anniversary_expiration_options.term_length` (number) Length of subscription - `default_expiration_options.anniversary_expiration_options.term_type` (string) Enum: "days", "months", "quarters", "weeks", "years" - `default_expiration_options.calendar_expiration_options` (object) - `default_expiration_options.calendar_expiration_options.number_of_years` (number) The number of years - `default_expiration_options.calendar_expiration_options.sell_for_next_year_after` (string) The month/day after which, the subscription should extend until the end of the next calendar year. Leave blank to never extend until the next year - `default_expiration_options.calendar_expiration_options.start_of_calendar_year` (number, required) The month, from 1-12, that indicates the start of the calendar year - `default_expiration_options.expiration_type` (string, required) How the expiration is calculated Enum: "anniversary", "calendar", "none" - `default_expiration_options.grace_period` (number) Number of days after expiration in which this a person with this subscription. If not set, the global grace setting is used - `default_expiration_options.reinstatement_options` (object) - `default_expiration_options.reinstatement_options.give_renewal_pricing_during_reinstatement_period` (boolean) If true, a reinstated member only pays renewal pricing - `default_expiration_options.reinstatement_options.reinstatement_period` (number) Number of days after termination after which a person can be reinstated - leave blank for an indefinite time period - `id` (string, required) The unique, string identifier of this expiration rule set - `is_active` (boolean) Whether or not this expiration rule set is active - `name` (string, required) The name of the expiration rule set - `rules` (array) - `rules.expiration_options` (object) - `rules.is_enabled` (boolean) Whether or not this rule is enabled - `rules.matching_conditions` (object) The conditions upon which this expiration rule applies. If not set, then this expiration rule always applies - `rules.matching_conditions.all` (array) - `rules.matching_conditions.all.any` (object) - `rules.matching_conditions.all.fact` (string) The piece of data being examined - `rules.matching_conditions.all.operator` (string) The operator Enum: "contains", "containsString", "doesNotContain", "equal", "greaterThan", "greaterThanInclusive", "in", "isBlank", "isNotBlank", "lessThan", "lessThanInclusive", "matchesPatter", "notContainsString", "notEqual", "notIn", "regex" - `rules.matching_conditions.all.path` (string) The path of the value being tested - `rules.matching_conditions.all.value` (string) - `rules.name` (string, required) The name of the rule - `sys_bulk_load_at` (string) If this record was loaded via bulk, the timestamp when the record was processed - `sys_bulk_load_id` (string) If this record was loaded via bulk, the ID of the bulk load process - `sys_bulk_load_pk` (string) If this record was loaded via bulk, the tenant and key of the bulk load process used as a partition key - `sys_bulk_load_record_no` (number) If this record was loaded via bulk, the record number in the source file - `sys_bulk_load_source_file` (string) If this record was loaded via bulk, the source file - `sys_calculated_field_error` (string) The error associated with the calculated field - `sys_calculated_field_errors` (array) - `sys_calculated_field_errors.error` (string) - `sys_calculated_field_errors.field` (string) - `sys_configuration_snapshot_id` (string) If a snapshot was restored/applies to this record, the ID of the snapshot - `sys_created_at` (string, required) The date/time that this record was created, expressed in ISO-8601 date format - `sys_created_by_id` (string, required) The ID of the user that created this record - `sys_deleted_by_id` (string) The ID of the user that deleted (or last tried to delete) this object - `sys_directive` (string) Means for passing directive information into an object processing logic - `sys_external_id` (string) The ID that a record has from an external system or data import - `sys_has_files_in_s3` (boolean) If true, this record has files in S3. If false, it doesnt, so no need to hit S3 upon deletion - `sys_last_bulk_data_operation_id` (string) If this record was last touched by a bulk data operation, the ID of that operation - `sys_last_bulk_data_operation_sys_version` (string) If this record was last touched by a bulk data operation, the sys_version at the time of that operation - `sys_last_modified_at` (string, required) The date/time that this record record was last modified, expressed in ISO-8601 date format - `sys_last_modified_by_id` (string, required) The ID of the user that last modified this record - `sys_last_security_context` (object) The security context of the last insert, modify, or delete performed on this item - `sys_locked` (boolean) If set, this record is locked and cannot be changed via the API - `sys_snapshot_base_version` (number) The version to use as a base when creating a configuration snapshot; if not set, 1 is used. Helpful when creating a sandbox - `sys_version` (number) A number representing the version of this record in the database ## Response 400 fields ## Response 401 fields ## Response 403 fields ## Response 404 fields ## Response 409 fields ## Response 429 fields ## Response 500 fields