Note: This repository and the majority of the documentation and code are in Portuguese, as it is a template applied to Brazil. However, contributions and questions in English are also welcome.
Este projeto fornece um template para a emissão, cancelamento e busca de notas fiscais eletrônicas de serviços através do sistema Nota Carioca, utilizando Python e Abstra. O foco deste repositório é auxiliar desenvolvedores e empresas brasileiras a automatizar esses processos.
Para customizar este template para o seu time e explorar ainda mais possibilidades, agende uma demonstração aqui.
Para utilizar este projeto, é necessário realizar algumas configurações iniciais:
-
Certificado Digital A1: É necessário possuir um certificado digital A1 válido. As credenciais deste certificado deverão ser configuradas no arquivo
.env
deste projeto. -
Variáveis de ambiente: Crie um arquivo
.env
na raiz do projeto e adicione as seguintes variáveis com as credenciais do seu certificado digital A1:INVOICE_CERT_PATH="caminho/para/o/seu/certificado.pfx" INVOICE_CERT_PASSWORD="senhaDoCertificado"
-
Dependências: Para instalar as dependências necessárias para este projeto, um arquivo
requirements.txt
é fornecido. Este arquivo inclui todas as bibliotecas necessárias.Siga estes passos para instalar as dependências:
-
Abra seu terminal e navegue até o diretório do projeto.
-
Execute o seguinte comando para instalar as dependências a partir do
requirements.txt
:pip install -r requirements.txt
-
-
Configuração de Tabelas: Configure suas tabelas de banco de dados no Abstra Cloud Tables de acordo com o schema definido em
abstra-tables.json
.Para criar automaticamente o schema da tabela, siga estes passos:
-
Abra seu terminal e navegue até o diretório do projeto.
-
Execute o seguinte comando para instalar o schema da tabela a partir de
abstra-tables.json
:abstra restore
Para obter orientações sobre como criar e gerenciar tabelas no Abstra, consulte a documentação do Abstra Tables.
-
-
Controle de Acesso: O formulário gerado é protegido por padrão. Para testes locais, nenhuma configuração adicional é necessária. No entanto, para uso na nuvem, é necessário adicionar suas próprias regras de acesso.
Para obter mais informações sobre como configurar o controle de acesso, consulte a documentação para controle de acesso da Abstra.
-
Uso Local: Para acesso ao editor local com o projeto, utilize o seguinte comando:
abstra editor caminho/para/a/pasta/do/seu/projeto/
Este projeto oferece três funcionalidades principais: emitir, cancelar e buscar notas fiscais. Para interagir com as notas fiscais (emitir, cancelar e buscar), utilize o form Send Invoice, arquivo send_invoice.py
. Este arquivo contém a lógica para as três funcionalidades:
- Emissão de Notas Fiscais: Envia os dados da nota fiscal para o sistema Nota Carioca.
- Cancelamento de Notas Fiscais: Envia uma solicitação de cancelamento para o sistema Nota Carioca.
- Busca de Notas Fiscais: Recupera informações de uma nota fiscal específica por período consultando o sistema Nota Carioca.
-
send_invoice.py: Este é o arquivo principal do projeto. Ele contém a lógica para emitir, cancelar e buscar notas fiscais no sistema Nota Carioca. Dependendo da opção escolhida pelo usuário, ele executará a função correspondente.
-
send_email_with_invoice_link.py: Este script é responsável pelo envio do link da nota emitida para o email cadastrado no formulário "Send Invoice".
Se você estiver interessado em personalizar este template para a sua equipe em menos de 30 minutos, agende uma sessão de personalização aqui.