Fechar
esqueci a minha senha
criar uma conta

Obter Nota de Serviço API 2.0

Serviço destinado a obter os dados de uma Nota Fiscal de Serviço.

ElementoTipoOcorrênciaDescrição
tokenstringobrigatórioChave gerada para identificar sua empresa
idintobrigatórioNúmero de identificação da nota de serviço no Tiny
formatostringobrigatórioFormato do retorno (json ou xml)
ElementoTipoTamanhoOcorrênciaDescrição
retornoobject-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.nota_servico (2)object-condicionalElemento utilizado para representar uma nota de serviço
retorno.nota_servico.idint-obrigatórioNúmero de identificação da nota de servico no Tiny
retorno.nota_servico.serieint-obrigatórioNúmero de série da nota de serviço
retorno.nota_servico.numeroint-opcionalNúmero da nota serviço
retorno.nota_servico.numeroRPSint-opcionalNúmero do RPS
retorno.nota_servico.codigo_verificacaostring60opcionalCódigo de verificação de nota junto a prefeitura
retorno.nota_servico.data_emissao (4)date10obrigatórioData de emissão da nota de serviço
retorno.nota_servico.cliente object10obrigatórioElemento utilizado para representar o cliente
retorno.nota_servico.cliente.nomestring30obrigatórioNome do cliente
retorno.nota_servico.cliente.tipo_pessoastring1opcionalTipo de pessoa (F - Física, J - Jurídica, E - Estrangeiro)
retorno.nota_servico.cliente.cpf_cnpjstring18opcionalCPF ou CNPJ do cliente
retorno.nota_servico.cliente.iestring18opcionalInscrição estadual do cliente
retorno.nota_servico.cliente.enderecostring50opcionalEndereço do cliente
retorno.nota_servico.cliente.numerostring10opcionalNúmero do endereço do cliente
retorno.nota_servico.cliente.complementostring50opcionalComplemento do endereço do cliente
retorno.nota_servico.cliente.bairrostring30opcionalBairro do cliente
retorno.nota_servico.cliente.cepstring10opcionalCep do cliente
retorno.nota_servico.cliente.cidadestring30opcionalNome da cidade do cliente conforme a Tabela de Cidades
retorno.nota_servico.cliente.ufstring30opcionalUF do cliente
retorno.nota_servico.cliente.fonestring40opcionalTelefone do cliente
retorno.nota_servico.cliente.emailstring40opcionalE-mail do cliente
retorno.nota_servico.servicoobjectobrigatórioElemento utilizado para representar o serviço
retorno.nota_servico.servico.descricao string300obrigatórioDescrição do serviço
retorno.nota_servico.servico.valor_servico (5)decimal- obrigatórioValor do serviço
retorno.nota_servico.servico.codigo_lista_servico string10opcionalCódigo de acordo com a lista de serviços
retorno.nota_servico.descontar_irstring-obrigatórioDescontar o valor do IR do total da nota (S/N)
retorno.nota_servico.percentual_ir (5)decimal-obrigatórioPercentual do IR
retorno.nota_servico.valor_ir (5)decimal-obrigatórioValor do IR
retorno.nota_servico.texto_irstring150obrigatórioTexto do IR
retorno.nota_servico.percentual_iss (5)decimal-obrigatórioPercentual do ISS
retorno.nota_servico.valor_iss (5)decimal-obrigatórioValor do ISS
retorno.nota_servico.descontar_iss_totalstring1obrigatórioDescontar ISS do total da nota (S/N)
retorno.nota_servico.texto_confinsstring30opcionalTexto com a descrição do Cofins
retorno.nota_servico.valor_confins (5)decimal-opcionalValor do Cofins
retorno.nota_servico.texto_pisstring30opcionalTexto com a descrição do PIS
retorno.nota_servico.valor_pis (5)decimal-opcionalValor do PIS
retorno.nota_servico.texto_csstring30opcionalTexto com a descrição da Contribuição Social
retorno.nota_servico.valor_cs (5)decimal-opcionalValor da Contribuição Social
retorno.nota_servico.total_nota (5)decimal-obrigatórioValor total da nota
retorno.nota_servico.forma_pagamentostring30obrigatórioCódigo conforme tabela de Formas de pagamento
retorno.nota_servico.meio_pagamentostring100opcionalDescrição do meio de pagamento
retorno.nota_servico.parcelas[ ]listopcionalLista de parcelas da nota
retorno.nota_servico.parcelas[ ].parcelaobjectopcionalElemento utilizado para representar uma parcela
retorno.nota_servico.parcelas[ ].parcela.diasint20opcionalDias de vencimento da parcela
retorno.nota_servico.parcelas[ ].parcela.data (4)date10opcionalData de vencimento da parcela
retorno.nota_servico.parcelas[ ].parcela.valor (5)decimal- opcionalValor da parcela
retorno.nota_servico.parcelas[ ].parcela.obsstring100opcionalObservação da parcela
retorno.nota_servico.parcelas[ ].parcela.forma_pagamentostring30obrigatórioCódigo conforme tabela de Formas de pagamento
retorno.nota_servico.parcelas[ ].parcela.meio_pagamentostring100opcionalDescrição do meio de pagamento
retorno.nota_servico.id_vendedorint-opcionalNúmero de identificação do Vendedor associado a nota fiscal.
retorno.nota_servico.nome_vendedorstring50opcionalNome do Vendedor associado a nota fiscal.
retorno.nota_servico.percentual_comissao (5)decimal-opcionalPercentual de comissão do vendedor
retorno.nota_servico.valor_comissao (5)decimal-opcionalValor de comissão do vendedor
retorno.nota_servico.situacao int-obrigatórioCódigo conforme tabela de Situações das Notas de Serviço
retorno.nota_servico.descricao_situacao string30obrigatórioDescrição conforme tabela de Situações das Notas de Serviço
retorno.nota_servico.condicoesstring30opcionalTexto contendo as condições da nota

