Conceitos Fundamentais
Material de entendimento sobre os conceitos básicos do domínio fiscal envolvido no NFe/CTe Inbound.
Sumário
- Nota Fiscal Eletrônica (NF-e)
- Eventos de NF-e
- Conhecimento de Transporte Eletrônico (CT-e)
- NSU — Número Sequencial Único
- Chave de Acesso
- Identificando o tipo de documento pela chave
- Tipos de Registro retornados pela API
Nota Fiscal Eletrônica (NF-e)
A Nota Fiscal Eletrônica (modelo 55) é o documento fiscal digital emitido quando uma empresa vende produtos ou presta serviços para outra empresa. É o equivalente digital da antiga nota fiscal de papel.
Cada NF-e tem:
- Uma Chave de Acesso de 44 dígitos que a identifica unicamente no Brasil
- Um XML com todos os dados fiscais (emitente, destinatário, produtos, valores, impostos)
- Um DANFE (Documento Auxiliar) em PDF para visualização
Tipos de Registros de NF-e que você pode receber
| Tipo | O que significa |
|---|---|
| NF-e Completa | Documento autorizado com XML completo disponível |
| Resumo de NF-e | Dados básicos disponíveis antes do XML completo chegar |
| Evento | Uma ação sobre a NF-e (cancelamento, correção, manifestação) |
| Resumo de Evento | Dados básicos de um evento |
Eventos de NF-e
Além da NF-e em si, existem eventos que registram ações sobre ela:
| Evento | O que significa para você |
|---|---|
| Cancelamento | O emitente cancelou a NF-e. Atenção: se você já recebeu a mercadoria, entre em contato com o fornecedor |
| Carta de Correção | O emitente corrigiu um dado da NF-e (exceto dados fiscais críticos) |
| Ciência da Operação | Você (ou o sistema automaticamente) confirmou que tem ciência desta NF-e |
| Confirmação da Operação | Você confirmou que recebeu a mercadoria conforme descrito |
| Desconhecimento da Operação | Você informou à SEFAZ que não reconhece esta NF-e |
| Operação Não Realizada | Você informou que a operação não foi concluída |
Conhecimento de Transporte Eletrônico (CT-e)
O Conhecimento de Transporte Eletrônico (CT-e) é o documento fiscal obrigatório emitido pelas transportadoras para acobertar as prestações de serviço de transporte de cargas.
Quando você compra mercadorias de um fornecedor e a transportadora é diferente do fornecedor, você pode receber:
- Uma NF-e (da venda das mercadorias pelo fornecedor)
- Um CT-e (do serviço de transporte pela transportadora)
Partes Envolvidas em um CT-e
| Parte | Descrição |
|---|---|
| Emitente | A transportadora que emitiu o CT-e |
| Tomador | Quem contratou o serviço de transporte (pode ser você) |
| Expedidor | Quem entregou a carga para transporte |
| Receptor | Quem recebeu a carga no destino |
| Destinatário | Para quem a carga foi enviada (geralmente você) |
NSU — Número Sequencial Único
O NSU é um número mantido pela SEFAZ que cresce a cada documento recebido pelo seu CNPJ. Pense nele como um "contador de correspondências" da SEFAZ para a sua empresa.
Exemplo:
- NSU 1000: NF-e de fornecedor A, valor R$ 500
- NSU 1001: NF-e de fornecedor B, valor R$ 1.200
- NSU 1002: Evento de cancelamento da NF-e do fornecedor A
Nosso serviço consulta a SEFAZ periodicamente e baixa todos os documentos a partir do último NSU processado, garantindo que nenhum documento é perdido ou duplicado.
Chave de Acesso
É um código de 44 dígitos que identifica unicamente uma NF-e ou CT-e. Exemplo:
35240112345678000195550010000012341234567890
│ │ │ │ │ │
│ │ │ │ │ └─── Dígito verificador
│ │ │ │ └────── Número NF-e
│ │ │ └───────── Série
│ │ └──────────────────────── CNPJ emitente
│ └───────────────────────────── Mês/Ano emissão (AAAAMM)
└──────────────────────────────── UF (35 = SP)
Para eventos (cancelamento, ciência, etc.), a chave tem 55 dígitos.
Identificando o tipo de documento pela chave
A posição 20-21 da chave de acesso (0-indexed) indica o modelo do documento:
| Posição 20-21 | Tipo | Descrição |
|---|---|---|
55 | NF-e | Nota Fiscal Eletrônica |
57 | CT-e | Conhecimento de Transporte Eletrônico |
65 | NFC-e | Nota Fiscal de Consumidor |
67 | CT-eOS | CT-e para Outros Serviços |
def get_document_type(access_key: str) -> str:
model = access_key[20:22] # posições 20 e 21
types = {"55": "NF-e", "57": "CT-e", "65": "NFC-e", "67": "CT-eOS"}
return types.get(model, "Desconhecido")
Tipos de Registro retornados pela API
| MetadataResourceType | Significado |
|---|---|
productInvoice | NF-e completa (XML disponível) |
productInvoiceEvent | Evento de NF-e (cancelamento, ciência, etc.) |
productInvoiceSummary | Resumo de NF-e (apenas metadados básicos) |
productInvoiceEventSummary | Resumo de evento |
transportationInvoice | CT-e completo |
transportationInvoiceEvent | Evento de CT-e |