A API V3 JÁ ESTÁ DISPONÍVEL
As integrações API v2 que já estão configuradas, seguirão funcionando temporariamente. |
Insere uma proposta comercial
Insere uma proposta comercial no sistema.
curl |
curl -X POST "https://bling.com.br/Api/v2/propostacomercial/json/" -d "apikey={apikey}" -d "xml={xml_da_proposta}" |
PHP |
$url = 'https://bling.com.br/Api/v2/propostacomercial/json/'; $xml = '>...'; $posts = array ( "apikey" => "{apikey}", "xml" => rawurlencode($xml) ); $retorno = executeSendOrder($url, $posts); echo $retorno; function executeSendOrder($url, $data){ $curl_handle = curl_init(); curl_setopt($curl_handle, CURLOPT_URL, $url); curl_setopt($curl_handle, CURLOPT_POST, count($data)); curl_setopt($curl_handle, CURLOPT_POSTFIELDS, $data); curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, TRUE); $response = curl_exec($curl_handle); curl_close($curl_handle); return $response; } |
C# |
public static void ExecuteSendOrder() { HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://bling.com.br/Api/v2/propostacomercial/"); ASCIIEncoding encoding = new ASCIIEncoding(); string postData = "apikey={apiKey}&xml={xml_do_pedido}"; byte[] data = encoding.GetBytes(postData); request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; request.ContentLength = data.Length; using (Stream stream = request.GetRequestStream()) stream.Write(data,0,data.Length); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); string responseString = new StreamReader(response.GetResponseStream()).ReadToEnd(); Console.Out.WriteLine("Response Body: \r\n {0}", responseString); } |
Parâmetro | Descrição | Tipo |
apikey | apikey gerada no sistema | string |
xml | xml contendo a proposta | string |
Para o parâmetro xml, é necessário seguir um padrão.
Tabela de campos do XML
Grupo | Campo | Informação | Tipo | Padrão | Opcional | Nota |
---|---|---|---|---|---|---|
raiz | propostacomercial | Obrigatório | ||||
propostacomercial | data | Data da proposta | DATE Formato: 99/99/9999 |
Data atual | Opcional | 1 |
propostacomercial | dataProximoContato | Data do próximo contato | DATE Formato: 99/99/9999 |
Opcional | ||
propostacomercial | contatoAc | Aos cuidados | STRING(40) | Opcional | ||
propostacomercial | loja | Número identificador da loja | INTEGER(10) | Opcional | ||
propostacomercial | numero | Número da proposta comercial | INTEGER(10) | Próximo número da listagem | Opcional | |
propostacomercial | vendedor | Nome do vendedor cadastrado no Bling | STRING(120) | Opcional | ||
propostacomercial | desconto | Valor de desconto da proposta | STRING(20) | 0.00 | Opcional | |
propostacomercial | outrasDespesas | Valor de outras despesas da proposta | DECIMAL(11,2) | 0.00 | Opcional | |
propostacomercial | validade | Validade da proposta comercial em dias | INTEGER(10) | 0 | Opcional | |
propostacomercial | prazoEntrega | Prazo de entrega | STRING(100) | Opcional | ||
propostacomercial | garantia | Número de meses de garantia | INT(3) | 0 | Opcional | |
propostacomercial | observacao | Observações da proposta comercial | STRING | Opcional | ||
propostacomercial | obsInterna | Observações internas da proposta comercial | STRING | Opcional | ||
propostacomercial | assinaturaSaudacao | Saudação da assinatura | STRING(50) | “Atenciosamente,” | Opcional | |
propostacomercial | assinaturaResponsavel | Inscrição Estadual do cliente | STRING(18) | “Departamento de vendas” | Opcional | |
propostacomercial | cliente | Obrigatório | 2 | |||
cliente | id | Id do contato | VARCHAR(120) | Opcional | ||
cliente | nome | Nome do cliente | STRING(100) | Obrigatório | ||
cliente | tipoPessoa | Tipo de pessoa | STRING(1) | F | Opcional | 3 |
cliente | cpfCnpj | CPF ou CNPJ do cliente |
STRING(18) Formato: 99999999999999
|
Opcional | ||
cliente | ie | Inscrição estadual do cliente |
STRING(18) Formato: 9999999999
|
Opcional | ||
cliente | rg | RG do cliente |
STRING(18) Formato: 9999999999
|
Opcional | ||
cliente | contribuinte | Contribuinte do ICMS | STRING(1) | 3 | Opcional | 4 |
cliente | endereco | Endereço do cliente | STRING(100) | Opcional | ||
cliente | numero | Numero da casa do cliente | STRING(10) | Opcional | ||
cliente | complemento | Complemento do endereço do cliente | STRING(100) | Opcional | ||
cliente | bairro | Bairro do cliente | STRING(40) | Opcional | ||
cliente | cep | CEP do cliente |
STRING(8) Formato: 99999999
|
Opcional | ||
cliente | cidade | Cidade do cliente | STRING(10) | Opcional | ||
cliente | uf | Sigla do estado do cliente | STRING(2) | Opcional | ||
cliente | fone | Telefone do cliente | STRING(40) | Opcional | ||
cliente | celular | Celular do cliente | STRING(40) | Opcional | ||
cliente | E-mail do cliente | STRING(60) | Opcional |
|
||
propostacomercial | itens | Opcional | ||||
item | codigo | Código do item | STRING(60) | Opcional | 5 | |
item | descricao | Nome do item | STRING(120) | Obrigatório | ||
item | un | Tipo de unidade do item | STRING(6) | Opcional | ||
item | qtde | Quantidade do item | DECIMAL(11,4) | Obrigatório | ||
item | valorUnidade | Valor unitário do itemo | DECIMAL(17,10) | Obrigatório | ||
propostacomercial | transporte | Opcional | ||||
transporte | transportadora | Nome da transportadora | STRING(100) | Opcional | ||
transporte | tipoFrete | Modalidade do frete | STRING(1) | R | Opcional | 6 |
transporte | frete | Valor do frete da proposta comercial | DECIMAL(11,2) | 0.00 | Opcional | |
propostacomercial | parcelas | Opcional | ||||
parcela | nrDias | Dias de prazo de pagamento da parcela | INTEGER(10) | Obrigatório | ||
parcela | valor | Valor da parcela | DECIMAL(11,2) | Obrigatório | ||
parcela | obs | Observação da parcela | STRING(100) | Opcional | ||
parcela | formaPagamento | |||||
formaPagamento | id | Id da forma de pagamento da parcela | INTEGER(10) | Obrigatório |
Notas
- O campo data é opcional, caso não seja preenchido a data da inclusão será informada. Este campo é utilizado como base para cálculo do vencimento quando na parcela é informado o número de dias.
- O critério de busca do contato é pelo id do contato ou pelo cpfCnpj.
- Valores para tipo de pessoa:
Valor |
Descrição |
F |
Física |
J |
Jurídica |
E |
Estrangeira |
- Valores para contribuinte do contato:
Valor |
Descrição |
1 |
Contribuinte do ICMS |
2 |
Contribuinte isento do ICMS |
3 |
Não contribuinte |
- O campo código do item é opcional somente quando a opção de vínculo seja pelo campo descrição.
- No campo Tipo Frete, podemos salvar com os seguintes valores com letra maiúscula para os caracteres.
Valor
Descrição
R
Contratação do Frete por conta do Remetente (CIF)
D
Contratação do Frete por conta do Destinatário (FOB)
T
Contratação do Frete por conta de Terceiros
3
Transporte Próprio por conta do Remetente
4
Transporte Próprio por conta do Destinatário
S
Sem Ocorrência de Transporte
Vínculo do produto com o cadastro do sistema
O produto será vinculado com um produto previamente cadastrado no sistema caso o campo descricao ou codigo sejam idênticos ao do cadastro.
A escolha de qual campo será utilizado para realizar a comparação é definida acessando Preferências > Parâmetros da empresa > Configurações de Lojas Virtuais e alterando a opção Na importação através da API, buscar produtos por código ou descrição.
Mensagens de erros específicos
Código | Mensagem |
---|---|
157 | Nao ha itens informados na proposta comercial. |
158 | Produto nao encontrado. |
159 | Descricao do produto deve ser informado. |
160 | Valor da parcela deve ser informado. |
161 | Quantidade do produto deve ser informado com um numero valido. |
162 | Preco unitario do produto deve ser informado. |
163 | Numero de dias da parcela deve ser informado. |
164 | Forma de pagamento nao encontrado no sistema. |
165 | Forma de pagamento deve ser informado. |
166 | Tipo de frete nao e valido. |
167 | Situacao da proposta invalida. |
168 | Proposta numero '00' nao foi encontrada. A situacao nao foi atualizada. |
Exemplo de XML
<?xml version="1.0" encoding="UTF-8"?>
<propostacomercial>
<desconto>10</desconto>
<obsInterna></obsInterna>
<data>10/12/2018</data>
<dataProximoContato>15/08/2019</dataProximoContato>
<numeroProposta>5</numeroProposta>
<vendedor></vendedor>
<valorFrete>50</valorFrete>
<loja>49708527</loja>
<aosCuidadosDe></aosCuidadosDe>
<garantia>9999</garantia>
<validadeDaProposta>15</validadeDaProposta>
<observacao>Teste</observacao>
<prazoEntrega>5</prazoEntrega>
<assinaturaSaudacao>Atenciosamente,</assinaturaSaudacao>
<assinaturaResponsavel>Departamento de vendas</assinaturaResponsavel>
<idContato>0000001</idContato>
<cliente>
<nome>Organisys Software</nome>
<cpfCnpj>00.000.000/0000-1</cpfCnpj>
<tipoPessoa>J</tipoPessoa>
<ie></ie>
<rg></rg>
<endereco>Rua Visconde de São Gabriel</endereco>
<numero>001</numero>
<complemento>Sala 03</complemento>
<cidade>Bento Gonçalves</cidade>
<bairro>Cidade Alta</bairro>
<cep>95.700-000</cep>
<uf>RS</uf>
<email>teste@organisys.com.br</email>
<celular>(00) 00000-0000</celular>
<fone>(00) 0000-0000</fone>
</cliente>
<itens>
<item>
<codigo>001</codigo>
<descricao>teste</descricao>
<qtde>5</qtde>
<valorUnidade>1</valorUnidade>
<un>un</un>
</item>
<item>
<codigo>002</codigo>
<descricao>teste2</descricao>
<qtde>100</qtde>
<valorUnidade>50</valorUnidade>
<un></un>
</item>
</itens>
<parcelas>
<parcela>
<valor>90</valor>
<obs>Teste obs 1</obs>
<nrDias>50</nrDias>
<formaPagamento>
<id>0001</id>
</formaPagamento>
</parcela>
<parcela>
<valor>5000</valor>
<obs>Teste obs 2</obs>
<nrDias>100</nrDias>
<formaPagamento>
<id>0002</id>
</formaPagamento>
</parcela>
</parcelas>
<transporte>
<transportadora>Transportadora XYZ</transportadora>
<tipoFrete>s</tipoFrete>
<qtdVolumes>50</qtdVolumes>
<pesoBruto>5</pesoBruto>
</transporte>
</propostacomercial>
Retorno
Em caso de sucesso, retornará o id da proposta comercial e o número da proposta inserido, no mesmo modelo do exemplo a seguir. Caso contrário, retornará um erro.
A resposta será no formato especificado na URL (XML ou JSON).
{ "retorno": { "propostascomerciais": [ { "propostacomercial": { "id": 00000001, "numero": 01 } } ] } }