La API de MDF-e (modelo 58, layout PL-MDFe 3.00) permite emitir, consultar, cancelar y cerrar manifiestos de transporte. El MDF-e agrega NF-es y/o CT-es vinculados a una operación de transporte, soportando 4 modales: carretero, aéreo, acuaviario y ferroviario. Toda la información operativa (conductor, vehículo, contratante, CIOT, vale de peaje, pago) va en el cuerpo del /create — no hay eventos de inclusión/modificación después de la emisión.
Endpoint
Método
Descripción
/api/mdfe/create
POST
Emitir MDF-e
/api/mdfe/consult
POST
Consultar situación del MDF-e
/api/mdfe/cancel
POST
Cancelar MDF-e (hasta 24h después de la autorización)
Emite un MDF-e a partir del cuerpo enviado. Los campos cMDF, cDV, cUF, dhEmi, mod, tpEmis, procEmi, verProc son calculados automáticamente por el servidor. El cliente envía únicamente los campos de negocio. Los campos serie y nMDF son opcionales: se asignan automáticamente cuando se omiten (o valen 0), o se respetan cuando se envían en la solicitud (útil para saltar la numeración, por ejemplo tras una duplicidad en la autoridad fiscal).
Headers obligatorios
Header
Tipo
Descripción
token
string
Token de la empresa emisora
sign
string
Firma MD5: MD5(token + path + body + timestamp)
timestamp
string
Unix timestamp en segundos (ventana de 5 minutos)
Body — raíz
Campo
Tipo
Descripción
ide *
object
Identificación del MDF-e
emit *
object
Datos del emisor
infModal *
object
Información del modal (solo UNO de los cuatro: rodo, aereo, aquav, ferrov)
infDoc *
object
Documentos fiscales vinculados
tot *
object
Totalizadores de la carga
prodPred
object
Producto predominante de la carga
seg
array
Información de seguro
lacres
array
Precintos del MDF-e
autXML
array
CNPJs/CPFs autorizados a acceder al XML
infAdic
object
Información adicional (fisco y contribuyente)
infRespTec
object
Responsable técnico (CNPJ, contacto, email, etc.)
ide — Identificación
Campo
Tipo
Descripción
tpAmb *
int
Ambiente: 1=producción, 2=homologación
tpEmit *
int
Tipo del emisor: 1=transportador, 2=carga propia, 3=prestador de servicio de transporte
Municipios de carga: [{ cMunCarrega, xMunCarrega }]
infPercurso[]
array
UFs del recorrido: [{ UFPer }]
tpTransp
string
Tipo de transportador (carretero)
dhIniViagem
string
Fecha/hora de inicio del viaje (ISO 8601)
indCanalVerde
string
Indicador de canal verde
indCarregaPosterior
string
Indicador de carga posterior
serie
int
Serie del MDF-e (3 dígitos de la clave de acceso). Opcional — autoasignada (serie de MDF-e de la empresa) cuando se omite o vale 0; respetada cuando se envía
nMDF
int
Número del MDF-e (compone la clave de acceso). Opcional — autoincrementado por el servidor cuando se omite o vale 0; respetado cuando se envía (útil para saltar la numeración, por ejemplo tras una duplicidad)
Tipo de carga: "01"=granel sólido, "02"=granel líquido, "03"=refrigerada, "04"=contenerizada, "05"=carga general, "06"=neogranel, "07"=peligrosa, "08"=granel presurizado
Cierra un MDF-e al final del viaje. Después del cierre, ya no es posible cancelar. Los campos dtEnc, cUF y cMun son opcionales — cuando se omiten, el sistema los infiere a partir del MDF-e original (fecha actual, UF y municipio del emisor).
Headers obligatorios
Header
Tipo
Descripción
token
string
Token de la empresa emisora
sign
string
Firma MD5
timestamp
string
Unix timestamp en segundos
Body
Campo
Tipo
Descripción
chMDFe *
string
Clave de acceso del MDF-e (44 dígitos)
dtEnc
string
Fecha del cierre (AAAA-MM-DD). Default: fecha actual
cUF
int
Código IBGE de la UF donde ocurrió el cierre. Default: UF del emisor
cMun
string
Código IBGE del municipio donde ocurrió el cierre. Default: municipio del emisor
Lista los MDF-e de la empresa con paginación. Los parámetros se pasan por query string (no en el body). El filtro de tiempo es opcional, pero si se envía requiere tanto start_create_time como end_create_time.
Headers obligatorios
Header
Tipo
Descripción
token
string
Token de la empresa emisora
sign
string
Firma MD5 (path incluye la query string)
timestamp
string
Unix timestamp en segundos
Query string
Parámetro
Tipo
Descripción
page *
int
Número de página (≥ 1)
page_size *
int
Tamaño de página (1–50)
start_create_time
long
Unix timestamp en milisegundos — inicio (requiere end_create_time)
end_create_time
long
Unix timestamp en milisegundos — fin
status
string
Filtrar por estado. Valores: "Success" (autorizado), "Canceled" (cancelado), "Voided" (cerrado), "Processing" (en proceso), "Failed" (falló), "Unknown" (desconocido)