--- title: 6.1. Criar Proposta url: https://docs.vehub.com.br/Emiss%C3%A3o%20de%20Ativos/API/Cr%C3%A9dito/6.%20Proposta/6.1.%20Criar%20Proposta/ --- # 6.1. Criar Proposta !!! warning "Especificação — em construção" Os serviços descritos nesta área ainda não estão disponíveis. ## 🔗 Endpoint | Método | URL | |--------|-----| | ![POST](https://img.shields.io/badge/POST-blue) | `/credito/esteiras/{idEsteira}/propostas` | --- ## 🧾 Descrição Cria a proposta com os dados do tomador. É o primeiro passo que **persiste** algo — até aqui, a jornada era só cotação. Ao criar, a plataforma: 1. cadastra ou atualiza o tomador (e seus sócios, se pessoa jurídica); 2. cria a proposta no status **Em digitação** (`1`); 3. monta a **lista de documentos exigidos**, conforme o tipo de pessoa e o papel de cada pessoa vinculada. ### 🔹 Path Parameter | Parâmetro | Tipo | Descrição | |-----------|------|-----------| | idEsteira | integer | Identificador da esteira, obtido em [3.1](../3.%20Referências/3.1.%20Esteiras.md) | ### 🔹 Headers Além dos headers padrão, use **`Idempotency-Key`**. Sem ele, um *timeout* de rede seguido de *retry* cria uma segunda proposta para o mesmo cliente. --- ## 📤 Requisição O corpo é um objeto `tomador`, cujo formato completo está em [4.2. Pessoa Física e Situação de Renda](../4.%20Tomador/4.2.%20Pessoa%20Física%20e%20Situação%20de%20Renda.md) e [4.3. Pessoa Jurídica e Representantes](../4.%20Tomador/4.3.%20Pessoa%20Jurídica%20e%20Representantes.md). ### 📋 Payload — pessoa física ```json { "tomador": { "tipo": 1, "nome": "João da Silva", "documento": "12345678900", "data": "1988-04-12", "rg": "123456789", "telefone": "47999998888", "email": "joao@exemplo.com", "paisNacionalidade": "Brasil", "sexo": 1, "nomeMae": "Maria da Silva", "pessoaPoliticamenteExposta": false, "estadoCivil": 2, "conjuge": { "nome": "Ana da Silva", "cpf": "98765432100" }, "escolaridade": 5, "cnh": 2, "vinculoEmpregaticio": { "situacaoRenda": 1, "empresa": { "cnpj": "12345678000199", "razaoSocial": "Empresa X LTDA" }, "dataAdmissao": "2020-03-01", "cargo": 252105, "salario": 6500.00 }, "endereco": { "cep": "89010000", "endereco": "Rua das Flores", "numero": "120", "complemento": "Apto 302", "bairro": "Centro", "cidade": "Blumenau", "uf": "SC", "tipoEndereco": 1 } } } ``` ### 📋 Payload — pessoa jurídica ```json { "tomador": { "tipo": 2, "nome": "Comércio Silva LTDA", "documento": "12345678000199", "data": "2012-05-20", "telefone": "4733334444", "email": "financeiro@silva.com.br", "nomeFantasia": "Silva Materiais", "quantidadeFilial": 2, "quantidadeFuncionario": 35, "inscricaoMunicipal": "123456", "inscricaoEstadual": "2547896321", "faturamento": [ { "data": "2026-07-01", "valor": 480000.00 } ], "cnae": [ { "codigo": "4744001", "principalAtividade": true } ], "pessoas": [ { "tipo": 1, "nome": "José Silva", "documento": "11122233344", "data": "1970-02-09", "telefone": "47988887777", "email": "jose@silva.com.br", "nomeMae": "Cida Silva", "estadoCivil": 1, "escolaridade": 5, "cnh": 2, "socio": true, "socioPercentualParticipacao": 60.00, "representanteLegal": true, "socioDesde": "2012-05-20", "endereco": { "cep": "89010000", "endereco": "Rua das Palmeiras", "numero": "45", "bairro": "Centro", "cidade": "Blumenau", "uf": "SC" } } ], "endereco": { "cep": "89010000", "endereco": "Rua do Comércio", "numero": "1000", "bairro": "Industrial", "cidade": "Blumenau", "uf": "SC" } } } ``` --- ## 🧪 Exemplo de cURL ```bash curl -X POST "https://api.vehub.com.br/credito/esteiras/12/propostas" \ -H "Authorization: Bearer {seu_token}" \ -H "GrupoEconomico: {seu_grupo_economico}" \ -H "Idempotency-Key: 8f14e45f-ea4f-4e2c-9c3e-9b1a72d0c5f1" \ -H "Content-Type: application/json" \ -d @tomador.json ``` --- ## 📥 Responses ### ✅ 201 Created ```json { "sucesso": true, "mensagem": "Proposta criada com sucesso.", "dados": { "idProposta": 1001 } } ``` Guarde o `idProposta`: ele endereça **todas** as etapas seguintes. ### ❌ 400 Bad Request ```json { "type": "https://tools.ietf.org/html/rfc9110#section-15.5.1", "status": 400, "errors": [ { "campo": "tomador.documento", "mensagem": "CPF inválido." }, { "campo": "tomador.nomeMae", "mensagem": "Campo obrigatório para pessoa física." }, { "campo": "tomador.vinculoEmpregaticio.salario", "mensagem": "Campo obrigatório quando a situação de renda é com vínculo empregatício." } ] } ``` ### ❌ 422 Unprocessable Entity Tipo de pessoa não permitido pela esteira: ```json { "type": "https://tools.ietf.org/html/rfc9110#section-15.5.21", "status": 422, "errors": [ { "campo": "tomador.tipo", "mensagem": "Esta esteira aceita somente pessoa física." } ] } ``` --- ## 🧭 Próximo passo A ordem das etapas depende da configuração da esteira. Em vez de fixá-la, consulte a proposta recém-criada e siga `proximaEtapa`: ```bash curl -X GET "https://api.vehub.com.br/credito/propostas/1001" \ -H "Authorization: Bearer {seu_token}" \ -H "GrupoEconomico: {seu_grupo_economico}" ``` Ver [6.10. Consultar, Listar e Pendências](6.10.%20Consultar,%20Listar%20e%20Pendências.md). --- ## ⚠️ Observações - **Reaproveite o cadastro.** Consulte [4.1](../4.%20Tomador/4.1.%20Consultar%20por%20Documento.md) antes de montar a ficha: se o tomador já existe, você evita pedir tudo de novo ao cliente e reaproveita documentos ainda válidos. - **A criação sobrescreve o cadastro do tomador.** Os dados enviados aqui atualizam o cadastro existente para aquele documento. Confirme com o cliente antes de enviar dados vindos de um cache antigo. - **Documentos exigidos são definidos pela plataforma**, na criação. Se você alterar depois o tipo de pessoa ou os representantes legais, a lista é recalculada. - Na **jornada simplificada** (`dadosSimplificadosAnaliseCredito = true`), você pode criar a proposta com o mínimo do tomador, simular, submeter ao motor e só completar a ficha depois da aprovação — via `PUT /credito/propostas/{idProposta}/tomador`. Ver [9.3. Roteiro - Jornada simplificada](../9.%20Roteiros/9.3.%20Roteiro%20-%20Jornada%20simplificada.md).