Um erro que está ocorrendo no Web Service dos Correios está sendo causado pela mudança no código de dois serviços de seus principais serviços de entrega, PAC e SEDEX.
As mensagens de erro retornadas pelo Correios:
Codigo de servico invalido. Desde 05/05/2017 ele foi substituido pelo 04014.
Codigo de servico invalido. Desde 05/05/2017 ele foi substituido pelo 04510
Desde o dia 05/05/2017 os códigos do PAC e SEDEX foram alterados, pegando vários lojistas de surpresa.
Tabela com os códigos que foram modificados.
Serviço | Código Antigo | Código Novo |
SEDEX | 40010 | 04014 |
PAC | 41106 | 04510 |
??? | 40959 | 04103 |
??? | 41459 | 04715 |
??? | 40810 | 04065 |
??? | 41262 | 04707 |
Clique na plataforma que você está utilizando.
O PAC (varejo / sem contrato) 41106 passou a ser 04510 (é obrigatório que o código seja enviado com 0 (zero) na frente durante a requisição).
Já o serviço SEDEX (varejo / sem contrato) 40010 passou a ser o código 04014.
Faça a alteração dos códigos em sua loja / sistema.
Se você não sabe como proceder (não é um programador), faça um comentário ou entre em contato para que eu possa te ajudar.
Na sequência deste post existe soluções para as plataformas Magento, Woocommerce e Opencart.
Mensagem completa no formato XML retornado pelo Web Service / API dos Correios.
<?xml version="1.0" encoding="UTF-8"?> <Servicos> <cServico> <Codigo>40010</Codigo> <Valor>0</Valor> <PrazoEntrega>0</PrazoEntrega> <ValorMaoPropria>0</ValorMaoPropria> <ValorAvisoRecebimento>0</ValorAvisoRecebimento> <ValorValorDeclarado>0</ValorValorDeclarado> <ValorSemAdicionais>0</ValorSemAdicionais> <EntregaDomiciliar /> <EntregaSabado /> <Erro>001</Erro> <MsgErro>Codigo de servico invalido. Desde 05/05/2017 ele foi substituido pelo 04014.</MsgErro> </cServico> <cServico> <Codigo>41106</Codigo> <Valor>0</Valor> <PrazoEntrega>0</PrazoEntrega> <ValorMaoPropria>0</ValorMaoPropria> <ValorAvisoRecebimento>0</ValorAvisoRecebimento> <ValorValorDeclarado>0</ValorValorDeclarado> <ValorSemAdicionais>0</ValorSemAdicionais> <EntregaDomiciliar /> <EntregaSabado /> <Erro>001</Erro> <MsgErro>Codigo de servico invalido. Desde 05/05/2017 ele foi substituido pelo 04510.</MsgErro> </cServico> </Servicos>
Em algumas situações você terá a impressão que o serviço do correios está fora do ar, não é este o caso.
Alguns módulos no Magento entre outras lojas (opencart, woocommerce etc..) irão retornar mensagens como:
Neste caso deverá ser atualizado módulo/plugin que é responsável pelo calculo.
Para quem utiliza o módulo do PedroTexeira, faça a atualização do mesmo, evite de ficar fazendo alterações no código pois o módulo atualizado já resolverá o seu problema.
Segue o link do github: https://github.com/pedro-teixeira/correios
Caso você não saiba como proceder, faça um comentário.
Para outras lojas Magento que não utilizam o módulo do Pedro Teixeira, aconselho que você faça a substituição por este módulo.
Módulo mencionado acima é a melhor solução para o calculo de frete com os Correios disponível atualmente no Magento.
Pelo painel no menu, vá em Configurações / Entrega.
– Clique em Editar na área de entrega.
– Clique em Editar no PAC ou SEDEX.
Desça até as “Opções de Serviço” e em “Código de Serviço” faça a alteração do código de acordo com o serviço.
Não esqueça de limpar o cache depois deste procedimento.
Para a plataforma Opencart, a solução correta é você procurar a versão atualizada da extensão que está sendo utilizada em sua loja.
Faça a busca neste link.
Link: https://www.opencart.com/index.php?route=marketplace/extension&sort=rating&filter_search=correios
Ou você também pode estar alterando manualmente os códigos nos seguintes arquivos:
public_html/catalog/model/shipping/correios.php
public-html/admin/controller/shipping/correios.php
public-html/admin/view/template/shipping/correios.tpl
public_html/catalog/language/en-gb/shipping/correios.php
public_html/catalog/language/english/shipping/correios.php
public_html/catalog/language/portuguese-br/shipping/correios.php
Não esqueça de fazer a limpeza do Cache da loja, após as alterações!
Caso você utilize algum acelerador de PHP (ex: APC Cache), dependendo da configuração o mesmo também deverá ser esvaziado.
Identificando o erro:
Não existem transportadoras disponíveis para o CEP de Destino. Favor entrar em contato com o Atendimento ao Cliente.
Se você utiliza o módulo FK Correios para prestashop, baixe a nova versão do Módulo já com as correções.
https://www.fkmodulos.com.br/modulosfk/loja/modulos/8-fkcorreios-geracao-2.html
Comentado por Willian Martins Garcia
Passo 1. Excluir o FK antigo que esta na loja
Passo 2. Usem esse link de download e baixem o primeiro item FKcorreios Lite G2 apenas:
https://www.prestashop.com/forums/topic/513802-fkcorreios-lite-free/
Passo 3. Façam a ativação do modulo no seu painel, em ‘registro da licença' é só clicar em salvar já esta preenchido automaticamente. Simples. Ativem também os serviços de PAC e SEDEX na aba ‘Serviços'.
Passo 5. No painel especificações do correio ALTERE os códigos de serviço conforme descrito abaixo e salve:
(no meu caso eu utilizo PAC e Sedex sem contrato)
NOVOS CÓDIGOS
04510 – PAC sem contrato
04669 – PAC com contrato
04014 – SEDEX sem contrato
04162 – SEDEX com contrato
Para usuários da plataforma Oscommerce, faça a alteração dos códigos nos arquivos localizados em:
Utilize Ctrl + F para localizar e substituir o código antigo pelo novos códigos
Faça alteração dos códigos no arquivo.
modules/shipping/correios/module.correios.php
Utilize Ctrl + F para localizar e substituir o código antigo pelo novos códigos
Infelizmente ainda não foi atualizado (07/05/2017) o aplicativo do correios para calculo preço e prazo: Calculador Preço e Prazo Correios.
Você pode estar utilizando este calculador, clique neste link Calculador de Frete enquanto não é disponibilizado uma versão corrigida do App.
Manual de implementação do Webservice (oficial) ainda não foi atualizado, então basta você testar o retorno do webservice para descobrir se o código foi alterado ou não.
Apenas os serviços de PAC e Sedex foram alterados, outros serviços continuam com o mesmo código.
Web Service está funcionando normalmente.
Mudança no endereço de rastreamento dos Correios
Segurança: Atualizações frequentes geralmente incluem patches de segurança para corrigir vulnerabilidades identificadas. Ao manter o Magento atualizado, você reduz significativamente…
Como adicionar uma mensagem de Alerta ou Aviso do Admin do Magento 2 Injete o Magento\Framework\Message\ManagerInterface no construtor da sua…
Para exibir as mensagens adicionadas na classe Magento\Framework\Message\ManagerInterface em um arquivo .phtml, você pode usar o seguinte código: <?php $objectManager…
Para criar um script no Magento 2 que exporte as categorias para um arquivo XML com o nome da categoria,…
Para definir um vídeo MP4 como plano de fundo em um <div> usando HTML e CSS, você pode seguir estas…
Como desativar o "lastname" no Magento 2 e Adobe Commerce Desativando a obrigatoriedade do campo Execute a SQL abaixo diretamente…
Ver comentários
Bom dia!
Gostaria de saber qual código dos correios para cadastrar no opencart uma mala direta e um registro módico.
Obrigada
ótimo Post, ajudou e muito a comunidade, parabéns! se possível por favor compartilhe o link para meu site, muito obrigado!
Roger, consegui resolver o problema na minha loja Magento sozinha! Você está de parabéns!
venho aqui também deixar os meus agradecimento ao roger, excelente profissional e atencioso!a questão dos novos códigos pegou muita gente de surpresa! aconselho a todos que tiverem duvida sobre o codigo e utilizam contrato no calculo a ligarem para os correios
Olá,
estou tendo o msmo problema para PAC reverso e Sedex Reverso. Tinha os codigos de servico 40380 para Sedex reverso e 41076 para Pac Reverso. Você sabe quais os novos codigos?
Obrigado
Ola Roger,
falei com os Correios e os novos numeros são:
04170 para Sedex Reverso
04677 para PAC Reverso
Obrigado
Obrigado pela informação Rafael
Olá Rafael, achei apenas esse código
SEDEX_REVERSO= '0417-0';
PAC_REVERSO = '0467-7';
Esse é um serviço que você está utilizando com contrato?
Olá, tudo bom?
Gostaria de pedir sua ajuda por gentileza.
Estou usando o opencart 2.3.0.2 e estou com esse problema no carrinho quando peço pra calcular o frete aparece:
Será que pode me ajudar a resolver isso?
Eu li aqui seu tutorial na parte do opencart e tentei a solução manual, mas não sei o que mudar em cada arquivo que listou.
Agradeço imensamente desde já se puder me ajudar nisso.
Olá Carlos, boa noite,
Você teria que substituir os códigos antigos pelos novos,
Instale o notepad++ e utilize o Ctrl + F para procurar e substituir os códigos.
Faça um backup dos arquivos por garantia e não se esqueça de limpar o cache da loja,
Gostaria bastante de agradecer ao Roger esse post foi ótimo me ajudou com um problemão!!
Olá! Excelente post! Já resolvi o problema no meu sistema.
Notei que o Sedex a Cobrar (40045) está retornando sempre valor zero. Tiveram o mesmo problema?
Obrigado!
Douglas, boa noite,
Até então eu não soube de nenhuma mudança no Sedex a Cobrar,
Pode ser outro problema como a falta do valor declarado, você consegue nos passar o XML de retorno?
Abs!
Opa, veja um exemplo de requisição:
http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx?nCdEmpresa=&sDsSenha=&sCepOrigem=70002900&sCepDestino=71939360&nVlPeso=1&nCdFormato=1&nVlComprimento=30&nVlAltura=30&nVlLargura=30&sCdMaoPropria=n&nVlValorDeclarado=500&sCdAvisoRecebimento=n&nCdServico=40045&nVlDiametro=0&StrRetorno=xml&nIndicaCalculo=3
Não dá erro, mas o valor retorna 0,00.
Douglas, bom dia,
Sedex a cobrar precisa que o campo valor declarado esteja preenchido, você consegue me passar o XML da requisição?
Adicionando mais informações, no calculador do site dos Correios não existe mais a opção "SEDEX a Cobrar", mas tem um "SEDEX Pagamento na Entrega" (código 40819), que acredito ser o substituto. Com este código o web service retorna o preço.
Exatamente isso Douglas, 40819 para o SEDEX e o 41262 para O PAC, que agora também pode ser utilizado nessa modalidade.
Muito obrigado
Bom dia, Roger. O valor está sendo passado na URL (nVlValorDeclarado=500). Quando não passa ele dá erro -7. Nesse caso ele não dá erro, mas retorna preço 0,00.
Você pode ver o problema até no seu calculador, em http://rogertakemiya.com.br/calcular-frete-no-correios/ . Se mando calcular por ele o preço de um Sedex a Cobrar, preenchendo todos os dados corretamente, ele dá que o valor é 0,00.
Obrigado pela ajuda.
Olá
O aplicativo dos correios terá como alterar
Ou vamos ter que esperar a atualização da própria empresa
Boa noite Danubia,
Sim, a própria empresa terá que atualizar.. no caso o proprio Correios
Você pode utilizar esta solução online enquanto isso:
http://rogertakemiya.com.br/calcular-frete-no-correios/
Ou no próprio site dos Correios
PARA VERSÃO PRESTASHOP NÃO É NECESSÁRIO PAGAR PARA OBTER O PROGRAMA, É SÓ SEGUIR ESSE PASSO A PASSO!
Vi que muitos ainda estão com erros e eu também estava fiquei batendo a cabeça até 5 da manhã, vou mostrar como fiz, simples e rápido. Sem necessidade de alterações nos códigos, nada mirabolante.
Passo 1. Excluir o FK antigo que esta na loja
Passo 2. Usem esse link de download e baixem o primeiro item FKcorreios Lite G2 apenas:
https://www.prestashop.com/forums/topic/513802-fkcorreios-lite-free/
Passo 3. Façam a ativação do modulo no seu painel, em 'registro da licença' é só clicar em salvar já esta preenchido automaticamente. Simples. Ativem também os serviços de PAC e SEDEX na aba 'Serviços'.
Passo 5. No painel especificações do correio ALTERE os códigos de serviço conforme descrito abaixo e salve:
(no meu caso eu utilizo PAC e Sedex sem contrato)
NOVOS CÓDIGOS
04510 – PAC sem contrato
04669 – PAC com contrato
04014 – SEDEX sem contrato
04162 – SEDEX com contrato
Willian coloquei a sua solução no Post.
Abs!
muito bom, porém para o opencart a correção que você citou só funciona para 1.x.. para versão 2.x já existe plugin atualizado disponivel
Olá, minha plataforma é opencart 2.3.0.2. Fiz as alterações mensionadas, porém aparece esse erro:
Notice: Undefined variable: correios_04510 in /home/storage/d/6e/02/mariamoleweb1/public_html/admin/view/template/extension/shipping/correios.tpl on line 99
Notice: Undefined variable: correios_04014 in /home/storage/d/6e/02/mariamoleweb1/public_html/admin/view/template/extension/shipping/correios.tpl on line 44 SEDEX
Bom dia Sergio,
Você limpou o cache da loja?
Olá alguém poderia me passar o caminho do pasta do aquivo dos correios dentro do magento para que eu possa alterar o código dos correios?
Edson, boa noite, primeiro você tem que saber qual módulo está sendo utilizado na loja
Caminho do diretorio contendo os módulos: app/code/community
Caso você utilize o módulo do PedroTeixeira, aconselho que você faça a atualização / substituição, no post tem o link para github.
Abs!
Oi! Eu uso o Opencart, atualizei os codigos dos correios, mas agora aparece outra mensagem na tela de escolha do frete:
text_04510 - R$ 17,70
text_04014 - R$ 19,70
Antes aparecia o nome do serviço, prazo de entrega e valor do frete. Sabe como posso resolver? Já fiz de tudo!
Olá Junior, boa noite, você alterou em todos os arquivos abaixo?
public_html/catalog/model/shipping/correios.php
public-html/admin/controller/shipping/correios.php
public-html/admin/view/template/shipping/correios.tpl
public_html/catalog/language/en-gb/shipping/correios.php
public_html/catalog/language/english/shipping/correios.php
public_html/catalog/language/portuguese-br/shipping/correios.php
E claro, a versão 1.x do Opencart já possuí o modulo do Correios atualizado no Marketplace, então aconselho que você faça a atualização (se for sua versão)
Link: https://www.opencart.com/index.php?route=marketplace/extension&sort=rating&filter_search=correios
Esqueci de falar que eu uso o sistema Loja Virtual v12 Mobile.
Oi Neidson, boa tarde,
Infelizmente eu desconheço essa plataforma, mais faz assim, me envia por e-mail a classe / modulo que faz a integração com Correios para eu dar uma olhada, assim posso publicar aqui no Blog para ajudar outras pessoas se eu encontrar um solução,
Abs!
Boa noite!
eu Também utilizo a versão loja virtual 12 mobile - interspire.
estou com mesmo problema alguém nos ajude tbem..
grato
Muito obrigado pela atenção.
Boa tarde!
Eu uso um sistema de loja virtual. Fiz a mudança no modulo em php dos correios e não funcionou.
Quando eu vou simular o frete, informa que tá indisponível.
Será no que no sistema existe outro arquivo que precisa ser alterado?
Grato.
Roger! venho deixar aqui meu comentário agradecendo a sua ajuda e o ótimo trabalho, você realmente está de parabéns! Nunca conversei com alguem tão atencioso como você. Muito obrigado!
Como resolvo esse problema? Uso o magento. Uso esse plugin:
https://www.magentocommerce.com/magento-connect/calculo-de-frete-dos-correios.html
Flávio boa noite, tudo bem?
O correto é atualizar este módulo, porém a ultima versão disponível dele no Magento Connect é de 2014-06-15 18:09:46.
Olá, poderia me ajudar? não consigo calcular o frete por conta do novo código. uso frete fácil .
Olá Erika, boa tarde, você pode utilizar o calculador de frete que eu mesmo desenvolvi: http://rogertakemiya.com.br/calcular-frete-no-correios/
Roger, a versõa da minha loja magento é a 1.9.0.1, e ele apresenta o erro Codigo de servico invalido. Desde 05/05/2017 ele foi substituido pelo 04510.
Como faria para resolver?
Matheus, boa tarde, tudo bem?
A forma mais fácil e atualizando o módulo que realiza o calculo de frete, você sabe me informar qual está sendo utilizado em sua loja?
Abs!