MDF-e · Manifesto de Documentos Fiscais · modelo 58 chave ace_
Manifesto do modal rodoviário: reúne as chaves de NF-e/CT-e de uma viagem, com veículo (tração + reboques), condutor, percurso (UFs), municípios de carga/descarga (IBGE), CIOT e seguro. Usa o mesmo certificado dos demais + o RNTRC (registro ANTT). Cobra 1 unidade por manifesto autorizado.
PUT /mdfe/configuracao ·
{"ambiente":2,"serie_mdfe":1,"rntrc":"12345678"}. O RNTRC também pode ir em
veiculo.rntrc na emissão.PUT /mdfe/configuracao # serie, ambiente, rntrc POST /mdfe/emitir GET /mdfe/{id}/xml · /mdfe/{id}/damdfe POST /mdfe/{id}/encerrar # OBRIGATÓRIO ao fim POST /mdfe/{id}/cancelar POST /mdfe/{id}/condutor # incluir motorista GET /mdfe · /mdfe/{id}
Rota e municípios obrigatório
| Campo | Descrição | |
|---|---|---|
uf_inicio, uf_fim | obrig. | UF de início e fim da viagem |
municipios_carregamento[] | obrig. | {codigo (IBGE 7 díg), nome} — onde carregou |
municipios_descarregamento[] | obrig. | {codigo, nome, cep?} — onde descarrega |
percurso[] | opc. | UFs atravessadas entre início e fim (ex.: ["MG"]) |
data_inicio_viagem | opc. | ISO-8601 |
tipo_emitente | 2 | 2=carga própria, 1=prestador de serviço |
Veículo & condutor obrigatório
| Campo | |
|---|---|
veiculo.placa, tara, tipo_rodado, tipo_carroceria, uf | obrig. |
veiculo.renavam, capacidade_kg, capacidade_m3, rntrc | opc. |
motorista.nome, cpf | obrig. |
reboques[] {placa, tara, tipo_carroceria, uf…} | opc. |
tipo_rodado: 01=truck, 02=toco, 03=cavalo mecânico, 04=VAN, 05=utilitário, 06=outros. tipo_carroceria: 00=não aplicável, 01=aberta, 02=fechada/baú, 03=granelera, 04=porta-contêiner, 05=sider.
{
"uf_inicio": "RJ", "uf_fim": "SP",
"municipios_carregamento": [
{ "codigo": "3304557", "nome": "RIO DE JANEIRO" }
],
"municipios_descarregamento": [
{ "codigo": "3550308", "nome": "SAO PAULO" }
],
"percurso": ["RJ", "SP"],
"veiculo": {
"placa": "ABC1D23", "renavam": "12345678901",
"tara": 8000, "capacidade_kg": 15000,
"tipo_rodado": "02", "tipo_carroceria": "00",
"uf": "RJ", "rntrc": "12345678"
},
"motorista": { "nome": "JOSE CONDUTOR",
"cpf": "12345678909" }
}
Documentos, carga e opcionais
| Campo | Descrição | |
|---|---|---|
documentos[] | obrig. | {tipo:"nfe"|"cte", chave (44), cod_municipio_descarga, nome_municipio_descarga} |
valor_carga, peso_bruto | obrig. | Totais da carga (KG) |
produto_predominante, tipo_carga | opc. | tipo_carga 05=carga geral (padrão) |
ciot | opc. | [{ciot, documento}] — pagamento de frete |
seguro | opc. | {responsavel, documento_responsavel, seguradora_nome, seguradora_cnpj, apolice, averbacao} |
{
"documentos": [
{ "tipo": "nfe",
"chave": "33260...(44)",
"cod_municipio_descarga": "3550308",
"nome_municipio_descarga": "SAO PAULO" }
],
"produto_predominante": "MERCADORIAS EM GERAL",
"tipo_carga": "05",
"valor_carga": 10000.00,
"peso_bruto": 1200.000,
"ciot": [ { "ciot": "123456789012",
"documento": "11222333000181" } ]
}
Encerrar, cancelar, condutor
Encerrar (exigência da SEFAZ ao terminar a viagem): {"cod_municipio":"3550308","uf":"SP"}
(IBGE 7 díg + UF do local). Cancelar só antes de encerrar: {"justificativa":"15+ caracteres"}.
Incluir condutor (troca de motorista): {"nome":"...","cpf":"..."}.
Erros específicos
422 emissao_rejeitada | SEFAZ recusou (duplicidade, chave inválida, veículo) |
422 municipio_invalido | Encerramento sem cod_municipio IBGE 7 díg |
422 encerramento_rejeitado · condutor_rejeitado | Evento recusado |
# emitir curl -X POST .../api/v1/mdfe/emitir \ -H "Authorization: Bearer ace_SEU_TOKEN" \ -d @mdfe.json # encerrar ao fim da viagem curl -X POST .../api/v1/mdfe/8/encerrar \ -H "Authorization: Bearer ace_SEU_TOKEN" \ -d '{"cod_municipio":"3550308","uf":"SP"}'
$m = $cli->mdfe()->emitir($payload); $id = $m['mdfe_id']; $cli->mdfe()->damdfe($id, 'damdfe.pdf'); $cli->mdfe()->incluirCondutor($id, 'NOVO', '11144477735'); $cli->mdfe()->encerrar($id, 'SP', '3550308');
R := Api.EmitirMDFe(JSONFromStr(Json)); Id := R.Int('mdfe_id'); Api.BaixarPDF('mdfe', Id, 'damdfe.pdf'); Api.Post(Format('mdfe/%d/encerrar',[Id]), JSONFromStr('{"cod_municipio":"3550308","uf":"SP"}')).Free;
{ "mdfe_id": 8, "numero": 8, "serie": 1,
"chave": "33260...(44)",
"protocolo": "...", "status": "autorizada" }