Tema
MDF-e — Manifesto de Carga (modelo 58)
Manifesto Eletrônico de Documentos Fiscais: consolida os CT-e/NF-e de uma viagem (veículo + condutor + percurso). Emissão síncrona — a resposta já traz o veredito da SEFAZ.
O exemplo abaixo é um payload real autorizado em homologação (SVRS). Cada grupo presente existe porque a SEFAZ o exige para transportador rodoviário — seguro com averbação (rej. 698/699), produto predominante (725), contratantes (578) e pagamento do frete.
Emitir
http
POST /api/v1/mdfe/emitir
Authorization: Bearer {token}
Content-Type: application/json
Idempotency-Key: viagem-2026-08-06-ajson
{
"ide": {
"nMDF": 42, "serie": 3, "modal": "1", "tpEmit": "1",
"UFIni": "SP", "UFFim": "SP",
"infMunCarrega": [{ "cMunCarrega": "3549904", "xMunCarrega": "Sao Jose dos Campos" }]
},
"rodo": {
"RNTRC": "56271866",
"veicTracao": {
"placa": "ABC1D23", "UF": "SP", "tara": "7000",
"condutor": { "xNome": "NOME DO CONDUTOR", "CPF": "52998224725" }
},
"infContratante": [{ "xNome": "CONTRATANTE LTDA", "CNPJ": "14295537000130" }],
"infPag": [{
"xNome": "CONTRATANTE LTDA", "CNPJ": "14295537000130",
"Comp": [{ "tpComp": "01", "vComp": 1000.00 }],
"vContrato": 1000.00, "indPag": "0",
"infBanc": { "PIX": "financeiro@transportadora.com.br" }
}]
},
"infDoc": {
"infMunDescarga": [{
"cMunDescarga": "3550308", "xMunDescarga": "Sao Paulo",
"infCTe": [{ "chCTe": "35260628738768000186570070009990011..." }]
}]
},
"seg": {
"respSeg": "1",
"xSeg": "NOME DA SEGURADORA", "seg_CNPJ": "99999999000191",
"nApol": "123456789", "nAver": "12345678901234567890"
},
"prodPred": {
"tpCarga": "05", "xProd": "ARROZ BENEFICIADO", "NCM": "10063021",
"infLotacao": { "cepCarrega": "12226303", "cepDescarrega": "01001000" }
},
"tot": { "vCarga": 1000.00, "cUnid": "01", "qCarga": 1000.0 }
}Regras que derrubam quem começa
- Numeração é sua (
ide.nMDF) — o manifesto acompanha a sua sequência. tpTranspsó com veículo de terceiro: informe apenas junto deveicTracao.prop(proprietário) — sozinho, a SEFAZ rejeita (cStat 745).- Seguro completo para prestador rodoviário: responsável + seguradora + apólice + averbação (
nAver) — sem a averbação, rejeição 699. - Frota própria não informa
propnemtpTransp; frete de terceiros informa ambos. - Rejeição não consome o número: corrija e reemita no mesmo
nMDF.
Resposta (síncrona)
json
{
"mdfe_id": "uuid",
"chave": "35260828738768000186589990...",
"numero": 42, "serie": 3,
"status": "100", "motivo": "Autorizado o uso do MDF-e",
"protocolo": "935260000054245",
"autorizado": true
}Retry com a mesma Idempotency-Key devolve o mesmo manifesto (idempotent_replay: true) — e após uma rejeição a chave fica livre para a tentativa corrigida.
Encerrar e cancelar
POST /api/v1/mdfe/{id}/encerrar— na chegada (UF + município de destino). Obrigatório antes de emitir o próximo manifesto do mesmo veículo.POST /api/v1/mdfe/{id}/cancelar— até 24h, com justificativa (evento 110111).
Utilitários
POST /api/v1/mdfe/percurso— calcula as UFs intermediárias pela rota real de estrada (paraide.infPercurso).GET /api/v1/mdfe/{id}/xml— XML autorizado.
Referência completa
Todos os campos e validações no Swagger interativo.