Como usar o PHP para emitir NFe no Tiny

25/09/2012

0

PHP

É possível integrar um sistema em PHP com o Tiny para emissão de notas fiscais eletrônicas (NFe) de forma simples e rápida.
Para utilizar este serviço, basta possuir uma conta no Tiny. É possível inscrever-se gratuitamente e também existe a possibilidade de experimentar um dos planos pagos por 30 dias sem custos e sem compromisso, diretamente no site [url]www.tiny.com.br[/url]
Na conta Tiny, deve-se gerar uma API key para que seja possível a integração através de webservices. Está opção está disponível em "Preferências->API para web services".

Segue, abaixo, uma rotina de exemplo para o envio de uma nota fiscal para uma conta no Tiny:
function enviarNotaFiscal($xml) {
        $url = 'http://www.tiny.com.br/recepcao.nfe.php';
	$data = "apiKey='955968a58683ec4b78be217e2dcdf45be7f93090'&pedidoXML='$xml'";	 // Substituir pela API key da sua conta no Tiny
	enviarPedidoREST($url, $data);
}

function enviarPedidoREST($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;
}


Exemplo do XML passado como parâmetro:
<pedido>
	<cliente>
		<nome>Tiny Software</nome>
		<tipoPessoa>J</tipoPessoa>
		<cpf_cnpj>00000000000000</cpf_cnpj>
		<ie_rg>3067663000</ie_rg>
		<endereco>Travessa Manaus</endereco>
		<numero>136</numero>
		<complemento>Sala 2</complemento>
		<bairro>Cidade Alta</bairro>
		<cep>95.700-000</cep>
		<cidade>Bento Gonçalves</cidade>
		<uf>RS</uf>
		<fone>(54) 3055-3808</fone>
		<email>teste@teste.com.br</email>
	</cliente>
	<transporte>
		<transportadora>Transportadora XYZ</transportadora>
		<cpf_cnpj>11122233345</cpf_cnpj>
		<ie_rg>1122334455</ie_rg>
		<endereco>Rua Silvio Orlandini, 435</endereco>
		<cidade>Roca Sales</cidade>
		<uf>RS</uf>
		<placa>ILM-1020</placa>
		<uf_veiculo>RS</uf_veiculo>
		<tipo_frete>R</tipo_frete>
		<qtde_volumes>10</qtde_volumes>
		<especie>Volumes</especie>
		<numero>425</numero>
		<peso_bruto>157</peso_bruto>
		<peso_liquido>142</peso_liquido>
	</transporte>
	<itens>
		<item>
			<codigo>001</codigo>
			<descricao>Caneta 001</descricao>
			<un>Pç</un>
			<qtde>10</qtde>
			<vlr_unit>1.68</vlr_unit>
			<tipo>P</tipo>
			<peso_bruto>0.2</peso_bruto>
			<peso_liq>0.18</peso_liq>
			<class_fiscal>1000.00.10</class_fiscal>
			<origem>0</origem>
		</item>
		<item>
			<codigo>002</codigo>
			<descricao>Caderno 002</descricao>
			<un>Un</un>
			<qtde>3</qtde>
			<vlr_unit>3.75</vlr_unit>
			<tipo>P</tipo>
			<peso_bruto>0.75</peso_bruto>
			<peso_liq>0.7</peso_liq>
			<class_fiscal>1000.00.10</class_fiscal>
			<origem>0</origem>
		</item>
		<item>
			<codigo>003</codigo>
			<descricao>Teclado 003</descricao>
			<un>Cx</un>
			<qtde>7</qtde>
			<vlr_unit>18.65</vlr_unit>
			<tipo>P</tipo>
			<peso_bruto>0.65</peso_bruto>
			<peso_liq>0.52</peso_liq>
			<class_fiscal>1000.00.10</class_fiscal>
			<origem>0</origem>
		</item>
	</itens>
	<parcelas>
		<parcela>
			<dias>10</dias>
			<data>01/09/2012</data>
			<vlr>100</vlr>
			<obs>Teste obs 1</obs>
		</parcela>
		<parcela>
			<dias>15</dias>
			<data>06/09/2012</data>
			<vlr>50</vlr>
			<obs></obs>
		</parcela>
		<parcela>
			<dias>20</dias>
			<data>11/09/2012</data>
			<vlr>50</vlr>
			<obs>Teste obs 3</obs>
		</parcela>
	</parcelas>
        <numero_nf>10</numero_nf>
	<nf_produtor_rural_referenciada>
		<numero>001020</numero>
		<serie>0</serie>
		<ano_mes_emissao>1202</ano_mes_emissao>
	</nf_produtor_rural_referenciada>
	<vlr_frete>15</vlr_frete>
	<vlr_seguro>7</vlr_seguro>
	<vlr_despesas>2.5</vlr_despesas>
	<vlr_desconto>10</vlr_desconto>
	<obs>Observações da nota fiscal</obs>
</pedido>


O sistema também disponibiliza outros webservices para usuários mais avançados.
Em caso de dúvidas, a equipe de suporte do Tiny responde através do e-mail suporte@tiny.com.br
Bico

Bico

Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar