Consulta Completa
curl --request GET \
--url https://api.validanfe.com/NFe/ConsultarNFeFull/{chave} \
--header 'X-API-KEY: <x-api-key>'import requests
url = "https://api.validanfe.com/NFe/ConsultarNFeFull/{chave}"
headers = {"X-API-KEY": "<x-api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-KEY': '<x-api-key>'}};
fetch('https://api.validanfe.com/NFe/ConsultarNFeFull/{chave}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.validanfe.com/NFe/ConsultarNFeFull/{chave}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-KEY: <x-api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.validanfe.com/NFe/ConsultarNFeFull/{chave}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<x-api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.validanfe.com/NFe/ConsultarNFeFull/{chave}")
.header("X-API-KEY", "<x-api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.validanfe.com/NFe/ConsultarNFeFull/{chave}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<x-api-key>'
response = http.request(request)
puts response.read_body{
"200": {},
"400": {},
"401": {},
"404": {},
"429": {},
"500": {},
"nNF": 123,
"dhEmi": "<string>",
"natOp": "<string>",
"prod.xProd": "<string>",
"prod.qCom": 123,
"prod.vProd": 123,
"vProd": 123,
"vNF": 123,
"vTotTrib": 123
}API NFe
Consulta Completa
Consulte todos os dados detalhados de uma NFe, incluindo produtos, impostos e totais
GET
/
NFe
/
ConsultarNFeFull
/
{chave}
Consulta Completa
curl --request GET \
--url https://api.validanfe.com/NFe/ConsultarNFeFull/{chave} \
--header 'X-API-KEY: <x-api-key>'import requests
url = "https://api.validanfe.com/NFe/ConsultarNFeFull/{chave}"
headers = {"X-API-KEY": "<x-api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-KEY': '<x-api-key>'}};
fetch('https://api.validanfe.com/NFe/ConsultarNFeFull/{chave}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.validanfe.com/NFe/ConsultarNFeFull/{chave}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-KEY: <x-api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.validanfe.com/NFe/ConsultarNFeFull/{chave}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<x-api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.validanfe.com/NFe/ConsultarNFeFull/{chave}")
.header("X-API-KEY", "<x-api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.validanfe.com/NFe/ConsultarNFeFull/{chave}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<x-api-key>'
response = http.request(request)
puts response.read_body{
"200": {},
"400": {},
"401": {},
"404": {},
"429": {},
"500": {},
"nNF": 123,
"dhEmi": "<string>",
"natOp": "<string>",
"prod.xProd": "<string>",
"prod.qCom": 123,
"prod.vProd": 123,
"vProd": 123,
"vNF": 123,
"vTotTrib": 123
}Endpoint
Parâmetros
string
required
Chave de acesso da NF-e (44 caracteres numéricos)Exemplo:
35170608530528000184550000000154301000771561Headers
string
required
Token de autenticação da API
string
default:"application/json"
Tipo de conteúdo aceito na resposta
Exemplos de Requisição
curl -X GET "https://api.validanfe.com/NFe/ConsultarNFeFull/35170608530528000184550000000154301000771561" \
-H "Accept: application/json" \
-H "X-API-KEY: SEU_TOKEN_AQUI"
const response = await fetch(
'https://api.validanfe.com/NFe/ConsultarNFeFull/35170608530528000184550000000154301000771561',
{
method: 'GET',
headers: {
'Accept': 'application/json',
'X-API-KEY': 'SEU_TOKEN_AQUI'
}
}
);
const nfeCompleta = await response.json();
import requests
url = "https://api.validanfe.com/NFe/ConsultarNFeFull/35170608530528000184550000000154301000771561"
headers = {
"Accept": "application/json",
"X-API-KEY": "SEU_TOKEN_AQUI"
}
response = requests.get(url, headers=headers)
nfe_completa = response.json()
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.validanfe.com/NFe/ConsultarNFeFull/35170608530528000184550000000154301000771561');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Accept: application/json',
'X-API-KEY: SEU_TOKEN_AQUI'
]);
$response = curl_exec($ch);
$nfe_completa = json_decode($response, true);
curl_close($ch);
?>
Códigos de Resposta
Success
NF-e encontrada com todos os dados detalhados
Bad Request
Chave inválida ou mal formatada
Unauthorized
Token de autenticação ausente ou inválido
Not Found
NF-e não encontrada
Too Many Requests
Limite de requisições excedido (5/min)
Internal Server Error
Erro interno da API
Estrutura da Resposta
A resposta contém toda a estrutura da NF-e, incluindo:📋 Dados Principais
📋 Dados Principais
- Identificação (
ide): Data, número, série, natureza da operação - Emitente (
emit): CNPJ, nome, endereço, inscrições - Destinatário (
dest): CPF/CNPJ, nome, endereço - Protocolo (
protNFe): Autorização e validação
🛍️ Produtos e Serviços
🛍️ Produtos e Serviços
- Detalhamento (
det): Lista de todos os produtos/serviços - Códigos: NCM, CEST, CFOP, código do produto
- Quantidades: Comercial e tributável
- Valores: Unitário e total por item
💰 Impostos e Tributos
💰 Impostos e Tributos
- ICMS: Alíquotas e valores por situação tributária
- PIS/COFINS: Cálculos detalhados
- IPI: Quando aplicável
- Tributos Totais: Valor aproximado dos tributos
📊 Totais e Cobrança
📊 Totais e Cobrança
- Totais da NF-e: Valores consolidados
- Duplicatas: Parcelas e vencimentos
- Formas de Pagamento: Detalhamento dos pagamentos
Exemplo de Resposta
{
"nfeProc": {
"protNFe": {
"infProt": {
"chNFe": "35170608530528000184550000000154301000771561"
}
},
"NFe": {
"infNFe": {
"Id": "NFe35170608530528000184550000000154301000771561",
"ide": {
"tpNF": 1,
"mod": 55,
"nNF": 15430,
"dhEmi": "2017-06-05T08:31:06-03:00",
"natOp": "VENDA"
},
"emit": {
"xNome": "COMERCIO DE TESTE LTDA EPP",
"CNPJ": "56776378000136",
"enderEmit": {
"xLgr": "AV FICTICIA",
"xMun": "SAO PAULO",
"UF": "SP"
}
},
"dest": {
"xNome": "MARIA FICTICIA DOS SANTOS",
"CPF": 67879577696
},
"det": [
{
"nItem": 1,
"prod": {
"cProd": 346,
"xProd": "SULFITE A4 75GR BOREAL (5000FLS)",
"qCom": 5,
"vUnCom": 149,
"vProd": 745
},
"imposto": {
"vTotTrib": 254.19
}
}
],
"total": {
"ICMSTot": {
"vProd": 745,
"vNF": 745,
"vTotTrib": 254.19
}
}
}
}
}
}
{
"error": "A chave da NF-e é obrigatória."
}
{
"error": "NF-e não encontrada."
}
Principais Campos
Identificação (ide)
number
Número da Nota Fiscal
string
Data e hora de emissão
string
Natureza da operação
Produtos (det)
string
Descrição do produto/serviço
number
Quantidade comercial
number
Valor total do produto
Totais (ICMSTot)
number
Valor total dos produtos
number
Valor total da Nota Fiscal
number
Valor aproximado total dos tributos
Diferenças da Consulta Resumida
Consulta Resumida
- Dados básicos de protocolo
- Status da autorização
- XML simples
- Resposta mais rápida
Consulta Completa
- Todos os produtos detalhados
- Impostos por item
- Dados de emitente/destinatário
- Informações de transporte
Quando UsarUse a consulta completa quando precisar de:
- Detalhes de produtos e impostos
- Dados para emissão de relatórios
- Informações completas para auditoria