Notas Fiscais (NF-e)
Nas respostas de leitura, contato.tipo_pessoa e contato.contribuinte podem
estar ausentes. O OpenAPI do Bling marca tipoPessoa e contribuinte como
writeOnly: sua obrigatoriedade aplica-se à requisição, conforme a
especificação OpenAPI 3.0.
O SDK usa NotasFiscaisContatoResponseDTO nessas respostas, preserva os valores
quando presentes e representa a ausência como None. to_json_object() omite
esses campos ausentes; não preenche valores fiscais por conta própria.
Essa distinção também vale para a listagem, a paginação e as leituras de NFC-e
que reutilizam o mesmo schema. NotasFiscaisContatoDTO e os modelos de criação e
alteração continuam exigindo ambos os campos. Os métodos públicos e seus aliases
mantêm as assinaturas; o tipo do contato retornado passa a ser a variante de
resposta. nome e numero_documento continuam obrigatórios, e os aliases e a
rejeição de chaves conflitantes permanecem ativos.
A geração faz essa projeção numa cópia temporária do OpenAPI, sem alterar
specs/bling-openapi-reference.json. A revisão de campos writeOnly obrigatórios
do schema versionado identificou somente esses dois campos; os demais campos
writeOnly já eram opcionais nas respostas. Contratos de outros recursos e
todos os request bodies são preservados por testes de regressão.
A projeção também percorre schemas inline aninhados (composições, itens de
arrays e propriedades), componentes reutilizáveis de resposta e respostas de
callbacks. As exigências são removidas somente no objeto que declara o campo;
os objetos pais, exemplos e componentes requestBodies permanecem intactos.
bling_erp_api.resources.nfe.NfeResource
Bases: BaseResource
Operações de notas fiscais eletrônicas (NF-e).
Este recurso mapeia os endpoints /nfe. Os métodos canônicos usam
português para acompanhar a documentação oficial; os métodos em inglês
continuam disponíveis como aliases de compatibilidade.
Para NFC-e use NfceResource (client.notas_fiscais_consumidor).
Source code in src/bling_erp_api/resources/base.py
listar
listar(
*,
pagina: int | None = None,
limite: int | None = None,
numero_loja: int | None = None,
id_transportador: int | None = None,
chave_acesso: str | None = None,
numero: str | None = None,
serie: str | None = None,
situacao: int | None = None,
tipo: int | None = None,
data_emissao_inicial: str | None = None,
data_emissao_final: str | None = None,
) -> NfeGetResponse200
Lista notas fiscais eletrônicas (NF-e).
Endpoint: GET /nfe
Obtém lista paginada de NF-e.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
pagina
|
int | None
|
N° da página (Bling: |
None
|
limite
|
int | None
|
Registros por página (Bling: |
None
|
numero_loja
|
int | None
|
N° da loja (Bling: |
None
|
id_transportador
|
int | None
|
ID do transportador (Bling: |
None
|
chave_acesso
|
str | None
|
Chave de acesso da NF-e (Bling: |
None
|
numero
|
str | None
|
N° da nota fiscal (Bling: |
None
|
serie
|
str | None
|
Série da nota fiscal (Bling: |
None
|
situacao
|
int | None
|
Situação (Bling: |
None
|
tipo
|
int | None
|
Tipo (Bling: |
None
|
data_emissao_inicial
|
str | None
|
Data de emissão inicial (Bling: |
None
|
data_emissao_final
|
str | None
|
Data de emissão final (Bling: |
None
|
Returns:
| Type | Description |
|---|---|
NfeGetResponse200
|
Bling API response. Response schemas: 200: NotasFiscaisDadosBaseDTO; 404: ErrorResponse |
Source code in src/bling_erp_api/resources/nfe.py
iterar
iterar(
*,
pagina: int | None = None,
limite: int | None = None,
numero_loja: int | None = None,
id_transportador: int | None = None,
chave_acesso: str | None = None,
numero: str | None = None,
serie: str | None = None,
situacao: int | None = None,
tipo: int | None = None,
data_emissao_inicial: str | None = None,
data_emissao_final: str | None = None,
) -> Iterator[JsonObject]
Itera pelas NF-e página a página.
Endpoint: GET /nfe (via paginação automática)
Aceita os mesmos filtros de listar() e busca novas páginas enquanto
o Bling retornar registros no envelope data.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
pagina
|
int | None
|
N° da página (Bling: |
None
|
limite
|
int | None
|
Registros por página (Bling: |
None
|
numero_loja
|
int | None
|
N° da loja (Bling: |
None
|
id_transportador
|
int | None
|
ID do transportador (Bling: |
None
|
chave_acesso
|
str | None
|
Chave de acesso da NF-e (Bling: |
None
|
numero
|
str | None
|
N° da nota fiscal (Bling: |
None
|
serie
|
str | None
|
Série da nota fiscal (Bling: |
None
|
situacao
|
int | None
|
Situação (Bling: |
None
|
tipo
|
int | None
|
Tipo (Bling: |
None
|
data_emissao_inicial
|
str | None
|
Data de emissão inicial (Bling: |
None
|
data_emissao_final
|
str | None
|
Data de emissão final (Bling: |
None
|
Returns:
| Type | Description |
|---|---|
Iterator[JsonObject]
|
Iterator sobre os itens da resposta. |
Source code in src/bling_erp_api/resources/nfe.py
obter
Obtém uma NF-e.
Endpoint: GET /nfe/{idNotaFiscal}
Obtém uma nota fiscal eletrônica pelo ID.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
id_nota_fiscal
|
int
|
ID da nota fiscal (Bling: |
required |
Returns:
| Type | Description |
|---|---|
NfeIdNotaFiscalGetResponse200
|
Bling API response. Response schemas: 200: NotasFiscaisDadosGetDTO; 404: ErrorResponse |
Source code in src/bling_erp_api/resources/nfe.py
criar
Cria uma NF-e.
Endpoint: POST /nfe
Cria uma nova nota fiscal eletrônica.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
dados
|
NfePostRequest
|
Dados da NF-e. Request body schema: NotasFiscaisDadosPostDTO |
required |
Returns:
| Type | Description |
|---|---|
NfePostResponse201
|
Bling API response. Response schemas: 201: BasePostResponse; 400: ErrorResponse |
Source code in src/bling_erp_api/resources/nfe.py
alterar
Altera uma NF-e.
Endpoint: PUT /nfe/{idNotaFiscal}
Altera uma nota fiscal eletrônica pelo ID.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
id_nota_fiscal
|
int
|
ID da nota fiscal (Bling: |
required |
dados
|
NfeIdNotaFiscalPutRequest
|
Dados da NF-e para atualização. Request body schema: NotasFiscaisDadosPostDTO |
required |
Returns:
| Type | Description |
|---|---|
NfeIdNotaFiscalPutResponse200
|
Bling API response. Response schemas: 200: NotasFiscaisDadosGetDTO; 400: ErrorResponse; 404: ErrorResponse |
Source code in src/bling_erp_api/resources/nfe.py
remover_varios
Remove múltiplas NF-e.
Endpoint: DELETE /nfe
Remove múltiplas notas fiscais eletrônicas pelos IDs.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
ids_notas
|
Sequence[int]
|
IDs das notas fiscais (Bling: |
required |
Returns:
| Type | Description |
|---|---|
NfeDeleteResponse200
|
Bling API response. Response schemas: 200: NotasFiscaisExclusaoDTO; 204: NoContent; 400: ErrorResponse |
Source code in src/bling_erp_api/resources/nfe.py
autorizar
autorizar(
id_nota_fiscal: int, *, enviar_email: bool | None = None
) -> NfeIdNotaFiscalEnviarPostResponse200
Autoriza (envia para a SEFAZ) uma NF-e.
Endpoint: POST /nfe/{idNotaFiscal}/enviar
Envia uma NF-e para autorização da SEFAZ.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
id_nota_fiscal
|
int
|
ID da nota fiscal (Bling: |
required |
enviar_email
|
bool | None
|
Enviar e-mail após autorização (Bling: |
None
|
Returns:
| Type | Description |
|---|---|
NfeIdNotaFiscalEnviarPostResponse200
|
Bling API response. Response schemas: 200: NotasFiscaisDadosGetDTO; 400: ErrorResponse; 404: ErrorResponse |
Source code in src/bling_erp_api/resources/nfe.py
lancar_contas
Lança as contas de uma NF-e.
Endpoint: POST /nfe/{idNotaFiscal}/lancar-contas
Lança as contas a pagar/receber geradas a partir de uma NF-e.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
id_nota_fiscal
|
int
|
ID da nota fiscal (Bling: |
required |
Returns:
| Type | Description |
|---|---|
JsonObject
|
Bling API response. Response schemas: 204: NoContent; 400: ErrorResponse; 404: ErrorResponse |
Source code in src/bling_erp_api/resources/nfe.py
estornar_contas
Estorna as contas de uma NF-e.
Endpoint: POST /nfe/{idNotaFiscal}/estornar-contas
Estorna as contas a pagar/receber vinculadas a uma NF-e.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
id_nota_fiscal
|
int
|
ID da nota fiscal (Bling: |
required |
Returns:
| Type | Description |
|---|---|
JsonObject
|
Bling API response. Response schemas: 204: NoContent; 400: ErrorResponse; 404: ErrorResponse |
Source code in src/bling_erp_api/resources/nfe.py
lancar_estoque
Lança o estoque de uma NF-e.
Endpoint: POST /nfe/{idNotaFiscal}/lancar-estoque[/{idDeposito}]
Lança o estoque de uma NF-e, opcionalmente em um depósito específico.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
id_nota_fiscal
|
int
|
ID da nota fiscal (Bling: |
required |
id_deposito
|
int | None
|
ID do depósito (Bling: |
None
|
Returns:
| Type | Description |
|---|---|
JsonObject
|
Bling API response. Response schemas: 204: NoContent; 400: ErrorResponse; 404: ErrorResponse |
Source code in src/bling_erp_api/resources/nfe.py
estornar_estoque
Estorna o estoque de uma NF-e.
Endpoint: POST /nfe/{idNotaFiscal}/estornar-estoque
Estorna o estoque lançado de uma NF-e.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
id_nota_fiscal
|
int
|
ID da nota fiscal (Bling: |
required |
Returns:
| Type | Description |
|---|---|
JsonObject
|
Bling API response. Response schemas: 204: NoContent; 404: ErrorResponse |
Source code in src/bling_erp_api/resources/nfe.py
obter_documento_nota_fiscal
obter_documento_nota_fiscal(
chave_acesso: str, *, formato: str | None = None
) -> NfeDocumentoChaveAcessoGetResponse200
Obtém o documento (XML/DANFE) de uma NF-e.
Endpoint: GET /nfe/documento/{chaveAcesso}
Obtém o documento de uma NF-e pela chave de acesso.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
chave_acesso
|
str
|
Chave de acesso da NF-e (Bling: |
required |
formato
|
str | None
|
Formato do documento: pdf ou xml (Bling: |
None
|
Returns:
| Type | Description |
|---|---|
NfeDocumentoChaveAcessoGetResponse200
|
Bling API response. Response schemas: 200: NotasFiscaisDocumentoDTO; 400: ErrorResponse; 404: ErrorResponse |