TF Fiscal
Documentación

Verificación de NF-e

Consulta por chave

Devuelve los datos de la factura para una clave de acceso de 44 dígitos; consulta pura, sin veredicto de verificación.

GET/openapi/v3/consultas/nf-e/{chave}

Requiere las cabeceras de firma token, timestamp y sign, vea Autenticación.

Devuelve los datos de la factura para una clave de acceso de 44 dígitos. Endpoint de consulta pura: la respuesta no trae el bloque validation; los veredictos de verificación llegan exclusivamente por el webhook invoice.verify.completed (vea Verificación de NF-e).

Solicitud GET: el cuerpo firmado es la cadena vacía y la chave forma parte de la ruta firmada.

Parámetros

Parámetros de ruta

  • chavestringobligatorio

    Clave de acceso de 44 dígitos, solo dígitos; el último es el dígito verificador mod-11. Las claves malformadas se rechazan localmente con 10015104, sin consultar ninguna fuente.

    Ejemplo: 35260764962869000108550990001366171195929648

Respuestas

200

Datos de la factura. Misma estructura que la verificación de XML, sin el bloque validation.

  • tipostring

    Tipo de documento.

    Valores:NF-eNFC-e
  • modelostring

    Modelo del documento.

    Valores:5565
  • statusstring

    Estado fiscal en la SEFAZ.

    Valores:AutorizadaCanceladaDenegadaInutilizadaNaoEncontradaDesconhecida
  • statusDescriptionstring

    Descripción localizada de status, según el idioma de la solicitud (vea Localización de las respuestas en Verificación de NF-e).

  • ambienteEmissaostring

    Entorno en el que se emitió el documento.

    Valores:ProducaoHomologacao
  • numerostring

    Número de la factura nNF, sin ceros a la izquierda.

  • seriestring

    Número de serie.

  • dataEmissaostring

    Fecha y hora de emisión dhEmi, ISO-8601 con desplazamiento UTC, tal como figura en el documento (p. ej. 2026-07-23T11:20:05-03:00).

  • chaveAcessostring

    Clave de acceso de 44 dígitos (eco de la variable de ruta).

  • emitenteobject

    Emisor.

  • destinatarioobject

    Destinatario.

  • itensarray

    Líneas de la factura.

  • dataAutorizacaostring | null

    Fecha y hora de autorización en la SEFAZ dhRecbto (ISO-8601); null cuando el XML enviado no trae nodo de protocolo.

  • protocoloobject | null

    Protocolo de autorización; null cuando no hay nodo de protocolo.

  • valorTotalnumber

    Total neto de la factura vNF (tras descuentos), 2 decimales.

Errores

CódigoHTTP
10015104400

Chave malformada (longitud / caracteres / dígito verificador). Se rechaza localmente, sin realizar consulta. Valide antes: 44 dígitos, el último es el dígito verificador mod-11.

10015004400

Factura no encontrada en ninguna fuente. La chave es desconocida para la plataforma y para la fuente oficial; confirme la chave con el emisor.

Ejemplo de firma

Con app_secret = sk_live_9f8e7d6c5b4a, la chave 35260764962869000108550990001366171195929648 y timestamp = 1784906308, la cadena firmada es (GET, cuerpo vacío; la chave está en la ruta):

text
sign_input = "sk_live_9f8e7d6c5b4a"
+ "/openapi/v3/consultas/nf-e/35260764962869000108550990001366171195929648"
+ ""
+ "1784906308"
sign = md5Hex(sign_input)

Fuentes de datos y resultados

La plataforma resuelve la chave por los niveles siguientes; se devuelve el primer acierto:

CasoResultado
Enviada previamente para verificación (la plataforma conserva el registro)Datos completos de la factura
Factura emitida por esta plataformaDatos completos interpretados del XML autorizado
Chave desconocidaDatos autorizados completos obtenidos de la fuente oficial, según la política de la plataforma
Sin acierto en ninguna fuenteHTTP 400, { "code": 10015004, "message": "Invoice not found" }
Chave malformada / dígito verificador incorrectoHTTP 400, { "code": 10015104, ... }; no se realiza ninguna consulta

Nueva verificación

Este endpoint tiene forma GET fija y no dispone de canal de nueva verificación. Para forzar una nueva comprobación, reenvíe el XML por la verificación de XML con la cabecera forceRevalidate: true. La consulta por chave puede servir como alternativa de sondeo al webhook, pero el veredicto en sí solo se envía por el webhook.