Gestão de Vendas

Venda Assistida

Dados do Cliente

Dados do Seguro

Endereços dos Imóveis

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
Coberturas Selecionadas

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
          
Observações:
  • 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.

Header (obrigatório)
x-api-key: SUA_CHAVE_AQUI
Checar validade da chave
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_amount aceita 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.

Tenant CPF Nome Plano Valor Data Ações