# Creates a new setting record that does not already exist.

This method will auto-generate an ID and create a new setting. If an ID is specified for the setting, an error will be thrown.

Endpoint: POST /settings/{tenantId}
Version: v1-2025-04-18
Security: knox-authorizer

## Security:

  - `knox-authorizer` (unknown)
    http bearer JWT

## Path parameters:

  - `tenantId` (string, required)
    The id of the tenant being accessed.

## Request body:

  - `application/json` (unknown)
    The setting that you would like to be saved.

## Request fields (application/json):

  - `allow_customer_to_choose_installment_plan` (boolean)
    If true, the customer can choose their installment plan

  - `bank_account_id` (string, required)
    The default bank account that the store should use to receive payments

  - `bill_my_organization_options` (object)

  - `bill_my_organization_options.billing_address` (string)
    Enum: "do not show", "optional", "required"

  - `bill_my_organization_options.purchase_order_number` (string)
    Enum: "do not show", "optional", "required"

  - `bill_my_organization_options.reference_number` (string)
    The reference #

  - `bill_my_parent_organization_options` (object)

  - `bill_my_parent_organization_options.billing_address` (string)
    Enum: "do not show", "optional", "required"

  - `bill_my_parent_organization_options.purchase_order_number` (string)
    Enum: "do not show", "optional", "required"

  - `bill_my_parent_organization_options.reference_number` (string)
    The reference #

  - `business_unit_id` (string, required)
    The business unit of the store

  - `cancellation_fee_product_id` (string)
    The ID of the product used for cancellation fees

  - `checkout_donation_options` (object, required)

  - `checkout_donation_options.simple_checkout_donation_options` (object)

  - `checkout_donation_options.simple_checkout_donation_options.allow_user_to_specify_custom_amount` (boolean)
    If set, the user can specify their own custom donation

  - `checkout_donation_options.simple_checkout_donation_options.donation_ask_text` (string)
    The text shown to the user when making the donation

  - `checkout_donation_options.simple_checkout_donation_options.donation_denominations` (array)

  - `checkout_donation_options.simple_checkout_donation_options.donation_information` (string)
    Additional information about the donation

  - `checkout_donation_options.simple_checkout_donation_options.donation_product_id` (string, required)
    The misc product that should be used

  - `checkout_donation_options.simple_checkout_donation_options.override_donation_denominations` (boolean)
    If set, donation denominations are specified here and the defaults are not used

  - `checkout_donation_options.simple_checkout_donation_options.suggested_donation` (number)
    A suggested donation

  - `checkout_donation_options.type` (string)
    Enum: "simple"

  - `contact_role_permissions` (array)

  - `contact_role_permissions.apply_for_certification` (boolean)
    Whether the contact role can join as a organizational member

  - `contact_role_permissions.renew_certification` (boolean)
    Whether the contact role can renew for membership

  - `contact_role_permissions.role_id` (string)
    The contact role

  - `contact_role_permissions.training_provider_administrator` (boolean)
    This role can has administrative permissions for a linked training partner

  - `contact_role_permissions.view_applications` (boolean)
    Whether the contact role can view applications

  - `credit_card_minimum_range_end` (number)
    If set, the maximum amount for which credit cards can be taken

  - `credit_card_minimum_range_start` (number)
    If set, the minimum amount for which credit cards can be taken

  - `credit_card_mode` (string)
    Determines whether or not credit cards are accepted
    Enum: "disabled", "enabled", "range"

  - `credit_card_processing_fee_mode` (string)
    Determines how credit card processing fees should be handled
    Enum: "charge", "do not charge", "prompt user"

  - `credit_card_processing_fee_options` (object, required)

  - `credit_card_processing_fee_options.fee_percentage` (number, required)
    The fee percentage to charge for credit card processing

  - `credit_card_processing_fee_options.maximum_fee` (number)
    The maximum amount to charge. If the fee comes out to be MORE than this, than this amount will be charged

  - `credit_card_processing_fee_options.minimum_fee` (number)
    The minimum amount to charge. If the fee comes out to be less than this, than this amount will be charged

  - `credit_card_processing_fee_options.product_id` (string, required)
    The misc product to use for the credit card processing

  - `credit_card_processing_fee_options.prompt_sub_text` (string)
    Additional text that is shown to the user when asking if they want to pay for credit card processing fees. If not set a default will be used

  - `credit_card_processing_fee_options.prompt_text` (string)
    The checkbox text to show the user when asking if they want to pay for credit card processing fees. If not set a default will be used

  - `custom_application_portal_template` (string, required)

  - `default_application_360_screen_id` (string)
    The default page layout when showing an certification

  - `default_application_page_layout_id` (string)
    The default page layout when showing an certification

  - `default_certification_360_screen_id` (string)
    The default page layout when showing a certification

  - `default_certification_page_layout_id` (string)
    The default page layout when showing a certification

  - `disable_electronic_payment_vaulting` (boolean)
    If set, in the portal people are not allowed to save credit cards

  - `enable_bill_my_organization` (boolean)
    If set, the user has the option to bill their organization

  - `enable_bill_my_parent_organization` (boolean)
    If set, the user has the option to bill their organization's parent organization

  - `enable_custom_application_portal_template` (boolean)
    If set, a custom template is used to show the application information in the portal

  - `enable_donations_at_checkout` (boolean)
    If selected, users will be prompted to make a donation upon checking out

  - `enable_electronic_checks` (boolean)
    If set, electronic checks are allowed

  - `enable_multiple_certification_discounts` (boolean)
    Whether or not discounts for multiple certifications are enabled

  - `enable_pay_later` (boolean)
    If set, pay later is enabled on this checkout regardless of product settings... if not, the product settings are observed

  - `enable_payroll_deduction` (boolean)
    If set, payroll deduction is allowed

  - `enable_split_payments` (boolean)
    If set, users are allowed to split payments

  - `enable_training_provider_administration` (boolean)
    If set, training providers can administer in the portal

  - `enable_training_provider_billing` (boolean)
    If set, training provider billing is enabled in the UI

  - `installment_plan_options` (array, required)

  - `installment_plan_options.additional_cost` (number)
    The additional cost of the installment plan

  - `installment_plan_options.installment_plan_id` (string, required)
    The installment plan that this product supports

  - `installment_plan_options.is_default` (boolean)
    Whether this is the default installment plan option

  - `invoice_payment_terms_id` (string)
    The payment terms for invoices; if left blank, default is used

  - `invoice_template_id` (string)
    The template to use for invoices created during this process

  - `merchant_account_id` (string, required)
    The merchant account that the store should use to receive payments

  - `multiple_certification_discount_options` (object, required)

  - `multiple_certification_discount_options.discount_amount` (number, required)
    The amount/percentage of the discount

  - `multiple_certification_discount_options.discount_type` (string, required)
    Enum: "amount", "percentage"

  - `multiple_certification_discount_options.ineligible_program_ids` (array)
    The program IDs that should not receive a discount

  - `multiple_certification_discount_options.start_after` (number)
    The number of programs that should be charged full price BEFORE the discount kicks in

  - `notes` (string)
    Notes

  - `pay_later_options` (object)

  - `pay_later_options.billing_address` (string)
    Enum: "do not show", "optional", "required"

  - `pay_later_options.purchase_order_number` (string)
    Enum: "do not show", "optional", "required"

  - `pay_later_options.reference_number` (string)
    The reference #

  - `portal_browse_certification_programs_mode` (string)
    The way certification programs are browsed in the portal
    Enum: "list", "tiled"

  - `restocking_fee_product_id` (string)
    The ID of the product used for restocking fees

  - `special_instructions` (string)
    Instructions shown to the user

  - `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

  - `training_provider_administration_options` (object)

  - `training_provider_administration_options.access_saved_queries` (boolean)
    If set, the applicable chapter leaders are able to access saved queries

  - `training_provider_administration_options.create_contact_form_id` (string, required)
    The form used for training providers to create a contact in the portal

  - `training_provider_administration_options.edit_contact_form_id` (string, required)
    The form used for training providers to create a contact in the portal

  - `training_provider_administration_options.saved_queries` (array)

  - `training_provider_billing_options` (object, required)

  - `training_provider_billing_options.certification_fee_id` (string)
    The product used when billing training providers for a certification fee

  - `training_provider_billing_options.course_fee_id` (string)
    The product used when billing training providers for a course fee

  - `training_provider_billing_options.live_exam_fee_id` (string)
    The product used when billing training providers for a live exam fee

  - `training_provider_billing_options.reinstatement_fee_id` (string)
    The product used when billing training providers for a reinstatement fee

  - `training_provider_billing_options.remote_proctor_exam_fee_id` (string)
    The product used when billing training providers for a remote proctor fee

  - `training_provider_billing_options.renewal_fee_id` (string)
    The product used when billing training providers for a renewal fee

  - `training_provider_billing_options.retest_fee_id` (string)
    The product used when billing training providers for a retest fee

  - `use_pro_forma_invoices` (boolean)
    Whether to use pro forma invoices when user elects to pay later

## Response 200:

  - `200` (unknown)
    The setting was saved successfully.

## Response 200 fields (application/json):

  - `allow_customer_to_choose_installment_plan` (boolean)
    If true, the customer can choose their installment plan

  - `bank_account_id` (string, required)
    The default bank account that the store should use to receive payments

  - `bill_my_organization_options` (object)

  - `bill_my_organization_options.billing_address` (string)
    Enum: "do not show", "optional", "required"

  - `bill_my_organization_options.purchase_order_number` (string)
    Enum: "do not show", "optional", "required"

  - `bill_my_organization_options.reference_number` (string)
    The reference #

  - `bill_my_parent_organization_options` (object)

  - `bill_my_parent_organization_options.billing_address` (string)
    Enum: "do not show", "optional", "required"

  - `bill_my_parent_organization_options.purchase_order_number` (string)
    Enum: "do not show", "optional", "required"

  - `bill_my_parent_organization_options.reference_number` (string)
    The reference #

  - `business_unit_id` (string, required)
    The business unit of the store

  - `cancellation_fee_product_id` (string)
    The ID of the product used for cancellation fees

  - `checkout_donation_options` (object, required)

  - `checkout_donation_options.simple_checkout_donation_options` (object)

  - `checkout_donation_options.simple_checkout_donation_options.allow_user_to_specify_custom_amount` (boolean)
    If set, the user can specify their own custom donation

  - `checkout_donation_options.simple_checkout_donation_options.donation_ask_text` (string)
    The text shown to the user when making the donation

  - `checkout_donation_options.simple_checkout_donation_options.donation_denominations` (array)

  - `checkout_donation_options.simple_checkout_donation_options.donation_information` (string)
    Additional information about the donation

  - `checkout_donation_options.simple_checkout_donation_options.donation_product_id` (string, required)
    The misc product that should be used

  - `checkout_donation_options.simple_checkout_donation_options.override_donation_denominations` (boolean)
    If set, donation denominations are specified here and the defaults are not used

  - `checkout_donation_options.simple_checkout_donation_options.suggested_donation` (number)
    A suggested donation

  - `checkout_donation_options.type` (string)
    Enum: "simple"

  - `contact_role_permissions` (array)

  - `contact_role_permissions.apply_for_certification` (boolean)
    Whether the contact role can join as a organizational member

  - `contact_role_permissions.renew_certification` (boolean)
    Whether the contact role can renew for membership

  - `contact_role_permissions.role_id` (string)
    The contact role

  - `contact_role_permissions.training_provider_administrator` (boolean)
    This role can has administrative permissions for a linked training partner

  - `contact_role_permissions.view_applications` (boolean)
    Whether the contact role can view applications

  - `credit_card_minimum_range_end` (number)
    If set, the maximum amount for which credit cards can be taken

  - `credit_card_minimum_range_start` (number)
    If set, the minimum amount for which credit cards can be taken

  - `credit_card_mode` (string)
    Determines whether or not credit cards are accepted
    Enum: "disabled", "enabled", "range"

  - `credit_card_processing_fee_mode` (string)
    Determines how credit card processing fees should be handled
    Enum: "charge", "do not charge", "prompt user"

  - `credit_card_processing_fee_options` (object, required)

  - `credit_card_processing_fee_options.fee_percentage` (number, required)
    The fee percentage to charge for credit card processing

  - `credit_card_processing_fee_options.maximum_fee` (number)
    The maximum amount to charge. If the fee comes out to be MORE than this, than this amount will be charged

  - `credit_card_processing_fee_options.minimum_fee` (number)
    The minimum amount to charge. If the fee comes out to be less than this, than this amount will be charged

  - `credit_card_processing_fee_options.product_id` (string, required)
    The misc product to use for the credit card processing

  - `credit_card_processing_fee_options.prompt_sub_text` (string)
    Additional text that is shown to the user when asking if they want to pay for credit card processing fees. If not set a default will be used

  - `credit_card_processing_fee_options.prompt_text` (string)
    The checkbox text to show the user when asking if they want to pay for credit card processing fees. If not set a default will be used

  - `custom_application_portal_template` (string, required)

  - `default_application_360_screen_id` (string)
    The default page layout when showing an certification

  - `default_application_page_layout_id` (string)
    The default page layout when showing an certification

  - `default_certification_360_screen_id` (string)
    The default page layout when showing a certification

  - `default_certification_page_layout_id` (string)
    The default page layout when showing a certification

  - `disable_electronic_payment_vaulting` (boolean)
    If set, in the portal people are not allowed to save credit cards

  - `enable_bill_my_organization` (boolean)
    If set, the user has the option to bill their organization

  - `enable_bill_my_parent_organization` (boolean)
    If set, the user has the option to bill their organization's parent organization

  - `enable_custom_application_portal_template` (boolean)
    If set, a custom template is used to show the application information in the portal

  - `enable_donations_at_checkout` (boolean)
    If selected, users will be prompted to make a donation upon checking out

  - `enable_electronic_checks` (boolean)
    If set, electronic checks are allowed

  - `enable_multiple_certification_discounts` (boolean)
    Whether or not discounts for multiple certifications are enabled

  - `enable_pay_later` (boolean)
    If set, pay later is enabled on this checkout regardless of product settings... if not, the product settings are observed

  - `enable_payroll_deduction` (boolean)
    If set, payroll deduction is allowed

  - `enable_split_payments` (boolean)
    If set, users are allowed to split payments

  - `enable_training_provider_administration` (boolean)
    If set, training providers can administer in the portal

  - `enable_training_provider_billing` (boolean)
    If set, training provider billing is enabled in the UI

  - `installment_plan_options` (array, required)

  - `installment_plan_options.additional_cost` (number)
    The additional cost of the installment plan

  - `installment_plan_options.installment_plan_id` (string, required)
    The installment plan that this product supports

  - `installment_plan_options.is_default` (boolean)
    Whether this is the default installment plan option

  - `invoice_payment_terms_id` (string)
    The payment terms for invoices; if left blank, default is used

  - `invoice_template_id` (string)
    The template to use for invoices created during this process

  - `merchant_account_id` (string, required)
    The merchant account that the store should use to receive payments

  - `multiple_certification_discount_options` (object, required)

  - `multiple_certification_discount_options.discount_amount` (number, required)
    The amount/percentage of the discount

  - `multiple_certification_discount_options.discount_type` (string, required)
    Enum: "amount", "percentage"

  - `multiple_certification_discount_options.ineligible_program_ids` (array)
    The program IDs that should not receive a discount

  - `multiple_certification_discount_options.start_after` (number)
    The number of programs that should be charged full price BEFORE the discount kicks in

  - `notes` (string)
    Notes

  - `pay_later_options` (object)

  - `pay_later_options.billing_address` (string)
    Enum: "do not show", "optional", "required"

  - `pay_later_options.purchase_order_number` (string)
    Enum: "do not show", "optional", "required"

  - `pay_later_options.reference_number` (string)
    The reference #

  - `portal_browse_certification_programs_mode` (string)
    The way certification programs are browsed in the portal
    Enum: "list", "tiled"

  - `restocking_fee_product_id` (string)
    The ID of the product used for restocking fees

  - `special_instructions` (string)
    Instructions shown to the user

  - `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

  - `training_provider_administration_options` (object)

  - `training_provider_administration_options.access_saved_queries` (boolean)
    If set, the applicable chapter leaders are able to access saved queries

  - `training_provider_administration_options.create_contact_form_id` (string, required)
    The form used for training providers to create a contact in the portal

  - `training_provider_administration_options.edit_contact_form_id` (string, required)
    The form used for training providers to create a contact in the portal

  - `training_provider_administration_options.saved_queries` (array)

  - `training_provider_billing_options` (object, required)

  - `training_provider_billing_options.certification_fee_id` (string)
    The product used when billing training providers for a certification fee

  - `training_provider_billing_options.course_fee_id` (string)
    The product used when billing training providers for a course fee

  - `training_provider_billing_options.live_exam_fee_id` (string)
    The product used when billing training providers for a live exam fee

  - `training_provider_billing_options.reinstatement_fee_id` (string)
    The product used when billing training providers for a reinstatement fee

  - `training_provider_billing_options.remote_proctor_exam_fee_id` (string)
    The product used when billing training providers for a remote proctor fee

  - `training_provider_billing_options.renewal_fee_id` (string)
    The product used when billing training providers for a renewal fee

  - `training_provider_billing_options.retest_fee_id` (string)
    The product used when billing training providers for a retest fee

  - `use_pro_forma_invoices` (boolean)
    Whether to use pro forma invoices when user elects to pay later

