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

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.

Código de serviço invalido - Erro no Webservice Correios

Tabela com os códigos que foram modificados.

ServiçoCódigo AntigoCódigo Novo
 SEDEX4001004014
 PAC4110604510
 ???4095904103
 ???4145904715
 ???4081004065
 ???4126204707

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

Clique na plataforma 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 Magento, Woocommerce 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/plugin que é responsável pelo calculo.

 

correção para lojas Magento

Corringindo no Magento – Módulo PedroTeixeira_Correios

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.

 

correção para lojas Woocommerce (WordPress)

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.

 

correção para lojas opencart

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

correção para lojas com a plataforma prestashop

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

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

 

75 comentários sobre “[CORREÇÕES] Código de serviço invalido, SEDEX e PAC foram alterados

  1. 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
  2. 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
    1. 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?
  3. 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.
    1. 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,
  4. 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!
    1. 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!
      1. 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=3Não dá erro, mas o valor retorna 0,00.
        1. Douglas, bom dia, Sedex a cobrar precisa que o campo valor declarado esteja preenchido, você consegue me passar o XML da requisição?
          1. 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 https://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.
          2. 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.
          3. Exatamente isso Douglas, 40819 para o SEDEX e o 41262 para O PAC, que agora também pode ser utilizado nessa modalidade. Muito obrigado
    1. 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: https://rogertakemiya.com.br/calcular-frete-no-correios/ Ou no próprio site dos Correios
  5. 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 lojaPasso 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
  6. 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
  7. 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
  8. 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?
    1. 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!
  9. 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,70Antes aparecia o nome do serviço, prazo de entrega e valor do frete. Sabe como posso resolver? Já fiz de tudo!
    1. 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.phpE 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
    1. 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!
      1. Boa noite! eu Também utilizo a versão loja virtual 12 mobile – interspire. estou com mesmo problema alguém nos ajude tbem.. grato
  10. 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.
  11. 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!
  12. Como resolvo esse problema? Uso o magento. Uso esse plugin: https://www.magentocommerce.com/magento-connect/calculo-de-frete-dos-correios.html
    1. 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.
    1. Olá Erika, boa tarde, você pode utilizar o calculador de frete que eu mesmo desenvolvi: https://rogertakemiya.com.br/calcular-frete-no-correios/
  13. 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?
    1. 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!
    1. Josiane, boa noite, Claro, posso te ajudar sim, te mandei um e-mail com alguns questionamentos. Para quem utiliza Magento / Woocommerce, é bem simples atualizar.. questão de minutos… desde que a versão da loja não seja muito antiga.
  14. Olá amigo, estou com uma encrenca por aqui também, queria ver se consegue me ajudar. Tenho uma loja em Prestashop 1.4 (bem antiga, até tentei migrar recentemente, mas deu muitos problemas abortei a missão).O módulo de cálculo dos correios que venho utilizando é o “Transporte pelos correios” do Rodrigo Laurindo.Atualizei os códigos no Banco de dados e nos fontes, porém segue o problema. Acredito que seja o tal zero, mas não manjo muito de PHP.Consegues me ajudar será?Abraço e de antemão, obrigado pelas informações!
    1. Oi Odacir, baite encrenca mesmo, te mandei um e-mail! Como você já atualizou o código, ou ficou alguma referencia perdida em alguma classe ou a loja está com algum sistema de cache ativado, apenas analisando código do módulo eu conseguiria te ajudar, Abs!
  15. Olá…no meu site aparece a seguinte mensagem: Seu pedido não pode ser finalizado no momento, pois não há formas de entrega disponíveis para ele. Talvez seja necessário alterar o seu endereço de entrega. Uso magento e o módulo Rosantoz. Estava funcionando normal, e depois de sexta feira, aparece essa mensagem.
    1. Olá Luiz, boa tarde, infelizmente esse módulo, pelo que notei no github está descontinuado. Por favor, dá uma olhada no seu e-mail depois.. Para os demais visitantes, aconselho que seja utilizado o módulo do Pedro Teixeira: https://github.com/pedro-teixeira/correios
  16. Olá Roger, primeiramente parabéns pelo seu trabalho. Tenho uma loja magento versão antiga (4.1.1), e estou com esse erro no frete também. Uso o módulo do Pedro Teixeira, mas não consigo atualizar pelo Magento conect. Estou no desespero, essa é que é a verdade! Agradeceria muito a sua ajuda!!!!
    1. Oi Fabiano, a versão é 1.4.1? Realmente bem antiga. Tem como fazer uma alteração “paliativa” para o seu problema até você conseguir atualizar o módulo, Te mandei um e-mail, dá uma olhada por favor, abs!
  17. Bom DIa eu modifiquei no meu banco de dados e no codigo fonte tudo certinho ele ta me retornando que não há serviço com o código ‘4014’
    1. Maxwell, boa tarde, É obrigatório o 0 na frente do código “04014”, acredito que no seu banco de dados o código esteja sendo salvo como valor inteiro que automaticamente remove o 0 (zero).
          1. Maxwell, simule uma requisição utilizando a ferramenta SoapUI https://www.soapui.org/downloads/soapui.html Sempre utilizo ela e está tudo Ok, estranho a mensagem de erro em inglês… será que essa mensagem não está vindo da aplicação que está validando o código antes de fazer a requisição? Você consegue me passar o XML da requisição? E qual método você está consultando?
          2. realmente erro ta retornando da lib que esta sendo usada aqui ta meio confusa de entender, tem um if onde ele verifica os codigos se codigo nao existir ele retorna esse erro teria q atualizar a lib sera?, to consultando calculo de preço
          3. Isso mesmo maxwell, porém te aconselho a apenas comentar esse IF.. essa é uma camada de validação inútil já que o próprio webservice do Correios irá validar e retornar uma mensagem de erro caso realmente não exista o código.
          4. mesmo comentando o if ele da erro na lib fui no github link da lib ta fora do ar acho que vou ter q procurar outra ou fazer td na mão me ferrei :/
          5. Eita, fique tranquilo que não é algo tão difícil de implementar, te mandei um e-mail.. dá uma olhada depois. :)Para complementar a resposta para outras pessoas: Post explicando rapidamente em como fazer essa integração: https://rogertakemiya.com.br/webservice-dos-correios-pelo-php/Tem também o manual em PDF para implementação: https://www.correios.com.br/para-voce/correios-de-a-a-z/pdf/calculador-remoto-de-precos-e-prazos/manual-de-implementacao-do-calculo-remoto-de-precos-e-prazos
          6. ja tinha feito qze igual o que vc ja publicou estranho q ele n me retorna nd nenhum erro nd e da status 200
          7. Oi Maxwell, fique a vontade para me retornar no e-mail Sobre esta situação, pode estar sendo ocasionada por diversos fatores, fica um pouco difícil de ajudar você sem analisar o código. Abs.
    1. Boa tarde Ligia, Teria que ser verificado qual o plugin está sendo utilizado na loja, para assim ser realizada a atualização.
    1. Boa tarde Danilo, aparentemente continua o mesmo código. Lembrando que o Sedex 10 só está disponível para algumas cidades.
  18. Olá, tudo bem? Não estou conseguindo pelo celular no APP dos CORREIOS e nem através do site no computador, calcular os valores de frete para meus clientes. Aparece o seguinte erro: Codigo de servico invalido. Desde 05/05/2017 ele foi substituido pelo 04510.Gostaria de uma ajuda. Obrigado Att
    1. Renan, boa noite, Infelizmente nessa caso você tem que esperar uma atualização do aplicativo do Correios. É este aplicativo correto? https://play.google.com/store/apps/details?id=br.com.correios.calculaprecoprazo&hl=pt_BR Além desse existe outros app que você pode estar utilizando na Play Store que não estão com esse erro e já foram atualizados.
        1. Bom dia Valéria, Você pode estar utilizando: https://rogertakemiya.com.br/calcular-frete-no-correios/ Enquanto Correios não atualiza o aplicativo oficial.
  19. Fui descobrir so ontem dessa mudança e consegui resolver hoje com sua ajuda Roger! Muito obrigado cara, não tenho trabalho com PHP a um bom tempo.. Agora por que Correios fez isso? Concerteza eles sabiam que varias lojas iriam ter problemas, ainda mais lojas antigas, por que mudar código dos serviços? que diferença faz?
    1. Gabriel, boa noite. Acredito que o Correios esteja adotando um novo padrão para os códigos do seus Serviços (chute). Realmente, tem muito lojista perdendo venda por causa disso.. porém temos que ter paciência já que infelizmente não temos nenhuma outra grande empresa no Mercado que entrega em todo o Brasil.
  20. Uso um App pra calcular frete e aparece essa informação que o código mudou mas não sei como proceder. Está sendo muito chato pq estou perdendo vendas devido a isso. Como faço?
    1. Glecia, boa tarde, tudo bem?Para que eu posso te ajudar, por favor me fale qual APP você está utilizando?Caso seja uma solução paga, aconselho você entrar imediatamente em contato com a empresa responsável.

Dúvidas? Faça um comentário logo abaixo ou envie uma mensagem clicando aqui.

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *