Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sefaz não retorna cStat 103 somente o cStat 104 #1574

Open
fabiogb opened this issue Feb 6, 2025 · 1 comment
Open

Sefaz não retorna cStat 103 somente o cStat 104 #1574

fabiogb opened this issue Feb 6, 2025 · 1 comment

Comments

@fabiogb
Copy link

fabiogb commented Feb 6, 2025

Olá amigos.
Sefaz parou de retornar o cstat 103 e retorna direto o cstat 104 por conta disso não consigo ter acesso ao nRec e nem a NFeRetAutorizacao.

string receiptNumber = sefazResult.Retorno.infRec.nRec;
answerNfeInfo = srv.NFeRetAutorizacao(receiptNumber);

@MauricioSuporte
Copy link
Collaborator

Olá @fabiogb, o comportamento que você está observando, onde a SEFAZ retorna diretamente o código de status (cStat) 104 em vez do 103, indica que o lote enviado foi processado imediatamente, sem a necessidade de uma etapa intermediária de recebimento. O cStat 103 significa "Lote recebido com sucesso", enquanto o cStat 104 indica "Lote processado".

Quando a SEFAZ retorna o cStat 104 diretamente, isso significa que o processamento do lote foi concluído no momento do recebimento, e o número do recibo (nRec) pode não ser fornecido nesse caso. Portanto, a etapa de consulta posterior com NFeRetAutorizacao usando o número do recibo torna-se desnecessária, pois o resultado do processamento já está disponível na resposta inicial.

Para adaptar seu código a esse comportamento, você pode verificar o valor do cStat retornado pela SEFAZ. Se for 104, significa que o lote já foi processado, e você pode acessar diretamente o resultado do processamento sem precisar realizar uma consulta adicional. Aqui está um exemplo de como ajustar seu código:

if (sefazResult.Retorno.cStat == 104)
{
    // O lote foi processado imediatamente
    // Acesse diretamente o resultado do processamento
    var resultadoProcessamento = sefazResult.Retorno.protNFe;
    // Lide com o resultado conforme necessário
}
else if (sefazResult.Retorno.cStat == 103)
{
    // O lote foi recebido e será processado posteriormente
    // Obtenha o número do recibo para consulta futura
    string receiptNumber = sefazResult.Retorno.infRec.nRec;
    // Realize a consulta de autorização posteriormente usando o número do recibo
    answerNfeInfo = srv.NFeRetAutorizacao(receiptNumber);
}
else
{
    // Lide com outros códigos de status conforme necessário
}

Dessa forma, seu aplicativo poderá lidar adequadamente com ambos os cenários: quando o lote é processado imediatamente (cStat 104) e quando é necessário aguardar o processamento (cStat 103).

Espero que isso ajude a resolver o problema que você está enfrentando.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants