IZConnect API

Concentrador de APIs de dados cadastrais, veiculares e integracao WhatsApp Cloud API. Consulte CPF, CNPJ, veiculos por placa, liste templates aprovados, envie mensagens via WhatsApp e muito mais, de forma rapida, com cache inteligente e uma unica integracao.

Online REST API Cache Automatico API Key Auth JSON

URL Base

Todas as requisicoes devem ser feitas para o seguinte endereco:

Base URL https://izconnect.iztec.online

Autenticacao

Cada empresa recebe um token unico ao ser cadastrada no IZConnect. Este token deve ser enviado em todas as requisicoes aos endpoints protegidos.

Como enviar o token

Header X-API-Key: iz_seu_token_aqui
Query ?api_key=iz_seu_token_aqui
O token da sua empresa e gerado pelo administrador do IZConnect. Cada empresa tem seu proprio token, que pode ser regenerado a qualquer momento pelo painel admin.

Formato de Resposta

Todas as respostas sao retornadas em formato JSON com a seguinte estrutura padrao:

JSON - Resposta de Sucesso
{
    "success": true,
    "message": "Descricao da operacao",
    "data": { // dados retornados }
}
JSON - Resposta de Erro
{
    "success": false,
    "error": "Descricao do erro"
}

Codigos de Status HTTP

Health Check

GET /health Publico

Verifica se o servico esta online e o status da conexao com o banco de dados. Util para monitoramento e health checks automatizados.

Exemplo de Requisicao
cURL
curl -s https://izconnect.iztec.online/health
Resposta
200 OK
{
    "success": true,
    "message": "IZConnect esta operacional",
    "data": {
        "service": "IZConnect",
        "version": "1.0.0",
        "php": "8.3.30",
        "database": "connected",
        "timestamp": "2026-03-14 17:00:00"
    }
}

Listar APIs Disponiveis

GET /apis Publico

Lista todos os endpoints disponiveis no concentrador com seus parametros e metodos de autenticacao.

cURL
curl -s https://izconnect.iztec.online/apis
200 OK
{
    "success": true,
    "message": "APIs disponiveis",
    "data": {
        "endpoints": [
            {
                "method": "GET",
                "path": "/api/cpf",
                "description": "Consulta dados basicos de pessoa fisica por CPF",
                "params": { "cpf": "string (11 digitos)" },
                "auth": "X-API-Key header ou ?api_key= query param"
            }
        ]
    }
}

Consulta CPF

Retorna dados basicos de pessoa fisica a partir do numero de CPF. O sistema utiliza cache inteligente: se o CPF ja foi consultado anteriormente, retorna do banco local (mais rapido e sem custo). Caso contrario, consulta a API externa, salva no cache e retorna.

Cache Inteligente: Consultas repetidas sao retornadas do cache local, reduzindo custos e tempo de resposta. O campo source na resposta indica se veio do cache ou da api externa.
GET /api/cpf API Key

Consulta dados de CPF via query parameter.

Parametros (Query String)
Parametro Tipo Obrigatorio Descricao
cpf string Sim Numero do CPF com 11 digitos (somente numeros ou com mascara)
Exemplos de Requisicao
cURL - Header Auth
curl -s \
  -H 'X-API-Key: iz_SEU_TOKEN' \
  'https://izconnect.iztec.online/api/cpf?cpf=12345678901'
cURL - Query Auth
curl -s 'https://izconnect.iztec.online/api/cpf?cpf=12345678901&api_key=iz_SEU_TOKEN'
JavaScript (fetch)
fetch('https://izconnect.iztec.online/api/cpf?cpf=12345678901', {
  headers: { 'X-API-Key': 'iz_SEU_TOKEN' }
})
.then(r => r.json())
.then(console.log);
Python (requests)
import requests

response = requests.get(
    'https://izconnect.iztec.online/api/cpf',
    params={'cpf': '12345678901'},
    headers={'X-API-Key': 'iz_SEU_TOKEN'}
)
print(response.json())
PHP (cURL)
$ch = curl_init('https://izconnect.iztec.online/api/cpf?cpf=12345678901');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => ['X-API-Key: iz_SEU_TOKEN'],
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Respostas
200 OK
{
    "success": true,
    "message": "Consulta realizada com sucesso",
    "data": {
        "id": 1,
        "cpf": "12345678901",
        "nome": "JOAO DA SILVA SANTOS",
        "data_nascimento": "15/03/1990",
        "sexo": "M",
        "nome_mae": "MARIA DA SILVA",
        "nome_pai": "JOSE DOS SANTOS",
        "situacao": "Regular",
        "pis": "12345678901",
        "ctps": "",
        "titulo": "0012345678901",
        "rg_numero": "12.345.678-9",
        "rg_emissor": "SSP",
        "rg_uf": "SP",
        "produto": "pf-dadosbasicos",
        "data_agora": "2026-03-14 17:00:00"
    }
}
401 Unauthorized
{
    "success": false,
    "error": "Token invalido ou empresa inativa"
}
422 Unprocessable Entity
{
    "success": false,
    "error": "Parametro \"cpf\" e obrigatorio"
}
Campos Retornados
Campo Tipo Descricao
cpf string Numero do CPF (11 digitos)
nome string Nome completo do titular
data_nascimento string Data de nascimento (DD/MM/AAAA)
sexo string Sexo (M ou F)
nome_mae string Nome da mae
nome_pai string Nome do pai
situacao string Situacao cadastral na Receita Federal
pis string Numero do PIS/PASEP
ctps string Numero da CTPS
titulo string Numero do titulo de eleitor
rg_numero string Numero do RG
rg_emissor string Orgao emissor do RG
rg_uf string UF de emissao do RG

Consulta CPF (POST)

POST /api/cpf API Key

Mesma consulta de CPF, porem recebendo o parametro via corpo da requisicao em JSON. Ideal para integracoes que preferem enviar dados via body.

Parametros (Body JSON)
Parametro Tipo Obrigatorio Descricao
cpf string Sim Numero do CPF com 11 digitos
Exemplos de Requisicao
cURL
curl -s -X POST 'https://izconnect.iztec.online/api/cpf' \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: iz_SEU_TOKEN' \
  -d '{"cpf": "12345678901"}'
JavaScript (fetch)
fetch('https://izconnect.iztec.online/api/cpf', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-API-Key': 'iz_SEU_TOKEN'
  },
  body: JSON.stringify({ cpf: '12345678901' })
})
.then(r => r.json())
.then(console.log);
Python (requests)
import requests

