Consultar NF-e sem certificado
Baixe o XML de uma NF-e só pela chave de acesso, sem certificado digital. Cópia para leitura, sem a assinatura digital.
POST /api/consultar-nfe-xml-sem-certificado
Retorna o XML de uma NF-e (modelo 55) a partir da chave de acesso de 44 dígitos, sem certificado digital. Uma chave por requisição.
O XML é uma cópia para leitura, sem a assinatura digital. Traz os dados da nota, mas não substitui o XML oficial na escrituração e não passa em validação de assinatura nem de schema. Para o XML oficial, use Consultar NF-e com certificado, com o certificado A1 de quem participou da nota.
Para consultar várias notas, faça uma requisição por chave. Cada conta pode ter até 2 consultas em andamento ao mesmo tempo e até 30 por minuto. A resposta mantém o envelope com resultados[] contendo um item. No painel, dá para colar até 50 chaves de uma vez.
Este endpoint tem limite por minuto próprio do plano, separado das outras rotas: 5 no Lite, 20 no Starter, 60 no Pro e 120 no Enterprise. Nota ainda não consultada leva alguns segundos; nota já consultada antes volta na hora.
Autenticação
Envie sua chave no header X-API-Key. Veja Autenticação para detalhes.
Corpo da requisição
Envie um JSON (Content-Type: application/json) com um único campo.
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
chave | string | Sim | Chave de acesso de 44 posições, modelo 55. Aceita CNPJ alfanumérico do emitente. Espaços, pontos e outros separadores são ignorados. |
Nenhum outro campo é aceito. Se enviar certificado ou senha, a API responde 422.
Cobrança
- A consulta é cobrada quando a chave é válida, mesmo que a nota não seja encontrada (
nao_encontrado). - Chave inválida (dígito verificador, UF, data, modelo, CNPJ/CPF do emitente) é recusada com
400e não é cobrada. Chave de API inválida também não. - Depois de um
nao_encontrado, a mesma chave volta comonao_encontradosem cobrança por 1 hora, se a nota for do mês atual ou do anterior, ou por 24 horas, nos demais casos. Nota recém-emitida pode ainda não estar disponível: tente de novo depois desse prazo. - Consultar de novo uma chave que já retornou XML cobra de novo. Para baixar outra vez sem custo, use o histórico do painel.
- Falha nossa (
erro) não é cobrada. - As consultas grátis do mês não valem para este produto.
Preço por nota: R$ 0,05 no Enterprise (2 consultas). Nos planos Lite, Starter e Pro, o mesmo da NF-e com certificado: 3 consultas por nota, ou R$ 2,01, R$ 0,30 e R$ 0,195. Veja a tabela em Planos e limites.
Exemplos de código
curl -X POST "https://api.fiscalapi.com.br/api/consultar-nfe-xml-sem-certificado" \
-H "X-API-Key: fapi_sua_chave_aqui" \
-H "Content-Type: application/json" \
-d '{"chave":"35261012345678000195550010000001231123456784"}'const response = await fetch(
"https://api.fiscalapi.com.br/api/consultar-nfe-xml-sem-certificado",
{
method: "POST",
headers: {
"X-API-Key": "fapi_sua_chave_aqui",
"Content-Type": "application/json",
},
body: JSON.stringify({
chave: "35261012345678000195550010000001231123456784",
}),
}
);
const data = await response.json();
console.log(data.resultados[0].status);import requests
response = requests.post(
"https://api.fiscalapi.com.br/api/consultar-nfe-xml-sem-certificado",
headers={"X-API-Key": "fapi_sua_chave_aqui"},
json={"chave": "35261012345678000195550010000001231123456784"},
)
data = response.json()
print(data["resultados"][0]["status"])$response = Http::withHeaders([
'X-API-Key' => 'fapi_sua_chave_aqui',
])->post('https://api.fiscalapi.com.br/api/consultar-nfe-xml-sem-certificado', [
'chave' => '35261012345678000195550010000001231123456784',
]);
$data = $response->json();Resposta
Campos de nível superior
| Campo | Tipo | Descrição |
|---|---|---|
request_id | string | Identificador único da requisição. |
total | integer | Sempre 1 (uma chave por requisição). |
com_dado | integer | 1 se a nota foi encontrada, senão 0. |
creditos_cobrados | integer | Consultas debitadas nesta requisição (0 quando não houve cobrança). |
resultados | array | Lista com um resultado (a chave consultada). |
Campos de cada resultado (resultados[])
| Campo | Tipo | Descrição |
|---|---|---|
chave | string | Chave de acesso consultada, já normalizada. |
status | string | Resultado da chave. Veja a tabela de status. |
mensagem | string | Descrição legível do resultado. |
xml | string | null | XML da nota quando status = ok; caso contrário null. |
assinado | boolean | Sempre false: o XML não traz a assinatura digital. |
tipo_xml | string | Sempre "leitura". |
Valores de status
| Status | Significado | Cobra |
|---|---|---|
ok | XML retornado em xml. | Sim |
nao_encontrado | Não encontramos esta nota. Confira a chave de acesso. | Sim, na busca. Repetir a mesma chave em até 1 h (nota recente) ou 24 h não cobra. |
erro | Não foi possível obter a nota agora. Tente de novo em instantes. | Não |
Exemplo de resposta
{
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"total": 1,
"com_dado": 1,
"creditos_cobrados": 3,
"resultados": [
{
"chave": "35261012345678000195550010000001231123456784",
"status": "ok",
"mensagem": "Nota encontrada.",
"xml": "<nfeProc versao=\"4.00\" ...>...</nfeProc>",
"assinado": false,
"tipo_xml": "leitura"
}
]
}A raiz do XML pode ser nfeProc ou NFe. Não conte com a ordem dos campos do schema nem com a assinatura.
Códigos de erro
Os erros seguem o formato RFC 7807: o código fica no campo title.
| Código | HTTP Status | Descrição |
|---|---|---|
PARAMETRO_AUSENTE | 400 | Chave de acesso não informada. |
CHAVE_INVALIDA | 400 | Chave recusada: tamanho diferente de 44, caractere inválido, dígito verificador, UF, data (AAMM), modelo diferente de 55, tipo de emissão ou CNPJ/CPF do emitente inválidos. A mensagem diz o motivo. Não é cobrada. |
API_KEY_ERROR | 403 | Chave de API ausente, inválida ou revogada. Não é cobrada. |
LIMITE_ATINGIDO | 402 | Saldo insuficiente no plano e na recarga, ou conta sem plano ativo. |
TERMS_UPDATE_REQUIRED | 409 | Os Termos de Uso foram atualizados. Aceite a nova versão no painel para continuar. |
| (validação) | 422 | Corpo inválido: chave ausente ou campo além dela. Resposta padrão de validação, em inglês, no formato {"detail": [...]}. |
RATE_LIMIT_EXCEEDED | 429 | Limite de requisições por minuto excedido. Aguarde o tempo do header Retry-After. |
CONSULTAS_SIMULTANEAS | 429 | A conta já tem 2 consultas em andamento. Aguarde alguma terminar (header Retry-After: 5). |
LIMITE_FALHAS_DIARIO | 429 | Muitas consultas sem resultado no dia, somando as consultas de NF-e com e sem certificado. Tente de novo depois do horário do header Retry-After. |
internal_error | 500 | Erro inesperado no servidor (vem em type: urn:fiscalapi:error:internal_error; title é Internal Server Error). Não é cobrada. |
FEATURE_UNDER_REVIEW | 503 | Funcionalidade temporariamente indisponível. |
TIMEOUT | 504 | A consulta passou de 95 segundos. Não é cobrada; tente de novo. Corpo: {"request_id", "error": "TIMEOUT", "message"}, sem o formato RFC 7807. |
XML da NF-e pela chave de acesso · Planos e preços
Esta pagina foi util?
Consultar NF-e com certificado
Baixe o XML completo e assinado (nfeProc) da NF-e por chave de acesso usando o certificado digital do cliente, sem custódia.
Consultar CNPJ
Consulta dados cadastrais de um CNPJ na Receita Federal (razão social, CNAE, QSA, endereço, Simples Nacional e MEI, contato e mais).