TF Fiscal
开发文档

开票主体

TF Fiscal 开票主体的生命周期、一个主体如何同时服务 NF-e / CT-e / DC-e、税制推导、DC-e 开通方式与相关错误码。

什么是开票主体

开票主体empresa)是被代为开具单据的法律实体:电商平台的卖家、承运人,或为自己开票的集成商。每个主体由注册开票主体返回的 empresaId 标识,它是所有发行、查询、取消端点的路径变量。

步骤端点说明
1 注册主体POST /openapi/v2/empresas返回 empresaIddceHabilitado;请求体带 id 即更新既有主体
2 关联证书POST /openapi/v1/empresas/{empresaId}/certificadoDigitalA1 证书(.pfx / .p12)与密码;multipart 或 JSON + Base64
3 登记回调POST /openapi/v1/webhooks每个应用一个回调地址,所有单据类型共用

生命周期

  1. 注册:注册接口调用成功后,主体进入平台审核队列。同一 CNPJ 重复注册返回 10003002;直接使用原 empresaId,或带 id 更新。
  2. 证书:关联 A1 证书。证书须属于主体 CNPJ(10003010)、在有效期内(10003011)且与当前生效证书不同(10003012);密码不符返回 CER0005。上传成功即替换旧证书。
  3. 审批:由运营审批主体。运营审批通过、且证书关联成功后主体方可开票。审批前开票,NF-e 返回 10004004(DC-e 为 DCe00008,CT-e 为 10017004)。审批进度请与平台运营确认。
  4. 环境:每个主体有一个当前环境,认证测试 Homologacao 或生产 Producao。新注册主体默认认证测试;切生产由平台运营操作、不开 API。每个发行请求里的环境值(NF-e 与 CT-e 为 ambienteEmissao,DC-e 为 ambiente必须与主体当前环境一致,不一致返回 10004030(NF-e)、10017010(CT-e)或 DCe00004(DC-e),这是防止测试单据误开进生产的硬校验。参见环境

注意: 更新(请求体带 id)不重新提交审核,也不改变主体状态与环境。

一个主体,三种单据

同一 empresaId、同一证书、同一回调地址服务所有单据类型。不同之处在于各类型所需的号段:

单据类型模型号段配置方式环境字段不可开票错误码
NF-e55注册时的 emissaoNFeProduto.ambienteProducaosequencialNFe / serieNFeambienteEmissao10004004
CT-e57由平台侧配置;注册报文没有 CT-e 配置块。未配置号段,或存在多个启用号段且请求未指定时,发行返回 10017007ambienteEmissao10017004
DC-e99注册时或带 id 更新时的 emissaoDCe.ambienteProducaotipoEmitentesequencialDCe / serieDCesiteMarketplaceambienteDCe00008
  • emissaoNFeProdutoemissaoDCe 各自可选、至少传一个。只开 NF-e 传前者,只开 DC-e 的主体可省略前者(不建模型 55 号段),两个都传则两种单据同时开通。两个都缺返回 400 10001001
  • 注册时提交的系列与下一号即开票使用的号段,此后平台自动连续取号。
  • CT-e 发行还要求该 CNPJ 在其州税务局有 CT-e 发行资质;资质缺失时 SEFAZ 返回 230 - IE do emitente não cadastrada,平台无法代为解决。

税制推导

主体税制由注册时的两个布尔值推导,更新不可变更:

meioptanteSimplesNacional税制
true任意MEI
falsetrueSimples Nacional
falsefalse一般税制

税制决定 NF-e 商品行可用的税码族(Simples / MEI 用 CSOSN,一般税制用 CST),见 NF-einscricaoEstadual 在本平台为必填,缺失返回 10003006

开通 DC-e

DC-e(模型 99)由 emissaoDCe 配置块开通:

json
"emissaoDCe": {
"ambienteProducao": {
"tipoEmitente": "Marketplace",
"sequencialDCe": 1,
"serieDCe": "1",
"siteMarketplace": "https://loja.exemplo.com.br"
}
}
  • tipoEmitenteMarketplace(电商平台代非纳税人卖家 / 个人发件)或 OwnIssuer(企业自发)。Carrier 可登记但发行被 10019013 拒绝,待新 schema 包发布后放开。Marketplace 必须传 siteMarketplace
  • 未传 emissaoDCe 的主体不会开通 DC-e:注册仍成功,响应 dceHabilitado=false,发行时收到 DCe00004。请在注册当场核对该字段。
  • 事后补开 DC-e:带 id 重传注册报文并加上 emissaoDCe 块。模型 99 号段只升不降sequencialDCe 只能抬高下一号,不能降低(400 10001001);旧系列仍启用时换 serieDCe 会被拒绝(400 10001001,须经运营)。

相关错误码

codigoHTTP场景处置
10003002400CNPJ 已注册该主体已存在,直接使用原 empresaId 或带 id 更新
10003000404empresaId 不存在或非本应用名下核对 empresaId
10003006400注册资料缺 IEinscricaoEstadual
10003010 / 10003011 / 10003012400证书 CNPJ 与主体不一致 / 已过期 / 与现有证书重复换正确证书
10003035400Base64 非法或证书超过 1MB(JSON 形态)修正编码或文件
CER0005400证书密码不符核对密码
GW001400注册:城市 / 州解析不到 IBGE 码核对 UF 与城市名
10004004400主体不可开票(未审批通过或证书未就绪)等待审批 / 关联证书
10004030400ambienteEmissao 与主体当前环境不一致按主体环境提交或联系运营切换
10001001400字段校验失败,或注册 / 更新契约错误(两个配置块都缺、更新改 cnpj / 换市政、DC-e 号段降号、换系列)mensagem 修正

完整清单见错误码