response = requests.post(
    'https://izconnect.iztec.online/api/cpf',
    json={'cpf': '12345678901'},
    headers={'X-API-Key': 'iz_SEU_TOKEN'}
)
print(response.json())
A resposta deste endpoint e identica a versao GET. Consulte a secao Consulta CPF (GET) para ver todos os campos retornados.

Consulta CNPJ

Retorna dados cadastrais de pessoa juridica a partir do numero de CNPJ. Inclui informacoes de situacao cadastral, endereco, atividade economica (CNAE), porte, capital social e MCC (quando disponivel). O sistema utiliza cache inteligente.

Cache Inteligente: CNPJs ja consultados sao retornados do cache local. O campo source na resposta indica se veio do cache ou da api externa.
GET /api/cnpj API Key

Consulta dados de CNPJ via query parameter.

Parametros (Query String)
Parametro Tipo Obrigatorio Descricao
cnpj string Sim Numero do CNPJ com 14 digitos (somente numeros ou com mascara)
Exemplos de Requisicao
cURL
curl -s \
  -H 'X-API-Key: iz_SEU_TOKEN' \
  'https://izconnect.iztec.online/api/cnpj?cnpj=12345678000190'
JavaScript (fetch)
fetch('https://izconnect.iztec.online/api/cnpj?cnpj=12345678000190', {
  headers: { 'X-API-Key': 'iz_SEU_TOKEN' }
})
.then(r => r.json())
.then(console.log);
Python (requests)
import requests

response = requests.get(
    'https://izconnect.iztec.online/api/cnpj',
    params={'cnpj': '12345678000190'},
    headers={'X-API-Key': 'iz_SEU_TOKEN'}
)
print(response.json())
PHP (cURL)
$ch = curl_init('https://izconnect.iztec.online/api/cnpj?cnpj=12345678000190');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => ['X-API-Key: iz_SEU_TOKEN'],
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Respostas
200 OK
{
    "success": true,
    "message": "Consulta realizada com sucesso",
    "data": {
        "cnpj": "12345678000190",
        "nome": "EMPRESA EXEMPLO LTDA",
        "fantasia": "EXEMPLO",
        "abertura": "01/01/2010",
        "situacao": "ATIVA",
        "tipo": "MATRIZ",
        "porte": "MICRO EMPRESA",
        "natureza_juridica": "206-2 - Sociedade Empresaria Limitada",
        "cnae_codigo": "62.01-5-01",
        "cnae_descricao": "Desenvolvimento de programas de computador sob encomenda",
        "logradouro": "RUA EXEMPLO",
        "numero": "123",
        "complemento": "SALA 1",
        "bairro": "CENTRO",
        "municipio": "SAO PAULO",
        "uf": "SP",
        "cep": "01000-000",
        "email": "contato@exemplo.com.br",
        "telefone": "(11) 1234-5678",
        "capital_social": "100000.00",
        "mcc": 5734
    }
}
401 Unauthorized
{
    "success": false,
    "error": "Token invalido ou empresa inativa"
}
422 Unprocessable Entity
{
    "success": false,
    "error": "Parametro \"cnpj\" e obrigatorio"
}
Campos Retornados
Campo Tipo Descricao
cnpjstringNumero do CNPJ (14 digitos)
nomestringRazao social
fantasiastringNome fantasia
aberturastringData de abertura
situacaostringSituacao cadastral (ATIVA, BAIXADA, etc)
data_situacaostringData da situacao cadastral
tipostringTipo (MATRIZ ou FILIAL)
portestringPorte da empresa
natureza_juridicastringNatureza juridica
cnae_codigostringCodigo CNAE da atividade principal
cnae_descricaostringDescricao do CNAE
logradourostringLogradouro
numerostringNumero
complementostringComplemento
bairrostringBairro
municipiostringMunicipio
ufstringUF
cepstringCEP
emailstringE-mail da empresa
telefonestringTelefone
capital_socialstringCapital social
mccint|nullMCC (Merchant Category Code) baseado no CNAE, quando disponivel

