Documentação Ryakeza

Guia completo para configurar e utilizar o sistema de faturação Ryakeza

v2.1.3 Última atualização: Nov 2025

Introdução

O Ryakeza é um sistema de faturação completo desenvolvido especificamente para o mercado angolano, com suporte nativo para o formato SAF-T AO.

Nota: Esta documentação cobre a versão 2.1.3 do Ryakeza. Certifique-se de que está utilizando a versão correta.

Funcionalidades Principais

  • Emissão de faturas, recibos e notas de crédito
  • Exportação SAF-T AO
  • Gestão de clientes e fornecedores
  • Relatórios financeiros
  • API REST para integração
  • Multi-utilizador com permissões

Instalação

Siga estes passos para instalar o Ryakeza no seu servidor.

Requisitos do Sistema

Componente Versão Mínima Recomendado
PHP 8.0 8.1 ou superior
MySQL 5.7 8.0
Apache 2.4 2.4 com mod_rewrite
Espaço em disco 500MB 1GB ou mais

Instalação Automática

Para uma instalação rápida, utilize o script de instalação:

Terminal
# Baixar o instalador
curl -O https://ryakeza.ao/installer.sh

# Executar o instalador
chmod +x installer.sh
./installer.sh

Instalação Manual

Para instalação manual, siga estes passos:

Terminal
# 1. Extrair os ficheiros
tar -xzf ryakeza-v2.1.3.tar.gz

# 2. Mover para o diretório web
sudo mv ryakeza /var/www/html/

# 3. Configurar permissões
sudo chown -R www-data:www-data /var/www/html/ryakeza
sudo chmod -R 755 /var/www/html/ryakeza/storage

# 4. Criar base de dados MySQL
mysql -u root -p -e "CREATE DATABASE ryakeza;"
mysql -u root -p -e "CREATE USER 'ryakeza_user'@'localhost' IDENTIFIED BY 'senha_segura';"
mysql -u root -p -e "GRANT ALL PRIVILEGES ON ryakeza.* TO 'ryakeza_user'@'localhost';"
mysql -u root -p -e "FLUSH PRIVILEGES;"

Primeiros Passos

Após a instalação, siga este guia para configurar o sistema.

Configuração Inicial

  1. Acesse o sistema através do seu navegador: https://seu-dominio.ao/ryakeza
  2. Complete o assistente de configuração inicial
  3. Configure os dados da sua empresa
  4. Adicione os primeiros utilizadores
Importante: Certifique-se de configurar corretamente os dados fiscais da sua empresa antes de emitir documentos.

Configuração de Empresa

Exemplo de configuração via API:

PHP
 'Minha Empresa Lda',
    'nif' => '5000123456',
    'endereco' => 'Rua Comercial, 123',
    'municipio' => 'Luanda',
    'telefone' => '+244 222 123 456'
];

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.ryakeza.ao/v1/empresa');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($empresa));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json',
    'Authorization: Bearer ' . $token
]);

$response = curl_exec($ch);
curl_close($ch);

echo $response;
JavaScript
const empresa = {
    nome: 'Minha Empresa Lda',
    nif: '5000123456',
    endereco: 'Rua Comercial, 123',
    municipio: 'Luanda',
    telefone: '+244 222 123 456'
};

fetch('https://api.ryakeza.ao/v1/empresa', {
    method: 'POST',
    headers: {
        'Content-Type': 'application/json',
        'Authorization': `Bearer ${token}`
    },
    body: JSON.stringify(empresa)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Erro:', error));
cURL
curl -X POST \
  https://api.ryakeza.ao/v1/empresa \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -d '{
    "nome": "Minha Empresa Lda",
    "nif": "5000123456",
    "endereco": "Rua Comercial, 123",
    "municipio": "Luanda",
    "telefone": "+244 222 123 456"
}'

Autenticação API

A API do Ryakeza utiliza autenticação baseada em tokens JWT.

Obter Token de Acesso

cURL
curl -X POST \
  https://api.ryakeza.ao/v1/auth/login \
  -H 'Content-Type: application/json' \
  -d '{
    "email": "seu-email@empresa.ao",
    "password": "sua-senha"
}'

Resposta

{
    "success": true,
    "data": {
        "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
        "expires_in": 3600,
        "user": {
            "id": 1,
            "name": "João Silva",
            "email": "joao@empresa.ao"
        }
    }
}

Guia de Faturação

Aprenda a criar, editar e gerir faturas no sistema Ryakeza.

Dica: Antes de começar, certifique-se de ter cadastrado clientes e produtos/serviços no sistema.

Como Criar uma Fatura

Siga estes passos para criar sua primeira fatura:

Passo 1: Acessar o Módulo
  1. Aceda ao menu Faturação & Vendas
  2. Clique em Faturas ou Nova Fatura
  3. Selecione o tipo de documento (Fatura, Recibo, etc.)
Importante

Para empresas com NIF angolano, o número de fatura segue automaticamente a sequência configurada.

Passo 2: Dados do Cliente
  • Selecione um cliente existente ou cadastre um novo
  • O sistema preenche automaticamente o NIF e endereço
  • Verifique se os dados fiscais estão corretos
Obrigatório: Cliente com NIF válido para faturação formal.
Passo 3: Adicionar Itens
Interface do Sistema
1. Clique em "Adicionar Item"
2. Pesquise pelo produto/serviço
3. Insira quantidade e preço unitário
4. O sistema calcula automaticamente:
   - Total do item
   - Impostos aplicáveis
   - Descontos configurados
Passo 4: Configurar Pagamento
Campo Descrição Exemplo
Método de Pagamento Forma como será pago Transferência, Dinheiro, Cartão
Data de Vencimento Prazo para pagamento 30 dias após emissão
Referência Para controle interno PED-2025-001
Passo 5: Revisar e Emitir
Antes de emitir, verifique:
1. Dados do cliente corretos
2. Valores e impostos calculados
3. Condições de pagamento
4. Observações importantes

Como Editar uma Fatura

Para editar uma fatura já emitida:

  1. Vá para Faturas Emitidas
  2. Localize a fatura desejada
  3. Clique no botão Editar
  4. Apenas faturas com estado "Rascunho" podem ser editadas livremente
  5. Para faturas já emitidas, crie uma Nota de Crédito
Restrições: Faturas já pagas ou com estado "Emitido" não podem ser editadas diretamente. Utilize notas de crédito para correções.

Emissão de Recibos

