> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wincred.digital/llms.txt
> Use this file to discover all available pages before exploring further.

# 03 - Enviar Proposta para Aprovação

> Submeta a proposta escolhida pelo trabalhador para análise e aprovação

<Info>
  Este é um endpoint **assíncrono**. A resposta retornará imediatamente com um
  identificador para acompanhamento do status.
</Info>

Após o trabalhador escolher uma das propostas simuladas, envie a proposta selecionada para aprovação juntamente com os dados bancários para desembolso.

<Tip>
  Tenha certeza de enviar todos os dados pessoais e bancários corretamente.
</Tip>

<Warning>
  O trabalhador pode ter apenas um contrato em andamento por vez.
  Caso o trabalhador tente enviar um novo contrato sem finalizar o anterior, a requisição será rejeitada com um erro de validação.

  [Vide Cancelamento](/e-consignado/casos-de-uso/contratação-ativa/outros-fluxos/cancelar/cancelar-contrato)
</Warning>

## Endpoint

<ParamField path="POST" type="endpoint">
  `/api/v1/e-consignado/contratos`
</ParamField>

### URL Base

HML: `https://integracao.apidev.wincred.digital`

### Headers

| Header          | Tipo   | Obrigatório | Descrição                      |
| --------------- | ------ | ----------- | ------------------------------ |
| `Content-Type`  | string | Sim         | `application/json`             |
| `Authorization` | string | Sim         | `Bearer {seu_token_de_acesso}` |

***

## Requisição

### Exemplo de Requisição

```bash theme={null}
curl -X POST "https://integracao.apidev.wincred.digital/api/v1/e-consignado/contratos" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer {seu_token_de_acesso}" \
  -d '{
    "idProposta": "019a25f5-7f74-783a-98e1-940fdab81a3a",
    "pessoa": {
      "naturalidade": "São Paulo",
      "documento": {
        "numero": "123456789",
        "orgaoExpedidor": "SSP",
        "uf": "SP",
        "dataDeEmissao": "2020-01-01",
        "tipoDocumento": "RG"
      },
      "endereco": {
        "rua": "Avenida Paulista",
        "numero": "1578",
        "complemento": "Apto 142",
        "bairro": "Bela Vista",
        "cidade": "São Paulo",
        "uf": "SP",
        "cep": "045204060"
      },
      "estadoCivil": "SOLTEIRO",
      "email": "joao.silva@example.com",
      "telefone": "+5511987654321"
    },
    "contaBancaria": {
      "compe": "341",
      "agencia": "0001",
      "conta": "12345-6",
      "tipo": "CORRENTE",
      "chavePix": "joao.silva@example.com"
    }
  }'
```

<Accordion title="Exemplo com CNH">
  ```bash theme={null}
  curl -X POST "https://integracao.apidev.wincred.digital/api/v1/e-consignado/contratos" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer {seu_token_de_acesso}" \
    -d '{
      "idProposta": "019a25f5-7f74-783a-98e1-940fdab81a3a",
      "pessoa": {
        "naturalidade": "Rio de Janeiro",
        "documento": {
          "numero": "98765432109",
          "orgaoExpedidor": "DETRAN",
          "uf": "RJ",
          "dataDeEmissao": "2021-06-15",
          "tipoDocumento": "CNH"
        },
        "endereco": {
          "rua": "Rua das Flores",
          "numero": "456",
          "complemento": "Casa 2",
          "bairro": "Copacabana",
          "cidade": "Rio de Janeiro",
          "uf": "RJ",
          "cep": "22070010"
        },
        "estadoCivil": "CASADO",
        "email": "maria.santos@example.com",
        "telefone": "+5521998765432"
      },
      "contaBancaria": {
        "compe": "001",
        "agencia": "1234",
        "conta": "98765-4",
        "tipo": "CORRENTE",
        "chavePix": "+5521998765432"
      }
    }'
  ```
</Accordion>

