> ## Documentation Index
> Fetch the complete documentation index at: https://bmpdocs.moneyp.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# 34 - Registro de Veículo

Por meio deste endpoint o parceiro inclui os dados de veículo para uma proposta.
O veículo obrigatoriamente deve ter uma placa informada, demais campos são opcionais.
Os dados de veículos são validados pelos nossos analistas de crédito e servem como base para aprovar ou rejeitar a proposta. O uso será de acordo com a necessidade da integração.

**Regras e Validações:**

* A mesma placa não pode ser incluída mais de uma vez na proposta;
* Campos alfanuméricos serão truncados conforme o tamanho definido no manual;
* O campo `documentoFederalProprietario` aceita strings com 11 caracteres para CPF e 14 caracteres para CNPJ (apenas números).

## Mensagens de erro

A tabela abaixo representa as mensagens de erro que podem ser retornadas ao tentar realizar uma requisição.

<Expandable title="Mensagens de requisições com erro">
  O retorno de uma requisição com status HTTP 400 (Bad Request) pode incluir as seguintes mensagens de erro:

  <Note>No exemplo de retorno ao lado, o campo `code` representa a coluna **Código** desta tabela; o campo `context` representa a coluna **Código Detalhado**; e o campo `message` representa a coluna **Mensagem**.</Note>

  | Categoria | Operação                    | Ação                | Código | Código Detalhado | Mensagem                                          |
  | --------- | --------------------------- | ------------------- | ------ | ---------------- | ------------------------------------------------- |
  | Proposta  | IncluirPropostaDadosVeiculo | IncluirDadosVeiculo | C0112  | V0001            | Proposta não encontrada                           |
  | Proposta  | IncluirPropostaDadosVeiculo | IncluirDadosVeiculo | C0112  | V0002            | A Proposta não pertence à esta Integração         |
  | Proposta  | IncluirPropostaDadosVeiculo | IncluirDadosVeiculo | T0680  | D0001            | Proposta não encontrada                           |
  | Proposta  | IncluirPropostaDadosVeiculo | IncluirDadosVeiculo | T0680  | D0002            | Chassi já cadastrada nessa proposta               |
  | Proposta  | IncluirPropostaDadosVeiculo | IncluirDadosVeiculo | T0680  | D0003            | Codigo identificador já cadastrado nessa proposta |
</Expandable>

## Tabela de códigos auxuliares

<Expandable title="Tabelas">
  <Expandable title=" TipoVeículo">
    | ID | Descrição    |
    | -- | ------------ |
    | 1  | Particular   |
    | 2  | Comercial    |
    | 3  | Oficial      |
    | 4  | Diplomático  |
    | 5  | Especial     |
    | 6  | Colecionador |
  </Expandable>

  <Expandable title="Tabela TipoRestrição">
    | ID | Descrição                        |
    | -- | -------------------------------- |
    | 1  | Arredondamento mercantil/leasing |
    | 2  | Reserva e domínio/outros         |
    | 3  | Alienação fiduciária             |
    | 4  | Penhor                           |
  </Expandable>

  <Expandable title="Tabela TipoChassi">
    | ID | Descrição |
    | -- | --------- |
    | 1  | Remarcado |
    | 2  | Normal    |
  </Expandable>

  <Expandable title="Tabela SituaçãoGravame">
    | ID | Descrição                                     |
    | -- | --------------------------------------------- |
    | 2  | Significa que existe alguma pendência gravame |
  </Expandable>

  <Expandable title="Tabela OrigemGravame">
    | ID | Descrição |
    | -- | --------- |
    | 1  | Interno   |
    | 2  | Externo   |
    | 3  | Ambos     |
  </Expandable>

  ***
</Expandable>


## OpenAPI

````yaml post  /Proposta/IncluirDadosVeiculo
openapi: 3.0.1
info:
  title: BMPDigitalCore.ApiExterna.Proposta.API
  version: '1.0'
servers:
  - url: https://api.bmpdigital.moneyp.dev.br
security:
  - Bearer: []