Os recibos são documentos de recebimento que comprovam o pagamento de uma fatura ou serviço.

Quando Usar Recibos

Use recibos para:
  • ✅ Comprovativo de pagamento à vista
  • ✅ Serviços prestados imediatamente
  • ✅ Pagamentos parciais de faturas
  • ✅ Vendas diretas sem crédito
Não use recibos para:
  • ❌ Vendas a crédito (use fatura)
  • ❌ Operações sujeitas a IVA diferido
  • ❌ Quando precisa de fatura formal
  • ❌ Compras de ativos fixos

Diferença entre Fatura e Recibo

Característica Fatura Recibo
Finalidade Documento de venda Comprovativo de pagamento
Crédito Permite venda a crédito Pagamento à vista
Prazo Tem data de vencimento Pagamento imediato
IVA Declarável no SAF-T IVA imediato
Numeração Série própria (FT) Série própria (RC)

Criar Recibo a partir de Fatura

Para criar um recibo quando uma fatura é paga:

Fluxo do Sistema
1. Acesse a fatura pendente
2. Clique em "Registrar Pagamento"
3. Selecione método de pagamento
4. Insira valor pago
5. Sistema pergunta: "Emitir recibo?"
6. Clique em SIM para gerar recibo automático

SAF-T AO - Exportação Fiscal

O SAF-T (Standard Audit File for Tax) é um formato obrigatório para envio de informações fiscais à AGT.

Obrigatoriedade: Todas as empresas com contabilidade organizada devem enviar o SAF-T AO periodicamente.

Periodicidade de Envio

Tipo de Empresa Periodicidade Prazo
Grande Porte Mensal Até dia 25 do mês seguinte
Médio Porte Trimestral Até 45 dias após trimestre
Pequeno Porte Anual Até 31 de Janeiro

Gerar SAF-T AO no Ryakeza

Siga este passo-a-passo:

  1. Preparação
    • Certifique-se que todos os documentos do período estão fechados
    • Verifique se há documentos pendentes de validação
    • Confirme que os dados da empresa estão atualizados
  2. Configuração
    • Acesse Relatórios > SAF-T AO
    • Selecione o período fiscal
    • Escolha o tipo de exportação (Normal ou Simplificada)
  3. Validação
    • O sistema valida automaticamente todos os dados
    • Corrija eventuais erros indicados
    • Verifique os totais de cada imposto (IVA, IS)
  4. Exportação
    • Clique em "Exportar SAF-T"
    • Escolha o formato (XML padrão AGT)
    • O sistema gera o ficheiro com assinatura digital
  5. Envio
    • Faça download do ficheiro XML
    • Aceda ao portal da AGT
    • Faça upload do ficheiro
    • Guarde o comprovativo de envio

Validação do Ficheiro SAF-T

Antes do envio, valide seu ficheiro:

Comandos de Validação
# Validar estrutura XML
xmllint --schema SAFT-AO.xsd seu-ficheiro.xml

# Validar assinatura digital
openssl smime -verify -in seu-ficheiro.xml -noverify

# Verificar hash
sha256sum seu-ficheiro.xml

Erros Comuns e Soluções

Solução:
  1. Verifique se o NIF da empresa está correto em Configurações > Empresa
  2. Para clientes/fornecedores, valide os NIFs cadastrados
  3. Use o validador de NIF da AGT para verificar
  4. Para NIFs estrangeiros, use o formato correto: "999999999"

Solução:
  1. Verifique as taxas de imposto configuradas
  2. Confirme se os cálculos nas faturas estão corretos
  3. Use a função "Recalcular impostos" no sistema
  4. Verifique se há arredondamentos incorretos

Solução:
  1. Certifique-se que selecionou o período correto
  2. Verifique se não há documentos fora do período
  3. Confirme as datas de abertura e fecho do período
  4. Use o relatório de validação do sistema

Configurações do Sistema

Personalize o Ryakeza conforme as necessidades da sua empresa.

Configurações da Empresa

Acesse Sistema > Configurações para configurar:

Dados Fiscais
  • ✅ Nome e NIF da empresa
  • ✅ Endereço fiscal completo
  • ✅ Atividade económica (CAE)
  • ✅ Regime de IVA aplicável
Numeração
  • ✅ Sequência de faturas
  • ✅ Sequência de recibos
  • ✅ Prefixos personalizados
  • ✅ Número inicial por ano

Configurações de Licença

O sistema possui 4 níveis de licença com diferentes funcionalidades:

Funcionalidade Básico Médio Avançado Completo
Faturação
Inventário
Contabilidade
Recursos Humanos
CRM
API REST ✅ Limitada ✅ Completa

Ativar Módulos

Para ativar módulos adicionais:

Interface do Sistema
1. Acesse Configurações > Módulos
2. Selecione o módulo desejado:
   - Contabilidade
   - Tesouraria
   - Inventário
   - RH
   - CRM
3. Clique em "Ativar"
4. O sistema verifica a licença
5. Se autorizado, o módulo fica disponível

Gestão de Utilizadores e Permissões

Controle quem acede ao sistema e o que cada utilizador pode fazer.

Perfis de Utilizador

Administrador

Acesso total ao sistema, incluindo configurações e gestão de utilizadores.

  • ✅ Todas as funcionalidades
  • ✅ Gestão de utilizadores
  • ✅ Configurações do sistema
  • ✅ Relatórios completos
Gestor

Acesso à gestão operacional, sem permissões de administração.

  • ✅ Faturação e vendas
  • ✅ Gestão de clientes
  • ✅ Relatórios operacionais
  • ❌ Configurações do sistema
Colaborador

Acesso limitado a funções específicas conforme necessidade.

  • ✅ Emissão de documentos
  • ✅ Consulta básica
  • ❌ Alteração de dados
  • ❌ Relatórios sensíveis

Como Criar um Novo Utilizador

  1. Acesse Cadastros > Utilizadores
  2. Clique em
  3. Preencha:
    • Nome completo
    • Email (será o login)
    • Perfil (Admin, Gestor, Colaborador)
    • Senha temporária
  4. O sistema envia email de activação
  5. O utilizador define sua senha definitiva

Permissões Granulares

Para controlar permissões específicas:

Configuração de Permissões
Módulo: Faturação
  ☑ Criar faturas
  ☑ Editar faturas
  ☐ Anular faturas
  ☑ Ver todas as faturas
  ☐ Exportar faturas