<Accordion title="Exemplo com Conta Poupança">
  ```bash theme={null}
  curl -X POST "https://integracao.apidev.wincred.digital/api/v1/e-consignado/contratos" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer {seu_token_de_acesso}" \
    -d '{
      "idProposta": "019a25f5-7f74-783a-98e1-940fdab81a3a",
      "pessoa": {
        "naturalidade": "Belo Horizonte",
        "documento": {
          "numero": "MG1234567",
          "orgaoExpedidor": "SSP",
          "uf": "MG",
          "dataDeEmissao": "2019-03-20",
          "tipoDocumento": "RG"
        },
        "endereco": {
          "rua": "Rua dos Caetés",
          "numero": "789",
          "complemento": "",
          "bairro": "Savassi",
          "cidade": "Belo Horizonte",
          "uf": "MG",
          "cep": "30140071"
        },
        "estadoCivil": "DIVORCIADO",
        "email": "carlos.oliveira@example.com",
        "telefone": "+5531912345678"
      },
      "contaBancaria": {
        "compe": "237",
        "agencia": "5678",
        "conta": "45678-9",
        "tipo": "POUPANCA",
        "chavePix": "12345678909"
      }
    }'
  ```
</Accordion>

### Parâmetros da Requisição

<ParamField body="idProposta" type="string" required>
  Identificador único da proposta simulada que foi escolhida pelo trabalhador
</ParamField>

<ParamField body="pessoa" type="object" required>
  Dados pessoais do trabalhador

  <Expandable title="Propriedades">
    <ParamField body="naturalidade" type="string" required>
      Cidade de nascimento do trabalhador
    </ParamField>

    <ParamField body="documento" type="object" required>
      Informações do documento de identificação

      <Expandable title="Propriedades">
        <ParamField body="numero" type="string" required>
          Número do documento (sem pontuação)
        </ParamField>

        <ParamField body="orgaoExpedidor" type="string" required>
          Órgão expedidor do documento (ex: SSP, DETRAN)
        </ParamField>

        <ParamField body="uf" type="string" required>
          UF de expedição do documento (2 caracteres)

          <Tip>
            **Tamanho:** 2 caracteres
          </Tip>
        </ParamField>

        <ParamField body="dataDeEmissao" type="string" required>
          Data de emissão

          <Tip>
            Formato esperado: `YYYY-MM-DD`
          </Tip>
        </ParamField>

        <ParamField body="tipoDocumento" type="string" required>
          Tipo do documento de identificação

          <Tip>
            **Valores possíveis:** `RG`, `CNH`
          </Tip>
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField body="endereco" type="object" required>
      Endereço residencial do trabalhador

      <Expandable title="Propriedades">
        <ParamField body="rua" type="string" required>
          Nome da rua, avenida, etc
        </ParamField>

        <ParamField body="numero" type="string" required>
          Número do endereço
          <Note>OBS: Caso a propriedade não possua número, o valor deverá ser enviado como `0`.</Note>
        </ParamField>

        <ParamField body="complemento" type="string">
          Complemento do endereço (apartamento, bloco, etc)
        </ParamField>

        <ParamField body="bairro" type="string" required>
          Nome do bairro
        </ParamField>

        <ParamField body="cidade" type="string" required>
          Nome da cidade
        </ParamField>

        <ParamField body="uf" type="string" required>
          Sigla do estado (2 caracteres)

          <Tip>
            **Tamanho:** 2 caracteres
          </Tip>
        </ParamField>

        <ParamField body="cep" type="string" required>
          CEP do endereço (apenas números)

          <Tip>
            Formato esperado: `00000000`
            **Tamanho:** 8 caracteres
          </Tip>
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField body="estadoCivil" type="string" required>
      Estado civil do trabalhador

      <Tip>
        **Valores possíveis:**

        * `SOLTEIRO`
        * `CASADO`
        * `DIVORCIADO`
        * `VIUVO`
        * `SEPARADO`
        * `UNIAO_ESTAVEL`
        * `NAO_INFORMADO`
        * `SEPARADO_JUDICIALMENTE`
        * `UNIAO_ESTAVEL`
        * `OUTROS`
      </Tip>
    </ParamField>

    <ParamField body="email" type="string" required>
      Endereço de e-mail do trabalhador
    </ParamField>

    <ParamField body="telefone" type="string" required>
      Número de telefone com código do país (formato: +5511999999999)
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="contaBancaria" type="object" required>
  Dados bancários para desembolso do empréstimo

  <Note>
    É obrigatório o envio dos dados bancários completos **ou** de uma chave Pix válida.

    Não é necessário que se envie ambos os dados.
  </Note>

  <Warning>
    Caso uma chave Pix seja enviada em conjunto com os dados bancários, os **dados bancários enviados** serão substituídos pelos dados bancários vinculados à chave Pix.
  </Warning>

  <Warning>
    Caso a chave pix não esteja vincula ao CPF do trabalhador a validação dos dados bancários é negada.
  </Warning>

  <Expandable title="Propriedades">
    <ParamField body="compe" type="string" required>
      código COMPE

      <Warning>
        O COMPE deve ser um valor composto por três dígitos que identifica cada banco nas transações financeiras nacionais —
        exemplos: Banco do Brasil (001), Caixa Econômica Federal (104), Itaú (341), Bradesco (237), Santander (033).
      </Warning>
    </ParamField>

    <ParamField body="agencia" type="string" required>
      Número da agência bancária

      <Tip>
        Formato esperado: 0000

        **Tamanho**: Máximo de <strong>4 caracteres</strong>
      </Tip>

      <Warning>
        Deve conter apenas numeros e não deve incluir o dígito verificador.

        A agencia deve sempre ser enviado em um formato de 4 digitos, **onde zeros à esquerda são adicionados se necessário**.
      </Warning>
    </ParamField>

    <ParamField body="conta" type="string" required>
      Número da conta bancária com dígito verificador (formato: 12345-6)

      <Tip>
        Deve conter apenas números e o dígito verificador separado por hífen.
        **Tamanho máximo**: Máximo de <strong>17 caracteres (incluindo o dígito verificador)</strong>
      </Tip>
    </ParamField>

    <ParamField body="tipo" type="string" required>
      Tipo da conta bancária

      <Tip>
        **Valores possíveis:** `CORRENTE`, `POUPANCA`
      </Tip>
    </ParamField>

    <ParamField body="chavePix" type="string" required>
      Chave Pix para recebimento (e-mail, telefone, CPF ou chave aleatória)

      <Tip>
        Chaves Pix do tipo `telefone` e `cpf` devem ser enviadas sem formatação.

        **Telefone**: Chaves Pix do tipo telefone devem seguir o formato internacional com código do país (ex: +5511999999999).

        **CPF**: Chaves Pix do tipo CPF devem ser enviadas como números (ex: 12345678909).
      </Tip>
    </ParamField>
  </Expandable>
