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.
URL Base
Todas as requisicoes devem ser feitas para o seguinte endereco:
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
X-API-Key: iz_seu_token_aqui
?api_key=iz_seu_token_aqui
Formato de Resposta
Todas as respostas sao retornadas em formato JSON com a seguinte estrutura padrao:
{
"success": true,
"message": "Descricao da operacao",
"data": { // dados retornados }
}
{
"success": false,
"error": "Descricao do erro"
}
Codigos de Status HTTP
- 200 Consulta realizada com sucesso
- 401 API Key nao fornecida ou invalida
- 404 Endpoint nao encontrado
- 422 Parametro obrigatorio ausente ou invalido
- 500 Erro interno do servidor
Health Check
Verifica se o servico esta online e o status da conexao com o banco de dados. Util para monitoramento e health checks automatizados.
curl -s https://izconnect.iztec.online/health
{
"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
Lista todos os endpoints disponiveis no concentrador com seus parametros e metodos de autenticacao.
curl -s https://izconnect.iztec.online/apis
{
"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.
source na resposta indica se veio do cache ou da api externa.Consulta dados de CPF via query parameter.
| Parametro | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
| cpf | string | Sim | Numero do CPF com 11 digitos (somente numeros ou com mascara) |
curl -s \ -H 'X-API-Key: iz_SEU_TOKEN' \ 'https://izconnect.iztec.online/api/cpf?cpf=12345678901'
curl -s 'https://izconnect.iztec.online/api/cpf?cpf=12345678901&api_key=iz_SEU_TOKEN'
fetch('https://izconnect.iztec.online/api/cpf?cpf=12345678901', { headers: { 'X-API-Key': 'iz_SEU_TOKEN' } }) .then(r => r.json()) .then(console.log);
import requests response = requests.get( 'https://izconnect.iztec.online/api/cpf', params={'cpf': '12345678901'}, headers={'X-API-Key': 'iz_SEU_TOKEN'} ) print(response.json())
$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);
{
"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"
}
}
{
"success": false,
"error": "Token invalido ou empresa inativa"
}
{
"success": false,
"error": "Parametro \"cpf\" e obrigatorio"
}
| 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)
Mesma consulta de CPF, porem recebendo o parametro via corpo da requisicao em JSON. Ideal para integracoes que preferem enviar dados via body.
| Parametro | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
| cpf | string | Sim | Numero do CPF com 11 digitos |
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"}'
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);
import requests response = requests.post( 'https://izconnect.iztec.online/api/cpf', json={'cpf': '12345678901'}, headers={'X-API-Key': 'iz_SEU_TOKEN'} ) print(response.json())
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.
source na resposta indica se veio do cache ou da api externa.Consulta dados de CNPJ via query parameter.
| Parametro | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
| cnpj | string | Sim | Numero do CNPJ com 14 digitos (somente numeros ou com mascara) |
curl -s \ -H 'X-API-Key: iz_SEU_TOKEN' \ 'https://izconnect.iztec.online/api/cnpj?cnpj=12345678000190'
fetch('https://izconnect.iztec.online/api/cnpj?cnpj=12345678000190', { headers: { 'X-API-Key': 'iz_SEU_TOKEN' } }) .then(r => r.json()) .then(console.log);
import requests response = requests.get( 'https://izconnect.iztec.online/api/cnpj', params={'cnpj': '12345678000190'}, headers={'X-API-Key': 'iz_SEU_TOKEN'} ) print(response.json())
$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);
{
"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
}
}
{
"success": false,
"error": "Token invalido ou empresa inativa"
}
{
"success": false,
"error": "Parametro \"cnpj\" e obrigatorio"
}
| Campo | Tipo | Descricao |
|---|---|---|
| cnpj | string | Numero do CNPJ (14 digitos) |
| nome | string | Razao social |
| fantasia | string | Nome fantasia |
| abertura | string | Data de abertura |
| situacao | string | Situacao cadastral (ATIVA, BAIXADA, etc) |
| data_situacao | string | Data da situacao cadastral |
| tipo | string | Tipo (MATRIZ ou FILIAL) |
| porte | string | Porte da empresa |
| natureza_juridica | string | Natureza juridica |
| cnae_codigo | string | Codigo CNAE da atividade principal |
| cnae_descricao | string | Descricao do CNAE |
| logradouro | string | Logradouro |
| numero | string | Numero |
| complemento | string | Complemento |
| bairro | string | Bairro |
| municipio | string | Municipio |
| uf | string | UF |
| cep | string | CEP |
| string | E-mail da empresa | |
| telefone | string | Telefone |
| capital_social | string | Capital social |
| mcc | int|null | MCC (Merchant Category Code) baseado no CNAE, quando disponivel |
Consulta CNPJ (POST)
Mesma consulta de CNPJ, porem recebendo o parametro via corpo da requisicao em JSON.
| Parametro | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
| cnpj | string | Sim | Numero do CNPJ com 14 digitos |
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"}'
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);
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.
source indica se veio do cache ou da api externa.Lista todas as consultas veiculares disponiveis com seus tipos (links) e descricoes.
curl -s \ -H 'X-API-Key: iz_SEU_TOKEN' \ 'https://izconnect.iztec.online/api/veicular'
{
"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
Realiza uma consulta veicular especifica. Substitua {tipo} pelo tipo desejado (ex: agregados-basica, nacional-v3, fipe, etc).
| Parametro | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
| tipo | string | Sim | Tipo da consulta (ver tabela abaixo) |
| 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). |
placa para consultas veiculares ou cpf para a consulta de CNH (pf-cnh). Apenas um dos dois e necessario, dependendo do tipo.curl -s \ -H 'X-API-Key: iz_SEU_TOKEN' \ 'https://izconnect.iztec.online/api/veicular/agregados-basica?placa=ABC1D23'
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 -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"}'
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);
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())
$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);
{
"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"
}
}
}
{
"success": false,
"error": "Token invalido ou empresa inativa"
}
{
"success": false,
"error": "Parametro \"placa\" ou \"cpf\" e obrigatorio (dependendo do tipo de consulta)"
}
{
"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.
Lista todos os templates WhatsApp da empresa. Pode filtrar por status.
| Parametro | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
| X-API-Key | string | Sim | Token de acesso da empresa |
| Parametro | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
| status | string | Nao | Filtrar por status: APPROVED, PENDING, REJECTED, PAUSED, DISABLED. Se omitido, retorna todos. |
curl -s -X GET 'https://izconnect.iztec.online/api/whatsapp/templates' \ -H 'X-API-Key: iz_SEU_TOKEN'
curl -s -X GET 'https://izconnect.iztec.online/api/whatsapp/templates?status=APPROVED' \ -H 'X-API-Key: iz_SEU_TOKEN'
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); }); });
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']}")
$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;
}
{
"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}}" }
]
}
]
}
]
}
| Campo | Tipo | Descricao |
|---|---|---|
| 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. |
- GET /api/whatsapp/templates?status=APPROVED — Liste os templates disponiveis
- O usuario escolhe um template e preenche as variaveis
- POST /api/whatsapp/send — Envie a mensagem usando
template(nome) ecomponents(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.
Envia uma mensagem template para o numero de WhatsApp informado.
| 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. |
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 -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"} ] } ] }'
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);
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())
$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;
{
"success": true,
"message": "Mensagem WhatsApp enviada com sucesso",
"data": {
"messaging_product": "whatsapp",
"contacts": [
{ "input": "5531999999999", "wa_id": "5531999999999" }
],
"messages": [
{ "id": "wamid.HBgNNTUzMTk5O..." }
]
}
}
| 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) |
Antes de usar este endpoint, o administrador deve:
- Acessar Admin > WhatsApp e criar uma configuracao para a empresa
- Informar o WABA ID, Phone Number ID e Access Token (obtidos no Meta Business Suite)
- Clicar em Sincronizar Templates para importar os templates aprovados da Meta
- 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.
Envia uma mensagem WhatsApp usando uma campanha cadastrada.
| 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) |
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 -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" }'
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);
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())
{
"success": true,
"message": "Mensagem WhatsApp enviada com sucesso via campanha",
"data": {
"messaging_product": "whatsapp",
"contacts": [
{ "input": "5531999999999", "wa_id": "5531999999999" }
],
"messages": [
{ "id": "wamid.HBgNNTUzMTk5O..." }
]
}
}
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
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.
Envia push notification para o usuario informado.
| 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") |
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!"}'
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);
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())
$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);
{
"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 }
}
}
{
"success": false,
"error": "Usuario nao encontrado: @usuario"
}
{
"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.
status = "liberado" ou "aviso", permita o acesso. Se "bloqueado", negue o acesso e exiba a mensagem retornada.Verifica o status de uma assinatura pelo token informado na URL.
| Parametro | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
| token | string | Sim | Token da assinatura (minimo 32 caracteres) |
curl -s \ -H 'X-API-Key: iz_SEU_TOKEN' \ 'https://izconnect.iztec.online/api/token/abc123def456...'
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);
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())
$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);
{
"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"
}
}
}
{
"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"
}
}
}
{
"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"
}
}
}
{
"success": true,
"message": "Assinatura nao encontrada para este token",
"data": {
"success": false,
"status": "nao_encontrado",
"mensagem": "Assinatura nao encontrada para este token."
}
}
{
"success": false,
"error": "Token invalido ou empresa inativa"
}
| 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.
Verifica o acesso de um cliente por CPF/CNPJ via query parameters.
| 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) |
curl -s \ -H 'X-API-Key: iz_SEU_TOKEN' \ 'https://izconnect.iztec.online/api/acesso?cpf_cnpj=12345678000190&produto=izfood'
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"}'
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);
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())
$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);
{
"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"
}
}
}
{
"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 }
}
}
{
"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 }
}
}
{
"success": true,
"message": "Assinatura nao encontrada para este CPF/CNPJ",
"data": {
"success": false,
"status": "nao_encontrado",
"mensagem": "Nenhuma assinatura encontrada."
}
}
{
"success": false,
"error": "Token invalido ou empresa inativa"
}
| 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 |