Você está usando um navegador que não é suportado pela Olist. Saiba mais

PDV - Cancelar Nota via XML API 2.0

Serviço destinado a cancelar notas fiscais via XML.

ElementoTipoOcorrênciaDescrição
tokenstringobrigatórioChave gerada para identificar a empresa
xmlstringobrigatórioXML da nota fiscal
numeroNota (1)stringobrigatórioNúmero da nota fiscal na Olist
serieNota (1)stringobrigatórioSérie da nota fiscal na Olist
modeloNota (1)stringobrigatórioModelo da nota fiscal na Olist
estornarContas (2)stringopcionalEstornar contas da nota fiscal (S - Sim, N - Não)
estornarEstoque (2)stringopcionalEstornar estoque dos itens da nota fiscal (S - Sim, N - Não)

(1) - Este dado será utilizado apenas para buscar as informações da nota fiscal na Olist.
(2) - Ao não informar este parâmetro a Olist realizará o estorno automaticamente para a nota fiscal.

ElementoTipoTamanhoOcorrênciaDescrição
retorno object-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)list [0..n]condicionalContém a lista dos erros encontrados.
retorno.erros[ ].errostring-condicionalMensagem contendo a descrição do erro
retorno.idNotaFiscal (2)int-condicionalNúmero de identificação da nota fiscal na Olist

(1) - Somente estará presente no retorno caso o elemento "status" seja "Erro".
(2) - Somente estará presente no retorno caso o elemento "status" seja "OK".


$url = 'https://api.tiny.com.br/api2/pdv.cancelar.nota.xml.php';
$token = 'coloque aqui a sua chave da api';
$xml = 'xxxxx';
$numeroNota = 'yyyyyy';
$serieNota = 'xxxxxx';
$modeloNota = 'zzzzzz';
$data = "token=$token&xml=$xml&numeroNota=$numeroNota&serieNota=$serieNota&modeloNota=$modeloNota";

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