CT-e
开具 CT-e
受理一张模型 57、公路模态的 CT-e,异步向 SEFAZ 授权。
/openapi/v2/empresas/{empresaId}/ctetoken、timestamp、sign 三个签名头,参见认证与签名。CT-e 是为一次货运服务开具的电子税务单据。受理成功返回 HTTP 200 无内容。同一 id 重复提交:报文指纹相同复用原任务(幂等),指纹不同返回 10017030,上一次以失败告终则按新报文重开。结果经查询或 Webhook 获知。枚举字符串大小写不敏感。
路径参数
empresaId* | string | 主体标识 |
* 必填字段
请求体
id* | string | 请求标识 |
ambienteEmissao* | string | 开票环境 |
natureza* | string | 业务性质描述 |
cfop* | string | CFOP 代码 |
tipo* | string | 单据类型 |
tipoServico* | string | 服务类型 |
modal* | string | 运输模态 |
tomador* | string | 运费承担方 |
indicadorIeTomador* | string | 承担方纳税身份 |
retiraMercadoria | bool | 是否自提 |
detalheRetira | string | 自提说明 |
| object | 开单市政 |
* | object | 起运市政 |
* | object | 目的市政 |
*`remetente` 与 `destinatario` 至少一方 | object | 发货人 |
*`remetente` 与 `destinatario` 至少一方 | object | 收货人 |
| object | 发运方 |
| object | 接收方 |
*`tomador=Outros` 时必填 | object | 其他承担方 |
* | object | 货物信息 |
*除 `tipo=Complementar` 外必填 | object | 随货单据 |
*分包 / 转运 / 中转转运时必填 | array | 前序运输单据 |
* | object | 公路模态信息 |
* | object | 运费 |
* | object | 税参 |
| object | 账单分期 |
*`tipo=Substituto` 时必填 | object | 被替代 CT-e |
ctesComplementados*`tipo=Complementar` 时必填 | array | 被补充单据密钥 |
| object | 附加特征 |
| object | 计划路线 |
| object | 交付期限 |
observacoes | string | 备注 |
| array | 开票方备注 |
| array | 给税务机关的备注 |
autorizadosXml | array | XML 下载授权方 |
* 必填字段
无响应体
最常见的情形:承运人在同一州内运送随 NF-e 的货物,卖方付运费。下面的字段树只列要填的字段,没列出来的都不用传。
完整请求
{"id": "CTE-ORD-1","ambienteEmissao": "Homologacao","natureza": "PRESTACAO DE SERVICO DE TRANSPORTE","cfop": "5353","tipo": "Normal","tipoServico": "Normal","modal": "Rodoviario","tomador": "Remetente","indicadorIeTomador": "Contribuinte","origem": { "codigoIbge": 3550308 },"destino": { "codigoIbge": 3550308 },"remetente": {"cpfCnpj": "66500544000120", "inscricaoEstadual": "123456789012", "nome": "REMETENTE TESTE LTDA","endereco": { "logradouro": "AVENIDA PAULISTA", "numero": "1000", "bairro": "BELA VISTA", "codigoIbge": 3550308, "cep": "01310100" }},"destinatario": {"cpfCnpj": "12345678909", "nome": "DESTINATARIO TESTE","endereco": { "logradouro": "RUA AUGUSTA", "numero": "10", "bairro": "CONSOLACAO", "codigoIbge": 3550308, "cep": "01305000" }},"carga": { "valor": 500.00, "produtoPredominante": "MERCADORIA DIVERSA","quantidades": [{ "unidade": "Kg", "tipoMedida": "PESO BRUTO", "quantidade": 10 }] },"documentos": { "nfe": [{ "chave": "35260966500544000120550010000001231000000002" }] },"rodoviario": { "rntrc": "12345678" },"valorPrestacao": { "total": 100.00, "aReceber": 100.00, "componentes": [{ "nome": "FRETE PESO", "valor": 100.00 }] },"impostos": { "icms": { "situacaoTributaria": "00" } }}
id* | string | 请求标识 |
ambienteEmissao* | string | 开票环境 |
natureza* | string | 业务性质描述 |
cfop* | string | CFOP 代码 |
tipo* | string | 单据类型 |
tipoServico* | string | 服务类型 |
modal* | string | 运输模态 |
tomador* | string | 运费承担方 |
indicadorIeTomador* | string | 承担方纳税身份 |
* | object | 起运市政 |
* | object | 目的市政 |
* | object | 发货人 |
* | object | 收货人 |
* | object | 货物信息 |
* | object | 随货单据 |
* | object | 公路模态信息 |
* | object | 运费 |
* | object | 税参 |
* 必填字段
每种类型各自要求或禁止一种引用,传错返回 10017015。
Normal:普通开具
不传 ctesComplementados 与 cteSubstituido;documentos 必填。
"tipo": "Normal"
tipo* | string | 单据类型 |
* 必填字段
Complementar:给已授权 CT-e 补金额
传被补充 CT-e 的访问密钥;documentos 不用传。
"tipo": "Complementar","ctesComplementados": ["35260940673061000134570010000000011000000016"]
tipo* | string | 单据类型 |
ctesComplementados* | array | 被补充单据密钥 |
* 必填字段
Substituto:顶替此前的 CT-e
传被替代的 CT-e;其余字段与普通开具相同。
"tipo": "Substituto","cteSubstituido": { "chave": "35260940673061000134570010000000011000000016", "alteraTomador": false }
tipo* | string | 单据类型 |
* | object | 被替代 CT-e |
* 必填字段
分包、转运、中转转运须传 documentosAnteriores,其余类型禁传(10017014)。每条对应一个前序承运人,ctesEletronicos 与 papeis 只能传一种。
Normal 或 VinculadoMultimodal:无前序单据
不传 documentosAnteriores。
"tipoServico": "Normal"
tipoServico* | string | 服务类型 |
* 必填字段
分包或转运:前序为电子 CT-e
适用于 Subcontratacao、Redespacho、RedespachoIntermediario。
"tipoServico": "Subcontratacao","documentosAnteriores": [{ "cpfCnpj": "40673061000134", "inscricaoEstadual": "123456789012", "uf": "SP", "nome": "TRANSPORTADORA ANTERIOR LTDA","ctesEletronicos": ["35260940673061000134570010000000011000000016"] }]
tipoServico* | string | 服务类型 |
* | array | 前序运输单据 |
* 必填字段
分包或转运:前序为纸质单据
前序承运人还没用电子 CT-e 时。
"tipoServico": "Redespacho","documentosAnteriores": [{ "cpfCnpj": "40673061000134", "inscricaoEstadual": "ISENTO", "uf": "SP", "nome": "TRANSPORTADORA ANTERIOR LTDA","papeis": [{ "tipo": "10", "serie": "1", "numero": "12345", "dataEmissao": "2026-09-01" }] }]
tipoServico* | string | 服务类型 |
* | array | 前序运输单据 |
* 必填字段
tomador 指向的参与方必传(10017012)。Contribuinte 要求该参与方带数字州登记号;带数字又必须选 Contribuinte(10017013)。remetente 与 destinatario 任何时候至少一方。
承担方为纳税人:四个参与方之一
Remetente、Expedidor、Recebedor 或 Destinatario;对应参与方带数字州登记号。
"tomador": "Remetente","indicadorIeTomador": "Contribuinte","remetente": { "cpfCnpj": "66500544000120", "inscricaoEstadual": "123456789012", "nome": "REMETENTE TESTE LTDA", "endereco": { "..." : "..." } }
tomador* | string | 运费承担方 |
indicadorIeTomador* | string | 承担方纳税身份 |
* | object | 承担方参与方 |
* 必填字段
承担方为非纳税人或免登记
NaoContribuinte 或 Isento:参与方不带数字州登记号。跨州且 NaoContribuinte 时还要传 impostos.icmsUfFim。
"tomador": "Destinatario","indicadorIeTomador": "NaoContribuinte","destinatario": { "cpfCnpj": "12345678909", "nome": "DESTINATARIO TESTE", "endereco": { "..." : "..." } }
tomador* | string | 运费承担方 |
indicadorIeTomador* | string | 承担方纳税身份 |
* | object | 承担方参与方 |
* 必填字段
Outros:承担方不在参与方之列
传 tomadorOutros;tomador 取其他值时传了即拒(10017013)。
"tomador": "Outros","indicadorIeTomador": "Contribuinte","tomadorOutros": { "cpfCnpj": "40673061000134", "inscricaoEstadual": "123456789012", "nome": "PAGADOR DO FRETE LTDA", "endereco": { "..." : "..." } }
tomador* | string | 运费承担方 |
indicadorIeTomador* | string | 承担方纳税身份 |
* | object | 其他承担方 |
* 必填字段
除 tipo=Complementar 外必填。nfe、nf、outros 只能传一种;混传或缺失返回 10017014。
随货 NF-e(nfe)
"documentos": {"nfe": [{ "chave": "35260966500544000120550010000001231000000002", "dataPrevistaEntrega": "2026-09-10" }]}
* | object | 随货单据 |
* 必填字段
随货纸质发票(nf)
没有访问密钥,票面数据逐项填;六个金额都必填。
"documentos": {"nf": [{ "modelo": "01", "serie": "1", "numero": "12345", "dataEmissao": "2026-09-01","baseIcms": 500.00, "valorIcms": 90.00, "baseIcmsSt": 0, "valorIcmsSt": 0, "valorProdutos": 500.00, "valorTotal": 500.00,"cfop": "5102", "pesoKg": 10 }]}
* | object | 随货单据 |
* 必填字段
随货其他单据(outros)
tipo=Outros 须传 descricao,其余类型不用。
"documentos": {"outros": [{ "tipo": "Outros", "descricao": "ROMANEIO DE CARGA", "numero": "778", "dataEmissao": "2026-09-01", "valor": 500.00 }]}
* | object | 随货单据 |
* 必填字段
一期只受理 modal=Rodoviario(10017018),rodoviario 组必传。RNTRC 须为 8 位数字(10017017)。
公路运输并附取货订单
ordensColeta 可选,最多 10 条;没有订单时只传 rntrc。
"modal": "Rodoviario","rodoviario": {"rntrc": "12345678","ordensColeta": [{ "serie": "1", "numero": 501, "dataEmissao": "2026-09-01","emitente": { "cnpj": "66500544000120", "inscricaoEstadual": "123456789012", "uf": "SP" } }]}
modal* | string | 运输模态 |
* | object | 公路模态信息 |
* 必填字段
直传优先;不传时税基取运费总额,税率查州内税率表或按 7% / 12% 州际法定率,税额自动算出。州内无税率表且未直传税率返回 10017024。CST 须与主体税制匹配:Simples Nacional 只能 SN,一般税制不得 SN(10017022)。
CST 00:全额计税
只传 CST 即可。不传 percentualReducaoBase(10017021)。
"impostos": { "icms": { "situacaoTributaria": "00", "aliquota": 12 } }
* | object | 税参 |
* 必填字段
CST 20:减计税基
percentualReducaoBase 必填(10017020);税基不传时取减免后的总额。
"impostos": { "icms": { "situacaoTributaria": "20", "percentualReducaoBase": 20, "codigoBeneficio": "SP123456" } }
* | object | 税参 |
* 必填字段
CST 40 / 41 / 51:免税、不计税或递延
不涉及税基与税率;不传 valor(10017021)。
"impostos": { "icms": { "situacaoTributaria": "40", "valorDesonerado": 12.00, "codigoBeneficio": "SP123456" } }
* | object | 税参 |
* 必填字段
CST 60:税款此前已代扣
stRetido 必填且三项都要给(10017020)。
"impostos": { "icms": { "situacaoTributaria": "60", "stRetido": { "baseCalculo": 100.00, "aliquota": 12, "valor": 12.00 } } }
* | object | 税参 |
* 必填字段
CST 90:其他情形
全部可选;传了 percentualReducaoBase 就按比例减计税基。
"impostos": { "icms": { "situacaoTributaria": "90", "aliquota": 12, "valorCredito": 2.40 } }
* | object | 税参 |
* 必填字段
90-OutraUF:税款归属另一个州
金额写在 outraUf 里;不传的子项回落到 icms 同名字段,税率不传时取州际法定率。
"impostos": { "icms": { "situacaoTributaria": "90-OutraUF", "outraUf": { "baseCalculo": 100.00, "aliquota": 12, "valor": 12.00 } } }
* | object | 税参 |
* 必填字段
SN:Simples Nacional 主体
Simples Nacional 主体唯一可用的 CST。不传 baseCalculo 与 valor(10017021);也不要求 icmsUfFim。
"impostos": { "icms": { "situacaoTributaria": "SN" } }
* | object | 税参 |
* 必填字段
除 ICMS 外,impostos 还接受目的州分成、税负比例和给税务机关的说明。ibsCbs 一期未开放,传了即拒(10017021)。
跨州且承担方为非纳税人(icmsUfFim)
起运州与目的州不同且 indicadorIeTomador=NaoContribuinte 时必填(10017023),CST SN 除外;州内服务传了即拒(10017021)。各子项全部可选,不传按目的州税率表算出。
"impostos": {"icms": { "situacaoTributaria": "00" },"icmsUfFim": { "aliquotaInterna": 18, "aliquotaInterestadual": 12, "percentualFcp": 2 }}
* | object | 税参 |
* 必填字段
税负比例与给税务机关的说明
两者都可选,与 CST 无关。
"impostos": {"icms": { "situacaoTributaria": "00" },"percentualCargaTributaria": 12.5,"informacoesFisco": "ICMS conforme convenio 106/96"}
* | object | 税参 |
* 必填字段
可选。不传 entrega 即 SemData 加 SemHora。日期与时刻各自约定,每种类型要求各自的字段。
NaData / AteData / APartirDe:单个日期
传 data。
"entrega": { "tipoData": "AteData", "data": "2026-09-10" }
| object | 交付期限 |
* 必填字段
NoPeriodo:日期区间
传 dataInicial 与 dataFinal。
"entrega": { "tipoData": "NoPeriodo", "dataInicial": "2026-09-08", "dataFinal": "2026-09-12" }
| object | 交付期限 |
* 必填字段
NaHora / AteHora / APartirDe:单个时刻
传 hora;可与任意 tipoData 搭配。
"entrega": { "tipoData": "NaData", "data": "2026-09-10", "tipoHora": "AteHora", "hora": "12:00" }
| object | 交付期限 |
* 必填字段
NoIntervalo:时间段
传 horaInicial 与 horaFinal。
"entrega": { "tipoHora": "NoIntervalo", "horaInicial": "08:00", "horaFinal": "12:00" }
| object | 交付期限 |
* 必填字段
可选,只在运费赊账时传。各字段全部可选。
分两期的账单
"cobranca": {"fatura": { "numero": "FAT-2026-001", "valorOriginal": 100.00, "valorDesconto": 0, "valorLiquido": 100.00 },"duplicatas": [{ "numero": "001", "vencimento": "2026-10-30", "valor": 50.00 },{ "numero": "002", "vencimento": "2026-11-30", "valor": 50.00 }]}
| object | 账单分期 |
* 必填字段
SEFAZ 是各州的税务局,单据由它授权。开具阶段被它驳回不走 HTTP 错误,而是查询结果 Negada 加 Webhook cte.rejected,motivoStatus / cteMotivoStatus 给出税务局的状态码与原因。任务终态失败(Falha)不发回调,请经查询获知。
ambienteEmissao开票环境
| 取值 | 含义 |
|---|---|
| Homologacao | 税务局测试环境,单据无法律效力 |
| Producao | 正式环境 |
tipo单据类型
| 取值 | 含义 |
|---|---|
| Normal | 普通开具 |
| Complementar | 补充票,给已授权 CT-e 补金额;须传 ctesComplementados,不传 documentos |
| Substituto | 替代票,顶替并订正此前的 CT-e;须传 cteSubstituido |
tipoServico服务类型
| 取值 | 含义 |
|---|---|
| Normal | 直接承接的运输 |
| Subcontratacao | 被另一家承运人整段分包;须传 documentosAnteriores |
| Redespacho | 从另一家承运人接货跑完后半程;须传 documentosAnteriores |
| RedespachoIntermediario | 只跑中间一段;须传 documentosAnteriores |
| VinculadoMultimodal | 挂靠多式联运经营人 |
modal运输模态
其余模态一期不受理,返回 10017018。
| 取值 | 含义 |
|---|---|
| Rodoviario | 公路运输 |
tomador运费承担方
| 取值 | 含义 |
|---|---|
| Remetente | 发货人,须传 remetente |
| Expedidor | 发运方,转运时把货交给本承运人的一方,须传 expedidor |
| Recebedor | 接收方,从本承运人接货继续运的一方,须传 recebedor |
| Destinatario | 收货人,须传 destinatario |
| Outros | 四方之外的其他人,须传 tomadorOutros |
indicadorIeTomador承担方纳税身份
| 取值 | 含义 |
|---|---|
| Contribuinte | ICMS 纳税人,承担方须带数字 inscricaoEstadual |
| Isento | 免登记 |
| NaoContribuinte | 非纳税人,如最终消费者;跨州时须传 impostos.icmsUfFim |
carga.quantidades[].unidade货物计量单位
| 取值 | 含义 |
|---|---|
| M3 | 立方米 |
| Kg | 千克 |
| Ton | 吨 |
| Unidade | 件 |
| Litros | 升 |
| MMBTU | 百万英热,燃气计量用的能量单位 |
documentos.outros[].tipo其他单据类型
| 取值 | 含义 |
|---|---|
| Declaracao | 内容声明 |
| Dutoviario | 管道运输单据 |
| CfeSat | SAT 设备开具的电子税务小票 |
| Nfce | 消费者电子发票 |
| Outros | 其他单据,须传 descricao |
documentosAnteriores[].uf前序承运人所在州
同样适用于 rodoviario.ordensColeta[].emitente.uf。
| 取值 | 含义 |
|---|---|
| AC | Acre |
| AL | Alagoas |
| AP | Amapá |
| AM | Amazonas |
| BA | Bahia |
| CE | Ceará |
| DF | Distrito Federal |
| ES | Espírito Santo |
| GO | Goiás |
| MA | Maranhão |
| MT | Mato Grosso |
| MS | Mato Grosso do Sul |
| MG | Minas Gerais |
| PA | Pará |
| PB | Paraíba |
| PR | Paraná |
| PE | Pernambuco |
| PI | Piauí |
| RJ | Rio de Janeiro |
| RN | Rio Grande do Norte |
| RS | Rio Grande do Sul |
| RO | Rondônia |
| RR | Roraima |
| SC | Santa Catarina |
| SP | São Paulo |
| SE | Sergipe |
| TO | Tocantins |
documentosAnteriores[].papeis[].tipo前序纸质单据类型
| 取值 | 含义 |
|---|---|
| 07 | ATRE |
| 08 | DTA 海关转运申报 |
| 09 | 航空运单 |
| 10 | CTRC 公路货运单 |
| 11 | CTAC 水路货运单 |
| 12 | CAN 国内航空运单 |
| 13 | CTMC 多式联运货运单 |
| 14 | CTA |
| 15 | CTMA |
| 16 | CPT |
| 17 | BL 海运提单 |
| 18 | CTR |
| 19 | CIT |
impostos.icms.situacaoTributariaICMS 税务处理代码
Simples Nacional 主体只能传 SN;一般税制不得传 SN(10017022)。
| 取值 | 含义 |
|---|---|
| 00 | 全额计税 |
| 20 | 减计税基后计税,须传 percentualReducaoBase |
| 40 | 免税 |
| 41 | 不计税 |
| 51 | 递延到后续环节 |
| 60 | 税款此前已代扣,须传 stRetido |
| 90 | 其他情形 |
| 90-OutraUF | 税款归属另一个州,可传 outraUf |
| SN | Simples Nacional 主体,不传 baseCalculo 与 valor |
entrega.tipoData交付日期约定方式
不传即 SemData。
| 取值 | 含义 |
|---|---|
| SemData | 未约定日期 |
| NaData | 指定某一天,须传 data |
| AteData | 不晚于某天,须传 data |
| APartirDe | 从某天起,须传 data |
| NoPeriodo | 在某段区间内,须传 dataInicial 与 dataFinal |
entrega.tipoHora交付时刻约定方式
不传即 SemHora。
| 取值 | 含义 |
|---|---|
| SemHora | 未约定时刻 |
| NaHora | 指定某时刻,须传 hora |
| AteHora | 不晚于某时刻,须传 hora |
| APartirDe | 从某时刻起,须传 hora |
| NoIntervalo | 在某时间段内,须传 horaInicial 与 horaFinal |
| 错误码 | HTTP | |
|---|---|---|
| 10003000 | 404 | empresaId 不存在。 |
| 10017004 | 400 | 主体不可开具:未审批或证书未就绪。等待审批或关联证书。 |
| 10017005 | 400 | 同请求并发重复。稍后重试。 |
| 10017006 | 400 | 该 CNPJ 待处理任务超限。稍后重试。 |
| 10017007 | 400 | 号段无法确定:未配置或多个启用号段未指定。配置模型 57 号段。 |
| 10017010 | 400 | ambienteEmissao 与主体环境不一致。按主体环境提交。 |
| 10017011 | 400 | 市政 IBGE 码不存在。核对 codigoIbge。 |
| 10017012 | 400 | 参与方缺失。补充 tomador 指向的参与方,并保证 remetente 与 destinatario 至少一方。 |
| 10017013 | 400 | 承担方与纳税身份不符,或未选 tomador=Outros 却传了 tomadorOutros。调整 indicadorIeTomador、承担方州登记号或所传的组。 |
| 10017014 | 400 | 单据引用不合法:缺失、访问密钥校验位错、三种类型混用,或前序单据与服务类型不符。 |
| 10017015 | 400 | 单据类型与引用不符。按 tipo 补 ctesComplementados / cteSubstituido。 |
| 10017016 | 400 | 运费组成合计不等于总额,或 aReceber 大于总额。修正金额。 |
| 10017017 | 400 | RNTRC 非法或缺少 rodoviario 组。须为 8 位数字。 |
| 10017018 | 400 | 模态不支持。只受理 Rodoviario。 |
| 10017019 | 400 | 枚举或格式非法;mensagem 点名字段。 |
| 10017020 | 400 | 税参缺失:CST 20 缺 percentualReducaoBase,或 CST 60 的 stRetido 不完整。 |
| 10017021 | 400 | 税参禁传:ibsCbs、州内服务传了 icmsUfFim、CST 00 传了 percentualReducaoBase、CST 40 / 41 / 51 传了 valor,或 SN 传了 baseCalculo / valor。 |
| 10017022 | 400 | CST 与主体税制不符:Simples Nacional 只能 SN,一般税制不得 SN。 |
| 10017023 | 400 | 跨州且承担方为非纳税人时缺 icmsUfFim。 |
| 10017024 | 400 | 州税率表无税率且未直传 aliquota。 |
| 10017025 | 400 | CST 不支持。使用页底枚举里的取值。 |
| 10017030 | 400 | 同 id 报文不同。换 id 或沿用原报文。 |
| 10017031 | 400 | 生产环境同 id 已有在途或已授权单据。查询原单。 |
| 10001001 | 400 | 请求字段校验失败,每字段一条;按 mensagem 修正。 |
