Documentação
Portal do Cliente

API de Facturação Electrónica

O Fact Flexi Connect é um serviço HTTP que permite a sistemas de terceiros — ERPs, softwares de facturação, plataformas SaaS — comunicarem com a API de Facturação Electrónica da AGT Angola (SIFP).

Porquê usar o Connect?

Integrar directamente com a API da AGT é complexo. É necessário:

  • Implementar assinatura digital JWS RS256 com certificados
  • Gerir múltiplos ambientes (homologação e produção)
  • Manter conexões TLS 1.2 com keep-alive
  • Lidar com erros e validações específicos da AGT

O Connect abstrai toda esta complexidade. O teu sistema envia um JSON simples e recebe a resposta da AGT.

Como funciona

A renderizar...

Características

CaracterísticaDescrição
AutenticaçãoAPI Key via header x-api-key ou Authorization: Bearer
Modelo v2Dados da empresa enviados em cada request (NIF + chave privada)
Assinatura digitalJWS RS256 automática
AmbientesHomologação (HML) e Produção (PROD)
Rate limiting60 req/min por API Key
LogsRegisto completo de todas as chamadas
ValidaçãoZod — erros de input apanhados antes de chegar à AGT
Respostas normalizadasConnect traduz respostas da AGT para formato consistente

Endpoints Disponíveis

Séries

MétodoRotaDescriçãoScope
POST/v2/seriesListar séries de numeraçãoseries:listar
POST/v2/series/solicitarSolicitar criação de sériefacturas:emitir

Documentos

MétodoRotaDescriçãoScope
POST/v2/documentos/emitirEmitir documentos fiscaisfacturas:emitir
POST/v2/documentos/statusConsultar estado de validaçãofacturas:consultar

Sistema

MétodoRotaDescrição
GET/healthVerificar estado do serviço

Modelo de Respostas

Todas as respostas seguem o mesmo formato:

{
  "success": true,
  // ... dados específicos do endpoint
}

Em caso de erro:

{
  "success": false,
  "error": "Descricao do erro",
  "code": "CODIGO_DO_ERRO",
  "details": {}  // opcional — detalhes de validação
}

Códigos de Erro Comuns

HTTPcodeSignificado
401UNAUTHORIZEDAPI Key ausente, inválida ou revogada
403FORBIDDENScope insuficiente para este endpoint
400INVALID_JSONCorpo do request não é JSON válido
400VALIDATION_ERRORCampos obrigatórios em falta ou inválidos
502AGT_ERRORErro de comunicação com a AGT

Guia de Início Rápido

  1. Autenticação — Obtém a tua API Key
  2. Listar Séries — Vê que séries estão disponíveis
  3. Solicitar Série — Cria séries novas se necessário
  4. Emitir Documento — Submete documentos à AGT
  5. Consultar Estado — Verifica se foram validados