Documentação

Instalação, API e o que a lei diz — sem rodeios.

Tudo aqui vem directamente do estado real do projecto, não de uma promessa. Onde algo ainda não está validado, dizemos isso explicitamente.

Instalação

Servidor próprio

O pipeline de build empacota todos os módulos (funcionais + o conector l10n_pt_arxi_signing_ws) com um MANIFEST.json com hash SHA-256 por módulo:

python3 fiscaldoo-infra/build/build_package.py \
  --fiscaldoo-deploy /caminho/para/fiscaldoo-deploy/fiscaldoo \
  --connector fiscaldoo-connector-odoo

# produz dist/<versão>-<hash-curto>.tar.gz

Extrai no servidor e acrescenta ao addons_path — nunca substitui o que já lá está:

<odoo>/addons,<extraído>/addons,<extraído>/community
Requer Postgres 16+ — o Odoo 20 usa ANY_VALUE(), que o Postgres 15 não tem. Achado confirmado a testar o módulo contra um Odoo real, não assumido.

Por omissão o conector corre em modo mock — nunca liga a lado nenhum, mesmo em bases de teste. Para ligar ao serviço de assinatura real:

ParâmetroValor
l10n_pt_arxi_signing_ws.transportreal
l10n_pt_arxi_signing_ws.real_enabledTrue

Odoo.sh

Este caminho ainda não foi validado contra um Odoo.sh real (é a prova de conceito PC-3 do plano, por correr). O que já está confirmado: o conector não usa binários nem pacotes de sistema — só Python puro + requirements.txt, que é o que o Odoo.sh aceita por submódulo git.

Passo planeado: fiscaldoo-connector-odoo como submódulo git do repositório do Odoo.sh, com as dependências Python num requirements.txt na raiz.

API

REST, JSON. Especificação completa em openapi/fiscaldoo.yaml — gerada a partir dos modelos reais do código, não escrita à parte.

MétodoCaminhoPara quê
POST/v1/documents/signAssinar um documento certificado
GET/v1/chain/summaryContagem de documentos assinados por série
POST/v1/instances/activateActivar uma instância com código de uso único
POST/v1/oauth/tokenTrocar segredo por um token de 15 min
GET/v1/licenses/currentLicença assinada em vigor (7 dias)
POST/v1/instances/{id}/revokeRevogar — pára emissão nova, nunca apaga dados
PUT/GET/DELETE/v1/credentials/{client_id}Credencial de subutilizador AT (nunca a principal)
GET/v1/healthzEstado de saúde — o mesmo que a página de estado pública usa

FAQ legal

Nada aqui é aconselhamento jurídico final. Em caso de dúvida, consultar o Plano Director completo e um jurista.

O fiscaldoo é "o" software certificado?

Não exactamente. O software certificado (n.º 2790) é o produto da ARXI — Odoo + os módulos de localização portuguesa. O fiscaldoo é a marca comercial de como esse produto se vende e opera como serviço. O número 2790 nunca se "empresta" a terceiros.

Se eu sou parceiro e instalo o fiscaldoo num cliente, sou responsável por alguma coisa?

Provavelmente sim. Um parceiro que instala, parametriza ou intervém tecnicamente enquadra-se como "instalador" nos termos do art. 11.º do DL 28/2019 — com obrigações próprias de integridade, distintas das da ARXI (produtor) e do cliente final. O contrato de parceiro define a repartição exacta.

A assinatura ser feita num servidor fora da minha máquina é legal?

Não é, por si só, ilegal — mas também não está confirmado por escrito pela AT (é a pergunta mais crítica do plano). A arquitectura foi desenhada para cumprir a letra da lei — chave sob controlo exclusivo do produtor, documento só "emitido" com assinatura válida guardada, numeração/cadeia respeitada — mas falta confirmação expressa antes de um lançamento comercial.

Posso guardar as credenciais da AT dos meus clientes?

Sim, desde que sejam credenciais de subutilizador — nunca as credenciais principais do Portal das Finanças — com autorização contratual do cliente, cifradas, com possibilidade de revogação.

E os dados de salários?

O processamento salarial centralizado é juridicamente possível, com a ARXI a actuar como subcontratante (RGPD art. 28.º) — mas exige um Acordo de Tratamento de Dados por cliente, isolamento, cifragem, minimização (dados de saúde/filiação sindical são categoria especial, art. 9.º), e uma avaliação de impacto própria.

Posso migrar um cliente doutro software certificado?

Sim, preservando o histórico fiscal anterior sem o reescrever nem gerar novas assinaturas para documentos antigos — entram como "documentos integrados". Séries novas comunicam-se à AT normalmente.

Os módulos actuais podem ser redistribuídos livremente?

Não — são proprietários, confirmado por auditoria directa ao código. Só um ficheiro tem uma excepção LGPL-3 documentada e isolada, por conter código do próprio Odoo.