Módulo: Clientes
  ☑ Ver clientes
  ☑ Adicionar clientes
  ☑ Editar clientes
  ☐ Excluir clientes
  ☐ Ver dados sensíveis

Módulo: Relatórios
  ☑ Relatórios de vendas
  ☑ Relatórios de stock
  ☐ Relatórios financeiros
  ☐ Exportar SAF-T

Guia Completo de Faturação

Domine todas as funcionalidades de faturação do Ryakeza.

Dica Pro: Utilize atalhos de teclado para agilizar o processo de faturação.

Criar Fatura - Guia Detalhado

Passo 1: Acesso e Seleção

  • Menu: Faturação & Vendas → Faturas
  • Atalho: Ctrl+F (em algumas páginas)
  • Tipos disponíveis:
    • Fatura Normal
    • Fatura-Recibo
    • Fatura Simplificada
    • Fatura Eletrónica
Importante: A numeração é automática e segue a sequência configurada.

Passo 2: Dados do Cliente

O sistema oferece várias formas de selecionar clientes:

Para clientes já cadastrados:

  • Busque por nome, NIF ou email
  • O sistema preenche automaticamente todos os dados
  • Verifique se o endereço de faturação está correto

Para criar um cliente rapidamente:

  • Clique em "Novo Cliente" na tela de fatura
  • Preencha apenas nome e NIF (obrigatório)
  • Os outros dados podem ser completados depois

Para clientes sem NIF (consumidor final):

  • Use o NIF genérico: 999999990
  • Marque a opção "Consumidor Final"
  • O sistema ajusta os impostos automaticamente

Passo 3: Edição de Faturas

Faturas podem ser editadas em diferentes estados:

Estado da Fatura O que pode editar Restrições
Rascunho Todos os dados Nenhuma
Emitida Observações, condições de pagamento Dados fiscais não podem ser alterados
Paga Apenas dados de contacto Para alterações fiscais, crie nota de crédito
Anulada Nenhuma edição Apenas visualização

Anular Faturas

Para anular uma fatura já emitida:

  1. Localize a fatura: Vá para "Faturas Emitidas"
  2. Verifique estado: Só pode anular faturas não pagas
  3. Clique em "Anular": Botão vermelho na lista
  4. Informe o motivo: Obrigatório para auditoria
  5. Confirme: A fatura fica com estado "Anulada"
Atenção: Faturas anuladas não podem ser reativadas. Para correções, use Nota de Crédito.

Notas de Crédito

Use notas de crédito para:

Casos de Uso
  • Devolução de mercadorias
  • Erro na fatura original
  • Desconto pós-faturação
  • Cancelamento parcial
Processo
  1. Selecione a fatura original
  2. Clique em "Criar Nota de Crédito"
  3. Ajuste os valores
  4. Emita a nota

Gestão de Recibos

Diferenças Técnicas

Aspecto Fatura Recibo
Natureza Jurídica Documento de venda Comprovativo de pagamento
IVA Líquido ou diferido Imediato
Crédito Fiscal Sim (para o cliente) Não
Numeração Série FT/FS Série RC
SAF-T AO Registo em vendas Registo em recebimentos

Criar Recibo Manualmente

Para criar um recibo sem faturas associadas:

Fluxo do Sistema
1. Menu: Faturação & Vendas → Recibos
2. Clique em "Novo Recibo"
3. Selecione o cliente
4. Adicione os itens/serviços
5. Informe método de pagamento
6. Emita o recibo
7. O sistema gera PDF automaticamente

SAF-T AO - Especificações Técnicas

Conformidade: O Ryakeza gera ficheiros SAF-T AO conforme a Portaria n.º 127/19 de 8 de Maio.

