Autenticação
Todas as requisições devem ser autenticadas com as credênciais de acesso (API_KEY e o SECRET_TOKEN) utilizando basic auth.
O token secreto deve ser armazenado com segurança, não sendo fornecido a terceiros e não utilizado como, por exemplo, em aplicações JavaScript que realizam requisições AJAX a partir do navegador.
Exemplo com CURL:
curl \
-X GET \
-u 'API_KEY:SECRET_TOKEN' \
'https://api.melhorenvio.com.br/v1/shipping/services'
Note que no exemplo acima foi utilizado CURL e a "API_KEY" deve ser substituída pela API_KEY e o "SECRET_TOKEN" pelo respectivo token secreto.
Exemplo com Guzzle em PHP:
<?php
use GuzzleHttp\Client;
$client = new Client();
$response = $client->get('https://api.melhorenvio.com.br/v1/shipping/services', [
'auth' => ['API_KEY', 'SECRET_TOKEN']
]);
if ($response->getStatusCode() === 200) {
echo $response->getBody();
}
Exemplo de resposta:
[
{
"name": "Correios",
"icon": "http://www.melhorenvio.com.br/shipping-companies/images/Correios.png",
"services": [
{
"id": 1,
"name": "Expresso",
"type": 2,
"level": 3
},
{
"id": 2,
"name": "PAC",
"type": 1,
"level": 3
}
]
},
...
]
Headers
Todas as requisições, com exceção das que utilizam o método GET, devem possuir obrigatoriamente o header:
'Content-Type: application/json;charset=UTF-8'
Exemplo com CURL:
curl \
-X GET \
-u 'API_KEY:SECRET_TOKEN' \
-H 'Content-Type: application/json;charset=UTF-8' \
'https://api.melhorenvio.com.br/v1/shipping/services'
Obtendo credências
Para obter as credências (API_KEY e SECRET_TOKEN), deve ser requisitado as mesmas uma única vez através do endpoint e payload abaixo:
Endpoint POST /authorize
Payload:
{
"name": "Melhor Loja", // nome da loja
"url": "http://melhorloja-parceira-do-melhorenvio.com.br" // url do site
}
As informações acima são importantes para que o usuário identifique a partir de qual site ele está comprando os envios e para que seja redirecionando para o site após concluir a compra.
Exemplo com CURL:
curl \
-X POST \
-H 'Content-Type: application/json;charset=UTF-8' \
-d '{"name":"Melhor Loja","url":"http://melhorloja-parceira-do-melhorenvio.com.br"}' \
'https://api.melhorenvio.com.br/v1/authorize'
Resposta:
{
"api_key": "0684def258075e2de794dc9d514bb66b2f664c08",
"secret_token": "319a77d0ab276204314c191a681674176b7c88b999a30122eab4984b229bc124"
}