API Atura
Gerar SAF-T
Conformidade ATGera ficheiros SAF-T (PT) conformes com a Autoridade Tributária para auditoria fiscal e submissão obrigatória.
Documentação em Desenvolvimento
Esta documentação está ainda em desenvolvimento ativo. Algumas secções podem estar incompletas ou sujeitas a alterações. Para questões específicas, contacta o nosso suporte técnico.
O que é o SAF-T?
O Standard Audit File for Tax (SAF-T) é um ficheiro XML padronizado que contém informação contabilística e fiscal de uma empresa, exigido pela Autoridade Tributária portuguesa.
Automático
Geração automática XML
Conforme AT
Validado segundo portaria
Período
Mensal ou por intervalo
Gerar Ficheiro SAF-T
/v1/saft/generateInicia a geração de um ficheiro SAF-T para o período especificado. O processo é assíncrono.
Exemplo de Pedido
POST /v1/saft/generate
Content-Type: application/json
Authorization: Bearer atura_live_1234...
{
"period": {
"start_date": "2025-01-01",
"end_date": "2025-01-31"
},
"type": "monthly",
"include_customers": true,
"include_suppliers": true,
"include_products": true,
"include_tax_table": true,
"company_info": {
"tax_registration_number": "123456789",
"company_id": "12345",
"tax_accounting_basis": "F",
"tax_entity": "Global"
},
"audit_file_version": "1.04_01"
}Resposta
{
"id": "saft_gen_abc123def456",
"status": "processing",
"period": {
"start_date": "2025-01-01",
"end_date": "2025-01-31"
},
"type": "monthly",
"estimated_completion": "2025-01-15T14:35:00Z",
"progress": {
"current_step": "extracting_documents",
"completed_steps": ["validating_period", "preparing_data"],
"total_steps": 6,
"percentage": 33
},
"created_at": "2025-01-15T14:30:00Z"
}Verificar Estado
/v1/saft/generate/{id}Verifica o estado da geração do SAF-T e obtém informações sobre o progresso.
Exemplo: Concluído
{
"id": "saft_gen_abc123def456",
"status": "completed",
"period": {
"start_date": "2025-01-01",
"end_date": "2025-01-31"
},
"progress": {
"current_step": "completed",
"percentage": 100
},
"file": {
"filename": "SAFT_PT_123456789_2025_01.xml",
"size": 2456789,
"hash": "sha256:a1b2c3d4e5f6...",
"download_url": "https://api.atura.pt/saft/download/saft_gen_abc123def456",
"expires_at": "2025-01-22T14:35:00Z"
},
"statistics": {
"documents_included": 1247,
"customers_included": 89,
"suppliers_included": 23,
"products_included": 156,
"total_gross_amount": 156789.45,
"total_tax_amount": 32456.78
},
"validation": {
"schema_valid": true,
"at_compliant": true,
"warnings": []
},
"created_at": "2025-01-15T14:30:00Z",
"completed_at": "2025-01-15T14:35:12Z"
}Exemplo: Em Processamento
GET /v1/saft/generate/saft_gen_abc123def456
{
"id": "saft_gen_abc123def456",
"status": "processing",
"period": {
"start_date": "2025-01-01",
"end_date": "2025-01-31"
},
"progress": {
"current_step": "generating_xml",
"completed_steps": [
"validating_period",
"preparing_data",
"extracting_documents",
"extracting_customers",
"extracting_products"
],
"total_steps": 6,
"percentage": 83
},
"statistics": {
"documents_processed": 1247,
"customers_processed": 89,
"products_processed": 156,
"estimated_file_size": "2.3MB"
},
"created_at": "2025-01-15T14:30:00Z",
"updated_at": "2025-01-15T14:33:42Z"
}Tipos de SAF-T
Diferentes tipos de SAF-T podem ser gerados conforme a necessidade:
Tipos Disponíveis
- monthlySAF-T mensal (recomendado)
- quarterlySAF-T trimestral
- annualSAF-T anual
- customPeríodo personalizado
Conteúdo Incluído
- • Dados da empresa (Header)
- • Tabela de clientes (MasterFiles)
- • Tabela de produtos (MasterFiles)
- • Tabela de impostos (MasterFiles)
- • Documentos de venda (SourceDocuments)
- • Movimentos contabilísticos (se aplicável)
Opções de Configuração
Dados da Empresa
"company_info": {
"tax_registration_number": "123456789", // NIF obrigatório
"company_id": "12345", // Conservatória ou similar
"tax_accounting_basis": "F", // F=Faturação, C=Caixa, I=Contabilidade
"tax_entity": "Global", // Sede global ou estabelecimento
"currency_code": "EUR" // Código ISO da moeda
}Filtros de Dados
"filters": {
"include_customers": true, // Incluir tabela de clientes
"include_suppliers": true, // Incluir tabela de fornecedores
"include_products": true, // Incluir tabela de produtos
"include_tax_table": true, // Incluir tabela de impostos
"document_types": ["FT", "FS", "NC", "ND"], // Tipos a incluir
"min_amount": 0, // Valor mínimo de documento
"customer_ids": [] // Clientes específicos (vazio = todos)
}Versão do Schema
Especifica a versão do schema SAF-T a usar:
- •
1.04_01- Versão atual recomendada - •
1.03_01- Versão anterior (compatibilidade)
Estados do Processo
Estados Possíveis
queued- Na fila de processamentoprocessing- A processar dadoscompleted- Concluído com sucessofailed- Falhou com erroexpired- Ficheiro expirou
Etapas de Processamento
- 1. Validação do período
- 2. Preparação de dados
- 3. Extração de documentos
- 4. Extração de clientes
- 5. Extração de produtos
- 6. Geração do XML
Listar Gerações
/v1/saft/generateLista todas as gerações de SAF-T, incluindo estado atual e histórico.
Exemplo
GET /v1/saft/generate?limit=10&status=completed
{
"generations": [
{
"id": "saft_gen_abc123def456",
"status": "completed",
"type": "monthly",
"period": {
"start_date": "2025-01-01",
"end_date": "2025-01-31"
},
"file": {
"filename": "SAFT_PT_123456789_2025_01.xml",
"size": 2456789,
"expires_at": "2025-01-22T14:35:00Z"
},
"created_at": "2025-01-15T14:30:00Z",
"completed_at": "2025-01-15T14:35:12Z"
},
{
"id": "saft_gen_xyz789uvw012",
"status": "completed",
"type": "monthly",
"period": {
"start_date": "2024-12-01",
"end_date": "2024-12-31"
},
"file": {
"filename": "SAFT_PT_123456789_2024_12.xml",
"size": 1987654,
"expires_at": "2025-01-07T10:15:30Z"
},
"created_at": "2025-01-07T10:10:15Z",
"completed_at": "2025-01-07T10:15:30Z"
}
],
"total": 24,
"page": 1,
"per_page": 10
}Tratamento de Erros
400 Bad Request
Período inválido ou parâmetros em falta.
{
"error": {
"type": "validation_error",
"code": "invalid_period",
"message": "Data de início deve ser anterior à data de fim",
"details": {
"start_date": "2025-02-01",
"end_date": "2025-01-31"
}
}
}422 Unprocessable Entity
Erro durante a geração do SAF-T.
{
"error": {
"type": "generation_error",
"code": "data_integrity_error",
"message": "Foram encontrados documentos com dados inconsistentes",
"details": {
"invalid_documents": ["doc_123", "doc_456"],
"issues": ["missing_tax_rate", "invalid_customer_data"]
}
}
}Retenção de Ficheiros
Os ficheiros SAF-T gerados são mantidos durante 7 dias após a geração. Depois desse período, devem ser gerados novamente se necessário.
Gerar SAF-T
Conformidade ATGera ficheiros SAF-T (PT) conformes com a Autoridade Tributária para auditoria fiscal e submissão obrigatória.
Documentação em Desenvolvimento
Esta documentação está ainda em desenvolvimento ativo. Algumas secções podem estar incompletas ou sujeitas a alterações. Para questões específicas, contacta o nosso suporte técnico.
O que é o SAF-T?
O Standard Audit File for Tax (SAF-T) é um ficheiro XML padronizado que contém informação contabilística e fiscal de uma empresa, exigido pela Autoridade Tributária portuguesa.
Automático
Geração automática XML
Conforme AT
Validado segundo portaria
Período
Mensal ou por intervalo
Gerar Ficheiro SAF-T
/v1/saft/generateInicia a geração de um ficheiro SAF-T para o período especificado. O processo é assíncrono.
Exemplo de Pedido
POST /v1/saft/generate
Content-Type: application/json
Authorization: Bearer atura_live_1234...
{
"period": {
"start_date": "2025-01-01",
"end_date": "2025-01-31"
},
"type": "monthly",
"include_customers": true,
"include_suppliers": true,
"include_products": true,
"include_tax_table": true,
"company_info": {
"tax_registration_number": "123456789",
"company_id": "12345",
"tax_accounting_basis": "F",
"tax_entity": "Global"
},
"audit_file_version": "1.04_01"
}Resposta
{
"id": "saft_gen_abc123def456",
"status": "processing",
"period": {
"start_date": "2025-01-01",
"end_date": "2025-01-31"
},
"type": "monthly",
"estimated_completion": "2025-01-15T14:35:00Z",
"progress": {
"current_step": "extracting_documents",
"completed_steps": ["validating_period", "preparing_data"],
"total_steps": 6,
"percentage": 33
},
"created_at": "2025-01-15T14:30:00Z"
}Verificar Estado
/v1/saft/generate/{id}Verifica o estado da geração do SAF-T e obtém informações sobre o progresso.
Exemplo: Concluído
{
"id": "saft_gen_abc123def456",
"status": "completed",
"period": {
"start_date": "2025-01-01",
"end_date": "2025-01-31"
},
"progress": {
"current_step": "completed",
"percentage": 100
},
"file": {
"filename": "SAFT_PT_123456789_2025_01.xml",
"size": 2456789,
"hash": "sha256:a1b2c3d4e5f6...",
"download_url": "https://api.atura.pt/saft/download/saft_gen_abc123def456",
"expires_at": "2025-01-22T14:35:00Z"
},
"statistics": {
"documents_included": 1247,
"customers_included": 89,
"suppliers_included": 23,
"products_included": 156,
"total_gross_amount": 156789.45,
"total_tax_amount": 32456.78
},
"validation": {
"schema_valid": true,
"at_compliant": true,
"warnings": []
},
"created_at": "2025-01-15T14:30:00Z",
"completed_at": "2025-01-15T14:35:12Z"
}Exemplo: Em Processamento
GET /v1/saft/generate/saft_gen_abc123def456
{
"id": "saft_gen_abc123def456",
"status": "processing",
"period": {
"start_date": "2025-01-01",
"end_date": "2025-01-31"
},
"progress": {
"current_step": "generating_xml",
"completed_steps": [
"validating_period",
"preparing_data",
"extracting_documents",
"extracting_customers",
"extracting_products"
],
"total_steps": 6,
"percentage": 83
},
"statistics": {
"documents_processed": 1247,
"customers_processed": 89,
"products_processed": 156,
"estimated_file_size": "2.3MB"
},
"created_at": "2025-01-15T14:30:00Z",
"updated_at": "2025-01-15T14:33:42Z"
}Tipos de SAF-T
Diferentes tipos de SAF-T podem ser gerados conforme a necessidade:
Tipos Disponíveis
- monthlySAF-T mensal (recomendado)
- quarterlySAF-T trimestral
- annualSAF-T anual
- customPeríodo personalizado
Conteúdo Incluído
- • Dados da empresa (Header)
- • Tabela de clientes (MasterFiles)
- • Tabela de produtos (MasterFiles)
- • Tabela de impostos (MasterFiles)
- • Documentos de venda (SourceDocuments)
- • Movimentos contabilísticos (se aplicável)
Opções de Configuração
Dados da Empresa
"company_info": {
"tax_registration_number": "123456789", // NIF obrigatório
"company_id": "12345", // Conservatória ou similar
"tax_accounting_basis": "F", // F=Faturação, C=Caixa, I=Contabilidade
"tax_entity": "Global", // Sede global ou estabelecimento
"currency_code": "EUR" // Código ISO da moeda
}Filtros de Dados
"filters": {
"include_customers": true, // Incluir tabela de clientes
"include_suppliers": true, // Incluir tabela de fornecedores
"include_products": true, // Incluir tabela de produtos
"include_tax_table": true, // Incluir tabela de impostos
"document_types": ["FT", "FS", "NC", "ND"], // Tipos a incluir
"min_amount": 0, // Valor mínimo de documento
"customer_ids": [] // Clientes específicos (vazio = todos)
}Versão do Schema
Especifica a versão do schema SAF-T a usar:
- •
1.04_01- Versão atual recomendada - •
1.03_01- Versão anterior (compatibilidade)
Estados do Processo
Estados Possíveis
queued- Na fila de processamentoprocessing- A processar dadoscompleted- Concluído com sucessofailed- Falhou com erroexpired- Ficheiro expirou
Etapas de Processamento
- 1. Validação do período
- 2. Preparação de dados
- 3. Extração de documentos
- 4. Extração de clientes
- 5. Extração de produtos
- 6. Geração do XML
Listar Gerações
/v1/saft/generateLista todas as gerações de SAF-T, incluindo estado atual e histórico.
Exemplo
GET /v1/saft/generate?limit=10&status=completed
{
"generations": [
{
"id": "saft_gen_abc123def456",
"status": "completed",
"type": "monthly",
"period": {
"start_date": "2025-01-01",
"end_date": "2025-01-31"
},
"file": {
"filename": "SAFT_PT_123456789_2025_01.xml",
"size": 2456789,
"expires_at": "2025-01-22T14:35:00Z"
},
"created_at": "2025-01-15T14:30:00Z",
"completed_at": "2025-01-15T14:35:12Z"
},
{
"id": "saft_gen_xyz789uvw012",
"status": "completed",
"type": "monthly",
"period": {
"start_date": "2024-12-01",
"end_date": "2024-12-31"
},
"file": {
"filename": "SAFT_PT_123456789_2024_12.xml",
"size": 1987654,
"expires_at": "2025-01-07T10:15:30Z"
},
"created_at": "2025-01-07T10:10:15Z",
"completed_at": "2025-01-07T10:15:30Z"
}
],
"total": 24,
"page": 1,
"per_page": 10
}Tratamento de Erros
400 Bad Request
Período inválido ou parâmetros em falta.
{
"error": {
"type": "validation_error",
"code": "invalid_period",
"message": "Data de início deve ser anterior à data de fim",
"details": {
"start_date": "2025-02-01",
"end_date": "2025-01-31"
}
}
}422 Unprocessable Entity
Erro durante a geração do SAF-T.
{
"error": {
"type": "generation_error",
"code": "data_integrity_error",
"message": "Foram encontrados documentos com dados inconsistentes",
"details": {
"invalid_documents": ["doc_123", "doc_456"],
"issues": ["missing_tax_rate", "invalid_customer_data"]
}
}
}Retenção de Ficheiros
Os ficheiros SAF-T gerados são mantidos durante 7 dias após a geração. Depois desse período, devem ser gerados novamente se necessário.