Consulta CNPJ (POST)

POST /api/cnpj API Key

Mesma consulta de CNPJ, porem recebendo o parametro via corpo da requisicao em JSON.

Parametros (Body JSON)
Parametro Tipo Obrigatorio Descricao
cnpj string Sim Numero do CNPJ com 14 digitos
Exemplos de Requisicao
cURL
curl -s -X POST 'https://izconnect.iztec.online/api/cnpj' \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: iz_SEU_TOKEN' \
  -d '{"cnpj": "12345678000190"}'
JavaScript (fetch)
fetch('https://izconnect.iztec.online/api/cnpj', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-API-Key': 'iz_SEU_TOKEN'
  },
  body: JSON.stringify({ cnpj: '12345678000190' })
})
.then(r => r.json())
.then(console.log);
A resposta deste endpoint e identica a versao GET. Consulte a secao Consulta CNPJ (GET) para ver todos os campos retornados.

Consultas Veiculares

Consulte informacoes completas de veiculos pela placa: dados basicos, proprietario, restricoes, multas, roubo/furto, leilao, sinistro, FIPE, gravame, historico e muito mais. Todas as consultas sao feitas via API Full com cache inteligente de 24 horas.

Cache Inteligente (24h): Consultas repetidas para a mesma placa e tipo sao retornadas do cache local, economizando creditos da API Full. O campo source indica se veio do cache ou da api externa.
GET /api/veicular API Key

Lista todas as consultas veiculares disponiveis com seus tipos (links) e descricoes.

Exemplo de Requisicao
cURL
curl -s \
  -H 'X-API-Key: iz_SEU_TOKEN' \
  'https://izconnect.iztec.online/api/veicular'
Resposta
200 OK
{
    "success": true,
    "message": "Consultas veiculares disponiveis",
    "data": [
        {
            "link": "agregados-basica",
            "nome": "Placa Basica (agregados-basica)",
            "descricao": "Dados basicos do veiculo: marca, modelo, chassi, ano, cor",
            "campo": "placa"
        },
        {
            "link": "nacional-v3",
            "nome": "Registro Nacional",
            "descricao": "Situacao legal e fiscal do veiculo em nivel nacional",
            "campo": "placa"
        },
        // ... mais 14 tipos
    ]
}

Consultar Veiculo por Placa

GET POST /api/veicular/{tipo} API Key

Realiza uma consulta veicular especifica. Substitua {tipo} pelo tipo desejado (ex: agregados-basica, nacional-v3, fipe, etc).

Parametros (URL)
Parametro Tipo Obrigatorio Descricao
tipo string Sim Tipo da consulta (ver tabela abaixo)
Parametros (Query String ou Body JSON)
Parametro Tipo Obrigatorio Descricao
placa string Sim * Placa do veiculo (somente letras e numeros, 7 caracteres). Usado para todas as consultas exceto CNH.
cpf string Sim * CPF com 11 digitos. Usado apenas para consulta pf-cnh (CNH Completa).
Envie placa para consultas veiculares ou cpf para a consulta de CNH (pf-cnh). Apenas um dos dois e necessario, dependendo do tipo.
Exemplos de Requisicao
cURL - GET (Placa Basica)
curl -s \
  -H 'X-API-Key: iz_SEU_TOKEN' \
  'https://izconnect.iztec.online/api/veicular/agregados-basica?placa=ABC1D23'
cURL - POST (Registro Nacional)
curl -s -X POST 'https://izconnect.iztec.online/api/veicular/nacional-v3' \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: iz_SEU_TOKEN' \
  -d '{"placa": "ABC1D23"}'
cURL - POST (CNH por CPF)
curl -s -X POST 'https://izconnect.iztec.online/api/veicular/pf-cnh' \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: iz_SEU_TOKEN' \
  -d '{"cpf": "12345678901"}'
JavaScript (fetch)
fetch('https://izconnect.iztec.online/api/veicular/fipe', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-API-Key': 'iz_SEU_TOKEN'
  },
  body: JSON.stringify({ placa: 'ABC1D23' })
})
.then(r => r.json())
.then(console.log);
Python (requests)
import requests

response = requests.post(
    'https://izconnect.iztec.online/api/veicular/gravame',
    json={'placa': 'ABC1D23'},
    headers={'X-API-Key': 'iz_SEU_TOKEN'}
)
print(response.json())
PHP (cURL)
$tipo = 'roubo-furto';
$ch = curl_init("https://izconnect.iztec.online/api/veicular/{$tipo}");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => [
        'Content-Type: application/json',
        'X-API-Key: iz_SEU_TOKEN',
    ],
    CURLOPT_POSTFIELDS => json_encode(['placa' => 'ABC1D23']),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Respostas
