O Empréstimo Pessoal é uma solução financeira acessível e flexível, destinada ao público final, pessoa física, sem a necessidade de justificativa para uso do crédito.
Este estudo de caso explora as diversas formas de empréstimo pessoal, ilustrando como cada modalidade pode ser utilizada para atender diferentes perfis e necessidades financeiras.
Abaixo segue o passo a passo para utilização do caso de uso:
Para implementar esse serviço é necessário configurar a autenticação do serviço CaaS. Para mais informações, acesse o documento Instruções de Autenticação.
Para implementar o Empréstimo Pessoal, utilize as APIs de Simulação, Onboarding, Contratação, Coleta de Assinaturas e Liberação de Proposta.
Através desse endpoint o parceiro pode simular os valores da proposta.
O sistema traz o cálculo do prazo requerido e detalhes de valores de todas as parcelas, considerando o cálculo de acordo com as taxas aplicadas nessa modalidade e conforme a parametrização já cadastrada no sistema.
curl --location 'https://api.bmpdigital.moneyp.dev.br/Proposta/CalcularGridParcelasSimplificadoPrice' \--header 'accept: text/plain' \--header 'IdempotencyKey: <GUID ÚNICO 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).
Por meio deste endpoint o parceiro pode simular os valores da proposta, antes que a mesma seja gerada no sistema, trazendo as possibilidades exatas de cada prazo.
curl --location 'https://api.bmpdigital.moneyp.dev.br/Proposta/CalcularGridParcelasSimplificado' \--header 'accept: text/plain' \--header 'IdempotencyKey: <GUID ÚNICO 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).
Por meio deste endpoint o parceiro realiza o cadastro e atualização de um registro de pessoa física ou jurídica, para a qual será efetuado o pagamento.
As informações registradas podem ser: dados gerais, de contatos e financeiros.
Este procedimento deve ser executado antes de qualquer outro endpoint relacionado com a API de Pessoa.
curl --location 'https://api.bmpdigital.moneyp.dev.br/Pessoa/Salvar' \--header 'IdempotencyKey: <GUID ÚNICO 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 } }}'
Ao utilizar esse endpoint, informe o CPF ou o CNPJ no campo DocumentoFederal. Ao informar CPF, será considerado apenas o objeto PF. Ao informar CNPJ, será considerado apenas o objeto PJ
2
Cadastro do Endereço
Por meio deste endpoint o parceiro pode criar ou atualizar registros de endereços de um cliente específico, utilizando um CPF ou CNPJ já cadastrado.
Para que ocorra uma atualização, é necessário que o campo codigo seja preenchido com o número do registro na base da BMP.
Se o campo codigo não for preenchido, a busca será feita pelo campo cep.
curl --location 'https://api.bmpdigital.moneyp.dev.br/Pessoa/SalvarEndereco' \--header 'Authorization: Bearer qXdZot13a6EbJkAbjpZ5ep_eTKH2F5ZHOwZrYZVN1lw' \--header 'IdempotencyKey: <GUID ÚNICO 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", // Código de Endereçamento Postal (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 }}'
curl --location 'https://api.bmpdigital.moneyp.dev.br/Proposta/IncluirManualSimplificado' \--header 'Authorization: Bearer qXdZot13a6EbJkAbjpZ5ep_eTKH2F5ZHOwZrYZVN1lw' \--header 'IdempotencyKey: <GUID ÚNICO 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 }, },}'
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 }]
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:
curl --location 'https://api.bmpdigital.moneyp.dev.br/Proposta/IncluirAssinaturaCCB' \--header 'accept: text/plain' \--header 'Authorization: Bearer qXdZot13a6EbJkAbjpZ5ep_eTKH2F5ZHOwZrYZVN1lw' \--header 'IdempotencyKey: <GUID ÚNICO 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 da CCB
Nesta etapa, é necessário realizar a consulta da Cédula de Crédito Bancário (CCB) através da integração com nossa URL de Impressão.
Utilize o endpoint documentado acima para realizar a validação do modelo, antes da assinatura.
curl --location 'https://api.bmpdigital.moneyp.dev.br/Proposta/IncluirAssinaturaCCBFinalizada' \--header 'IdempotencyKey: <GUID ÚNICO 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.
Utilize este endpoint para finalizar a proposta após a conclusão do procedimento de assinatura.
curl --location 'https://api.bmpdigital.moneyp.dev.br/Proposta/Finalizar' \--header 'IdempotencyKey: <GUID ÚNICO PARA CADA CHAMADA>' \--header 'Content-Type: application/json' \--header 'Authorization: Bearer g3Lmb6cowHidKJwwu8J-5xAVAViSysAZAajzeeeTXq4' \--data '{ "dto": { "codigoProposta": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Número sequencial da proposta "codigoOperacao": "string" // string(50) Código da Operação }, "parametros": [ { "Nome": "FINALIZACAO_VALIDARPARCELAS", "Valor": "FALSE" }, { "Nome": "IP_ADDRESS", "Valor": "00.000.000.00" } ]}'
4
Impressão de CCB Assinada
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 pós assinatura.
Substitua <GUIDPROPOSTA> e <CODPARAMETRO> pelos valores apropriados da sua requisição.
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.
Substitua <GUIDPROPOSTA> e <CODPARAMETRO> pelos valores apropriados da sua requisição.
2
Envio para Certificadora
Nesta etapa será necessário enviar o modelo da CCB para a certificadora, para que seja realizada a assinatura.
3
Assinatura Certificadora
Utilize este endpoint para executar a assinatura da proposta via autoridade Certificadora.
Exemplos de autoridades certificadoras:
Docusign;
QCertififica;
Clicksign;
Finanblue.
O processo de assinatura inicia quando o parceiro faz o download da CCB sem a marca d’agua MODELO, que se encontra no nosso portal, em seguida efetua a assinatura por meio de uma certificadora e depois anexa o CCB na proposta novamente.
curl --location 'https://api.bmpdigital.moneyp.dev.br/Proposta/IncluirDocumento' \--header 'IdempotencyKey: <GUID ÚNICO 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
Utilize este endpoint para finalizar a proposta após a conclusãoi do procedimento de assinatura.
curl --location 'https://api.bmpdigital.moneyp.dev.br/Proposta/Liberar' \--header 'IdempotencyKey: <GUID ÚNICO 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": [{ }]}'