Pular para o conteúdo principal
Recursos para IAAbra o contexto completo da documentação em Markdown para ChatGPT, Claude, Cursor, Copilot e outros agentes.

SDK para Python

Comece a usar rapidamente a ACBr API com o nosso SDK para Python! O SDK é uma biblioteca open source cujo código-fonte completo está disponível no GitHub:

Requisitos

Python 2.7 e 3.4+.

As dependências (urllib3, six e python-dateutil) são instaladas automaticamente.

Instalação

Escolha uma das formas abaixo para adicionar o SDK ao seu projeto.

Via pip direto do GitHub (recomendado)

Instala o pacote diretamente do repositório. Execute dentro do ambiente virtual (venv) do seu projeto:

pip install "git+https://github.com/projeto-acbr-oficial/acbrapi-sdk-python.git"

Fixando a branch main (ou troque por uma tag/commit quando disponível):

pip install "git+https://github.com/projeto-acbr-oficial/acbrapi-sdk-python.git@main"

No requirements.txt do seu projeto:

acbrapi-sdk @ git+https://github.com/projeto-acbr-oficial/acbrapi-sdk-python.git@main

Em alguns ambientes o pip precisa de permissão de root: use sudo pip install ....

A partir do código-fonte

Clone o repositório e instale via Setuptools:

python setup.py install --user

(ou sudo python setup.py install para instalar para todos os usuários)

Utilização

Depois de instalar por qualquer um dos métodos acima, importe o pacote:

import acbrapi_sdk

Obtendo o token de acesso

O processo de autenticação da ACBr API envolve dois passos:

O primeiro passo deve ser feito no console da ACBr API, enquanto o segundo você deve fazer manualmente. A geração do token não é definida pela ACBr API, mas sim pelo padrão OAuth2. A seguir uma sugestão básica de implementação, usando a biblioteca requests:

import os
import requests

def get_access_token(scope):
response = requests.post(
'https://auth.acbr.api.br/realms/ACBrAPI/protocol/openid-connect/token',
data={
'grant_type': 'client_credentials',
'client_id': os.environ['ACBRAPI_CLIENTID'],
'client_secret': os.environ['ACBRAPI_CLIENTSECRET'],
'scope': scope, # defina o scope a ser usado
},
)
response.raise_for_status()
return response.json()['access_token']

Criando o client

Com um token de acesso em mãos, crie a Configuration e o ApiClient:

import acbrapi_sdk

# O host é opcional; o padrão é o ambiente de produção https://prod.acbr.api.br
configuration = acbrapi_sdk.Configuration(
host='https://prod.acbr.api.br'
)
configuration.access_token = get_access_token('cep cnpj')

O prefixo Bearer é adicionado automaticamente pelo SDK — informe apenas o token em access_token.

Para usar o ambiente de homologação, informe host='https://hom.acbr.api.br'. Consulte o configuration.py para a lista completa de parâmetros de configuração suportados (proxy, timeout, verificação de SSL, entre outros).

Executando os métodos

Todos os endpoints da API estão disponíveis nas classes de API, agrupados de acordo com o serviço: CepApi, CnpjApi, EmpresaApi, NfeApi, NfceApi, NfseApi, CteApi, CteOsApi, MdfeApi, NfcomApi, DceApi, DistribuioNFEApi, EmailApi, ContaApi e DebugApi.

Use o ApiClient como context manager para garantir que as conexões sejam liberadas ao final:

with acbrapi_sdk.ApiClient(configuration) as api_client:
api_instance = acbrapi_sdk.CepApi(api_client)
endereco = api_instance.consultar_cep('80030030')
print(endereco.logradouro, endereco.municipio, endereco.uf)

Guia rápido

from __future__ import print_function

import acbrapi_sdk
from acbrapi_sdk.rest import ApiException
from pprint import pprint

# Define o host; o padrão é https://prod.acbr.api.br
# Veja configuration.py para a lista de parâmetros de configuração suportados.
configuration = acbrapi_sdk.Configuration(
host='https://prod.acbr.api.br'
)

# Configura o token de acesso OAuth2 para autorização: oauth2
configuration.access_token = 'YOUR_ACCESS_TOKEN'

# Abre um contexto com uma instância do cliente da API
with acbrapi_sdk.ApiClient(configuration) as api_client:
# Cria uma instância da classe da API
api_instance = acbrapi_sdk.CepApi(api_client)
cep = '80030030' # str | CEP sem máscara.

try:
# Consultar endereço através do CEP
api_response = api_instance.consultar_cep(cep)
pprint(api_response)
except ApiException as e:
print("Exceção ao chamar CepApi->consultar_cep: %s\n" % e)

Exemplo com tratamento de erros

import acbrapi_sdk
from acbrapi_sdk.rest import ApiException

configuration = acbrapi_sdk.Configuration()
configuration.access_token = get_access_token('cep cnpj')

with acbrapi_sdk.ApiClient(configuration) as api_client:
# Consulta de CEP
cep_api = acbrapi_sdk.CepApi(api_client)
endereco = cep_api.consultar_cep('80030030')
print(endereco)

# Consulta de CNPJ
cnpj_api = acbrapi_sdk.CnpjApi(api_client)
try:
empresa = cnpj_api.consultar_cnpj('08421842000190')
print(empresa.razao_social)
print(empresa.endereco.municipio, empresa.endereco.uf)
except ApiException as e:
print('Erro ao consultar o CNPJ. Status:', e.status)
print(e.body)

Referência completa

O repositório do GitHub contém a lista de todos os endpoints e métodos correspondentes, classes de modelo, parâmetros, e mais — na pasta docs há uma página de documentação para cada API e cada modelo. Visite o repositório para uma referência completa do SDK para Python: