Fechar
esqueci a minha senha
criar uma conta

Emitir Nota Fiscal API 2.0

Serviço destinado a emitir uma Nota Fiscal.

ElementoTipoOcorrênciaDescrição
tokenstringobrigatórioChave gerada para identificar sua empresa
idintobrigatórioNúmero de identificação da nota fiscal no Tiny (n)
seriestringopcionalSérie da Nota Fiscal (n)
numerostringopcionalNúmero da Nota Fiscal (n)
enviarEmailstringopcional(S/N) opção para enviar a nota para o email do cliente
formatostringobrigatórioFormato do retorno (json ou xml)

(n) - Estes campos são utilizados para identificar a nota que se deseja emitir, pode ser enviado somente o id da nota ou a série e o número da mesma.

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[ ].errostringstringcondicionalMensagem contendo a descrição do erro
retorno.nota_fiscal (2)object-condicionalNodo utilizado para representar uma nota fiscal.
retorno.nota_fiscal.idint-condicionalNúmero de identificação da nota fiscal no Tiny
retorno.nota_fiscal.chave_acessostring50condicionalChave de acesso da nota fiscal
retorno.nota_fiscal.link_acessostring200condicionalLink para acessar a nota fiscal
retorno.nota_fiscal.situacaoint-condicionalCódigo conforme tabela de "Situações das Notas Fiscais"
retorno.nota_fiscal.descricao_situacaostring25condicionalDescrição conforme tabela de "Situações das Notas Fiscais"

(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".
(6) - Estes campos utilizam o formato hh:mm:ss, exemplo "10:45:01".


$url = 'https://api.tiny.com.br/api2/nota.fiscal.emitir.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("emitirNotaFiscalService", 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_fiscal>
    <id>123456</id>
    <chave_acesso>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</chave_acesso>
    <link_acesso>https://tiny.com.br/doc.view.php?id=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</link_acesso>
    <situacao>6</situacao>
    <descricao_situacao>Autorizada</descricao_situacao>
  </nota_fiscal>
</retorno>