Como usar o Delphi para emitir NFe no Tiny

Delphi

25/09/2012

É possível integrar um sistema em Delphi 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 EnviarXML(xml: String): String;
var
  apikey, host: String;
  Request: TStringList;
  Response: TStringStream;
begin
  host := 'http://www.tiny.com.br/recepcao.nfe.php';
  apikey := '955968a58683ec4b78be217e2dcdf45be7f93090'; // Substituir pela API key da sua conta no Tiny

  Request := TStringList.Create;
  Response := TStringStream.Create('');

  try
    Request.Values['apiKey'] := apikey;
    Request.Values['pedidoXML'] := xml;
    try
      Socket.Post(host, Request, Response);
      ShowMessage('Nota fiscal enviada para o Tiny');
      if (Response.DataString) <> 'OK' then
        ShowMessage(Response.DataString);
    except
      on E: Exception do
        ShowMessage('Erro ao enviar a nota fiscal para o Tiny: ' + E.Message);
    end;
  finally
    Request.Free;
    Response.Free;
  end;
  Result := Socket.ResponseText;
end;


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

Curtidas 0

Respostas

Alisson Santos

Alisson Santos

25/09/2012

Caro colego seu post está duplicado.
Sempre que confimar aguardar um pouco antes de confirmar novamente a solicitação de auxilio.
GOSTEI 0
Bico

Bico

25/09/2012

Bom dia Alisson, tudo bem!?

Na verdade, o post não está duplicado.
Foi postado um tópico no fórum Delphi, com um exemplo/trecho de código desenvolvido em Delphi e outro tópico no fórum PHP, com um exemplo/trecho de código desenvolvido em PHP.

Atenciosamente,
Fernando.
GOSTEI 0
POSTAR