(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 devem ser informados no 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/nota.servico.obter.php';
$token = 'coloque aqui a sua chave da api';
$id = 'xxxxx';
$data = "token=$token&id=$id&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("obterNotaServicoXMLService", array('token' => 'xxxxx','id'=>'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>
  <nota_servico>
    <id>123456</id>
    <numero>123</numero>
    <numeroRPS>12</numeroRPS>
    <data_emissao>14/02/2013</data_emissao>
    <cliente>
      <codigo>1235</codigo>
      <nome>Contato Teste 2</nome>
      <tipo_pessoa>F</tipo_pessoa>
      <cpf_cnpj>22755777850</cpf_cnpj>
      <ie/>
      <rg>1234567890</rg>
      <endereco>Rua Teste</endereco>
      <numero>123</numero>
      <complemento>sala 2</complemento>
      <bairro>Teste</bairro>
      <cep>95700000</cep>
      <cidade>Bento Gonçalves</cidade>
      <uf>RS</uf>
      <fone>5430553808</fone>
    </cliente>
    <servico>
      <descricao>Servico Teste 1</descricao>
      <unidade>UN</unidade>
      <valor_servico>600.30</valor_servico>
      <codigo_lista_servico>1.02.01</codigo_lista_servico>
    </servico>
    <percentual_ir>2.5</percentual_ir>
    <valor_ir>12.51</valor_ir>
    <texto_ir>( - ) IRenda Fonte 2,5%</texto_ir>
    <percentual_iss>3</percentual_iss>
    <valor_iss>15.01</valor_iss>
    <descontar_iss_total>N</descontar_iss_total>
    <texto_confins/>
    <valor_confins>0</valor_confins>
    <texto_pis/>
    <valor_pis>0</valor_pis>
    <texto_cs/>
    <valor_cs>0</valor_cs>
    <total_nota>490.29</total_nota>
    <forma_pagamento>boleto</forma_pagamento>
    <meio_pagamento>Bradesco</meio_pagamento>
    <parcelas>
      <parcela>
        <dias>30</dias>
        <data>16/03/2013</data>
        <valor>200.10</valor>
        <obs>Obs Parcela 1</obs>
        <forma_pagamento>boleto</forma_pagamento>
        <meio_pagamento>Bradesco</meio_pagamento>
      </parcela>
      <parcela>
        <dias>60</dias>
        <data>15/04/2013</data>
        <valor>200.10</valor>
        <obs>Obs Parcela 2</obs>
        <forma_pagamento>boleto</forma_pagamento>
        <meio_pagamento>Bradesco</meio_pagamento>
      </parcela>
      <parcela>
        <dias>90</dias>
        <data>15/05/2013</data>
        <valor>200.10</valor>
        <obs>Obs Parcela 3</obs>
        <forma_pagamento>boleto</forma_pagamento>
        <meio_pagamento>Bradesco</meio_pagamento>
      </parcela>
    </parcelas>
    <nome_vendedor>Vendedor Teste</nome_vendedor>
    <percentual_comissao>5.00</percentual_comissao>
    <valor_comissao>25.02</valor_comissao>
    <situacao>1</situacao>
    <situacao>Pendente</situacao>
    <condicoes>123</condicoes>
  </nota_servico>
</retorno>