TF Fiscal
开发文档

参考

错误码

TF Fiscal Open API 错误码合并参考,按层与领域分组,附 HTTP 状态、场景与处置建议。

错误格式

错误按产出层分三种格式,见通用约定:

层HTTP格式码字段
平台网关(鉴权、订阅、限流、请求体大小、文件下载链接)401 / 403 / 404 / 413 / 429 / 503平台统一响应体 {success, errorType, code, message}code(整数)
开票主体、NF-e、CT-e、DC-e、Webhook 注册400 / 404数组 [{codigo, mensagem}],每个问题一条codigo(字符串)
NF-e 验证与身份核验400 / 422 / 428 / 451 / 500 / 503无包装对象 {code, message}code(整数)

message 随 Language / Accept-Language 请求头本地化(默认葡语)。请按码分支,不要按文案分支。数组格式里 GW001、CER0005、NFe0001、CTe0001、DCe0001、DCe0000x 与 NFSe0001 沿用字母数字原码;其余 codigo 为平台错误码数字串。

各领域码段:

码段领域
10001xxx请求校验与平台异常
10003xxx开票主体与证书
10004xxxNF-e 开票、取消与更正函
10005xxx税务引擎
10009xxx开放平台(鉴权、订阅、限流、webhook、下载链接)
10013xxx文件下载
10015xxxNF-e 验证
10016xxx身份核验(CNPJ / CPF)
10017xxxCT-e
10018xxxNFS-e
10019xxxDC-e

网关:鉴权与授权

平台统一响应体格式,在请求到达接口前产出。401 与 403 属配置错误,不修复就重试没有意义,还可能触发限流。签名方案见认证与签名。

HTTP错误码含义处置
40110009000缺少签名请求头(token / sign / timestamp)每次请求带全三个头
40110009001时间戳非法或时钟偏差超 ±300 秒校准时钟(NTP);每次请求重新生成时间戳,勿复用
40110009002token 无效核对 app_secret;如已轮换请更新配置
40110009003签名不匹配重新推导签名;见认证与签名的核对清单
40310009004应用已停用联系平台
40310009015应用未生效(待审批或已驳回)等待审批 / 联系平台
40310009014集成商账户已停用联系平台
40310009005接口未订阅为所调端点申请订阅
42910009006超出限流额度退避重试(初始 1 秒,倍增至 30 秒上限,加抖动);限流按应用与接口组两级实施
41310009027请求体超过网关大小上限减小请求体;NF-e 验证每次只发送一张不超过 1 MB 的 NF-e

下载链接(linkDanfe、linkDownloadXml、linkDacce、nfeLinkXml、cteLinkDacte、dceLinkDace 等)是不带签名头的 GET 请求;失败以 HTTP 状态 + 平台统一响应体返回,见文件下载:

HTTP错误码含义处置
40110009035下载链接无效(路径被改、令牌挪用或签名不符)使用查询接口原样返回的链接
40110009036下载链接已过期重新调用查询接口获取新链接
50310009037文件尚未生成按 Retry-After 稍后重试同一链接
40410013011下载的文件不存在核对链接来源
42910013016回调链接的单 IP 下载过于频繁按 Retry-After 重试

请求校验与平台异常

错误码HTTP格式场景处置
10001001400数组请求字段校验失败,每字段一条;亦包括 emissaoDCe 段的注册 / 更新契约错误(两个配置块都缺、更新改 cnpj / 换市政、号段降号、换系列)按 mensagem 修正
10001000500无包装对象验证或身份核验调用的平台侧异常退避重试;持续出现请携带失败请求的 timestamp 与路径联系平台

开票主体与证书

数组格式。见开票主体。

错误码HTTP场景处置
GW001400注册:城市 / 州解析不到 IBGE 码;开票:收件人 IBGE 市政码不存在或与 uf 不一致核对 UF 与城市名 / IBGE 码
CER0005400证书密码不符核对密码
10003000404empresaId 不存在或非本应用名下核对 empresaId
10003002400CNPJ 已注册该主体已存在,直接使用原 empresaId
10003006400注册资料缺 IE补 inscricaoEstadual
10003010400证书 CNPJ 与主体不一致换正确证书
10003011400证书已过期换有效证书
10003012400证书与现有证书重复无需上传
10009033400Webhook 注册参数不合法(id 不匹配 / contentType 非 JSON)按说明修正,见 Webhook 注册

NF-e

数组格式。业务错误为 HTTP 400;单据不存在为 HTTP 404,codigo 为 NFe0001。发行阶段的 SEFAZ 驳回不走 HTTP 错误,而是查询结果 Negada + webhook invoice.rejected。见 NF-e。

