bling-docs-mcp 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (192) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +281 -0
  3. package/dist/index.d.ts +16 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +275 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/lib/embeddings.d.ts +18 -0
  8. package/dist/lib/embeddings.d.ts.map +1 -0
  9. package/dist/lib/embeddings.js +52 -0
  10. package/dist/lib/embeddings.js.map +1 -0
  11. package/dist/lib/indexer.d.ts +13 -0
  12. package/dist/lib/indexer.d.ts.map +1 -0
  13. package/dist/lib/indexer.js +305 -0
  14. package/dist/lib/indexer.js.map +1 -0
  15. package/dist/lib/loader.d.ts +34 -0
  16. package/dist/lib/loader.d.ts.map +1 -0
  17. package/dist/lib/loader.js +267 -0
  18. package/dist/lib/loader.js.map +1 -0
  19. package/dist/lib/openapi-tools.d.ts +38 -0
  20. package/dist/lib/openapi-tools.d.ts.map +1 -0
  21. package/dist/lib/openapi-tools.js +63 -0
  22. package/dist/lib/openapi-tools.js.map +1 -0
  23. package/dist/lib/schema-resolver.d.ts +17 -0
  24. package/dist/lib/schema-resolver.d.ts.map +1 -0
  25. package/dist/lib/schema-resolver.js +173 -0
  26. package/dist/lib/schema-resolver.js.map +1 -0
  27. package/dist/lib/types.d.ts +207 -0
  28. package/dist/lib/types.d.ts.map +1 -0
  29. package/dist/lib/types.js +2 -0
  30. package/dist/lib/types.js.map +1 -0
  31. package/dist/lib/vector-store.d.ts +46 -0
  32. package/dist/lib/vector-store.d.ts.map +1 -0
  33. package/dist/lib/vector-store.js +66 -0
  34. package/dist/lib/vector-store.js.map +1 -0
  35. package/dist/scripts/compare-extraction.d.ts +7 -0
  36. package/dist/scripts/compare-extraction.d.ts.map +1 -0
  37. package/dist/scripts/compare-extraction.js +223 -0
  38. package/dist/scripts/compare-extraction.js.map +1 -0
  39. package/dist/scripts/compare-with-docs-site.d.ts +7 -0
  40. package/dist/scripts/compare-with-docs-site.d.ts.map +1 -0
  41. package/dist/scripts/compare-with-docs-site.js +264 -0
  42. package/dist/scripts/compare-with-docs-site.js.map +1 -0
  43. package/dist/scripts/field-coverage-report.d.ts +14 -0
  44. package/dist/scripts/field-coverage-report.d.ts.map +1 -0
  45. package/dist/scripts/field-coverage-report.js +352 -0
  46. package/dist/scripts/field-coverage-report.js.map +1 -0
  47. package/dist/scripts/final-coverage-report.d.ts +1 -0
  48. package/dist/scripts/final-coverage-report.d.ts.map +1 -0
  49. package/dist/scripts/final-coverage-report.js +2 -0
  50. package/dist/scripts/final-coverage-report.js.map +1 -0
  51. package/dist/scripts/inspect-endpoint.d.ts +15 -0
  52. package/dist/scripts/inspect-endpoint.d.ts.map +1 -0
  53. package/dist/scripts/inspect-endpoint.js +292 -0
  54. package/dist/scripts/inspect-endpoint.js.map +1 -0
  55. package/dist/scripts/performance-validation.d.ts +10 -0
  56. package/dist/scripts/performance-validation.d.ts.map +1 -0
  57. package/dist/scripts/performance-validation.js +123 -0
  58. package/dist/scripts/performance-validation.js.map +1 -0
  59. package/dist/scripts/test-all.d.ts +7 -0
  60. package/dist/scripts/test-all.d.ts.map +1 -0
  61. package/dist/scripts/test-all.js +76 -0
  62. package/dist/scripts/test-all.js.map +1 -0
  63. package/dist/scripts/test-new-fields.d.ts +6 -0
  64. package/dist/scripts/test-new-fields.d.ts.map +1 -0
  65. package/dist/scripts/test-new-fields.js +243 -0
  66. package/dist/scripts/test-new-fields.js.map +1 -0
  67. package/dist/scripts/test-schema-fields.d.ts +7 -0
  68. package/dist/scripts/test-schema-fields.d.ts.map +1 -0
  69. package/dist/scripts/test-schema-fields.js +198 -0
  70. package/dist/scripts/test-schema-fields.js.map +1 -0
  71. package/dist/scripts/validate-extraction.d.ts +15 -0
  72. package/dist/scripts/validate-extraction.d.ts.map +1 -0
  73. package/dist/scripts/validate-extraction.js +294 -0
  74. package/dist/scripts/validate-extraction.js.map +1 -0
  75. package/dist/scripts/validate-full-extraction.d.ts +6 -0
  76. package/dist/scripts/validate-full-extraction.d.ts.map +1 -0
  77. package/dist/scripts/validate-full-extraction.js +399 -0
  78. package/dist/scripts/validate-full-extraction.js.map +1 -0
  79. package/dist/scripts/validate-phase1-fields.d.ts +6 -0
  80. package/dist/scripts/validate-phase1-fields.d.ts.map +1 -0
  81. package/dist/scripts/validate-phase1-fields.js +162 -0
  82. package/dist/scripts/validate-phase1-fields.js.map +1 -0
  83. package/dist/scripts/validate-phase2-fields.d.ts +6 -0
  84. package/dist/scripts/validate-phase2-fields.d.ts.map +1 -0
  85. package/dist/scripts/validate-phase2-fields.js +127 -0
  86. package/dist/scripts/validate-phase2-fields.js.map +1 -0
  87. package/dist/scripts/validate-phase3-fields.d.ts +6 -0
  88. package/dist/scripts/validate-phase3-fields.d.ts.map +1 -0
  89. package/dist/scripts/validate-phase3-fields.js +106 -0
  90. package/dist/scripts/validate-phase3-fields.js.map +1 -0
  91. package/dist/tools/compare-with-openapi-spec.d.ts +10 -0
  92. package/dist/tools/compare-with-openapi-spec.d.ts.map +1 -0
  93. package/dist/tools/compare-with-openapi-spec.js +266 -0
  94. package/dist/tools/compare-with-openapi-spec.js.map +1 -0
  95. package/dist/tools/compare-with-postman.d.ts +25 -0
  96. package/dist/tools/compare-with-postman.d.ts.map +1 -0
  97. package/dist/tools/compare-with-postman.js +257 -0
  98. package/dist/tools/compare-with-postman.js.map +1 -0
  99. package/dist/tools/describe.d.ts +39 -0
  100. package/dist/tools/describe.d.ts.map +1 -0
  101. package/dist/tools/describe.js +64 -0
  102. package/dist/tools/describe.js.map +1 -0
  103. package/dist/tools/get-auth-info.d.ts +33 -0
  104. package/dist/tools/get-auth-info.d.ts.map +1 -0
  105. package/dist/tools/get-auth-info.js +27 -0
  106. package/dist/tools/get-auth-info.js.map +1 -0
  107. package/dist/tools/get-endpoint-details.d.ts +27 -0
  108. package/dist/tools/get-endpoint-details.d.ts.map +1 -0
  109. package/dist/tools/get-endpoint-details.js +59 -0
  110. package/dist/tools/get-endpoint-details.js.map +1 -0
  111. package/dist/tools/get-schema.d.ts +34 -0
  112. package/dist/tools/get-schema.d.ts.map +1 -0
  113. package/dist/tools/get-schema.js +64 -0
  114. package/dist/tools/get-schema.js.map +1 -0
  115. package/dist/tools/list-tags.d.ts +29 -0
  116. package/dist/tools/list-tags.d.ts.map +1 -0
  117. package/dist/tools/list-tags.js +23 -0
  118. package/dist/tools/list-tags.js.map +1 -0
  119. package/dist/tools/read-documentation-page.d.ts +23 -0
  120. package/dist/tools/read-documentation-page.d.ts.map +1 -0
  121. package/dist/tools/read-documentation-page.js +73 -0
  122. package/dist/tools/read-documentation-page.js.map +1 -0
  123. package/dist/tools/search-documentation.d.ts +26 -0
  124. package/dist/tools/search-documentation.d.ts.map +1 -0
  125. package/dist/tools/search-documentation.js +91 -0
  126. package/dist/tools/search-documentation.js.map +1 -0
  127. package/dist/tools/search-endpoints.d.ts +35 -0
  128. package/dist/tools/search-endpoints.d.ts.map +1 -0
  129. package/dist/tools/search-endpoints.js +120 -0
  130. package/dist/tools/search-endpoints.js.map +1 -0
  131. package/dist/tools/search-schemas.d.ts +30 -0
  132. package/dist/tools/search-schemas.d.ts.map +1 -0
  133. package/dist/tools/search-schemas.js +36 -0
  134. package/dist/tools/search-schemas.js.map +1 -0
  135. package/dist/tools/validate-spec.d.ts +44 -0
  136. package/dist/tools/validate-spec.d.ts.map +1 -0
  137. package/dist/tools/validate-spec.js +186 -0
  138. package/dist/tools/validate-spec.js.map +1 -0
  139. package/docs/ajuda_como_gerar_o_access_token.md +8 -0
  140. package/docs/ajuda_como_gerar_o_client_id_e_o_client_secret.md +8 -0
  141. package/docs/ajuda_full.md +35 -0
  142. package/docs/ajuda_preciso_criar_uma_conta_no_bling_para_utilizar_a_api.md +9 -0
  143. package/docs/ajuda_quais_sao_os_limites_da_api.md +9 -0
  144. package/docs/ajuda_qual_e_a_utilidade_do_campo_state.md +9 -0
  145. package/docs/ajuda_qual_e_o_formato_de_retorno_das_respostas_da_api.md +18 -0
  146. package/docs/ajuda_quantos_registros_sao_retornados_por_pagina_em_cada_requisicao.md +9 -0
  147. package/docs/aplicativos_acesso_ao_modulo.md +12 -0
  148. package/docs/aplicativos_como_cadastrar.md +258 -0
  149. package/docs/aplicativos_full.md +276 -0
  150. package/docs/aplicativos_gerenciamento.md +9 -0
  151. package/docs/aplicativos_inscricao.md +8 -0
  152. package/docs/aplicativos_introducao.md +8 -0
  153. package/docs/changelogs-webhooks_2026.md +88 -0
  154. package/docs/changelogs-webhooks_full.md +90 -0
  155. package/docs/changelogs_2026.md +88 -0
  156. package/docs/changelogs_full.md +90 -0
  157. package/docs/guias_como_utilizar_os_tokens.md +20 -0
  158. package/docs/guias_full.md +72 -0
  159. package/docs/guias_fundamentos.md +11 -0
  160. package/docs/guias_introducao.md +9 -0
  161. package/docs/guias_o_que_e_api.md +10 -0
  162. package/docs/guias_oauth_e_tokens_de_acesso.md +9 -0
  163. package/docs/guias_padrao_rest.md +34 -0
  164. package/docs/guias_para_quem_e_destinada_a_api.md +9 -0
  165. package/docs/guias_sobre_o_bling.md +9 -0
  166. package/docs/limites_filtros.md +9 -0
  167. package/docs/limites_full.md +56 -0
  168. package/docs/limites_requisicoes.md +50 -0
  169. package/docs/migracao-jwt_estrutura_e_tamanho_do_token.md +9 -0
  170. package/docs/migracao-jwt_full.md +107 -0
  171. package/docs/migracao-jwt_ganhos_computacionais_e_de_infraestrutura.md +11 -0
  172. package/docs/migracao-jwt_introducao.md +15 -0
  173. package/docs/migracao-jwt_motivacao_da_alteracao.md +9 -0
  174. package/docs/migracao-jwt_tratamento_de_erros_comuns.md +13 -0
  175. package/docs/migracao-jwt_utilizando_jwt_no_bling.md +74 -0
  176. package/docs/publicando_full.md +118 -0
  177. package/docs/publicando_processo.md +9 -0
  178. package/docs/publicando_revisao.md +86 -0
  179. package/docs/publicando_situacoes.md +16 -0
  180. package/docs/publicando_validacao_de_dados.md +23 -0
  181. package/docs/webhooks_acoes.md +12 -0
  182. package/docs/webhooks_autenticacao.md +22 -0
  183. package/docs/webhooks_como_cadastrar.md +20 -0
  184. package/docs/webhooks_entrega_nao_ordenada.md +9 -0
  185. package/docs/webhooks_full.md +453 -0
  186. package/docs/webhooks_idempotencia.md +9 -0
  187. package/docs/webhooks_introducao.md +9 -0
  188. package/docs/webhooks_recebimento_de_eventos.md +8 -0
  189. package/docs/webhooks_recursos.md +374 -0
  190. package/docs/webhooks_retentativas.md +9 -0
  191. package/docs/webhooks_webhooks_vs_polling.md +13 -0
  192. package/package.json +67 -0
