Este artigo explica como os campos do SAF-T português são mapeados para o RetailForce DOM.
A estrutura de dados XML descrita abaixo segue a descrita no Decreto-Lei n.º 302/2016 e nas publicações subsequentes.
Se os campos forem obrigatórios no SAF-T (PT), são também tornados obrigatórios no RetailForce DOM.
As tabelas seguintes não são, atualmente, geradas pelo RetailForce
- Tabela de códigos de conta (GeneralLedgerAccounts),
- Tabela de fornecedores,
- Lançamentos contabilísticos (GeneralLedgerEntries),
Header
As informações no header do SAF-T provêm principalmente dos dados mestre na configuração.
| Nome do campo SAF-T (PT) | RetailForce DOM | Mandato | Notas | Formato | Exemplo | |
| <AuditFileVersion> | - | sim |
Versão atual do esquema XML O valor é definido (codificado de forma fixa) na release do RetailForce |
Texto 10 | 1.04_01 | |
| <CompanyID> | Número de identificação da empresa | sim | Número de registo comercial da empresa | Texto 50 | 513076549 | |
| <Número de Registo Fiscal> | Número de identificação fiscal da empresa | sim | NIF português (sem espaços nem prefixo do país) | Int 9 | 513076549 | |
| <BaseContabilísticaFiscal> | - | sim |
Definição condicional na configuração:
|
Texto 1 | R | |
| <Nome da Empresa> | NomeDaEmpresa | sim | Nome da empresa do contribuinte | Texto 100 | XYZ Retalho | |
| <Nome da Empresa> | n.a. | não | Denominação comercial do contribuinte | Texto 60 | Melhor loja | |
| <Endereço da empresa> | Endereço da empresa | sim | Morada do contribuinte | - | ||
| <Número do edifício> | - | não | Texto 10 | 85 | ||
| <Nome da rua> | Endereço da Empresa.Rua | não | Texto 200 | R. de Belém | ||
| <Detalhes do endereço> |
Endereço da Empresa.Rua + EndereçoDaEmpresa.StreetNumber |
sim |
Deve conter
, se aplicável |
Texto 210 | R. de Belém, 100 | |
| <Cidade> | EndereçoDaEmpresa.Cidade | sim | Texto 50 | Póvoa de Santa Catarina | ||
| <POSTALCODE> | Endereço da Empresa.PostalCode | sim | Texto 8 | 3140-584 | ||
| <Região> | n.d. | não | Texto 50 | |||
| <País> | «PT» predefinido | sim | Texto 2 | PT | ||
| <Ano fiscal> | Mês de início do ano fiscal | sim | calculado a partir do Mês de Início do Ano Fiscal | Int 4 | 2026 | |
| <Data de Início> | fromDate | sim |
Data de início do período do ficheiro (StartDate) Exportar «fromDate» |
Data | 01/02/2026 | |
| <EndDate> | UntilDate | sim |
Data de fim do período do ficheiro (EndDate) Exportar «UntilDate» |
Data | 28/02/2026 | |
| <Código da moeda> | CashRegister.CurrencyIsoCode | sim | Indique a moeda predefinida - «EUR» | Texto 3 | EUR | |
| <DATECREATED> | Data atual em que a exportação foi criada | sim | Data em que o SAF-T (PT) foi criado | Data | 2026-10-08 | |
| <TaxEntity> | StoreNumber | sim | Deve ser especificado o estabelecimento a que se refere o ficheiro produzido | Texto 20 | Sede | |
| <NIF da empresa do produto> | sim | NIF do fabricante do software | Texto 20 | 503140600 | ||
| <Número do Certificado do Software> | sim | Número do certificado atribuído à entidade produtora do software, em conformidade com o Decreto n.º 363/2010, de 23 de junho. | Int | 9999 | ||
| <ProductID> | CashRegister.Software.Brand+'/'+CashRegister.Software.SoftwareCompany | sim |
Nome da aplicação que gera o SAF-T (PT). O nome comercial do software e o da empresa produtora, no formato «Nome da aplicação/Nome da empresa produtora do software». |
Texto 255 | SuperPOS/ABC Software | |
| <Versão do produto> | CashRegister.Software.Version | sim | Deve ser indicada a versão da aplicação que gerou o ficheiro. | Texto 30 | 1.11.2 | |
| <Comentário do cabeçalho> | n.a. | não | ||||
| <Telefone> | n.a. | não | ||||
| <Fax> | n.d. | não | ||||
| <E-mail> | n.d. | não | ||||
| <Sítio Web> | n.d. | não | ||||
Ficheiros principais
Os ficheiros principais contêm os dados reais das faturas.
Tabela de clientes
A tabela de clientes é gerada a partir dos dados incluídos nos documentos (faturas, recibos, etc.).
| Nome do campo SAF-T (PT) | RetailForce DOM | Mandato | Notas | Formato | |
| <CustomerID> |
Se Partner.IsBusiness: true
Se Partner.IsBusiness: false
|
sim |
Identificador único do cliente (CustomerID) Não pode existir mais do que um registo com o mesmo CustomerID na lista de clientes. No caso dos consumidores finais, deve ser criado um cliente genérico com a designação «Consumidor final». |
Texto 30 | |
| <AccountID> |
Uma vez que não são apresentados dados contabilísticos (razão), utilize o valor «Desconhecido» «Desconhecido» |
sim |
Código da conta (AccountID) A conta corrente do cliente no plano de contas deve ser indicada, caso esteja definida. Caso contrário, deve ser preenchida com a designação «Desconhecido». |
Texto 30 | |
| <CustomerTaxID> |
Se IsBusiness: true:
Se IsBusiness: false:
|
sim |
Número de identificação fiscal do cliente (CustomerTaxID) Este deve ser indicado sem o prefixo do país. O cliente genérico, correspondente ao designado «Consumidor final», deve ser identificado com o número de identificação fiscal «999999990». |
Texto 30 | |
| <CompanyName> |
Se IsBusiness: true:
Se IsBusiness: false:
|
sim |
Nome da empresa (CompanyName) O cliente genérico deve ser identificado como «Consumidor final» («Consumidor final»). |
Texto 100 | |
| <Contacto> | não | Nome do contacto na empresa (Contact) | Texto 50 | ||
| <BILLINGADDRESS> | sim |
Endereço de faturação (BillingAddress) Corresponde à morada da sede ou do estabelecimento permanente no território nacional. |
N/A | ||
| <BuildingNumber> | não | Número do edifício (BuildingNumber) | Texto 20 | ||
| <Nome da rua> | Partner.Street | n.º | Nome da rua (StreetName) | Texto 200 | |
| <AddressDetail> |
Partner.Rua + Partner.StreetNumber Utiliza-se «Desconhecido» se IsBusiness: false e não for indicado qualquer endereço |
sim |
Morada detalhada (AddressDetail) Deve incluir o nome da rua, o número do quarteirão e o piso, se aplicável. Deve ser preenchido com a designação «Desconhecido» nas seguintes situações:
|
Texto 210 | |
| <Cidade> |
Partner.City Utiliza-se «Desconhecido» se IsBusiness: false e não for indicado qualquer endereço |
sim |
Localização (Cidade) Deve ser preenchido com a designação «Desconhecido» nas seguintes situações:
|
Texto 50 | |
| <POSTALCODE> |
PostalCode Utiliza-se «Desconhecido» se IsBusiness: false e não for indicado qualquer endereço |
sim |
Código postal (PostalCode) Deve ser preenchido com a menção «Desconhecido» nas seguintes situações:
|
Texto 20 | |
| <Região> |
Se indicado:
|
n.º | Distrito | Texto 50 | |
| <País> |
Partner.CountryCode convertido para ISO 3166 ALPHA-2 Utiliza-se «Desconhecido» se IsBusiness: false e não for indicado qualquer endereço |
sim |
Se for conhecido, deve ser preenchido de acordo com a norma ISO 3166 – 1-alpha-2. Deve ser preenchido com a designação «Desconhecido» nas seguintes situações:
|
Texto 12 | |
| <ShipToAddress> | incluído se partner.addressType: [2] = DeliveryAddress for indicado | não |
Morada de entrega (ShipToAddress) Caso seja necessária mais do que uma referência, esta estrutura pode ser gerada tantas vezes quantas forem necessárias. |
N/A | |
| <BuildingNumber> | n.a. | não | Número do edifício (BuildingNumber) | Texto 10 | |
| <Nome da Rua> | rua | n.º | Nome da rua (StreetName) | Texto 200 | |
| <Detalhes do Endereço> |
rua + streetNumber |
sim |
Endereço detalhado (AddressDetail) Deve incluir o nome da rua, o número do quarteirão e o piso, se aplicável. Deve ser preenchido com a indicação «Desconhecido» nas seguintes situações:
|
Texto 210 | |
| <Cidade> | cidade | sim |
Localização (Cidade) Deve ser preenchido com a designação «Desconhecido» nas seguintes situações:
|
Texto 50 | |
| <POSTALCODE> | PostalCode | sim |
Código postal (PostalCode) Deve ser preenchido com a menção «Desconhecido» nas seguintes situações:
|
Texto 20 | |
| <Região> | comunidade | n.º | Distrito | Texto 50 | |
| <País> | CountryCode convertido para ISO 3166 ALPHA-2 | sim |
Se for conhecido, deve ser preenchido de acordo com a norma ISO 3166 – 1-alpha-2. Deve ser preenchido com a designação «Desconhecido» nas seguintes situações:
|
Texto 12 | |
| <Telefone> | n.a. | não | telefone | Texto 20 | |
| <Fax> | n.d. | não | fax | Texto 20 | |
| <E-mail> | n.d. | não | Endereço de e-mail da empresa | Texto 254 | |
| <Sítio Web> | n.d. | não | Endereço do site da empresa | Texto 60 | |
| <SelfBillingIndicator> | A autofaturação não é suportada no RetailForce; indique sempre «0». | sim |
Indicador de autofaturação (SelfBillingIndicator) Indicador da existência de um acordo de autofaturação entre o cliente e o fornecedor. Deve ser preenchido com «1» se existir um acordo e com «0» (zero) se não existir acordo. |
Int | |
Tabela de Produtos/Serviços
| Nome do campo SAF-T (PT) | RetailForce DOM | Mandato | Notas | Formato | |
| <ProductType> |
positions.ItemType No caso de imposto adicional:
No caso de depósitos:
Mapeamento:
Atualmente, são suportados os custos de envio |
sim |
Indicador de produto ou serviço (ProductType) Deve ser preenchido com: «P» – Produtos; «S» – Serviços; «O» – Outros (por exemplo, despesas de envio, adiantamentos recebidos ou alienação de ativos); «E» – Impostos Especiais de Consumo – (por exemplo, IABA, ISP, IT); «I» – Impostos, taxas e encargos parafiscais – exceto o Vat e o IS, que devem ser refletidos na tabela 2.5 – Tabela Fiscal (TaxTable) e os Impostos Especiais de Consumo, que devem ser preenchidos com o código «E». |
Texto 1 | |
| <ProductCode> | positions.ItemId | sim |
Identificador do produto ou serviço (ProductCode) Código único do produto na lista de produtos. |
Texto 60 | |
| <ProductGroup> | positions.ItemGroupCaption | não | Família de produtos ou serviços (ProductGroup) | Texto 50 | |
| <ProductDescription> | Posições.ItemCaption | sim |
Descrição do produto ou serviço (ProductDescription) Esta descrição deve corresponder à designação habitual dos bens ou serviços fornecidos, especificando os elementos necessários para determinar a taxa de imposto aplicável. |
Texto 200 | |
| <ProductNumberCode> |
posições.GTIN, se especificado caso contrário positions.ItemId |
sim |
Código do produto (ProductNumberCode) Deve ser utilizado o código EAN (Barcode) do produto. Caso este não exista, preencha o valor do campo 2.4.2. — Identificador do produto ou serviço (ProductCode). |
Texto 60 | |
| <CustomsDetails> | não | Detalhes aduaneiros | N/A | ||
| <CNCode> | n.a. | não |
Código da Nomenclatura Combinada (CNCode) Preencha com o código da nomenclatura de mercadorias da União Europeia. Caso seja necessária mais do que uma referência, este campo pode ser preenchido tantas vezes quantas forem necessárias. |
Texto 8 | |
| <N.º ONU> | n.a. | não |
Número ONU (UNNumber) Indique o número ONU para mercadorias perigosas. Caso seja necessária mais do que uma referência, este campo pode ser preenchido tantas vezes quantas forem necessárias. |
Texto 4 | |
Tabela fiscal
| Nome do campo SAF-T (PT) | RetailForce DOM | Mandato | Notas | Formato | Exemplo | |
| <TaxTableEntry> | sim | Entrada na tabela de impostos (TaxTableEntry) | N/A | |||
| <TaxType> | Atualmente, apenas o «IVA» (Imposto sobre o Valor Acrescentado) é suportado. | sim |
Código do tipo de imposto (TaxType) O tipo de imposto deve ser indicado neste campo. Deve ser preenchido com: «IVA» – Imposto sobre o valor acrescentado; «IS» – Imposto de selo; «NS» – Não sujeito a Vat nem a imposto de selo. |
Texto 3 | ||
| <TaxCountryRegion> |
derivado de FiscalRegions (da loja)
Correspondência:
|
sim |
País ou região fiscal (TaxCountryRegion) Deve ser preenchido de acordo com a norma ISO 3166-1 alfa-2. No caso das Regiões Autónomas da Madeira e dos Açores, deve ser preenchido com: «PT-AC» — Área fiscal da Região Autónoma dos Açores; e «PT-MA» — Área fiscal da Região Autónoma da Madeira. |
Texto 5 | ||
| <TaxCode> |
VatIdentification Em Portugal, aplicam-se as seguintes taxas de Vat: Portugal: Taxa normal: 23% Taxa reduzida: 6% Taxa intermédia: 13% Açores: Taxa normal: 16% Taxa reduzida: 4% Taxa intermédia: 9% Madeira: Taxa normal: 22% Taxa reduzida: 4% (válida a partir de: 01/10/2024) Taxa intermédia: 12% |
sim |
Código fiscal (TaxCode) No caso do campo 2.5.1.1 — Código do tipo de imposto (TaxType) = Vat, deve ser preenchido com:
No caso do campo 2.5.1.1 — Código do Tipo de Imposto (TaxType) = IS, deve ser preenchido com:
No caso de isenção de responsabilidade, deve ser preenchido com «NS». Nos recibos emitidos sem discriminação fiscal, deve ser preenchido com «NA». |
Texto 10 | ||
| <Descrição> |
gerado de acordo com a VatIdentification para efeitos de IVA
Imposto de selo atualmente não suportado |
sim | Descrição do imposto (Descrição) | Texto 255 | ||
| <TaxExpirationDate> | não |
Data de validade (TaxExpirationDate) Última data legal de aplicação da taxa de imposto, no caso de uma alteração da mesma, durante o período de tributação. |
Data | |||
| <TaxPercentage> | Positions.VatPercent | sim |
Percentagem da taxa de imposto (TaxPercentage) Este campo deve ser preenchido caso se trate de uma percentagem de imposto. No caso de isenção ou não tributação, utilize este campo com o valor «0» (zero). |
Decimal | ||
| <TaxAmount> | O campo «TaxType» não é suportado | sim |
Montante do imposto (TaxAmount) Este campo deve ser preenchido se se tratar de um montante fixo de imposto de selo. |
Monetário | ||
Documentos comerciais (SourceDocuments)
Esta secção contém os documentos efetivamente enviados pelo sistema a montante.
Documentos comerciais para clientes (SalesInvoices)
Esta secção contém os seguintes documentTypes:
- 0 / [0] = Recibo
- 1 / [1] = Fatura
| Nome do campo SAF-T (PT) | RetailForce DOM | Mandato | Notas | Formato | ||||
| <SalesInvoices> |
DocumentType:
|
Documentos comerciais destinados aos clientes (Faturas de Venda) | N/A | |||||
| <NúmeroDeEntradas> | Contagem do número de documentos comerciais incluídos no ficheiro de SAF-T export atual. | sim | Número de registos de documentos comerciais (NumberOfEntries) | Int | ||||
| <TotalDebit> | Soma do NetValue das posições de transações de devolução incluídas no ficheiro de exportação SAF-T | sim | Total de débitos (TotalDebit) | Monetário | ||||
| <TotalCredit> | Soma do NetValue de todas as posições de transações de vendas incluídas no ficheiro de SAF-T export | sim | Total de créditos (TotalCredit) | Monetário | ||||
| <Fatura> | Documento de venda (Fatura) | N/A | ||||||
| <N.º da fatura> | fiscalResponse.AdditionalFields.InvoiceNo | sim |
Identificação única do documento de venda (N.º da fatura) Esta identificação é composta sequencialmente pelos seguintes elementos: o código interno do tipo de documento atribuído pela aplicação, um espaço, o identificador da série do documento, uma barra (/) e o número sequencial desse documento dentro dessa série. Não podem existir registos com a mesma identificação. O mesmo código interno de tipo de documento não pode ser utilizado em tipos de documento diferentes. |
Texto 60 | ||||
| <ATCUD> |
fiscalResponse.AdditionalFields.AtCud APENAS no caso da SAF-T export: O sistema a montante envia o ATCUD em fiscalisationAdditionalFields.AtCudPortugal |
sim |
Código Único do Documento (ATCUD) Este campo deve conter o Código Único do Documento. O campo deve ser preenchido com «0» (zero) até que seja regulamentado. O código ATCUD é obrigatório a partir de 2023. |
Texto 100 | ||||
| <DocumentStatus> | sim | Estado do documento (DocumentStatus) | N/A | |||||
| <InvoiceStatus> |
«N» para todas as transações (vendas e devoluções), mas não para anulações (cancelamentos) «A» se
«S» — não suportado «R» — não suportado «F» — não utilizado no RF |
sim |
Estado atual do documento (InvoiceStatus) Deve ser preenchido com:
|
Texto 1 | ||||
| <InvoiceStatusDate> | BookDate | sim |
Data e hora do estado atual do documento (InvoiceStatusDate) Data do último registo do estado do documento, com precisão até ao segundo. Formato de data e hora: «AAAA-MM-DDThh:mm:ss». |
DateTime | ||||
| <Motivo> | não |
Motivo da alteração do estado (Reason) Deve ser indicado o motivo da alteração do estado do documento. |
Texto 50 | |||||
| <SourceID> | user.ID | sim |
Código do utilizador (SourceID) Utilizador responsável pelo estado atual do documento. |
Texto 30 | ||||
| <SourceBilling> | apenas «P» é suportado | sim |
Origem do documento (SourceBilling) Deve ser preenchido com:
|
Texto 1 | ||||
| <Hash> |
fiscalResponse.signature APENAS no caso de SAF-T export: O sistema a montante envia o Hash em FiscalAdditionalFields.HashPortugal |
sim |
Chave do documento (Hash) Assinatura em conformidade com o Decreto-Lei n.º 363/2010, de 23 de junho. O campo deve ser preenchido com «0» (zero) se a certificação não for obrigatória. |
Texto 172 | ||||
| <HashControl> |
fiscalResponse.AdditionalFields.HashControlValue APENAS no caso de SAF-T export: O sistema a montante envia o HashControl em FiscalAdditionalFields.HashControlPortugal |
sim |
Chave de controlo (HashControl) Versão da chave privada utilizada para criar a assinatura no campo 4.1.4.4. — Chave do documento (Hash). O campo deve ser preenchido com «0» (zero) se o documento for gerado por um programa não certificado. |
Texto 70 | ||||
| <Período> |
Calculado a partir de FiscalYearStartMonth se o valor for, por exemplo, 3 (= março) e a exportação tiver sido efetuada para abril, o valor de <Período> é «2». |
sim |
Período contabilístico (Período) O mês do período fiscal deve ser indicado entre «1» e «12», a contar a partir da data do seu início. |
Int | ||||
| <InvoiceDate> | BookDate | sim |
Data do documento de venda (InvoiceDate) Data de emissão do documento de vendas. |
Data | ||||
| <InvoiceType> |
Mapeamento: FT: «documentType»: 1 / «[1] = Fatura FS: «DocumentType»: 0 / «[0] = Recibo FR: documentType: 0 / «[0] = Recibo se Document.Partner estiver definido (contiver dados). ND: não suportado NC: «DocumentType»: 0 / «[0] = Recibo» OU «DocumentType»: 1 / «[1] = Fatura» se:
VD, TV, TD, AA, DA obsoletos Setor dos seguros (RP, RE, CS, LD, RA) não suportado |
sim |
Tipo de documento (InvoiceType) Deve ser preenchido com:
No setor dos seguros, quando não incluído na tabela 4.3. — Documentos para verificação de bens ou serviços (Documentos de Trabalho), também pode ser preenchido com:
(a) Para dados até 31 de dezembro de 2012. |
Texto 2 | ||||
| <RegimesEspeciais> | sim | Regimes especiais (SpecialRegimes) | N/A | |||||
| <SelfBillingIndicator> | sempre definido como «0» | sim |
Indicador de autofaturação (SelfBillingIndicator) Deve ser preenchido com «1» se se aplicar a autofaturação e com «0» (zero) caso contrário. |
Int | ||||
| <CashVATSchemeIndicator> |
Definição na configuração
|
sim |
Indicador do Regime de Vat em Dinheiro (CashVATSchemeIndicator) Indicador de adesão ao regime de Vat de caixa. Deve ser preenchido com «1» em caso de adesão e com «0» (zero) caso contrário. |
Int | ||||
| <ThirdPartiesBillingIndicator> | A faturação por terceiros não é suportada. Por conseguinte, deve ser sempre «0» | sim |
Indicador de faturação emitida em nome e por conta de terceiros (ThirdPartiesBillingIndicator) Deve ser preenchido com «1» se se referir a faturação emitida em nome e por conta de terceiros e com «0» (zero) nos restantes casos. |
Int | ||||
| <SourceID> | user.ID | sim |
Código do utilizador (SourceID) Utilizador que gerou o documento. |
Texto 30 | ||||
| <EACCode> | não |
Código CAE (EACCode) Deve ser indicado o código CAE relativo à atividade associada à emissão deste documento. |
Texto 5 | |||||
| <SYSTEMENTRYDATE> | BookDate | sim |
Data de registo do documento (SystemEntryDate) Data de registo com precisão até ao segundo, no momento da assinatura. Formato de data e hora: «AAAA-MM-DDThh:mm:ss». |
DateTime | ||||
| <TRANSACTIONID> | n.a. (solução não integrada) | sim |
Identificador da transação (TransactionID) Este campo deve ser preenchido no caso de um sistema integrado de contabilidade e faturação, mesmo que o tipo de ficheiro (TaxAccountingBasis) não deva conter as tabelas relativas à contabilidade. Deve ser indicada a chave única da tabela 3. Movimentos contabilísticos (GeneralLedgerEntries) da transação em que este documento foi lançado, de acordo com a regra aí definida para o campo 3.4.3.1 — Chave única do movimento contabilístico (transactionId). |
Texto 70 | ||||
| <CustomerID> | partner.id | sim |
Identificador do cliente (CustomerID) Chave única para a tabela 2.2. – Tabela de clientes (Customer), em conformidade com a regra aí definida para o campo 2.2.1. – Identificador único do cliente (CustomerID). |
Texto 30 | ||||
| <ShipTo> | se deliveryAddress estiver definido como «partner» | não |
Local de descarga (ShipTo) Informação relativa ao local e à data de descarga onde os artigos vendidos são colocados à disposição do client, ou de quem este indicar no caso de operações triangulares. |
N/A | ||||
| <DeliveryID> | não |
Identificador da entrega (DeliveryID) No caso de transações triangulares, devem ser indicados o local de entrega e o número de Vat do destinatário. |
Texto 255 | |||||
| <Data de Entrega> | não |
Data de entrega (DeliveryDate) No setor dos seguros, este campo deve ser preenchido com a data de término do período de cobertura do risco. |
Data | |||||
| <WarehouseID> | não | Identificador do armazém de destino (WarehouseID) | Texto 50 | |||||
| <LocationID> | não | Localização das mercadorias no armazém de destino (LocationID) | Texto 30 | |||||
| <Address> | não | Endereço | N/A | |||||
| <Número do edifício> | não | Número do edifício (BuildingNumber) | Texto 10 | |||||
| <Nome da rua> | partner.street | n.º | Nome da rua (StreetName) | Texto 200 | ||||
| <AddressDetail> |
partner.street + partner.streetNumber |
sim | Deve incluir o nome da rua, o número da rua e o piso, se aplicável. | Texto 210 | ||||
| <Cidade> | partner.city | sim | Cidade | Texto 50 | ||||
| <POSTALCODE> | partner.PostalCode | sim | Código postal | Texto 20 | ||||
| <Região> | não | Distrito | Texto 50 | |||||
| <País> |
CountryCode do país do parceiro convertido para ISO 3166 ALPHA-2 |
sim | Deve ser preenchido em conformidade com a norma ISO 3166 - 1-alpha-2. | Texto 2 | ||||
| <ShipFrom> | storeAddress (da Configuração) | sim |
Local de carregamento (ShipFrom) Informações sobre o local e a data de carregamento onde tem início o envio dos artigos vendidos ao cliente. |
N/A | ||||
| <DeliveryID> | não |
Identificador da entrega (DeliveryID) Deve ser indicado o número de matrícula do veículo de transporte ou do meio de envio utilizado, por exemplo, serviço de correio expresso, etc. |
Texto 255 | |||||
| <DeliveryDate> | não |
Data de receção (DeliveryDate) No setor dos seguros, este campo deve ser preenchido com a data de início do período de cobertura do risco. |
Data | |||||
| <WarehouseID> | não | Identificador do armazém de partida (WarehouseID) | Texto 50 | |||||
| <LocationID> | não | Localização das mercadorias no armazém de partida (LocationID) | Texto 30 | |||||
| <Address> | não | Endereço | N/A | |||||
| <Número do edifício> | não | Número do edifício (BuildingNumber) | Texto 10 | |||||
| <Nome da rua> | storeAddress.street (da Configuração) | não | Nome da rua (StreetName) | Texto 200 | ||||
| <AddressDetail> |
storeAddress.street + storeAddress.streetNumber (da Configuração) |
sim | Deve incluir o nome da rua, o número da rua e o piso, se aplicável. | Texto 210 | ||||
| <Cidade> | storeAddress.city (da Configuração) | sim | Cidade | Texto 50 | ||||
| <POSTALCODE> | storeAddress.PostalCode (da Configuração) | sim | Código postal | Texto 20 | ||||
| <Região> | não | Distrito | Texto 50 | |||||
| <País> | storeAddress.country convertido para ISO 3166 ALPHA-2 (a partir da Configuração) | sim | Deve ser preenchido de acordo com a norma ISO 3166 - 1-alpha-2. | Texto 2 | ||||
| <MovementEndTime> | n.a. | não |
Data e hora do fim do transporte (MovementEndTime) Tipo de data e hora: «AAAA-MM-DDThh:mm:ss», em que «ss» pode ser «00» na ausência de informações específicas. |
DateTime | ||||
| <MovementStartTime> | n.a. | sim |
Data e hora do início do transporte (MovementStartTime) Tipo de data e hora: «AAAA-MM-DDThh:mm:ss», em que «ss» pode ser «00» na ausência de informação específica. Este campo deve ser preenchido se o documento também servir como documento de transporte, em conformidade com as disposições do Regime das Mercadorias em Circulação, aprovado pelo Decreto-Lei n.º 147/2003, de 11 de julho. |
DateTime | ||||
| <Line> | sim | N/A | ||||||
| <Número da Linha> | positions.PositionNumber + 1 | sim |
Número da linha (LineNumber) As linhas devem ser exportadas na mesma ordem em que aparecem no documento original. |
Int | ||||
| <OrderReferences> | n.a. | não |
Referência ao documento de origem (OrderReferences) Caso seja necessária mais do que uma referência, esta estrutura pode ser gerada tantas vezes quantas forem necessárias. |
N/A | ||||
| <OriginatingON> | n.a. | não |
Número do documento de origem (OriginatingON) Devem ser indicados o tipo, a série e o número do documento que fundamenta a emissão do presente documento. Caso o documento esteja incluído no SAF-T (PT), deve ser utilizada a estrutura de numeração do campo de origem. |
Texto 60 | ||||
| <OrderDate> | n.a. | não | Data do documento de origem (OrderDate) | Data | ||||
| <ProductCode> | positions.ItemId | sim |
Identificador do produto ou serviço (ProductCode) Chave do registo na tabela 2.4. – Tabela de produtos/serviços (Product), no campo 2.4.2. – Identificador do produto ou serviço (ProductCode). |
Texto 60 | ||||
| <ProductDescription> | positions.itemCaption | sim |
Descrição do produto ou serviço (ProductDescription) Descrição da linha da fatura, associada à tabela 2.4. – Tabela de produtos/serviços (Product), no campo 2.4.4. – Descrição do produto ou serviço (ProductDescription). |
Texto 200 | ||||
| <Quantidade> | posições.Quantidade | sim | Quantidade | Decimal | ||||
| <UnidadeDeMedida> |
Posições.UnidadeDeQuantidade.isoCode Utilizar códigos ISO/UCUM |
sim | Unidade de medida (UnitOfMeasure) | Texto 20 | ||||
| <UnitPrice> | calculado a partir de: BaseNetValue / quantidade | sim |
Preço unitário (UnitPrice) Preço unitário deduzido dos descontos de linha e de header, excluindo impostos. Deve ser preenchido com «0,00» se o campo 4.1.4.19.8 tiver de ser preenchido. - Valor unitário tributável (TaxBase). |
Monetário | ||||
| <TaxBase> |
Utilizado apenas para artigos gratuitos, se GrossValue: 0 e BaseGrossValue > 0 |
sim |
Valor tributável unitário (TaxBase) Valor tributável unitário que não contribui para o total do documento sem impostos (TotalLíquido). Este valor é utilizado como base para o cálculo dos impostos relativos à linha. O sinal (débito ou crédito) com que o imposto assim calculado contribui para o ImpostoA Pagar resulta da existência de MontanteDeDébito ou MontanteDeCrédito na linha. |
Monetário | ||||
| <TaxPointDate> |
para «DocumentType»: 0 / «[0] = Recibo
para DocumentType": 1 / "[1] = Fatura
|
sim |
Data de expedição das mercadorias ou de prestação dos serviços (TaxPointDate) Data de expedição das mercadorias ou de prestação dos serviços. Deve ser preenchido com a data da nota de entrega associada, caso exista. Caso exista mais do que uma nota de entrega, deve ser indicada a data da mais antiga. |
Data | ||||
| <Referências> |
Referências a faturas (Referências) Referências a faturas nos respetivos documentos de correção. Caso seja necessária mais do que uma referência, esta estrutura pode ser gerada tantas vezes quantas forem necessárias. |
N/A | ||||||
| <Referência> | documentReference.fiscalDocumentNumber | não | Referência à fatura ou à fatura simplificada, através da sua identificação única, nos sistemas em que esta exista. Deve ser utilizada a estrutura de numeração do campo de origem. | Texto 60 | ||||
| <Motivo> | documentReference.returnReasonText | não | Deve ser preenchido com o motivo da emissão. | Texto 50 | ||||
| <Descrição> | positions.itemCaption | sim | Descrição da linha do documento. | Texto 200 | ||||
| <Número de Série do Produto> | não | Número de série do produto (ProductSerialNumber) | N/A | |||||
| <Número de Série> | positions.ItemSerialNumber | sim |
Número de série Deve incluir o número de série do produto indicado no documento. Por exemplo: VIN, IMEI, ISSN, ISAN. Caso seja necessária mais do que uma referência, este campo pode ser gerado tantas vezes quantas forem necessárias. |
Texto 100 | ||||
| <DebitAmount> | posições.netNetValue da respetiva posição de devolução | sim |
Montante de Débito (DebitAmount) Montante da linha, sem impostos, dos documentos a lançar na conta de vendas. Este montante é deduzido dos descontos de linha e de header. |
Monetário | ||||
| <CreditAmount> | posições.netNetValue da respetiva posição de vendas | sim |
Montante de crédito Montante da linha, sem impostos, dos documentos a lançar como crédito na conta de vendas. Este montante é deduzido dos descontos de linha e de header. |
Monetário | ||||
| <Imposto> | sim | Taxa de imposto | N/A | |||||
| <Tipo de imposto> | é sempre indicado «IVA» | sim |
Código do tipo de imposto (TaxType) O tipo de imposto deve ser indicado neste campo. Deve ser preenchido com:
|
Texto 3 | ||||
| <TaxCountryRegion> |
derivado de FiscalRegions (da loja)
Correspondência:
|
sim |
País ou região fiscal (TaxCountryRegion) Deve ser preenchido de acordo com a norma ISO 3166-1-alpha-2. No caso das regiões autónomas da Madeira e dos Açores, deve ser preenchido com:
|
Texto 5 | ||||
| <TaxCode> |
VatIdentification Em Portugal, aplicam-se as seguintes taxas de Vat: Portugal: Taxa normal: 23% Taxa reduzida: 6% Taxa intermédia: 13% Açores: Taxa normal: 16% Taxa reduzida: 4% Taxa intermédia: 9% Madeira: Taxa normal: 22% Taxa reduzida: 4% (válida a partir de: 01/10/2024) Taxa intermédia: 12% |
sim |
Código fiscal (TaxCode) Código fiscal na tabela de impostos. No caso do campo 4.1.4.19.15.1. — Código do tipo de imposto (TaxType) = Vat, deve ser preenchido com:
No caso do campo 4.1.4.19.15.1 — Código do tipo de imposto (TaxType) = IS, deve ser preenchido com:
No caso de não sujeição, deve ser preenchido com «NS». |
Texto 10 | ||||
| <TaxPercentage> | Positions.VatPercent | sim |
Percentagem de imposto (TaxPercentage) Este campo deve ser preenchido caso se trate de uma percentagem de imposto. A percentagem de imposto corresponde ao imposto aplicável ao campo 4.1.4.19.13. — Montante de débito (DebitAmount) ou ao campo 4.1.4.19.14. — Montante de crédito (CreditAmount). Em caso de isenção ou não tributação, utilize este campo com o valor «0» (zero). |
Decimal | ||||
| <TaxAmount> | TaxType não é suportado | sim |
Montante do imposto (TaxAmount) Este campo deve ser preenchido se se tratar de um montante fixo por unidade relativo ao imposto de selo. Este montante, multiplicado pela quantidade (Quantity), contribui para o imposto a pagar (TaxPayable). |
Monetário | ||||
| <TaxExemptionReason> |
Códigos de motivo de isenção M01-M99 fiscalResponse.printingFields |
sim |
Motivo da isenção fiscal (TaxExemptionReason) Este campo deve ser preenchido quando os campos 4.1.4.19.15.4 — Percentagem de imposto (TaxPercentage) ou 4.1.4.19.15.5 — Montante do imposto (TaxAmount) forem iguais a zero. Deve ser indicada a disposição legal aplicável. Este campo deve também ser preenchido nos casos de isenção dos impostos referidos na Tabela 2.5. — Tabela de impostos (TaxTable). |
Texto 60 | ||||
| <TaxExemptionCode> | Consulte os códigos de motivo de isenção M01-M99 | sim |
Código do motivo de isenção fiscal (TaxExemptionCode) Deve ser preenchido com o código do motivo de isenção ou de não tributação, que pode ser consultado no Manual de Integração de Software – Comunicação de Faturas à AT. Este campo deve ser preenchido quando os campos 4.1.4.19.15.4 — Percentagem de imposto (TaxPercentage) ou 4.1.4.19.15.5 — Montante do imposto (TaxAmount) forem iguais a zero. Este campo deve também ser preenchido nos casos de isenção dos impostos referidos na tabela 2.5. – Tabela de impostos (TaxTable). |
Texto 3 | ||||
| <SettlementAmount> | não |
Montante de liquidação da linha (SettlementAmount) Deve refletir todos os descontos concedidos (a proporção dos descontos globais para esta linha e os específicos da mesma linha) que afetam o valor do campo 4.1.4.20.3. – Total do documento com impostos (GrossTotal). |
Monetário | |||||
| <InformaçõesAduaneiras> | não | Informações aduaneiras (CustomsInformation) | N/A | |||||
| <ARCNo> | não |
Código de referência administrativa (ARCNo) Preencha com o código atribuído após a validação do documento administrativo eletrónico e-DA. Caso seja necessária mais do que uma referência, este campo pode ser gerado tantas vezes quantas forem necessárias. |
Texto 21 | |||||
| <IECAmount> | n.º |
Montante do imposto especial de consumo para a linha (IECAmount) Montante do imposto especial de consumo incluído na base tributável da linha do documento, caso não seja discriminado numa linha separada do documento, com o «Indicador de produto ou serviço (ProductType)» = E. |
Monetário | |||||
| <DocumentTotals> | sim | Totais do documento (DocumentTotals) | N/A | |||||
| <TaxPayable> | soma do valor do imposto (TaxValue) das posições | sim | Montante do imposto a pagar (TaxPayable) | Monetário | ||||
| <TotalLíquido> | soma do NetValue das posições | sim |
Montante total do documento, excluindo impostos (NetTotal) Este campo não deve incluir os montantes relativos aos impostos enumerados na Tabela 2.5. – Tabela de Impostos (TaxTable). |
Monetário | ||||
| <GrossTotal> | soma do valor bruto (GrossValue) das posições | sim |
Montante total do documento, incluindo impostos (GrossTotal) Este campo não deve refletir quaisquer impostos retidos na fonte incluídos na estrutura 4.1.4.21. – Imposto retido na fonte (WithholdingTax) |
Monetário | ||||
| <Moeda> | apenas se payments.CurrencyIsoCode != EUR | não | Não deve ser gerado se o documento for emitido em euros. | N/A | ||||
| <Código da moeda> | payments.currencyIsoCode | sim |
Código da moeda (CurrencyCode) No caso de moeda estrangeira, este campo deve ser preenchido de acordo com a norma ISO 4217. |
Texto 3 | ||||
| <CurrencyAmount> | payments.ForeignAmount | sim |
Montante total em moeda estrangeira (CurrencyAmount) Valor do campo 4.1.4.20. 3. – Total do documento, incluindo impostos (GrossTotal), na moeda original do documento. |
Monetário | ||||
| <ExchangeRate> | payments.ForeignAmountExchangeRate | sim |
Taxa de câmbio (ExchangeRate) Deve ser indicada a taxa de câmbio utilizada para a conversão para EUR. |
Decimal | ||||
| <Liquidação> | não |
Acordos ou métodos de pagamento. Caso seja necessária mais do que uma referência, esta estrutura pode ser gerada tantas vezes quantas forem necessárias. |
N/A | |||||
| <Desconto de Liquidação> | não |
Acordos de desconto futuros (SettlementDiscount) Deve ser preenchido com os acordos de desconto a aplicar no futuro sobre o valor atual. |
Texto 30 | |||||
| <MontanteDeLiquidação> | não |
Montante de liquidação (SettlementAmount) Representa o montante acordado para desconto futuro, sem afetar o valor atual do documento indicado no campo 4.1.4.20.3. — Total do documento com impostos (GrossTotal). |
Monetário | |||||
| <SettlementDate> | não |
Data de liquidação acordada (SettlementDate) A informação a incluir é a data acordada para o pagamento com desconto |
Dados | |||||
| <PAYMENTTERMS> | não |
Condições de pagamento A informação a incluir é a condição acordada ou o prazo de pagamento. |
Texto 100 | |||||
| <Pagamento> | não |
No caso de pagamentos mistos, os montantes devem ser indicados por tipo de meio de pagamento e data de pagamento. Caso seja necessária mais do que uma referência, esta estrutura pode ser gerada tantas vezes quantas forem necessárias. |
N/A | |||||
| <Mecanismo de Pagamento> |
payments.PaymentType Mapeamento:
|
não |
Meios de pagamento (Mecanismo de Pagamento) Deve ser preenchido com:
|
Texto 2 | ||||
| <PAYMENTAMOUNT> | payments.amount | não |
Montante do pagamento (PaymentAmount) Deve ser indicado o montante por método de pagamento. |
Monetário | ||||
| <PAYMENTDATE> | não | Data de pagamento (PaymentDate) | Data | |||||
| <WithholdingTax> | não |
Imposto retido na fonte Caso seja necessária mais do que uma referência, esta estrutura pode ser gerada tantas vezes quantas forem necessárias. |
N/A | |||||
| <Tipo de Imposto Retido na Fonte> | não |
Código do tipo de imposto retido na fonte (WithholdingTaxType) Neste campo, deve indicar o tipo de imposto retido na fonte, preenchendo-o com:
|
Texto 3 | |||||
| <WithholdingTaxDescription> | não |
Motivo da retenção na fonte (WithholdingTaxDescription) Deve ser indicada a disposição legal aplicável. Se o código do tipo de imposto (WithholdingTaxType) for «IS», deve ser introduzido o respetivo código fiscal. |
Texto 60 | |||||
| <WithholdingTaxAmount> | não |
Montante do imposto retido na fonte (WithholdingTaxAmount) Deve indicar-se o montante do imposto retido na fonte. |
Monetário | |||||
Outros documentos
Para além dos «documentos comerciais destinados aos consumidores (Faturas de Venda)», o SAF-T contém outros documentos:
- Documentos de movimentação de mercadorias (MovementOfGoods)
- Documentos relativos à verificação de mercadorias ou à prestação de serviços (Documentos de Trabalho)
- Documentos de recebimento emitidos (Pagamentos)
O mapeamento destas secções é equivalente à secção «Documentos comerciais para clientes (SalesInvoices)» e inclui dados dos documentTypes enumerados no artigo «Mapeamento de documentTypes SAF-T (PT)»
Este artigo foi traduzido automaticamente.
Comentários
0 comentários
iniciar sessão para comentar.