PHPackages                             yhanndaniel/melhorenvio-sdk-php - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. yhanndaniel/melhorenvio-sdk-php

ActiveLibrary

yhanndaniel/melhorenvio-sdk-php
===============================

SDK PHP de integração com o melhor envio

1.3(4y ago)0471MITPHPPHP &gt;=5.6.0

Since Jun 11Pushed 4y agoCompare

[ Source](https://github.com/yhanndaniel/melhorenvio-sdk-php)[ Packagist](https://packagist.org/packages/yhanndaniel/melhorenvio-sdk-php)[ Docs](https://github.com/yhanndaniel/melhorenvio-sdk-php)[ RSS](/packages/yhanndaniel-melhorenvio-sdk-php/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (1)Versions (4)Used By (0)

SDK para Melhor Envio
=====================

[](#sdk-para-melhor-envio)

 [![](https://camo.githubusercontent.com/6dedcbc9a2bfa864a95714e4cc0f655658e0c2008fd6c3ba857ce5fa887a1abf/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f6c6162656c3d6c6963656e7365266d6573736167653d4d495426636f6c6f723d306437626264)](https://camo.githubusercontent.com/6dedcbc9a2bfa864a95714e4cc0f655658e0c2008fd6c3ba857ce5fa887a1abf/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f6c6162656c3d6c6963656e7365266d6573736167653d4d495426636f6c6f723d306437626264) [![](https://camo.githubusercontent.com/77949d003d8009b95b4d798921a75b83e25ee0c8032c105504be798e46ee8a8b/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f6c6162656c3d76657273696f6e266d6573736167653d4245544126636f6c6f723d306437626264)](https://camo.githubusercontent.com/77949d003d8009b95b4d798921a75b83e25ee0c8032c105504be798e46ee8a8b/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f6c6162656c3d76657273696f6e266d6573736167653d4245544126636f6c6f723d306437626264)

🚀 SDK para facilitar a integração com a plataforma Melhor Envio. Utilizando a liguagem PHP.

### Índice

[](#índice)

- [Instalação](#instala%C3%A7%C3%A3o)
- [Autenticação](#autentica%C3%A7%C3%A3o)
- [Renovando Token](#renovando-token)
- [Calculando Frete](#calculando-frete)
- [Etiquetas](#etiquetas)
    - [Solicitando Compra](#solicitando-compra)
    - [Processar Compra](#processar-compra)
    - [Gerar Etiquetas](#gerar-etiquetas)
    - [Recuperar Código de Rastreio](#recuperar-c%C3%B3digo-de-rastreio)

Pré-requisitos
--------------

[](#pré-requisitos)

Antes de começar, você vai precisar ter instalado em sua máquina as seguintes ferramentas:

- [Composer](https://getcomposer.org/)
- [Servidor Apache](https://www.apachefriends.org/index.html)

É necessario possuir um cadastro na plataforma [Melhor Envio](https://melhorenvio.com.br/)

Instalação
----------

[](#instalação)

Para instalar esse componente em seu projeto utilize o composer. `composer require duug-com-br/melhorenvio-sdk-php`

Autenticação
------------

[](#autenticação)

Primeiro você deve solicitar a permissão para utilização do aplicativo. Para isso utilize esse codigo de exemplo.

```
// Instancia o objeto
$MelhorEnvio = new MelhorEnvio\MelhorEnvio(
    "CLIENT ID",
    "SECRET KEY",
    "NOME DO APP",
    "EMAIL TECNICO"
);

// Adiciona a url de callback
$MelhorEnvio->setCallbackURL("URL PARA RETORNO");

// Solicita a autenticacao
// O usuario será redirecionado para uma página da melhor envio.
$MelhorEnvio->requestAuthorization();
```

Após a solicitação de permissão o usuário será redirecionado para a url de callback informada. Nessa url será passado um código via GET que será utilizado para a geração de token.

```
// Solicita o token
$retorno = $MelhorEnvio->requestToken($_GET["code"]);

// Verifica se não ocorreu erro
if(!$retorno["error"])
{
    // Recupera as informações
    $retorno = $retorno["data"];
}
```

Dentro do retorno data é retornado um array com as seguintes informações

```
(Array)
[
    "accessToken" => "TOKEN PARA REQUISIÇÕES",
    "refreshToken" => "TOKEN PARA RENOVAÇÂO DO accessToken",
    "tokenValidate" => "Data de validade do token (+ 30 dias)"
]

```

Renovando Token
---------------

[](#renovando-token)

Exemplo de como renovar um token expirado

```
// Solicita a atualizacao
$resposta = $MelhorEnvio->refreshToken($refreshToken);

// Verifica se deu certo
if(!$resposta["error"])
{
    // Armaze os novos tokens
    $resposta["data"];
}
```

Calculando Frete
----------------

[](#calculando-frete)

Exemplo de como calcular um frete para um determindado produto. Caso haja mais de um produto é apenas replicar a linha onde configuramos o produto.

```
// Informa o token
$MelhorEnvio->setAccessToken("Access Token");

// Instancia o produto
$Product = new MelhorEnvio\Product();

// Seta as informações do produto.
// Pode duplicar esse item para adicionar mais produtos
$Product->setProducts(
    "Id do produto",
    "Nome do produto",
    "Largura",
    "Altura",
    "Comprimento",
    "Peso",
    "Valor do Produto",
    "Quantidade"
);

// Realiza o calculo do frete
$resposta = $MelhorEnvio->calculate("CEP do remetente", "CEP do destinatario", $Product);

// Verifica se deu certo
if(!$resposta["error"])
{
    // As informações do frete estão no array
    $resposta["data"]
}
```

Veja um exemplo do array data retornado no calculo do frete.

```
(Array)
[
    company" => [
         "name" => Nome da transportadora
         "image" => Imagem da logo da transportadora
    ],
    "service" => Nome do serviço (ex: Pac, Sedex...)
    "timeDays" => Prazo em dias para entrega
    "code" => Codigo do servico
    "packages" => (Array) Lista dos pacotes que serão enviados
]

```

Etiquetas
---------

[](#etiquetas)

Com esse SDK é possivel realizar a compra de etiquetas atraves da plataforma Melhor Envio. Lembrando que é necessário ter

### Solicitando compra

[](#solicitando-compra)

Primeiro é necessário realizar uma solicitação de compra de etiqueta. Veja o código de exemplo:

```
// Informa o token
$MelhorEnvio->setAccessToken("Access Token");

// Destinatario e Remetente
$Destinatario = new MelhorEnvio\User();
$Remetente = new MelhorEnvio\User();

// Adiciona as informações
$Destinatario->setDocumentos("CPF");

$Destinatario->setInformacaoPessoal("NOME", "EMAIL", "CELULAR");

$Destinatario->setEndereco([
    "endereco" => "Rua xyz",
    "numero" => 123,
    "bairro" => "Jardim São José",
    "cidade" => "São Paulo",
    "cep" => 11200363
]);

// Adiciona as informações do remetente
$Remetente->setDocumentos("CPF", "CNPJ", "INCRICAO ESTADUAL");

$Remetente->setInformacaoPessoal("NOME", "EMAIL", "CELULAR");

$Remetente->setEndereco([
    "endereco" => "Rua xyz",
    "numero" => 123,
    "bairro" => "Jardim São José",
    "cidade" => "São Paulo",
    "cep" => 11200363
]);

// Instancia o produto
$Product = new MelhorEnvio\Product();

// Seta as informações do produto.
// Pode duplicar esse item para adicionar mais produtos
$Product->setProducts(
    "Id do produto",
    "Nome do produto",
    "Largura",
    "Altura",
    "Comprimento",
    "Peso",
    "Valor do Produto",
    "Quantidade"
);

// Pacote
// Quando foi calculado o valor do frete, ele retorno os pacotes disponiveis
$pacotes = [];

/**
* OBS:
* Em caso de vários pacotes para a transportadora correios
* deverá realizar uma solicitação por pacote. As demais poderá
* realizar apenas uma solicitação passando um array de pacotes,
* da maneira que iremos fazer agora.
**/

// Percorre os pacotes
foreach ($packages as $package)
{
    $pacotes[] = [
        "height" => $packages->dimensions->height,
        "width" => $packages->dimensions->width,
        "length" => $packages->dimensions->length,
        "weight" => $packages->weight
    ];
}

// Codigo do serviço de envio
$code = "CODIGO DO SERVICO (RETORNADO NA BUSCA DO VALOR)";

// Realiza a solicitação de compra das etiqueta
$resposta = $MelhorEnvio->requestBuyTag($Destinatario, $Remetente, $Product, $pacote, $code, "Identificador do Pedido");

// Verifica se deu certo
if(!$resposta["error"])
{
    // Será retorno os ids da solicitação
    // Armaze os ids para poder realizar a compra da etiqueta
    $ids = $resposta["data"];
}
```

Processar Compra
----------------

[](#processar-compra)

Com os ids da solicitação em mão você agora deverá realizar a compra da etiqueta. Para esse processo funcionar é necessário que possua saldo na plataforma.

```
// Verifica se o id retornado não é um array
if(!is_array($ids))
{
    // Força ser um array
    $ids = [$ids];
}

// Realiza a compra da etiqueta
$resposta = $MelhorEnvio->processBuyTag($ids);

// Verifica se deu certo
if(!$resposta["error"])
{
    // Apos o pagamento é necessário realizar a solicitação
    // para impressão da etiqueta.
}
```

Gerar Etiquetas
---------------

[](#gerar-etiquetas)

Após a etiqueta ser comprada deve-se solicitar a impressão da mesma, onde a plataforma retornará um link com o arquivo PDF da etiqueta.

```
// Solicita a impressão das etiquetas
$resposta = $MelhorEnvio->printTag($ids);

// Verifica se deu certo
if(!$resposta["error"])
{
    // É retornado um array contendo a url para impressão
    $resposta["data"]

    // Exemplo do array retornado no item data
    // (Array) ["url" => "URL DO PDF DA ETIQUETA"]
}
```

Recuperar Código de Rastreio
----------------------------

[](#recuperar-código-de-rastreio)

Após ter gerado a etique é possivel solicitar o código de rastreio para informar ao cliente.

veja o código de exemplo:

```
// Gera o codigo de rastreio
$rasteio = $MelhorEnvio->getTracking($ids);

// Verifica se deu certo
if(!$resposta["error"])
{
    // É retornado um array contendo os códigos
    $resposta["data"]
}
```

Veja um exemplo do retorno na array data:

```
(Array)
[
    [
        "tracking" => "CÓDIGO DE RASTREIO"
    ],
    [
        "tracking" => "CÓDIGO DE RASTREIO"
    ]
]

```

Caso seja apenas um pacote será retornado apenas 1 item no array contendo o código de rastreio.

Licença
-------

[](#licença)

Lançado sob a licença \[MIT\]()

###  Health Score

23

—

LowBetter than 27% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity48

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 62.5% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~36 days

Total

3

Last Release

1721d ago

PHP version history (2 changes)v1.0PHP &gt;=7.0.0

v1.2PHP &gt;=5.6.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/a1fe9c8a172d1f57f857e0fd57f03edfbcdc82fd5a6e699126ad84c7da141163?d=identicon)[Yhann](/maintainers/Yhann)

---

Top Contributors

[![igorcacerez](https://avatars.githubusercontent.com/u/29128449?v=4)](https://github.com/igorcacerez "igorcacerez (15 commits)")[![yhanndaniel](https://avatars.githubusercontent.com/u/32552856?v=4)](https://github.com/yhanndaniel "yhanndaniel (9 commits)")

---

Tags

phpsdkfretemelhor envio

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/yhanndaniel-melhorenvio-sdk-php/health.svg)

```
[![Health](https://phpackages.com/badges/yhanndaniel-melhorenvio-sdk-php/health.svg)](https://phpackages.com/packages/yhanndaniel-melhorenvio-sdk-php)
```

###  Alternatives

[deepseek-php/deepseek-php-client

deepseek PHP client is a robust and community-driven PHP client library for seamless integration with the Deepseek API, offering efficient access to advanced AI and data processing capabilities.

47073.9k5](/packages/deepseek-php-deepseek-php-client)[microsoft/azure-storage-queue

This project provides a set of PHP client libraries that make it easy to access Microsoft Azure Storage Queue APIs.

142.6M17](/packages/microsoft-azure-storage-queue)[cryptonator/merchant-php-sdk

Cryptonator.com Merchant API SDK for PHP

2713.7k](/packages/cryptonator-merchant-php-sdk)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
