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.
- package/LICENSE +21 -0
- package/README.md +281 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +275 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/embeddings.d.ts +18 -0
- package/dist/lib/embeddings.d.ts.map +1 -0
- package/dist/lib/embeddings.js +52 -0
- package/dist/lib/embeddings.js.map +1 -0
- package/dist/lib/indexer.d.ts +13 -0
- package/dist/lib/indexer.d.ts.map +1 -0
- package/dist/lib/indexer.js +305 -0
- package/dist/lib/indexer.js.map +1 -0
- package/dist/lib/loader.d.ts +34 -0
- package/dist/lib/loader.d.ts.map +1 -0
- package/dist/lib/loader.js +267 -0
- package/dist/lib/loader.js.map +1 -0
- package/dist/lib/openapi-tools.d.ts +38 -0
- package/dist/lib/openapi-tools.d.ts.map +1 -0
- package/dist/lib/openapi-tools.js +63 -0
- package/dist/lib/openapi-tools.js.map +1 -0
- package/dist/lib/schema-resolver.d.ts +17 -0
- package/dist/lib/schema-resolver.d.ts.map +1 -0
- package/dist/lib/schema-resolver.js +173 -0
- package/dist/lib/schema-resolver.js.map +1 -0
- package/dist/lib/types.d.ts +207 -0
- package/dist/lib/types.d.ts.map +1 -0
- package/dist/lib/types.js +2 -0
- package/dist/lib/types.js.map +1 -0
- package/dist/lib/vector-store.d.ts +46 -0
- package/dist/lib/vector-store.d.ts.map +1 -0
- package/dist/lib/vector-store.js +66 -0
- package/dist/lib/vector-store.js.map +1 -0
- package/dist/scripts/compare-extraction.d.ts +7 -0
- package/dist/scripts/compare-extraction.d.ts.map +1 -0
- package/dist/scripts/compare-extraction.js +223 -0
- package/dist/scripts/compare-extraction.js.map +1 -0
- package/dist/scripts/compare-with-docs-site.d.ts +7 -0
- package/dist/scripts/compare-with-docs-site.d.ts.map +1 -0
- package/dist/scripts/compare-with-docs-site.js +264 -0
- package/dist/scripts/compare-with-docs-site.js.map +1 -0
- package/dist/scripts/field-coverage-report.d.ts +14 -0
- package/dist/scripts/field-coverage-report.d.ts.map +1 -0
- package/dist/scripts/field-coverage-report.js +352 -0
- package/dist/scripts/field-coverage-report.js.map +1 -0
- package/dist/scripts/final-coverage-report.d.ts +1 -0
- package/dist/scripts/final-coverage-report.d.ts.map +1 -0
- package/dist/scripts/final-coverage-report.js +2 -0
- package/dist/scripts/final-coverage-report.js.map +1 -0
- package/dist/scripts/inspect-endpoint.d.ts +15 -0
- package/dist/scripts/inspect-endpoint.d.ts.map +1 -0
- package/dist/scripts/inspect-endpoint.js +292 -0
- package/dist/scripts/inspect-endpoint.js.map +1 -0
- package/dist/scripts/performance-validation.d.ts +10 -0
- package/dist/scripts/performance-validation.d.ts.map +1 -0
- package/dist/scripts/performance-validation.js +123 -0
- package/dist/scripts/performance-validation.js.map +1 -0
- package/dist/scripts/test-all.d.ts +7 -0
- package/dist/scripts/test-all.d.ts.map +1 -0
- package/dist/scripts/test-all.js +76 -0
- package/dist/scripts/test-all.js.map +1 -0
- package/dist/scripts/test-new-fields.d.ts +6 -0
- package/dist/scripts/test-new-fields.d.ts.map +1 -0
- package/dist/scripts/test-new-fields.js +243 -0
- package/dist/scripts/test-new-fields.js.map +1 -0
- package/dist/scripts/test-schema-fields.d.ts +7 -0
- package/dist/scripts/test-schema-fields.d.ts.map +1 -0
- package/dist/scripts/test-schema-fields.js +198 -0
- package/dist/scripts/test-schema-fields.js.map +1 -0
- package/dist/scripts/validate-extraction.d.ts +15 -0
- package/dist/scripts/validate-extraction.d.ts.map +1 -0
- package/dist/scripts/validate-extraction.js +294 -0
- package/dist/scripts/validate-extraction.js.map +1 -0
- package/dist/scripts/validate-full-extraction.d.ts +6 -0
- package/dist/scripts/validate-full-extraction.d.ts.map +1 -0
- package/dist/scripts/validate-full-extraction.js +399 -0
- package/dist/scripts/validate-full-extraction.js.map +1 -0
- package/dist/scripts/validate-phase1-fields.d.ts +6 -0
- package/dist/scripts/validate-phase1-fields.d.ts.map +1 -0
- package/dist/scripts/validate-phase1-fields.js +162 -0
- package/dist/scripts/validate-phase1-fields.js.map +1 -0
- package/dist/scripts/validate-phase2-fields.d.ts +6 -0
- package/dist/scripts/validate-phase2-fields.d.ts.map +1 -0
- package/dist/scripts/validate-phase2-fields.js +127 -0
- package/dist/scripts/validate-phase2-fields.js.map +1 -0
- package/dist/scripts/validate-phase3-fields.d.ts +6 -0
- package/dist/scripts/validate-phase3-fields.d.ts.map +1 -0
- package/dist/scripts/validate-phase3-fields.js +106 -0
- package/dist/scripts/validate-phase3-fields.js.map +1 -0
- package/dist/tools/compare-with-openapi-spec.d.ts +10 -0
- package/dist/tools/compare-with-openapi-spec.d.ts.map +1 -0
- package/dist/tools/compare-with-openapi-spec.js +266 -0
- package/dist/tools/compare-with-openapi-spec.js.map +1 -0
- package/dist/tools/compare-with-postman.d.ts +25 -0
- package/dist/tools/compare-with-postman.d.ts.map +1 -0
- package/dist/tools/compare-with-postman.js +257 -0
- package/dist/tools/compare-with-postman.js.map +1 -0
- package/dist/tools/describe.d.ts +39 -0
- package/dist/tools/describe.d.ts.map +1 -0
- package/dist/tools/describe.js +64 -0
- package/dist/tools/describe.js.map +1 -0
- package/dist/tools/get-auth-info.d.ts +33 -0
- package/dist/tools/get-auth-info.d.ts.map +1 -0
- package/dist/tools/get-auth-info.js +27 -0
- package/dist/tools/get-auth-info.js.map +1 -0
- package/dist/tools/get-endpoint-details.d.ts +27 -0
- package/dist/tools/get-endpoint-details.d.ts.map +1 -0
- package/dist/tools/get-endpoint-details.js +59 -0
- package/dist/tools/get-endpoint-details.js.map +1 -0
- package/dist/tools/get-schema.d.ts +34 -0
- package/dist/tools/get-schema.d.ts.map +1 -0
- package/dist/tools/get-schema.js +64 -0
- package/dist/tools/get-schema.js.map +1 -0
- package/dist/tools/list-tags.d.ts +29 -0
- package/dist/tools/list-tags.d.ts.map +1 -0
- package/dist/tools/list-tags.js +23 -0
- package/dist/tools/list-tags.js.map +1 -0
- package/dist/tools/read-documentation-page.d.ts +23 -0
- package/dist/tools/read-documentation-page.d.ts.map +1 -0
- package/dist/tools/read-documentation-page.js +73 -0
- package/dist/tools/read-documentation-page.js.map +1 -0
- package/dist/tools/search-documentation.d.ts +26 -0
- package/dist/tools/search-documentation.d.ts.map +1 -0
- package/dist/tools/search-documentation.js +91 -0
- package/dist/tools/search-documentation.js.map +1 -0
- package/dist/tools/search-endpoints.d.ts +35 -0
- package/dist/tools/search-endpoints.d.ts.map +1 -0
- package/dist/tools/search-endpoints.js +120 -0
- package/dist/tools/search-endpoints.js.map +1 -0
- package/dist/tools/search-schemas.d.ts +30 -0
- package/dist/tools/search-schemas.d.ts.map +1 -0
- package/dist/tools/search-schemas.js +36 -0
- package/dist/tools/search-schemas.js.map +1 -0
- package/dist/tools/validate-spec.d.ts +44 -0
- package/dist/tools/validate-spec.d.ts.map +1 -0
- package/dist/tools/validate-spec.js +186 -0
- package/dist/tools/validate-spec.js.map +1 -0
- package/docs/ajuda_como_gerar_o_access_token.md +8 -0
- package/docs/ajuda_como_gerar_o_client_id_e_o_client_secret.md +8 -0
- package/docs/ajuda_full.md +35 -0
- package/docs/ajuda_preciso_criar_uma_conta_no_bling_para_utilizar_a_api.md +9 -0
- package/docs/ajuda_quais_sao_os_limites_da_api.md +9 -0
- package/docs/ajuda_qual_e_a_utilidade_do_campo_state.md +9 -0
- package/docs/ajuda_qual_e_o_formato_de_retorno_das_respostas_da_api.md +18 -0
- package/docs/ajuda_quantos_registros_sao_retornados_por_pagina_em_cada_requisicao.md +9 -0
- package/docs/aplicativos_acesso_ao_modulo.md +12 -0
- package/docs/aplicativos_como_cadastrar.md +258 -0
- package/docs/aplicativos_full.md +276 -0
- package/docs/aplicativos_gerenciamento.md +9 -0
- package/docs/aplicativos_inscricao.md +8 -0
- package/docs/aplicativos_introducao.md +8 -0
- package/docs/changelogs-webhooks_2026.md +88 -0
- package/docs/changelogs-webhooks_full.md +90 -0
- package/docs/changelogs_2026.md +88 -0
- package/docs/changelogs_full.md +90 -0
- package/docs/guias_como_utilizar_os_tokens.md +20 -0
- package/docs/guias_full.md +72 -0
- package/docs/guias_fundamentos.md +11 -0
- package/docs/guias_introducao.md +9 -0
- package/docs/guias_o_que_e_api.md +10 -0
- package/docs/guias_oauth_e_tokens_de_acesso.md +9 -0
- package/docs/guias_padrao_rest.md +34 -0
- package/docs/guias_para_quem_e_destinada_a_api.md +9 -0
- package/docs/guias_sobre_o_bling.md +9 -0
- package/docs/limites_filtros.md +9 -0
- package/docs/limites_full.md +56 -0
- package/docs/limites_requisicoes.md +50 -0
- package/docs/migracao-jwt_estrutura_e_tamanho_do_token.md +9 -0
- package/docs/migracao-jwt_full.md +107 -0
- package/docs/migracao-jwt_ganhos_computacionais_e_de_infraestrutura.md +11 -0
- package/docs/migracao-jwt_introducao.md +15 -0
- package/docs/migracao-jwt_motivacao_da_alteracao.md +9 -0
- package/docs/migracao-jwt_tratamento_de_erros_comuns.md +13 -0
- package/docs/migracao-jwt_utilizando_jwt_no_bling.md +74 -0
- package/docs/publicando_full.md +118 -0
- package/docs/publicando_processo.md +9 -0
- package/docs/publicando_revisao.md +86 -0
- package/docs/publicando_situacoes.md +16 -0
- package/docs/publicando_validacao_de_dados.md +23 -0
- package/docs/webhooks_acoes.md +12 -0
- package/docs/webhooks_autenticacao.md +22 -0
- package/docs/webhooks_como_cadastrar.md +20 -0
- package/docs/webhooks_entrega_nao_ordenada.md +9 -0
- package/docs/webhooks_full.md +453 -0
- package/docs/webhooks_idempotencia.md +9 -0
- package/docs/webhooks_introducao.md +9 -0
- package/docs/webhooks_recebimento_de_eventos.md +8 -0
- package/docs/webhooks_recursos.md +374 -0
- package/docs/webhooks_retentativas.md +9 -0
- package/docs/webhooks_webhooks_vs_polling.md +13 -0
- 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
|
+
# 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)
|