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
- Client 2.0: http://localhost:8089
- Autenticação: V1
- Client em Nuvem: Em breve
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
| Campo | Detalhamento |
| ? | 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
- Integração Direta:
- Autenticação: V2
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ê?