TF Fiscal
开发文档

NF-e 验证

XML 验证

提交 NF-e XML 原文;同步返回一级结论与票面数据,并启动 SEFAZ 核验。

POST/openapi/v3/consultas/nf-e/xml
需要 token、timestamp、sign 三个签名头,参见认证与签名。

提交 NF-e XML 原文,同步返回一级结论与解析出的票面数据;一级通过后自动进入二级 SEFAZ 核验,最终结论经 invoice.verify.completed webhook 推送(见 NF-e 验证)。

HTTP 200 表示请求受理成功,不代表发票通过验证。 XML 格式合法但校验不通过仍返回 200,结论在 validation 块中。请勿以 HTTP 状态码判断验证结果。

请求头

Content-Type*
string请求体类型
forceRevalidate
bool强制重验

* 必填字段

200
请求受理成功。解析出的票面数据加上带一级结论的 validation 块。包含校验不通过的情况:请检查 validation.validationStatus 与 validation.errors。
tipo
string单据类型
modelo
string单据模型码
status
string税务状态
statusDescription
string状态说明
ambienteEmissao
string开票环境
numero
string发票号
serie
string系列号
dataEmissao
string开具时刻
tipoOperacao
string操作类型(tpNF),从开票方看货物的方向
chaveAcesso
string访问密钥
object开票方
object收票方
array商品行
dataAutorizacao
string授权时刻
object授权协议
valorTotal
number整单净额
object一级校验结论

  • 推荐提交 SEFAZ 授权后的完整文件,带授权协议;只有发票、没有授权协议的文件也接受,产生一条 PROTOCOL_MISSING 提示,照常受理。
  • 硬约束:上限 1 MB、仅 UTF-8、禁止 DTD(含 <!DOCTYPE 直接拒绝)。
  • 签名:body 参与签名前须去除全部 CR 与 LF,而实际发送的请求体保持原样:
text
sign = md5Hex(app_secret + "/openapi/v3/consultas/nf-e/xml" + 去CRLF后的XML + timestamp)

forceRevalidate 头不参与签名。完整规则见 认证与签名。