O financiamento de veículos é uma modalidade de crédito que permite a aquisição de automóveis de forma parcelada, oferecendo uma alternativa acessível para pessoas jurídicas (CNPJ) de obter um veículo sem a necessidade de pagamento à vista.
Esse tipo de financiamento é amplamente utilizado por consumidores que buscam flexibilidade financeira, permitindo a escolha de prazos e condições ajustáveis ao perfil do comprador.
Para minimizar os riscos de inadimplência e tornar a operação mais segura tanto para o cliente quanto para a instituição financeira, o próprio veículo financiado é utilizado como garantia da operação. Além disso, diferentes condições de crédito podem ser aplicadas, considerando fatores como histórico do cliente, valor de entrada e taxa de juros.
Este documento explora o funcionamento do financiamento de veículos, abordando suas modalidades, critérios de análise e os benefícios que essa solução oferece para parceiros BMP.
Abaixo segue o passo a passo para utilização do caso de uso:
Antes de utilizar este serviço, é necessário configurar a autenticação. Consulte as instruções de autenticação para orientações detalhadas.
Por meio deste endpoint será possível realizar a simulação através da integração com nossa API de Simulação detalhada
curl --location 'https://api.bmpdigital.moneyp.dev.br/Proposta/CalcularGridParcelasSimplificadoPrice' \ --header 'accept: text/plain' \ --header 'IdempotencyKey: GUID UNICO PARA CADA CHAMADA' \ --header 'Content-Type: application/json' \ --data '{ "dto": { "vlrSolicitado": 0, // Valor solicitado pelo seu cliente | OBRIGATÓRIO "nroDiasAcrescimo": 0, // Este campo ajusta o vencimento da 1ª parcela, somando ou subtraindo dias da data padrão (sempre no mesmo dia da simulação, no mês seguinte) "percJurosNegociado": 0, // Percentual de juros negocioado com seu cliente | OBRIGATÓRIO "tipoPessoa": 0, // Para PF informar 1 e para PJ informar 2 | OBRIGATÓRIO "vlrTAC": 0, // Caso tenha TAC, informe esse campo. Caso não tenha, pode excluir | NÃO OBRIGATÓRIO "prazo": 0, // informe a quantidade de parcelas "fluxoIrregular": false // informe false para intervalo de prazo de 30 em 30 ou true para outros intervalos}}'
O campo nroDiasAcrescimo define quantos dias serão adicionados ou subtraídos da data de vencimento padrão da primeira parcela. Por padrão, o vencimento ocorre no mesmo dia da simulação, mas no mês seguinte. Exemplo: se a simulação for em 27/05, o vencimento padrão será 27/06. Se você preencher com “20”, o vencimento será 20 dias após essa data padrão (ex: 17/07). Caso a simulação seja feita nos dias 30 ou 31 e o mês seguinte não possua essas datas, o vencimento será ajustado para o último dia do mês (por exemplo, uma simulação em 31/01 terá vencimento em 28/02).
Nesta etapa será necessário realizar a simulação através da integração com nossa API de Simulação Multiparcelamento
curl --location 'https://api.bmpdigital.moneyp.dev.br/Proposta/CalcularGridParcelasSimplificado' \--header 'accept: text/plain' \--header 'IdempotencyKey: GUID UNICO PARA CADA CHAMADA' \--header 'Content-Type: application/json' \--header 'Authorization: Bearer 2ec83da4-ddba-4b01-9c6a-5b5e718f5793' \--data ' { "dto": { "vlrSolicitado": 0, // Valor solicitado pelo seu cliente | OBRIGATÓRIO "nroDiasAcrescimo": 0, // Este campo ajusta o vencimento da 1ª parcela, somando ou subtraindo dias da data padrão (sempre no mesmo dia da simulação, no mês seguinte) "percJurosNegociado": 0, // Percentual de juros negocioado com seu cliente | OBRIGATÓRIO "tipoPessoa": 0, // Para PF informar 1 e para PJ informar 2 | OBRIGATÓRIO "vlrTAC": 0 // Caso tenha TAC, informe esse campo. Caso não tenha, pode excluir | NÃO OBRIGATÓRIO }}
O campo nroDiasAcrescimo define quantos dias serão adicionados ou subtraídos da data de vencimento padrão da primeira parcela. Por padrão, o vencimento ocorre no mesmo dia da simulação, mas no mês seguinte. Exemplo: se a simulação for em 27/05, o vencimento padrão será 27/06. Se você preencher com “20”, o vencimento será 20 dias após essa data padrão (ex: 17/07). Caso a simulação seja feita nos dias 30 ou 31 e o mês seguinte não possua essas datas, o vencimento será ajustado para o último dia do mês (por exemplo, uma simulação em 31/01 terá vencimento em 28/02).
Nesta etapa será necessário realizar o cadastro do clientes através da integração com nossa API de Cadastro de Cliente
curl --location 'https://api.bmpdigital.moneyp.dev.br/Pessoa/Salvar' \--header 'IdempotencyKey: GUID UNICO PARA CADA CHAMADA' \--header 'Authorization: Bearer qXdZot13a6EbJkAbjpZ5ep_eTKH2F5ZHOwZrYZVN1lw' \--header 'Content-Type: application/json' \--data-raw '{ "dto": { "Codigo": "1", // Código para identificar o cliente em seu sistema | NÃO OBRIGATÓRIO "Nome": "CLIENTE TESTE", // Nome do seu cliente | OBRIGATÓRIO "DocumentoFederal": "75000000000", // Documento federal (CPF: 11 dígitos | CNPJ: 14 dígitos | temos um validador, então precisa ser um documento válido) | OBRIGATÓRIO "PF": { // Se seu cliente for Pessoa Física, preencha esse objeto, se não, exclua esse objeto "rg": "string",// RG do seu cliente | OBRIGATÓRIO "rgOrgao": "string", // Orgão de emissão do RG do seu cliente | NÃO OBRIGATÓRIO "rguf": "string", // UF do RG do seu cliente | NÃO OBRIGATÓRIO "rgData": "2023-07-10T20:01:07.689Z", // data de emissão do rg | NÃO OBRIGATÓRIO "dtNasc": "2023-07-10T20:01:07.689Z", // Data de nascimento do seu cliente | OBRIGATÓRIO "sexo": "string", // Sexo do seu cliente | NÃO OBRIGATÓRIO "nacionalidade": "string", // nacionalidade do seu cliente | NÃO OBRIGATÓRIO "naturalDeCidade": "string", // Cidade natal do seu cliente | NÃO OBRIGATÓRIO "naturalDeUF": "string", // UF natal do seu cliente| NÃO OBRIGATÓRIO "estadoCivil": 0, // tipo enum, Consultar documento enviado em e-mail| NÃO OBRIGATÓRIO "escolaridade": 0 // tipo enum, Consultar documento enviado em e-mail | NÃO OBRIGATÓRIO }, "PJ": { // Se seu cliente for Pessoa Jurídica, preencha esse objeto, se não, exclua esse objeto "nomeFantasia": "string", // Nome fantasia da empresa | OBRIGATÓRIO "documentoEstadual": "string", // Informe o documento estadual da empresa || NÃO OBRIGATÓRIO "documentoMunicipal": "string", // Informe o documento Municipal da empresa || NÃO OBRIGATÓRIO "dtAberturaEmpresa": "2024-06-06T19:49:59.553Z", // Informe a data da abertura do CNPJ em timestamp || NÃO OBRIGATÓRIO "nomeResponsavelEmpresa": "string", // Informe o nome do responsável pela empresa || NÃO OBRIGATÓRIO "cpfResponsavelEmpresa": "string", // Informe o nome do cpf do responsável pela empresa || NÃO OBRIGATÓRIO "rgResponsavelEmpresa": "string" // Informe o rg responsável do responsável pela empresa || NÃO OBRIGATÓRIO }, "PessoaDadosContato": { "Email": "teste@email.com.br", // E-mail do seu cliente | OBRIGATÓRIO "TelefoneCelular1": "11923456781" // Celular do seu cliente | OBRIGATÓRIO } }}'
2
Cadastro do Endereço
Nesta etapa será necessário realizar o cadastro ou atualização do endereço através da integração com nossa API de Cadastro de Endereço
curl --location 'https://api.bmpdigital.moneyp.dev.br/Pessoa/SalvarEndereco' \--header 'Authorization: Bearer qXdZot13a6EbJkAbjpZ5ep_eTKH2F5ZHOwZrYZVN1lw' \--header 'IdempotencyKey: GUID UNICO PARA CADA CHAMADA' \--header 'Content-Type: application/json' \--data '{ "dto": { "codigo": "string", // Código para identificar o endereço em seu sistema | NÃO OBRIGATÓRIO "cep": "string", // CEP do endereço | OBRIGATÓRIO "logradouro": "string", // logradouro do endereço | NÃO OBRIGATÓRIO "nroLogradouro": "string", // nroLogradouro do endereço | NÃO OBRIGATÓRIO "bairro": "string", // bairro do endereço | NÃO OBRIGATÓRIO "complemento": "string", // complemento do endereço | NÃO OBRIGATÓRIO "cidade": "string", // cidade do endereço | NÃO OBRIGATÓRIO "uf": "string", // uf do endereço | NÃO OBRIGATÓRIO "tipoEndereco": 0, // tipoEndereco do endereço | NÃO OBRIGATÓRIO "tipoResidencia": 0, // logradouro do endereço | NÃO OBRIGATÓRIO "enderecoDesde": "2024-04-04T12:19:46.116Z", // informe desde quando o endereço pertence ao cliente| NÃO OBRIGATÓRIO "enderecoPrincipal": true, // é o endereço principal do cliente? | NÃO OBRIGATÓRIO "enderecoCorrespondencia": true // é o endereço para correspondencia? | NÃO OBRIGATÓRIO }, "param": { "documentoCliente": "string" // Documento federal (CPF: 11 dígitos | CNPJ: 14 dígitos | temos um validador, então precisa ser um documento válido) | OBRIGATÓRIO }}'
Nesta etapa será necessário realizar o envio da proposta através da integração com nossa API de Incluir Proposta
curl --location 'https://api.bmpdigital.moneyp.dev.br/Proposta/IncluirManualSimplificado' \--header 'Authorization: Bearer qXdZot13a6EbJkAbjpZ5ep_eTKH2F5ZHOwZrYZVN1lw' \--header 'IdempotencyKey: GUID UNICO PARA CADA CHAMADA' \--header 'Content-Type: application/json' \--data '{ "dto": { "documentoCliente": "string", // Documento do cliente "documentoParceiroCorrespondente": "string", // Documento do Parceiro Correspondente "codigoOperacao": "string", // Obrigatório - Uso do Integrador. É o código da operação no sistema do parceiro. Esta informação é exclusiva e poderá ser utilizada para atualizar a proposta sem necessidade de guardar o código da proposta na BMP. Porém o código de proposta BMP é importante ser armazenado para uso de impressão de boletos/CCB/Nota promissória ou Protocolo. "codigoVersaoCCB": 0, // Código da versão da Cédula de Crédito Bancária – (CCB) "vlrSolicitado": 0, // Obrigatório - Valor solicitado na proposta "prazo": 0, // Obrigatório - Prazo solicitado. Será consistido conforme a parametrizado de integração. "percJurosNegociado": 0, // Obrigatório - Percentual de juros da proposta "vlrIOF": 0, // Obrigatório - Valor Total do Imposto sobre Operações Financeiras (IOF) "percIOF": 0, // Obrigatório - Percentual do Imposto sobre Operações Financeiras (IOF) "vlrParcela": 0, // Obrigatório - Valor da Parcela "vlrTAC": 0, // Obrigatório - Valor da Tarifa de Cadastro. Pode ser R$ 0,00 quando não houver. "dtPrimeiroVencto": "2024-02-21T17:48:40.110Z", // Obrigatório - Data estimada do primeiro vencimento. "tipoContrato": "string", // string(5) - Sigla indicando o tipo de contrato da proposta. Exémplo: CSG -> Capital de Giro; CCG -> Capital de Giro com Garantia "propostaContaPagamentoDTO": { "tipoConta": 0, // Obrigatório - tipo de conta "agencia": "string", // string(10) Obrigatório - Agência bancária "agenciaDig": "string", // string(1)Obrigatório - Dígito da agência "conta": "string", // string(20) Obrigatório - Conta bancária "contaDig": "string", // string(1) Obrigatório - Dígito da conta "numeroBanco": "string" //string(5) Obrigatório - Número da conta }, },}'
O campo nroDiasAcrescimo define quantos dias serão adicionados ou subtraídos da data de vencimento padrão da primeira parcela. Por padrão, o vencimento ocorre no mesmo dia da simulação, mas no mês seguinte. Exemplo: se a simulação for em 27/05, o vencimento padrão será 27/06. Se você preencher com “20”, o vencimento será 20 dias após essa data padrão (ex: 17/07).
Para utilização de contrato com split de TED adicione o objeto abaixo na requisição anterior dentro do array dto:
"propostaLancamentos": [ { "campoID": "string", // Nome do campo responsável pelo split | OBRIGATÓRIO "vlrTransacao": 0, // Valor da transação (lembrando que deve ser menor ou igual que o valor solicitado) | OBRIGATÓRIO "tipoConta": 0, // 1 = PF, 2 = PJ | OBRIGATÓRIO "agencia": "string", // Agência bancária da conta | OBRIGATÓRIO "agenciaDig": "string", // Digíto da conta bancária do emitente | OBRIGATÓRIO "conta": "string", // Conta bancária do emitente | OBRIGATÓRIO "contaDig": "string", // Digito bancário da conta do emitente | OBRIGATÓRIO "numeroBanco": "string" // Código bancário de acordo com a tabela do BACEN | OBRIGATÓRIO } ]
Para utilização de contrato com split de BOLETO adicione o objeto abaixo na requisição anterior dentro do array dto:
"propostaLancamentos": [ { "campoID": "string", // Nome do campo responsável pelo split | OBRIGATÓRIO "vlrTransacao": 0, // Valor da transação (lembrando que deve ser menor ou igual que o valor solicitado) | OBRIGATÓRIO "dtPagamento": "2024-02-21T17:48:40.110Z", // Data prevista de pagamento da proposta. "linhaDigitavel": "string", // string(60) string contendo informações do boleto, como dados do banco, destinatário etc. "documentoFederalCedente": "string", // string(20) Documento federal do cedente "nomeCedente": "string" // string(60) Nome do cedente } ]
Nesta estapa, será realizada a consulta do veículo no Registro Nacional de Veículos em Estoque (RENAVE). Essa é uma exigência do SENATRAN para a validação de veículos novos e usados. O serviço de consulta RENAVE é realizado pela BMP e neste passo é necessário que o parceiro informe os dados do Chassi, Unidade Federativa (UF) da placa e o documento do proprietário do veículo (apenas CNPJ).
Nesta etapa o parceiro poderá encaminhar os documentos do veículo através do endpoint abaixo:
curl --location 'https://api.bmpdigital.moneyp.dev.br/Proposta/IncluirDocumento' \--header 'IdempotencyKey: GUID UNICO PARA CADA CHAMADA' \--header 'Content-Type: application/json' \--data '{ "dto": { // Apenas um dos campos abaixo deve ser informado "codigoProposta": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Colocar GUID da proposta gerado no response da inclusão da proposta "codigoOperacao": "string" // Colocar codigo da operação utilizado na inclusão da proposta }, "documento": { "codigo": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Código da proposta gerado no response da criação da proposta | OBRIGATÓRIO "tipoDocumento": 0, // Tipo de documento do seu cliente (caso queira informar, verifique a tabela de enum no email) | OBRIGATÓRIO "nomeArquivo": "string", // Nome do arquivo | OBRIGATÓRIO "extensao": "string", // Extensão do arquivo (ex: jpg, pdf, png) | OBRIGATÓRIO "dtValidade": "2023-05-23T20:57:08.922Z", // Data de validade do arquivo | OBRIGATÓRIO "arquivo": "string" // Arquivo desejado codificado em BASE64 | OBRIGATÓRIO }}'
Com a assinatura definida durante o planejamento do escopo de projeto com o executivo comercial, selecione abaixo a opção que irá utilizar para prosseguir com o caso de uso:
1
Assinatura Eletrônica
Nesta etapa será necessário realizar a assinatura eletrônica através da integração com nossa API de Assinatura Eletrônica.
curl --location 'https://api.bmpdigital.moneyp.dev.br/Proposta/IncluirAssinaturaCCB' \--header 'accept: text/plain' \--header 'Authorization: Bearer qXdZot13a6EbJkAbjpZ5ep_eTKH2F5ZHOwZrYZVN1lw' \--header 'IdempotencyKey: GUID UNICO PARA CADA CHAMADA' \--header 'Content-Type: application/json' \--data '{ "dto": { // Apenas um dos campos abaixo deve ser informado "codigoProposta": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Colocar GUID da proposta gerado no response da inclusão da proposta "codigoOperacao": "string" // Colocar codigo da operação utilizado na inclusão da proposta }, "assinantes": [ { "nome": "string", // Informe o nome do assinante | OBRIGATÓRIO "email": "string", // Informe o email do assinante | OBRIGATÓRIO "documento": "string", // Informe o documento federal do assinante | OBRIGATÓRIO "descricao": "string", // Informe o papel desse assinante na operação | OBRIGATÓRIO "telefoneCelular": "string", // Informe o telefone celular do assinante | OBRIGATÓRIO "notificarPorEmail": true, // Esse campo controle se o cliente receberá a CCB por email para a assinatura | OBRIGATÓRIO "notificarPorWhatsApp": true, // Se o cliente for receber o token de assinatura via WhatsApp, deixar esse campo como true. Se não, colocar false | NÃO OBRIGATÓRIO "notificarPorSMS": true, // Se o cliente for receber o token de assinatura via SMS, deixar esse campo como true. Se não, colocar false | NÃO OBRIGATÓRIO "codigoIdentificador": "string", // Código identificador do assinante dentro da proposta (caso queira realizar alguma alteração nesse assinante, informe esse código na outra chamada da API) | NÃO OBRIGATÓRIO "dtLimiteAssinatura": "2024-02-21T19:47:38.567Z" // Data limite para que o assnante realize a assinatura | OBRIGATÓRIO } ]}'
1
Coleta do Modelo de Assinatura
Nesta etapa será necessário realizar a consulta do CCB através da integração com nossa URL de Impressão de CCB para realizar a validação do modelo antes da assinatura.
Nesta etapa será necessário realizar a assinatura Relogon através da integração com nossa API de Assinatura Relogon.
curl --location 'https://api.bmpdigital.moneyp.dev.br/Proposta/IncluirAssinaturaCCBFinalizada' \--header 'IdempotencyKey: GUID UNICO PARA CADA CHAMADA' \--header 'Content-Type: application/json' \--data '{ "dto": { "codigoProposta": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Número sequencial da proposta "codigoOperacao": "string" // string(50) Código da Operação do Parceiro }, "assinantes": [ { "nome": "string", // string(60) Obrigatório - Nome do assinante "email": "string", // string(60) Obrigatório - E-mail do assinante "documento": "string", // string(20) Obrigatório – Número do Cadastro de Pessoa Física ( CPF) e do Cadastro Nacional de Pessoa jurídica (CNPJ) do assinante "descricao": "string", // string(100) Caracterização do assinante "notificarPorEmail": true, // Obrigatório - O assinante que for marcado para receber a notificação terá controle sobre todas as assinaturas, podendo cobrar as assinaturas pendentes. O e-mail será enviado pela BMP. "dtAssinatura": "2024-01-15T14:21:57.250Z", // Obrigatório - Data e hora da assinatura efetuada no backend do integrador "ipAssinatura": "string" // string(255) Obrigatório -Número de IP onde a assinatura foi coletada } ]}'
3
Finalização de proposta
Após o envio da requisição de assinatura Relogon, será necessário finalizar a proposta através da integração com o endpoint de Finalização de proposta.
Nesta etapa será necessário realizar a consulta do CCB através da integração com nossa URL de Impressão de CCB para realizar a validação do modelo antes da assinatura.
Nesta etapa será necessário realizar a consulta do CCB através da integração com nossa URL de Impressão de CCB para realizar a validação do modelo antes da assinatura.
Nesta etapa será necessário enviar o modelo da CCB para a certificadora, para que seja realizada a assinatura.
3
Assinatura Certificadora
Após a coleta das assinaturas, será necessário realizar o upload da CCB assinada, através da integração com nossa API de Assinatura Certificadora.
curl --location 'https://api.bmpdigital.moneyp.dev.br/Proposta/IncluirDocumento' \--header 'IdempotencyKey: GUID UNICO PARA CADA CHAMADA' \--header 'Content-Type: application/json' \--header 'Authorization: Bearer token gerado no 1º passo' \--data '{ "dto": { "codigoProposta": "3fa85f64-5717-4562-b3fc-2c963f66afa6", //Número sequencial da proposta "codigoOperacao": "string" // string(50) Código da Operação do Parceiro }, "documento": { "codigo": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Preenchido com o código do arquivo na base BMP "tipoDocumento": 30, // Obrigatório - Consultar tabela de tipo de documento "nomeArquivo": "string", // string(500) Obrigatório - Nome do arquivo "extensao": "string", // string(20) Obrigatório - Extensão do arquivo "dtValidade": "2023-05-23T20:57:08.922Z", // Data de Validade do Arquivo "arquivo": "string" // : Obrigatório - Array de bytes que contém o arquivo }}'
4
Finalização de proposta
Após o envio da requisição de assinatura Relogon, será necessário finalizar a proposta através da integração com o endpoint de Finalização de proposta.
Em casos de utilização do gravame automático, não é necessário chamar o endpoint de liberação de proposta. O processo ocorre automaticamente conforme a vinculação do gravame ao financiamento.
1
Liberação de proposta
Nesta etapa será necessário realizar a liberação da proposta através da integração com nossa URL de Liberação da proposta para pagamento para realizar a validação do modelo após a assinatura.
curl --location 'https://api.bmpdigital.moneyp.dev.br/Proposta/Liberar' \--header 'IdempotencyKey: GUID UNICO PARA CADA CHAMADA' \--header 'Content-Type: application/json' \--data '{ "dto": { // Apenas um dos campos abaixo deve ser informado "codigoProposta": "3fa85f64-5717-4562-b3fc-2c963f66afa6", //Número sequencial da proposta "codigoOperacao": "string" // string(50) Código da Operação do Parceiro }, "parametros": [ {} ]}'