Autenticação & Autorização
A API utiliza o mecanismo Basic Authentication para validar e
autorizar o acesso dos produtores de software.
O acesso é concedido através de um par de credenciais (username e
password) emitido pela entidade gestora da Faturação Eletrónica.
Estas credenciais devem ser enviadas em todas as chamadas aos serviços protegidos da API.
Obtenção das Credenciais
Para solicitar as credenciais de acesso, o produtor de software deve enviar um e-mail formal para:
📧 produtores.dfe.dcrr.agt@minfin.gov.ao
O pedido deve conter:
-
Nome da Empresa
-
NIF da Empresa
Funcionamento do Basic Auth
O Basic Auth consiste em enviar as credenciais codificadas em Base64 no cabeçalho HTTP:
Authorization: Basic <Base64(username:password)>
Exemplo de codificação:
Se as credenciais forem:
-
Username: cliente123
-
Password: s3nh@F0rte!
Concatenação antes do Base64: cliente123:s3nh@F0rte!
Após Base64: Y2xpZW50ZTEyMzpzM25oQEYwcnRlIQ==
Exemplo de Header HTTP Completo
Requisição POST
POST /sigt/fe/v1/registarFactura HTTP/1.1
Host: https://sifphml.minfin.gov.ao
Authorization: Basic Y2xpZW50ZTEyMzpzM25oQEYwcnRlIQ==
Content-Type: application/json
Accept: application/json
Content-Length: 524
Exemplo em cURL
curl -X POST "https://sifphml.minfin.gov.ao/sigt/fe/v1/registarFactura"
-u cliente123:"s3nh@F0rte!"
-H "Accept: application/json"
Nota: O curl já faz o Base64 automaticamente quando usamos -u.
Exemplo em JavaScript (Fetch API)
const auth = btoa("cliente123:s3nh@F0rte!");
fetch("https://sifphml.minfin.gov.ao/sigt/fe/v1/registarFactura ",{
method: "POST",
headers:{
"Authorization": `Basic $\{auth}`,
"Content-Type": "application/json",
"Accept": "application/json"
}
}).then(res => res.json()).then(console.log);
Exemplo em C# (HttpClient)
var client = new HttpClient();
var byteArray = Encoding.ASCII.GetBytes("cliente123:s3nh@F0rte!");
client.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Basic",Convert.ToBase64String(byteArray));
var response = await client.GetAsync("https://sifphml.minfin.gov.ao/sigt/fe/v1/registarFactura");
var content = await response.Content.ReadAsStringAsync();