🔐 Autenticação
Todas as requisições protegidas exigem o cabeçalho HTTP:
Authorization: Bearer SUA_CHAVE
A base da API é https://sysimb.imbranet.com.br/api/v1/. Use sempre HTTPS. A chave é exibida uma única vez na criação — guarde-a com segurança.
📁 Diagnóstico
Status do serviço. Verifica se a API está no ar e se o banco responde. Ideal para monitores de uptime. Não exige autenticação e não expõe nenhum dado.
Exemplo
curl -s "https://sysimb.imbranet.com.br/api/v1/healthcheck.php"
Resposta
{
"ok": true,
"data": {
"service": "sysimb-api",
"version": "v1",
"status": "online",
"banco": "ok",
"horario": "2026-06-25T05:28:44-03:00"
}
}
Identidade (whoami). Valida a sua chave e devolve a identidade da aplicação (nome, escopos, IP de origem). Use para confirmar que a credencial está funcionando.
Exemplo
curl -s "https://sysimb.imbranet.com.br/api/v1/ping.php" \
-H "Authorization: Bearer SUA_CHAVE"
Resposta
{
"ok": true,
"data": {
"mensagem": "pong",
"aplicacao": "Site institucional",
"escopos": ["*"],
"seu_ip": "200.1.2.3",
"horario": "2026-06-25T05:29:01-03:00"
}
}
📁 SPC Brasil
Consultar CPF ou CNPJ no SPC. Consulta a situação de um CPF (pessoa física) ou CNPJ (pessoa jurídica) no SPC Brasil (restrição, score, protestos, ações, cheques, pendências e valor de dívidas). O documento pode vir em "cpf", "cnpj" ou "documento" — o tipo de pessoa é detectado pelo TAMANHO do documento (11 dígitos = CPF, 14 = CNPJ), então é seguro continuar mandando o CNPJ no campo "cpf". Máscara é aceita e ignorada ("14.923.423/0001-98" = "14923423000198"). Para CNPJ, o campo "nome" traz a razão social. TODOS os valores do "data" são retornados como string (números e booleanos viram string; null vira ""). tem_restricao = "0" (sem restrição) ou "1" (com restrição). Com consulta_nova=1 vai direto ao SPC; com 0 (ou ausente) reaproveita o histórico do SysIMB quando há consulta válida e só vai ao SPC se não houver. Aceita GET ou POST. ATENÇÃO ao "resumo.valor_total_dividas": ele NÃO é a soma das seções. O SPC devolve a mesma dívida em duas listas (registros SPC e pendências financeiras), com o mesmo número de contrato — cada contrato entra UMA vez no total, pelo maior valor. Protestos e cheques não trazem contrato e entram integralmente. Somar as quantidades × valores das seções dá um número maior, e errado.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
cpf | string | Sim | Documento do consumidor: CPF ou CNPJ, com ou sem máscara. Os nomes "cnpj" e "documento" também são aceitos para o mesmo parâmetro. |
consulta_nova | inteiro | Não | 1 = consulta nova direto no SPC; 0 ou ausente = usa o histórico do SysIMB antes (padrão 0). |
detalhado | inteiro | Não | 1 = inclui também a resposta bruta do SPC em "spc_raw". |
Exemplo
curl -s "https://sysimb.imbranet.com.br/api/v1/spc_consultar.php" \
-H "Authorization: Bearer SUA_CHAVE"
Resposta
{
"ok": true,
"data": {
"cpf": "12345678900",
"documento": "12345678900",
"documento_formatado": "123.456.789-00",
"tipo_pessoa": "F",
"consulta_nova": "0",
"origem": "historico",
"consultado_em": "2026-06-25 10:00:00",
"protocolo": "2026062301234567",
"nome": "FULANO DE TAL",
"tem_restricao": "0",
"score": "712",
"score_classe": "Verde",
"resumo": {
"registros_spc": "0",
"protestos": "0",
"acoes": "0",
"cheques": "0",
"pendencias_financeiras": "0",
"consultas_recentes": "3",
"valor_total_dividas": "0"
},
"consulta_id": "1016"
}
}
📁 Cobertura
Validar viabilidade (área + portas livres). Para um ponto, retorna (1) se está dentro de alguma área de venda ativa e (2) a viabilidade real de rede (Geogridmaps): caixas/CTOs com portas livres dentro do raio cadastrado. Quando há áreas sobrepostas, prevalece sempre a MENOR (mais específica): "areas" traz só a área decisiva, "sobreposta"=true indica que havia outras, e com_viabilidade segue o tem_viabilidade dessa área menor. A consulta ao Geogridmaps SÓ é feita quando com_viabilidade=true — fora de área ou em área sem viabilidade, viabilidade.disponivel vem false com o motivo (sem custo de chamada). Informe o ponto por GPS (lat+lng), CEP ou endereço (prioridade: GPS > CEP > endereço). Aceita GET ou POST.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
lat | número | Não | Latitude (use junto com lng). |
lng | número | Não | Longitude (use junto com lat). |
cep | string | Não | CEP (com ou sem máscara). Usado se lat/lng não vierem. |
endereco | string | Não | Endereço livre. Usado se lat/lng e cep não vierem. Geocodificado com a mesma inteligência da tela (Google + Nominatim restrito às cidades atendidas), tolerando endereço parcialmente errado. Se ainda assim não localizar, a resposta de erro pode trazer "sugestao" (você quis dizer) com rotulo/lat/lng. |
raio | inteiro | Não | Raio em metros para a viabilidade. Padrão: raio cadastrado no sistema. |
viabilidade | inteiro | Não | 0 desativa a consulta de portas (retorna só a área). Padrão 1. |
Exemplo
curl -s "https://sysimb.imbranet.com.br/api/v1/area_validar.php" \
-H "Authorization: Bearer SUA_CHAVE"
Resposta
{
"ok": true,
"data": {
"consulta_por": "gps",
"lat": -27.00425303,
"lng": -48.62140596,
"dentro": true,
"com_viabilidade": true,
"sobreposta": false,
"areas": [
{ "id": 3, "nome": "BC - Rua 3700", "descricao": null, "tem_viabilidade": 1, "cor": "#1976d2" }
],
"viabilidade": {
"disponivel": true,
"raio": 200,
"total_caixas": 2,
"portas_livres_total": 11,
"tem_porta_livre": true,
"caixas": [
{ "id": 12345, "sigla": "CTO-001", "distancia": 45, "portasLivres": 8, "portasOcupadas": 2, "portas": 10, "ocupacaoPortas": 20.0, "fibrasLivresLuz": 2 }
]
}
}
}
Consultar prédio de fibra por endereço. Verifica se um endereço corresponde a um prédio de fibra já cadastrado, retornando tipo de instalação (ONU Apto / Cabo Rede / Tipo Casa), status (ativo / em ativação / inativo / sem viabilidade), mensagem de alerta e se precisa consultar o NOC. Informe endereco (melhor precisão — inclua rua e número) ou cep. Aceita GET ou POST.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
endereco | string | Não | Endereço a consultar (inclua rua e número para melhor precisão). |
cep | string | Não | CEP; usado se endereco não vier (resolve rua/bairro/cidade). Menos preciso, sem número. |
Exemplo
curl -s "https://sysimb.imbranet.com.br/api/v1/predio_consultar.php" \
-H "Authorization: Bearer SUA_CHAVE"
Resposta
{
"ok": true,
"data": {
"consulta_por": "endereco",
"endereco_consultado": "Rua Brusque 500, Centro, Camboriu",
"tem_predio": true,
"total": 1,
"predios": [
{
"id": 42,
"nome": "Ed. Exemplo",
"endereco1": "Rua Brusque, 500",
"bairro": "Centro",
"cidade": "Camboriu",
"tipo": "fibra_apartamento",
"tipo_label": "ONU Apto",
"status": "ativo",
"status_label": "Ativo",
"alerta": "",
"noc": "Nao"
}
]
}
}
📁 Organização
Listar setores. Lista os setores do sistema. Por padrão retorna só os ativos; use todos=1 para incluir os inativos.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
todos | inteiro | Não | 1 = inclui setores inativos. Padrão 0 (só ativos). |
Exemplo
curl -s "https://sysimb.imbranet.com.br/api/v1/setores_listar.php" \
-H "Authorization: Bearer SUA_CHAVE"
Resposta
{
"ok": true,
"data": {
"total": 2,
"setores": [
{ "id": 3, "nome": "Suporte", "descricao": null, "tecnico": true, "epis": false, "ativo": true }
]
}
}
Consultar funcionário pelo login do operador. Dado o login de um operador, retorna o e-mail do cadastro do operador e os dados do funcionário vinculado: nome, status do funcionário (ativo/inativo/ferias/afastado), setor, sexo, data de nascimento, data de admissão. Quando o funcionário está de férias, o objeto "ferias" traz inicio, retorno e dias do período vigente (null caso contrário). Retorna ainda e ramal(is) e celular(es)/WhatsApp cadastrados na Telefonia (só os ativos). O campo "email" vem do cadastro do operador; quando não há e-mail cadastrado, "email" vem null e "tem_email" false (o operador existindo, a resposta continua ok:true). O campo "setor" traz o mais específico (subsetor quando houver); "setor_pai" e "subsetor" vêm separados. Se o funcionário estiver INATIVO, a resposta traz apenas login, nome e funcionario_status/label — sem e-mail. Aceita GET ou POST.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
login | string | Sim | Login do operador (operadores.login). |
Exemplo
curl -s "https://sysimb.imbranet.com.br/api/v1/operador_consultar.php" \
-H "Authorization: Bearer SUA_CHAVE"
Resposta
{
"ok": true,
"data": {
"login": "brunna.nemeth",
"operador_ativo": true,
"tem_funcionario": true,
"nome": "Brunna Carolina da Silva Nemeth",
"email": "financeiro@imbranet.com.br",
"tem_email": true,
"funcionario_status": "ferias",
"funcionario_status_label": "Férias",
"ferias": { "inicio": "2026-07-01", "retorno": "2026-07-31", "dias": 31 },
"setor": "Financeiro",
"setor_pai": "Administrativo",
"subsetor": "Financeiro",
"sexo": "F",
"sexo_label": "Feminino",
"data_nascimento": "2001-04-08",
"data_admissao": "2020-02-26",
"ramal": "1006",
"ramais": ["1006"],
"celular": null,
"celulares": []
}
}
📁 Planos
Consultar plano pelo ID Vigo. Retorna os dados de um plano cadastrado (os mesmos exibidos em Planos Vigo) a partir do seu ID Vigo: descrição, valor, ICMS, nota, nome/tipo do pacote, plano/banda (Radius), status (ativo) e a lista de planos INCLUÍDOS no pacote — cada incluído já resolvido para seu ID Vigo, descrição, valor e status. valor vem como string decimal com 2 casas (ex.: "136.90"). Aceita GET ou POST.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id | inteiro | Sim | ID Vigo do plano (o "ID Vigo" mostrado na tela). Aceita também o nome id_plano_vigo. |
Exemplo
curl -s "https://sysimb.imbranet.com.br/api/v1/plano_consultar.php" \
-H "Authorization: Bearer SUA_CHAVE"
Resposta
{
"ok": true,
"data": {
"id_plano_vigo": 227,
"descricao": "2024 - INTERNET DE ATÉ 1 GBPS DE DOWNLOAD NO PACOTE FIBRA 1000",
"valor": "136.90",
"icms": true,
"nota": true,
"nome_pacote": "PACOTE FIBRA 1000",
"tipo_pacote": "PACOTE FIBRA",
"plano_radius": null,
"ativo": true,
"incluidos": [
{ "id_plano_vigo": 226, "descricao": "IP FIXO", "valor": "0.00", "ativo": true }
],
"criado_em": "2026-01-10 06:55:00",
"atualizado_em": "2026-01-10 06:55:00"
}
}
📁 Cadastro de Cliente
Contexto para montar o cadastro. Devolve tudo o que é preciso saber ANTES de montar um cadastro: a base e o grupo Vigo que receberão o cliente hoje (o roteamento muda conforme o dia do mês), o catálogo de pacotes já com os serviços inclusos e seu valor somado, a lista de opcionais, e os valores aceitos em cada campo fechado (tipo de pessoa, sexo, situação, dia de vencimento, DICI). Também informa se a trava de simulação está ligada. Consulte este endpoint antes de enviar o cadastro — assim você monta o payload com ids de plano válidos e sabe de antemão em que base o cliente vai cair.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
dia | inteiro | Não | Dia do mês (1–31) para simular o roteamento de outro dia. Padrão: hoje. |
Exemplo
curl -s "https://sysimb.imbranet.com.br/api/v1/cadastro_contexto.php" \
-H "Authorization: Bearer SUA_CHAVE"
Resposta
{
"ok": true,
"data": {
"destino": {
"dia": 4,
"ok": true,
"base_id": 2,
"base": "Vigo 02",
"origem": "faixa",
"grupo": "GRUPO 28",
"idempresa": 2
},
"pacotes": [
{
"id_plano_vigo": 227,
"nome": "PACOTE FIBRA 1000",
"tipo": "PACOTE FIBRA",
"valor": "136.90",
"valor_total": "189.90",
"velocidade": "1000",
"incluidos": [
{ "id_plano_vigo": 263, "descricao": "IBTV PLAY", "valor": "19.00" }
]
}
],
"opcionais": [
{ "id_plano_vigo": 42, "nome": "IP FIXO - IPv4", "valor": "100.00" }
],
"dominios": {
"tipo": { "F": "Pessoa Física", "J": "Pessoa Jurídica" },
"vencimento": ["10", "15", "20"],
"dici_atendimento": ["URBANO", "RURAL"]
},
"simulacao_forcada": true
}
}
Resolver endereço (CEP, texto ou GPS). Resolve um endereço a partir do CEP, de um texto livre ("Rua Brusque 100, Camboriú") ou de uma coordenada, e devolve o bloco já padronizado no formato que a base Vigo usa: logradouro por extenso e em Title Case (R. → Rua), bairro sem o prefixo "Bairro", cidade em MAIÚSCULAS, CEP com máscara e o campo endereco montado como "Logradouro Numero Complemento". Também devolve latitude e longitude quando disponíveis. Quando o texto não é encontrado, a resposta pode trazer "sugestao" com o "você quis dizer". Informe UM entre cep, endereco ou lat+lng. Aceita GET ou POST.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
cep | string | Não | CEP com ou sem máscara. |
endereco | string | Não | Endereço em texto livre. Inclua a cidade para melhor precisão. |
lat | número | Não | Latitude (use junto com lng). |
lng | número | Não | Longitude (use junto com lat). |
numero | string | Não | Número do imóvel, para compor o campo endereco. |
complemento | string | Não | Complemento (ex.: "Apto 204", "Bl B"). |
Exemplo
curl -s "https://sysimb.imbranet.com.br/api/v1/endereco_resolver.php" \
-H "Authorization: Bearer SUA_CHAVE"
Resposta
{
"ok": true,
"data": {
"origem": "cep",
"fonte": "google",
"endereco": "Rua Eucalipto 52",
"logradouro": "Rua Eucalipto",
"numero": "52",
"complemento": "",
"bairro": "Tabuleiro",
"cidade": "CAMBORIU",
"uf": "SC",
"cep": "88348-270",
"latitude": "-26.9989795",
"longitude": "-48.6545082",
"aproximado": false
}
}
Ler documento de identidade (RG/CNH). Lê a foto de um documento de identidade e extrai nome, CPF, RG, data de nascimento, sexo, filiação e naturalidade — já padronizados no formato do cadastro. Envie a imagem em multipart (campo arquivo) ou em JSON (arquivo_base64, com ou sem prefixo data:). Formatos aceitos: JPG, PNG, WEBP e PDF (primeira página). Se o documento tiver verso, envie-o também: no RG brasileiro é o verso que traz filiação, naturalidade e CPF, e as duas imagens são analisadas em conjunto. O resultado é uma SUGESTÃO para conferência: o CPF só vem preenchido se passar no dígito verificador, e campos de leitura duvidosa vêm listados em "avisos". Nada é gravado.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
arquivo | arquivo | Não | Imagem da frente do documento (multipart/form-data). |
arquivo_verso | arquivo | Não | Imagem do verso (multipart/form-data). |
arquivo_base64 | string | Não | Frente em base64. Alternativa ao multipart. |
arquivo_verso_base64 | string | Não | Verso em base64. |
modelo_id | inteiro | Não | Força um modelo de IA específico. Padrão: o modelo de visão configurado. |
Exemplo
curl -s "https://sysimb.imbranet.com.br/api/v1/cliente_documento_ler.php" \
-H "Authorization: Bearer SUA_CHAVE"
Resposta
{
"ok": true,
"data": {
"normalizado": {
"nome": "Mariana Gonçalves de Araujo",
"cpfcgc": "529.982.247-25",
"rgie": "4782913",
"dt_nascimento": "1990-04-08",
"sexo": "F",
"pai": "Carlos Roberto de Araujo",
"mae": "Tereza Goncalves de Araujo",
"naturalidade": "Camboriu - SC"
},
"tipo_documento": "RG",
"confianca": { "nome": "alta", "cpf": "alta", "rg": "media" },
"avisos": [],
"lados_lidos": 2,
"modelo": "gpt-5.6-luna",
"custo_usd": 0.00096,
"duracao_ms": 7180
}
}
Enviar cadastro de cliente (pré-cadastro). Recebe um cadastro de cliente, padroniza todos os campos (nome em Title Case, CPF/CNPJ validado por dígito verificador, telefone e CEP com máscara, endereço no formato do Vigo), resolve a base e o grupo Vigo conforme o dia do mês, monta os planos expandindo os serviços inclusos do pacote, e enfileira como PRÉ-CADASTRO. IMPORTANTE: este endpoint NÃO cria o cliente no Vigo — a criação acontece depois, quando um operador confere e efetiva o pré-cadastro. Envie simular=1 para validar sem enfileirar: a resposta mostra exatamente o que seria gravado, com erros e avisos. Idempotência: informe idempotency_key; sem ela, reenviar o mesmo documento no mesmo dia devolve o pré-cadastro já existente em vez de duplicar. Os campos podem vir na raiz ou dentro de "dados"; o plano em "plano" ou como id_plano_vigo + opcionais.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
nome | string | Sim | Nome completo (PF) ou razão social (PJ). Gravado SEM ACENTO; razão social de CNPJ vai em CAIXA ALTA. |
nome_social | string | Não | Nome pelo qual a pessoa é chamada. O Vigo não tem coluna para ele: é gravado no campo "obs", no começo, no formato "Nome social - Telefone internacional - Observação". |
cpfcgc | string | Sim | CPF ou CNPJ, com ou sem máscara. Define o tipo de pessoa. |
cep | string | Sim | CEP do endereço de instalação. |
endereco | string | Sim | Rua, número e complemento juntos, como o Vigo grava: "Rua San Marino 1030 Bl B Apto 401". O número é obrigatório — sem número, escreva "sn". Alternativa: enviar logradouro + numero separados. |
logradouro | string | Não | Só a rua/avenida. Use com "numero"; o sistema junta os dois. Alternativa a "endereco". |
numero | string | Não | Número do imóvel, quando enviado separado de "logradouro". OBRIGATÓRIO sempre que "logradouro" for enviado — sem número, envie "sn". (Não vale contar com o número dentro de complemento/apartamento: o campo é conferido à parte.) |
complemento | string | Não | Complemento (ex.: "Sala 2", "Casa B", "Bloco A"), quando enviado separado. |
apartamento | string | Não | Apartamento, quando enviado separado. Só o número já basta — vira "Apto 401" na concatenação. Preenchido sem predio_id, o tipo de instalação na anotação vira "APARTAMENTO - PREDIO NOVO". |
predio_id | inteiro | Não | ID do prédio de fibra (predios_fibra) quando a instalação é num edifício já cadastrado. Não muda o endereço: serve para o TIPO DE INSTALAÇÃO da anotação do cliente, que sai do tipo cadastrado do prédio (ONU APTO, CABO DE REDE, TIPO CASA) — é o que diz ao técnico o que levar. Use endereco_resolver para descobrir o id. |
bairro | string | Sim | Bairro. |
cidade | string | Sim | Cidade. |
uf | string | Sim | UF com 2 letras. |
referencia | string | Sim | Ponto de referência para a instalação. |
celular | string | Sim | Celular do cliente — é por ele que o cliente recebe WhatsApp. Precisa ser celular de verdade: DDD + 9 dígitos começando em 9. Telefone fixo neste campo é recusado (use "telefone"). Deixa de ser obrigatório quando tel_internacional=1. Telefones da própria operadora (lista em cad_cliente_telefones_bloqueados, hoje 33650107) são recusados em qualquer campo de telefone: com o nosso número no cadastro, cobrança e agendamento voltam para nós e o cliente nunca é avisado. |
telefone | string | Não | Telefone de recado. Em branco, é gravado zerado ("00000000000"). |
tel_internacional | inteiro | Não | 1 = o cliente tem número de fora do Brasil. As colunas de telefone e celular do Vigo vão ZERADAS ("00000000000") — não cabe um número internacional no formato delas — e o número real é gravado no campo "obs". Consequência: as automações por WhatsApp não alcançam esse cliente. |
tel_intl_ddi | string | Não | Código do país do telefone internacional, só dígitos (ex.: 351 para Portugal, 1 para EUA). Consulte a lista aceita em cadPaisesDdi(). OBRIGATÓRIO quando tel_internacional=1. |
tel_intl_numero | string | Não | Número do assinante, sem o código do país. Mínimo 4 dígitos; país + número não passam de 15 (limite do padrão E.164). Gravado como "+351 912345678". |
email | string | Sim | E-mail do cliente. RECUSADO quando contém "imbranet": e-mail da operadora faria o boleto e os avisos irem para uma caixa interna e o cliente ficaria sem receber, com o envio marcado como bem-sucedido. Cliente sem e-mail: envie sem_email=1. |
sem_email | inteiro | Não | 1 = o cliente não tem e-mail. A coluna do Vigo é obrigatória, então é gravada a sentinela sememail@imbranet.com.br — uma só, para dar para contar depois quantos clientes estão sem esse canal. |
vencimento | inteiro | Não | Dia de vencimento (10, 15 ou 20). Padrão: 10. |
cfop | string | Não | CFOP da nota (pessoa física E jurídica): 5301–5307 (dentro do estado) ou 6301–6307 (interestadual), serviço de comunicação. Sem valor, é deduzido: o final é 07 (usuário final) para pessoa física e para empresa ISENTA de Inscrição Estadual, e 03 (estabelecimento comercial) para empresa com IE; o prefixo vira 6 quando o cliente é de outro estado E a assinatura é apenas CHIP MÓVEL. Informado, é respeitado. |
sexo | string | Não | M ou F. |
rgie | string | Não | RG (PF) ou Inscrição Estadual (PJ). OBRIGATÓRIO nos dois casos: em pessoa física, sem RG envie rg_do_cpf=1; em pessoa jurídica, sem IE envie ie_isento=1. |
rg_do_cpf | inteiro | Não | Pessoa física cujo documento não traz RG (CNH nova, passaporte): 1 grava o CPF em dígitos no campo rgie, sem pontuação. É o que a operação já faz à mão — melhor um número verificável do que o campo vazio. Ignorado em pessoa jurídica. |
ie_isento | inteiro | Não | Pessoa jurídica sem Inscrição Estadual: 1 grava "ISENTO" no campo rgie, que é o que a nota fiscal espera. Enviar a palavra "ISENTO" em rgie tem o mesmo efeito. |
dt_nascimento | string | Não | Data de nascimento (AAAA-MM-DD ou DD/MM/AAAA). |
pai | string | Não | Nome do pai (só pessoa física). |
mae | string | Não | Nome da mãe (só pessoa física). |
representante_nome | string | Não | Pessoa jurídica: quem responde pela empresa. OBRIGATÓRIO quando o documento é CNPJ. |
representante_cpf | string | Não | Pessoa jurídica: CPF do representante legal, validado por dígito verificador. OBRIGATÓRIO quando o documento é CNPJ. Nome e CPF são gravados juntos no campo "mãe" do Vigo, no formato "Nome CPF: 000.000.000-00", porque o Vigo não tem campo próprio de representante. |
representantes | array | Não | Pessoa jurídica com mais de quem assina (sócios, procurador): lista de objetos {nome, cpf}. Substitui representante_nome/representante_cpf quando enviada. Todos vão para o campo "mãe" do Vigo separados por " | " — ex.: "Raphael Gasperi CPF: 061.496.329-03 | Ana Zuchi CPF: 124.658.179-57". A coluna tem 250 caracteres; o que passar disso é cortado com aviso. |
naturalidade | string | Não | Cidade - UF de nascimento. |
latitude | número | Não | Latitude da instalação (use endereco_resolver para obtê-la). |
longitude | número | Não | Longitude da instalação. |
dici_atendimento | string | Não | URBANO ou RURAL. Padrão: URBANO. |
vendedor | string | Não | Vendedor: o NOME do funcionário, sem o id (ex.: "RAPHAEL GASPERI"). Sem este campo, o vendedor é resolvido na efetivação a partir do operador que conferiu o pré-cadastro (operador → funcionário → CPF → cadastro_funcionarios da base). ATENÇÃO: o id do funcionário é por base — o mesmo funcionário tem números diferentes na Vigo 01 e na Vigo 02. |
id_plano_vigo | inteiro | Sim | ID Vigo do pacote principal (veja cadastro_contexto). Pacote do tipo CHIP MÓVEL, sem opcionais fora desse tipo, muda três coisas: a banda do DICI é gravada como 1000, o CFOP pode virar interestadual e, em pessoa física, o cadastro vai para a base de planos móveis configurada em Conf. Cadastro Vigo em vez do rodízio por dia do mês. |
opcionais | array | Não | IDs Vigo dos opcionais escolhidos. |
simular | inteiro | Não | 1 = valida e devolve o resultado sem enfileirar. |
idempotency_key | string | Não | Chave para não duplicar em caso de reenvio. |
permitir_recadastro | inteiro | Não | 1 = confirma o cadastro mesmo havendo cadastro DESATIVADO (situação X) no mesmo documento. Sem esta confirmação a resposta é 409: a política da operação é reativar o cadastro desativado em vez de abrir outro, e isso vale inclusive quando existe um cadastro ativo junto. |
Exemplo
curl -s "https://sysimb.imbranet.com.br/api/v1/cliente_pre_cadastrar.php" \
-H "Authorization: Bearer SUA_CHAVE"
Resposta
{
"ok": true,
"data": {
"status": "pendente",
"pre_cadastro_id": 12,
"reaproveitado": false,
"idempotency_key": "99667535e960...",
"mensagem": "Pré-cadastro criado. Aguarda conferência de um operador para ser efetivado no Vigo.",
"resumo": {
"nome": "Mariana Gonçalves de Araujo",
"documento": "529.982.247-25",
"endereco": "Rua Eucalipto 52 - Tabuleiro, CAMBORIU/SC",
"base": "Vigo 02",
"grupo": "GRUPO 28",
"total_mensal": "289.90",
"velocidade": "1000"
},
"planos": {
"linhas": [
{ "id_plano_vigo": 227, "descricao": "PACOTE FIBRA 1000", "total": "136.90", "papel": "pacote" },
{ "id_plano_vigo": 263, "descricao": "IBTV PLAY", "total": "19.00", "papel": "incluido" }
],
"total_mensal": "289.90"
},
"avisos": []
}
}
Consultar situação do pré-cadastro. Informa em que pé está um cadastro enviado antes: se ainda aguarda conferência ou se foi efetivado (e com qual ID de cliente no Vigo). Cadastro descartado na conferência deixa de existir e a consulta devolve 404. Informe o id devolvido no envio ou a mesma idempotency_key usada. Cada chave de API só enxerga os pré-cadastros que ela própria enviou.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id | inteiro | Não | ID do pré-cadastro (pre_cadastro_id). |
idempotency_key | string | Não | Alternativa ao id: a chave usada no envio. |
Exemplo
curl -s "https://sysimb.imbranet.com.br/api/v1/cliente_pre_consultar.php" \
-H "Authorization: Bearer SUA_CHAVE"
Resposta
{
"ok": true,
"data": {
"pre_cadastro_id": 12,
"status": "efetivado",
"situacao": "Cliente criado no Vigo.",
"id_cliente_vigo": 215696,
"base": { "base_id": 2, "grupo": "GRUPO 28", "idempresa": 2 },
"nome": "Mariana Gonçalves de Araujo",
"documento": "52998224725",
"motivo": null,
"criado_em": "2026-08-04 08:20:11",
"efetivado_em": "2026-08-04 09:05:33"
}
}
⚠️ Tratamento de erros
Erros seguem o envelope { "ok": false, "erro": { "codigo", "mensagem" } }.
| HTTP | Código | Significado |
|---|---|---|
| 401 | sem_credencial | Header Authorization ausente |
| 401 | credencial_invalida | Chave não existe |
| 403 | chave_revogada | Chave desativada |
| 403 | chave_expirada | Passou da validade |
| 403 | ip_nao_autorizado | IP de origem fora da whitelist |
| 403 | sem_escopo | Chave não tem o escopo exigido |
| 429 | rate_limit | Excedeu o limite de requisições/minuto |
🎯 Escopos
Cada chave possui escopos que definem o que ela pode acessar. * concede tudo.
| Escopo | Descrição |
|---|---|
* | Acesso total (todos os escopos atuais e futuros) |
ping | Diagnóstico / identidade (endpoint ping) |
spc:consultar | Consultar CPF ou CNPJ no SPC Brasil |
cobertura:consultar | Validar ponto (GPS/CEP/endereço) nas áreas de cobertura |
predios:consultar | Consultar prédios de fibra por endereço |
setores:listar | Listar os setores do sistema |
operadores:consultar | Consultar dados do funcionário pelo login do operador |
planos:consultar | Consultar planos (planos_vigo) pelo ID Vigo |
clientes:cadastrar | Enviar cadastro de cliente para a fila de pré-cadastro e consultar a situação |
clientes:documento_ler | Ler documento de identidade (RG/CNH) por IA e extrair os dados |
endereco:resolver | Resolver endereço por CEP, texto ou coordenada |
clientes:ler | Consultar dados de clientes (somente leitura) |
whatsapp:enviar | Disparar mensagens WhatsApp/e-mail |
atendimentos:criar | Abrir atendimentos/ocorrências |