← Voltar

## Documentação MDF-e

API completa para gerenciamento de Manifesto Eletrônico de Documentos Fiscais

POST `http://localhost/pontti_nfe/api/mdfe/emitir.php`

### 📋 Descrição

Emite um MDF-e e envia para autorização na SEFAZ.

### 📥 Request Body

JSON Example

    {
        "emitente": {
            "nome": "PRINT JET DIGITAL",
            "nome_fantasia": "Print Jet",
            "cnpj": "21497109000156",
            "inscricao_estadual": "093218028",
            "estado": "PE",
            "cidade": "Recife",
            "endereco": "Rua Frei Cassimiro",
            "numero": "644",
            "bairro": "Santo Amaro",
            "cep": "50100260",
            "telefone": "(81) 99999-9999",
            "email": "atendimento@printjetdigital.com.br"
        },
        "mdfe": {
            "numero": "1",
            "serie": "001"
        },
        "tipo_emitente": 2,
        "modal": 1,
        "uf_inicio": "PE",
        "uf_fim": "SP",
        "veiculo": {
            "codigo_interno": "VEI001",
            "placa": "ABC1234",
            "renavam": "12345678901",
            "tara": 8000,
            "capacidade_kg": 25000,
            "capacidade_m3": 80,
            "tipo_rodado": "02",
            "tipo_carroceria": "00",
            "uf": "PE"
        },
        "condutores": [
            {
                "nome": "João da Silva",
                "cpf": "05138670409"
            }
        ],
        "municipios_carregamento": [
            {
                "codigo_municipio": 2611606,
                "nome": "Recife",
                "nfes": [
                    {
                        "chave_acesso": "35251012345678000195550010000000011234567890"
                    }
                ]
            }
        ],
        "municipios_descarregamento": [
            {
                "codigo_municipio": 3550308,
                "nome": "São Paulo",
                "nfes": [
                    {
                        "chave_acesso": "35251012345678000195550010000000011234567890"
                    }
                ]
            }
        ],
        "totalizadores": {
            "quantidade_nfe": 1,
            "quantidade_cte": 0,
            "quantidade_mdfe": 0,
            "valor_carga": 5000.00,
            "codigo_unidade": "01",
            "peso_carga": 2500.0000
        },
        "informacoes_complementares": "Transporte de mercadorias"
    }

### 📤 Response (Sucesso)

JSON Response

    {
        "success": true,
        "numero": "1",
        "serie": "001",
        "chave_acesso": "26251021497109000156580010000000011735126513",
        "protocolo": "926250000006524",
        "cStat": "100",
        "xml_path": "/pontti_nfe/arquivos/.../mdfe/xml/...",
        "pdf_path": null,
        "data_emissao": "2025-10-21 15:54:11",
        "message": "MDF-e emitido com sucesso"
    }

POST `http://localhost/pontti_nfe/api/mdfe/encerrar.php`

### 📋 Descrição

Encerra um MDF-e em um município específico.

### 📥 Request Body

JSON Example

    {
        "chave_acesso": "26251021497109000156580010000000011735126513",
        "protocolo": "926250000006524",
        "cnpj": "21497109000156",
        "uf_encerramento": "SP",
        "municipio_encerramento": {
            "codigo": "3550308",
            "nome": "São Paulo"
        }
    }

### 📤 Response (Sucesso)

JSON Response

    {
        "success": true,
        "chave_acesso": "26251021497109000156580010000000011735126513",
        "protocolo_encerramento": "926250000006525",
        "cStat": "135",
        "xMotivo": "Evento registrado e vinculado ao MDF-e",
        "message": "MDF-e encerrado com sucesso"
    }

POST `http://localhost/pontti_nfe/api/mdfe/cancelar.php`

### 📋 Descrição

Cancela um MDF-e autorizado (prazo: até 24 horas).

### 📥 Request Body

JSON Example

    {
        "chave_acesso": "26251021497109000156580010000000051808712025",
        "protocolo": "926250000006530",
        "cnpj": "21497109000156",
        "justificativa": "Erro no preenchimento dos dados do MDF-e, necessário cancelamento"
    }

POST `http://localhost/pontti_nfe/api/mdfe/incluir_condutor.php`

### 📋 Descrição

Inclui um condutor adicional em um MDF-e já autorizado.

### 📥 Request Body

JSON Example

    {
        "chave_acesso": "26251021497109000156580010000000051808712025",
        "cnpj": "21497109000156",
        "condutor": {
            "nome": "Maria Santos Silva",
            "cpf": "12345678909"
        }
    }

## 🔧 Parâmetros Importantes

### Tipo de Emitente

Código | Descrição
--- | ---
`1` | Prestador de serviço de transporte
`2` | Transportador de Carga Própria
`3` | Prestador de serviço que emitirá CT-e Globalizado

### Modal

Código | Descrição
--- | ---
`1` | Rodoviário
`2` | Aéreo
`3` | Aquaviário
`4` | Ferroviário

### Tipo de Rodado

Código | Descrição
--- | ---
`01` | Truck
`02` | Toco
`03` | Cavalo Mecânico
`04` | VAN
`05` | Utilitário
`06` | Outros

### Tipo de Carroceria

Código | Descrição
--- | ---
`00` | Não aplicável
`01` | Aberta
`02` | Fechada/Baú
`03` | Granelera
`04` | Porta Container
`05` | Sider

## ⚠️ Observações Importantes

🔢

#### Numeração Sequencial

O número do MDF-e deve ser sequencial por série

🚗

#### Placa Única

Não pode haver MDF-e aberto para a mesma placa e destino

🗺️

#### Percurso

UFs intermediárias são adicionadas automaticamente (BA e MG)

🔑

#### Chaves NF-e

Devem ser chaves válidas de NF-es sendo transportadas

⏰

#### Prazo Cancelamento

Até 24 horas após autorização e antes do encerramento

📍

#### Encerramento

Obrigatório ao final do transporte no município de destino

## 📍 Códigos IBGE - Principais Municípios

Cidade | UF | Código IBGE
--- | --- | ---
Recife | PE | `2611606`
São Paulo | SP | `3550308`
Rio de Janeiro | RJ | `3304557`
Belo Horizonte | MG | `3106200`
Salvador | BA | `2927408`
Brasília | DF | `5300108`
Fortaleza | CE | `2304400`
Curitiba | PR | `4106902`
Porto Alegre | RS | `4314902`

## 🔄 Fluxo de Operação

1️⃣

#### Emitir MDF-e

Gera e autoriza o manifesto na SEFAZ

2️⃣

#### Incluir Condutor (Opcional)

Adiciona condutores durante o transporte

3️⃣

#### Encerrar MDF-e

Finaliza o transporte no destino

OU Cancelar dentro de 24 horas (se necessário)