@@ -0,0 +1,276 @@
1
+ # Aplicativos
2
+
3
+ > **Seção:** aplicativos
4
+ > **Atualizado:** 2026-03-07
5
+
6
+ ---
7
+ # Aplicativos
8
+ ## Introdução
9
+ Este manual contempla o passo a passo aos integradores que desejam criar um aplicativo e entender o funcionamento do fluxo de autorização para a obtenção dos tokens de acesso do OAuth 2.0.
10
+ ## Inscrição
11
+ Caso você ainda não possua uma conta no Bling [clique aqui](https://www.bling.com.br/inscricao/plano-cobalto) e faça a sua inscrição.
12
+ ## Acesso ao módulo
13
+ É possível cadastrar um aplicativo pela conta do administrador ou criando um usuário para tal finalidade. Recomendamos a criação de um usuário para cada desenvolvedor, dessa forma, cada usuário poderá gerenciar somente os seus aplicativos.
14
+ 1. Para criar um usuário acesse o menu ["Preferências > Sistema > Usuários"](https://bling.com.br/usuarios.php), clique em "Incluir usuário".
15
+ 2. Nas permissões de "Cadastros" selecione "Cadastro de aplicativos" e preencha as informações da conta do usuário.
16
+
17
+
18
+ Após esse processo, o usuário possuirá acesso ao módulo de [Cadastro de aplicativos](https://bling.com.br/cadastro.aplicativos.php).
19
+ ## Como cadastrar
20
+ 1. Acesse a [Central de Extensões](https://bling.com.br/central.extensoes.php)
21
+ 2. Clique em "Área do Integrador"
22
+
23
+
24
+ Na tela de cadastro de aplicativos clique no botão **Criar aplicativo**.
25
+ #### Visibilidade
26
+ Escolha a visibilidade do aplicativo:
27
+ Visibilidade | Descrição
28
+ ---|---
29
+ Público | O aplicativo será utilizado para realizar operações em outras contas Bling e passará pelo processo de homologação. Enquanto não for homologado, o número de usuários que podem autorizá-lo estará restrito a 10.
30
+ Privado | O aplicativo será utilizado para realizar operações na própria conta Bling.
31
+ Clique em próximo. Na sequência preencha os seguintes dados do aplicativo:
32
+ * **Logo** : Exibido aos usuários do aplicativo.
33
+ * **Nome** : Exibido aos seus usuários.
34
+ * **Categoria** : Classificação de negócio.
35
+ * **Descrição** : Detalhamento das principais características e finalidades deste aplicativo.
36
+ * **Descrição curta** : Descrição curta do aplicativo, utilizada na Central de Extensões.
37
+ * **Link de redirecionamento** : Utilizado na etapa de [autorização](https://developer.bling.com.br/aplicativos#fluxo-de-autoriza%C3%A7%C3%A3o).
38
+ * **Link da homepage** : Endereço do site do aplicativo.
39
+ * **Link do manual** : Link para o manual do aplicativo.
40
+ * **Link do vídeo demonstrativo** : Vídeo do Youtube ou Vimeo que apresenta as funcionalidades do aplicativo.
41
+ * **Nome do desenvolvedor** : Nome do desenvolvedor do aplicativo.
42
+ * **Email** : Email para eventuais contatos do nosso time.
43
+ * **Celular** : Celular para eventuais contatos do nosso time.
44
+ * **Lista de escopos** : [Escopos](https://developer.bling.com.br/aplicativos#escopos) referentes aos dados dos usuários que serão acessados pelo aplicativo.
45
+
46
+
47
+ Após o preenchimento dos dados, clique no botão **Salvar** para finalizar a criação do aplicativo. O botão será habilitado somente após a inserção de um escopo.
48
+ #### Categorias
49
+ As categorias são utilizadas para facilitar o cliente na busca por um aplicativo, sendo elas:
50
+ Nome | Descrição
51
+ ---|---
52
+ Marketplace | Plataforma para reunir diversos vendedores em um só lugar.
53
+ Plataforma de e-commerce | Sistema para criação e gerenciamento de lojas virtuais.
54
+ Hub | Plataforma centralizadora de conexões com canais de venda.
55
+ Delivery | Plataforma para entrega rápida de produtos.
56
+ Social commerce | Estratégia para venda de produtos e serviços através de redes sociais.
57
+ Gestão de entregas | Controle, organização e acompanhamento dos envios e entregas.
58
+ Gestão de estoques | Controle, organização e acompanhamento de estoque dos produtos.
59
+ Controle financeiro | Sistema para realizar a gestão de operações financeiras.
60
+ Precificação | Sistema para ajudar a determinar os preços ideais de produtos.
61
+ Vendas presenciais | Gestão de vendas realizadas em lojas físicas, balcões ou pontos de venda.
62
+ Automação de vendas | Sistema para automatizar tarefas comerciais referentes ao processo de vendas.
63
+ CRM | Sistema para gerenciar interações com clientes.
64
+ Dashboards e BI | Painel para apresentar informações importantes, resumidas e permite uma análise rápida.
65
+ Soluções em IA | Resolução de problemas por meio de inteligência artificial.
66
+ ERP | Sistema para controlar operações da empresa, como estoque, vendas, entre outros.
67
+ Outro | Destinada para casos não enquadrados em outras categorias.
68
+ #### Imagens do aplicativo
69
+ Utilizadas somente em aplicativos públicos.
70
+ As imagens do aplicativo são exibidas na tela de contratação do aplicativo e podem ser usadas como uma forma de divulgar as funcionalidades presentes no sistema. É permitido realizar o upload de até cinco imagens.
71
+ Exemplo de aplicativo com imagens:
72
+ #### Escopos
73
+ O Escopo é a representação da permissão para operar sobre os recursos do usuário. Portanto, informe somente os escopos necessários, passando maior clareza e segurança ao usuário no momento da autorização do aplicativo.
74
+ Para inserir os escopos clique no botão **Adicionar** , conforme ilustrado na imagem a seguir.
75
+ Marque os escopos que serão utilizados pelo aplicativo e clique no botão **Adicionar**. Caso seja necessário, é possível filtrar os escopos por módulo e nome, usando a busca localizada no topo desta janela.
76
+ Os escopos escolhidos serão listados no formulário. Para excluir um escopo, passe o cursor sobre a linha desejada e clique no ícone da lixeira, uma janela pedindo a confirmação da exclusão será exibida.
77
+ Se precisar inserir novos escopos, clique na ação de **Adicionar escopo** logo abaixo da listagem.
78
+ É importante lembrar que o aplicativo só terá acesso aos dados referentes aos escopos selecionados. Qualquer adição ou exclusão de escopos só será confirmada após o salvamento do aplicativo. Se isso acontecer, uma janela de confirmação será exibida.
79
+ Ao confirmar a edição, todos os usuários do aplicativo serão automaticamente revogados. Desta forma, é garantida a segurança das informações dos usuários, exibindo a nova listagem de escopos no momento da autorização.
80
+ #### Modelo de manual
81
+ ##### Passos no Bling:
82
+ Para integrar com o aplicativo XXXXX, na API v3, acesse a sua conta Bling e clique no menu da **Central de Extensões**. Neste menu é possível buscar na barra de pesquisa o aplicativo XXXXX.
83
+ Ao localizar o aplicativo desejado, será possível clicar em **Instalar aplicativo**.
84
+ Ao clicar para instalar, é solicitada a autorização:
85
+ Isso irá autorizar o aplicativo a obter os tokens e se comunicar com sua conta Bling. A partir desse momento, todas as configurações no Bling estão finalizadas.
86
+ ##### Passos no Integrador (Informações que o desenvolvedor do app deve adicionar no manual)
87
+ Descreva o fluxo que o cliente precisa seguir em seu site/sistema:
88
+ **REQUISITOS****Existe a obrigatoriedade de ter uma conta antes de instalar o aplicativo?** Se sim, explique como e onde criar a conta: Ex: Acesse [www.aplicativov3.com.br](http://www.aplicativov3.com.br), clique em criar a conta, forneça email e nome… **Há preparações necessárias na conta antes de autorizar o aplicativo? Se sim, descrever os processos necessários:** Ex: Para integrar com o Bling, antes de permitir a integração, deve ser acessado a tela de “gerir conta” e clicar em “Integrar com o Bling” **Após a autorização, quais passos o cliente deve seguir para que a integração ocorra com sucesso?**
89
+ **CONTATO****Informe o contato do suporte ao seu sistema:** Ex: Telefone/Email que o cliente pode entrar em contato.
90
+ #### Informações do aplicativo
91
+ Após a criação do aplicativo, a aba "Informações do app" ficará disponível. Atente-se ao **Client Id** e ao **Client Secret** , que serão utilizados no momento da [autorização](https://developer.bling.com.br/aplicativos#fluxo-de-autoriza%C3%A7%C3%A3o).
92
+ É possível revogar os usuários do aplicativo. Essa ação exclui todos os _tokens_ de acesso e faz com que os usuários tenham que realizar novamente a etapa de autorização. Ao executar a ação através do botão **Revogar usuários** , será solicitada a confirmação da ação.
93
+ Logo abaixo da quantidade de usuários é possível visualizar as credenciais do aplicativo. Para revelar o **Client Secret** clique no ícone de olho. Assim como qualquer credencial, é importante manter a chave em segredo. Essa credencial será utilizada nas requisições para obtenção de [tokens de acesso](https://developer.bling.com.br/aplicativos#tokens-de-acesso). O **Client Secret** poderá ser alterado a qualquer momento clicando no botão **Redefinir client secret**.
94
+ Após pressionar o botão **Redefinir client secret** será solicitada a confirmação da ação. A ação gera um novo **Client Secret** , portanto será necessário realizar a alteração nas requisições que fazem uso do **Client Secret** anterior.
95
+ #### Exclusão
96
+ Com a exclusão do aplicativo, todos os _tokens_ de acesso dos usuários serão automaticamente revogados.
97
+ Para excluir, na aba "Informações do app", ao confirmar a ciência da ação, o botão **Excluir aplicativo** será exibido.
98
+ ### Códigos de acesso
99
+ Para gerar os códigos de acesso é necessário que os usuários deem autorização sobre o acesso aos dados das contas, ao aplicativo. O OAuth 2 protocola 4 tipos de concessão para que essa autorização seja realizada, no entanto o Bling fará uso de apenas uma delas, que é o _Authorization Code_. Portanto, será necessário seguir o fluxo de autorização descrito abaixo para obter os códigos de acesso.
100
+ #### Terminologia
101
+ Termo | Detalhamento
102
+ ---|---
103
+ Client App | Aplicativo que fará uso dos dados das contas dos usuários (conta Bling).
104
+ Authorization Code | Código enviado ao _Client App_ quando um usuário autoriza acesso aos dados.
105
+ Access Token | _Token_ utilizado para requisição do recurso dos usuários.
106
+ Refresh Token | _Token_ utilizado para requisitar um novo `access_token`, quando o mesmo expirar.
107
+ #### Fluxo de autorização
108
+ Segue abaixo um resumo das etapas do fluxo de autorização.
109
+ 1. O _client app_ , com a intenção de obter o `authorization_code`, redireciona o usuário (através do seu _user agent_) para o _authorization server_.
110
+ 2. O usuário se autentica no sistema e autoriza, ou não, o aplicativo.
111
+ 3. O _authorization server_ redireciona o usuário (através do _user agent_) de volta ao _client app_ , utilizando a “URL de redirecionamento” inserida no cadastro do aplicativo. Se o usuário autorizou o acesso aos seus recursos, o `authorization_code` será incluído no retorno e segue-se para o passo a seguir. Caso contrário, o fluxo de autorização termina aqui.
112
+ 4. O _client app_ requisita o `access_token`, fazendo uma requisição para o _authorization server_ com o `authorization_code` recebido no passo anterior.
113
+ 5. Se o `authorization_code` for válido, o _authorization server_ retornará um JSON contendo o `access_token` e o `refresh_token`.
114
+
115
+
116
+ #### Authorization code
117
+ Utilizando redirecionamento de URL o _client app_ direciona o usuário para o _endpoint_ `authorize`:
118
+ ```
119
+ GET
120
+ /Api/v3/oauth/authorize?response_type=code&client_id=[seu_client_id]&state=[sequencia_de_caracteres_aleatorios] HTTP/1.1
121
+ Host: https://www.bling.com.br
122
+
123
+ ```
124
+
125
+ Parâmetro | Descrição
126
+ ---|---
127
+ `response_type` | O valor deve ser code. Significa que o aplicativo está requisitando um `authorization_code`.
128
+ `client_id` | _Client_ id do aplicativo, exibido na edição do aplicativo.
129
+ `state` | Sequência aleatória de caracteres e de preferência única para cada sessão. O valor informado será mantido pelo _authorization server_ e incluído na resposta ao _client_. Assim, ao comparar o valor recebido do enviado, é possível amenizar problemas com _cross-site request forgery_ (CSRF).
130
+ Os parâmetros `redirect_uri` e `scope` são considerados de uso opcional pela [RFC](https://datatracker.ietf.org/doc/html/rfc6749#section-4.1.1), portanto, os mesmos não serão exigidos na requisição. Para estes dois parâmetros sempre serão usados os valores inseridos previamente no cadastro de aplicativos, mesmo que os mesmos sejam utilizados na requisição.
131
+ URL de exemplo da requisição:
132
+ ```
133
+ https://bling.com.br/Api/v3/oauth/authorize?response_type=code&client_id=7dbf42c119eea8b65d2c1a1a9ad92b1577594&state=291e61b56ab3d845622cf137b1e1e2
134
+
135
+ ```
136
+
137
+ Se o usuário autorizar a sua solicitação, o _authorization server_ irá redirecionar o _user agent_ para a URL de redirecionamento do aplicativo. Os parâmetros abaixo são incluídos na URL de redirecionamento:
138
+ Parâmetro | Descrição
139
+ ---|---
140
+ `code` | _Authorization code_ , que possui tempo de expiração de 1 minuto. Utilizado para obtenção dos _tokens_ de acesso.
141
+ `state` | Mesmo valor informado na requisição. Caso o state retornado for diferente do utilizado na requisição, ignore-a e interrompa o fluxo de autorização.
142
+ Exemplo de URL usada como _callback_ com os parâmetros utilizados no retorno do _authorization server_ :
143
+ ```
144
+ https://www.clientapp.com.br/callback?code=6521791563472106326454c818bd19f60febdcf3&state=291e61b56ab3d845622cf137b1e1e2
145
+
146
+ ```
147
+
148
+ #### Tokens de acesso
149
+ **Atenção:** A autenticação com _token_ opaco foi descontinuada. É necessário migrar para o novo modelo de JWT. Para mais detalhes, consulte [migração para autenticação JWT](https://developer.bling.com.br/migracao-jwt).
150
+ Com o `authorization_code` o _client app_ deve realizar uma requisição POST para o _endpoint_ `/token`, nisso o code será validado e os _tokens_ de acesso serão retornados. Lembrando que o prazo para realizar esta requisição é de 1 minuto, este é o tempo de expiração do _code_.
151
+ Formato da requisição HTTP que deve ser utilizado e uma tabela com o conteúdo que deve ser inserido no _body_ :
152
+ ```
153
+ POST /Api/v3/oauth/token? HTTP/1.1
154
+ Host: https://api.bling.com.br
155
+ Content-Type: application/x-www-form-urlencoded
156
+ Accept: 1.0
157
+ Authorization: Basic [base64_das_credenciais_do_client_app]
158
+ grant_type=authorization_code&code=[authorization_code]
159
+
160
+ ```
161
+
162
+ Parâmetro no body | Descrição
163
+ ---|---
164
+ `grant_type` | O valor deve ser authorization_code. Informa o tipo de concessão utilizado.
165
+ `code` | _Authorization code_ obtido na requisição do tópico anterior.
166
+ O _client app_ precisa ser autenticado para realizar esta operação, portanto, será necessário informar as suas credenciais no cabeçalho da requisição (não é permitida a inserção destes parâmetros no _body_). Para isso use o esquema “Basic” de autenticação HTTP inserindo um cabeçalho no formato:
167
+ ```
168
+ Authorization: Basic [credenciais_do_client_app]
169
+
170
+ ```
171
+
172
+ Lembrando que estas credenciais devem ser o `client_id` junto do `client_secret` separados por "`:`" e codificados em `base64`. Também é importante utilizar HTTPS / TLS para garantir a segurança dos seus dados.
173
+ Faça a requisição inteiramente no lado do servidor, busque evitar a exposição de qualquer dado inserido nela, como as credenciais do app ou o `authorization_code`.
174
+ Segue um exemplo de requisição dos _tokens_ de acesso utilizando cURL:
175
+ ```
176
+ curl --location --request POST 'https://api.bling.com.br/Api/v3/oauth/token' \
177
+ --header 'Content-Type: application/x-www-form-urlencoded' \
178
+ --header 'Accept: 1.0' \
179
+ --header 'Authorization: Basic ZWRkNTE4NjQzNDYxNzdiMTE5NzFlNmY0YTUyMmM5ZmYxZGZjNjNkZjo2OGViODVkY2FkOTY3Mzk2ZDA1ZmVjZGQwMDgwMjExN2Q3NTE1MjY0YjUyMGMzNjJlN2Y0NjYxOWFhMDk=' \
180
+ --data-urlencode 'grant_type=authorization_code' \
181
+ --data-urlencode 'code=6521791563472106326454c818bd19f60febdcf3'
182
+
183
+ ```
184
+
185
+ Caso a requisição seja válida, será retornado um objeto JSON contendo o `access_token`, com o seu tipo, tempo de expiração, escopos permitidos e o `refresh_token`. Veja abaixo um exemplo desse retorno e um quadro com a explicação de cada parâmetro.
186
+ ```
187
+ {
188
+ "access_token": "4a9de71b8aaf91c8ebbf830888354d5479e83a01",
189
+ "expires_in": 21600,
190
+ "token_type": "Bearer",
191
+ "scope": "98309 318257570 5862218180",
192
+ "refresh_token": "e4d61baafd951bbbdec0a92cf9700a49b4cbc005"
193
+ }
194
+
195
+ ```
196
+
197
+ Parâmetro da resposta | Descrição
198
+ ---|---
199
+ `access_token` | _Token_ utilizado para requisitar os recursos do usuário.
200
+ `expires_in` | Tempo de expiração do `access_token` em segundos.
201
+ `token_type` | Tipo do esquema de autenticação (Bearer Authentication).
202
+ `scope` | Lista dos ids dos escopos que o app possui permissão de acesso.
203
+ `refresh_token` | _Token_ utilizado para requisitar um novo token de acesso, após a expiração do `access_token`.
204
+ #### Refresh Token
205
+ Quando o tempo do `access_token` terminar é possível requisitar um novo utilizando o `refresh_token`, o qual foi enviado junto do `access_token` e possui um tempo de expiração superior, de 30 dias. Para isso é realizada uma requisição POST para o _endpoint_ `token`, na mesma estrutura da requisição apresentada anteriormente, a única diferença está nos parâmetros que devem ser apresentados no _body_. Veja abaixo o formato da requisição HTTP que deve ser utilizado e a tabela com o conteúdo que deve ser inserido no _body_.
206
+ ```
207
+ POST /Api/v3/oauth/token? HTTP/1.1
208
+ Host: https://api.bling.com.br
209
+ Content-Type: application/x-www-form-urlencoded
210
+ Accept: 1.0
211
+ Authorization: Basic [base64_das_credenciais_do_client_app]
212
+
213
+ grant_type=refresh_token&refresh_token=[refresh_token]
214
+
215
+ ```
216
+
217
+ Parâmetros no body | Descrição
218
+ ---|---
219
+ `grant_type` | O valor deve ser `refresh_token`. Informa o tipo de concessão utilizado.
220
+ `refresh_token` | _Refresh token_ obtido na requisição do `access_token` que expirou.
221
+ O retorno desta requisição é o mesmo JSON retornado na requisição do `access_token` com uso do `authorization_code`.
222
+ #### Utilizando o access token
223
+ Com o `access_token` é possível realizar requisições para a API do Bling e, assim, acessar os recursos do usuário. Lembrando que este tipo de autenticação só está disponível pela API v3 e só será possível requisitar os dados dos escopos que foram permitidos pelo usuário.
224
+ Como informado no JSON de retorno dos _tokens_ de acesso, o tipo do token fornecido é o Bearer, portanto, utilize o esquema "Bearer" de autenticação HTTP, inserindo a chave de acesso no cabeçalho da requisição, conforme exemplo:
225
+ ```
226
+ GET /Api/v3/[caminho_da_api_desejada] HTTP/1.1
227
+ Host: https://api.bling.com.br
228
+ Authorization: Bearer [access_token]
229
+
230
+ ```
231
+
232
+ Exemplo de uma requisição cURL para a API de contatos:
233
+ ```
234
+ curl --location --request GET 'https://api.bling.com.br/Api/v3/contatos' \
235
+ --header 'Authorization: Bearer 4a9de71b8aaf91c8ebbf830888354d5479e83a01' \
236
+
237
+ ```
238
+
239
+ #### Revogando o access token
240
+ É possível revogar um `access_token` ou `refresh_token` para impedir que um usuário ou uma empresa continuem acessando a API. Essa funcionalidade garante que apenas os tokens desejados sejam invalidados.
241
+ Para revogar um token, o _client app_ deve realizar uma requisição POST para o _endpoint_ `/oauth/revoke`, utilizando o esquema "Basic" de autenticação HTTP para fornecer suas credenciais, conforme exemplo:
242
+ ```
243
+ POST /oauth/revoke HTTP/1.1
244
+ Host: https://api.bling.com.br
245
+ Content-Type: application/x-www-form-urlencoded
246
+ Authorization: Basic [base64_das_credenciais_do_client_app]
247
+
248
+ token=[ACCESS_OR_REFRESH_TOKEN]&token_type_hint=[access_token|refresh_token]
249
+
250
+ ```
251
+
252
+ Parâmetros no body | Descrição
253
+ ---|---
254
+ `token` | O `access_token` ou `refresh_token` utilizado para se autenticar na api.
255
+ `token_type_hint` | Define o tipo de token informado. Pode ser "access_token" ou "refresh_token".
256
+ Se essa requisição for bem-sucedida, o token informado será revogado, impedindo seu uso para novas requisições na API.
257
+ #### Revogação avançada
258
+ Para atender a necessidade de remoção de todos os tokens associados a um usuário ou empresa, foram adicionados os parâmetros `revoke_action` e `revoke_target`, que ampliam o escopo da revogação.
259
+ ```
260
+ POST /oauth/revoke HTTP/1.1
261
+ Host: https://api.bling.com.br
262
+ Content-Type: application/x-www-form-urlencoded
263
+ Authorization: Basic [base64_das_credenciais_do_client_app]
264
+
265
+ token=[ACCESS_OR_REFRESH_TOKEN]&token_type_hint=[access_token|refresh_token]&revoke_action=[logout|uninstall]&revoke_target=[user|company]
266
+
267
+ ```
268
+
269
+ Parâmetro no body | Descrição
270
+ ---|---
271
+ `revoke_action` | Define o tipo de revogação. Valores possíveis: `logout` ou `uninstall`. **Se não for informado** , apenas o token enviado na requisição será revogado.
272
+ `revoke_target` | Define o alvo da revogação. Valores possíveis: `user` (padrão) ou `company`. **Se não for informado** , o padrão será `user` (revoga os tokens apenas do usuário relacionado ao token informado).
273
+ # Minhas Instalações
274
+ ## Gerenciamento
275
+ Através da aba [Minhas instalações](https://bling.com.br/central.extensoes.php#/minhas-instalacoes) da Central de Extensões é possível gerenciar os aplicativos que foram autorizados a operar a conta.
276
+ Ao clicar sobre o menu de contexto de uma instalação, será possível reportá-lo, desinstalá-lo ou reautenticá-lo, caso os códigos de acesso tenham expirados e seja preciso autorizar o aplicativo novamente.
@@ -0,0 +1,9 @@
1
+ # Gerenciamento
2
+
3
+ > **Seção:** Aplicativos
4
+ > **Atualizado:** 2026-03-07
5
+
6
+ ---
7
+ ## Gerenciamento
8
+ Através da aba [Minhas instalações](https://bling.com.br/central.extensoes.php#/minhas-instalacoes) da Central de Extensões é possível gerenciar os aplicativos que foram autorizados a operar a conta.
9
+ Ao clicar sobre o menu de contexto de uma instalação, será possível reportá-lo, desinstalá-lo ou reautenticá-lo, caso os códigos de acesso tenham expirados e seja preciso autorizar o aplicativo novamente.
@@ -0,0 +1,8 @@
1
+ # Inscrição
2
+
3
+ > **Seção:** Aplicativos
4
+ > **Atualizado:** 2026-03-07
5
+
6
+ ---
7
+ ## Inscrição
8
+ Caso você ainda não possua uma conta no Bling [clique aqui](https://www.bling.com.br/inscricao/plano-cobalto) e faça a sua inscrição.
@@ -0,0 +1,8 @@
1
+ # Introdução
2
+
3
+ > **Seção:** Aplicativos
4
+ > **Atualizado:** 2026-03-07
5
+
6
+ ---
7
+ ## Introdução
8
+ Este manual contempla o passo a passo aos integradores que desejam criar um aplicativo e entender o funcionamento do fluxo de autorização para a obtenção dos tokens de acesso do OAuth 2.0.
@@ -0,0 +1,88 @@
1
+ # 2026
2
+
3
+ > **Seção:** Changelogs de Webhooks
4
+ > **Atualizado:** 2026-03-07
5
+
6
+ ---
7
+ ## 2026
8
+ v339
9
+ ### Ajuste no retorno do campo de documento referenciado em itens de notas fiscais
10
+ Lançamento: 11/02/2026 | Publicação: 11/02/2026
11
+ O campo `documentoReferenciado` foi removido do retorno de itens de notas fiscais nos _endpoints_ `GET /nfe` e `GET /nfe/{idNotaFiscal}`.
12
+ v339
13
+ ### Adicionada validação de campos IBS/CBS na criação de uma NFS-e
14
+ Lançamento: 11/02/2026 | Publicação: 11/02/2026
15
+ Adicionada validação dos campos de tributação IBS/CBS (Reforma Tributária) no _endpoint_ `POST /nfse`, garantindo compatibilidade entre código NBS, indicador de operação, CST e classificação tributária.
16
+ v339
17
+ ### Adicionado filtro por ID da unidade de negócio na obtenção múltipla de pedidos de venda
18
+ Lançamento: 11/02/2026 | Publicação: 11/02/2026
19
+ Adicionado filtro por `idUnidadeNegocio` referente à filial na obtenção múltipla de pedidos de venda por meio do _endpoint_ `GET /pedidos/vendas`.
20
+ * * *
21
+ v338
22
+ ### Removida a formatação do CEP nos endpoints de notas fiscais
23
+ Lançamento: 28/01/2026 | Publicação: 28/01/2026
24
+ Removida a formatação dos campos CEP no retorno dos _endpoints_ `GET /nfe`, `GET /nfce`, `GET /nfe/{idNotaFiscal}` e `GET /nfce/{idNotaFiscalConsumidor}`.
25
+ v338
26
+ ### Adicionado parâmetro accessKey nos campos linkDanfe e linkPDF na obtenção de NF-e
27
+ Lançamento: 06/02/2026 | Publicação: 09/02/2026
28
+ Os campos `linkDanfe` e `linkPDF` retornados no _endpoint_ `GET /nfe/{idNotaFiscal}` passam a incluir o parâmetro de _query_ `accessKey` na URL. Com isso, o tamanho dos links pode aumentar em até 200 caracteres. O parâmetro permite acesso seguro à visualização do documento.
29
+ * * *
30
+ v337
31
+ ### Adicionado campo indicador de operação na API de configurações de NFS-e
32
+ Lançamento: 14/01/2026 | Publicação: 14/01/2026
33
+ Os _endpoints_ `GET /nfse/configuracoes` e `PUT /nfse/configuracoes` agora possuem o campo **indicadorOperacao** (Indicador de Operação da Reforma Tributária) para cada tributo configurado no objeto `ISS.tributos`.
34
+ v337
35
+ ### Adicionados campos de tributação IBS/CBS para notas fiscais de serviço
36
+ Lançamento: 14/01/2026 | Publicação: 14/01/2026
37
+ Adicionado suporte ao objeto `tributacaoIbsCbs` no endpoint `POST /nfse`, permitindo informar os dados de Tributação IBS/CBS (Imposto sobre Bens e Serviços e Contribuição sobre Bens e Serviços) conforme a nova legislação tributária.
38
+ ### Novo objeto disponível
39
+ O objeto `tributacaoIbsCbs` é **opcional** e deve ser informado apenas quando o município do prestador exigir conformidade com IBS/CBS.
40
+ **Exemplo de uso:**
41
+ ### Principais campos
42
+ Campo | Descrição
43
+ ---|---
44
+ `indicadorOperacao` | Código que indica onde a operação será realizada (ex: "20201" para operações nacionais)
45
+ `tipoOperacao` | Tipo de operação (1 = Tributado, 2 = Não Tributado, 3 = Imune)
46
+ `tipoEnteGovernamental` | Tipo de ente governamental quando aplicável (1 = Federal, 2 = Estadual, 3 = Distrito Federal, 4 = Municipal)
47
+ `codigoSituacaoTributaria` | CST - Código de Situação Tributária (ex: "000" = Tributação integral, "200" = Alíquota reduzida)
48
+ `classificacaoTributaria` | Classificação específica dentro do CST (ex: "000001", "200029")
49
+ ### Campos adicionais para situações específicas
50
+ * **Diferimento** (CST 515): `percentualDiferimentoEstadual`, `percentualDiferimentoMunicipal`, `percentualDiferimentoCBS`
51
+ * **Suspensão com regime regular** (CST 550): `cstRegimeRegular`, `classificacaoTributariaRegular`
52
+
53
+ Consulte a Referência da API para a lista completa de campos e suas descrições.
54
+ v337
55
+ ### Permite enviar o ID da unidade de negócio ao salvar ou editar um pedido de venda
56
+ Lançamento: 14/01/2026 | Publicação: 14/01/2026
57
+ O campo `unidadeNegocio.id` foi adicionado nos _endpoints_ `GET /pedidos/vendas/:idPedidoVenda`, `POST /pedidos/vendas` e `PUT /pedidos/vendas/:idPedidoVenda`.
58
+ v337
59
+ ### Permite enviar o ID da unidade de negócio ao salvar uma proposta comercial
60
+ Lançamento: 14/01/2026 | Publicação: 14/01/2026
61
+ O campo `unidadeNegocio.id` foi adicionado nos _endpoints_ `GET /propostas-comerciais/:idOrcamento` e `POST /propostas-comerciais`.
62
+ v337
63
+ ### Alterado filtro de situação da conciliação na obtenção múltipla de caixas
64
+ Lançamento: 14/01/2026 | Publicação: 14/01/2026
65
+ O parâmetro `conciliados` foi alterado para `situacaoConciliacao` e agora permite o filtro por todas situações de conciliação.
66
+ v337
67
+ ### Adicionado o ID da unidade de negócio na obtenção de um canal de venda
68
+ Lançamento: 16/01/2026 | Publicação: 16/01/2026
69
+ O campo `idUnidadeNegocio` referente à filial foi adicionado na obtenção dos detalhes de um canal de venda pelo endpoint `GET /canais-venda/{idCanalVenda}`.
70
+ * * *
71
+ v336
72
+ ### Adicionado parâmetro para controlar envio de e-mail no envio de NF-e
73
+ Lançamento: 05/01/2026 | Publicação: 05/01/2026
74
+ O _endpoint_ `POST /nfe/{idNotaFiscal}/enviar` agora aceita o parâmetro **enviarEmail** (query), permitindo controlar se o e-mail deve ser enviado ao destinatário após a emissão da nota fiscal.
75
+ ### Parâmetro
76
+ Campo | Tipo | Descrição
77
+ ---|---|---
78
+ `enviarEmail` | boolean | Define se deve enviar e-mail após a emissão da nota fiscal
79
+ **Valores:**
80
+ * `true`: Envia e-mail ao destinatário
81
+ * `false`: Não envia e-mail
82
+ * Não informado: Utiliza a configuração padrão do sistema
83
+
84
+ ### Exemplo de uso
85
+ **Enviar nota fiscal COM envio de e-mail:**
86
+ **Enviar nota fiscal SEM envio de e-mail:**
87
+ **Enviar nota fiscal usando configuração padrão:**
88
+ © 2026 Bling - [Política de privacidade](https://www.bling.com.br/politicas) - [Termos de serviço](https://www.bling.com.br/termos-de-uso)
@@ -0,0 +1,90 @@
1
+ # Changelogs de Webhooks
2
+
3
+ > **Seção:** changelogs-webhooks
4
+ > **Atualizado:** 2026-03-07
5
+
6
+ ---
7
+ ## 2026
8
+ v339
9
+ ### Ajuste no retorno do campo de documento referenciado em itens de notas fiscais
10
+ Lançamento: 11/02/2026 | Publicação: 11/02/2026
11
+ O campo `documentoReferenciado` foi removido do retorno de itens de notas fiscais nos _endpoints_ `GET /nfe` e `GET /nfe/{idNotaFiscal}`.
12
+ v339
13
+ ### Adicionada validação de campos IBS/CBS na criação de uma NFS-e
14
+ Lançamento: 11/02/2026 | Publicação: 11/02/2026
15
+ Adicionada validação dos campos de tributação IBS/CBS (Reforma Tributária) no _endpoint_ `POST /nfse`, garantindo compatibilidade entre código NBS, indicador de operação, CST e classificação tributária.
16
+ v339
17
+ ### Adicionado filtro por ID da unidade de negócio na obtenção múltipla de pedidos de venda
18
+ Lançamento: 11/02/2026 | Publicação: 11/02/2026
19
+ Adicionado filtro por `idUnidadeNegocio` referente à filial na obtenção múltipla de pedidos de venda por meio do _endpoint_ `GET /pedidos/vendas`.
20
+ * * *
21
+ v338
22
+ ### Removida a formatação do CEP nos endpoints de notas fiscais
23
+ Lançamento: 28/01/2026 | Publicação: 28/01/2026
24
+ Removida a formatação dos campos CEP no retorno dos _endpoints_ `GET /nfe`, `GET /nfce`, `GET /nfe/{idNotaFiscal}` e `GET /nfce/{idNotaFiscalConsumidor}`.
25
+ v338
26
+ ### Adicionado parâmetro accessKey nos campos linkDanfe e linkPDF na obtenção de NF-e
27
+ Lançamento: 06/02/2026 | Publicação: 09/02/2026
28
+ Os campos `linkDanfe` e `linkPDF` retornados no _endpoint_ `GET /nfe/{idNotaFiscal}` passam a incluir o parâmetro de _query_ `accessKey` na URL. Com isso, o tamanho dos links pode aumentar em até 200 caracteres. O parâmetro permite acesso seguro à visualização do documento.
29
+ * * *
30
+ v337
31
+ ### Adicionado campo indicador de operação na API de configurações de NFS-e
32
+ Lançamento: 14/01/2026 | Publicação: 14/01/2026
33
+ Os _endpoints_ `GET /nfse/configuracoes` e `PUT /nfse/configuracoes` agora possuem o campo **indicadorOperacao** (Indicador de Operação da Reforma Tributária) para cada tributo configurado no objeto `ISS.tributos`.
34
+ v337
35
+ ### Adicionados campos de tributação IBS/CBS para notas fiscais de serviço
36
+ Lançamento: 14/01/2026 | Publicação: 14/01/2026
37
+ Adicionado suporte ao objeto `tributacaoIbsCbs` no endpoint `POST /nfse`, permitindo informar os dados de Tributação IBS/CBS (Imposto sobre Bens e Serviços e Contribuição sobre Bens e Serviços) conforme a nova legislação tributária.
38
+ ### Novo objeto disponível
39
+ O objeto `tributacaoIbsCbs` é **opcional** e deve ser informado apenas quando o município do prestador exigir conformidade com IBS/CBS.
40
+ **Exemplo de uso:**
41
+ ### Principais campos
42
+ Campo | Descrição
43
+ ---|---
44
+ `indicadorOperacao` | Código que indica onde a operação será realizada (ex: "20201" para operações nacionais)
45
+ `tipoOperacao` | Tipo de operação (1 = Tributado, 2 = Não Tributado, 3 = Imune)
46
+ `tipoEnteGovernamental` | Tipo de ente governamental quando aplicável (1 = Federal, 2 = Estadual, 3 = Distrito Federal, 4 = Municipal)
47
+ `codigoSituacaoTributaria` | CST - Código de Situação Tributária (ex: "000" = Tributação integral, "200" = Alíquota reduzida)
48
+ `classificacaoTributaria` | Classificação específica dentro do CST (ex: "000001", "200029")
49
+ ### Campos adicionais para situações específicas
50
+ * **Diferimento** (CST 515): `percentualDiferimentoEstadual`, `percentualDiferimentoMunicipal`, `percentualDiferimentoCBS`
51
+ * **Suspensão com regime regular** (CST 550): `cstRegimeRegular`, `classificacaoTributariaRegular`
52
+
53
+
54
+ Consulte a Referência da API para a lista completa de campos e suas descrições.
55
+ v337
56
+ ### Permite enviar o ID da unidade de negócio ao salvar ou editar um pedido de venda
57
+ Lançamento: 14/01/2026 | Publicação: 14/01/2026
58
+ O campo `unidadeNegocio.id` foi adicionado nos _endpoints_ `GET /pedidos/vendas/:idPedidoVenda`, `POST /pedidos/vendas` e `PUT /pedidos/vendas/:idPedidoVenda`.
59
+ v337
60
+ ### Permite enviar o ID da unidade de negócio ao salvar uma proposta comercial
61
+ Lançamento: 14/01/2026 | Publicação: 14/01/2026
62
+ O campo `unidadeNegocio.id` foi adicionado nos _endpoints_ `GET /propostas-comerciais/:idOrcamento` e `POST /propostas-comerciais`.
63
+ v337
64
+ ### Alterado filtro de situação da conciliação na obtenção múltipla de caixas
65
+ Lançamento: 14/01/2026 | Publicação: 14/01/2026
66
+ O parâmetro `conciliados` foi alterado para `situacaoConciliacao` e agora permite o filtro por todas situações de conciliação.
67
+ v337
68
+ ### Adicionado o ID da unidade de negócio na obtenção de um canal de venda
69
+ Lançamento: 16/01/2026 | Publicação: 16/01/2026
70
+ O campo `idUnidadeNegocio` referente à filial foi adicionado na obtenção dos detalhes de um canal de venda pelo endpoint `GET /canais-venda/{idCanalVenda}`.
71
+ * * *
72
+ v336
73
+ ### Adicionado parâmetro para controlar envio de e-mail no envio de NF-e
74
+ Lançamento: 05/01/2026 | Publicação: 05/01/2026
75
+ O _endpoint_ `POST /nfe/{idNotaFiscal}/enviar` agora aceita o parâmetro **enviarEmail** (query), permitindo controlar se o e-mail deve ser enviado ao destinatário após a emissão da nota fiscal.
76
+ ### Parâmetro
77
+ Campo | Tipo | Descrição
78
+ ---|---|---
79
+ `enviarEmail` | boolean | Define se deve enviar e-mail após a emissão da nota fiscal
80
+ **Valores:**
81
+ * `true`: Envia e-mail ao destinatário
82
+ * `false`: Não envia e-mail
83
+ * Não informado: Utiliza a configuração padrão do sistema
84
+
85
+
86
+ ### Exemplo de uso
87
+ **Enviar nota fiscal COM envio de e-mail:**
88
+ **Enviar nota fiscal SEM envio de e-mail:**
89
+ **Enviar nota fiscal usando configuração padrão:**
90
+ © 2026 Bling - [Política de privacidade](https://www.bling.com.br/politicas) - [Termos de serviço](https://www.bling.com.br/termos-de-uso)
@@ -0,0 +1,88 @@
1
+ # 2026
2
+
3
+ > **Seção:** Changelogs de API
4
+ > **Atualizado:** 2026-03-07
5
+
6
+ ---
7
+ ## 2026
8
+ v339
9
+ ### Ajuste no retorno do campo de documento referenciado em itens de notas fiscais
10
+ Lançamento: 11/02/2026 | Publicação: 11/02/2026
11
+ O campo `documentoReferenciado` foi removido do retorno de itens de notas fiscais nos _endpoints_ `GET /nfe` e `GET /nfe/{idNotaFiscal}`.
12
+ v339
13
+ ### Adicionada validação de campos IBS/CBS na criação de uma NFS-e
14
+ Lançamento: 11/02/2026 | Publicação: 11/02/2026
15
+ Adicionada validação dos campos de tributação IBS/CBS (Reforma Tributária) no _endpoint_ `POST /nfse`, garantindo compatibilidade entre código NBS, indicador de operação, CST e classificação tributária.
16
+ v339
17
+ ### Adicionado filtro por ID da unidade de negócio na obtenção múltipla de pedidos de venda
18
+ Lançamento: 11/02/2026 | Publicação: 11/02/2026
19
+ Adicionado filtro por `idUnidadeNegocio` referente à filial na obtenção múltipla de pedidos de venda por meio do _endpoint_ `GET /pedidos/vendas`.
20
+ * * *
21
+ v338
22
+ ### Removida a formatação do CEP nos endpoints de notas fiscais
23
+ Lançamento: 28/01/2026 | Publicação: 28/01/2026
24
+ Removida a formatação dos campos CEP no retorno dos _endpoints_ `GET /nfe`, `GET /nfce`, `GET /nfe/{idNotaFiscal}` e `GET /nfce/{idNotaFiscalConsumidor}`.
25
+ v338
26
+ ### Adicionado parâmetro accessKey nos campos linkDanfe e linkPDF na obtenção de NF-e
27
+ Lançamento: 06/02/2026 | Publicação: 09/02/2026
28
+ Os campos `linkDanfe` e `linkPDF` retornados no _endpoint_ `GET /nfe/{idNotaFiscal}` passam a incluir o parâmetro de _query_ `accessKey` na URL. Com isso, o tamanho dos links pode aumentar em até 200 caracteres. O parâmetro permite acesso seguro à visualização do documento.
29
+ * * *
30
+ v337
31
+ ### Adicionado campo indicador de operação na API de configurações de NFS-e
32
+ Lançamento: 14/01/2026 | Publicação: 14/01/2026
33
+ Os _endpoints_ `GET /nfse/configuracoes` e `PUT /nfse/configuracoes` agora possuem o campo **indicadorOperacao** (Indicador de Operação da Reforma Tributária) para cada tributo configurado no objeto `ISS.tributos`.
34
+ v337
35
+ ### Adicionados campos de tributação IBS/CBS para notas fiscais de serviço
36
+ Lançamento: 14/01/2026 | Publicação: 14/01/2026
37
+ Adicionado suporte ao objeto `tributacaoIbsCbs` no endpoint `POST /nfse`, permitindo informar os dados de Tributação IBS/CBS (Imposto sobre Bens e Serviços e Contribuição sobre Bens e Serviços) conforme a nova legislação tributária.
38
+ ### Novo objeto disponível
39
+ O objeto `tributacaoIbsCbs` é **opcional** e deve ser informado apenas quando o município do prestador exigir conformidade com IBS/CBS.
40
+ **Exemplo de uso:**
41
+ ### Principais campos
42
+ Campo | Descrição
43
+ ---|---
44
+ `indicadorOperacao` | Código que indica onde a operação será realizada (ex: "20201" para operações nacionais)
45
+ `tipoOperacao` | Tipo de operação (1 = Tributado, 2 = Não Tributado, 3 = Imune)
46
+ `tipoEnteGovernamental` | Tipo de ente governamental quando aplicável (1 = Federal, 2 = Estadual, 3 = Distrito Federal, 4 = Municipal)
47
+ `codigoSituacaoTributaria` | CST - Código de Situação Tributária (ex: "000" = Tributação integral, "200" = Alíquota reduzida)
48
+ `classificacaoTributaria` | Classificação específica dentro do CST (ex: "000001", "200029")
49
+ ### Campos adicionais para situações específicas
50
+ * **Diferimento** (CST 515): `percentualDiferimentoEstadual`, `percentualDiferimentoMunicipal`, `percentualDiferimentoCBS`
51
+ * **Suspensão com regime regular** (CST 550): `cstRegimeRegular`, `classificacaoTributariaRegular`
52
+
53
+ Consulte a Referência da API para a lista completa de campos e suas descrições.
54
+ v337
55
+ ### Permite enviar o ID da unidade de negócio ao salvar ou editar um pedido de venda
56
+ Lançamento: 14/01/2026 | Publicação: 14/01/2026
57
+ O campo `unidadeNegocio.id` foi adicionado nos _endpoints_ `GET /pedidos/vendas/:idPedidoVenda`, `POST /pedidos/vendas` e `PUT /pedidos/vendas/:idPedidoVenda`.
58
+ v337
59
+ ### Permite enviar o ID da unidade de negócio ao salvar uma proposta comercial
60
+ Lançamento: 14/01/2026 | Publicação: 14/01/2026
61
+ O campo `unidadeNegocio.id` foi adicionado nos _endpoints_ `GET /propostas-comerciais/:idOrcamento` e `POST /propostas-comerciais`.
62
+ v337
63
+ ### Alterado filtro de situação da conciliação na obtenção múltipla de caixas
64
+ Lançamento: 14/01/2026 | Publicação: 14/01/2026
65
+ O parâmetro `conciliados` foi alterado para `situacaoConciliacao` e agora permite o filtro por todas situações de conciliação.
66
+ v337
67
+ ### Adicionado o ID da unidade de negócio na obtenção de um canal de venda
68
+ Lançamento: 16/01/2026 | Publicação: 16/01/2026
69
+ O campo `idUnidadeNegocio` referente à filial foi adicionado na obtenção dos detalhes de um canal de venda pelo endpoint `GET /canais-venda/{idCanalVenda}`.
70
+ * * *
71
+ v336
72
+ ### Adicionado parâmetro para controlar envio de e-mail no envio de NF-e
73
+ Lançamento: 05/01/2026 | Publicação: 05/01/2026
74
+ O _endpoint_ `POST /nfe/{idNotaFiscal}/enviar` agora aceita o parâmetro **enviarEmail** (query), permitindo controlar se o e-mail deve ser enviado ao destinatário após a emissão da nota fiscal.
75
+ ### Parâmetro
76
+ Campo | Tipo | Descrição
77
+ ---|---|---
78
+ `enviarEmail` | boolean | Define se deve enviar e-mail após a emissão da nota fiscal
79
+ **Valores:**
80
+ * `true`: Envia e-mail ao destinatário
81
+ * `false`: Não envia e-mail
82
+ * Não informado: Utiliza a configuração padrão do sistema
83
+
84
+ ### Exemplo de uso
85
+ **Enviar nota fiscal COM envio de e-mail:**
86
+ **Enviar nota fiscal SEM envio de e-mail:**
87
+ **Enviar nota fiscal usando configuração padrão:**
88
+ © 2026 Bling - [Política de privacidade](https://www.bling.com.br/politicas) - [Termos de serviço](https://www.bling.com.br/termos-de-uso)