# Creates a new billing template record that does not already exist. This method will auto-generate an ID and create a new billing template. If an ID is specified for the billing template, an error will be thrown. Endpoint: POST /billingTemplates/{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): - `advance_phases` (boolean) When true, training providers should be sent invoices for training registrations - `description` (string) A description of the template - `fundraising_notice_options` (object, required) - `fundraising_notice_options.expiration_date_range_end` (object, required) The date to use to filter out which memberships are candidate - `fundraising_notice_options.expiration_date_range_end.number` (number) The unit of time - `fundraising_notice_options.expiration_date_range_end.position` (string, required) How the unit relates to the reference date Enum: "after", "before", "on" - `fundraising_notice_options.expiration_date_range_end.relative_to` (string, required) Enum: "the beginning of the month", "the beginning of the quarter", "the beginning of the week", "the beginning of the year", "the end of the month", "the end of the quarter", "the end of the week", "the end of the year", "the reference date" - `fundraising_notice_options.expiration_date_range_end.unit_of_time` (string) Enum: "days", "months", "weeks", "years" - `fundraising_notice_options.expiration_date_range_start` (object, required) The date to use to filter out which memberships are candidate - `fundraising_notice_options.notice_id` (string) The notice to send the school - `fundraising_notice_options.phase_ids` (array, required) - `fundraising_notice_options.phase_restriction` (string) Determines if/how to restrict the programs in this run Enum: "exclude", "include", "none" - `fundraising_notice_options.program_ids` (array, required) - `fundraising_notice_options.program_restriction` (string) Determines if/how to restrict the programs in this run Enum: "exclude", "include", "none" - `fundraising_notice_options.school_ids` (array, required) - `fundraising_notice_options.school_restriction` (string) Determines if/how to restrict the programs in this run Enum: "exclude", "include", "none" - `id` (string, required) The unique, string identifier of this billing template - `is_active` (boolean) Whether or not this billing template is active - `name` (string, required) The name of the billing template - `notification_email` (string) Te address to send notifications - `phase_advancement_options` (object, required) - `phase_advancement_options.notice_id` (string) The notice to send the school when advancing - `send_fundraising_notices` (boolean) If set, this billing run will perform phase advancements - `send_team_notices` (boolean) If set, this billing run will perform phase advancements - `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_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 - `team_notice_options` (object, required) - `team_notice_options.team_notice_id` (string) The notice to send the school - `team_notice_options.visit_start_date_range_end` (object, required) The date to use to filter out which visits to use - `team_notice_options.visit_start_date_range_start` (object, required) The date to use to filter out which visits to use - `team_notice_options.visit_type_ids` (array, required) - `team_notice_options.visit_type_restriction` (string) Determines if/how to restrict the visit_types in this run Enum: "exclude", "include", "none" ## Response 200 fields (application/json): - `advance_phases` (boolean) When true, training providers should be sent invoices for training registrations - `description` (string) A description of the template - `fundraising_notice_options` (object, required) - `fundraising_notice_options.expiration_date_range_end` (object, required) The date to use to filter out which memberships are candidate - `fundraising_notice_options.expiration_date_range_end.number` (number) The unit of time - `fundraising_notice_options.expiration_date_range_end.position` (string, required) How the unit relates to the reference date Enum: "after", "before", "on" - `fundraising_notice_options.expiration_date_range_end.relative_to` (string, required) Enum: "the beginning of the month", "the beginning of the quarter", "the beginning of the week", "the beginning of the year", "the end of the month", "the end of the quarter", "the end of the week", "the end of the year", "the reference date" - `fundraising_notice_options.expiration_date_range_end.unit_of_time` (string) Enum: "days", "months", "weeks", "years" - `fundraising_notice_options.expiration_date_range_start` (object, required) The date to use to filter out which memberships are candidate - `fundraising_notice_options.notice_id` (string) The notice to send the school - `fundraising_notice_options.phase_ids` (array, required) - `fundraising_notice_options.phase_restriction` (string) Determines if/how to restrict the programs in this run Enum: "exclude", "include", "none" - `fundraising_notice_options.program_ids` (array, required) - `fundraising_notice_options.program_restriction` (string) Determines if/how to restrict the programs in this run Enum: "exclude", "include", "none" - `fundraising_notice_options.school_ids` (array, required) - `fundraising_notice_options.school_restriction` (string) Determines if/how to restrict the programs in this run Enum: "exclude", "include", "none" - `id` (string, required) The unique, string identifier of this billing template - `is_active` (boolean) Whether or not this billing template is active - `name` (string, required) The name of the billing template - `notification_email` (string) Te address to send notifications - `phase_advancement_options` (object, required) - `phase_advancement_options.notice_id` (string) The notice to send the school when advancing - `send_fundraising_notices` (boolean) If set, this billing run will perform phase advancements - `send_team_notices` (boolean) If set, this billing run will perform phase advancements - `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_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 - `team_notice_options` (object, required) - `team_notice_options.team_notice_id` (string) The notice to send the school - `team_notice_options.visit_start_date_range_end` (object, required) The date to use to filter out which visits to use - `team_notice_options.visit_start_date_range_start` (object, required) The date to use to filter out which visits to use - `team_notice_options.visit_type_ids` (array, required) - `team_notice_options.visit_type_restriction` (string) Determines if/how to restrict the visit_types in this run Enum: "exclude", "include", "none" ## Response 400 fields ## Response 401 fields ## Response 403 fields ## Response 404 fields ## Response 409 fields ## Response 429 fields ## Response 500 fields