Você está usando um navegador que não é suportado pelo Tiny. 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 no Tiny
serieNota (1)stringobrigatórioSérie da nota fiscal no Tiny
modeloNota (1)stringobrigatórioModelo da nota fiscal no Tiny
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 no Tiny.
(2) - Ao não informar este parâmetro o Tiny 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 no Tiny

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