错误码HTTP场景处置
NFe0001404查询 / 取消 / 更正函的 nfeId 不存在核对开票时传入的 id 与 empresaId
10004002400该 CNPJ 待处理开票任务超限稍后重试
10004004400主体不可开票(未审批通过或证书未就绪)等待审批 / 关联证书
10004012400取消 / 更正函:票不在已授权状态查询确认状态
10004013400取消:超出 24 小时窗口改开退货票
10004014400取消:SEFAZ 拒绝(附返回码与原因)按 SEFAZ 原因处理
10004015400更正函:同票已达 20 封不能再登记,需取消重开或退货票
10004016400更正函:SEFAZ 拒绝(附返回码与原因)按 SEFAZ 原因处理
10004017400更正函:内容净化后不足 15 字符用葡语 / ASCII 文本重写
10004019400更正函:超出授权后 720 小时窗口只能取消重开或退货票
10004021 至 10004026400退货票引用校验:缺引用 / 非退货票带引用 / 原票不存在或不属本主体 / 原票未授权 / 原票行不存在 / 数量超原票行见 NF-e 开票的退货票规则
10004030400ambienteEmissao 与主体当前环境不一致按主体环境提交或联系运营切换,见环境
10004031400不支持的取值(presencaConsumidor / 多条支付 / 未知支付类型 / tipoPessoa 与证件不符 / CPF 买方携带 inscricaoEstadual)按 NF-e 开票的支持范围调整
10004034400CNPJ 买方未传 cliente.inscricaoEstadual补买方 IE(ICMS 纳税人)
10004043400契约字段缺失(税码所需的减基比例 / ST MVA 与税率 / 递延比例 / 按量单位税额 / IPI 税码 / pCredSN 请求与档案皆无),mensagem 点名字段路径按 NF-e 开票的税码矩阵补字段
10004044400字段不适用于该税码(非 ST 税码带 substituicaoTributaria、非抵免税码带 percentualCreditoSimples)去掉该组
10004045400CNPJ 买方的 cliente.inscricaoEstadual 不符合买方所在州的校验位规则(否则取号后被 SEFAZ 209 拒绝并烧号)核对买方 IE 与州
10004046400税码与主体税制不匹配(CRT 1/4 须三位 CSOSN,CRT 2/3 须两位 CST)按主体税制改税码
10004047400非纳税人买方使用了只对纳税人合法的税码(10/30/70、101/201/202/203)或携带 pCredSN改用 102 / 500 或不带抵免的 900
10005000400税务引擎校验拒绝(税制错配、ST 用于非纳税人、税率越界等)见 NF-e 开票的税参规则

NFC-e

数组格式。业务错误为 HTTP 400;单据或主体不存在为 HTTP 404。SEFAZ 驳回不走 HTTP 错误,而是查询结果 Negada + webhook nfce.rejected。见 NFC-e。

错误码HTTP场景处置
10022006404nfceId 不存在核对 id 与 empresaId
10003000404empresaId 不存在核对 empresaId
10022001400主体当前环境未开通 NFC-e注册或更新时传 emissaoNFeConsumidor 的对应环境
10022002400主体不可开票(未审批通过或证书不可用)等待审批或关联证书
10022003400ambienteEmissao 与主体当前环境不一致按主体环境提交
10022004400不符合 NFC-e 规则,mensagem 点名原因按原因修正,或改开 NF-e
10022007400超出取消期限(取消 30 分钟、替代取消 168 小时)按州规定另开 NF-e 冲销
10022008400当前状态不允许此操作(不是已授权、取消处理中)查询确认状态
10022009400州要求二维码 v2,但主体没有可用的安全码二维码 v2 由平台为主体切换,安全码只在生产环境生效,请联系平台
10001001400请求字段校验失败按 mensagem 修正
10005000400税务引擎校验拒绝按 mensagem 修正

10022004 常见原因:在场方式不允许;送货、取货地址跨州或买方是纳税人;金额超上限;未达识别要求;配送缺承运方或地址,或非配送填了承运方、运费方式;本州不允许配送;CFOP 或税码不在 NFC-e 允许范围;支付不足、找零不符或用了 SemPagamento,或刷卡组、支付说明用在不允许的支付方式上;携带 NFC-e 不允许的字段(一次列出全部);取值名未知。

