A API V3 JÁ ESTÁ DISPONÍVEL
As integrações API v2 que já estão configuradas, seguirão funcionando temporariamente. |
Insere uma conta a pagar
Insere uma conta a pagar no sistema.
curl |
curl -X POST "https://bling.com.br/b/Api/v2/contapagar/json/" |
PHP |
$url = 'https://bling.com.br/Api/v2/contapagar/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/contapagar/"); UTF8Encoding encoding = new UTF8Encoding(); string postData = "apikey={apiKey}&xml={xml_da_contapagar}"; 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âmetros | Descrição | Tipo |
apikey |
apikey gerada no sistema | string |
xml |
xml contendo a conta a pagar | string |
Para o parâmetro xml
, é necessário seguir um padrão
Tabela de campos do XML
Observações: Para campos opcionais, é preciso isentar o envio de sua caso não queira incluir sua informação.
Grupo | Campo | Informação | Tipo | Padrão | Opcional | Notas |
raiz | contapagar | Obrigatório | ||||
contapagar | dataEmissão | Data de emissão | DATE | 99/99/9999 | Opcional | 1 |
contapagar | vencimentoOriginal | Vencimento original | DATE | 99/99/9999 | Opcional | 1 |
contapagar | competencia | Data de competência | DATE | 99/99/9999 | Opcional | 1 |
contapagar | nroDocumento | Número do documento | STRING(25) | Opcional | ||
contapagar | valor | Valor do documento | DECIMAL(11,2) | Obrigatório | ||
contapagar | histórico | Histórico da conta | STRING | Opcional | ||
contapagar | categoria | Categoria da conta | STRING(50) | Opcional | 2 | |
contapagar | portador | Portador da conta | STRING(50) | Opcional | 2 | |
contapagar | idFormaPagamento | Código identificador da forma de pagamento | INTEGER(11) | Opcional | ||
contapagar | ocorrencia | Ocorrência da conta | Obrigatório | |||
ocorrencia | ocorrenciaTipo | Tipo da ocorrência | STRING(1) | Obrigatório | 4 | |
ocorrencia | diaVencimento | Dia do vencimento | INTEGER(2) | Opcional | 4 | |
ocorrencia | nroParcelas | Número de parcelas | INTEGER(3) | Opcional | 4 | |
ocorrencia | diaSemanaVencimento | Dia da semana do vencimento | INTEGER(1) | Opcional | 5 | |
contapagar | fornecedor | Obrigatório | ||||
fornecedor | nome | Nome do fornecedor | STRING(120) | Obrigatório | ||
fornecedor | id | Código identificador do contato | INTEGER(11) | Opcional | 3 | |
fornecedor | cpf_cnpj | CPF ou CNPJ do fornecedor | STRING(18) | 99999999999999 | Opcional | 3 |
fornecedor | tipoPessoa | Pessoa Física ou Jurídica | STRING(1) | J ou F | Opcional | |
fornecedor | ie_rg | Inscrição Estadual do fornecedor | STRING(18) | 9999999999 | Opcional | |
fornecedor | endereco | Endereço do fornecedor | STRING(50) | Opcional | ||
fornecedor | numero | Número da casa do fornecedor | STRING(10) | Opcional | ||
fornecedor | complemento | Complemento do endereço do fornecedor | STRING(100) | Opcional | ||
fornecedor | cidade | Cidade do fornecedor | STRING(30) | Opcional | ||
fornecedor | bairro | Bairro do fornecedor | STRING(30) | Opcional | ||
fornecedor | cep | CEP do fornecedor | STRING(30) | 99.999-999 | Opcional | |
fornecedor | uf | Sigla do estado do fornecedor | STRING(2) | Opcional | ||
fornecedor | E-mail do fornecedor | STRING(100) | Opcional | |||
fornecedor | fone | Telefone do fornecedor | STRING(40) | Opcional | ||
fornecedor | celular | Celular do fornecedor | STRING(40) | Opcional |
Notas:
- O campo data é opcional, caso não seja preenchido a data da inclusão será informada.
- Se preenchidos os campos, os mesmos serão buscados e inseridos somente se encontrados. Caso contrário, irá manter o registro atual.
- Os campos id e cpf_cnpj são utilizados para buscar contatos previamente cadastrados. Se o campo id for informado, a busca ignora o campo cpf_cnpj. Quando o contato é encontrado, e existirem dados do fornecedor no XML da requisição, os mesmos serão atualizados. Caso contrário, o cadastro original é mantido. Quando o contato não for encontrado, um novo contato é inserido com os dados recebidos.
- As possíveis ocorrências são:
Código | Ocorrência | Obriga dia de vencimento | Obriga número de parcelas | Obriga dia semana de vencimento |
U |
Única | Não | Não | Não |
P |
Parcela | Sim | Sim | Não |
M |
Mensal | Sim | Não | Não |
T |
Trimestral | Sim | Não | Não |
S |
Semestral | Sim | Não | Não |
A |
Anual | Sim | Não | Não |
E |
Semanal | Não | Não | Sim |
5. Os códigos para o dia da semana de vencimento são:
1 |
Domingo |
2 |
Segunda-feira |
3 |
Terça-feira |
4 |
Quarta-feira |
5 |
Quinta-feira |
6 |
Sexta-feira |
7 |
Sábado |
Mensagens de erros específicos
Código | Mensagem |
66 | Valor é campo obrigatório |
67 | Dia de vencimento é campo obrigatório |
68 | Número de parcelas é campo obrigatório |
69 | Nome do fornecedor é campo obrigatório |
70 | Categoria inválida |
71 | Portador inválida |
72 | Tipo da ocorrência é obrigatório |
73 | Ocorrência inválida |
74 | Não existem parcelas para esta ocorrência |
75 | Não existe dia de vencimento para esta ocorrência |
77 | Número de parcelas deve ser maior que 1 para esta ocorrência |
78 | Limite máximo para número de parcelas é 100 |
79 | Cpf/Cnpj inválido |
81 | Fornecedor não encontrado |
82 | O dia da semana de vencimento não corresponde |
84 | A forma de pagamento não existe ou está inativa. |
86 | Não é possível liquidar esta conta |
Exemplo de XML
<?xml version="1.0" encoding="UTF-8"?>
<contapagar>
<dataEmissao>13/04/2017</dataEmissao>
<vencimentoOriginal>20/04/2017</vencimentoOriginal>
<competencia>01/04/2017</competencia>
<nroDocumento>0123456</nroDocumento>
<valor>15.00</valor>
<historico>Boleto referente nf 01</historico>
<categoria>Vendas</categoria>
<portador>CEF</portador>
<idFormaPagamento>785257</idFormaPagamento>
<ocorrencia>
<ocorrenciaTipo>P</ocorrenciaTipo>
<diaVencimento>20</diaVencimento>
<nroParcelas>2</nroParcelas>
</ocorrencia>
<fornecedor>
<nome>Organisys Software</nome>
<cpf_cnpj>00000000000000</cpf_cnpj>
<tipoPessoa>J</tipoPessoa>
<ie_rg>3067663000</ie_rg>
<endereco>Rua Visconde de São Gabriel</endereco>
<numero>392</numero>
<complemento>Sala 54</complemento>
<cidade>Bento Gonçalves</cidade>
<bairro>Cidade Alta</bairro>
<cep>95.700-000</cep>
<uf>RS</uf>
<email>teste@teste.com.br</email>
<fone>5434562366</fone>
<celular>5481153376</celular>
</fornecedor>
</contapagar>
Retorno
Em caso de sucesso, retornará o identificador da conta a pagar inserida e o número do documento, no mesmo modelo do exemplo a seguir. Caso contrário, retornará um erro.
A resposta será no formato especificado na URL (XML ou JSON).
Exemplo de retorno
{ "retorno": { "contaspagar": [ [{ "contapagar": { "id": "212454", "nroDocumento": "0123456/1", "vencimento": "2017-04-20" } }, { "contapagar": { "id": "212458", "nroDocumento": "0123456/2", "vencimento": "2017-05-20" } }] ] } }