Como usar o PHP para emitir NFe no Tiny
25/09/2012
0
É 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:
Exemplo do XML passado como parâmetro:
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
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
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)