200 OK - Placa Basica
{
    "success": true,
    "message": "Consulta 'Placa Basica (agregados-basica)' realizada com sucesso (fonte: api)",
    "data": {
        "status": "sucesso",
        "dados": {
            "placa": "ABC1D23",
            "chassi": "9BWAB45U4HP000710",
            "fabricante": "VW",
            "modelo": "NOVO GOL TL MBV",
            "ano_fabricacao": 2016,
            "ano_modelo": 2017,
            "combustivel": "ALCOOL / GASOLINA",
            "tipo_veiculo": "AUTOMOVEL",
            "especie": "PASSAGEIRO",
            "cor": "BRANCA",
            "uf_jurisdicao": "MG",
            "cidade": "BELO HORIZONTE"
        }
    }
}
401 Unauthorized
{
    "success": false,
    "error": "Token invalido ou empresa inativa"
}
422 Unprocessable Entity
{
    "success": false,
    "error": "Parametro \"placa\" ou \"cpf\" e obrigatorio (dependendo do tipo de consulta)"
}
400 Bad Request
{
    "success": false,
    "error": "Token invalido!"
}

Tipos de Consulta Veicular

Substitua {tipo} na URL por um dos valores abaixo. Todos utilizam o parametro placa, exceto pf-cnh que utiliza cpf.

Tipo (link) Nome Descricao Campo
agregados-basica Placa Basica Dados basicos: marca, modelo, chassi, ano, cor placa
agregados-propria Placa Basica (propria) Dados basicos do veiculo (base propria) placa
nacional-v3 Registro Nacional Situacao legal e fiscal completa, CPF do proprietario placa
proprietario-atual Proprietario Atual Nome, documento e dados do proprietario atual placa
gravame Gravame Financiamentos e alienacoes (SNG) placa
renajud-v3 Renajud (Restricoes) Restricoes judiciais: bloqueios, penhoras placa
renainf RenaInf (Multas) Multas e infracoes de transito placa
roubo-furto Roubo ou Furto Verificacao de registro de roubo ou furto placa
leilao Leilao Historico de participacao em leiloes placa
indice-risco Indice de Risco Historico completo do veiculo e analise de risco placa
sinistro Sinistro Historico de sinistros do veiculo placa
fipe FIPE Valor de mercado pela Tabela FIPE placa
crlv-sp CRLV SP CRLV do estado de Sao Paulo placa
crlv-mg CRLV MG CRLV do estado de Minas Gerais placa
buscar-veiculo-pf Buscar Veiculo na PF Consulta na Policia Federal placa
pf-cnh CNH Completa Dados completos da CNH (consulta por CPF) cpf

WhatsApp - Listar Templates

Retorna todos os templates WhatsApp sincronizados para a empresa autenticada. Util para montar telas dinamicas de envio, exibir templates disponiveis ou validar nomes antes de enviar.

GET /api/whatsapp/templates

Lista todos os templates WhatsApp da empresa. Pode filtrar por status.

Headers
ParametroTipoObrigatorioDescricao
X-API-Key string Sim Token de acesso da empresa
Query Parameters (opcional)
ParametroTipoObrigatorioDescricao
status string Nao Filtrar por status: APPROVED, PENDING, REJECTED, PAUSED, DISABLED. Se omitido, retorna todos.
cURL
JavaScript
Python
PHP
cURL - Todos os templates
curl -s -X GET 'https://izconnect.iztec.online/api/whatsapp/templates' \
  -H 'X-API-Key: iz_SEU_TOKEN'
cURL - Somente aprovados
curl -s -X GET 'https://izconnect.iztec.online/api/whatsapp/templates?status=APPROVED' \
  -H 'X-API-Key: iz_SEU_TOKEN'
JavaScript (Fetch)
fetch('https://izconnect.iztec.online/api/whatsapp/templates?status=APPROVED', {
  headers: { 'X-API-Key': 'iz_SEU_TOKEN' }
}).then(r => r.json()).then(data => {
  data.data.forEach(tpl => {
    console.log(tpl.name, tpl.language, tpl.status);
  });
});
Python (requests)
import requests

response = requests.get(
    'https://izconnect.iztec.online/api/whatsapp/templates',
    params={'status': 'APPROVED'},
    headers={'X-API-Key': 'iz_SEU_TOKEN'}
)
templates = response.json()['data']
for tpl in templates:
    print(f"{tpl['name']} ({tpl['language']}) - {tpl['status']}")
PHP (cURL)
$ch = curl_init();
curl_setopt_array($ch, [
    CURLOPT_URL => 'https://izconnect.iztec.online/api/whatsapp/templates?status=APPROVED',
    CURLOPT_HTTPHEADER => [
        'X-API-Key: iz_SEU_TOKEN'
    ],
    CURLOPT_RETURNTRANSFER => true
]);
$res = json_decode(curl_exec($ch), true);
curl_close($ch);