SEFAZ 常见驳回(motivoStatus 原样回显):704 开票时刻早于 SEFAZ 收到时刻 5 分钟以上;717 在场方式不允许;725 CFOP 不允许;750 达到识别门槛但未识别消费者;780 超过州金额上限;785 / 786 / 787 / 788 本州不允许配送、配送缺承运方、缺消费者、缺地址;462 / 463 / 464 安全码未登记、已停用、二维码校验不符;865 支付合计小于票面总额。

CT-e

数组格式。业务错误为 HTTP 400;单据 / 任务不存在为 HTTP 404,codigo 为 CTe0001。发行阶段的 SEFAZ 驳回体现为查询结果 Negada + webhook cte.rejected。见 CT-e。

错误码HTTP场景处置
CTe0001404cteId 不存在或非本主体核对 id 与 empresaId
10003000404empresaId 不存在核对 empresaId
10017004400主体不可发行(未审批 / 证书未就绪)等待审批 / 关联证书
10017005 / 10017006400同请求并发重复 / 该 CNPJ 待处理任务超限稍后重试
10017007400号段无法确定(未配置或多个启用号段未指定)配置模型 57 号段
10017010400ambienteEmissao 与主体环境不一致按主体环境提交
10017011400市政 IBGE 码不存在核对 codigoIbge
10017012 / 10017013400参与方缺失 / 承担方与 IE 指示不符补参与方或改 indicadorIeTomador
10017014400单据引用不合法(缺失、chave 校验位错、三种类型混用、前序单据与服务类型不符)调整单据引用
10017015400单据类型与引用不符(补充 / 替代)按 tipo 补 ctesComplementados / cteSubstituido
10017016400运费组成合计不等于总额,或 aReceber 大于总额修正金额
10017017 / 10017018 / 10017019400RNTRC 非法 / 模态不支持 / 枚举或格式非法(mensagem 点名字段)按 mensagem 修正
10017020 至 10017025400税参缺失 / 禁传 / 与税制不符 / 跨州非纳税人缺 icmsUfFim / 税率表缺项 / CST 不支持见 CT-e 的税参说明
10017030400同 id 报文不同换 id 或沿用原报文
10017031400生产环境同 id 已有在途 / 已授权单据查询原单
10017040 至 10017045400状态不允许事件 / 超取消窗口 / 事件文本非法 / SEFAZ 拒绝事件 / 更正序号超限 / 被撤销事件不存在见 CT-e 的取消与事件规则
10017048 / 10017049400已登记信函更正不可取消 / 信函更正超 720 小时窗口见 CT-e 的取消与事件规则
10001001400请求字段校验失败(每字段一条)按 mensagem 修正

DC-e

数组格式。业务错误为 HTTP 400;单据 / 任务不存在为 HTTP 404,codigo 为 DCe0001。文档给出示例码的情形沿用该码值,其余 codigo 为平台错误码数字串。发行阶段的 SEFAZ 驳回体现为查询结果 Negada + webhook dce.rejected;取消阶段的 SEFAZ 拒绝走 dce.cancel_rejected。见 DC-e。

错误码HTTP场景处置
DCe0001404dceId 不存在、非本主体,或取消时单据尚未物化核对 id 与 empresaId;Pendente 单据待授权后再取消
10003000404empresaId 不存在核对 empresaId
DCe00004400主体未配置 DC-e 发行(缺 tipoEmitente / 模型 99 号段 / Marketplace 站点),或 ambiente 与主体当前环境不一致注册时传 emissaoDCe 或带 id 更新补配;按主体当前环境提交,切生产联系运营
DCe00005400Marketplace / Carrier 主体未传 remetente补发件方
DCe00006400remetente.endereco 缺失补发件方地址
DCe00007400巴西发件方缺 cpfCnpj补发件方证件
DCe00008400主体不可发行(未审批 / 证书未就绪)等待审批 / 关联证书
DCe00009400巴西收件方缺 cpfCnpj补收件方证件
GW001400市政 IBGE 码不存在或与 uf 不一致核对 cidade / uf
10019005 / 10019006400同请求并发重复 / 该 CNPJ 待处理任务超限稍后重试
10019007400号段无法确定(多个启用号段)联系运营收敛号段
10019013400主体类型 Carrier 当前不支持发行改用 Marketplace / OwnIssuer 主体
10019018400明细不合法(NCM 位数、数量 ≤ 0、单价为负)按 mensagem 修正
10019019400枚举或格式非法(mensagem 点名字段:tipoPessoa、modalidade、dataEmissao、证件、电话、邮箱、自发主体 remetente 与主体不符等)按 mensagem 修正
10019020400承运商 CNPJ 不合法修正 cnpjTransportadora
10019021400附加信息超长缩短文本
10019022400autorizacaoDownloadXml 条数或证件不合法;含发行方自身 CNPJ;同一证件重复修正该列表
10019030400同 id 报文不同换 id 或沿用原报文
10019031400生产环境同 id 已有在途 / 已授权单据查询原单
10019040 至 10019043400状态不允许取消 / 超 24 小时窗口 / 取消已受理 / 理由不合法见 DC-e 的取消规则
10019048400dataEmissao 超出允许窗口(超前大于 5 分钟或回溯大于 30 天,mensagem 带当前允许范围)改用当前时刻或省略 dataEmissao
10001001400请求字段校验失败(每字段一条);emissaoDCe 的注册 / 更新契约错误按 mensagem 修正