## Response 200 headers (application/json):

  - `Access-Control-Allow-Headers` (string)

  - `Access-Control-Allow-Methods` (string)

  - `Access-Control-Allow-Origin` (string)

## Response 400:

  - `400` (unknown)
    The setting you supplied was invalid.

## Response 400 headers:

  - `Access-Control-Allow-Headers` (string)

  - `Access-Control-Allow-Methods` (string)

  - `Access-Control-Allow-Origin` (string)

## Response 401:

  - `401` (unknown)
    Unauthorized.

## Response 401 headers:

  - `Access-Control-Allow-Headers` (string)

  - `Access-Control-Allow-Methods` (string)

  - `Access-Control-Allow-Origin` (string)

## Response 403:

  - `403` (unknown)
    Forbidden.

## Response 403 headers:

  - `Access-Control-Allow-Headers` (string)

  - `Access-Control-Allow-Methods` (string)

  - `Access-Control-Allow-Origin` (string)

## Response 404:

  - `404` (unknown)
    The resource could not be found

## Response 404 headers:

  - `Access-Control-Allow-Headers` (string)

  - `Access-Control-Allow-Methods` (string)

  - `Access-Control-Allow-Origin` (string)

## Response 409:

  - `409` (unknown)
    The setting could not be saved because it refers to/depends on a non-existent object.

## Response 409 headers:

  - `Access-Control-Allow-Headers` (string)

  - `Access-Control-Allow-Methods` (string)

  - `Access-Control-Allow-Origin` (string)

## Response 429:

  - `429` (unknown)
    Limit exceeded... unable to add setting based on tenant limits.

## Response 429 headers:

  - `Access-Control-Allow-Headers` (string)

  - `Access-Control-Allow-Methods` (string)

  - `Access-Control-Allow-Origin` (string)

## Response 500:

  - `500` (unknown)
    General server error.

## Response 500 headers:

  - `Access-Control-Allow-Headers` (string)

  - `Access-Control-Allow-Methods` (string)

  - `Access-Control-Allow-Origin` (string)

