Fechar
esqueci a minha senha
criar uma conta

Pesquisar Notas de Serviço API 2.0

Serviço destinado a fazer consulta de Notas Fiscais de Serviço.

ElementoTipoOcorrênciaDescrição
tokenstringobrigatórioChave gerada para identificar sua empresa
formatostringobrigatórioFormato do retorno (json ou xml)
numero (1)stringopcionalNúmero da nota de serviço (no Tiny)
numeroRPS (1) (2)stringopcionalNúmero do RPS (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 de serviço que deseja consultar no formato dd/mm/yyyy
dataFinal (1)stringopcionalData final das notas fiscais de serviço que deseja consultar no formato dd/mm/yyyy
situacao (1) (3)stringopcionalExibir notas fiscais de serviço na situação
idVendedor (4)intopcionalNúmero de identificação do vendedor no Tiny
nomeVendedor (4) (5)stringopcionalNome do vendedor no Tiny
pagina (6)intopcionalNú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 50 registros por página), caso não seja informado o valor padrão é 1.

ElementoTipoTamanhoOcorrênciaDescrição
retorno-objectobrigató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_servico[ ] (2)list-condicionalLista de resultados da pesquisa
retorno.notas_servico[ ].nota_servico (2)object-condicionalElemento utilizado para representar uma nota fiscal de serviço
retorno.notas_servico[ ].nota_servico.idint-condicionalNúmero de identificação da nota fiscal de serviço no Tiny
retorno.notas_servico[ ].nota_servico.serieint-condicionalNúmero de série da nota fiscal de serviço
retorno.notas_servico[ ].nota_servico.numeroint-condicionalNúmero da nota fiscal de serviço
retorno.notas_servico[ ].nota_servico.numero_rpsint-condicionalNúmero da RPS
retorno.notas_servico[ ].nota_servico.codigo_verificacaostring60condicionalCódigo de verificação de nota junto a prefeitura
retorno.notas_servico[ ].nota_servico.data_emissao (4)date10condicionalData de emissão da nota fiscal de serviço
retorno.notas_servico[ ].nota_servico.nomestring50condicionalNome do cliente
retorno.notas_servico[ ].nota_servico.valor (5)decimal- condicionalValor total da nota fiscal de serviço
retorno.notas_servico[ ].nota_servico.id_vendedorint15condicionalNúmero de identificação do vendedor associado a nota fiscal de serviço
retorno.notas_servico[ ].nota_servico.nome_vendedorstring50condicionalNome do vendedor associado a nota fiscal de serviço
retorno.notas_servico[ ].nota_servico.situacaoint-condicionalCódigo conforme tabela de Situações das Notas de Serviço
retorno.notas_servico[ ].nota_servico.descricao_situacaostring25condicionalDescriçã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".


$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=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 SoapClient("https://api.tiny.com.br/api2.php?wsdl");
$client->soap_defencoding = 'UTF-8';
$client->decode_utf8 = false;

$result = $client->call("pesquisarNotasServicoService", 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_servico>
    <nota_servico>
      <id>123456</id>
      <serie>1</serie>
      <numero>123</numero>
      <numero_rps>123</numero_rps>
      <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_servico>
  </notas_servico>
</retorno>