paths:
  /Proposta/IncluirDadosVeiculo:
    post:
      tags:
        - Proposta
      parameters:
        - name: IdempotencyKey
          in: header
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IncluirPropostaDadosVeiculoCommand'
          text/json:
            schema:
              $ref: '#/components/schemas/IncluirPropostaDadosVeiculoCommand'
          application/*+json:
            schema:
              $ref: '#/components/schemas/IncluirPropostaDadosVeiculoCommand'
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/CreateUpdateResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/CreateUpdateResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/CreateUpdateResponse'
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ResponseBase'
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBase'
            text/json:
              schema:
                $ref: '#/components/schemas/ResponseBase'
components:
  schemas:
    IncluirPropostaDadosVeiculoCommand:
      type: object
      properties:
        dto:
          $ref: '#/components/schemas/FindPropostaDTO'
        dadosVeiculoDTO:
          $ref: '#/components/schemas/PropostaDadosVeiculoDTO'
      additionalProperties: false
    CreateUpdateResponse:
      type: object
      properties:
        msg:
          type: string
          nullable: true
        result:
          type: boolean
          writeOnly: true
        hasError:
          type: boolean
        messages:
          type: array
          items:
            $ref: '#/components/schemas/Message'
          nullable: true
        codigo:
          type: string
          format: uuid
        numero:
          type: integer
          format: int64
      additionalProperties: false
    ResponseBase:
      type: object
      properties:
        msg:
          type: string
          nullable: true
        result:
          type: boolean
          writeOnly: true
        hasError:
          type: boolean
        messages:
          type: array
          items:
            $ref: '#/components/schemas/Message'
          nullable: true
      additionalProperties: false
    FindPropostaDTO:
      type: object
      properties:
        codigoProposta:
          type: string
          description: Código identificador da proposta
          format: uuid
          nullable: true
        codigoOperacao:
          type: string
          description: Código da operação do parceiro
          nullable: true
        numeroProposta:
          type: integer
          description: Número sequencial da proposta
          format: int64
          nullable: true
      additionalProperties: false
    PropostaDadosVeiculoDTO:
      required:
        - placa
      type: object
      properties:
        placa:
          maxLength: 10
          minLength: 0
          type: string
          description: Placa do veículo
          nullable: true
        marca:
          maxLength: 30
          minLength: 0
          type: string
          description: Marca do veículo
          nullable: true
        modelo:
          maxLength: 30
          minLength: 0
          type: string
          description: Modelo do veículo
          nullable: true
        versaoModelo:
          maxLength: 50
          minLength: 0
          type: string
          description: Caracterização do assinante
          nullable: true
        anoFab:
          type: integer
          description: Ano de fabricação
          format: int32
          nullable: true
        anoMod:
          type: integer
          description: Ano do modelo
          format: int32
          nullable: true
        cor:
          maxLength: 30
          minLength: 0
          type: string
          description: Cor do veículo
          nullable: true
        chassis:
          maxLength: 50
          minLength: 0
          type: string
          description: Chassis
          nullable: true
        renavam:
          maxLength: 30
          minLength: 0
          type: string
          description: Registro Nacional de Veículos Automotores (Renavam)
          nullable: true
        proprietario:
          maxLength: 60
          minLength: 0
          type: string
          description: Nome do proprietário
          nullable: true
        documentoFederalProprietario:
          maxLength: 20
          minLength: 0
          type: string
          description: Documento do proprietário
          nullable: true
        financiado:
          type: boolean
          description: 'Indica se veículo ainda está em financiamento '
          nullable: true
        saldoFinanciamento:
          maximum: 10000000000000000
          minimum: 0
          type: number
          description: Saldo do financiamento
          format: double
          nullable: true
        tipoPlaca:
          type: integer
          description: >-
            Tipo de placa: 1-Particular, 2-Comercial, 3-Oficial, 4-Diplomático,
            5-Especial, 6-Colecionador
          format: int32
          nullable: true
        tipoVeiculo:
          type: integer
          description: >-
            Tipo de veículo: 1-Carro, 2-Moto, 3-Caminhão, 4-Van/Utilitário,
            5-SUV
          format: int32
          nullable: true
        ufPlaca:
          maxLength: 2
          minLength: 0
          type: string
          description: Unidade Federal (UF) da placa
          nullable: true
        ufLicenciamento:
          maxLength: 2
          minLength: 0
          type: string
          description: Unidade Federal (UF) do Licenciamento
          nullable: true
        tipoRestricao:
          type: integer
          description: Tipo de restrição
          format: int32
          nullable: true
        tipoChassi:
          type: integer
          description: Tipo de chassi
          format: int32
          nullable: true
        codigoFipe:
          maxLength: 30
          minLength: 0
          type: string
          description: Código da Fundação Instituto de Pesquisas Econômicas (Fipe)
          nullable: true
        situacaoGravame:
          type: integer
          description: Situação do Gravame
          format: int32
          nullable: true
        descricaoGravame:
          maxLength: 1000
          minLength: 0
          type: string
          description: Descrição do Gravame
          nullable: true
        codigoRetornoGravame:
          type: integer
          description: Código Retorno Gravame
          format: int32
          nullable: true
        dtSituacaoGravame:
          type: string
          description: Data de situação do Gravame
          format: date-time
          nullable: true
        origemGravame:
          type: integer
          description: Indica a origem do gravame do veículo (interno, externo ou ambos).
          format: int32
          nullable: true
        nroGravame:
          type: integer
          description: Gravame
          format: int32
          nullable: true
        nroRegristroGecov:
          maxLength: 50
          minLength: 0
          type: string
          description: Número registro do GECOV – Gerenciador de contratos de veículos.
          nullable: true
        vlrFipe:
          maximum: 99999999.99
          minimum: 0
          type: number
          description: Valor da Fundação Instituto de Pesquisas Econômicas - Fipe.
          format: double
          nullable: true
        vlrVeiculo:
          maximum: 99999999.99
          minimum: 0
          type: number
          description: Valor do veiculo.
          format: double
          nullable: true
        zeroKM:
          type: boolean
          description: Indica se o veículo possui zero quilômetros rodados.
          nullable: true
        km:
          maximum: 999999
          minimum: 0
          type: integer
          description: Valor da quilometragem do veículo.
          format: int32
          nullable: true
      additionalProperties: false
    Message:
      type: object
      properties:
        messageType:
          $ref: '#/components/schemas/ErrorType'
        code:
          type: string
          nullable: true
        context:
          type: string
          nullable: true
        description:
          type: string
          nullable: true
        field:
          type: string
          nullable: true
      additionalProperties: false
    ErrorType:
      enum:
        - 1
        - 2
        - 3
      type: integer
      format: int32
  securitySchemes:
    Bearer:
      type: apiKey
      description: Informe o token
      name: Authorization
      in: header

````