Portugal SAF-T
Key: pt-saft-v1
Portugal doesn’t have an e-invoicing format per se. Tax information is reported electronically to the AT (Autoridade Tributária e Aduaneira) either periodically in batches via a SAF-T (PT) report or individually in real time via a web service. This addon ensures that the GOBL documents have all the required fields to be able to be reported to the AT.
Sources
- Portaria n.o 302/2016 – SAF-T Data Structure & Taxonomies
- Portaria n.o 195/2020 – Comunicação de Séries Documentais, Aspetos Específicos
- Portaria n.o 195/2020 – Especificações Técnicas Código QR
- Comunicação dos elementos dos documentos de faturação à AT, por webservice
Extensions
Invoice Type
SAF-T’s InvoiceType
(Tipo de documento) specifies the type of a sales invoice. In GOBL,
this type can be set using the pt-saft-invoice-type
extension in the tax section. GOBL
will set the extension for you based on the type and the tax tags you set in your invoice.
Example:
pt-saft-invoice-type
pt-saft-invoice-type
Code | Name |
---|---|
FT | Standard Invoice |
FS | Simplified Invoice |
FR | Invoice-Receipt |
ND | Debit Note |
NC | Credit Note |
Payment Type
To report payment receipts to the AT, GOBL provides conversion from bill.Payment
documents. In a payment, the SAF-T’s PaymentType
(Tipo de documento) field specifies its
type. In GOBL, this type can be set using the pt-saft-payment-type
extension. GOBL will
set the extension automatically based on the type and the tax tags you set. The table
below shows how this mapping is done:
Code | Name | GOBL Type | GOBL Tax Tag |
---|---|---|---|
RG | Outro Recibo | receipt | |
RC | Recibo no âmbito do regime de IVA de Caixa | receipt | vat-cash |
For example:
pt-saft-payment-type
pt-saft-payment-type
Code | Name |
---|---|
RC | Receipt under the VAT Cash scheme |
RG | Other Receipt |
Tax Rate Code
The SAF-T’s TaxCode
(Código do imposto) is required for invoice items that apply VAT.
GOBL provides the pt-saft-tax-rate
extension to set this code at line tax level. It also
determines it automatically this code using the rate
field (when present). The following
table lists the supported tax codes and how GOBL will map them:
Code | Name | GOBL Tax Rate |
---|---|---|
NOR | Tipo Geral | standard |
INT | Taxa Intermédia | intermediate |
RED | Taxa Reduzida | reduced |
ISE | Isenta | exempt |
pt-saft-tax-rate
pt-saft-tax-rate
Code | Name |
---|---|
RED | Reduced |
INT | Intermediate |
NOR | Normal |
ISE | Exempt |
OUT | Other |
Tax exemption reason code
AT’s TaxExemptionCode
(Código do motivo de isenção de imposto) is a code that
specifies the reason the VAT tax is exempt in a Portuguese invoice. When the exempt
tag
is used in a tax combo, the ext
map’s pt-exemption-code
property is required.
For example, you could define an invoice line exempt of tax as follows:
pt-saft-exemption
pt-saft-exemption
Code | Name |
---|---|
M01 | Article 16, No. 6 of the VAT code |
M02 | Article 6 of the Decree-Law 198/90 of 19th June |
M04 | Exempt pursuant to article 13 of the VAT code |
M05 | Exempt pursuant to article 14 of the VAT code |
M06 | Exempt pursuant to article 15 of the VAT code |
M07 | Exempt pursuant to article 9 of the VAT code |
M09 | VAT - does not confer right to deduct / Article 62 paragraph b) of the VAT code |
M10 | VAT - exemption scheme / Article 57 of the VAT code |
M11 | Special scheme for tobacco / Decree-Law No. 346/85 of 23rd August |
M12 | Margin scheme - Travel agencies / Decree-Law No. 221/85 of 3rd July |
M13 | Margin scheme - Second-hand goods / Decree-Law No. 199/96 of 18th October |
M14 | Margin scheme - Works of art / Decree-Law No. 199/96 of 18th October |
M15 | Margin scheme - Collector’s items and antiques / Decree-Law No. 199/96 of 18th October |
M16 | Exempt pursuant to Article 14 of the RITI |
M19 | Other exemptions - Temporary exemptions determined by specific legislation |
M20 | VAT - flat-rate scheme / Article 59-D No. 2 of the VAT code |
M21 | VAT - does not confer right to deduct (or similar) - Article 72 No. 4 of the VAT code |
M25 | Consignment goods - Article 38 No. 1 paragraph a) of the VAT code |
M30 | VAT - reverse charge / Article 2 No. 1 paragraph i) of the VAT code |
M31 | VAT - reverse charge / Article 2 No. 1 paragraph j) of the VAT code |
M32 | VAT - reverse charge / Article 2 No. 1 paragraph l) of the VAT code |
M33 | VAT - reverse charge / Article 2 No. 1 paragraph m) of the VAT code |
M40 | VAT - reverse charge / Article 6 No. 6 paragraph a) of the VAT code, to the contrary |
M41 | VAT - reverse charge / Article 8 No. 3 of the RITI |
M42 | VAT - reverse charge / Decree-Law No. 21/2007 of 29 January |
M43 | VAT - reverse charge / Decree-Law No. 362/99 of 16th September |
M99 | Not subject to tax or not taxed |
Product Type
SAF-T’s ProductType
(Indicador de produto ou serviço) indicates the type of each line
item in an invoice. The pt-saft-product-type
extension used at line item level allows to
set the product type to one of the allowed values.
Example:
pt-saft-product-type
pt-saft-product-type
Code | Name |
---|---|
P | Goods |
S | Services |
O | Other |
E | Excise Duties |
I | Taxes/Fees |
Payment Means
The SAF-T’s PaymentMechanism
(Meios de pagamento) field specifies the payment means in a
sales invoice or payment. GOBL provides the pt-saft-payment-means
extension to set this
value in your bill.Invoice
advances or in you bill.Receipt
method. GOBL maps certain
payment mean keys automatically to this extension:
Code | Name | GOBL Payment Means |
---|---|---|
CC | Cartão crédito | card |
CD | Cartão débito | (*) |
CH | Cheque bancário | cheque |
CI | Letter of credit | (*) |
CO | Cheque ou cartão oferta | (*) |
CS | Compensação de saldos em conta corrente | netting |
DE | Dinheiro eletrónico | online |
LC | Letra comercial | promissory-note |
MB | Referências de pagamento para Multibanco | (*) |
NU | Numerário | cash |
OU | Outro | other |
PR | Permuta de bens | (*) |
TB | Transferência bancária ou débito direto autorizado | credit-transfer , debit-transfer or direct-debit |
TR | Títulos de compensação extrassalarial | (*) |
(*) For codes not mapped from a GOBL Payment Mean, use other
and explicitly set the
extension.
For example, in an GOBL invoice:
For example, in a GOBL receipt: