Pesquisar Notas de Serviço API 2.0
Serviço destinado a fazer consulta de Notas Fiscais de Serviço.
Parâmetros do serviço
| Elemento | Tipo | Ocorrência | Descrição | 
|---|---|---|---|
| token | string | obrigatório | Chave gerada para identificar sua empresa | 
| formato | string | obrigatório | Formato do retorno (json) | 
| numero (1) | string | opcional | Número da nota de serviço (no Tiny) | 
| numeroRPS (1) (2) | string | opcional | Número do RPS (no Tiny) | 
| cliente (1) | string | opcional | Nome ou código (ou parte) do cliente | 
| cpf_cnpj (1) | string | opcional | CPF ou CNPJ do cliente | 
| dataInicial (1) | string | opcional | Data incial das notas fiscais de serviço que deseja consultar no formato dd/mm/yyyy | 
| dataFinal (1) | string | opcional | Data final das notas fiscais de serviço que deseja consultar no formato dd/mm/yyyy | 
| situacao (1) (3) | string | opcional | Exibir notas fiscais de serviço na situação | 
| idVendedor (4) | int | opcional | Número de identificação do vendedor no Tiny | 
| nomeVendedor (4) (5) | string | opcional | Nome do vendedor no Tiny | 
| pagina (6) | int | opcional | Número da página | 
			(1) - Ao menos um desses parâmetros deve ser informado.
			(2) - Este campo é utilizado somente para quem utiliza nota fiscal eletrônica de serviço.
			(3) - Código da situação, conforme tabela de Situações das Notas de Serviço.
			(4) - Caso o vendedor não seja localizado no Tiny a consulta não retornará registros.
			(5) - Este valor será desconsiderado caso seja informado valor para o parâmetro idVendedor.
			(6) - Numero da página que deseja obter (por padrão são listados 100 registros por página), caso não seja informado o valor padrão é 1.
		
Retorno do serviço
| Elemento | Tipo | Tamanho | Ocorrência | Descrição | 
|---|---|---|---|---|
| retorno | - | object | obrigatório | Elemento raiz do retorno | 
| retorno.status_processamento | int | - | obrigatório | Conforme tabela "Status de Processamento" | 
| retorno.status | string | - | obrigatório | Contém o status do retorno “OK” ou “Erro”. Para o caso de conter erros, estes serão descritos abaixo | 
| retorno.codigo_erro (1) | int | - | condicional | Conforme tabela "Códigos de erro" | 
| retorno.erros[ ] (1) (3) | list | - | condicional [0..n] | Contém a lista dos erros encontrados | 
| retorno.erros[ ].erro | string | - | condicional | Mensagem contendo a descrição do erro | 
| retorno.pagina | int | - | obrigatório | Número da página que está sendo retornada | 
| retorno.numero_paginas | int | - | obrigatório | Número de paginas do retorno | 
| retorno.notas_servico[ ] (2) | list | - | condicional | Lista de resultados da pesquisa | 
| retorno.notas_servico[ ].nota_servico (2) | object | - | condicional | Elemento utilizado para representar uma nota fiscal de serviço | 
| retorno.notas_servico[ ].nota_servico.id | int | - | condicional | Número de identificação da nota fiscal de serviço no Tiny | 
| retorno.notas_servico[ ].nota_servico.serie | int | - | condicional | Número de série da nota fiscal de serviço | 
| retorno.notas_servico[ ].nota_servico.numero | int | - | condicional | Número da nota fiscal de serviço | 
| retorno.notas_servico[ ].nota_servico.numero_rps | int | - | condicional | Número da RPS | 
| retorno.notas_servico[ ].nota_servico.codigo_verificacao | string | 60 | condicional | Código de verificação de nota junto a prefeitura | 
| retorno.notas_servico[ ].nota_servico.data_emissao (4) | date | 10 | condicional | Data de emissão da nota fiscal de serviço | 
| retorno.notas_servico[ ].nota_servico.nome | string | 50 | condicional | Nome do cliente | 
| retorno.notas_servico[ ].nota_servico.valor (5) | decimal | - | condicional | Valor total da nota fiscal de serviço | 
| retorno.notas_servico[ ].nota_servico.id_vendedor | int | 15 | condicional | Número de identificação do vendedor associado a nota fiscal de serviço | 
| retorno.notas_servico[ ].nota_servico.nome_vendedor | string | 50 | condicional | Nome do vendedor associado a nota fiscal de serviço | 
| retorno.notas_servico[ ].nota_servico.situacao | int | - | condicional | Código conforme tabela de Situações das Notas de Serviço | 
| retorno.notas_servico[ ].nota_servico.descricao_situacao | string | 25 | condicional | Descrição conforme tabela de Situações das Notas de Serviço | 
			(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".
		
Exemplos de chamada da API
$url = 'https://api.tiny.com.br/api2/notas.servico.pesquisa.php';
$token = 'coloque aqui a sua chave da api';
$numero= 'xxxxx';
$data = "token=$token&numero=$numero&formato=JSON";
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;
}
 
						 
						