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="UTF­8"?>
<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.700­000</cep>
<cidade>Bento Gonçalves</cidade>
<uf>RS</uf>
<fone>54 8115­3376</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>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>
</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="UTF­8"?>
<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.700­000</cep>
<cidade>Bento Gonçalves</cidade>
<uf>RS</uf>
<fone>54 8115­3376</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

Documentos relacionados