</ParamField>

***

## Resposta

### Resposta de Sucesso (202 Accepted)

A requisição foi aceita e está sendo processada de forma assíncrona.

```json theme={null}
{
  "idContrato": "123e4567-e89b-12d3-a456-426614174000",
  "erros": []
}
```

<Info>Caso algum erro aconteça na requisição, uma lista de erros será retornada.[**documentação de erros**](/e-consignado/casos-de-uso/contratação-ativa/erros/1-introducao)                     </Info>

### Resposta de Erro (404 Not Found)

```json theme={null}
{
    "erros": [
        {
            "codigo": "WIN_P00003",
            "msg": "Proposta não encontrada"
        }
    ]
}
```

## Respostas de erro comuns no sistema

### Resposta de Erro (4xx Bad Request)

```json theme={null}
{
    "erros": [
        {
            "codigo": "WIN_xxxx",
            "msg": "MENSGEM DE ERRO DESCRITIVA"
        }
    ]
}
```

### Resposta de Erro (422 Unprocessable Entity)

```json theme={null}
{
  "erros": [
    {
      "codigo": "WIN_XXXX",
      "msg": "Proposta não encontrada"
    }
  ]
}
```

### Resposta de Erro (401 Unauthorized)

```json theme={null}
{
  "code": 401,
  "message": ""
}
```

<Warning>
  **Esse payload é um retorno da API de autenticação e não da API do sistema.**

  Esta resposta pode indicar que o token de autenticação fornecido é inválido ou expirou. Verifique se o token está correto e se ainda é válido.
</Warning>

### Resposta de Erro (500 Unauthorized)

```json theme={null}
{
  "code": 500,
  "message": ""
}
```

## Códigos de Status

| Código | Descrição                            |
| ------ | ------------------------------------ |
| `202`  | Requisição aceita e em processamento |
| `401`  | Não autorizado - token inválido      |
| `422`  | Erro de validação dos dados          |
| `429`  | Muitas requisições, limite atingido  |
| `500`  | Erro interno do servidor             |

***

# Próximos Passos

<Steps>
  <Step title="Aguardar processamento">
    A consulta é processada de forma assíncrona. Aguarde alguns segundos antes de consultar o resultado.
  </Step>

  <Step title="Consultar resultado">
    Utilize o webhook para obter o resultado da aprovação da proposta.
  </Step>
</Steps>

<Card title="Próximo: Consultar Status" icon="arrow-right" href="../webhooks-e-eventos/03-evento-de-resultado-de-proposta">
  Consultar o status e resultado da aprovação da proposta
</Card>

***
