Consultar frete na API dos correios em PHP

Frequentemente nos deparamos com o seguinte requisito “Implementar uma tela que realize o cálculo de Frete dos Correios, SEDEX, PAC, SEDEX10, etc”. Até esse instante, nenhum problema. Basta pesquisar e irá encontrar inúmeras formas de implementar esse código. Mas hoje me deparei com um sistema legado onde estava usando a antiga API que era disponibilizada pela KingHost e identifiquei que a mesma foi descontinuada. Por esse motivo o sistema do site legado, não estava funcionando. Diante dessa situação consultei a documentação da API dos correios e encontrei a documentação do novo WebService, no qual implementei um código “PHP Puro” que gostaria de compartilhar com outras pessoas que possam enfrentar esse mesmo problema, segue abaixo o código implementado juntamente com uma breve documentação.

Modalidade de frete, modalidades válidas:

04510 – PAC

04014 – SEDEX

40045 – SEDEX à Cobrar

40215 – SEDEX 10

40290 – SEDEX Hoje

cep_origem: CEP de origem, utilize apenas números!

cep_destino: CEP de destino, utilize apenas números!

peso: Peso da encomenda, qualquer valor entre 0.3 e 30 kg.

mao_propria: Entrega na sua casa, só são aceitos dois valores ‘s’ e ‘n’, se for passado outro valor a função entenderá como ‘n’

valor_declarado: Valor declarado da encomenda, se desejar declarar, por exemplo, R$1,00, use 100. Lembrando que ao declarar o valor retornado será (Frete + Valor Declarado)

aviso_recebimento: Aviso de recebimento, só são aceitos dois valores ‘s’ e ‘n’, se for passado outro valor a função entenderá como ‘n’

Link Documentação (Revisão 28/06/2018) 

Consultar na API dos correios sempre é um processo complicado, como comentei acima. Caso você tenha problemas com a implementação apresentada anteriormente, vou deixar abaixo outras APIs que você pode tentar utilizar em sua aplicação, caso necessário.

Este post foi atualizado em 07/06/2019 e a lista de outras APIs consultadas na seguinte fonte:

https://sounoob.com.br/consultando-cep-no-site-correio-com-php/