PHPackages                             pablosanches/bling-sdk - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. pablosanches/bling-sdk

ActiveLibrary[API Development](/categories/api)

pablosanches/bling-sdk
======================

SDK não oficial do Bling! Api V3

v1.0.0.12(1y ago)652[29 issues](https://github.com/pablosanches/bling-sdk/issues)MITPHPPHP &gt;=8.2

Since Jun 11Pushed 1y ago1 watchersCompare

[ Source](https://github.com/pablosanches/bling-sdk)[ Packagist](https://packagist.org/packages/pablosanches/bling-sdk)[ Docs](https://github.com/pablosanches/bling-sdk)[ RSS](/packages/pablosanches-bling-sdk/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (7)Versions (14)Used By (0)

Bling! - API v3
===============

[](#bling---api-v3)

 [![Bling!](https://camo.githubusercontent.com/e283589bcb8c394f437c7b549d6d0c96c284d57106d31fa4fb209022ea36b30e/68747470733a2f2f646576656c6f7065722e626c696e672e636f6d2e62722f6275696c642f6173736574732f646576656c6f7065722d30303835643338302e737667)](https://camo.githubusercontent.com/e283589bcb8c394f437c7b549d6d0c96c284d57106d31fa4fb209022ea36b30e/68747470733a2f2f646576656c6f7065722e626c696e672e636f6d2e62722f6275696c642f6173736574732f646576656c6f7065722d30303835643338302e737667)

 [![GitHub Workflow Status (master)](https://github.com/pablosanches/bling-sdk/actions/workflows/master.yml/badge.svg)](https://github.com/pablosanches/bling-sdk/actions/workflows/master.yml/badge.svg)

---

Esta é uma SDK **não** oficial que facilita a integração com o [Bling!](https://developer.bling.com.br/bling-api#introdu%C3%A7%C3%A3o) utilizando a API V3.

Pule para:

- [Instalação](#Instala%C3%A7%C3%A3o)
- [Introdução](#Introdu%C3%A7%C3%A3o)
- [Contatos](#Contatos)
    - [Criando um contato](#Criando-um-contato)
    - [Atualizando um contato](#Atualizando-um-contato)
    - [Buscando todos os contatos](#Buscando-todos-os-contatos)
    - [Buscando contato por ID](#Buscando-contato-por-ID)
    - [Buscando tipos de um contato](#Buscando-tipos-de-um-contato)
    - [Buscando contatos consumidores finais](#Buscando-contatos-consumidores-finais)
    - [Atualizando a situação de um contato](#Atualizando-a-situa%C3%A7%C3%A3o-de-um-contato)
    - [Atualizando a situação de múltiplos contatos](#Atualizando-a-situa%C3%A7%C3%A3o-de-m%C3%BAltiplos-contatos)
    - [Remover um contato pelo seu ID](#Remover-um-contato-pelo-seu-ID)
    - [Remover múltiplos contatos](#Remover-m%C3%BAltiplos-contatos)
- [Categorias de Produtos](#Categorias-de-Produtos)
    - [Criando uma categoria de produto](#Criando-uma-categoria-de-produto)
    - [Atualizando uma categoria de produtos](#Atualizando-uma-categoria-de-produtos)
    - [Buscando uma categoria de produtos pelo seu ID](#Buscando-uma-categoria-de-produtos-pelo-seu-ID)
    - [Buscando todos as categorias de produtos](#Buscando-todos-as-categorias-de-produtos)
    - [Removendo uma categoria de produto](#Removendo-uma-categoria-de-produto8)
- [Categorias Lojas](#Categorias-lojas)
    - [Criando um vínculo de uma categoria de produto](#Criando-um-v%C3%ADnculo-de-uma-categoria-de-produto)
    - [Atualizando um vínculo de uma categoria de produto](#Atualizando-um-v%C3%ADnculo-de-uma-categoria-de-produto)
    - [Buscando um vínculo de categoria de produto pelo seu ID](#Buscando-um-v%C3%ADnculo-de-categoria-de-produto-pelo-seu-ID)
    - [Buscando todos os vínculos de categorias de produtos](#Buscando-todos-os-v%C3%ADnculos-de-categorias-de-produtos)
    - [Removendo um vínculo de uma categoria de produto](#Removendo-um-v%C3%ADnculo-de-uma-categoria-de-produto)
- [Depósitos](#Dep%C3%B3sitos)
    - [Criando um depósito](#Criando-um-dep%C3%B3sito)
    - [Alterando um depósito](#Alterando-um-dep%C3%B3sito)
    - [Obtendo um depósito pelo ID](#Obtendo-um-dep%C3%B3sito-pelo-ID)
    - [Obtendo todos os depósitos](#Obtendo-todos-os-dep%C3%B3sitos)
- [Estoques](#Estoques)
    - [Criando um registro de estoque](#Criando-um-registro-de-estoque)
    - [Atualizando um registro de estoque](#Atualizando-um-registro-de-estoque)
    - [Obtém o saldo em estoque de produtos em todos os depósitos](#Obt%C3%A9m-o-saldo-em-estoque-de-produtos-em-todos-os-dep%C3%B3sitos)
    - [Obtém o saldo em estoque de produtos pelo ID do depósito](#Obt%C3%A9m-o-saldo-em-estoque-de-produtos-pelo-ID-do-dep%C3%B3sito)
- [Produtos](#Produtos)
    - [Criar um produto](#Criar-um-produto)
    - [Alterar um produto](#Alterar-um-produto)
    - [Alterar a situação de múltiplos produtos](#Alterar-a-situa%C3%A7%C3%A3o-de-m%C3%BAltiplos-produtos)
    - [Alterar a situação de um produto](#Alterar-a-situa%C3%A7%C3%A3o-de-um-produto)
    - [Obter um produto pelo seu ID](#Obter-um-produto-pelo-seu-ID)
    - [Obter todos os produtos paginados](#Obter-todos-os-produtos-paginados)
    - [Excluir um produto pelo seu id](#Excluir-um-produto-pelo-seu-id)
    - [Excluir múltiplos produtos](#Excluir-m%C3%BAltiplos-produtos)
- [Produtos Lojas](#Produtos-Lojas)
    - [Criar vínculo de produtos com lojas](#Criar-v%C3%ADnculo-de-produtos-com-lojas)
    - [Altera vínculo de produtos com lojas](#Altera-v%C3%ADnculo-de-produtos-com-lojas)
    - [Obtém um vínculo de produtos com lojas](#Obt%C3%A9m-um-v%C3%ADnculo-de-produtos-com-lojas)
    - [Obtém um vínculo de todos produtos com lojas](#Obt%C3%A9m-um-v%C3%ADnculo-de-todos-produtos-com-lojas)
    - [Remove o vínculo de produtos com lojas](#Remove-o-v%C3%ADnculo-de-produtos-com-lojas)
- [Produtos Variações](#Produtos-Varia%C3%A7%C3%B5es)
    - [Obter um produto e suas variações](#Obter-um-produto-e-suas-varia%C3%A7%C3%B5es)
    - [Alterar o nome do atributo nas variações](#Alterar-o-nome-do-atributo-nas-varia%C3%A7%C3%B5es)
    - [Retorna o produto pai com combinações de novas variações](#Retorna-o-produto-pai-com-combina%C3%A7%C3%B5es-de-novas-varia%C3%A7%C3%B5es)
- [Pedidos Vendas](#Pedidos-Vendas)
    - [Criar um pedido de venda](#Obter-um-produto-e-suas-varia%C3%A7%C3%B5es)
    - [Atualizar um pedido de venda](#Atualizar-um-pedido-de-venda)
    - [Remover um pedido de venda](#Remover-um-pedido-de-venda)
    - [Remover múltiplos pedidos de vendas](#Remover-m%C3%BAltiplos-pedidos-de-vendas)
    - [Buscar um pedido de venda](#Buscar-um-pedido-de-venda)
    - [Buscar todos os pedidos de venda](#Buscar-todos-os-pedidos-de-venda)
    - [Alterar a situação de um pedido de venda](#Alterar-a-situa%C3%A7%C3%A3o-de-um-pedido-de-venda)
    - [Lançar estoque de um pedido de venda especificando o depósito](#Lan%C3%A7ar-estoque-de-um-pedido-de-venda-especificando-o-dep%C3%B3sito)
    - [Lançar estoque de um pedido de venda no depósito padrão](#Lan%C3%A7ar-estoque-de-um-pedido-de-venda-no-dep%C3%B3sito-padr%C3%A3o)
    - [Estornar o estoque de um pedido de venda](#Estornar-o-estoque-de-um-pedido-de-venda)
    - [Lançar as contas de um pedido de venda](#Lan%C3%A7ar-as-contas-de-um-pedido-de-venda)
    - [Estornar as contas de um pedido de venda](#Estornar-as-contas-de-um-pedido-de-venda)
    - [Gerar NFE de um pedido de venda](#Gerar-NFE-de-um-pedido-de-venda)
    - [Gerar NFCE de um pedido de venda](#Gerar-NFCE-de-um-pedido-de-venda)

Instalação
----------

[](#instalação)

Você pode instalar esta **SDK** via composer:

```
composer require pablosanches/bling-sdk
```

Introdução
----------

[](#introdução)

A API V3 do [Bling!](https://developer.bling.com.br/bling-api#introdu%C3%A7%C3%A3o) utiliza do modelo de autenticação OAuth 2.0, sendo assim, antes de qualquer coisa você precisará registrar um aplicativo em sua conta do Bling! para conseguir realizar todas as etapas de autenticação, você pode saber mais [aqui!](https://developer.bling.com.br/aplicativos#introdu%C3%A7%C3%A3o)

Esta SDK segue um padrão de roteamento dinâmico baseado nos módulos implementados, desta forma, você precisará construir a instância de client da SDK e chamar seus módulos através deste client.

Exemplo:

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $payload = [
            'nome' => 'Pablo Sanches'
        ];
        $response = $bling->contatos()->criar($payload);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Os modelos de resposta dos resources trazem alguns métodos que facilitam a integração:

[](#os-modelos-de-resposta-dos-resources-trazem-alguns-métodos-que-facilitam-a-integração)

```
use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $payload = [
            'nome' => 'Pablo Sanches'
        ];
        $response = $bling->contatos()->criar($payload);

        // Este método faz um unwrap do elemento data que o bling coloca por padrão em seu objeto de resposta
        var_dump($response->getData());

        // Este método traz a reposta padrão do Bling
        var_dump($response->getContents());

        // Este método traz o statusCode da requisição
        var_dump($response->getStatusCode());

        // Este método indica se houve algum erro na requisição
        var_dump($response->hasError());

        // Este método faz um unwrap do elemento error que o bling coloca por padrão em seu objeto de resposta de erros
        var_dump($response->getError());

        // Este método exporta o conteúdo da resposta, independente se houve erro ou sucesso
        var_dump($response->export());
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Em alguns casos o bling pode paginar e oferecer filtros para as requests

[](#em-alguns-casos-o-bling-pode-paginar-e-oferecer-filtros-para-as-requests)

```
use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');

        $filtros = [
            'pagina' => 1,
            'limite' => 100,
            'criterio' => 1,
            'dataInclusaoInicial' => '2024-01-01'
        ];

        $response = $bling->contatos()->buscarTodos($filtros);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

Contatos
--------

[](#contatos)

[Ver documentação](https://developer.bling.com.br/referencia#/Contatos)

### Criando um contato

[](#criando-um-contato)

[Ver documentação](https://developer.bling.com.br/referencia#/Contatos/post_contatos)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $payload = [
            'nome' => 'Pablo Sanches'
        ];
        $response = $bling->contatos()->criar($payload);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Atualizando um contato:

[](#atualizando-um-contato)

[Ver documentação](https://developer.bling.com.br/referencia#/Contatos/put_contatos__idContato_)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $payload = [
            'nome' => 'Pablo Sanches'
        ];
        $response = $bling->contatos()->atualizar($id, $payload);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Buscando todos os contatos:

[](#buscando-todos-os-contatos)

[Ver documentação](https://developer.bling.com.br/referencia#/Contatos/get_contatos)

```
use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');

        $filtros = [
            'pagina' => 1,
            'limite' => 100,
            'criterio' => 1,
            'dataInclusaoInicial' => '2024-01-01'
        ];

        $response = $bling->contatos()->buscarTodos($filtros);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Buscando contato por ID:

[](#buscando-contato-por-id)

[Ver documentação](https://developer.bling.com.br/referencia#/Contatos/get_contatos__idContato_)

```
use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $idContato = 1;
        $response = $bling->contatos()->buscar($idContato);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Buscando tipos de um contato:

[](#buscando-tipos-de-um-contato)

[Ver documentação](https://developer.bling.com.br/referencia#/Contatos/get_contatos__idContato__tipos)

```
use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $idContato = 1;
        $response = $bling->contatos()->buscarTipos($idContato);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Buscando contatos consumidores finais:

[](#buscando-contatos-consumidores-finais)

[Ver documentação](https://developer.bling.com.br/referencia#/Contatos/get_contatos_consumidor_final)

```
use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $idContato = 1;
        $response = $bling->contatos()->buscarConsumidoresFinais($idContato);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Atualizando a situação de um contato:

[](#atualizando-a-situação-de-um-contato)

[Ver documentação](https://developer.bling.com.br/referencia#/Contatos/patch_contatos__idContato__situacoes)

```
use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $idContato = 1;
        $situacao = 'A';
        $response = $bling->contatos()->atualizarSituacao($idContato, $situacao);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Atualizando a situação de múltiplos contatos:

[](#atualizando-a-situação-de-múltiplos-contatos)

[Ver documentação](https://developer.bling.com.br/referencia#/Contatos/post_contatos_situacoes)

```
use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $idsContatos = [1, 2, 3, 4];
        $situacao = 'A';
        $response = $bling->contatos()->alterarSituacoesMultiplos($idsContatos, $situacao);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Remover um contato pelo seu ID:

[](#remover-um-contato-pelo-seu-id)

[Ver documentação](https://developer.bling.com.br/referencia#/Contatos/delete_contatos__idContato_)

```
use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $idContato = 1;
        $response = $bling->contatos()->remover($idContato);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Remover múltiplos contatos:

[](#remover-múltiplos-contatos)

[Ver documentação](https://developer.bling.com.br/referencia#/Contatos/delete_contatos)

```
use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $idsContatos = [1, 2, 3, 4];
        $response = $bling->contatos()->removerMultiplos($idContato);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

Categorias de Produtos
----------------------

[](#categorias-de-produtos)

[Ver documentação](https://developer.bling.com.br/referencia#/Categorias%20-%20Produtos)

### Criando uma categoria de produto:

[](#criando-uma-categoria-de-produto)

[Ver documentação](https://developer.bling.com.br/referencia#/Categorias%20-%20Produtos/post_categorias_produtos)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $payload = [
            'descricao' => 'Eletrônicos'
        ];
        $response = $bling->categoriasProdutos()->criar($payload);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Atualizando uma categoria de produtos:

[](#atualizando-uma-categoria-de-produtos)

[Ver documentação](https://developer.bling.com.br/referencia#/Categorias%20-%20Produtos/put_categorias_produtos__idCategoriaProduto_)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $payload = [
            'descricao' => 'Eletrônicos - Atualizado'
        ];
        $idCategoria = 123456789;
        $response = $bling->categoriasProdutos()->atualizar($idCategoria, $payload);
    } catch (\Exception $e) {
        // $e->getMessage();
    }

```

### Buscando uma categoria de produtos pelo seu ID:

[](#buscando-uma-categoria-de-produtos-pelo-seu-id)

[Ver documentação](https://developer.bling.com.br/referencia#/Categorias%20-%20Produtos/get_categorias_produtos__idCategoriaProduto_)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $idCategoria = 123456789;
        $response = $bling->categoriasProdutos()->buscar($idCategoria);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Buscando todos as categorias de produtos

[](#buscando-todos-as-categorias-de-produtos)

[Ver documentação](https://developer.bling.com.br/referencia#/Categorias%20-%20Produtos/get_categorias_produtos)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $response = $bling->categoriasProdutos()->buscarTodos();
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Removendo uma categoria de produto

[](#removendo-uma-categoria-de-produto)

[Ver documentação](https://developer.bling.com.br/referencia#/Categorias%20-%20Produtos/delete_categorias_produtos__idCategoriaProduto_)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $idCategoria = 123456789;
        $response = $bling->categoriasProdutos()->remover($idCategoria);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

Categorias Lojas
----------------

[](#categorias-lojas)

*(Multilojas)*

[Ver documentação](https://developer.bling.com.br/referencia#/Categorias%20-%20Lojas)

Para utilizar recursos do multilojas, você precisa especificar o parâmetro ***multilojas*** na construção do Client da SDK.

Exemplo:

```
use PabloSanches\Bling\Client;
$blingClient = Client::factory('', ['multilojas' => '']);
```

### Criando um vínculo de uma categoria de produto

[](#criando-um-vínculo-de-uma-categoria-de-produto)

[Ver documentação](https://developer.bling.com.br/referencia#/Categorias%20-%20Lojas/post_categorias_lojas)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('', '');
        $payload = [
            'descricao' => 'Categoria de produto vinculado à loja',
            'codigo' => '12345678',
            'categoriaProduto' => ['id' => 12345678]
        ];
        $response = $bling->categoriasLojas()->criar($payload);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Atualizando um vínculo de uma categoria de produto

[](#atualizando-um-vínculo-de-uma-categoria-de-produto)

[Ver documentação](https://developer.bling.com.br/referencia#/Categorias%20-%20Lojas/put_categorias_lojas__idCategoriaLoja_)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('', '');
        $payload = [
            'descricao' => 'Categoria de produto vinculado à loja',
            'codigo' => '12345678',
            'categoriaProduto' => ['id' => 12345678]
        ];
        $idVinculo = 123456789;
        $response = $bling->categoriasLojas()->atualizar($idVinculo, $payload);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Buscando um vínculo de categoria de produto pelo seu ID

[](#buscando-um-vínculo-de-categoria-de-produto-pelo-seu-id)

[Ver documentação](https://developer.bling.com.br/referencia#/Categorias%20-%20Lojas/get_categorias_lojas__idCategoriaLoja_)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('', '');
        $idVinculo = 123456789;
        $response = $bling->categoriasLojas()->buscar($idVinculo);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Buscando todos os vínculos de categorias de produtos

[](#buscando-todos-os-vínculos-de-categorias-de-produtos)

[Ver documentação](https://developer.bling.com.br/referencia#/Categorias%20-%20Lojas/get_categorias_lojas)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('', '');
        $idVinculo = 123456789;
        $response = $bling->categoriasLojas()->buscarTodos();
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Removendo um vínculo de uma categoria de produto

[](#removendo-um-vínculo-de-uma-categoria-de-produto)

[Ver documentação](https://developer.bling.com.br/referencia#/Categorias%20-%20Lojas/delete_categorias_lojas__idCategoriaLoja_)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('', '');
        $idVinculo = 123456789;
        $response = $bling->categoriasLojas()->remover($idVinculo);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

Depósitos
---------

[](#depósitos)

[Ver documentação](https://developer.bling.com.br/referencia#/Dep%C3%B3sitos)

### Criando um depósito

[](#criando-um-depósito)

[Ver documentação](https://developer.bling.com.br/referencia#/Dep%C3%B3sitos/post_depositos)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $payload = [
            'descricao' => 'Depósito Geral',
            'situacao' => 1,
            'padrao' => false,
            'desconsiderarSaldo' => false
        ];
        $response = $bling->depositos()->criar($payload);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Alterando um depósito

[](#alterando-um-depósito)

[Ver documentação](https://developer.bling.com.br/referencia#/Dep%C3%B3sitos/put_depositos__idDeposito_)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $payload = [
            'descricao' => 'Depósito Geral',
            'situacao' => 1,
            'padrao' => false,
            'desconsiderarSaldo' => false
        ];
        $idDeposito = 123456789;
        $response = $bling->depositos()->atualizar($idDeposito, $payload);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Obtendo um depósito pelo ID

[](#obtendo-um-depósito-pelo-id)

[Ver documentação](https://developer.bling.com.br/referencia#/Dep%C3%B3sitos/get_depositos__idDeposito_)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $idDeposito = 123456789;
        $response = $bling->depositos()->buscar($idDeposito);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Obtendo todos os depósitos

[](#obtendo-todos-os-depósitos)

[Ver documentação](https://developer.bling.com.br/referencia#/Dep%C3%B3sitos/get_depositos)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $response = $bling->depositos()->buscarTodos();
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

Estoques
--------

[](#estoques)

[Ver documentação](https://developer.bling.com.br/referencia#/Estoques)

### Criando um registro de estoque

[](#criando-um-registro-de-estoque)

[Ver documentação](https://developer.bling.com.br/referencia#/Estoques/post_estoques)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $payload = [
            "produto" => ['id' => 123456789],
            "deposito" => ['id' => 123456789],
            "operacao" => "B",
            "preco" => 1500.75,
            "custo" => 1500.75,
            "quantidade" => 50.75,
            "observacoes" => "Observações de estoque"
        ];
        $response = $bling->estoques()->criar($payload);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Atualizando um registro de estoque

[](#atualizando-um-registro-de-estoque)

[Ver documentação](https://developer.bling.com.br/referencia#/Estoques/put_estoques__idEstoque_)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $payload = [
            "produto" => ['id' => 123456789],
            "deposito" => ['id' => 123456789],
            "operacao" => "B",
            "preco" => 1500.75,
            "custo" => 1500.75,
            "quantidade" => 50.75,
            "observacoes" => "Observações de estoque"
        ];
        $idDoEstoque = 123456789;
        $response = $bling->estoques()->atualizar($idDoEstoque, $payload);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Obtém o saldo em estoque de produtos em todos os depósitos

[](#obtém-o-saldo-em-estoque-de-produtos-em-todos-os-depósitos)

[Ver documentação](https://developer.bling.com.br/referencia#/Estoques/get_estoques_saldos)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $filtros = [
            "idsProdutos" => ['id' => 123456789]
        ];
        $response = $bling->estoques()->buscarTodos($filtros);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Obtém o saldo em estoque de produtos pelo ID do depósito

[](#obtém-o-saldo-em-estoque-de-produtos-pelo-id-do-depósito)

[Ver documentação](https://developer.bling.com.br/referencia#/Estoques/get_estoques_saldos__idDeposito_)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $filtros = [
            "idDeposito" => 123456789,
            "idsProdutos" => ['id' => 123456789]
        ];
        $response = $bling->estoques()->buscarPorDeposito($filtros);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

Produtos
--------

[](#produtos)

[Ver documentação](https://developer.bling.com.br/referencia#/Produtos)

### Criar um produto

[](#criar-um-produto)

[Ver documentação](https://developer.bling.com.br/referencia#/Produtos/post_produtos)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $dadosProdutos = [...];
        $response = $bling->produtos()->criar($dadosProdutos);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Alterar um produto

[](#alterar-um-produto)

[Ver documentação](https://developer.bling.com.br/referencia#/Produtos/put_produtos__idProduto_)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $idProduto = 123456789;
        $dadosProdutos = [...];
        $response = $bling->produtos()->atualizar($idProduto, $dadosProdutos);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Alterar a situação de múltiplos produtos

[](#alterar-a-situação-de-múltiplos-produtos)

[Ver documentação](https://developer.bling.com.br/referencia#/Produtos/post_produtos_situacoes)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $idsProdutos = [123456789, 123456789];
        $situacao = 'A';
        $response = $bling->produtos()->alterarSituacaoMultiplosProdutos($idsProdutos, $situacao);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Alterar a situação de um produto

[](#alterar-a-situação-de-um-produto)

[Ver documentação](https://developer.bling.com.br/referencia#/Produtos/patch_produtos__idProduto__situacoes)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $idProduto = 123456789;
        $situacao = 'A';
        $response = $bling->produtos()->alterarSituacaoProduto($idProduto, $situacao);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Obter um produto pelo seu ID

[](#obter-um-produto-pelo-seu-id)

[Ver documentação](https://developer.bling.com.br/referencia#/Produtos/get_produtos__idProduto_)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $idProduto = 123456789;
        $response = $bling->produtos()->buscar($idProduto);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Obter todos os produtos paginados

[](#obter-todos-os-produtos-paginados)

[Ver documentação](https://developer.bling.com.br/referencia#/Produtos/get_produtos)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $response = $bling->produtos()->buscarTodos();
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Excluir um produto pelo seu id

[](#excluir-um-produto-pelo-seu-id)

[Ver documentação](https://developer.bling.com.br/referencia#/Produtos/delete_produtos__idProduto_)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $idProduto = 123456789;
        $response = $bling->produtos()->remover($idProduto);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Excluir múltiplos produtos

[](#excluir-múltiplos-produtos)

[Ver documentação](https://developer.bling.com.br/referencia#/Produtos/delete_produtos)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $idProduto = [123456789, 123456789, 123456789];
        $response = $bling->produtos()->removerMultiplos($idProduto);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

Produtos Lojas
--------------

[](#produtos-lojas)

[Ver documentação](https://developer.bling.com.br/referencia#/Produtos%20-%20Lojas)

### Criar vínculo de produtos com lojas

[](#criar-vínculo-de-produtos-com-lojas)

[Ver documentação](https://developer.bling.com.br/referencia#/Produtos%20-%20Lojas/post_produtos_lojas)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('', '');
        $payload = [...];
        $response = $bling->produtosLojas()->criar($payload);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Altera vínculo de produtos com lojas

[](#altera-vínculo-de-produtos-com-lojas)

[Ver documentação](https://developer.bling.com.br/referencia#/Produtos%20-%20Lojas/put_produtos_lojas__idProdutoLoja_)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('', '');
        $idVinculo = 123456789;
        $payload = [...];
        $response = $bling->produtosLojas()->atualizar($idVinculo, $payload);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Obtém um vínculo de produtos com lojas

[](#obtém-um-vínculo-de-produtos-com-lojas)

[Ver documentação](https://developer.bling.com.br/referencia#/Produtos%20-%20Lojas/get_produtos_lojas__idProdutoLoja_)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('', '');
        $idVinculo = 123456789;
        $response = $bling->produtosLojas()->buscar($idVinculo);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Obtém um vínculo de todos produtos com lojas

[](#obtém-um-vínculo-de-todos-produtos-com-lojas)

[Ver documentação](https://developer.bling.com.br/referencia#/Produtos%20-%20Lojas/get_produtos_lojas)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('', '');
        $response = $bling->produtosLojas()->buscarTodos();
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Remove o vínculo de produtos com lojas

[](#remove-o-vínculo-de-produtos-com-lojas)

[Ver documentação](https://developer.bling.com.br/referencia#/Produtos%20-%20Lojas/delete_produtos_lojas__idProdutoLoja_)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('', '');
        $idVinculo = 123456789;
        $response = $bling->produtosLojas()->remover($idVinculo);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

Produtos Variações
------------------

[](#produtos-variações)

[Ver documentação](https://developer.bling.com.br/referencia#/Produtos%20-%20Varia%C3%A7%C3%B5es)

### Obter um produto e suas variações

[](#obter-um-produto-e-suas-variações)

[Ver documentação](https://developer.bling.com.br/referencia#/Produtos%20-%20Varia%C3%A7%C3%B5es/get_produtos_variacoes__idProdutoPai_)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $response = $bling->produtosVariacoes()->buscar($idProdutoPai);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Alterar o nome do atributo nas variações

[](#alterar-o-nome-do-atributo-nas-variações)

[Ver documentação](https://developer.bling.com.br/referencia#/Produtos%20-%20Varia%C3%A7%C3%B5es/patch_produtos_variacoes__idProdutoPai__atributos)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $payload = [...];
        $response = $bling->produtosVariacoes()->alterarNomeAtributo($idProdutoPai, $payload);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Retorna o produto pai com combinações de novas variações

[](#retorna-o-produto-pai-com-combinações-de-novas-variações)

[Ver documentação](https://developer.bling.com.br/referencia#/Produtos%20-%20Varia%C3%A7%C3%B5es/post_produtos_variacoes_atributos_gerar_combinacoes)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $payload = [...];
        $response = $bling->produtosVariacoes()->gerarCombinacoes($payload);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

Pedidos Vendas
--------------

[](#pedidos-vendas)

[Ver documentação](https://developer.bling.com.br/referencia#/Pedidos%20-%20Vendas)

### Criar um pedido de venda

[](#criar-um-pedido-de-venda)

[Ver documentação](https://developer.bling.com.br/referencia#/Pedidos%20-%20Vendas/post_pedidos_vendas)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $payload = [...];
        $response = $bling->pedidosVendas()->criar($payload);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Atualizar um pedido de venda

[](#atualizar-um-pedido-de-venda)

[Ver documentação](https://developer.bling.com.br/referencia#/Pedidos%20-%20Vendas/put_pedidos_vendas__idPedidoVenda_)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $idPedidoVenda = 123456789;
        $payload = [...];
        $response = $bling->pedidosVendas()->atualizar($idPedidoVenda, $payload);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Remover um pedido de venda

[](#remover-um-pedido-de-venda)

[Ver documentação](https://developer.bling.com.br/referencia#/Pedidos%20-%20Vendas/delete_pedidos_vendas__idPedidoVenda_)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $idPedidoVenda = 123456789;
        $response = $bling->pedidosVendas()->remover($idPedidoVenda);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Remover múltiplos pedidos de vendas

[](#remover-múltiplos-pedidos-de-vendas)

[Ver documentação](https://developer.bling.com.br/referencia#/Pedidos%20-%20Vendas/delete_pedidos_vendas)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $idPedidoVenda = 123456789;
        $response = $bling->pedidosVendas()->removerMultiplos([$idPedidoVenda]);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Buscar um pedido de venda

[](#buscar-um-pedido-de-venda)

[Ver documentação](https://developer.bling.com.br/referencia#/Pedidos%20-%20Vendas/get_pedidos_vendas__idPedidoVenda_)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $idPedidoVenda = 123456789;
        $response = $bling->pedidosVendas()->buscar($idPedidoVenda);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Buscar todos os pedidos de venda

[](#buscar-todos-os-pedidos-de-venda)

[Ver documentação](https://developer.bling.com.br/referencia#/Pedidos%20-%20Vendas/get_pedidos_vendas__idPedidoVenda_)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $response = $bling->pedidosVendas()->buscarTodos();
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Buscar todos os pedidos de venda

[](#buscar-todos-os-pedidos-de-venda-1)

[Ver documentação](https://developer.bling.com.br/referencia#/Pedidos%20-%20Vendas/get_pedidos_vendas)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $response = $bling->pedidosVendas()->buscarTodos();
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Alterar a situação de um pedido de venda

[](#alterar-a-situação-de-um-pedido-de-venda)

[Ver documentação](https://developer.bling.com.br/referencia#/Pedidos%20-%20Vendas/patch_pedidos_vendas__idPedidoVenda__situacoes__idSituacao_)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $idPedidoVenda = 123456789;
        $idSituacao = 123456789;
        $response = $bling->pedidosVendas()->alterarSituacao($idPedidoVenda, $idSituacao);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Lançar estoque de um pedido de venda especificando o depósito

[](#lançar-estoque-de-um-pedido-de-venda-especificando-o-depósito)

[Ver documentação](https://developer.bling.com.br/referencia#/Pedidos%20-%20Vendas/post_pedidos_vendas__idPedidoVenda__lancar_estoque__idDeposito_)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $idPedidoVenda = 123456789;
        $idDeposito = 123456789;
        $response = $bling->pedidosVendas()->lancaEstoquePorDeposito($idPedidoVenda, $idDeposito);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Lançar estoque de um pedido de venda no depósito padrão

[](#lançar-estoque-de-um-pedido-de-venda-no-depósito-padrão)

[Ver documentação](https://developer.bling.com.br/referencia#/Pedidos%20-%20Vendas/post_pedidos_vendas__idPedidoVenda__lancar_estoque__idDeposito_)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $idPedidoVenda = 123456789;
        $response = $bling->pedidosVendas()->lancaEstoque($idPedidoVenda);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Estornar o estoque de um pedido de venda

[](#estornar-o-estoque-de-um-pedido-de-venda)

[Ver documentação](https://developer.bling.com.br/referencia#/Pedidos%20-%20Vendas/post_pedidos_vendas__idPedidoVenda__estornar_estoque)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $idPedidoVenda = 123456789;
        $response = $bling->pedidosVendas()->estornarEstoque($idPedidoVenda);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Lançar as contas de um pedido de venda

[](#lançar-as-contas-de-um-pedido-de-venda)

[Ver documentação](https://developer.bling.com.br/referencia#/Pedidos%20-%20Vendas/post_pedidos_vendas__idPedidoVenda__lancar_contas)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $idPedidoVenda = 123456789;
        $response = $bling->pedidosVendas()->lancarContas($idPedidoVenda);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Estornar as contas de um pedido de venda

[](#estornar-as-contas-de-um-pedido-de-venda)

[Ver documentação](https://developer.bling.com.br/referencia#/Pedidos%20-%20Vendas/post_pedidos_vendas__idPedidoVenda__estornar_contas)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $idPedidoVenda = 123456789;
        $response = $bling->pedidosVendas()->estornarContas($idPedidoVenda);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Gerar NFE de um pedido de venda

[](#gerar-nfe-de-um-pedido-de-venda)

[Ver documentação](https://developer.bling.com.br/referencia#/Pedidos%20-%20Vendas/post_pedidos_vendas__idPedidoVenda__gerar_nfe)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $idPedidoVenda = 123456789;
        $response = $bling->pedidosVendas()->gerarNfe($idPedidoVenda);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

### Gerar NFCE de um pedido de venda

[](#gerar-nfce-de-um-pedido-de-venda)

[Ver documentação](https://developer.bling.com.br/referencia#/Pedidos%20-%20Vendas/post_pedidos_vendas__idPedidoVenda__gerar_nfce)

```
    use PabloSanches\Bling\Client;

    try {
        $blingClient = Client::factory('');
        $idPedidoVenda = 123456789;
        $response = $bling->pedidosVendas()->gerarNfce($idPedidoVenda);
    } catch (\Exception $e) {
        // $e->getMessage();
    }
```

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance14

Infrequent updates — may be unmaintained

Popularity14

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity60

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~3 days

Total

13

Last Release

657d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/1846624?v=4)[Pablo Sanches](/maintainers/pablosanches)[@pablosanches](https://github.com/pablosanches)

---

Top Contributors

[![pablosanches](https://avatars.githubusercontent.com/u/1846624?v=4)](https://github.com/pablosanches "pablosanches (52 commits)")

---

Tags

phpapisdkv3Bling

###  Code Quality

TestsPHPUnit

Code StylePHP CS Fixer

### Embed Badge

![Health badge](/badges/pablosanches-bling-sdk/health.svg)

```
[![Health](https://phpackages.com/badges/pablosanches-bling-sdk/health.svg)](https://phpackages.com/packages/pablosanches-bling-sdk)
```

###  Alternatives

[openai-php/laravel

OpenAI PHP for Laravel is a supercharged PHP API client that allows you to interact with the Open AI API

3.7k7.6M74](/packages/openai-php-laravel)[hubspot/api-client

Hubspot API client

23414.2M16](/packages/hubspot-api-client)[php-opencloud/openstack

PHP SDK for OpenStack APIs. Supports BlockStorage, Compute, Identity, Images, Networking and Metric Gnocchi

2292.2M24](/packages/php-opencloud-openstack)[mailchimp/transactional

458.9M16](/packages/mailchimp-transactional)[resend/resend-php

Resend PHP library.

564.7M21](/packages/resend-resend-php)[checkout/checkout-sdk-php

Checkout.com SDK for PHP

553.3M7](/packages/checkout-checkout-sdk-php)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