Processo de Geração

  • Preparação
    • Verifique se todos os documentos do período estão fechados
    • Certifique-se de que não há documentos pendentes
    • Valide os totais de IVA e IS
  • Configuração
    • Acesse: Relatórios → SAF-T AO
    • Selecione o período fiscal (MM/AAAA)
    • Escolha o tipo de exportação
  • Validação
    • O sistema valida automaticamente a consistência dos dados
    • Corrija eventuais erros indicados
    • Confirme os totais
  • Exportação
    • Clique em "Exportar SAF-T"
    • O sistema gera o ficheiro XML
    • Adiciona assinatura digital
  • Envio
    • Faça download do ficheiro XML
    • Acesse o portal da AGT
    • Faça upload do ficheiro
    • Guarde o comprovativo
  • Validação Técnica do Ficheiro

    Antes do envio, valide o ficheiro SAF-T:

    Validação Local
    # 1. Validar estrutura XML
    xmllint --noout --schema SAFT-AO.xsd seu-ficheiro.xml
    
    # 2. Validar assinatura
    openssl smime -verify -in seu-ficheiro.xml -noverify -inform DER
    
    # 3. Verificar hash SHA-256
    sha256sum seu-ficheiro.xml
    
    # 4. Validar contra DTD (opcional)
    xmllint --valid --noout seu-ficheiro.xml

    Erros Comuns e Soluções

    Causas:
    • NIF da empresa incorreto nas configurações
    • NIF de cliente/fornecedor mal formatado
    • NIF estrangeiro sem formatação correta
    Soluções:
    1. Verifique Configurações → Empresa → NIF
    2. Para NIFs angolanos: 9 dígitos numéricos
    3. Para NIFs estrangeiros: 999999999
    4. Use o validador da AGT: https://www.agt.minfin.gov.ao

    Causas:
    • Taxas de imposto configuradas incorretamente
    • Arredondamentos em cálculos
    • Documentos com valores manualmente alterados
    Soluções:
    1. Verifique as taxas em Cadastros → Impostos
    2. Use a função "Recalcular Impostos" nas faturas
    3. Configure arredondamento para 2 casas decimais
    4. Verifique documentos com valores manuais

    Causas:
    • Documentos fora do período selecionado
    • Datas de abertura/fecho incorretas
    • Período sobreposto com exportação anterior
    Soluções:
    1. Verifique as datas dos documentos
    2. Use o relatório de validação do sistema
    3. Certifique-se que o período está fechado
    4. Exporte períodos completos (mês/trimestre/ano)

    Configurações Avançadas

    Acesso: Configurações do sistema → Acesso apenas para administradores (nível 1).

    Configurações da Empresa

    Baseado no código PHP fornecido, o sistema gerencia:

    Dados Empresariais
    • empresa.nome - Nome comercial
    • empresa.nif - NIF fiscal
    • empresa.endereco - Endereço completo
    • empresa.email - Email principal
    • empresa.telefone - Contacto telefónico
    Configurações de Documentos
    • faturacao.prefixo_fatura - Prefixo FT
    • faturacao.prefixo_recibo - Prefixo RC
    • faturacao.numero_inicial - Sequência inicial
    • faturacao.modelo_pdf - Template de PDF
    • faturacao.auto_numero - Numeração automática

    Sistema de Licenciamento

    O Ryakeza possui 4 níveis de licença:

    Funcionalidade Básico Médio Avançado Completo
    Faturação Básica
    Inventário
    Contabilidade
    Recursos Humanos
    CRM
    API REST Completa Limitada Completa
    Suporte Prioritário 24/7

    Configurações de Faturação

    JavaScript - Gerenciador de Configurações
    // Exemplo de configurações disponíveis no sistema
    const configuracoesDisponiveis = {
        // Configurações da Empresa
        'empresa.nome': { descricao: 'Nome comercial da empresa', categoria: 'empresa' },
        'empresa.nif': { descricao: 'NIF fiscal da empresa', categoria: 'empresa' },
        'empresa.contabilidade': { descricao: 'Ativar módulo de Contabilidade?', categoria: 'empresa' },
        'empresa.rh': { descricao: 'Ativar módulo de RH?', categoria: 'empresa' },
        
        // Configurações Financeiras
        'financeiro.moeda_padrao': { descricao: 'Moeda padrão (AOA)', categoria: 'financeiro' },
        'financeiro.banco': { descricao: 'Banco padrão', categoria: 'financeiro' },
        'financeiro.iban': { descricao: 'IBAN da empresa', categoria: 'financeiro' },
        
        // Configurações de Faturação
        'faturacao.prefixo_fatura': { descricao: 'Prefixo para faturas (FT)', categoria: 'faturacao' },
        'faturacao.envio_automatico_email': { descricao: 'Enviar email automático?', categoria: 'faturacao' },
        
        // Configurações de Email
        'email.host': { descricao: 'Servidor SMTP', categoria: 'email' },
        'email.porta': { descricao: 'Porta SMTP', categoria: 'email' },
        
        // Configurações SAF-T
        'saft.versao': { descricao: 'Versão do SAF-T', categoria: 'saft' }
    };
    
    // Verificação de licença para módulos
    class GerenciadorLicencas {
        static modulosComLicenca = [
            'empresa.contabilidade',
            'empresa.tesouraria', 
            'empresa.inventario',
            'empresa.rh',
            'empresa.crm'
        ];
        
        static async validarAcessoModulo(modulo) {
            // Verifica se o módulo requer licença específica
            if (!this.modulosComLicenca.includes(modulo)) {
                return true;
            }
            
            // Consulta API para verificar licença
            const response = await fetch('api/licenca/verificar');
            const data = await response.json();
            
            return data.modulos_permitidos.includes(modulo);
        }
    }

    Módulos do Ryakeza

    O Ryakeza é um sistema modular que permite ativar funcionalidades conforme a licença e necessidades da sua empresa.

    Modularidade: Cada módulo pode ser ativado/desativado independentemente através das Configurações do Sistema.
    Módulo de Contabilidade
    Licença: Avançado/Completo
    Descrição

    Sistema contabilístico completo integrado com a faturação, permitindo gestão financeira detalhada e conformidade fiscal.

    Funcionalidades Principais
    • Plano de Contas: Estrutura personalizável conforme o PGC angolano
    • Lançamentos Contábeis: Automáticos a partir de faturas e manuais
    • Balancete: Geração automática por período
    • Demonstrações Financeiras: Balanço, Demonstração de Resultados
    • Conciliação Bancária: Integração com contas bancárias
    Configuração
    Ativar Módulo
    1. Acesse: Configurações → Módulos
    2. Localize "Contabilidade"
    3. Clique em "Ativar"
    4. Configure:
       - Plano de contas padrão
       - Contas de resultado
       - Período contabilístico
    5. Importe saldos iniciais (se aplicável)
    Requisitos
    • Licença Avançado ou Completo
    • Configuração: empresa.contabilidade = "SIM"
    • Utilizador nível 1 ou 2
    • Setup inicial: 30-60 minutos
    Integrações
    • Faturação → Lançamentos automáticos
    • Tesouraria → Conciliação bancária
    • RH → Folhas de salário
    • SAF-T → Exportação contabilística
    Exemplo de Integração
    Lançamento Automático de Fatura
    // Quando uma fatura é emitida, gera lançamentos contábeis
    public function gerarLancamentosContabeis($fatura_id) {
        $fatura = $this->getFatura($fatura_id);
        
        // Lançamento de débito (Cliente)
        $lancamento1 = [
            'conta_debito_id' => $this->getContaId('Clientes'),
            'conta_credito_id' => $this->getContaId('Vendas'),
            'descricao' => "Fatura {$fatura['numero']} - {$fatura['cliente_nome']}",
            'valor' => $fatura['total_sem_imposto'],
            'documento_id' => $fatura_id
        ];
        
        // Lançamento de IVA
        if ($fatura['iva_valor'] > 0) {
            $lancamento2 = [
                'conta_debito_id' => $this->getContaId('Clientes'),
                'conta_credito_id' => $this->getContaId('IVA a Liquidar'),
                'descricao' => "IVA Fatura {$fatura['numero']}",
                'valor' => $fatura['iva_valor'],
                'documento_id' => $fatura_id
            ];
        }
        
        // Salva os lançamentos
        $this->salvarLancamentos([$lancamento1, $lancamento2]);
    }
    Módulo de Inventário
    Licença: Médio/Avançado/Completo
    Descrição

    Sistema completo de gestão de stocks com controlo de entradas, saídas, transferências e inventário físico.

    Funcionalidades Principais
    • Gestão Multi-Armazém: Controlo por localização
    • Movimentos de Stock: Entradas, saídas, transferências
    • Controlo de Lotes: Validade, números de série
    • Inventário Físico: Contagens, ajustes
    • Alertas de Stock: Mínimos, máximos, vencimentos
    • Custo Médio Ponderado: Cálculo automático
    Fluxo de Trabalho
    Processo de Venda com Stock
    1. Cliente seleciona produtos
    2. Sistema verifica disponibilidade
    3. Se stock insuficiente → alerta
    4. Se stock suficiente → reserva automática
    5. Emissão da fatura
    6. Baixa automática do stock
    7. Atualização de custos
    8. Geração de alertas (se necessário)
    Configurações Chave
    • empresa.inventario = "SIM"
    • financeiro.stock - Limite mínimo
    • itens.limite_venda - Bloqueia venda sem stock
    • Método de custeio: Custo Médio
    • Controlo por lote: Ativo/Inativo
    Tipos de Movimentos
    • E Entrada (Compra, Produção)
    • S Saída (Venda, Consumo)
    • T Transferência (Entre armazéns)
    • A Ajuste (Inventário)
    • D Devolução (Cliente/Fornecedor)
    API de Gestão de Stock
    API - Verificar Stock
    // Verificar disponibilidade de stock
    async function verificarStock(item_id, quantidade, armazem_id = null) {
        const response = await fetch('/api/v1/inventario/stock', {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json',
                'Authorization': `Bearer ${token}`
            },
            body: JSON.stringify({
                item_id: item_id,
                quantidade: quantidade,
                armazem_id: armazem_id
            })
        });
        
        const data = await response.json();
        
        if (data.success) {
            return {
                disponivel: data.disponivel,
                stock_atual: data.stock_atual,
                armazens: data.armazens,
                pode_vender: data.disponivel >= quantidade
            };
        }
        
        throw new Error(data.message);
    }
    
    // Exemplo de uso
    const stockInfo = await verificarStock(123, 10);
    if (!stockInfo.pode_vender) {
        alert(`Stock insuficiente. Disponível: ${stockInfo.stock_atual}`);
    }
    Módulo de Recursos Humanos
    Licença: Avançado/Completo
    Descrição

    Sistema completo de gestão de recursos humanos com controlo de presenças, salários, contratos e benefícios.

    Funcionalidades Principais
    • Gestão de Funcionários: Cadastro completo
    • Contratos: Efetivos, temporários, estágios
    • Presenças: Entrada/saída, horas extras
    • Férias: Gestão e aprovação
    • Folhas de Salário: Cálculo automático
    • Benefícios: Subsídios, prémios
    • Avaliações: Desempenho periódico
    • Documentos: Contratos, recibos
    • Portal Funcionário: Autogestão
    • Relatórios: Quadro de pessoal, custos
    Configuração Inicial
    1. Ativar módulo: empresa.rh = "SIM"
    2. Configurar parâmetros trabalhistas
    3. Definir escalões de IRS
    4. Configurar benefícios padrão
    5. Importar funcionários existentes
    Estrutura de Dados
    Tabelas principais:
    • funcionarios - Dados pessoais
    • contratos - Informações contratuais
    • presencas - Controlo de assiduidade
    • folhas_salario - Histórico salarial
    • ferias - Gestão de férias
    • justificativas_faltas - Justificações
    Portal do Funcionário

    Funcionalidades disponíveis:

    • Consultar salários
    • Registrar presenças
    • Solicitar férias
    • Justificar faltas
    • Baixar recibos
    Cálculo de Salário
    Cálculo Automático
    public function calcularSalario($funcionario_id, $mes, $ano) {
        // Obter dados do funcionário
        $funcionario = $this->getFuncionario($funcionario_id);
        $contrato = $this->getContratoAtual($funcionario_id);
        
        // Cálculo base
        $salario_base = $contrato['salario'];
        $dias_trabalhados = $this->getDiasTrabalhados($funcionario_id, $mes, $ano);
        
        // Horas extras
        $horas_extras = $this->getHorasExtras($funcionario_id, $mes, $ano);
        $valor_horas_extras = $horas_extras * ($salario_base / 160) * 1.5;
        
        // Benefícios
        $beneficios = $this->getBeneficios($funcionario_id, $mes, $ano);
        
        // Descontos
        $descontos = $this->calcularDescontos(
            $salario_base + $valor_horas_extras + $beneficios,
            $funcionario['nif']
        );
        
        // Total líquido
        $salario_liquido = ($salario_base + $valor_horas_extras + $beneficios) - $descontos;
        
        return [
            'bruto' => $salario_base,
            'horas_extras' => $valor_horas_extras,
            'beneficios' => $beneficios,
            'descontos' => $descontos,
            'liquido' => $salario_liquido,
            'dias_trabalhados' => $dias_trabalhados
        ];
    }
    Módulo de Tesouraria e Bancos
    Licença: Avançado/Completo
    Descrição

    Gestão completa de fluxo de caixa, contas bancárias, conciliações e tesouraria.

    Funcionalidades Principais
    • Contas Bancárias: Gestão multi-banco
    • Movimentos Bancários: Entradas, saídas, transferências
    • Conciliação: Automática e manual
    • Extratos: Importação de formatos bancários
    • Fluxo de Caixa: Projeção e controlo
    • Pagamentos: Agendamento e execução
    • Cartões: Gestão de TPA e POS
    Configuração de Contas
    Configuração Típica
    Configurações necessárias:
    1. financeiro.banco = "Nome do Banco"
    2. financeiro.count = "Número da Conta"
    3. financeiro.nome = "Titular da Conta"
    4. financeiro.iban = "AO06 0005 0000 1234 5678 9012 3"
    5. financeiro.swift = "BICACOLUXXX"
    6. Saldo inicial: Definir data de abertura
    Tipos de Contas
    • Corrente: Operações diárias
    • Poupança: Reservas
    • Cartão: Contas cartão
    • Estrangeira: Moeda estrangeira
    • Caixa: Dinheiro físico
    Conciliação Bancária

    Processo automático:

    1. Importar extrato (OFX, CSV)
    2. Sistema sugere correspondências
    3. Validar movimentos
    4. Conciliar diferenças
    5. Gerar relatório
    API para Integração Bancária
    Webhook - Notificação Bancária
    {
      "event": "transferencia.recebida",
      "data": {
        "banco_origem": "BFA",
        "conta_origem": "123456789",
        "nome_origem": "Cliente Exemplo Lda",
        "conta_destino": "0005000012345678",
        "valor": 150000.00,
        "moeda": "AOA",
        "referencia": "FT202501001",
        "data_operacao": "2025-01-15",
        "descricao": "Pagamento Fatura FT202501001"
      },
      "timestamp": "2025-01-15T10:30:00Z",
      "signature": "sha256=..."
    }
    
    // Processamento no Ryakeza
    public function processarTransferencia($dados) {
        // 1. Verificar se é fatura
        $fatura = $this->buscarFaturaPorReferencia($dados['referencia']);
        
        if ($fatura) {
            // 2. Registrar pagamento
            $this->registrarPagamentoFatura(
                $fatura['id'],
                $dados['valor'],
                'transferencia',
                $dados['data_operacao']
            );
            
            // 3. Atualizar movimento bancário
            $this->registrarMovimentoBancario(
                $dados['conta_destino'],
                'credito',
                $dados['valor'],
                "Pagamento: {$dados['referencia']}"
            );
            
            // 4. Notificar cliente
            $this->enviarConfirmacaoPagamento($fatura['cliente_email']);
        }
    }
    Módulo de CRM
    Licença: Completo
    Descrição

    Sistema de Gestão de Relacionamento com o Cliente integrado com faturação e vendas.

    Funcionalidades Principais
    • Oportunidades: Pipeline de vendas
    • Contactos: Gestão multi-contacto por cliente
    • Tarefas: Atividades e follow-ups
    • Campanhas: Email marketing
    • Histórico: Interações completas
    • Relatórios: Conversão, rentabilidade
    • Segmentação: Grupos de clientes
    • Automação: Workflows de vendas
    • Integração: Email, calendário
    • Mobile: Acesso via telemóvel
    Fluxo de Oportunidade
    Pipeline de Vendas
    1. Lead/Prospecção → Identificação
    2. Qualificação → Necessidades definidas
    3. Proposta → Orçamento enviado
    4. Negociação → Discussão de termos
    5. Fecho → Ganho ou Perdido
    6. Pós-venda → Implementação
    
    Estados possíveis:
    - Novo (0%)
    - Em contacto (25%)
    - Proposta enviada (50%)
    - Negociação (75%)
    - Ganho (100%)
    - Perdido (0%)
    Métricas Chave
    • Taxa de conversão
    • Valor médio por venda
    • Tempo no pipeline
    • Origem dos leads
    • Rentabilidade por cliente
    Automações

    Exemplos de workflows:

    • Lead → Email automático
    • Orçamento vencido → Alerta
    • Cliente inativo → Campanha
    • Aniversário → Desconto
    API de CRM
    Criar Oportunidade via API
    // Criar nova oportunidade
    async function criarOportunidade(dados) {
        const response = await fetch('/api/v1/crm/oportunidades', {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json',
                'Authorization': `Bearer ${token}`
            },
            body: JSON.stringify({
                cliente_id: dados.cliente_id,
                titulo: dados.titulo,
                descricao: dados.descricao,
                valor_estimado: dados.valor,
                estado: 'novo',
                probabilidade: 25,
                data_fecho_esperada: dados.data_fecho,
                responsavel_id: dados.responsavel_id,
                origem: 'website', // website, telefone, indicacao, etc.
                tags: dados.tags || []
            })
        });
        
        const result = await response.json();
        
        if (result.success) {
            // Criar tarefa automática
            await criarTarefa({
                oportunidade_id: result.data.id,
                titulo: 'Contactar cliente',
                descricao: 'Fazer primeiro contacto',
                data_limite: new Date(Date.now() + 24 * 60 * 60 * 1000), // Amanhã
                prioridade: 'alta'
            });
            
            return result.data;
        }
        
        throw new Error(result.message);
    }
    
    // Uso
    const oportunidade = await criarOportunidade({
        cliente_id: 456,
        titulo: 'Implementação ERP',
        valor: 2500000,
        data_fecho: '2025-03-31'
    });
    Como Ativar/Desativar Módulos
    Processo de Ativação
    1. Verificar Licença

      Certifique-se que sua licença permite o módulo desejado:

      Básico: Apenas faturação
      Médio: + Inventário
      Avançado: + Contabilidade, RH, Tesouraria
      Completo: Todos os módulos + CRM
    2. Acessar Configurações

      Menu: Configurações → Módulos ou Configurações do Sistema

      Caminho no Sistema
      1. Faça login como administrador (nível 1)
      2. Vá para: Configurações do Sistema
      3. Role até a seção "Módulos"
      4. Encontre o módulo desejado
      5. Altere o valor para "SIM" ou "NÃO"
    3. Configuração Inicial

      Após ativar, configure o módulo:

      • Importe dados existentes (se houver)
      • Defina parâmetros iniciais
      • Configure integrações
      • Teste funcionalidades básicas
    4. Treinamento da Equipe

      Capacite os utilizadores:

      • Documentação específica do módulo
      • Sessões de treinamento
      • Suporte durante a transição
      • Monitorização inicial
    Configurações por Módulo
    Módulo Configuração Valor Padrão Dependências
    Contabilidade empresa.contabilidade NÃO Faturação ativa
    Inventário empresa.inventario NÃO Produtos cadastrados
    Recursos Humanos empresa.rh NÃO Nenhuma
    Tesouraria empresa.tesouraria NÃO Contas bancárias
    CRM empresa.crm NÃO Clientes cadastrados
    Dica: Ative os módulos gradualmente. Comece com Contabilidade e Inventário, depois RH e Tesouraria, e finalmente CRM.

    Gestão de Utilizadores e Permissões

    Baseado no código sidebar fornecido, o sistema possui 3 níveis de acesso:

    Administrador (Nível 1)

    Acesso total ao sistema.

    • Todas as funcionalidades
    • Gestão de utilizadores
    • Configurações do sistema
    • Relatórios completos
    • SAF-T AO
    Gestor (Nível 2)

    Acesso à gestão operacional.

    • Faturação e vendas
    • Gestão de clientes
    • Relatórios operacionais
    • Cadastros básicos
    • Configurações do sistema
    Colaborador (Nível 0)

    Acesso limitado a funções específicas.

    • Emissão de documentos
    • Consulta básica
    • Alteração de dados
    • Relatórios sensíveis
    • Configurações

    Como Criar um Novo Utilizador

    1. Acesso

      Apenas administradores podem criar novos utilizadores:

      • Menu: Cadastros → Utilizadores
      • Clique em "Novo Utilizador"
    2. Dados Obrigatórios
      • Nome completo: Nome do utilizador
      • Email: Será usado para login
      • Perfil: Admin, Gestor ou Colaborador
      • Empresa: Associar à empresa correta
    3. Configuração de Acesso
      • O sistema gera senha temporária
      • Envia email de ativação
      • Utilizador define senha definitiva no primeiro acesso
    4. Permissões Específicas
      • Configure permissões por módulo
      • Defina limites de acesso
      • Revise periodicamente

    Sistema de Permissões Granulares

    Exemplo de Permissões
    {
      "usuario_id": 123,
      "permissões": {
        "faturacao": {
          "criar": true,
          "editar": true,
          "anular": false,
          "exportar": true,
          "ver_todas": true
        },
        "clientes": {
          "ver": true,
          "criar": true,
          "editar": true,
          "excluir": false,
          "ver_sensivel": false
        },
        "relatorios": {
          "vendas": true,
          "financeiro": false,
          "saft": false,
          "exportar": true
        },
        "configuracoes": {
          "empresa": false,
          "sistema": false,
          "backup": false
        }
      }
    }

    Área do Funcionário

    Baseado no código fornecido, o Ryakeza inclui um portal completo para funcionários.

    Controle de Presenças

    Funcionalidades disponíveis para funcionários:

    Registro de Tempo
    • Registro de entrada/saída
    • Horas trabalhadas calculadas automaticamente
    • Histórico mensal completo
    • Calendário de presenças
    Estatísticas
    • Presenças do mês
    • Horas trabalhadas
    • Percentual de presença
    • Comparativo com meses anteriores

    Folhas de Salário

    API - Consulta de Salários
    // Exemplo de consulta de salários via API
    async function carregarSalarios() {
        try {
            const response = await fetch(
                '../../database/controlls/funcionarios/api_funcionarios.php?action=salarios',
                {
                    method: 'GET',
                    headers: {
                        'Authorization': `Bearer ${localStorage.getItem('token')}`
                    }
                }
            );
            
            const data = await response.json();
            
            if (data.success) {
                // Processar dados
                data.salarios.forEach(salario => {
                    console.log(`Mês: ${salario.mes}/${salario.ano}`);
                    console.log(`Líquido: ${salario.salario_liquido}`);
                    console.log(`Bruto: ${salario.salario_bruto}`);
                    console.log(`Descontos: ${salario.descontos}`);
                });
            }
        } catch (error) {
            console.error('Erro:', error);
        }
    }
    
    // Download de recibo
    function baixarRecibo(salarioId) {
        window.open(
            `../../database/controlls/funcionarios/api_funcionarios.php?action=baixar_recibo&id=${salarioId}`,
            '_blank'
        );
    }

    Sistema de Justificativas

    Funcionários podem justificar faltas através do portal:

    1. Acesso: Menu Justificativas → Nova Justificativa
    2. Tipos: Doença, Assuntos Familiares, Outros
    3. Anexos: PDF, JPG, PNG (até 5MB)
    4. Fluxo:
      • Funcionário envia justificativa
      • Gestor/RH recebe notificação
      • Aprovação/Rejeição com observações
      • Funcionário é notificado do resultado
    Prazos: Justificativas devem ser enviadas até 3 dias úteis após a falta.

    Portal do Cliente

    O Ryakeza inclui um portal onde clientes podem aceder às suas informações.

    Acesso do Cliente

    Para dar acesso a um cliente ao portal:

    1. Cadastro: Certifique-se que o cliente tem email cadastrado
    2. Ativar Acesso: Na ficha do cliente, marque "Permitir acesso ao portal"
    3. Senha: O sistema gera senha automática e envia por email
    4. Primeiro Acesso: Cliente redefine a senha

    Funcionalidades do Portal

    Consultar Faturas
    • Histórico completo
    • Faturas pendentes
    • Faturas pagas
    • Download em PDF
    Pagamento Online
    • Multicaixa Express
    • Referência Multibanco
    • TPA Virtual
    • QR Code
    Relatórios
    • Extrato por período
    • Consumo mensal
    • PDF personalizado
    • Exportar dados

    API para Integração com Pagamentos

    Webhook - Notificação de Pagamento
    // Configurar webhook para receber notificações
    {
      "url": "https://suaempresa.ao/api/webhooks/pagamentos",
      "events": [
        "pagamento.recebido",
        "pagamento.confirmado",
        "pagamento.recusado"
      ],
      "secret": "seu_secreto_aqui"
    }
    
    // Exemplo de payload recebido
    {
      "event": "pagamento.recebido",
      "data": {
        "fatura_id": "FT202501001",
        "cliente_id": 456,
        "valor": 150000.00,
        "metodo": "multicaixa",
        "referencia": "REF123456789",
        "data_pagamento": "2025-01-15 14:30:00"
      },
      "timestamp": "2025-01-15T14:30:00Z",
      "signature": "sha256=..."
    }

    Resolução de Problemas

    Problemas Comuns e Soluções

    Sintomas: Erro 500, página em branco ou timeout

    Soluções:
    1. Verifique permissões:
      chmod 755 storage/
      chmod 644 config/database.php
    2. Verifique erros PHP:
      tail -f /var/log/apache2/error.log
    3. Limpe cache: Acesse https://seudominio.ao/ryakeza/limpar-cache
    4. Verifique base de dados: Conectividade MySQL

    Sintomas: Faturas não enviam, erro de SMTP

    Soluções:
    1. Verifique configurações:
      • Configurações → Email
      • SMTP correto (ex: smtp.gmail.com)
      • Porta correta (465 para SSL, 587 para TLS)
    2. Teste conexão:
      telnet smtp.gmail.com 587
    3. Verifique logs:
      tail -f logs/email.log
    4. Use serviço alternativo: Mailgun, SendGrid

    Sintomas: Erro ao fazer backup, ficheiro vazio

    Soluções:
    1. Verifique espaço em disco:
      df -h
    2. Permissões da pasta backup:
      chmod 777 backup/
    3. Teste manual:
      mysqldump -u usuario -p ryakeza > backup_teste.sql
    4. Configure cron job:
      # Adicione ao crontab
      0 2 * * * /usr/bin/php /var/www/html/ryakeza/cron/backup.php

    Sintomas: Carregamento lento, timeout em relatórios

    Soluções:
    1. Otimize base de dados:
      mysqlcheck -o ryakeza
    2. Limpe cache: Menu Sistema → Limpar Cache
    3. Verifique logs lentos:
      tail -f logs/slow_queries.log
    4. Otimize PHP:
      ; php.ini
      memory_limit = 256M
      max_execution_time = 300
      opcache.enable = 1

    Logs do Sistema

    Localização dos principais ficheiros de log:

    Log Localização O que monitorizar
    Erros da Aplicação storage/logs/application.log Erros PHP, exceptions
    Erros de Email storage/logs/email.log Falhas no envio de emails
    Logs de Acesso storage/logs/access.log Login/logout, tentativas falhadas
    SAF-T Logs storage/logs/saft.log Exportações SAF-T, erros de validação
    Logs da Base de Dados /var/log/mysql/error.log Erros MySQL, queries lentas

    Contactar Suporte

    Se o problema persistir:

    Suporte Técnico Ryakeza:
    Email: suporte@ryakeza.ao
    Telefone: +244 975 932 999
    Horário: Seg-Sex, 8h-18h

    Quando contactar o suporte, forneça:

    1. Versão do Ryakeza (v2.1.3)
    2. Descrição detalhada do problema
    3. Passos para reproduzir
    4. Capturas de ecrã (se aplicável)
    5. Logs relevantes (remova dados sensíveis)

    Histórico de Versões

    v2.1.3 - Janeiro 2025
    Novas Funcionalidades
    • Portal do Cliente completo
    • Área do Funcionário redesenhada
    • Sistema de justificativas de faltas
    • Webhooks para integração
    • API REST expandida
    Melhorias
    • Performance otimizada em relatórios grandes
    • Interface mais responsiva
    • Sistema de backup melhorado
    • Validação SAF-T AO mais robusta
    Correções
    • Corrigido cálculo de IVA em notas de crédito
    • Resolvido problema com NIFs estrangeiros no SAF-T
    • Corrigido envio de emails com anexos grandes
    • Resolvidos problemas de timezone
    v2.1.2 - Dezembro 2024
    Novidades
    • Sistema de licenciamento implementado
    • Módulo de Recursos Humanos
    • Integração com TPA virtual
    • Assinatura digital em documentos
    v2.0.0 - Outubro 2024
    Lançamento Principal
    • Sistema multi-empresa
    • SAF-T AO completo
    • Módulos: Contabilidade, Inventário, CRM
    • API REST
    • Sistema de permissões granular

    API - Gestão de Clientes

    Integre o Ryakeza com outros sistemas através da API REST.

    Listar Clientes

    GET /api/v1/clientes
    curl -X GET \
      https://seu-dominio.com/api/v1/clientes \
      -H 'Authorization: Bearer SEU_TOKEN_JWT' \
      -H 'Content-Type: application/json'

    Criar Cliente

    POST /api/v1/clientes
    curl -X POST \
      https://seu-dominio.com/api/v1/clientes \
      -H 'Authorization: Bearer SEU_TOKEN_JWT' \
      -H 'Content-Type: application/json' \
      -d '{
        "nome": "Cliente Exemplo Lda",
        "nif": "5000123456",
        "email": "cliente@empresa.ao",
        "telefone": "+244 923 456 789",
        "tipo": "cliente",
        "endereco": "Rua Comercial, 123",
        "cidade": "Luanda"
    }'

    Atualizar Cliente

    PUT /api/v1/clientes/{id}
    curl -X PUT \
      https://seu-dominio.com/api/v1/clientes/123 \
      -H 'Authorization: Bearer SEU_TOKEN_JWT' \
      -H 'Content-Type: application/json' \
      -d '{
        "telefone": "+244 923 999 999",
        "email": "novo-email@empresa.ao"
    }'

    API - Gestão de Faturas

    Crie e gerencie faturas programaticamente através da API.

    Criar Fatura via API

    POST /api/v1/faturas
    const fatura = {
        cliente_id: 456,
        data_emissao: "2024-12-01",
        data_vencimento: "2024-12-31",
        metodo_pagamento: "transferencia",
        itens: [
            {
                item_id: 789,
                descricao: "Serviço de Consultoria",
                quantidade: 10,
                preco_unitario: 15000.00,
                imposto_id: 1
            },
            {
                item_id: 790,
                descricao: "Produto Exemplo",
                quantidade: 2,
                preco_unitario: 25000.00,
                imposto_id: 2
            }
        ],
        observacoes: "Fatura gerada automaticamente via API"
    };
    
    fetch('https://seu-dominio.com/api/v1/faturas', {
        method: 'POST',
        headers: {
            'Authorization': `Bearer ${token}`,
            'Content-Type': 'application/json'
        },
        body: JSON.stringify(fatura)
    })
    .then(response => response.json())
    .then(data => console.log(data));

    Emitir Fatura em PDF

    GET /api/v1/faturas/{id}/pdf
    # Baixar PDF da fatura
    curl -X GET \
      https://seu-dominio.com/api/v1/faturas/789/pdf \
      -H 'Authorization: Bearer SEU_TOKEN_JWT' \
      --output fatura-789.pdf

    Enviar Fatura por Email

    POST /api/v1/faturas/{id}/enviar-email
    curl -X POST \
      https://seu-dominio.com/api/v1/faturas/789/enviar-email \
      -H 'Authorization: Bearer SEU_TOKEN_JWT' \
      -H 'Content-Type: application/json' \
      -d '{
        "email_destino": "cliente@empresa.ao",
        "assunto": "Sua Fatura #FT2024120001",
        "mensagem": "Prezado cliente, em anexo sua fatura.",
        "enviar_copia": true,
        "copia_para": "contabilidade@empresa.ao"
    }'

    Perguntas Frequentes (FAQ)

    Você pode fazer backup através do painel administrativo em Configurações > Backup ou utilizar a API para automatizar o processo. Recomendamos backups diários.

    Sim, a partir da versão 2.0, o Ryakeza suporta a gestão de múltiplas empresas no mesmo sistema. Cada empresa tem sua própria configuração fiscal e base de dados separada.

    Acesse Relatórios > SAF-T AO, selecione o período desejado e clique em "Exportar". O sistema gerará um ficheiro XML compatível com as especificações da AGT.

    Changelog

    v2.1.3 - Novembro 2025
    Novas Funcionalidades
    • Suporte para notas de débito
    • Exportação de relatórios em formato Excel
    • API para gestão de stocks
    Correções
    • Corrigido problema com cálculo de IVA em faturas simplificadas
    • Melhorada performance na geração de relatórios grandes
    • Corrigido bug na exportação SAF-T para empresas com NIF estrangeiro
    v2.1.2 - Dezembro 2024
    Melhorias
    • Interface otimizada para dispositivos móveis
    • Novos templates de faturas
    • Suporte para assinatura digital em documentos

    Esta documentação foi útil?

    Sua opinião ajuda a melhorar a documentação para todos os utilizadores.

    Reportar Problema