NFS-e

数组格式 [{codigo, mensagem}];业务错误为 HTTP 400;单据不存在为 HTTP 404,codigo 为 NFSe0001。发行是异步的:受理期的拒绝是同步 HTTP 错误,发行方的驳回体现为查询结果 Negada + webhook nfse.rejected。见 NFS-e。

错误码HTTP场景处置
10018001400受理期参数校验拒绝,mensagem 说明具体原因(含 IBS/CBS 门控未生效、圣保罗主体携带 ibsCbs、码值或结构约束不满足)按 mensagem 修正
NFSe0001404单据不存在:nfseId 不属于本主体,或进项密钥不在本主体的进项里核对 nfseId / chaveAcesso 与 empresaId
10018004400主体不可开票(停用 / 证书不可用)检查主体状态与证书
10018005400主体缺 NFS-e 档案,mensagem 点名缺哪一项注册时传 emissaoNFSe 或带 id 更新补配
10018010400该市镇的 NFS-e 标准尚未支持该市镇暂不可开,联系平台
10018012400服务码不在 LC 116 官方清单内核对 codigoTributacaoNacional
10018013400接收方证件不合法核对 CPF / CNPJ / NIF
10018014400服务出口缺出境国补 servico.paisPrestacao
10018015400被替代票不可替代核对被替代票状态
10018020400无法确定 ISS 税率(直传与市政参数均无)传 servico.iss.aliquota 或正确的 servico.codigoTributacaoMunicipal
10018022400Simples 主体不得直传 ISS 税率去掉 aliquota
10018023400判定联邦源泉扣缴还缺以下信息,请补充或直接传扣缴额:%s。%s 一次列出全部缺的字段路径:servico.retencoes.categoriaFederal、cliente.orgaoPublico、cliente.optanteSimplesNacional、servico.retencoes.modoContratacao、servico.retencoes.anexoSimples、servico.retencoes.inss/irrf/csll/pis/cofins补齐所列字段后重发,或在 servico.retencoes 直传扣缴额,无扣缴传 0;清单含 servico.retencoes.inss/irrf/csll/pis/cofins 时只能直传,见于服务分类要求人工判定、或本主体以接收方或中介方身份开票
10018030 / 10018031400同一请求正在处理中 / 该单号已开票或同 id 不同内容稍后重试;换单号或核对内容
10018040400取消分析申请已在处理中等市镇裁决
10018041400该票已被替代不可再操作
10018042400当前状态不允许该事件(取消;进项票表态:已取消 / 已被替代 / 已有表态 / 本主体非接收方或中介方)核对票状态,一张票每方只能表态一次
10018063400DPS 报文不符合官方 XSD,明细含行号、列号、错误键与元素名常见原因是文本含 Latin-1 以外字符、地址不完整、码值不在官方码表
10018064400NFS-e 事件报文不符合官方 XSD核对 motivo 长度(15-255)、codigoMotivo 取值与字符集
10018065400本票需要的 NFS-e 计税基础数据未导入,请在请求中直接传入箭头后的字段,或先导入基础数据:%s。%s 按「业务项 -> 可改传的请求字段」列出:retencao-federal -> servico.retencoes.inss/irrf/csll/pis/cofins、pis-cofins -> servico.pisCofins.aliquotaPis/aliquotaCofins、iss-local-incidencia -> servico.iss.municipioIncidencia.codigoIbge;只在请求没给、须由平台查的那一项用到未就绪的数据时出现,一律在受理时返回在请求里直接传箭头后的字段,或联系平台确认基础数据已导入;iss-local-incidencia 出现于服务发生地与开票方不同城时,传 servico.iss.municipioIncidencia 即可

NF-e 验证

无包装的 {code, message} 对象,HTTP 400,请求未进入校验流程。见 NF-e 验证。

