# Criar um novo contrato

Permite criar um novo contrato, definindo as informações necessárias para configuração da recorrência, como período, produtos/serviços vinculados e demais parâmetros do contrato.

Endpoint: POST /v1/contratos
Version: v1
Security: BearerAuth

## Security:

  - `BearerAuth` (unknown)
    apiKey in header Authorization

## Request body:

  - `application/json` (unknown)
    Dados para criar o contrato

## Request fields (application/json):

  - `composicao_de_valor` (object)
    Composição dos valores da venda, incluindo frete e desconto

  - `composicao_de_valor.desconto` (object)
    Detalhes do desconto aplicado à venda

  - `composicao_de_valor.desconto.tipo` (string, required)
    Tipo de desconto (VALOR ou PORCENTAGEM)
    Enum: "PORCENTAGEM", "VALOR"

  - `composicao_de_valor.desconto.valor` (number, required)
    Valor do desconto
    Example: 5

  - `composicao_de_valor.frete` (number)
    Valor de frete
    Example: 15

  - `condicao_pagamento` (object, required)
    Condição de pagamento do contrato

  - `condicao_pagamento.dia_vencimento` (integer, required)
    Dia do mês para vencimento do pagamento (1-31)
    Example: 10

  - `condicao_pagamento.id_conta_financeira` (string)
    ID da conta financeira associada ao pagamento
    Example: 123e4567-e89b-12d3-a456-426614174000

  - `condicao_pagamento.primeira_data_vencimento` (string, required)
    Data do primeiro vencimento no formato YYYY-MM-DD
    Example: 2025-01-10

  - `condicao_pagamento.tipo_pagamento` (string, required)
    Forma de pagamento
    Enum: "BOLETO_BANCARIO", "CARTAO_CREDITO", "CARTAO_DEBITO", "CARTEIRA_DIGITAL", "CASHBACK", "CHEQUE", "CREDITO_LOJA", "CREDITO_VIRTUAL", "DEPOSITO_BANCARIO", "DINHEIRO", "OUTRO", "DEBITO_AUTOMATICO", "LINK_PAGAMENTO", "PIX_PAGAMENTO_INSTANTANEO", "COBRANCA_PIX", "PROGRAMA_FIDELIDADE", "SEM_PAGAMENTO", "TRANSFERENCIA_BANCARIA", "VALE_ALIMENTACAO", "VALE_COMBUSTIVEL", "VALE_PRESENTE", "VALE_REFEICAO"

  - `id_categoria` (string)
    ID da categoria
    Example: 123e4567-e89b-12d3-a456-426614174000

  - `id_centro_custo` (string)
    ID do centro de custo
    Example: 123e4567-e89b-12d3-a456-426614174000

  - `id_cliente` (string, required)
    ID do cliente associado ao contrato
    Example: 123e4567-e89b-12d3-a456-426614174000

  - `id_vendedor` (string)
    ID do vendedor responsável pelo contrato
    Example: 123e4567-e89b-12d3-a456-426614174000

  - `itens` (array, required)
    Lista de itens do contrato

  - `itens.descricao` (string)
    Descrição do item da venda
    Example: Produto A

  - `itens.id` (string, required)
    ID do item da venda
    Example: 123e4567-e89b-12d3-a456-426614174000

  - `itens.quantidade` (number, required)
    Quantidade do item da venda
    Example: 2

  - `itens.valor` (number, required)
    Valor do item da venda
    Example: 100.5

  - `itens.valor_custo` (number)
    Valor de custo do item da venda                        // Itens do kit, caso o item seja um kit
    Example: 80

  - `observacoes` (string)
    Observações gerais sobre o contrato
    Example: Cliente solicitou entrega rápida

  - `observacoes_pagamento` (string)
    Observações específicas para a emissão da nota fiscal
    Example: Pagamento realizado em 3 parcelas

  - `termos` (object, required)
    Termos de recorrência da venda agendada

  - `termos.data_fim` (string, required)
    Data de fim da recorrência no formato YYYY-MM-DD; não pode ser anterior à data de início
    Example: 2025-12-31

  - `termos.data_inicio` (string, required)
    Data de início da recorrência no formato YYYY-MM-DD
    Example: 2025-01-01

  - `termos.dia_emissao_venda` (integer, required)
    Dia do mês em que a venda será emitida
    Example: 5

  - `termos.intervalo_frequencia` (integer, required)
    Intervalo de frequência entre as recorrências (1-60)
    Example: 1

  - `termos.numero` (integer, required)
    Número do contrato
    Example: 12

  - `termos.tipo_expiracao` (string, required)
    Tipo de expiração da recorrência. Aceita DATA ou NUNCA
    Enum: "DATA", "NUNCA"

  - `termos.tipo_frequencia` (string, required)
    Tipo de frequência da recorrência. Aceita MENSAL ou ANUAL
    Enum: "MENSAL", "ANUAL"

## Response 201:

  - `201` (unknown)
    Created

## Response 201 fields (application/json):

  - `id` (string)
    ID do contrato
    Example: 550e8400-e29b-41d4-a716-446655440000

  - `id_legado` (integer)
    ID legado do contrato
    Example: 12345

  - `id_venda` (string)
    ID da venda gerada pelo contrato
    Example: 123e4567-e89b-12d3-a456-426614174000

## Response 400:

  - `400` (unknown)
    Bad Request

## Response 400 fields (application/json):

  - `error` (string)
    Mensagem de erro
    Example: Mensagem de erro detalhada

## Response 401:

  - `401` (unknown)
    Unauthorized

## Response 401 fields (application/json):

  - `error` (string)
    Mensagem de erro
    Example: Mensagem de erro detalhada

## Response 429:

  - `429` (unknown)
    Too Many Requests

## Response 429 fields (application/json):

  - `error` (string)
    Mensagem de erro
    Example: Mensagem de erro detalhada

## Response 500:

  - `500` (unknown)
    Internal Server Error

## Response 500 fields (application/json):

  - `error` (string)
    Mensagem de erro
    Example: Mensagem de erro detalhada

