- 1. Visão geral #
- 2. Autenticação e Headers Obrigatórios #
- 3. Estrutura Geral do Payload #
- 4. credit_operation #
- 5. client #
- 5.1. address #
- 5.2. personal_data #
- 5.3. employment_data #
- 5.4. contact #
- 6. benefit #
- 7. bank_data #
- 8. contract #
- 8.1 simulation (dados da PORT) #
- 8.2 simulation (dados do REFIN) #
- 9. signature #
- 10. documents #
- 11. loan_intake_agent #
- 12. corban #
- 13. Observações Gerais #
- 14. Exemplos de requisição e retorno #
1. Visão geral # #
Esta API tem como objetivo receber os dados completos de uma proposta de portabilidade + refinanciamento, incluindo informações do produto, cliente, dados bancários, contrato, documentos e assinatura, para criação e processamento de uma proposta de empréstimo. O consumidor da API deve enviar o payload conforme especificado nesta documentação.
2. Autenticação e Headers Obrigatórios # #
A API utiliza autenticação via headers obrigatórios, que devem ser enviados em todas as requisições.
URL: https://hmlapi2.bancosemear.com.br/cass-proposal-creation-api/v1/public/proposalcreation
| Header | Exemplo | Descrição |
| client_id | d9d4657b-a235-4943-8fff-181f1eea9553 | Identificador da aplicação/cliente consumidor da API |
| access_token | 5af89110-5e6a-484a-8268-169a9d29fdf | Token de acesso para autorização |
| Content-Type | application/json | Formato do corpo da requisição. |
| Accept | application/json | Formato esperado da resposta |
3. Estrutura Geral do Payload # #
{
"credit_operation": {},
"client": {},
"benefit": {},
"bank_data": {},
"contract": {},
"signature": {},
"documents": [],
"loan_intake_agent": {},
"corban": {}
}
4. credit_operation # #
Informações do produto financeiro contratado.
| Campo | Tipo | Obrigatório | Descrição |
| id | string (UUID) | Não | Identificador único do produto |
| name | string | Não | Nome do produto |
5. client # #
Dados completos do cliente.
5.1. address # #
| Campo | Tipo | Obrigatório | Descrição |
| street | string | Sim | Logradouro |
| number | string | Sim | Número |
| complement | string | Não | Complemento |
| neighborhood | string | Sim | Bairro |
| city | string | Sim | Cidade |
| state | string | Sim | UF |
| postal_code | string | Sim | CEP |
5.2. personal_data # #
| Campo | Tipo | Obrigatório | Descrição |
| name | string | Sim | Nome completo |
| cpf | string | Sim | CPF |
| state | string | Sim | UF emissora do documento |
| expedition_date | string | Sim | Data de emissão do documento |
| marital_status | string | Sim | Estado civil |
| birth_date | string | Sim | Data de nascimento |
| is_politically_exposed_person | boolean | Sim | Indica PEP |
| birth_city | string | Sim | Cidade de nascimento |
| nationality | string | Sim | Nacionalidade |
| gender | string | Sim | Sexo |
| education_level | string | Sim | Escolaridade |
| income | number | Sim | Renda mensal |
| mother_name | string | Sim | Nome da mãe |
| fathers_name | string | Não | Nome do pai |
| position | string | Sim | Profissão |
| literate | boolean | Sim | Alfabetizado |
| spouse | string | Não | Nome do cônjuge |
| spouse_document | string | Não | Documento do cônjuge |
5.3. employment_data # #
| Campo | Tipo | Obrigatório | Descrição |
| employer_name | string | Não | Nome do empregador |
| employer_cnpj | string | Não | CNPJ do empregador |
5.4. contact # #
| Campo | Tipo | Obrigatório | Descrição |
| string | Sim | ||
| cell_phone | string | Sim | Celular |
| phone | string | Não | Telefone fixo |
6. benefit # #
Informações do benefício do cliente.
| Campo | Tipo | Obrigatório | Descrição |
| benefit_number | string | Sim | Número do benefício |
| benefit_type_code | string | Sim | Código do benefício |
| benefit_description | string | Sim | Descrição do benefício |
7. bank_data # #
Dados bancários para crédito.
| Campo | Tipo | Obrigatório | Descrição |
| account_number | string | Sim | Número da conta |
| account_type | string | Sim | Tipo da conta (checking = conta corrente | savings = conta poupança ) |
| branch_number | string | Sim | Agência |
| ispb | string | Não | ISPB do banco |
| bank_code | string | Sim | Código do banco |
| account_digit | string | Sim | Dígito da conta |
| document_number | string | Sim | Documento do titular |
| transfer_method | string | Sim | Método de transferência |
8. contract # #
Informações financeiras do contrato.
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| id | string (UUID) | Sim | Identificador do contrato |
| ccb_number | string | Sim | Número da CCB |
| insurance | number | Não | Seguro |
| paying_fund | string | Sim | Fundo pagador |
| origin_contract_code | string | Sim | Número do contrato na IF credora original |
| creditor_bank_cnpj | string | Sim | CNPJ do banco credor original |
| outstanding_balance_amount | number | Sim | Saldo devedor do cliente |
| installment_face_value | number | Sim | Valor de face das parcelas no contrato original |
| creditor_bank | string | Sim | CBC da IF credora original |
8.1 simulation (dados da PORT) # #
Informações financeiras do contrato da portabilidade
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| simulation_id_port | string (UUID) | Sim | Id da simulação da PORT gerada |
| installment_value | number | Sim | Valor da parcela |
| number_of_installments | number | Sim | Quantidade de parcelas |
| outstanding_balance_amount | number | Sim | Saldo devedor do cliente |
| monthly_interest_rate | number | Sim | Juros mensal |
| annual_interest_rate | number | Sim | Juros anual |
| monthly_cet | number | Sim | CET mensal |
| annual_cet | number | Sim | CET anual |
| first_due_date | string | Sim | Primeiro vencimento |
| last_due_date | string | Sim | Último vencimento |
| disbursement_date | string | Sim | Data de liberação |
| iof | number | Sim | IOF |
| daily_rate | number | Sim | Taxa diária |
8.2 simulation (dados do REFIN) # #
Informações financeiras do contrato de refinanciamento
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| simulation_id_refin | string (UUID) | Sim | Id da simulação de REFIN gerada |
| installment_value | number | Sim | Valor da parcela |
| number_of_installments | number | Sim | Quantidade de parcelas |
| total_amount | number | Sim | Valor total |
| amount | number | Sim | Valor liberado (troco) |
| monthly_interest_rate | number | Sim | Juros mensal |
| annual_interest_rate | number | Sim | Juros anual |
| monthly_cet | number | Sim | CET mensal |
| annual_cet | number | Sim | CET anual |
| first_due_date | string | Sim | Primeiro vencimento |
| last_due_date | string | Sim | Último vencimento |
| disbursement_date | string | Sim | Data de liberação |
| iof | number | Sim | IOF |
| daily_rate | number | Sim | Taxa diária |
9. signature # #
Informações de aceite e assinatura.
| Campo | Tipo | Obrigatório | Descrição |
| biometry_analysis_reference | string | Sim | Referência biométrica |
| ip_address | string | Sim | IP |
| score | number | Sim | Score |
| date | string | Sim | Data/hora |
| geolocation.latitude | string | Não | Latitude |
| geolocation.longitude | string | Não | Longitude |
| hash | string | Sim | Hash de validação |
10. documents # #
A lista de documentos discutida para inclusão na proposta inclui: #
– Documento de identificação oficial com foto (Frente e Verso):
- Formato do arquivo: JPG
- enumerator: rg_identificacao_frente e rg_identificacao_verso
Obs.: Apesar de o enumerator utilizar a nomenclatura RG, do ponto de vista técnico, a API aceita qualquer tipo de documento (CNH, RG etc) em formato .jpg, desde que previamente alinhado e validado com o time Semear.
– CCB (Cédula de Crédito Bancário)
- Formato do arquivo: PDF
- enumerator: ccb
– CCB Refin (Cédula de Crédito Bancário)
- Formato do arquivo: PDF
- enumerator: ccb
– Selfie do proponente
- Formato do arquivo: JPG
- enumerator: selfie_proponente
– Termo de autorização da IN100
- Formato do arquivo: PDF
- enumerator: termo_autorizacao_in100
– CET (detalhamento das taxas da proposta) — sujeito à confirmação de disponibilidade
- Formato do arquivo: PDF
- enumerator: cet
– Dossiê da formalização
- Formato do arquivo: PDF
- enumerator: dossie_formalizacao
– Termo da portabilidade
- Formato do arquivo: PDF
- enumerator: termo_portabilidade
| Campo | Tipo | Obrigatório | Descrição |
| name | string | Sim | Nome do documento |
| enumerator | string | Sim | Tipo/enumerador |
| url | string | Sim | URL do arquivo |
11. loan_intake_agent # #
| Campo | Tipo | Obrigatório | Descrição |
| name | string | Sim | Nome do operador |
| cpf | string | Sim | CPF do operador |
12. corban # #
| Campo | Tipo | Obrigatório | Descrição |
| name | string | Sim | Nome do correspondente |
| cnpj | string | Sim | CNPJ (14 dígitos e sem máscara) |
13. Observações Gerais # #
- Campos numéricos devem ser enviados exclusivamente como number (não é permitido envio como string)
- Campos do tipo string devem conter apenas texto
- Datas devem respeitar o formato ISO ou YYYY-MM-DD conforme o campo
- O bloco extra_data é obrigatório e validado integralmente
14. Exemplos de requisição e retorno # #
Requisição:
{
"credit_operation": {
"id": "11111111-1111-1111-1111-111111111111",
"name": "EMPRESTIMO_CONSIGNADO"
},
"client": {
"address": {
"street": "Rua Exemplo",
"number": "100",
"complement": "Sala 01",
"neighborhood": "Centro",
"city": "Cidade Exemplo",
"state": "SP",
"postal_code": "01001000"
},
"personal_data": {
"name": "Cliente Exemplo",
"cpf": "12345678901",
"state": "SP",
"expedition_date": "2000-01-01",
"marital_status": "CASADO",
"birth_date": "1990-01-01",
"is_politically_exposed_person": false,
"birth_city": "Cidade Exemplo",
"nationality": "BRASILEIRA",
"gender": "female",
"education_level": "bachelor",
"income": 5000.00,
"mother_name": "Nome da Mãe",
"fathers_name": "Nome do Pai",
"position": "Aposentado",
"literate": true,
"spouse": "Cônjuge Exemplo",
"spouse_document": "98765432100"
},
"employment_data": {
"employer_name": "Órgão Exemplo",
"employer_cnpj": "12345678000199"
},
"contact": {
"email": "cliente.exemplo@dominio.com",
"cell_phone": "11999999999",
"phone": "1133334444"
}
},
"benefit": {
"benefit_number": "1234567890",
"benefit_type_code": "41",
"benefit_description": "APOSENTADORIA POR IDADE"
},
"bank_data": {
"account_number": "12345678",
"account_type": "checking",
"branch_number": "0001",
"ispb": "12345678",
"bank_code": "999",
"account_digit": "0",
"document_number": "12345678901",
"transfer_method": "pix"
},
"contract": {
"id": "22222222-2222-2222-2222-222222222222",
"ccb_number": "CCB000001",
"insurance": 0,
"paying_fund": 2,
"origin_contract_code": "CONTRATO_EXEMPLO",
"creditor_bank_cnpj": "98765432000188",
"outstanding_balance_amount": 10000.00,
"installment_face_value": 350.00,
"creditor_bank": "001",
"simulation_port": {
"simulation_id_port": "33333333-3333-3333-3333-333333333333",
"outstanding_balance_amount": 10000.00,
"installment_value": 350.00,
"number_of_installments": 36,
"monthly_interest_rate": 1.7500,
"annual_interest_rate": 23.1439,
"monthly_cet": 1.7500,
"annual_cet": 23.1439,
"daily_rate": 0.0578,
"first_due_date": "2026-08-05",
"last_due_date": "2029-07-05",
"disbursement_date": "2026-07-01",
"iof": 0.00
},
"simulation_refin": {
"simulation_id_refin": "44444444-4444-4444-4444-444444444444",
"amount": 1500.00,
"total_amount": 11500.00,
"installment_value": 380.00,
"number_of_installments": 48,
"monthly_interest_rate": 1.8500,
"annual_interest_rate": 24.9800,
"monthly_cet": 2.0400,
"annual_cet": 27.8000,
"daily_rate": 0.0611,
"first_due_date": "2026-08-05",
"last_due_date": "2030-07-05",
"disbursement_date": "2026-07-01",
"iof": 280.00
}
},
"signature": {
"biometry_analysis_reference": "PROVEDOR_EXEMPLO",
"ip_address": "200.200.200.200",
"score": 80,
"date": "2026-07-01T10:00:00-03:00",
"geolocation": {
"latitude": "-15.7801",
"longitude": "-47.9292"
},
"hash": "55555555-5555-5555-5555-555555555555"
},
"documents": [
{
"name": "rg_identificacao_frente",
"enumerator": "rg_identificacao_frente",
"url": "https://exemplo.com/documentos/rg-frente.jpg"
},
{
"name": "rg_identificacao_verso",
"enumerator": "rg_identificacao_verso",
"url": "https://exemplo.com/documentos/rg-verso.jpg"
},
{
"name": "selfie_proponente",
"enumerator": "selfie_proponente",
"url": "https://exemplo.com/documentos/selfie.jpg"
},
{
"name": "termo_autorizacao_in100",
"enumerator": "termo_autorizacao_in100",
"url": "https://exemplo.com/documentos/in100.pdf"
},
{
"name": "cet",
"enumerator": "cet",
"url": "https://exemplo.com/documentos/cet.pdf"
},
{
"name": "ccb",
"enumerator": "ccb",
"url": "https://exemplo.com/documentos/ccb.pdf"
},
{
"name": "ccb_refin",
"enumerator": "ccb_refin",
"url": "https://exemplo.com/documentos/ccb-refin.pdf"
},
{
"name": "dossie_formalizacao",
"enumerator": "dossie_formalizacao",
"url": "https://exemplo.com/documentos/dossie.pdf"
},
{
"name": "termo_portabilidade",
"enumerator": "termo_portabilidade",
"url": "https://exemplo.com/documentos/termo-portabilidade.pdf"
}
],
"loan_intake_agent": {
"name": "Correspondente Exemplo",
"cpf": "11122233344"
},
"corban": {
"name": "CORBAN Exemplo",
"cnpj": "11222333000144"
}
}
Sucesso:
{
"proposalNumberPORT": "2026020200010"
"proposalNumberREFIN: "2026020200011"
}
Erro (400):
[
{
"Code": 40000,
"Title": "Client.PersonalData.Cpf",
"Detail": "O CPF do cliente é obrigatório."
}
]
[
{
"Code": 40000,
"Title": "contract.id",
"Detail": "Identificador do contrato já existe na base de dados."
}
]
[
{
"Code": 40000,
"Title": "PreSimulation",
"Detail": "Divergência entre os dados enviados e a simulação persistida: [campo_divergente]: esperado=[valor_persistido] | enviado=[valor_enviado]"
}
]
[
{
"Code": 40000,
"Title": "PreSimulation",
"Detail": "Divergência entre os dados enviados e a simulação persistida: simulation_date fora do limite de dias úteis: YYYY-mm-dd;"
}
]
[
{
"Code": 40000,
"Title": "corban.cnpj",
"Detail": "Cadastro de corban não localizado para CNPJ informado"
}
]