Pular para o conteúdo principal

Consultas e Retornos

Informações Gerais

Esta página reúne as APIs auxiliares voltadas à consulta de documentos fiscais e à interpretação dos retornos de emissão, permitindo o acompanhamento, conferência e tomada de decisão operacional.


API Retornos Campo cStat 

O campo cStat faz parte do payload de retorno das APIs de emissão de NF-e e NFC-e e contém informações extremamente relevantes quanto ao status do documento, que, quando não autorizados, permitem ao emissor entender o motivo da rejeição, ou falha da emissão. Dessa forma o emissor tem acesso a dados para tomada de decisão quanto a regularização do documento ou correção de alguma inconsistência no processo de emissão. Os retornos são segregados em 2 grupos:

  • Retornos da SEFAZ: indicando o status do documento junto a SEFAZ. Em caso de rejeição o emissor deve consultar os códigos de rejeição vinculados a emissão de documentos no Manual de Orientação ao Contribuinte – MOC – Anexo I.
  • Retornos do Emissor Fiscal: para consultar os códigos retornados e informações orientativas sobre como proceder a partir do retorno, foi disponibilizada a API ListaCodigoStatusSefaz, detalhada abaixo.

Ambientes


Detalhamento API ListaCodigoStatusSefaz

  • Endpoint Client 2.0: /Mid/ListaCodigosStatusSefaz
  • Endpoint Client em Nuvem: EM BREVE
  • Método: GET
  • Header:
    • Authorization: Token de autorização
    • Content-Type: application/json
  • Parâmetros

Exemplo Payload retorno

CampoDetalhamento
?Tipo de 

A = Aprovação

R = Rejeição

CPC = Equivale ao M0020(Cancelar e emitir a próxima em contingência) – a ação é da automação.

EC = Consultar Posteriormente

EN = Enviar novamente

PC = Próxima em contingência
?Orientação por rota que recebeu o retorno:

? = Autorização

? =  Cancelamento/Inutilização

? = Consulta

Consulta Nota Detalhes

Por meio desta API é possível consultar todas as movimentações de notas, independente do Status. Ela apoia a validação de sincronização de documentos, processos de conferência e checagem de status, entre outros. 

Ambientes


Detalhamento API Consulta Nota Detalhes:

  • Endpoint: /ConsultaNotaDetalhes/GetNotaDetalhes
  • Método: GET
  • Header:
    • AuthorizationToken: Token
    • Content-Type: application/json
  • Possibilidade de filtro na composição da URL:
    • CNPJ – Obrigatório
    • DataInicial – Obrigatório
    • DataFinal – Obrigatório
    • NumeroInicial
    • NumeroFinal
    • Serie
    • IdProduto. Opções:
      • Nfe = 1
      • NFCe = 2
      • NFEntrada = 5
      • Cfe = 7
    • StatusNota. Opções:
      • Autorizado = 2
      • Rejeitado = 3
      • Cancelamento = 4
      • Inutilizado = 5
      • Denegado = 6.
    • Pagina – Padrão: 1
      • Em caso de buscas com várias notas e tendo várias páginas, essa informação retornará exatamente a página da busca desejada.
    • TamanhoPagina – Padrão: 50
      • Em caso de definições com tamanhos pontuais, é possível configurar para, por exemplo, cada página retornar apenas 10, 15, 20 notas por paginação.

Exemplo de Payload de Retorno


{
"Cabecalho": {
"CNPJ": "54511111001111",
"DataInicial": "2022-03-05T00:00:00",
"DataFinal": "2022-03-05T23:59:59",
"PaginaAtual": 1,
"TotalPaginas": 3,
"TotalNotasRetornados": 13
},
"Retorno": {
"cStat": "100",
"xMotivo": "Consulta realizada com sucesso",
"xmlCompactado": "H4sIAAAAAAAAA92US0ssMRBG/0rISmGEPDuPbYvgwlH[...]/E8wyD57dfkmKdY6yyylhpD5YipFczKdbtkyKt+ETK2eXVDn8D44AZC/5uW9JO17uTb8K2Tle20sZV/HBs7sXs37D2p7Bv/wHMKtdjMAUAAA=="
}
}

Sendo:

  • PaginaAtual = Pagina retornada
  • TotalPaginas = Total de páginas com base no total 13 e TamanhoPagina sendo 5.
  • TotalNotasRetornados = Total de notas de toda a requisição
  • xmlCompactado = Formatação feita em base64 e gZIP, segue código abaixo para descompactação

Exemplo Descompactação XML

        public static string DecodeFromZIP(string binario) 

{

string resultado = string.Empty;

using (MemoryStream ms = new MemoryStream(Convert.FromBase64String(binario)))

{

using (GZipStream zs = new GZipStream(ms, CompressionMode.Decompress))

{

using (StreamReader st = new StreamReader(zs))

{

resultado = st.ReadToEnd();

}

}

}

return resultado;

}

Este conteúdo foi útil para você?