foreach ($res['data'] as $tpl) {
    echo $tpl['name'] . ' (' . $tpl['language'] . ') - ' . $tpl['status'] . PHP_EOL;
}
Exemplo de Resposta
{
  "success": true,
  "data": [
    {
      "name": "hello_world",
      "language": "pt_BR",
      "category": "UTILITY",
      "status": "APPROVED",
      "components": [
        {
          "type": "BODY",
          "text": "Ola! Bem-vindo ao nosso servico."
        }
      ]
    },
    {
      "name": "cobranca_vencida",
      "language": "pt_BR",
      "category": "UTILITY",
      "status": "APPROVED",
      "components": [
        {
          "type": "HEADER",
          "format": "IMAGE"
        },
        {
          "type": "BODY",
          "text": "Ola {{1}}, sua fatura de R$ {{2}} venceu em {{3}}."
        },
        {
          "type": "FOOTER",
          "text": "IZConnect - Cobranca automatica"
        },
        {
          "type": "BUTTONS",
          "buttons": [
            { "type": "URL", "text": "Pagar Agora", "url": "https://pagamento.com/{{1}}" }
          ]
        }
      ]
    }
  ]
}
Campos de cada template
CampoTipoDescricao
name string Nome do template (usar em /api/whatsapp/send)
language string Codigo do idioma (ex: pt_BR, en_US)
category string Categoria: MARKETING, UTILITY ou AUTHENTICATION
status string Status na Meta: APPROVED, PENDING, REJECTED, PAUSED, DISABLED
components array Componentes do template (HEADER, BODY, FOOTER, BUTTONS) com variaveis {{1}}, {{2}}, etc.
Fluxo recomendado
  1. GET /api/whatsapp/templates?status=APPROVED — Liste os templates disponiveis
  2. O usuario escolhe um template e preenche as variaveis
  3. POST /api/whatsapp/send — Envie a mensagem usando template (nome) e components (variaveis)

Ou, se estiver usando campanhas: POST /api/whatsapp/campaign/send com campaign_id e variables.

WhatsApp - Enviar Template

Envia uma mensagem de template aprovado via WhatsApp Cloud API (Meta). Os templates devem ser previamente cadastrados e aprovados no Meta Business Suite, e sincronizados pelo painel admin do IZConnect.

POST /api/whatsapp/send API Key

Envia uma mensagem template para o numero de WhatsApp informado.

Parametros (Body JSON)
Parametro Tipo Obrigatorio Descricao
to string Sim Numero do destinatario no formato internacional (ex: 5531999999999)
template string Sim Nome do template aprovado na Meta (ex: hello_world)
language string Nao Codigo do idioma do template (padrao: pt_BR)
components array Nao Array de componentes com variaveis do template (header, body, buttons). Segue o formato da Meta API.
Exemplos de Requisicao
cURL - Template simples
curl -s -X POST 'https://izconnect.iztec.online/api/whatsapp/send' \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: iz_SEU_TOKEN' \
  -d '{"to": "5531999999999", "template": "hello_world", "language": "pt_BR"}'
cURL - Template com variaveis
curl -s -X POST 'https://izconnect.iztec.online/api/whatsapp/send' \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: iz_SEU_TOKEN' \
  -d '{
    "to": "5531999999999",
    "template": "cobranca_vencida",
    "language": "pt_BR",
    "components": [
      {
        "type": "body",
        "parameters": [
          {"type": "text", "text": "Joao Silva"},
          {"type": "text", "text": "R$ 150,00"},
          {"type": "text", "text": "15/03/2026"}
        ]
      }
    ]
  }'
JavaScript (fetch)
fetch('https://izconnect.iztec.online/api/whatsapp/send', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-API-Key': 'iz_SEU_TOKEN'
  },
  body: JSON.stringify({
    to: '5531999999999',
    template: 'hello_world',
    language: 'pt_BR'
  })
})
.then(r => r.json())
.then(console.log);
Python (requests)
import requests

response = requests.post(
    'https://izconnect.iztec.online/api/whatsapp/send',
    json={
        'to': '5531999999999',
        'template': 'hello_world',
        'language': 'pt_BR'
    },
    headers={'X-API-Key': 'iz_SEU_TOKEN'}
)
print(response.json())
PHP (cURL)
$ch = curl_init();
curl_setopt_array($ch, [
    CURLOPT_URL => 'https://izconnect.iztec.online/api/whatsapp/send',
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => [
        'Content-Type: application/json',
        'X-API-Key: iz_SEU_TOKEN'
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'to' => '5531999999999',
        'template' => 'hello_world',
        'language' => 'pt_BR'
    ]),
    CURLOPT_RETURNTRANSFER => true
]);
$res = curl_exec($ch);
curl_close($ch);
echo $res;
Resposta de Sucesso (200)
JSON
{
  "success": true,
  "message": "Mensagem WhatsApp enviada com sucesso",
  "data": {
    "messaging_product": "whatsapp",
    "contacts": [
      { "input": "5531999999999", "wa_id": "5531999999999" }
    ],
    "messages": [
      { "id": "wamid.HBgNNTUzMTk5O..." }
    ]
  }
}
Erros Comuns
Erro Causa Solucao
WhatsApp nao configurado A empresa nao possui config WhatsApp ativa Cadastre credenciais no painel admin > WhatsApp
Template nao encontrado Template nao existe ou nao esta aprovado Sincronize templates no painel admin e verifique aprovacao na Meta
Numero invalido Telefone fora do formato internacional Use formato 5531999999999 (DDI + DDD + numero)
Configuracao no Painel Admin

