Tutoriais e Dicas

[CORREÇÕES] Código de serviço invalido, SEDEX e PAC foram alterados

Um erro que está ocorrendo no Web Service dos 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

Soluções para corrigir o problema dos novos códigos

Clique na que você está utilizando.

Solução Genérica

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 , e Opencart.

Retorno completo em XML

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:

  • Esse método de envio está fora do ar. Por favor entre em contato conosco.
  • Não existe nenhuma opção de entrega disponível
  • Nenhuma opção de entrega disponível no momento.

Neste caso deverá ser atualizado módulo/ que é responsável pelo calculo.

 

Corringindo no Magento – Módulo PedroTeixeira_Correios

Para quem utiliza o módulo do PedroTexeira, faça a 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.

 

Correção para Woocomerce (wordpress)

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.

  • 04510 – PAC sem contrato (varejo)
  • 04669 – PAC com contrato (verifique no seu contrato a numeração correta)
  • 04014 – SEDEX sem contrato (varejo)
  • 04162 – SEDEX com contrato (verifique no seu contrato a numeração correta)

Não esqueça de limpar o cache depois deste procedimento.

 

Corrigindo o problema no OpenCart

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.
public-/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.

Correção para PrestaShop

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

Outra solução

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 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

Plataforma Oscommerce

Para usuários da plataforma Oscommerce, faça a alteração dos códigos nos arquivos localizados em:

  • includes\languages\portugues\modules\shipping\sedex.php
  • includes\languages\portugues\modules\shipping\pac.php
  • includes\modules\shipping\sedex.php
  • includes\modules\shipping\pac.php

Utilize Ctrl + F para localizar e substituir o código antigo pelo novos códigos

Loja virtual  12 mobile / interspire

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

Aplicativo Cálculo Preço e Prazo Correios

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 , clique neste link Calculador de Frete enquanto não é disponibilizado uma versão corrigida do App.

Sobre os demais serviços (exemplo: Sedex 10)

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.

 

Atualização 10/05/2017

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

 

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!

  • 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

    • 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,

  • 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!

  • Olá
    O aplicativo dos correios terá como alterar
    Ou vamos ter que esperar a atualização da própria empresa

  • 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

  • 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

  • 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

    • 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 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!

    • 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.

  • 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!

Post Recentes

Por que devo sempre manter o Magento 2 atualizado?

Segurança: Atualizações frequentes geralmente incluem patches de segurança para corrigir vulnerabilidades identificadas. Ao manter o Magento atualizado, você reduz significativamente…

1 mês atrás

Adicionar uma mensagem de Alerta ou Aviso do Admin do Magento 2

Como adicionar uma mensagem de Alerta ou Aviso do Admin do Magento 2 Injete o Magento\Framework\Message\ManagerInterface no construtor da sua…

1 mês atrás

Exibir mensagens erro/sucesso da Classe: Magento\Framework\Message\ManagerInterface

Para exibir as mensagens adicionadas na classe Magento\Framework\Message\ManagerInterface em um arquivo .phtml, você pode usar o seguinte código: <?php $objectManager…

1 mês atrás

Exportar as categorias do Magento 2 em um XML

Para criar um script no Magento 2 que exporte as categorias para um arquivo XML com o nome da categoria,…

2 meses atrás

Colocar um video como Background utilizando HTML + CSS

Para definir um vídeo MP4 como plano de fundo em um <div> usando HTML e CSS, você pode seguir estas…

4 meses atrás

Desativar o “lastname” no Magento 2

Como desativar o "lastname" no Magento 2 e Adobe Commerce Desativando a obrigatoriedade do campo Execute a SQL abaixo diretamente…

4 meses atrás