错误码接口含义处置
10015000XML 验证请求体为空在 body 中发送 XML
10015001XML 验证超过 1 MB真实单张 NF-e 不会超过此限制;检查是否包了一层或二次编码
10015002XML 验证检测到 DTD(<!DOCTYPE)去除 DTD
10015003XML 验证编码非 UTF-8提交前转为 UTF-8
10015005XML 验证已停用,不再返回(原含义:该 chave 已由其他集成商提交验证)无需处理:不同集成商可各自验证同一张票
10015104chave 查询chave 非法(长度 / 字符 / 校验位)先本地校验:44 位数字;末位为 mod-11 校验位
10015004chave 查询各数据源均查无此票平台与官方数据源均无该 chave;与开票方核实

一级校验错误

以 HTTP 200 返回,位于 XML 验证响应的 validation.errors[]。这些不是传输错误:请求成功、单据不合格。除 PROTOCOL_MISSING(warning)外均为阻断项(终态 REJECTED)。

errors[].code数字码含义
XML_MALFORMED10015100XML 语法非法
XSD_INVALID10015101不符合 NF-e 4.00 XSD 版式
SIGNATURE_INVALID10015102数字签名验证失败(内容被篡改,或签名时证书已过期)
SIGNATURE_CERT_MISMATCH10015103签名证书 CNPJ 与开票方不符
ACCESS_KEY_INVALID10015104chave 结构 / 校验位非法
ACCESS_KEY_MISMATCH10015105chave 分段与票面字段不一致
PROTOCOL_MISMATCH10015106协议块与票内容不自洽
PROTOCOL_MISSING10015107无协议节点(warning,不阻断)
XML_VERSION_UNSUPPORTED10015108版式版本非 4.00

二级结论

非 HTTP 错误:经 webhook invoice.verify.completed 送达。

validationStatus终态处置
VALIDATED是可放行(发货、结算)
REJECTED是不可放行;reason 说明 SEFAZ 判定(已取消 / 否决 / 作废 / 查无 / 协议不符)
VALIDATION_ERROR是,可重试平台侧核验失败,非发票判定;与其他结论一样 24 小时内复用,请稍后带请求头 forceRevalidate: true 重新提交

身份核验

无包装的 {code, message} 对象。格式与校验位错误由平台本地拦截,不会发往上游数据源,因此不消耗调用额度也不计费。见身份核验。

错误码HTTP责任方含义处置
10016000400调用方CPF 格式不合法(须 11 位数字)检查是否误传格式符或位数不足
10016001400调用方CPF 校验位不合法本地先用 mod-11 算法校验
10016002400调用方出生日期格式不合法(须 DDMMYYYY 有效日期)注意是日月年顺序,且须为真实存在的日期
10016003400调用方未找到该 CPF 的信息该 CPF 不存在,或 CPF 与出生日期不匹配(二者不作区分)
10016004451第三方(上游依法拦截)LGPD: menor de 16 anos (Lei Felca),持有人小于 16 岁依法不提供数据,勿重试
10016005422第三方(上游依法拦截)LGPD: menor de idade,持有人 16 到 17 岁依法不提供数据,勿重试
10016006428第三方(上游依法拦截)LGPD: idade nao verificavel - informe a data de nascimento para completar a verificacao,年龄无法核实平台已带出生日期补核验一次仍未通过,勿重试
10016010400调用方CNPJ 格式不合法(须 14 位数字)检查是否误传格式符
10016011400调用方CNPJ 校验位不合法本地先用 mod-11 算法校验
10016012400调用方未找到该 CNPJ 的信息该 CNPJ 在官方登记中不存在
10016020503第三方(上游不可用)上游数据源暂不可用指数退避重试(初始 1 秒,倍增至 30 秒上限,加抖动);持续出现请联系平台

处理指引

  • 401 / 403:配置错误;修正凭证、订阅或时钟。不要原样重试。
  • 400 / 404:请求或业务规则问题;按码修正。少数码为暂时性,可稍后重试:10004002、10017005 / 10017006、10019005 / 10019006。
  • 422 / 428 / 451:身份核验的法定拦截;重试无意义。
  • 429:指数退避加抖动(初始 1 秒,倍增至 30 秒上限)。
  • 503:按 Retry-After 重试同一请求或链接(10009037、10016020)。
  • 5xx:退避重试;持续失败请携带失败请求的 timestamp 与路径联系平台。
  • 统一响应体 errorType:1 API 错误、2 SEFAZ 驳回、3 系统异常(可重试)、4 字段校验失败(修正请求)。
  • 不要盲目重发被驳回的单据:Negada 与 REJECTED 是终态结论,先按 SEFAZ 原因处理。