Manual da API de Serviços do Bling Sumário
Transcrição
Manual da API de Serviços do Bling Sumário
Organisys Software Ltda www.organisys.com.br (54)3454-6877 Manual da API de Serviços do Bling Versão 1.1 Sumário 1 Serviço para recebimento de Notas Fiscais...................................................................................1 Esquema XML do parâmetro de entrada xmlPedido..................................................................1 Exemplo do XML para o parâmetro xmlPedido.........................................................................3 2 Exemplos de utilização da API.......................................................................................................5 Exemplo de utilização do Serviço de recepção de notas através da linguagem PHP.................5 Exemplo de utilização do Serviço de recepção de notas através da linguagem Python............5 1 Serviço para recebimento de Notas Fiscais Função Serviço destinado para o recebimento de notas fiscais com base em um pedido. Parâmetros de entrada apiKey: string contendo a chave da API que deve ser gerada pelo cliente xmlPedido: XML conforme layout a seguir Retorno String contendo o resultado “OK” caso o serviço tenha sido processado com sucesso ou iniciando por “Erro” e a descrição do problema. Endereço do serviço http://www.bling.com.br/recepcao.nfe.php Pós-condição Uma nota fiscal será cadastrada no Bling. Esquema XML do parâmetro de entrada xmlPedido Elemento Tipo Tamanho Obrigatório Descrição pedido nodo - S Nodo raiz utilizado para um pedido de venda. cliente nodo - S Nodo utilizado para representar um cliente nome string 3 S Código da condição de pagamento. tipo_pessoa string 15 S Tipo de pessoa: “F” para pessoa física ou “J” para pessoa jurídica. cpf_cnpj string 18 S CPF para tipoPessoa = “F” ou CNPF para tipoPessoa = “J” ie_rg string 15 S RG para tipoPessoa = “F” ou Inscrição estadual para tipoPessoa = “J” endereco string 50 S Endereço do cliente (logradouro) numero inteiro 10 S Número no endereço complemento string 100 N Complemento do endereço bairro string 30 S Bairro cep string 11 N CEP cidade string 40 S Cidade (nome deve constar na tabela de municípios do IBGE) uf string 2 S Unidade de federação fone string 20 N Telefone transporte nodo - N Dados do transporte transportadora string 50 S Dados da transportadora cpf_cnpj string 18 O CPF ou CNPF, conforme o enquadramento da transportadora ie_rg string 15 O Inscrição Estadual ou RG, conforme o enquadramento da transportadora endereco string 50 O Endereço da transportadora cidade string 40 O Cidade (nome deve constar na tabela de municípios do IBGE) uf string 2 O Unidade de Federação da transportadora placa string 8 O Placa do veículo uf_veiculo string 2 O Unidade de Federação do veículo tipo_frete string 1 S Tipo de frete: “R” por conta do remetente; “D” por conta do destinatário qtde_volumes decimal 8 N Quantidade de volumes especie string 20 N Espécie dos volumes numero string 20 N Número constante nos volumes peso_bruto decimal 11,2 O Peso bruto total do pedido. Informar caso não seja informado nos itens. peso_liquido decimal 11,2 O Peso líquido total do pedido. Informar caso não seja informado nos itens. itens nodo - S Itens do pedido item nodo - S Item do pedido codigo string 20 N Código do produto descricao string 100 S Descrição do produto un string 3 S Unidade de medida qtde decimal 11,2 S Quantidade vlr_unit decimal 11,2 S Valor unitário tipo string 1 S Tipo (“P”=produto; “S”=serviço) peso_bruto decimal 11,2 O Peso bruto total do item peso_liq decimal 11,2 O Peso líquido total do item class_fiscal string 40 N Classificação fiscal do produto conforme a tabela de NCMs (Código comum do Mercosul) origem inteiro 1 S Origem do produto (“0”=produto nacional; “1”=produto importado diretamente; “2”=produto importado indiretamente) parcelas nodo - N Informações das parcelas parcela nodo - N Parcela dias inteiro 3 O Dias para o vencimento, a partir da data do faturamento. Preencher apenas se a data não for informada. data string 10 O Data do vencimento da parcela. Preencher apenas se dias não for informado. vlr decimal 11,2 O Valor da parcela. obs string 250 N Observações da parcela. vlr_frete decimal 11,2 N Valor total do frete para o pedido. vlr_seguro decimal 11,2 N Valor total do seguro para o pedido. vlr_despesas decimal 11,2 N Valor total das despesas para o pedido. vlr_desconto decimal 11,2 N Valor total de desconto para o pedido. obs string 250 N Observações gerais do pedido que deverão sair na nota fiscal. numero_nf String 10 N Número da nota fiscal que deverá ser gerada. Se este elemento não for informado o sistema irá utilizar o próximo número de nota fiscal, automaticamente. Exemplo do XML para o parâmetro xmlPedido <?xml version="1.0" encoding="UTF8"?> <pedido> <cliente> <nome>Tiny Software</nome> <tipoPessoa>J</tipoPessoa> <cpf_cnpj>00000000000000</cpf_cnpj> <ie_rg>3067663000</ie_rg> <endereco>Rua Visconde de São Gabriel</endereco> <numero>392</numero> <complemento>Sala 54</complemento> <bairro>Cidade Alta</bairro> <cep>95.700000</cep> <cidade>Bento Gonçalves</cidade> <uf>RS</uf> <fone>54 81153376</fone> </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>ILM1020</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> </item> <item> </item> <item> <peso_bruto>0.2</peso_bruto> <peso_liq>0.18</peso_liq> <class_fiscal>1000.00.10</class_fiscal> <origem>0</origem> <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> <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/2009</data> <vlr>100</vlr> <obs>Teste obs 1</obs> </parcela> <parcela> <dias>15</dias> <data>06/09/2009</data> <vlr>50</vlr> <obs></obs> </parcela> <parcela> <dias>20</dias> <data>11/09/2009</data> <vlr>50</vlr> <obs>Teste obs 3</obs> </parcela> </parcelas> <vlr_frete>15</vlr_frete> <vlr_seguro>7</vlr_seguro> <vlr_despesas>2.5</vlr_despesas> <vlr_desconto>10</vlr_desconto> <obs>Testando o campo observações do pedido</obs> </pedido> 2 Serviço para recebimento de Pedidos Função Serviço destinado a receber pedidos de venda. Parâmetros de entrada apiKey: string contendo a chave da API que deve ser gerada pelo cliente xmlPedido: XML conforme layout a seguir Retorno String contendo o resultado “OK” caso o serviço tenha sido processado com sucesso ou iniciando por “Erro” e a descrição do problema. Endereço do serviço http://www.bling.com.br/recepcao.nfe.php Pós-condição Uma pedido será cadastrado no Bling. Esquema XML do parâmetro de entrada xmlPedido Elemento Tipo Tamanho Obrigatório Descrição pedido nodo - S Nodo raiz utilizado para um pedido de venda. cliente nodo - S Nodo utilizado para representar um cliente nome string 3 S Código da condição de pagamento. tipoPessoa string 15 S Tipo de pessoa: “F” para pessoa física ou “J” para pessoa jurídica. cpf_cnpj string 18 S CPF para tipoPessoa = “F” ou CNPF para tipoPessoa = “J” ie_rg string 15 S RG para tipoPessoa = “F” ou Inscrição estadual para tipoPessoa = “J” endereco string 50 S Endereço do cliente (logradouro) numero inteiro 10 S Número no endereço complemento string 100 N Complemento do endereço bairro string 30 S Bairro cep string 11 N CEP cidade string 40 S Cidade (nome deve constar na tabela de municípios do IBGE) uf string 2 S Unidade de federação fone string 20 N Telefone itens nodo - S Itens do pedido item nodo - S Item do pedido codigo string 20 N Código do produto descricao string 100 S Descrição do produto un string 3 S Unidade de medida qtde decimal 11,2 S Quantidade vlr_unit decimal 11,2 S Valor unitário parcelas nodo - N Informações das parcelas parcela nodo - N Parcela dias inteiro 3 O Dias para o vencimento, a partir da data do faturamento. Preencher apenas se a data não for informada. data string 10 O Data do vencimento da parcela. Preencher apenas se dias não for informado. vlr decimal 11,2 O Valor da parcela. obs string 250 N Observações da parcela. vlr_frete decimal 11,2 N Valor total do frete para o pedido. vlr_desconto decimal 11,2 N Valor total de desconto para o pedido. obs string 250 N Observações gerais do pedido. Exemplo do XML para o parâmetro xmlPedido <?xml version="1.0" encoding="UTF8"?> <pedido> <cliente> <nome>Tiny Software</nome> <tipoPessoa>J</tipoPessoa> <cpf_cnpj>00000000000000</cpf_cnpj> <ie_rg>3067663000</ie_rg> <endereco>Rua Visconde de São Gabriel</endereco> <numero>392</numero> <complemento>Sala 54</complemento> <bairro>Cidade Alta</bairro> <cep>95.700000</cep> <cidade>Bento Gonçalves</cidade> <uf>RS</uf> <fone>54 81153376</fone> </cliente> <itens> <item> <codigo>001</codigo> <descricao>Caneta 001</descricao> <un>Pç</un> <qtde>10</qtde> <vlr_unit>1.68</vlr_unit> </item> <item> <codigo>002</codigo> <descricao>Caderno 002</descricao> <un>Un</un> <qtde>3</qtde> <vlr_unit>3.75</vlr_unit> </item> <item> <codigo>003</codigo> <descricao>Teclado 003</descricao> <un>Cx</un> <qtde>7</qtde> <vlr_unit>18.65</vlr_unit> </item> </itens> <parcelas> <parcela> <dias>10</dias> <data>01/09/2009</data> <vlr>100</vlr> <obs>Teste obs 1</obs> </parcela> <parcela> <dias>15</dias> <data>06/09/2009</data> <vlr>50</vlr> <obs></obs> </parcela> <parcela> <dias>20</dias> <data>11/09/2009</data> <vlr>50</vlr> <obs>Teste obs 3</obs> </parcela> </parcelas> <vlr_frete>15</vlr_frete> <vlr_desconto>10</vlr_desconto> <obs>Testando o campo observações do pedido</obs> </pedido> 3 Exemplos de utilização da API Exemplo de utilização do Serviço de recepção de notas fiscais através da linguagem PHP $url = 'http://www.bling.com.br/recepcao.nfe.php'; $xml = '<pedido>...</pedido>'; $data = array('apiKey' => 'ade788de6bcbdd9d102b607869f8f998512e1aaeff', 'pedidoXML' => $xml ); 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 de utilização do Serviço de recepção de notas fiscais através da linguagem Python import urllib xml = '...'; params = {"apiKey": "ade788de6bcbdd9d102b607869f8f998512e1aaeff", "pedidoXML": xml} query = urllib.urlencode(params) url = "http://localhost/tinyoffice/recepcao.nfe.php" f = urllib.urlopen(url, query) contents = f.read() f.close() print contents