Gestão de Vendas
Venda Assistida
Dados do Cliente
Dados do Seguro
Endereços dos Imóveis
Imóvel #
Valor parcial (plano x imóveis):
Pacotes de Cobertura
Total das coberturas:
Valor mensal estimado:
Pagamento
Resumo da Proposta
Cliente: ()
Plano: — Imóveis:
Vigência:
Endereços dos Imóveis
Imóvel #:
Coberturas Selecionadas
Nenhuma cobertura adicional selecionada.
- —
Valor Mensal Total:
Envio de Propostas em Lote via CSV
Faça o upload de um arquivo CSV para emissão em massa de propostas.
Importante: Cada linha representa uma proposta isolada por empresa (multi-tenant).
O envio é seguro, auditado e exige autenticação via API Key.
ou arraste e solte aqui
CSV até 10MB
Instruções para o Arquivo CSV
Para garantir a importação correta, siga rigorosamente as especificações abaixo.
Cabeçalho do Arquivo (ordem obrigatória):
Admin: full_name;cpf;birth_date;email;phone;loan_id;loan_date;loan_amount;loan_term;tenant_id;product;status
Usuário comum: full_name;cpf;birth_date;email;phone;loan_id;loan_date;loan_amount;loan_term;product;status
- O arquivo será convertido automaticamente para JSON e enviado ao endpoint
/v1/contracts/upload-csv. - Cada linha será validada e erros serão informados ao final.
- Todos os envios são auditados e isolados por empresa (multi-tenant).
Conexão via API (ModoSeguro)
Envie contratos para nossa esteira (staging ➜ mart ➜ model). Use x-api-key no header.
Corpo = 1 contrato. Retorna um preview da mart após rodar o ETL do tenant.
Corpo = array de contratos. Use run_etl=1 para processar
imediatamente.
x-api-key: SUA_CHAVE_AQUI
GET /api/validate_apikey
Modelo – Inserção unitária
Endpoint: /api/upload/csv
{
"tenant_id": 3,
"data": {
"full_name": "João Silva",
"cpf": "12345678900",
"birth_date": "1985-05-20",
"email": "joao@empresa.com",
"phone": "31999990000",
"loan_id": "ABC123",
"loan_date": "2025-08-01",
"loan_amount": 25000.00,
"loan_term": 24,
"product": "Fiducia",
"status": "pending"
}
}
Modelo – Lote (array de objetos)
Endpoint: /api/contracts/upload-csv?run_etl=1
[
{
"full_name": "João Silva",
"cpf": "12345678900",
"birth_date": "1985-05-20",
"email": "joao@empresa.com",
"phone": "31999990000",
"loan_id": "ABC123",
"loan_date": "2025-08-01",
"loan_amount": 25000.00,
"loan_term": 24,
"product": "Fiducia",
"status": "pending"
}
]
Windows PowerShell – Unitário
$api = "https://api.modoseguro.com"
$headers = @{ "Content-Type" = "application/json"; "x-api-key" = "SUA_CHAVE_AQUI" }
$body = @{
tenant_id = 3
data = @{
full_name = "Dudu"
cpf = "12345678901"
birth_date = "1985-05-20"
email = "dudu@empresa.com"
phone = "31999990000"
loan_id = "ABC122"
loan_date = "2025-08-01"
loan_amount = 25000.00
loan_term = 12
product = "Seguro de casa"
status = "pending"
}
} | ConvertTo-Json -Depth 5
Invoke-RestMethod -Uri "$api/api/upload/csv" -Method Post -Headers $headers -Body $body
curl – Lote
curl -X POST 'https://api.modoseguro.com/api/contracts/upload-csv?run_etl=1' \
-H 'x-api-key: SUA_CHAVE_AQUI' \
-H 'Content-Type: application/json' \
-d '[
{
"full_name":"João Silva","cpf":"12345678900","birth_date":"1985-05-20",
"email":"joao@empresa.com","phone":"31999990000",
"loan_id":"ABC123","loan_date":"2025-08-01",
"loan_amount":25000.00,"loan_term":24,"product":"Fiducia","status":"pending"
}
]'
JavaScript (fetch) – Unitário
await fetch("https://api.modoseguro.com/api/upload/csv", {
method: "POST",
headers: {
"Content-Type": "application/json",
"x-api-key": "SUA_CHAVE_AQUI"
},
body: JSON.stringify({
tenant_id: 3,
data: {
full_name: "João Silva",
cpf: "12345678900",
birth_date: "1985-05-20",
email: "joao@empresa.com",
phone: "31999990000",
loan_id: "ABC123",
loan_date: "2025-08-01",
loan_amount: 25000.00,
loan_term: 24,
product: "Fiducia",
status: "pending"
}
})
});
Regras de normalização
- CPF: aceitamos com ou sem máscara; armazenamos apenas dígitos.
- Datas: ISO (YYYY-MM-DD). Ex.:
loan_date,birth_date. - Números:
loan_amountaceita vírgula ou ponto; convertemos para decimal. - product: se ausente, usamos
"Padrão". - status: default
"pending"quando omitido. - tenant: usuários não-admin usam sempre o próprio tenant; admin pode informar
tenant_id.
Resposta (unitário)
{
"mart": [
{
"tenant_id": 3,
"cpf": "12345678900",
"nome": "João Silva",
"plano_nome": "Fiducia",
"valor": 25000.0,
"data_contrato": "2025-08-01"
}
]
}
Resposta (lote)
{
"status": "success",
"message": "Lote salvo com sucesso!",
"mart": { "3": [ /* preview do tenant 3 */ ] }
}
Códigos de erro
- 401 – API Key ausente ou expirada.
- 403 – API Key inválida.
- 400 – JSON inválido ou campos obrigatórios ausentes.
Observações: use sempre HTTPS. Inclua x-api-key em todas as requisições.
| row.contrato_sk); selectedContracts = $event.target.checked ? sks : []; " :checked="mart.view.length > 0 && selectedContracts.length === mart.view.length" class="rounded" /> | Tenant | CPF | Nome | Plano | Valor | Data | Ações |
|---|---|---|---|---|---|---|---|
| Sem registros. | |||||||
|
|