# Cria uma nova promoção Cria uma nova promoção. Endpoint: POST /api/v3/promotions Version: 3.0.0 Security: OAuth2 ## Header parameters: - `CPlug-Company-Id` (number, required) Id da Empresa (Company). Você pode localizar os IDs das empresas no _endpoint_ de listagem de empresas. Example: 12 - `Idempotency-Key` (string, required) UUID aleatório gerado por você. Nós utilizamos esse header para evitar duplicidade de registros, ou seja, caso você não tenha recebido a resposta de alguma requisição e mandar o mesmo UUID, nós não duplicaremos o registro. ## Request fields (application/json): - `type` (string, required) Tipo da promoção. Enum: "TAKE_MORE_PAY_LESS", "DISCOUNT_COUPON", "ABOVE_VALUE_GET_DISCOUNT", "ABOVE_AMOUNT_GET_DISCOUNT", "ABOVE_VALUE_GET_PRODUCT", "ABOVE_AMOUNT_GET_PRODUCT" - `name` (string, required) Nome da promoção. Example: "Promoção de Natal" - `description` (string) Descrição da promoção. Example: "Promoção de 10% de desconto" - `start_date` (string, required) Data de início da promoção, deve ser maior ou igual ao end_date. Formato "YYYY-MM-DD". Example: "2021-01-01" - `end_date` (string, required) Data de término da promoção, deve ser maior ou igual ao start_date. Formato "YYYY-MM-DD". Example: "2021-02-01" - `is_cumulative` (boolean) Permite que outras promoções sejam ativadas na mesma venda. Example: true - `company_ids` (array) IDs das empresas participantes da promoção. Quando não informado, a empresa que está realizando a requisição será considerada. Example: [1,2,3] - `restriction_type` (string) Tipo de restrição. Define qual será a restrição para a ativação da promoção. Enum: "WEEK_DAYS", "BIRTHDAY" - `allowed_week_days` (array) Dias da semana permitidos para a ativação da promoção. Atenção O campo deve ser informado apenas quando o restriction_type for WEEK_DAYS. Enum: "monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday" - `activation_birthday_daily_limit` (integer) Limite de ativações diárias durante o mês do aniversário do cliente. Atenção O campo deve ser informado apenas quando o restriction_type for BIRTHDAY. Example: 1 - `activation_birthday_monthly_limit` (integer) Limite de ativações mensais durante o mês do aniversário do cliente. Atenção O campo deve ser informado apenas quando o restriction_type for BIRTHDAY. Example: 1 - `customer_activation_rule_type` (string) Define quais serão as regras para a ativação com cliente. IDENTIFIED_CUSTOMER A promoção será ativa somente com um cliente identificado na venda. INTEGRATION_FIDELITY A promoção será ativa somente com um cliente na venda que já tenha um cadastro no programa de fidelidade. Deve ser informado apenas caso a empresa tenha integração com o sistema de fidelidade. Enum: "IDENTIFIED_CUSTOMER", "INTEGRATION_FIDELITY" - `settings` (any) ## Response 201 fields (application/json): - `id` (integer) Identificador único da promoção. Example: 76 - `name` (string) Nome da promoção. Example: "Promoção de Natal" - `description` (string,null) Descrição da promoção. Example: "Leve 3 e pague 2" - `type` (string) Tipo da promoção. Enum: "TAKE_MORE_PAY_LESS", "DISCOUNT_COUPON", "ABOVE_VALUE_GET_DISCOUNT", "ABOVE_AMOUNT_GET_DISCOUNT", "ABOVE_VALUE_GET_PRODUCT", "ABOVE_AMOUNT_GET_PRODUCT" - `status` (string) Status da promoção. Enum: "updating_vouchers", "awaiting_voucher_processing", "creating_vouchers", "processed" - `is_active` (boolean) Indica se a promoção está ativa. Example: true - `can_edit` (boolean) Indica se a promoção pode ser editada. Quando false, nenhum dado da promoção pode ser alterado. Example: true - `start_date` (string) Data de início da promoção. Example: "2024-10-12" - `end_date` (string) Data de fim da promoção. Example: "2025-11-12" - `is_cumulative` (boolean) Indica se o desconto é cumulativo na venda. Example: true - `customer_activation_rule_type` (string,null) Define quais são as regras para a ativação com cliente. IDENTIFIED_CUSTOMER A promoção será ativa somente com um cliente identificado na venda. INTEGRATION_FIDELITY A promoção será ativa somente com um cliente na venda que já tenha um cadastro no programa de fidelidade. Enum: "IDENTIFIED_CUSTOMER", "INTEGRATION_FIDELITY" - `restriction_type` (string,null) Tipo de restrição. Indica qual é a restrição para a ativação da promoção. Enum: "WEEK_DAYS", "BIRTHDAY" - `allowed_week_days` (array,null) Dias da semana permitidos para a ativação da promoção. Enum: "monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday" - `activation_birthday_monthly_limit` (integer,null) Limite de ativações mensais durante o mês do aniversário do cliente. Example: 10 - `activation_birthday_daily_limit` (integer,null) Limite de ativações diárias durante o mês do aniversário do cliente. Example: 5 - `activation_limit` (integer,null) Limite de ativações da promoção. Example: 10 - `activation_limit_per_user` (integer,null) Limite de ativações por usuário. Example: 1 - `companies` (array) Lista de empresas participantes da promoção. - `companies.id` (integer) Identificador único da empresa Example: 1234 - `companies.name` (string) Nome fantasia da empresa. Example: "ConnectPlug" - `companies.company_name` (string,null) Razão social da empresa. Example: "ConnectPlug Desenvolvimento de Software LTDA" - `settings` (any) - `exported_at` (string,null) Data da exportação dos vouchers. Example: "2025-06-25T12:31:46.000000Z" - `created_at` (string) Data da criação. Example: "2025-06-25T12:31:46.000000Z" - `updated_at` (string) Data da última atualização. Example: "2025-06-25T12:31:46.000000Z" - `deleted_at` (string) Data da exclusão. Example: "2025-06-25T12:31:46.000000Z" ## Response 400 fields (application/json): - `code` (string, required) Código de erro. Example: "missing_headers" - `message` (string) Descrição do erro. Example: "error message" - `meta` (array) Dados adicionais sobre o erro. ## Response 422 fields (application/json): - `code` (string, required) Código de erro. Example: "uneditable_entity" - `message` (string) Descrição do erro. Example: "description error" - `meta` (array) Dados adicionais sobre o erro. - `meta.field` (string, required) Nome do campo no qual existe um erro de validação. Example: "name" - `meta.validations` (array) - `meta.validations.type` (string, required) Tipo da validação aplicada. Example: "Required" - `meta.validations.value` (array) Tipo de valor aplicável (esse campo pode ser vazio). ## Response 401 fields ## Response 404 fields