Fechar
esqueci a minha senha
criar uma conta

Informar código de rastreamento do pedido API 2.0

Serviço destinado ao cadastro de um código de rastreamento em um pedido de venda.

ElementoTipoOcorrênciaDescrição
tokenstringobrigatórioChave gerada para identificar sua empresa
idintobrigatórioNúmero de identificação do pedido no Tiny
codigoRastreamentostringobrigatórioCódigo de rastreamento do pedido
urlRastreamento (1)stringopcionalURL de rastreamento do pedido
formaEnvio (2)stringopcionalForma de envio do pedido
transportadora (3)stringopcionalNome da tranportadora
volumesintopcionalNúmero de volumes do pedido
pesoBruto (4)decimalopcionalPeso Bruto do pedido
pesoLiquido (4)decimalopcionalPeso Líquido do pedido
formatostringobrigatórioFormato do retorno (json ou xml)

(1) - O valor passado para este campo deve ser codificada em formato de url.
(2) - Os valores possíveis são: 'C' para Correios e 'T' para transportador.
(3) - Esse campo somente é considerado caso o campo "formaEnvio" seja "T", e a transportadora deve estar previamente cadastrada no sistema.
(4) - Estes campos utilizam “.” (ponto) como separador de decimais, exemplo "5.25".

ElementoTipoTamanhoOcorrênciaDescrição
retorno--obrigatórioElemento raiz do retorno
retorno.status_processamentoint-obrigatórioConforme tabela "Status de Processamento"
retorno.statusstring-obrigatórioContém o status do retorno “OK” ou “Erro”. Para o caso de conter erros estes serão descritos abaixo
retorno.codigo_erro (1)int-condicionalConforme tabela "Códigos de erro"
retorno.erros[ ] (1) (2)list-condicional [0..n]Contém a lista dos erros encontrados.
retorno.erros[ ].errostring-condicionalMensagem contendo a descrição do erro

(1) - Somente estará presente no retorno caso o elemento "status" seja "Erro".
(2) - Estes campos somente serão informados caso o retorno contenha erros.


$url = 'https://api.tiny.com.br/api2/cadastrar.codigo.rastreamento.pedido.php';
$token = 'coloque aqui a sua chave da api';
$id = 'xxxxx';
$formato = 'XML';
$codigoRastreamento = "XABC123412341234";
$urlRastreamento = urlencode("http://www2.correios.com.br/sistemas/rastreamento/default.cfm?code=XABC123412341234");
$formaEnvio = "T";
$data = "token=$token&id=$id&codigoRastreamento=$codigoRastreamento&urlRastreamento=$urlRastreamento&formaEnvio=$formaEnvio&formato=$formato";

enviarREST($url, $data);    

function enviarREST($url, $data, $optional_headers = null) {
	$params = array('http' => array(
		'method' => 'POST',
	    'content' => $data
	));
	
	if ($optional_headers !== null) {
		$params['http']['header'] = $optional_headers;
	}
	
	$ctx = stream_context_create($params);
	$fp = @fopen($url, 'rb', false, $ctx);
	if (!$fp) {
		throw new Exception("Problema com $url, $php_errormsg");
	}
	$response = @stream_get_contents($fp);
	if ($response === false) {
		throw new Exception("Problema obtendo retorno de $url, $php_errormsg");
	}
	
	return $response;
}

$client = new nusoap_client("https://api.tiny.com.br/api2.php?wsdl", true);
$client->soap_defencoding = 'UTF-8';
$client->decode_utf8 = false;

$result = $client->call("cadastrarCodigoRastreamentoPedido", array('token' => 'xxxxx', 'id' => 'xxxxx', 'codigoRastreamento' => 'XABC123412341234', 'urlRastreamento' => urlencode('http://www2.correios.com.br/sistemas/rastreamento/default.cfm?code=XABC123412341234'), 'formaEnvio' => 'T', 'formato' => 'XML'));

$res = array();
if ($client->fault) {
	$retorno = $result['faultstring'];		
} else {
	$err = $client->getError();
	if ($err) {
		$retorno = $err;	    	
	} else {
		$retorno = $result;
	}
}
<?xml version="1.0" encoding="UTF-8"?>
<retorno>
  <status_processamento>1</status_processamento>
  <status>Erro</status>
  <codigo_erro>2</codigo_erro>
  <erros>
    <erro>token invalido</erro>
  </erros>
</retorno>
<?xml version="1.0" encoding="UTF-8"?>
<retorno>
  <status_processamento>2</status_processamento>
  <status>Erro</status>
  <codigo_erro>21</codigo_erro>
  <erros>
    <erro>A consulta retornou mais registros que o permitido</erro>
  </erros>
</retorno>
<?xml version="1.0" encoding="UTF-8"?>
<retorno>
  <status_processamento>3</status_processamento>
  <status>OK</status>
</retorno>