Consulta de CNPJ em lote
POST/v1/cnpj/batch
Envia até 1.000 CNPJs de uma vez. O processamento é assíncrono: a API responde 202 com um batch_id e você acompanha o andamento ou aguarda o webhook. A fonte é a mesma da consulta unitária: os Dados Abertos do CNPJ.
Corpo da requisição
- []arrayobrigatório
- Lista de 1 a 1.000 itens.
- [].cnpjstringobrigatório
- CNPJ com ou sem pontuação, numérico ou alfanumérico. Também é aceito enviar a lista só com os textos dos CNPJs.
1 crédito por item encontrado.
- O saldo precisa cobrir o lote inteiro, a menos que o seu plano permita excedente. Sem saldo, a resposta é 402 e o lote não começa.
- Itens inválidos (formato ou dígito verificador), não encontrados e falhas da fonte não cobram. Você pode reenviar apenas os que falharam.
- O lote usa o mesmo saldo e os mesmos limites de requisições da consulta unitária.
Como o lote é processado
Você envia a lista
A API valida o formato e os dígitos verificadores de cada item e enfileira o processamento. A resposta 202 traz o
batch_id.O processamento roda em segundo plano
Cada CNPJ é resolvido nos Dados Abertos, e só os encontrados são cobrados.
Você acompanha
Consulte o
GET /v1/cnpj/batch/{id}até o status sercompleted, ou receba o eventobatch.completedno seu webhook.Você lê os resultados
Os resultados saem paginados e ficam disponíveis por 24 horas.
Campos da resposta 202
- batch_idstring
- Identificador do lote. Use-o para acompanhar.
- statusstring
processingoucompleted.- totalnumber
- Quantidade de itens do lote.
- processednumber
- Itens já resolvidos (no início, só os inválidos).
- found / not_found / invalid / errorsnumber
- Contadores por resultado até o momento.
- status_urlstring
- Caminho para acompanhar o lote. Também vem no cabeçalho
Location. - credits_remainingnumber
- Saldo atual. Pode ser ocultado no painel.
cURL
1curl -X POST https://api.brazid.com/v1/cnpj/batch \2 -H "x-api-key: $BRAZID_API_KEY" \3 -H "Content-Type: application/json" \4 -d '[{"cnpj":"12.345.678/0001-95"},{"cnpj":"11.222.333/0001-81"}]'
1const res = await fetch('https://api.brazid.com/v1/cnpj/batch', {2 method: 'POST',3 headers: {4 'x-api-key': process.env.BRAZID_API_KEY,5 'Content-Type': 'application/json',6 },7 body: JSON.stringify([8 {9 "cnpj": "12.345.678/0001-95"10 },11 {12 "cnpj": "11.222.333/0001-81"13 }14 ]),15});16 17const data = await res.json();18console.log(res.status, data);
1import os2import requests3 4res = requests.post(5 "https://api.brazid.com/v1/cnpj/batch",6 headers={"x-api-key": os.environ["BRAZID_API_KEY"]},7 json=[8 {9 "cnpj": "12.345.678/0001-95"10 },11 {12 "cnpj": "11.222.333/0001-81"13 }14 ],15)16 17print(res.status_code, res.json())
1$ch = curl_init("https://api.brazid.com/v1/cnpj/batch");2curl_setopt_array($ch, [3 CURLOPT_RETURNTRANSFER => true,4 CURLOPT_CUSTOMREQUEST => "POST",5 CURLOPT_HTTPHEADER => [6 "x-api-key: " . getenv("BRAZID_API_KEY"),7 "Content-Type: application/json",8 ],9 CURLOPT_POSTFIELDS => '[{"cnpj":"12.345.678/0001-95"},{"cnpj":"11.222.333/0001-81"}]',10]);11 12$data = json_decode(curl_exec($ch), true);13$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
202 Accepted
1{2 "success": true,3 "batch_id": "5d8a2c71-3e94-4b60-a1f7-92c0b4e6d318",4 "status": "processing",5 "total": 2,6 "processed": 0,7 "found": 0,8 "not_found": 0,9 "invalid": 0,10 "errors": 0,11 "status_url": "/v1/cnpj/batch/5d8a2c71-3e94-4b60-a1f7-92c0b4e6d318",12 "credits_remaining": 2013}