Fechar
esqueci a minha senha
criar uma conta

Pesquisar Notas Fiscais API 2.0

Serviço destinado a fazer consulta de Notas Fiscais.

ElementoTipoOcorrênciaDescrição
tokenstringobrigatórioChave gerada para identificar sua empresa
formatostringobrigatórioFormato do retorno (json ou xml)
tipoNota (1)stringopcionalTipo da nota (E/S) E=Entrada, S=Saída
numero (1)stringopcionalNúmero da nota (no Tiny)
cliente (1)stringopcionalNome ou código (ou parte) do cliente
cpf_cnpj (1)stringopcionalCPF ou CNPJ do cliente
dataInicial (1)stringopcionalData incial das notas fiscais que deseja consultar no formato dd/mm/yyyy
dataFinal (1)stringopcionalData final das notas fiscais que deseja consultar no formato dd/mm/yyyy
situacao (1) (2)stringopcionalExibir notas fiscais na situação
numeroEcommerce (1)stringopcionalNúmero do pedido no ecommerce(ou no seu sistema)
idVendedor (3)intopcionalNúmero de identificação do vendedor no Tiny
nomeVendedor (3) (4)stringopcionalNome do vendedor no Tiny
pagina (5)intopcionalNúmero da página

(1) - Ao menos um desses parâmetros deve ser informado.
(2) - Código da situação conforme tabela de "Situações das Notas Fiscais".
(3) - Caso o vendedor não seja localizado no Tiny a consulta não retornará registros.
(4) - Este valor será desconsiderado caso seja informado valor para o parâmetro idVendedor.
(5) - Numero da página que deseja obter (por padrão são listados 50 registros por página), caso não seja informado o valor padrão é 1.

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) (3)list-condicional [0..n]Contém a lista dos erros encontrados.
retorno.erros[ ].errostring-condicionalMensagem contendo a descrição do erro
retorno.paginaint-obrigatórioNúmero da página que está sendo retornada
retorno.numero_paginasint-obrigatórioNúmero de paginas do retorno
retorno.notas_fiscais[ ] (2)list-condicionalLista de resultados da pesquisa
retorno.notas_fiscais[ ].nota_fiscal (2)object-condicionalElemento utilizado para representar uma nota fiscal.
retorno.notas_fiscais[ ].nota_fiscal.idint-condicionalNúmero de identificação da nota fiscal no Tiny
retorno.notas_fiscais[ ].nota_fiscal.tipostring1condicionalTipo da nota fiscal (E/S)
retorno.notas_fiscais[ ].nota_fiscal.serieint-condicionalNúmero de série da nota fiscal
retorno.notas_fiscais[ ].nota_fiscal.numeroint-condicionalNúmero da nota fiscal
retorno.notas_fiscais[ ].nota_fiscal.numero_ecommercestring50condicionalNúmero do pedido no ecommerce(ou sistema)
retorno.notas_fiscais[ ].nota_fiscal.data_emissao (4)date10condicionalData de emissão da nota fiscal
retorno.notas_fiscais[ ].nota_fiscal.nomestring50condicionalNome do cliente
retorno.notas_fiscais[ ].nota_fiscal.valor (5)decimal- condicionalValor total da nota fiscal
retorno.notas_fiscais[ ].nota_fiscal.id_vendedorint15condicionalNúmero de identificação do vendedor associado a nota fiscal
retorno.notas_fiscais[ ].nota_fiscal.nome_vendedorstring50condicionalNome do vendedor associado a nota fiscal
retorno.notas_fiscais[ ].nota_fiscal.situacaoint-condicionalCódigo conforme tabela de "Situações das Notas Fiscais"
retorno.notas_fiscais[ ].nota_fiscal.descricao_situacaostring25condicionalDescrição conforme tabela de "Situações das Notas Fiscais"
retorno.notas_fiscais[ ].nota_fiscal.chave_acessostring100opcionalChave de acesso da Nota Fiscal
retorno.notas_fiscais[ ].nota_fiscal.codigo_rastreamentostring25condicionalCódigo de rastreamento da nota fiscal

(1) - Somente estará presente no retorno caso o elemento "status" seja "Erro".
(2) - Somente estará presente no retorno caso o elemento "status" seja "OK".
(3) - Estes campos somente serão informados caso o retorno contenha erros.
(4) - Estes campos utilizam o formato dd/mm/yyyy, exemplo "01/01/2012".
(5) - Estes campos utilizam “.” (ponto) como separador de decimais, exemplo "5.25".


$url = 'https://api.tiny.com.br/api2/notas.fiscais.pesquisa.php';
$token = 'coloque aqui a sua chave da api';
$numero= 'xxxxx';
$data = "token=$token&numero=$numero&formato=XML";

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("pesquisarNotasFiscaisService", array('token' => 'xxxxx','numero'=>'xxxxx','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>
  <notas_fiscais>
    <nota_fiscal>
      <id>123456</id>
      <serie>1</serie>
      <numero>123</numero>
      <numero_ecommerce>12</numero_ecommerce>
      <data_emissao>01/01/2012</data_emissao>
      <nome>Cliente Teste</nome>
      <valor>100.25</valor>
      <id_vendedor>123456</id_vendedor>
      <nome_vendedor>Vendedor Teste</nome_vendedor>
      <situacao>1</situacao>
      <descricao_situacao>Pendente</descricao_situacao>
    </nota_fiscal>
  </notas_fiscais>
</retorno>