Antes de usar este endpoint, o administrador deve:

  1. Acessar Admin > WhatsApp e criar uma configuracao para a empresa
  2. Informar o WABA ID, Phone Number ID e Access Token (obtidos no Meta Business Suite)
  3. Clicar em Sincronizar Templates para importar os templates aprovados da Meta
  4. Usar o nome exato do template e o idioma ao chamar este endpoint

WhatsApp - Enviar por Campanha

Envia uma mensagem usando uma campanha pre-configurada no painel admin. Basta informar o ID da campanha, o telefone e as variaveis do template. O template, idioma e configuracao ja estao vinculados a campanha.

POST /api/whatsapp/campaign/send API Key

Envia uma mensagem WhatsApp usando uma campanha cadastrada.

Parametros (Body JSON)
Parametro Tipo Obrigatorio Descricao
campaign_id integer Sim ID da campanha (exibido na tabela de campanhas do painel admin)
to string Sim Numero do destinatario no formato internacional (ex: 5531999999999)
variables array Nao Array com os valores das variaveis do template, na ordem ({{1}}, {{2}}, etc.)
header_image string Condicional URL publica da imagem (obrigatorio se o template tiver header do tipo IMAGE)
header_video string Condicional URL publica do video (obrigatorio se o template tiver header do tipo VIDEO)
header_document string Condicional URL publica do documento PDF/DOC (obrigatorio se header do tipo DOCUMENT)
header_filename string Nao Nome do arquivo exibido ao destinatario (ex: "boleto.pdf"). Opcional.
button_url string Condicional Parte dinamica da URL do botao (obrigatorio se o template tiver botao URL com variavel)
Exemplos de Requisicao
cURL - Envio simples
curl -s -X POST 'https://izconnect.iztec.online/api/whatsapp/campaign/send' \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: iz_SEU_TOKEN' \
  -d '{"campaign_id": 1, "to": "5531999999999", "variables": ["Joao Silva", "R$ 150,00"]}'
cURL - Com imagem, variaveis e botao URL
curl -s -X POST 'https://izconnect.iztec.online/api/whatsapp/campaign/send' \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: iz_SEU_TOKEN' \
  -d '{
    "campaign_id": 2,
    "to": "5531999999999",
    "variables": ["Joao Silva", "R$ 250,00", "20/04/2026"],
    "header_image": "https://exemplo.com/logo-cobranca.jpg",
    "button_url": "abc123"
  }'
JavaScript - Com imagem e botao URL
fetch('https://izconnect.iztec.online/api/whatsapp/campaign/send', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-API-Key': 'iz_SEU_TOKEN'
  },
  body: JSON.stringify({
    campaign_id: 2,
    to: '5531999999999',
    variables: ['Joao Silva', 'R$ 250,00', '20/04/2026'],
    header_image: 'https://exemplo.com/logo.jpg',
    button_url: 'abc123'
  })
})
.then(r => r.json())
.then(console.log);
Python - Com documento e variaveis
import requests

response = requests.post(
    'https://izconnect.iztec.online/api/whatsapp/campaign/send',
    json={
        'campaign_id': 3,
        'to': '5531999999999',
        'variables': ['Maria Santos', 'R$ 480,00'],
        'header_document': 'https://exemplo.com/boleto.pdf',
        'header_filename': 'boleto-abril.pdf'
    },
    headers={'X-API-Key': 'iz_SEU_TOKEN'}
)
print(response.json())
Resposta de Sucesso (200)
JSON
{
  "success": true,
  "message": "Mensagem WhatsApp enviada com sucesso via campanha",
  "data": {
    "messaging_product": "whatsapp",
    "contacts": [
      { "input": "5531999999999", "wa_id": "5531999999999" }
    ],
    "messages": [
      { "id": "wamid.HBgNNTUzMTk5O..." }
    ]
  }
}
Vantagem sobre /api/whatsapp/send

Com campanhas, voce nao precisa saber o nome do template ou idioma. Basta usar o campaign_id (numero inteiro) e as variaveis. O template, idioma e configuracao WhatsApp ja estao pre-vinculados na campanha pelo admin.

  • Historico completo de cada envio (telefone, variaveis, status, WAMID)
  • Suporte automatico a headers de midia (header_image, header_video, header_document)
  • Botoes dinamicos com button_url
  • Contadores de sucesso/falha por campanha
  • Formulario de teste no painel admin
Parametros condicionais por tipo de template

Os parametros extras dependem da estrutura do template na Meta. Ao acessar os detalhes da campanha no painel admin, voce vera exatamente quais parametros sao obrigatorios para cada template. Use GET /api/whatsapp/templates para consultar os components de cada template e identificar os tipos de header e botoes.

Push Notification

Envia uma notificacao push para um usuario cadastrado no sistema Push-me. Busca automaticamente o dispositivo do usuario pelo nome e dispara a notificacao.

POST /api/push API Key

Envia push notification para o usuario informado.

Parametros (Body JSON ou Query String)
Parametro Tipo Obrigatorio Descricao
usuario string Sim Nome do usuario (ex: @leandro ou leandro)
mensagem string Sim Texto da notificacao
titulo string Nao Titulo da notificacao (padrao: "Alerta Push-me")
Exemplos de Requisicao
cURL
curl -s -X POST 'https://izconnect.iztec.online/api/push' \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: iz_SEU_TOKEN' \
  -d '{"usuario": "@leandro", "mensagem": "Novo pedido recebido!"}'
