Conectores
ERP
Bling
54 min
objetivo o conector bling permite integrar fluxos da plataforma fluid com o erp bling, utilizando a api v3 com autenticação oauth 2 0 com ele é possível consultar, criar e atualizar entidades do bling diretamente em seus fluxos de automação principais cenários sincronização de catálogo de produtos entre o bling e plataformas de e commerce consulta e criação de pedidos de venda e compra de forma automatizada gestão de contatos (clientes e fornecedores) via fluxo monitoramento de estoque com atualização em tempo real consulta e emissão de notas fiscais eletrônicas (nf e, nfc e, nfs e) configuração da conexão como configurar no painel da fluid acesse conexões > nova conexão > bling preencha os campos visíveis da conexão id do cliente identificador do aplicativo cadastrado no bling chave secreta do cliente chave secreta do aplicativo cadastrado no bling clique em salvar conexão a fluid abrirá automaticamente a tela de consentimento do bling para que você autorize o acesso após a autorização, a conexão será estabelecida e estará pronta para uso nos fluxos a conexão utiliza oauth 2 0 com authorization code o fluxo de autorização é iniciado automaticamente pela fluid — você não precisa configurar urls de token ou parâmetros adicionais requisitos (criando a conexão) para configurar a conexão, você precisa de um aplicativo cadastrado na central de extensões do bling (configurações > cadastro de aplicativos) o aplicativo fornecerá o id do cliente e a chave secreta do cliente necessários ao cadastrar o aplicativo no bling, informe a seguinte url de redirecionamento https //sandbox console fluidapi io campos da conexão true 165,165,165,166 left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type observações de segurança a chave secreta do cliente é sensível — trate a como uma senha nunca a exponha em logs ou repositórios a fluid gerencia automaticamente o ciclo de vida dos tokens oauth 2 0, incluindo o refresh quando necessário certifique se de que os escopos configurados no aplicativo bling correspondem às operações que você pretende executar nos fluxos a api v3 do bling pode exigir que o aplicativo passe pelo processo de homologação antes do uso em produção configurando um fluxo recurso produtos operação listar produtos retorna uma lista paginada de produtos cadastrados no bling, com suporte a filtros avançados campos da operação true 165,165,165,166 left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type operação consultar produto retorna os detalhes completos de um produto específico pelo seu id campos da operação true 165,165,165,166 left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type recurso pedidos de venda operação listar pedidos de venda retorna uma lista paginada de pedidos de venda com suporte a filtros por data, contato e situação campos da operação true 165,165,165,166 left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type operação consultar pedido de venda retorna os detalhes completos de um pedido de venda específico pelo seu id campos da operação true 165,165,165,166 left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type operação criar pedido de venda cria um novo pedido de venda no bling campos da operação true 165,165,165,166 left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type estrutura do campo itens cada item do array deve conter\ produto id — id do produto no bling (obrigatório) quantidade — quantidade do item (obrigatório) valor — valor unitário do item caso omitido, utilizará o preço cadastrado no produto operação atualizar status do pedido de venda atualiza a situação de um pedido de venda existente campos da operação true 165,165,165,166 left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type atenção ao alterar situações algumas transições de situação no bling são irreversíveis (ex pedido cancelado ou faturado) valide as regras de negócio do bling antes de automatizar mudanças de status em produção recurso pedidos de compra operação listar pedidos de compra retorna uma lista paginada de pedidos de compra campos da operação true 165,165,165,166 left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type operação consultar pedido de compra retorna os detalhes completos de um pedido de compra específico campos da operação true 165,165,165,166 left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type recurso contatos operação listar contatos retorna uma lista paginada de contatos (clientes e fornecedores) cadastrados no bling campos da operação true 165,165,165,166 left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type operação consultar contato retorna os detalhes completos de um contato específico pelo seu id campos da operação true 165,165,165,166 left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type operação criar contato cria um novo contato (cliente ou fornecedor) no bling campos da operação true 165,165,165,166 left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type operação atualizar contato atualiza os dados de um contato existente no bling campos da operação true 165,165,165,166 left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type recurso estoques operação consultar estoque retorna as informações de saldo em estoque de um produto específico campos da operação true 165,165,165,166 left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type estoque por depósito a resposta inclui o saldo consolidado e o detalhamento por depósito cadastrado no bling utilize o campo depositos no retorno para verificar a distribuição do estoque recurso notas fiscais operação listar notas fiscais retorna uma lista paginada de notas fiscais eletrônicas (nf e) campos da operação true 165,165,165,166 left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type operação consultar nota fiscal retorna os detalhes completos de uma nota fiscal específica pelo seu id campos da operação true 165,165,165,166 left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type recurso módulos e situações operação listar módulos retorna a lista de módulos disponíveis no bling com seus respectivos ids útil para identificar o idmodulosistema necessário na operação listar situações do módulo nenhum campo obrigatório operação listar situações do módulo retorna as situações disponíveis para um módulo específico do bling (ex situações de pedidos de venda, de compra, etc ) campos da operação true 165,165,165,166 left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type como usar módulos e situações o padrão recomendado é encadear dois passos no fluxo\ listar módulos → identifica o id do módulo desejado (ex pedidos de venda) listar situações do módulo → com o id obtido, retorna todas as situações disponíveis para aquele módulo isso garante que os ids de situação utilizados em outras operações (ex atualizar status do pedido) sejam sempre válidos e atualizados na prática neste tópico criaremos um exemplo de um fluxo utilizando o conector da bling o fluxo terá apenas um passo que será responsável pelo envio de um pedido para o sistema bling enviaremos um payload de entrada, que passará por uma transformação em nosso docid\ voqdaukjjknbswvrhbzqw , onde será validado algumas docid\ lgqsmyrxokym9hgjtotkl , e por fim montaremos o xml necessário para inserir o pedido na bling usando um docid\ treajh8tvdyh6ukyeaqzp passo 'envia pedido' este primeiro e unico passo irá inserir o pedido no sitema bling somente se todas as docid\ lgqsmyrxokym9hgjtotkl mandatórias forem atendidas assim ficará a parametrização do envia pedido para tratar os dados recebidos do payload de entrada usamos o docid\ voqdaukjjknbswvrhbzqw e por fim utilizamos o template para montar o xml da requisição que a operação espera assim ficou nosso de/para para mais informações sobre como tratamos de/paras clique em docid\ voqdaukjjknbswvrhbzqw se observar, alguns valores do nosso de/para estão sendo referenciado algumas rules, essas são rules internas, para mais informações acesse nossa documentação sobre docid\ lgqsmyrxokym9hgjtotkl assim ficou nossas rules \[ { "idrule" "clientenome", "rule" "{\\"cat\\" \[ {\\"var\\" \\"customer firstname\\"}, \\" \\", {\\"var\\" \\"customer lastname\\"} ]}", "type" "internal", "description" "concatena o primeiro e último nome do cliente " }, { "idrule" "1", "rule" "{ \\"if\\" \[{\\"==\\" \[ { \\"var\\" \\"status name\\" }, \\"status paid\\" ] }] }", "type" "mandatory" }, { "idrule" "verificatipopessoa", "rule" "{\\"if\\" \[{\\"missing\\" \[\\"customer companyname\\"]},\\"f\\", \\"j\\"]}", "type" "internal" }, { "idrule" "formapagamento", "rule" "{\\"if\\" \[{\\"some\\" \[{\\"var\\" \\"paymentmethods\\"},{\\"==\\" \[{\\"var\\" \\" name\\"},\\"payment method ailospag\\"]}]},\\"2849028\\", {\\"some\\" \[{\\"var\\" \\"paymentmethods\\"},{\\"==\\" \[{\\"var\\" \\" name\\"},\\"payment method boleto\\"]}]},\\"2849032\\", {\\"some\\" \[{\\"var\\" \\"paymentmethods\\"},{\\"==\\" \[{\\"var\\" \\" name\\"},\\"payment method pix\\"]}]},\\"2849027\\",{\\"some\\" \[{\\"var\\" \\"paymentmethods\\"},{\\"==\\" \[{\\"var\\" \\" name\\"},\\"payment method deposit\\"]}]},\\"2849031\\",{\\"some\\" \[{\\"var\\" \\"paymentmethods\\"},{\\"==\\" \[{\\"var\\" \\" name\\"},\\"payment method creditcard mastercard\\"]}]},\\"2849055\\",{\\"some\\" \[{\\"var\\" \\"paymentmethods\\"},{\\"==\\" \[{\\"var\\" \\" name\\"},\\"'payment method creditcard visa\\"]}]},\\"2849058\\",{\\"some\\" \[{\\"var\\" \\"paymentmethods\\"},{\\"==\\" \[{\\"var\\" \\" name\\"},\\"'payment method creditcard americanexpress\\"]}]},\\"2849054\\",{\\"some\\" \[{\\"var\\" \\"paymentmethods\\"},{\\"==\\" \[{\\"var\\" \\" name\\"},\\"'payment method creditcard aura'\\"]}]},\\"2849043\\",{\\"some\\" \[{\\"var\\" \\"paymentmethods\\"},{\\"==\\" \[{\\"var\\" \\" name\\"},\\"'payment method creditcard bnds'\\"]}]},\\"2849033\\",{\\"some\\" \[{\\"var\\" \\"paymentmethods\\"},{\\"==\\" \[{\\"var\\" \\" name\\"},\\"'payment method creditcard dinners'\\"]}]},\\"2849048\\",{\\"some\\" \[{\\"var\\" \\"paymentmethods\\"},{\\"==\\" \[{\\"var\\" \\" name\\"},\\"payment method creditcard discover\\"]}]},\\"2849044\\",{\\"some\\" \[{\\"var\\" \\"paymentmethods\\"},{\\"==\\" \[{\\"var\\" \\" name\\"},\\"payment method creditcard elo\\"]}]},\\"2849049\\",{\\"some\\" \[{\\"var\\" \\"paymentmethods\\"},{\\"==\\" \[{\\"var\\" \\" name\\"},\\"payment method creditcard hipercard\\"]}]},\\"2849041\\",{\\"some\\" \[{\\"var\\" \\"paymentmethods\\"},{\\"==\\" \[{\\"var\\" \\" name\\"},\\"payment method creditcard jcb\\"]}]},\\"2849045\\",{\\"some\\" \[{\\"var\\" \\"paymentmethods\\"},{\\"==\\" \[{\\"var\\" \\" name\\"},\\"payment method creditcard oipaggo\\"]}]},\\"2849036\\"]}", "type" "internal" }, { "idrule" "fluid", "rule" "{ \\"if\\" \[{\\"==\\" \[ { \\"var\\" \\"shoppingstore referencecode\\" }, \\"fluid\\" ] }] }", "type" "mandatory" }, { "idrule" "desconto", "rule" "{ \\" \\" \[{ \\"var\\" \\"promotiondiscount\\" }, { \\"var\\" \\"shippingdiscount\\" } ] }", "type" "internal" }, { "idrule" "complemento", "rule" "{ \\"if\\" \[{\\"!!\\" \[ { \\"var\\" \\"customer address complement\\" }] },{ \\"var\\" \\"customer address complement\\" }, \\"\\"] }", "type" "internal" } ] e por fim, o template no formato esperado pela bling na aba propriedades informamos o nome do passo e a conexão criada com a credencial da bling conclusão com o passo configurado basta disparar o fluxo informando o payload de entrada, para este caso termos esse a seguir { "number" "2304449953", "total" 3611, "promotiondiscount" 0, "shippingipi" 0, "taxsubstitution" 0, "grossamount" 3611, "createdat" "2023 04 20 11 22 16", "updatedat" "2023 04 24 10 50 13", "deletedat" null, "shippingtotal" 0, "shippingdiscount" 0, "mastersale" { "number" "2304637439" }, "status" { "name" "status paid", "info" "comprador n\u00e3o tem cr\u00e9dito pr\u00e9 aprovado", "createdat" "2023 04 24 10 50 13", "updatedby" { "email" null, "isapi" false, "issystem" true } }, "items" \[ { "name" "iphone 11 64gb branco (3798643)", "quantity" 1, "unitprice" 3611, "totalprice" 3611, "promotiondiscount" 0, "grossamount" 3611, "taxsubstitution" 0, "trackingcode" null, "additionalto" null, "shippingipi" 0, "variant" { "id" 36617, "referencecode" "3798643", "productreferencecode" "3798643", "eancode" "194252097403", "presentation" "iphone 11 64gb branco", "url" "\\/loja\\/malibu shop\\/produto\\/3798643\\/3798643", "price" 3611, "promotionalprice" null, "master" true, "masterimage" null, "isfractionalstock" false, "stock" { "quantity" 9, "minimumquantity" 2, "enabled" true, "distributioncenter" { "referencecode" "malibu shop", "postcode" "85601000", "city" "francisco beltr\u00e3o", "state" "pr", "country" "brasil", "district" "centro", "street" "avenida j\u00falio assis cavalheiro", "complement" "", "number" 390 } }, "distributioncenterlist" \[ { "quantity" 9, "minimumquantity" 2, "enabled" true, "distributioncenter" { "referencecode" "malibu shop", "postcode" "85601000", "city" "francisco beltr\u00e3o", "state" "pr", "country" "brasil", "district" "centro", "street" "avenida j\u00falio assis cavalheiro", "complement" "", "number" 390 } } ], "pricelist" null, "dimensiongroup" { "height" 40, "width" 15, "depth" 15, "weight" 0 4 }, "additionaldeliverytime" 0, "availableat" null, "deletedat" null }, "shippingaddress" { "postcode" "89053180", "city" "blumenau", "state" "sc", "country" "brasil", "street" "rua soldado m\u00e1rio luiz bertolini", "district" "itoupava norte", "complement" "zouk", "number" 416 }, "promotionsapplied" \[], "taxsubstitutionapplied" null, "taxsubstitutionsapplied" \[], "shippingmethod" { "name" "bauer transportes", "referencecode" "343243224222", "referencecodeservice" null, "estimateddeliveryfrom" 3, "estimateddeliveryto" 5, "deliverytimefrom" null, "deliverytimeto" null, "price" 0, "originalprice" 0, "discountapplied" 0, "carrier" { "referencecode" "343243224222", "name" "bauer transportes" }, "observations" null, "quoteid" null, "gatewayinfo" \[] }, "properties" \[], "itemskit" \[], "giftlist" null, "bookingstartdate" null, "bookingenddate" null, "aliquotsapplied" \[], "aliquotstotal" 0 } ], "promotionsapplied" \[], "customer" { "firstname" "thauan", "lastname" "mendes", "gender" 1, "dateofbirth" "1995 01 16", "identitynumber" "04542582248", "primaryphone" "(91) 98569 1218", "secondphone" null, "address" { "postcode" "89053180", "city" "santo andré", "state" "sp", "country" "brasil", "street" "av joão pessoa", "district" "jardim utinga", "complement" "zouk", "number" 657 }, "createdat" "2023 04 20 10 18 35", "updatedat" "2023 04 21 02 07 55", "customertype" { "name" "cooperados viacredi", "referencecode" "cooperadosviacredi", "usestaxsubstitution" false, "pricelist" null }, "pricelist" null, "email" "thauan mendes\@fluidapi io" }, "user" { "responsible" "thauan mendes", "email" "thauan mendes\@fluidapi io" }, "paymentmethods" \[ { "name" "payment method negotiable", "installments" null, "amount" 3611, "discount" 0, "addition" 0, "boletorule" null, "interestvalue" 0, "boletourl" null, "creditcardtoken" null, "authorizationcode" null, "transactionid" null, "nsu" null, "pixpaymentkey" null } ], "ordergatewayinfo" null, "shoppingstore" { "id" 2181, "name" "malibu shop", "createdat" "2022 11 01 16 03 54", "updatedat" "2022 11 08 15 46 27", "referencecode" "fluid", "logourl" "\\/\\/d8vlg9z1oftyc cloudfront net\\/ailos\\/image\\/media\\/logo malibu shop 63616d9bad209 jpeg", "faviconurl" null, "primaryphone" "(46) 99983 4080", "domain" "", "email" "contato\@malibushop com br", "useremail" "contato\@malibushop com br", "cnpj" "43 827 066\\/0001 62", "stateregistration" "", "responsiblename" "lucas rodrigues rolin", "companyname" "tecbel importa\u00e7\u00e3o e exporta\u00e7\u00e3o ltda", "tradename" "malibu shop", "isenabled" true, "isactivated" true, "address" "avenida j\u00falio assis cavalheiro, 390, centro, francisco beltr\u00e3o, pr, 85601 000, brasil", "addressobject" null, "distributioncenter" { "referencecode" "malibu shop", "postcode" "85601000", "city" "francisco beltr\u00e3o", "state" "pr", "country" "brasil", "district" "centro", "street" "avenida j\u00falio assis cavalheiro", "complement" "", "number" 390 }, "descriptionlong" null, "descriptionshort" null, "socialmedia" { "facebookurl" null, "twitterurl" null, "youtubeurl" null, "googleplusurl" null, "instagramurl" null }, "attributevalues" \[ { "name" "segmento", "referencecode" "segmento", "value" "tecnologia" }, { "name" "whatsapp", "referencecode" "whatsapp", "value" "(46) 99983 4080" }, { "name" "li e aceito os termos de uso", "referencecode" "termos vendedor", "value" "sim" }, { "name" "ip cadastro", "referencecode" "ip cadastro vendedor", "value" "187 60 223 157" }, { "name" "vers\u00e3o termos de uso", "referencecode" "versao aceite termos vendedor", "value" "v1" }, { "name" "entrega produtos no prazo", "referencecode" "entrega produtos no prazo", "value" "n\u00e3o" }, { "name" "exibir n\u00famero whatsapp no an\u00fancio", "referencecode" "exibir whatsapp", "value" "sim" }, { "name" "cooperativa", "referencecode" "campo cooperativa", "value" "evolua" }, { "name" "selo 1 cdl blumenau", "referencecode" "selo 1 cdl blumenau", "value" "n\u00e3o" }, { "name" "selo 2 aemflo", "referencecode" "selo 2 aemflo", "value" "n\u00e3o" }, { "name" "selo 3", "referencecode" "selo 3", "value" "n\u00e3o" }, { "name" "selo 4", "referencecode" "selo 4", "value" "n\u00e3o" }, { "name" "selo 5", "referencecode" "selo 5", "value" "n\u00e3o" }, { "name" "selo 6", "referencecode" "selo 6", "value" "n\u00e3o" } ] }, "agent" null, "agents" null, "subscription" null, "attributevalues" \[ { "name" "e mail do cliente", "referencecode" "ailospag user email", "value" "thauan mendes\@fluidapi io" }, { "name" "cpf", "referencecode" "ailospag cpf", "value" "04542582248" }, { "name" "cooperativa", "referencecode" "ailospag coop name", "value" "viacredi" }, { "name" "vencimento 1\u00aa parcela", "referencecode" "ailospag venc parcela", "value" "1\u00ba parcela 20\\/5\\/2023" }, { "name" "parcelas", "referencecode" "ailospag valor parcela", "value" "18" } ] } após o disparo, o resultado do fluxo aparecerá em realtime no canvas ao clicar em detalhes, temos a requisição e a resposta retornada pela bling observações adicionais rate limit a api v3 do bling possui limites de requisições por minuto consulte a https //developer bling com br para os valores atuais e planeje fluxos de alto volume com paginação e controle de cadência paginação todas as operações de listagem utilizam paginação para processar grandes volumes, encadeie o conector em loops controlando o campo página escopos cada operação exige um escopo específico autorizado no aplicativo bling certifique se de que os escopos necessários estão habilitados antes de executar homologação aplicativos novos precisam passar pelo processo de homologação do bling antes de operar em contas de produção utilize o ambiente de testes para desenvolvimento e validação ids como referência na api v3, o id (inteiro) é o identificador padrão para todas as entidades diferentemente da v2, o código/sku não é mais utilizado como chave primária nas chamadas conclusão o conector bling integra a fluid ao erp bling utilizando a api v3 com oauth 2 0, permitindo automatizar operações de produtos, pedidos, contatos, estoques e notas fiscais de forma segura e escalável a autenticação via oauth garante controle granular de permissões por escopo, enquanto a estrutura rest da api v3 oferece respostas consistentes e previsíveis para construção de fluxos robustos