# Creates a new coupon record that does not already exist. This method will auto-generate an ID and create a new coupon. If an ID is specified for the coupon, an error will be thrown. Endpoint: POST /coupons/{tenantId} Version: v1-2025-04-18 Security: knox-authorizer ## Path parameters: - `tenantId` (string, required) The id of the tenant being accessed. ## Request fields (application/json): - `add_on_products_discount_info` (object, required) - `add_on_products_discount_info.add_on_product_ids` (array) The add on product IDs - `add_on_products_discount_info.add_on_type_ids` (array) The add on types - `add_on_products_discount_info.amount` (number, required) - `add_on_products_discount_info.method` (string) Enum: "amount", "percentage" - `apply_to_add_on_products` (boolean) This coupon should be applied to registration add on products - `apply_to_exhibitor_add_on_products` (boolean) This coupon should be applied to exhibitor add on products - `apply_to_exhibitor_booth_fees` (boolean) This coupon should be applied to membership add on products - `apply_to_function_fees` (boolean) If checked, this coupon applies to functions - `apply_to_registration_packages` (boolean) If checked, this coupon applies to registration packages - `apply_to_session_fees` (boolean) If checked, this coupon applies to session fees - `code_generation_html` (string) Code generation HTML - `custom_field_values` (array) - `custom_field_values.boolean_value` (boolean) The boolean value - `custom_field_values.custom_field_id` (string) The unique identifier of the custom field - `custom_field_values.file_url_value` (string) The pointer to a file value - `custom_field_values.list_value` (array) The list value - `custom_field_values.numeric_value` (number) The numeric value - `custom_field_values.string_value` (string) The string value of the custom field - `custom_field_values.table_value` (array) A list of objects (a table) - `discount_method` (string, required) Enum: "discount line item", "inline discount" - `discount_product_id` (string, required) - `event_id` (string) The ID of the event to which this coupon is tied - `event_ids` (array) For global coupons, the events this applies to - `event_type_ids` (array) For global coupons, the type of events this applies to - `exhibitor_add_on_products_discount_info` (object, required) - `exhibitor_add_on_products_discount_info.add_on_product_ids` (array) The add on product IDs to which this discount applies - `exhibitor_booth_fee_discount_info` (object, required) - `exhibitor_booth_fee_discount_info.booth_fee_ids` (array) The booth fees to which this discount applies - `exhibitor_booth_fee_discount_info.booth_type_ids` (array) The booth types to which this discount applies - `function_discount_info` (object, required) - `function_discount_info.function_ids` (array) The function IDs - `function_discount_info.function_type_ids` (array) The function types - `id` (string, required) The unique, string identifier of this coupon - `is_active` (boolean) Whether or not this coupon is active - `maximum_discount` (number) The optional maximum discount that this coupon can yield, irrespective of its configuration - `name` (string, required) The name of the coupon - `registration_package_discount_info` (object, required) - `registration_package_discount_info.registration_package_ids` (array) The registration packages - `registration_package_discount_info.registration_type_ids` (array) The registration types - `session_discount_info` (object, required) - `session_discount_info.session_ids` (array) The session ids - `session_discount_info.session_type_ids` (array) The session type ids - `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): - `add_on_products_discount_info` (object, required) - `add_on_products_discount_info.add_on_product_ids` (array) The add on product IDs - `add_on_products_discount_info.add_on_type_ids` (array) The add on types - `add_on_products_discount_info.amount` (number, required) - `add_on_products_discount_info.method` (string) Enum: "amount", "percentage" - `apply_to_add_on_products` (boolean) This coupon should be applied to registration add on products - `apply_to_exhibitor_add_on_products` (boolean) This coupon should be applied to exhibitor add on products - `apply_to_exhibitor_booth_fees` (boolean) This coupon should be applied to membership add on products - `apply_to_function_fees` (boolean) If checked, this coupon applies to functions - `apply_to_registration_packages` (boolean) If checked, this coupon applies to registration packages - `apply_to_session_fees` (boolean) If checked, this coupon applies to session fees - `code_generation_html` (string) Code generation HTML - `custom_field_values` (array) - `custom_field_values.boolean_value` (boolean) The boolean value - `custom_field_values.custom_field_id` (string) The unique identifier of the custom field - `custom_field_values.file_url_value` (string) The pointer to a file value - `custom_field_values.list_value` (array) The list value - `custom_field_values.numeric_value` (number) The numeric value - `custom_field_values.string_value` (string) The string value of the custom field - `custom_field_values.table_value` (array) A list of objects (a table) - `discount_method` (string, required) Enum: "discount line item", "inline discount" - `discount_product_id` (string, required) - `event_id` (string) The ID of the event to which this coupon is tied - `event_ids` (array) For global coupons, the events this applies to - `event_type_ids` (array) For global coupons, the type of events this applies to - `exhibitor_add_on_products_discount_info` (object, required) - `exhibitor_add_on_products_discount_info.add_on_product_ids` (array) The add on product IDs to which this discount applies - `exhibitor_booth_fee_discount_info` (object, required) - `exhibitor_booth_fee_discount_info.booth_fee_ids` (array) The booth fees to which this discount applies - `exhibitor_booth_fee_discount_info.booth_type_ids` (array) The booth types to which this discount applies - `function_discount_info` (object, required) - `function_discount_info.function_ids` (array) The function IDs - `function_discount_info.function_type_ids` (array) The function types - `id` (string, required) The unique, string identifier of this coupon - `is_active` (boolean) Whether or not this coupon is active - `maximum_discount` (number) The optional maximum discount that this coupon can yield, irrespective of its configuration - `name` (string, required) The name of the coupon - `registration_package_discount_info` (object, required) - `registration_package_discount_info.registration_package_ids` (array) The registration packages - `registration_package_discount_info.registration_type_ids` (array) The registration types - `session_discount_info` (object, required) - `session_discount_info.session_ids` (array) The session ids - `session_discount_info.session_type_ids` (array) The session type ids - `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