TF Fiscal
Documentation

NF-e verification

Chave lookup

Returns invoice data for a 44-digit access key; pure query, carries no verification verdict.

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

Requires the token, timestamp and sign signature headers, see Authentication.

Returns invoice data for a 44-digit access key. Pure query endpoint: the response carries no validation block; verification verdicts are delivered exclusively through the invoice.verify.completed webhook (see NF-e verification).

GET request: the signed body is the empty string and the chave is part of the signed path.

Parameters

Path parameters

  • chavestringrequired

    44-digit access key, digits only; the last digit is a mod-11 check digit. Malformed keys are rejected locally with 10015104 and no lookup is attempted.

    Example: 35260764962869000108550990001366171195929648

Responses

200

Invoice data. Same structure as XML verification, without the validation block.

  • tipostring

    Document type.

    Values:NF-eNFC-e
  • modelostring

    Document model.

    Values:5565
  • statusstring

    SEFAZ fiscal status.

    Values:AutorizadaCanceladaDenegadaInutilizadaNaoEncontradaDesconhecida
  • statusDescriptionstring

    Localized description of status, per request language (see Response localization in NF-e verification).

  • ambienteEmissaostring

    Environment the document was issued in.

    Values:ProducaoHomologacao
  • numerostring

    Invoice number nNF, no leading zeros.

  • seriestring

    Series number.

  • dataEmissaostring

    Issue time dhEmi, ISO-8601 with UTC offset, verbatim from the document (e.g. 2026-07-23T11:20:05-03:00).

  • chaveAcessostring

    44-digit access key (echo of the path variable).

  • emitenteobject

    Issuer.

  • destinatarioobject

    Recipient.

  • itensarray

    Invoice line items.

  • dataAutorizacaostring | null

    SEFAZ authorization time dhRecbto (ISO-8601); null when the submitted XML carries no protocol node.

  • protocoloobject | null

    Authorization protocol; null when there is no protocol node.

  • valorTotalnumber

    Invoice net total vNF (after discounts), 2 decimal places.

Errors

CodeHTTP
10015104400

Malformed chave (length / characters / check digit). Rejected locally, no lookup attempted. Validate first: 44 digits, the last one is a mod-11 check digit.

10015004400

Invoice not found in any source. The chave is unknown to the platform and the official data source; verify the chave with its issuer.

Signing example

Given app_secret = sk_live_9f8e7d6c5b4a, the chave 35260764962869000108550990001366171195929648 and timestamp = 1784906308, the signing string is (GET, empty body; the chave is part of the path):

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

Data sources and outcomes

The platform resolves the chave through the following tiers; the first hit is returned:

CaseResult
Previously submitted for verification (platform retains the record)Full invoice data
Invoice issued through this platformFull invoice data parsed from the authorized XML
Unknown chaveFull authorized data fetched from the official data source, per platform policy
No source hitHTTP 400, { "code": 10015004, "message": "Invoice not found" }
Malformed chave / bad check digitHTTP 400, { "code": 10015104, ... }; no lookup is attempted

Re-verification

This endpoint has a fixed GET shape and no re-verification channel. To force a re-check, resubmit the XML through XML verification with the forceRevalidate: true header. The chave lookup can serve as a polling fallback to the webhook, but the verdict itself is pushed only through the webhook.