JavaScript (fetch)
fetch('https://izconnect.iztec.online/api/push', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-API-Key': 'iz_SEU_TOKEN'
  },
  body: JSON.stringify({
    usuario: '@leandro',
    mensagem: 'Novo pedido recebido!'
  })
})
.then(r => r.json())
.then(console.log);
Python (requests)
import requests

response = requests.post(
    'https://izconnect.iztec.online/api/push',
    json={
        'usuario': '@leandro',
        'mensagem': 'Novo pedido recebido!'
    },
    headers={'X-API-Key': 'iz_SEU_TOKEN'}
)
print(response.json())
PHP (cURL)
$ch = curl_init('https://izconnect.iztec.online/api/push');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => [
        'Content-Type: application/json',
        'X-API-Key: iz_SEU_TOKEN',
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'usuario' => '@leandro',
        'mensagem' => 'Novo pedido recebido!',
    ]),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Respostas
200 OK
{
    "success": true,
    "message": "Push enviado com sucesso",
    "data": {
        "usuario": "@leandro",
        "subscription_id": 42,
        "titulo": "Alerta Push-me",
        "mensagem": "Novo pedido recebido!",
        "push_response": { // resposta do servidor push }
    }
}
400 Bad Request
{
    "success": false,
    "error": "Usuario nao encontrado: @usuario"
}
422 Unprocessable Entity
{
    "success": false,
    "error": "Parametros \"usuario\" e \"mensagem\" sao obrigatorios"
}

Verificar Token de Assinatura

Verifica o status de uma assinatura SaaS pelo token. Consulta a API do Gestao IZ (gestao.iztec.online) e retorna o status de acesso: liberado, aviso (proxima do vencimento) ou bloqueado.

Uso no SaaS: A cada acesso do usuario, envie o token da assinatura para este endpoint. Se status = "liberado" ou "aviso", permita o acesso. Se "bloqueado", negue o acesso e exiba a mensagem retornada.
GET /api/token/{token} API Key

Verifica o status de uma assinatura pelo token informado na URL.

Parametros (URL)
Parametro Tipo Obrigatorio Descricao
token string Sim Token da assinatura (minimo 32 caracteres)
Exemplos de Requisicao
cURL
curl -s \
  -H 'X-API-Key: iz_SEU_TOKEN' \
  'https://izconnect.iztec.online/api/token/abc123def456...'
JavaScript (fetch)
const assinaturaToken = 'abc123def456...';
fetch(`https://izconnect.iztec.online/api/token/${assinaturaToken}`, {
  headers: { 'X-API-Key': 'iz_SEU_TOKEN' }
})
.then(r => r.json())
.then(console.log);
Python (requests)
import requests

assinatura_token = 'abc123def456...'
response = requests.get(
    f'https://izconnect.iztec.online/api/token/{assinatura_token}',
    headers={'X-API-Key': 'iz_SEU_TOKEN'}
)
print(response.json())
PHP (cURL)
$assinaturaToken = 'abc123def456...';
$ch = curl_init("https://izconnect.iztec.online/api/token/{$assinaturaToken}");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => ['X-API-Key: iz_SEU_TOKEN'],
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Respostas
200 OK - Acesso Liberado
{
    "success": true,
    "message": "Acesso liberado",
    "data": {
        "success": true,
        "status": "liberado",
        "mensagem": "Acesso liberado.",
        "assinatura": {
            "token": "abc123...",
            "status": "ativa",
            "produto": "Meu Produto SaaS",
            "produto_slug": "meu-produto",
            "plano": "Plano Mensal",
            "cliente": "Empresa Exemplo LTDA",
            "cpf_cnpj": "12.345.678/0001-90",
            "valor_total": 199.90,
            "data_inicio": "2025-01-15"
        }
    }
}
200 OK - Aviso (vence em breve)
{
    "success": true,
    "message": "Atencao: fatura vence em 3 dia(s).",
    "data": {
        "success": true,
        "status": "aviso",
        "mensagem": "Atencao: fatura vence em 3 dia(s).",
        "dias_restantes": 3,
        "assinatura": { // mesma estrutura },
        "fatura_pendente": {
            "referencia": "2025-03",
            "valor": 199.90,
            "data_vencimento": "2025-03-15"
        }
    }
}
200 OK - Bloqueado (fatura vencida)
{
    "success": true,
    "message": "Acesso bloqueado. Fatura vencida ha 5 dia(s).",
    "data": {
        "success": true,
        "status": "bloqueado",
        "mensagem": "Acesso bloqueado. Fatura vencida ha 5 dia(s).",
        "dias_atraso": 5,
        "assinatura": { // mesma estrutura },
        "fatura_pendente": {
            "referencia": "2025-02",
            "valor": 199.90,
            "data_vencimento": "2025-02-15"
        }
    }
}
200 OK - Token Nao Encontrado
{
    "success": true,
    "message": "Assinatura nao encontrada para este token",
    "data": {
        "success": false,
        "status": "nao_encontrado",
        "mensagem": "Assinatura nao encontrada para este token."
    }
}
401 Unauthorized
{
    "success": false,
    "error": "Token invalido ou empresa inativa"
}
Status Possiveis
Status Acao Descricao
liberado Permitir acesso Assinatura ativa, sem pendencias
aviso Permitir com aviso Fatura vence em 5 dias ou menos
bloqueado Negar acesso Fatura vencida ou assinatura suspensa
nao_encontrado Negar acesso Token invalido ou assinatura inexistente

Verificar Acesso por CPF/CNPJ

Verifica o status de acesso de um cliente por CPF/CNPJ e opcionalmente pelo slug do produto. Consulta a API do Gestao IZ e retorna o status de acesso com dados do cliente e assinatura.

Quando usar: Use este endpoint quando voce conhece o CPF/CNPJ do cliente mas nao possui o token da assinatura. Se voce ja tem o token, use o endpoint Verificar Token que e mais direto.
Configuracao necessaria: A empresa deve ter a API Key da Gestao IZ configurada no painel admin. Sem ela, este endpoint retorna erro.
GET /api/acesso API Key

Verifica o acesso de um cliente por CPF/CNPJ via query parameters.

Parametros (Query String ou Body JSON)
Parametro Tipo Obrigatorio Descricao
cpf_cnpj string Sim CPF (11 digitos) ou CNPJ (14 digitos), com ou sem pontuacao
produto string Nao Slug do produto para filtrar (ex: izfood, meu-produto)
Exemplos de Requisicao
cURL - GET
curl -s \
  -H 'X-API-Key: iz_SEU_TOKEN' \
  'https://izconnect.iztec.online/api/acesso?cpf_cnpj=12345678000190&produto=izfood'
cURL - POST
curl -s -X POST 'https://izconnect.iztec.online/api/acesso' \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: iz_SEU_TOKEN' \
  -d '{"cpf_cnpj": "12345678000190", "produto": "izfood"}'
JavaScript (fetch)
fetch('https://izconnect.iztec.online/api/acesso?cpf_cnpj=12345678000190&produto=izfood', {
  headers: { 'X-API-Key': 'iz_SEU_TOKEN' }
})
.then(r => r.json())
.then(console.log);
Python (requests)
import requests

response = requests.get(
    'https://izconnect.iztec.online/api/acesso',
    params={'cpf_cnpj': '12345678000190', 'produto': 'izfood'},
    headers={'X-API-Key': 'iz_SEU_TOKEN'}
)
print(response.json())
PHP (cURL)
$ch = curl_init('https://izconnect.iztec.online/api/acesso?cpf_cnpj=12345678000190&produto=izfood');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => ['X-API-Key: iz_SEU_TOKEN'],
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Respostas
200 OK - Acesso Liberado
{
    "success": true,
    "message": "Acesso liberado",
    "data": {
        "success": true,
        "status": "liberado",
        "mensagem": "Acesso liberado.",
        "cliente": {
            "id": 1,
            "razao_social": "Empresa Exemplo LTDA",
            "nome_fantasia": "Exemplo",
            "cpf_cnpj": "12.345.678/0001-90",
            "email": "contato@exemplo.com",
            "telefone": "(11) 99999-9999"
        },
        "assinatura": {
            "id": 10,
            "token": "abc123...",
            "status": "ativa",
            "plano": "Plano Mensal",
            "produto": "Meu Produto SaaS",
            "valor_total": 199.90,
            "data_inicio": "2025-01-15",
            "data_proximo_vencimento": "2025-04-15"
        }
    }
}
200 OK - Aviso (vence em breve)
{
    "success": true,
    "message": "Atencao: fatura vence em 3 dia(s).",
    "data": {
        "success": true,
        "status": "aviso",
        "mensagem": "Atencao: fatura vence em 3 dia(s).",
        "cliente": { // mesma estrutura },
        "assinatura": { // mesma estrutura }
    }
}
200 OK - Bloqueado (fatura vencida)
{
    "success": true,
    "message": "Acesso bloqueado. Fatura vencida ha 5 dia(s).",
    "data": {
        "success": true,
        "status": "bloqueado",
        "mensagem": "Acesso bloqueado. Fatura vencida ha 5 dia(s).",
        "cliente": { // mesma estrutura },
        "assinatura": { // mesma estrutura }
    }
}
200 OK - Nao Encontrado
{
    "success": true,
    "message": "Assinatura nao encontrada para este CPF/CNPJ",
    "data": {
        "success": false,
        "status": "nao_encontrado",
        "mensagem": "Nenhuma assinatura encontrada."
    }
}
401 Unauthorized
{
    "success": false,
    "error": "Token invalido ou empresa inativa"
}
Status Possiveis
Status Acao Descricao
liberado Permitir acesso Assinatura ativa, sem pendencias financeiras
aviso Permitir com aviso Fatura vence em 5 dias ou menos
bloqueado Negar acesso Fatura vencida ou assinatura suspensa
nao_encontrado Negar acesso CPF/CNPJ nao possui assinatura ou produto nao encontrado