- Description
- Actions
- Workflows
- Documents
AT Portugal Guide
- Workflow automation: This app provides automated workflows for issuing invoices, onboarding suppliers, and managing fiscal submissions to the Autoridade Tributária e Aduaneira (AT).
- Legally compliant PDF documents: Invoices, payments and delivery notes are generated with a certified ATCUD and QR codes, as required by the Portuguese tax legislation.
- SAF-T (PT): The app makes workflow steps available to manage SAF-T (PT) entries for each supplier.
- Realtime and manual reporting options: Report in real-time via webservice or generate a file to upload through the AT’s portal.
- Supplier portal: Suppliers can generate SAF-T PT reports and create authorized series via the Supplier Portal.
- Supplier registration: Automatic registration (no onboarding process) with a single workflow step.
- White-label support: Invoicing can be performed either under a client’s brand (white-label) or directly by the issuing organization, according to operational needs.
Supported Document Types
The current integration supports the following document types for reporting to the AT:| Category | Code | Portuguese Name | English Translation |
|---|---|---|---|
| Invoices | FT | Fatura | Standard Invoice |
| FS | Fatura Simplificada | Simplified Invoice | |
| FR | Fatura-Recibo | Invoice-Receipt | |
| ND | Nota de Débito | Debit Note | |
| NC | Nota de Crédito | Credit Note | |
| Payment receipts | RG | Outro Recibo | Other Receipt |
| Transport documents | GR | Guia de Remessa | Delivery Note |
| GT | Guia de Transporte | Waybill | |
| GD | Guia de Devolução | Return Guide | |
| GC | Guia de Consignação | Consignment Guide |
FAQ
Invoicing questionsShould our customers upload their SAF-T files manually?
Should our customers upload their SAF-T files manually?
- SAF-T monthly export – a single XML file including all documents for the month. This file is generated by the invoicing software and then uploaded manually to the AT portal, as there is no API available for submitting it automatically.
- Real-time transmission – instead of a monthly file, each invoice is sent individually to the AT at the time of issuance, using the authority’s API.
How do I configure my workspace for Portuguese invoicing?
How do I configure my workspace for Portuguese invoicing?
Why does recording fail with 'payable: too high according to Artigo 40.º do CIVA'?
Why does recording fail with 'payable: too high according to Artigo 40.º do CIVA'?
recording envelope: totals: (payable: too high according to Artigo 40.º do CIVA.)
What it means: Article 40 of the Portuguese VAT Code (Código do IVA) sets limits and rules for simplified invoices (faturas simplificadas). If the payable amount exceeds what is allowed for a simplified invoice in your situation, the rules effectively require a full invoice (fatura completa) with proper buyer identification—not an anonymous or minimal customer.What to do:- Treat the document as a full invoice and supply real customer tax data when you have it.
- If you do not have the buyer’s tax information, Portuguese practice allows the generic retail customer: set the customer name to
Consumidor finaland the tax ID to999999990. - For transactions above €1,000, the law also expects name and address on the document. The AT may not always reject submissions that omit some of that detail, but you should follow the rule for full compliance.
Why does my payment workflow fail with 'payment type RG is not supported for real-time reporting'?
Why does my payment workflow fail with 'payment type RG is not supported for real-time reporting'?
What payment receipt types are supported in Portugal?
What payment receipt types are supported in Portugal?
- RG — Outros Recibos: Standard payment receipts, reported through the monthly SAF-T file only. Real-time reporting is not available for this type.
- RC — Recibo no âmbito do regime de IVA de Caixa: Receipts specific to the VAT Cash accounting regime. RC payments are not currently supported by the AT Portugal app.
Where do I find Portugal-specific GOBL documentation?
Where do I find Portugal-specific GOBL documentation?
pt-saft-v1 addon documents fields required by the SAF-T schema.How do I register a supplier with AT?
How do I register a supplier with AT?
What credentials does AT require to authenticate a supplier?
What credentials does AT require to authenticate a supplier?
How are supplier credentials stored in Invopop for Portugal?
How are supplier credentials stored in Invopop for Portugal?
How often must I submit AT reports?
How often must I submit AT reports?
How do I schedule periodic reports for Portugal?
How do I schedule periodic reports for Portugal?
What format does AT expect for periodic reports?
What format does AT expect for periodic reports?
Record document for SAF-T
Send document to AT
Register supplier with AT
Cancel SAF-T record
AT Portugal issue invoice
AT Portugal issue invoice
{
"name": "AT issue invoice",
"description": "Issue an invoice through AT and generate PDF",
"schema": "bill/invoice",
"steps": [
{
"id": "6f884d90-f2b9-11ef-acb2-cd64e858247e",
"name": "Set state",
"provider": "silo.state",
"config": {
"state": "processing"
}
},
{
"id": "76f194b0-f2b9-11ef-acb2-cd64e858247e",
"name": "Record document for SAF-T",
"provider": "at-pt.record"
},
{
"id": "59174840-c09a-11f0-b8a2-b531dbe0da3c",
"name": "Send document to AT",
"provider": "at-pt.send"
},
{
"id": "93795a50-f2b9-11ef-acb2-cd64e858247e",
"name": "Generate PDF",
"provider": "pdf",
"summary": "Portuguese · A4 · Original",
"config": {
"date_format": "%Y-%m-%d",
"hide_promo": true,
"label": "Original",
"layout": "A4",
"locale": "pt",
"logo_height": 40,
"watermark": ""
}
},
{
"id": "ce7c50c0-9d55-11f0-b3a4-87562f21f508",
"name": "Generate PDF",
"provider": "pdf",
"summary": "Portuguese · A4 · Duplicado",
"config": {
"date_format": "%Y-%m-%d",
"label": "Duplicado",
"layout": "A4",
"locale": "pt",
"logo_height": 40,
"watermark": "",
"duplicate": true
}
},
{
"id": "7a708240-f2b9-11ef-acb2-cd64e858247e",
"name": "Set state",
"provider": "silo.state",
"config": {
"state": "sent"
}
}
],
"rescue": [
{
"id": "805bdbf0-f2b9-11ef-acb2-cd64e858247e",
"name": "Set state",
"provider": "silo.state",
"config": {
"state": "error"
}
}
]
}
AT Portugal issue delivery note
AT Portugal issue delivery note
{
"name": "AT issue delivery",
"description": "Issue a delivery document through AT and generate PDF",
"schema": "bill/delivery",
"steps": [
{
"id": "6f884d90-f2b9-11ef-acb2-cd64e858247e",
"name": "Set state",
"provider": "silo.state",
"config": {
"state": "processing"
}
},
{
"id": "76f194b0-f2b9-11ef-acb2-cd64e858247e",
"name": "Record document for SAF-T",
"provider": "at-pt.record"
},
{
"id": "59174840-c09a-11f0-b8a2-b531dbe0da3c",
"name": "Send document to AT",
"provider": "at-pt.send"
},
{
"id": "93795a50-f2b9-11ef-acb2-cd64e858247e",
"name": "Generate PDF",
"provider": "pdf",
"summary": "Portuguese · A4 · Original",
"config": {
"date_format": "%Y-%m-%d",
"hide_promo": true,
"label": "Original",
"layout": "A4",
"locale": "pt",
"logo_height": 40,
"watermark": ""
}
},
{
"id": "ce7c50c0-9d55-11f0-b3a4-87562f21f508",
"name": "Generate PDF",
"provider": "pdf",
"summary": "Portuguese · A4 · Duplicado",
"config": {
"date_format": "%Y-%m-%d",
"label": "Duplicado",
"layout": "A4",
"locale": "pt",
"logo_height": 40,
"watermark": "",
"duplicate": true
}
},
{
"id": "7a708240-f2b9-11ef-acb2-cd64e858247e",
"name": "Set state",
"provider": "silo.state",
"config": {
"state": "sent"
}
}
],
"rescue": [
{
"id": "805bdbf0-f2b9-11ef-acb2-cd64e858247e",
"name": "Set state",
"provider": "silo.state",
"config": {
"state": "error"
}
}
]
}
AT Portugal issue payment
AT Portugal issue payment
{
"name": "AT issue payment",
"description": "Issue a payment through AT and generate PDF",
"schema": "bill/payment",
"steps": [
{
"id": "6f884d90-f2b9-11ef-acb2-cd64e858247e",
"name": "Set state",
"provider": "silo.state",
"config": {
"state": "processing"
}
},
{
"id": "76f194b0-f2b9-11ef-acb2-cd64e858247e",
"name": "Record document for SAF-T",
"provider": "at-pt.record"
},
{
"id": "93795a50-f2b9-11ef-acb2-cd64e858247e",
"name": "Generate PDF",
"provider": "pdf",
"summary": "Portuguese · A4 · Original",
"config": {
"date_format": "%Y-%m-%d",
"hide_promo": true,
"label": "Original",
"layout": "A4",
"locale": "pt",
"logo_height": 40,
"watermark": ""
}
},
{
"id": "ce7c50c0-9d55-11f0-b3a4-87562f21f508",
"name": "Generate PDF",
"provider": "pdf",
"summary": "Portuguese · A4 · Duplicado",
"config": {
"date_format": "%Y-%m-%d",
"label": "Duplicado",
"layout": "A4",
"locale": "pt",
"logo_height": 40,
"watermark": "",
"duplicate": true
}
},
{
"id": "7a708240-f2b9-11ef-acb2-cd64e858247e",
"name": "Set state",
"provider": "silo.state",
"config": {
"state": "sent"
}
}
],
"rescue": [
{
"id": "805bdbf0-f2b9-11ef-acb2-cd64e858247e",
"name": "Set state",
"provider": "silo.state",
"config": {
"state": "error"
}
}
]
}
AT Portugal register supplier
AT Portugal register supplier
{
"name": "AT register supplier",
"description": "Register a supplier with AT",
"schema": "org/party",
"steps": [
{
"id": "6f9282a0-3870-11ef-af29-4533d56cea03",
"name": "Set state",
"config": {
"state": "processing"
},
"summary": "Set state to `processing`{.state .processing}",
"provider": "silo.state"
},
{
"id": "1a9bcde0-a816-11ef-87b2-fd751e6d3b88",
"name": "Sign envelope",
"provider": "silo.close"
},
{
"id": "5b6ca7e0-ad93-11ef-a7da-83137f995008",
"name": "Register supplier with AT",
"provider": "at-pt.register"
}
],
"rescue": []
}
AT Portugal post-registration workflow
AT Portugal post-registration workflow
{
"name": "AT supplier post-registration",
"description": "Mark an AT supplier as registered",
"schema": "org/party",
"steps": [
{
"id": "7e8d8070-3870-11ef-af29-4533d56cea03",
"name": "Set state",
"config": {
"state": "registered"
},
"summary": "Set state to `registered`{.state .registered}",
"provider": "silo.state"
}
],
"rescue": []
}
AT Portugal cancel invoice
AT Portugal cancel invoice
{
"name": "AT cancel invoice",
"description": "Cancel an invoice through AT and generate PDF",
"schema": "bill/invoice",
"steps": [
{
"id": "6f884d90-f2b9-11ef-acb2-cd64e858247e",
"name": "Set state",
"provider": "silo.state",
"config": {
"state": "processing"
}
},
{
"id": "cc0002a0-927f-11f0-8cd1-bd9f2c371090",
"name": "Cancel SAF-T record",
"provider": "at-pt.cancel"
},
{
"id": "59174840-c09a-11f0-b8a2-b531dbe0da3c",
"name": "Send document to AT",
"provider": "at-pt.send"
},
{
"id": "7a708240-f2b9-11ef-acb2-cd64e858247e",
"name": "Set state",
"provider": "silo.state",
"config": {
"state": "void"
}
},
{
"id": "93795a50-f2b9-11ef-acb2-cd64e858247e",
"name": "Generate PDF",
"provider": "pdf",
"summary": "Portuguese · A4 · Original",
"config": {
"date_format": "%Y-%m-%d",
"hide_promo": true,
"label": "Original",
"layout": "A4",
"locale": "pt",
"logo_height": 40,
"watermark": ""
}
},
{
"id": "ce7c50c0-9d55-11f0-b3a4-87562f21f508",
"name": "Generate PDF",
"provider": "pdf",
"summary": "Portuguese · A4 · Duplicado",
"config": {
"date_format": "%Y-%m-%d",
"label": "Duplicado",
"layout": "A4",
"locale": "pt",
"logo_height": 40,
"watermark": "",
"duplicate": true
}
}
],
"rescue": [
{
"id": "805bdbf0-f2b9-11ef-acb2-cd64e858247e",
"name": "Set state",
"provider": "silo.state",
"config": {
"state": "error"
}
}
]
}
AT Portugal cancel delivery note
AT Portugal cancel delivery note
{
"name": "AT cancel delivery",
"description": "Cancel a delivery document through AT and generate PDF",
"schema": "bill/delivery",
"steps": [
{
"id": "6f884d90-f2b9-11ef-acb2-cd64e858247e",
"name": "Set state",
"provider": "silo.state",
"config": {
"state": "processing"
}
},
{
"id": "cc0002a0-927f-11f0-8cd1-bd9f2c371090",
"name": "Cancel SAF-T record",
"provider": "at-pt.cancel"
},
{
"id": "59174840-c09a-11f0-b8a2-b531dbe0da3c",
"name": "Send document to AT",
"provider": "at-pt.send"
},
{
"id": "7a708240-f2b9-11ef-acb2-cd64e858247e",
"name": "Set state",
"provider": "silo.state",
"config": {
"state": "void"
}
},
{
"id": "93795a50-f2b9-11ef-acb2-cd64e858247e",
"name": "Generate PDF",
"provider": "pdf",
"summary": "Portuguese · A4 · Original",
"config": {
"date_format": "%Y-%m-%d",
"hide_promo": true,
"label": "Original",
"layout": "A4",
"locale": "pt",
"logo_height": 40,
"watermark": ""
}
},
{
"id": "ce7c50c0-9d55-11f0-b3a4-87562f21f508",
"name": "Generate PDF",
"provider": "pdf",
"summary": "Portuguese · A4 · Duplicado",
"config": {
"date_format": "%Y-%m-%d",
"label": "Duplicado",
"layout": "A4",
"locale": "pt",
"logo_height": 40,
"watermark": "",
"duplicate": true
}
}
],
"rescue": [
{
"id": "805bdbf0-f2b9-11ef-acb2-cd64e858247e",
"name": "Set state",
"provider": "silo.state",
"config": {
"state": "error"
}
}
]
}
AT Portugal cancel payment
AT Portugal cancel payment
{
"name": "AT cancel payment",
"description": "Cancel a payment through AT and generate PDF",
"schema": "bill/payment",
"steps": [
{
"id": "6f884d90-f2b9-11ef-acb2-cd64e858247e",
"name": "Set state",
"provider": "silo.state",
"config": {
"state": "processing"
}
},
{
"id": "cc0002a0-927f-11f0-8cd1-bd9f2c371090",
"name": "Cancel SAF-T record",
"provider": "at-pt.cancel"
},
{
"id": "7a708240-f2b9-11ef-acb2-cd64e858247e",
"name": "Set state",
"provider": "silo.state",
"config": {
"state": "void"
}
},
{
"id": "93795a50-f2b9-11ef-acb2-cd64e858247e",
"name": "Generate PDF",
"provider": "pdf",
"summary": "Portuguese · A4 · Original",
"config": {
"date_format": "%Y-%m-%d",
"hide_promo": true,
"label": "Original",
"layout": "A4",
"locale": "pt",
"logo_height": 40,
"watermark": ""
}
},
{
"id": "ce7c50c0-9d55-11f0-b3a4-87562f21f508",
"name": "Generate PDF",
"provider": "pdf",
"summary": "Portuguese · A4 · Duplicado",
"config": {
"date_format": "%Y-%m-%d",
"label": "Duplicado",
"layout": "A4",
"locale": "pt",
"logo_height": 40,
"watermark": "",
"duplicate": true
}
}
],
"rescue": [
{
"id": "805bdbf0-f2b9-11ef-acb2-cd64e858247e",
"name": "Set state",
"provider": "silo.state",
"config": {
"state": "error"
}
}
]
}
AT B2B invoice
AT B2B invoice
- the minimal version in the first tab contains only the essential fields required to create the invoice, without totals or calculations,
- the
pt-saft-v1addon ensures the document will be validated and normalized using the SAF-T PT v1 rules built into the GOBL library, - the
supplierandseriesfields are set to example values; you’ll need to replace them with the details of supplier and series registered as per the previous sections. The series must be registered in the Supplier Portal and follow Portuguese naming conventions (see Series Management for details), - when running
gobl build, or uploading the file, the system automatically calculates totals, assigns thept-saft-invoice-typeextension toFT(Fatura), sets thept-saft-payment-meansextension toCCfor card payment, and applies thept-saft-tax-rateextension toNORfor standard VAT, - the built version in the second tab shows the normalized document with calculated totals, line item sums (including advance payment deductions), tax breakdowns, and automatically generated fields, and,
- the
hitem unit causes thept-saft-product-typeextension to be set toS(Serviço), and thept-regionextension is automatically set toPT.
{
"$schema": "https://gobl.org/draft-0/bill/invoice",
"$regime": "PT",
"$addons": [
"pt-saft-v1"
],
"type": "standard",
"series": "FT SERIES-A",
"issue_date": "2024-12-23",
"currency": "EUR",
"supplier": {
"name": "Innovatech Lda",
"tax_id": {
"country": "PT",
"code": "504614240"
},
"addresses": [
{
"num": "156",
"street": "Avenida da República",
"locality": "Lisboa",
"code": "1050-045",
"country": "PT"
}
],
"emails": [
{
"addr": "maria@example.com"
}
],
"registration": {
"capital": "150000.00",
"office": "CRC Lisboa",
"other": "sob NIF 770013813"
}
},
"customer": {
"name": "Gusto Unipessoal Lda",
"tax_id": {
"country": "PT",
"code": "514329874"
},
"addresses": [
{
"street": "Avenida da Liberdade 152 2º Direito",
"locality": "Lisboa",
"code": "1250-146",
"country": "PT"
}
],
"emails": [
{
"addr": "gusto@example.com"
}
],
"websites": [
{
"url": "https://gusto.example.com"
}
],
"telephones": [
{
"num": "+351912345678"
}
]
},
"lines": [
{
"quantity": "20.0",
"item": {
"name": "Development services",
"price": "50.00",
"unit": "h"
},
"taxes": [
{
"cat": "VAT",
"rate": "standard"
}
]
}
],
"payment": {
"advances": [
{
"date": "2024-12-23",
"key": "card",
"description": "Advance payment",
"amount": "12.34"
}
]
}
}
{
"$schema": "https://gobl.org/draft-0/bill/invoice",
"$regime": "PT",
"$addons": [
"pt-saft-v1"
],
"type": "standard",
"series": "FT SERIES-A",
"issue_date": "2024-12-23",
"value_date": "2024-12-23",
"currency": "EUR",
"tax": {
"ext": {
"pt-saft-invoice-type": "FT",
"pt-saft-source": "P"
}
},
"supplier": {
"name": "Innovatech Lda",
"tax_id": {
"country": "PT",
"code": "504614240"
},
"addresses": [
{
"num": "156",
"street": "Avenida da República",
"locality": "Lisboa",
"code": "1050-045",
"country": "PT"
}
],
"emails": [
{
"addr": "maria@example.com"
}
],
"registration": {
"capital": "150000.00",
"office": "CRC Lisboa",
"other": "sob NIF 770013813"
}
},
"customer": {
"name": "Gusto Unipessoal Lda",
"tax_id": {
"country": "PT",
"code": "514329874"
},
"addresses": [
{
"street": "Avenida da Liberdade 152 2º Direito",
"locality": "Lisboa",
"code": "1250-146",
"country": "PT"
}
],
"emails": [
{
"addr": "gusto@example.com"
}
],
"websites": [
{
"url": "https://gusto.example.com"
}
],
"telephones": [
{
"num": "+351912345678"
}
]
},
"lines": [
{
"i": 1,
"quantity": "20.0",
"item": {
"name": "Development services",
"price": "50.00",
"unit": "h",
"ext": {
"pt-saft-product-type": "S"
}
},
"sum": "1000.00",
"taxes": [
{
"cat": "VAT",
"key": "standard",
"rate": "general",
"percent": "23.0%",
"ext": {
"pt-region": "PT",
"pt-saft-tax-rate": "NOR"
}
}
],
"total": "1000.00"
}
],
"payment": {
"advances": [
{
"date": "2024-12-23",
"key": "card",
"description": "Advance payment",
"amount": "12.34",
"ext": {
"pt-saft-payment-means": "CC"
}
}
]
},
"totals": {
"sum": "1000.00",
"total": "1000.00",
"taxes": {
"categories": [
{
"code": "VAT",
"rates": [
{
"key": "standard",
"ext": {
"pt-region": "PT",
"pt-saft-tax-rate": "NOR"
},
"base": "1000.00",
"percent": "23.0%",
"amount": "230.00"
}
],
"amount": "230.00"
}
],
"sum": "230.00"
},
"tax": "230.00",
"total_with_tax": "1230.00",
"payable": "1230.00",
"advance": "12.34",
"due": "1217.66"
}
}
AT delivery note
AT delivery note
- the first tab shows the minimal version containing only the essential fields required to create the delivery document; there are no totals or calculations,
- the
pt-saft-v1addon ensures the document will be validated and normalized using the SAF-T PT v1 rules built into the GOBL library, - the
supplierandseriesfields are set to example values; you’ll need to replace them with the details of supplier and series registered as per the previous sections. The series must be registered in the Supplier Portal and follow Portuguese naming conventions (see Series Management for details), - this is an
notedocument type with thept-saft-movement-typeextension set toGR(Guia de Remessa), - when running
gobl build, or uploading the document, the system automatically calculates totals, applies the standard VAT rate with thept-saft-tax-rateextension set toNOR, and normalizes all fields, - the second tab shows the built version of the document with the calculated totals, line item sums, tax breakdowns, and automatically generated fields, and,delivery
- the
pt-regionextension is automatically set toPT.
{
"$schema": "https://gobl.org/draft-0/bill/delivery",
"$regime": "PT",
"$addons": [
"pt-saft-v1"
],
"type": "note",
"series": "GR SERIES-A",
"issue_date": "2026-04-01",
"currency": "EUR",
"despatch_date": "2026-04-02",
"receive_date": "2026-04-03",
"supplier": {
"name": "Innovatech Lda",
"tax_id": {
"country": "PT",
"code": "770013813"
},
"addresses": [
{
"street": "Rua das Flores 200 3º Esquerdo",
"locality": "Porto",
"code": "4050-265",
"country": "PT"
}
],
"registration": {
"capital": "100000.00",
"office": "Porto"
}
},
"customer": {
"name": "Gusto Unipessoal Lda",
"tax_id": {
"country": "PT",
"code": "514329874"
},
"addresses": [
{
"street": "Avenida da Liberdade 152 2º Direito",
"locality": "Lisboa",
"code": "1250-146",
"country": "PT"
}
]
},
"despatcher": {
"name": "Innovatech Logistics",
"addresses": [
{
"street": "Rua da Indústria 45",
"locality": "Porto",
"code": "4050-300",
"country": "PT"
}
]
},
"receiver": {
"name": "Gusto Armazém",
"addresses": [
{
"street": "Zona Industrial, Lote 23",
"locality": "Lisboa",
"code": "1300-300",
"country": "PT"
}
]
},
"lines": [
{
"quantity": "10",
"item": {
"name": "Product A",
"price": "5.00",
"unit": "unit",
"ext": {
"pt-saft-product-type": "P"
}
},
"taxes": [
{
"cat": "VAT",
"rate": "standard"
}
]
}
],
"notes": [
{
"text": "Delivery note for products"
}
]
}
{
"$schema": "https://gobl.org/draft-0/bill/delivery",
"$regime": "PT",
"$addons": [
"pt-saft-v1"
],
"type": "note",
"series": "GR SERIES-A",
"issue_date": "2026-04-01",
"currency": "EUR",
"despatch_date": "2026-04-02",
"receive_date": "2026-04-03",
"tax": {
"ext": {
"pt-saft-movement-type": "GR"
}
},
"supplier": {
"name": "Innovatech Lda",
"tax_id": {
"country": "PT",
"code": "770013813"
},
"addresses": [
{
"street": "Rua das Flores 200 3º Esquerdo",
"locality": "Porto",
"code": "4050-265",
"country": "PT"
}
],
"registration": {
"capital": "100000.00",
"office": "Porto"
}
},
"customer": {
"name": "Gusto Unipessoal Lda",
"tax_id": {
"country": "PT",
"code": "514329874"
},
"addresses": [
{
"street": "Avenida da Liberdade 152 2º Direito",
"locality": "Lisboa",
"code": "1250-146",
"country": "PT"
}
]
},
"despatcher": {
"name": "Innovatech Logistics",
"addresses": [
{
"street": "Rua da Indústria 45",
"locality": "Porto",
"code": "4050-300",
"country": "PT"
}
]
},
"receiver": {
"name": "Gusto Armazém",
"addresses": [
{
"street": "Zona Industrial, Lote 23",
"locality": "Lisboa",
"code": "1300-300",
"country": "PT"
}
]
},
"lines": [
{
"i": 1,
"quantity": "10",
"item": {
"name": "Product A",
"price": "5.00",
"unit": "unit",
"ext": {
"pt-saft-product-type": "P"
}
},
"sum": "50.00",
"taxes": [
{
"cat": "VAT",
"key": "standard",
"rate": "general",
"percent": "23.0%",
"ext": {
"pt-region": "PT",
"pt-saft-tax-rate": "NOR"
}
}
],
"total": "50.00"
}
],
"totals": {
"sum": "50.00",
"total": "50.00",
"taxes": {
"categories": [
{
"code": "VAT",
"rates": [
{
"key": "standard",
"ext": {
"pt-region": "PT",
"pt-saft-tax-rate": "NOR"
},
"base": "50.00",
"percent": "23.0%",
"amount": "11.50"
}
],
"amount": "11.50"
}
],
"sum": "11.50"
},
"tax": "11.50",
"total_with_tax": "61.50",
"payable": "61.50"
},
"notes": [
{
"text": "Delivery note for products"
}
]
}
AT return guide
AT return guide
- the document carries the
returntag ($tags: ["return"]), which thept-saft-v1addon uses to automatically set thept-saft-movement-typeextension toGD(Guia de Devolução), - the
seriesfollows theGDprefix convention and must be registered through the Supplier Portal, and, - the flow of goods is reversed compared to a delivery note: the
customeris the party returning the goods, and thesupplieris the one receiving them back.
{
"$schema": "https://gobl.org/draft-0/bill/delivery",
"$regime": "PT",
"$addons": [
"pt-saft-v1"
],
"$tags": ["return"],
"type": "note",
"series": "GD SERIES-A",
"issue_date": "2026-04-03",
"currency": "EUR",
"despatch_date": "2026-04-03",
"receive_date": "2026-04-03",
"supplier": {
"name": "Innovatech Lda",
"tax_id": {
"country": "PT",
"code": "770013813"
},
"addresses": [
{
"street": "Rua das Flores 200 3º Esquerdo",
"locality": "Porto",
"code": "4050-265",
"country": "PT"
}
],
"registration": {
"capital": "100000.00",
"office": "Porto"
}
},
"customer": {
"name": "Gusto Unipessoal Lda",
"tax_id": {
"country": "PT",
"code": "514329874"
},
"addresses": [
{
"street": "Avenida da Liberdade 152 2º Direito",
"locality": "Lisboa",
"code": "1250-146",
"country": "PT"
}
]
},
"despatcher": {
"name": "Gusto Armazém",
"addresses": [
{
"street": "Zona Industrial, Lote 23",
"locality": "Lisboa",
"code": "1300-300",
"country": "PT"
}
]
},
"receiver": {
"name": "Innovatech Logistics",
"addresses": [
{
"street": "Rua da Indústria 45",
"locality": "Porto",
"code": "4050-300",
"country": "PT"
}
]
},
"lines": [
{
"quantity": "3",
"item": {
"name": "Product A",
"price": "5.00",
"unit": "unit",
"ext": {
"pt-saft-product-type": "P"
}
},
"taxes": [
{
"cat": "VAT",
"rate": "standard"
}
]
}
],
"notes": [
{
"text": "Goods returned by the customer."
}
]
}
{
"$schema": "https://gobl.org/draft-0/bill/delivery",
"$regime": "PT",
"$addons": [
"pt-saft-v1"
],
"$tags": [
"return"
],
"type": "note",
"series": "GD SERIES-A",
"issue_date": "2026-04-03",
"currency": "EUR",
"despatch_date": "2026-04-03",
"receive_date": "2026-04-03",
"tax": {
"ext": {
"pt-saft-movement-type": "GD"
}
},
"supplier": {
"name": "Innovatech Lda",
"tax_id": {
"country": "PT",
"code": "770013813"
},
"addresses": [
{
"street": "Rua das Flores 200 3º Esquerdo",
"locality": "Porto",
"code": "4050-265",
"country": "PT"
}
],
"registration": {
"capital": "100000.00",
"office": "Porto"
}
},
"customer": {
"name": "Gusto Unipessoal Lda",
"tax_id": {
"country": "PT",
"code": "514329874"
},
"addresses": [
{
"street": "Avenida da Liberdade 152 2º Direito",
"locality": "Lisboa",
"code": "1250-146",
"country": "PT"
}
]
},
"despatcher": {
"name": "Gusto Armazém",
"addresses": [
{
"street": "Zona Industrial, Lote 23",
"locality": "Lisboa",
"code": "1300-300",
"country": "PT"
}
]
},
"receiver": {
"name": "Innovatech Logistics",
"addresses": [
{
"street": "Rua da Indústria 45",
"locality": "Porto",
"code": "4050-300",
"country": "PT"
}
]
},
"lines": [
{
"i": 1,
"quantity": "3",
"item": {
"name": "Product A",
"price": "5.00",
"unit": "unit",
"ext": {
"pt-saft-product-type": "P"
}
},
"sum": "15.00",
"taxes": [
{
"cat": "VAT",
"key": "standard",
"rate": "general",
"percent": "23.0%",
"ext": {
"pt-region": "PT",
"pt-saft-tax-rate": "NOR"
}
}
],
"total": "15.00"
}
],
"totals": {
"sum": "15.00",
"total": "15.00",
"taxes": {
"categories": [
{
"code": "VAT",
"rates": [
{
"key": "standard",
"ext": {
"pt-region": "PT",
"pt-saft-tax-rate": "NOR"
},
"base": "15.00",
"percent": "23.0%",
"amount": "3.45"
}
],
"amount": "3.45"
}
],
"sum": "3.45"
},
"tax": "3.45",
"total_with_tax": "18.45",
"payable": "18.45"
},
"notes": [
{
"text": "Goods returned by the customer."
}
]
}
AT global waybill
AT global waybill
- the document
typeis set towaybill, which thept-saft-v1addon normalizes to thept-saft-movement-typeextensionGT(Guia de Transporte), - the
seriesfollows theGTprefix convention required by the AT and must be registered through the Supplier Portal, and, - the
customerfield is omitted: when no customer is provided on aGT, the SAF-T submission auto-fills the AT-prescribed generic entry Consumidor final with NIF999999990and address Desconhecido.
{
"$schema": "https://gobl.org/draft-0/bill/delivery",
"$regime": "PT",
"$addons": [
"pt-saft-v1"
],
"type": "waybill",
"series": "GT SERIES-A",
"issue_date": "2026-04-01",
"currency": "EUR",
"despatch_date": "2026-04-02",
"supplier": {
"name": "Innovatech Lda",
"tax_id": {
"country": "PT",
"code": "770013813"
},
"addresses": [
{
"street": "Rua das Flores 200 3º Esquerdo",
"locality": "Porto",
"code": "4050-265",
"country": "PT"
}
],
"registration": {
"capital": "100000.00",
"office": "Porto"
}
},
"despatcher": {
"name": "Innovatech Logistics",
"addresses": [
{
"street": "Rua da Indústria 45",
"locality": "Porto",
"code": "4050-300",
"country": "PT"
}
]
},
"lines": [
{
"quantity": "100",
"item": {
"name": "Product A",
"price": "5.00",
"unit": "unit",
"ext": {
"pt-saft-product-type": "P"
}
},
"taxes": [
{
"cat": "VAT",
"rate": "standard"
}
]
}
],
"notes": [
{
"text": "Global waybill for multi-stop delivery"
}
]
}
{
"$schema": "https://gobl.org/draft-0/bill/delivery",
"$regime": "PT",
"$addons": [
"pt-saft-v1"
],
"type": "waybill",
"series": "GT SERIES-A",
"issue_date": "2026-04-01",
"currency": "EUR",
"despatch_date": "2026-04-02",
"tax": {
"ext": {
"pt-saft-movement-type": "GT"
}
},
"supplier": {
"name": "Innovatech Lda",
"tax_id": {
"country": "PT",
"code": "770013813"
},
"addresses": [
{
"street": "Rua das Flores 200 3º Esquerdo",
"locality": "Porto",
"code": "4050-265",
"country": "PT"
}
],
"registration": {
"capital": "100000.00",
"office": "Porto"
}
},
"despatcher": {
"name": "Innovatech Logistics",
"addresses": [
{
"street": "Rua da Indústria 45",
"locality": "Porto",
"code": "4050-300",
"country": "PT"
}
]
},
"lines": [
{
"i": 1,
"quantity": "100",
"item": {
"name": "Product A",
"price": "5.00",
"unit": "unit",
"ext": {
"pt-saft-product-type": "P"
}
},
"sum": "500.00",
"taxes": [
{
"cat": "VAT",
"key": "standard",
"rate": "general",
"percent": "23.0%",
"ext": {
"pt-region": "PT",
"pt-saft-tax-rate": "NOR"
}
}
],
"total": "500.00"
}
],
"totals": {
"sum": "500.00",
"total": "500.00",
"taxes": {
"categories": [
{
"code": "VAT",
"rates": [
{
"key": "standard",
"ext": {
"pt-region": "PT",
"pt-saft-tax-rate": "NOR"
},
"base": "500.00",
"percent": "23.0%",
"amount": "115.00"
}
],
"amount": "115.00"
}
],
"sum": "115.00"
},
"tax": "115.00",
"total_with_tax": "615.00",
"payable": "615.00"
},
"notes": [
{
"text": "Global waybill for multi-stop delivery"
}
]
}
AT delivery from global waybill
AT delivery from global waybill
GR (Guia de Remessa) — must be issued with the full transaction details, including the customer and a cross-reference back to the originating GT so the AT can correlate both records.Notice:- the
customeris now populated with the actual recipient of the goods, and, - the
precedingarray carries one entry with theseries,code, andissue_dateof the originatingGT.
{
"$schema": "https://gobl.org/draft-0/bill/delivery",
"$regime": "PT",
"$addons": [
"pt-saft-v1"
],
"type": "note",
"series": "GR SERIES-A",
"issue_date": "2026-04-02",
"currency": "EUR",
"despatch_date": "2026-04-02",
"receive_date": "2026-04-02",
"preceding": [
{
"series": "GT SERIES-A",
"code": "1",
"issue_date": "2026-04-01"
}
],
"supplier": {
"name": "Innovatech Lda",
"tax_id": {
"country": "PT",
"code": "770013813"
},
"addresses": [
{
"street": "Rua das Flores 200 3º Esquerdo",
"locality": "Porto",
"code": "4050-265",
"country": "PT"
}
],
"registration": {
"capital": "100000.00",
"office": "Porto"
}
},
"customer": {
"name": "Gusto Unipessoal Lda",
"tax_id": {
"country": "PT",
"code": "514329874"
},
"addresses": [
{
"street": "Avenida da Liberdade 152 2º Direito",
"locality": "Lisboa",
"code": "1250-146",
"country": "PT"
}
]
},
"despatcher": {
"name": "Innovatech Logistics",
"addresses": [
{
"street": "Rua da Indústria 45",
"locality": "Porto",
"code": "4050-300",
"country": "PT"
}
]
},
"receiver": {
"name": "Gusto Armazém",
"addresses": [
{
"street": "Zona Industrial, Lote 23",
"locality": "Lisboa",
"code": "1300-300",
"country": "PT"
}
]
},
"lines": [
{
"quantity": "10",
"item": {
"name": "Product A",
"price": "5.00",
"unit": "unit",
"ext": {
"pt-saft-product-type": "P"
}
},
"taxes": [
{
"cat": "VAT",
"rate": "standard"
}
]
}
],
"notes": [
{
"text": "Stop delivery from global waybill GT SERIES-A/1"
}
]
}
{
"$schema": "https://gobl.org/draft-0/bill/delivery",
"$regime": "PT",
"$addons": [
"pt-saft-v1"
],
"type": "note",
"series": "GR SERIES-A",
"issue_date": "2026-04-02",
"currency": "EUR",
"preceding": [
{
"issue_date": "2026-04-01",
"series": "GT SERIES-A",
"code": "1"
}
],
"despatch_date": "2026-04-02",
"receive_date": "2026-04-02",
"tax": {
"ext": {
"pt-saft-movement-type": "GR"
}
},
"supplier": {
"name": "Innovatech Lda",
"tax_id": {
"country": "PT",
"code": "770013813"
},
"addresses": [
{
"street": "Rua das Flores 200 3º Esquerdo",
"locality": "Porto",
"code": "4050-265",
"country": "PT"
}
],
"registration": {
"capital": "100000.00",
"office": "Porto"
}
},
"customer": {
"name": "Gusto Unipessoal Lda",
"tax_id": {
"country": "PT",
"code": "514329874"
},
"addresses": [
{
"street": "Avenida da Liberdade 152 2º Direito",
"locality": "Lisboa",
"code": "1250-146",
"country": "PT"
}
]
},
"despatcher": {
"name": "Innovatech Logistics",
"addresses": [
{
"street": "Rua da Indústria 45",
"locality": "Porto",
"code": "4050-300",
"country": "PT"
}
]
},
"receiver": {
"name": "Gusto Armazém",
"addresses": [
{
"street": "Zona Industrial, Lote 23",
"locality": "Lisboa",
"code": "1300-300",
"country": "PT"
}
]
},
"lines": [
{
"i": 1,
"quantity": "10",
"item": {
"name": "Product A",
"price": "5.00",
"unit": "unit",
"ext": {
"pt-saft-product-type": "P"
}
},
"sum": "50.00",
"taxes": [
{
"cat": "VAT",
"key": "standard",
"rate": "general",
"percent": "23.0%",
"ext": {
"pt-region": "PT",
"pt-saft-tax-rate": "NOR"
}
}
],
"total": "50.00"
}
],
"totals": {
"sum": "50.00",
"total": "50.00",
"taxes": {
"categories": [
{
"code": "VAT",
"rates": [
{
"key": "standard",
"ext": {
"pt-region": "PT",
"pt-saft-tax-rate": "NOR"
},
"base": "50.00",
"percent": "23.0%",
"amount": "11.50"
}
],
"amount": "11.50"
}
],
"sum": "11.50"
},
"tax": "11.50",
"total_with_tax": "61.50",
"payable": "61.50"
},
"notes": [
{
"text": "Stop delivery from global waybill GT SERIES-A/1"
}
]
}
AT return from global waybill
AT return from global waybill
- as in the standalone return guide, the
returntag drives thept-saft-movement-typeextension toGD, - the
precedingarray references the originatingGT, and, - the
customeris omitted, since the goods are returning to the issuer’s own depot rather than to a specific party.
{
"$schema": "https://gobl.org/draft-0/bill/delivery",
"$regime": "PT",
"$addons": [
"pt-saft-v1"
],
"$tags": ["return"],
"type": "note",
"series": "GD SERIES-A",
"issue_date": "2026-04-03",
"currency": "EUR",
"preceding": [
{
"issue_date": "2026-04-01",
"series": "GT SERIES-A",
"code": "1"
}
],
"despatch_date": "2026-04-03",
"supplier": {
"name": "Innovatech Lda",
"tax_id": {
"country": "PT",
"code": "770013813"
},
"addresses": [
{
"street": "Rua das Flores 200 3º Esquerdo",
"locality": "Porto",
"code": "4050-265",
"country": "PT"
}
],
"registration": {
"capital": "100000.00",
"office": "Porto"
}
},
"despatcher": {
"name": "Innovatech Logistics",
"addresses": [
{
"street": "Rua da Indústria 45",
"locality": "Porto",
"code": "4050-300",
"country": "PT"
}
]
},
"receiver": {
"name": "Innovatech Depot",
"addresses": [
{
"street": "Rua da Indústria 45",
"locality": "Porto",
"code": "4050-300",
"country": "PT"
}
]
},
"lines": [
{
"quantity": "2",
"item": {
"name": "Product A",
"price": "5.00",
"unit": "unit",
"ext": {
"pt-saft-product-type": "P"
}
},
"taxes": [
{
"cat": "VAT",
"rate": "standard"
}
]
}
],
"notes": [
{
"text": "Surplus from global waybill GT SERIES-A/1 returned to depot."
}
]
}
{
"$schema": "https://gobl.org/draft-0/bill/delivery",
"$regime": "PT",
"$addons": [
"pt-saft-v1"
],
"$tags": [
"return"
],
"type": "note",
"series": "GD SERIES-A",
"issue_date": "2026-04-03",
"currency": "EUR",
"preceding": [
{
"issue_date": "2026-04-01",
"series": "GT SERIES-A",
"code": "1"
}
],
"despatch_date": "2026-04-03",
"tax": {
"ext": {
"pt-saft-movement-type": "GD"
}
},
"supplier": {
"name": "Innovatech Lda",
"tax_id": {
"country": "PT",
"code": "770013813"
},
"addresses": [
{
"street": "Rua das Flores 200 3º Esquerdo",
"locality": "Porto",
"code": "4050-265",
"country": "PT"
}
],
"registration": {
"capital": "100000.00",
"office": "Porto"
}
},
"despatcher": {
"name": "Innovatech Logistics",
"addresses": [
{
"street": "Rua da Indústria 45",
"locality": "Porto",
"code": "4050-300",
"country": "PT"
}
]
},
"receiver": {
"name": "Innovatech Depot",
"addresses": [
{
"street": "Rua da Indústria 45",
"locality": "Porto",
"code": "4050-300",
"country": "PT"
}
]
},
"lines": [
{
"i": 1,
"quantity": "2",
"item": {
"name": "Product A",
"price": "5.00",
"unit": "unit",
"ext": {
"pt-saft-product-type": "P"
}
},
"sum": "10.00",
"taxes": [
{
"cat": "VAT",
"key": "standard",
"rate": "general",
"percent": "23.0%",
"ext": {
"pt-region": "PT",
"pt-saft-tax-rate": "NOR"
}
}
],
"total": "10.00"
}
],
"totals": {
"sum": "10.00",
"total": "10.00",
"taxes": {
"categories": [
{
"code": "VAT",
"rates": [
{
"key": "standard",
"ext": {
"pt-region": "PT",
"pt-saft-tax-rate": "NOR"
},
"base": "10.00",
"percent": "23.0%",
"amount": "2.30"
}
],
"amount": "2.30"
}
],
"sum": "2.30"
},
"tax": "2.30",
"total_with_tax": "12.30",
"payable": "12.30"
},
"notes": [
{
"text": "Surplus from global waybill GT SERIES-A/1 returned to depot."
}
]
}
AT payment receipt
AT payment receipt
- the minimal version (
payment.min.mdx) contains only the essential fields required to create the payment document, - the
pt-saft-v1addon ensures the document will be validated and normalized using the SAF-T PT v1 rules built into the GOBL library, - the
supplierandseriesfields are set to example values; you’ll need to replace them with the details of supplier and series registered as per the previous sections. The series must be registered in the Supplier Portal and follow Portuguese naming conventions (see Series Management for details), - this is a single
receiptpayment that bundles multiple payment methods: 30,00 EUR in cash plus 31,50 EUR by card, summing to the document total of 61,50 EUR. Each method gets its ownpt-saft-payment-meansextension auto-assigned (NUfor cash,CCfor card), - when running
gobl build, the system automatically assigns thept-saft-payment-typeextension toRGand thept-saft-sourceextension toP, - the built version (
payment.mdx) shows the normalized document with all automatically generated fields and extensions properly set, - the payment lines reference the original invoice being paid, though a single receipt can reference multiple invoices if needed,
- this receipt could represent either a full or partial payment of the referenced invoice; it simply records the amounts and taxes being paid, so the total may or may not cover the full invoice amount, and,
- there are no calculations in the minimal version; all normalizations will be made automatically when uploading.
{
"$schema": "https://gobl.org/draft-0/bill/payment",
"$regime": "PT",
"$addons": [
"pt-saft-v1"
],
"type": "receipt",
"series": "RG SERIES-A",
"issue_date": "2024-12-23",
"currency": "EUR",
"supplier": {
"name": "Innovatech Lda",
"tax_id": {
"country": "PT",
"code": "770013813"
},
"addresses": [
{
"street": "Rua das Flores 200 3º Esquerdo",
"locality": "Porto",
"code": "4050-265",
"country": "PT"
}
],
"registration": {
"capital": "100000.00",
"office": "Porto"
}
},
"customer": {
"name": "Gusto Unipessoal Lda",
"tax_id": {
"country": "PT",
"code": "514329874"
},
"addresses": [
{
"street": "Avenida da Liberdade 152 2º Direito",
"locality": "Lisboa",
"code": "1250-146",
"country": "PT"
}
],
"emails": [
{
"addr": "gusto@example.com"
}
],
"websites": [
{
"url": "https://gusto.example.com"
}
],
"telephones": [
{
"num": "+351912345678"
}
]
},
"lines": [
{
"document": {
"issue_date": "2024-12-23",
"series": "FT SERIES-A",
"code": "1",
"description": "Invoice 1"
},
"amount": "61.50",
"tax": {
"categories": [
{
"code": "VAT",
"rates": [
{
"key": "standard",
"ext": {
"pt-region": "PT",
"pt-saft-tax-rate": "NOR"
},
"base": "50.00",
"percent": "23.0%",
"amount": "11.50"
}
],
"amount": "11.50"
}
],
"sum": "11.50"
}
}
],
"methods": [
{
"key": "cash",
"description": "Cash portion",
"amount": "30.00"
},
{
"key": "card",
"description": "Card portion",
"amount": "31.50"
}
]
}
{
"$schema": "https://gobl.org/draft-0/bill/payment",
"$regime": "PT",
"$addons": [
"pt-saft-v1"
],
"type": "receipt",
"series": "RG SERIES-A",
"issue_date": "2024-12-23",
"currency": "EUR",
"ext": {
"pt-saft-payment-type": "RG",
"pt-saft-source": "P"
},
"supplier": {
"name": "Innovatech Lda",
"tax_id": {
"country": "PT",
"code": "770013813"
},
"addresses": [
{
"street": "Rua das Flores 200 3º Esquerdo",
"locality": "Porto",
"code": "4050-265",
"country": "PT"
}
],
"registration": {
"capital": "100000.00",
"office": "Porto"
}
},
"customer": {
"name": "Gusto Unipessoal Lda",
"tax_id": {
"country": "PT",
"code": "514329874"
},
"addresses": [
{
"street": "Avenida da Liberdade 152 2º Direito",
"locality": "Lisboa",
"code": "1250-146",
"country": "PT"
}
],
"emails": [
{
"addr": "gusto@example.com"
}
],
"websites": [
{
"url": "https://gusto.example.com"
}
],
"telephones": [
{
"num": "+351912345678"
}
]
},
"lines": [
{
"i": 1,
"document": {
"issue_date": "2024-12-23",
"series": "FT SERIES-A",
"code": "1",
"description": "Invoice 1"
},
"amount": "61.50",
"tax": {
"categories": [
{
"code": "VAT",
"rates": [
{
"key": "standard",
"ext": {
"pt-region": "PT",
"pt-saft-tax-rate": "NOR"
},
"base": "50.00",
"percent": "23.0%",
"amount": "11.50"
}
],
"amount": "11.50"
}
],
"sum": "11.50"
}
}
],
"methods": [
{
"key": "cash",
"description": "Cash portion",
"amount": "30.00",
"ext": {
"pt-saft-payment-means": "NU"
}
},
{
"key": "card",
"description": "Card portion",
"amount": "31.50",
"ext": {
"pt-saft-payment-means": "CC"
}
}
],
"total": "61.50"
}
AT Portugal invoice
AT Portugal invoice
{
"$schema": "https://gobl.org/draft-0/bill/invoice",
"$regime": "PT",
"$addons": [
"pt-saft-v1"
],
"type": "standard",
"series": "FT SERIES-A",
"issue_date": "2024-12-23",
"currency": "EUR",
"supplier": {
"name": "Innovatech Lda",
"tax_id": {
"country": "PT",
"code": "770013813"
},
"registration": {
"capital": "100000.00",
"office": "Porto"
}
},
"customer": {
"name": "Gusto Unipessoal Lda",
"tax_id": {
"country": "PT",
"code": "514329874"
},
"addresses": [
{
"street": "Avenida da Liberdade 152 2º Direito",
"locality": "Lisboa",
"code": "1250-146",
"country": "PT"
}
],
"telephones": [
{
"num": "+351912345678"
}
]
},
"lines": [
{
"i": 1,
"quantity": "1",
"item": {
"name": "Development services",
"price": "50.00",
"unit": "item",
"ext": {
"pt-saft-product-type": "S"
}
},
"sum": "50.00",
"taxes": [
{
"cat": "VAT",
"key": "standard",
"rate": "general",
"percent": "23.0%"
}
],
"total": "50.00"
}
],
"payment": {
"terms": {
"key": "advanced"
},
"advances": [
{
"date": "2024-12-18",
"description": "Transferência bancária",
"amount": "50.00"
}
]
}
}
AT Portugal credit note
AT Portugal credit note
{
"$schema": "https://gobl.org/draft-0/envelope",
"head": {
"uuid": "0194750c-c66c-7000-8da0-61dfef43434d",
"dig": {
"alg": "sha256",
"val": "44dfb55c750757111727cc592f3a452b352723ab8542c089fc84d79954852347"
}
},
"doc": {
"$schema": "https://gobl.org/draft-0/bill/invoice",
"$regime": "PT",
"$addons": [
"pt-saft-v1"
],
"uuid": "0194750c-a28c-7001-9e19-c7067a088481",
"type": "credit-note",
"series": "NC SERIES-A",
"issue_date": "2024-12-23",
"value_date": "2024-12-23",
"currency": "EUR",
"preceding": [
{
"uuid": "0193f36f-9fda-7000-9aff-4f4e28043a66",
"type": "standard",
"issue_date": "2024-08-03",
"series": "FT SERIES-A",
"code": "1",
"reason": "Reimbursement"
}
],
"tax": {
"ext": {
"pt-saft-invoice-type": "NC",
"pt-saft-source": "P"
}
},
"supplier": {
"name": "Innovatech Lda",
"tax_id": {
"country": "PT",
"code": "770013813"
},
"addresses": [
{
"street": "Rua das Flores 200 3º Esquerdo",
"locality": "Porto",
"code": "4050-265",
"country": "PT"
}
],
"registration": {
"capital": "100000.00",
"office": "Porto"
}
},
"customer": {
"name": "Gusto Unipessoal Lda",
"tax_id": {
"country": "PT",
"code": "514329874"
},
"addresses": [
{
"street": "Avenida da Liberdade 152 2º Direito",
"locality": "Lisboa",
"code": "1250-146",
"country": "PT"
}
],
"emails": [
{
"addr": "gusto@example.com"
}
],
"websites": [
{
"url": "https://gusto.example.com"
}
],
"telephones": [
{
"num": "+351912345678"
}
]
},
"lines": [
{
"i": 1,
"quantity": "1",
"item": {
"name": "Development services",
"price": "50.00",
"unit": "item",
"ext": {
"pt-saft-product-type": "S"
}
},
"sum": "50.00",
"taxes": [
{
"cat": "VAT",
"key": "standard",
"rate": "general",
"percent": "23.0%",
"ext": {
"pt-region": "PT",
"pt-saft-tax-rate": "NOR"
}
}
],
"total": "50.00"
}
],
"totals": {
"sum": "50.00",
"total": "50.00",
"taxes": {
"categories": [
{
"code": "VAT",
"rates": [
{
"key": "standard",
"ext": {
"pt-region": "PT",
"pt-saft-tax-rate": "NOR"
},
"base": "50.00",
"percent": "23.0%",
"amount": "11.50"
}
],
"amount": "11.50"
}
],
"sum": "11.50"
},
"tax": "11.50",
"total_with_tax": "61.50",
"payable": "61.50"
}
}
}
AT Portugal order
AT Portugal order
{
"$schema": "https://gobl.org/draft-0/bill/order",
"$regime": "PT",
"$addons": [
"pt-saft-v1"
],
"uuid": "0193f36f-9fda-7000-9aff-4f4e28043a66",
"type": "purchase",
"series": "NE SERIES-A",
"issue_date": "2024-12-23",
"value_date": "2024-12-23",
"currency": "EUR",
"tax": {
"ext": {
"pt-saft-work-type": "NE"
}
},
"supplier": {
"name": "Innovatech Lda",
"tax_id": {
"country": "PT",
"code": "770013813"
},
"addresses": [
{
"street": "Rua das Flores 200 3º Esquerdo",
"locality": "Porto",
"code": "4050-265",
"country": "PT"
}
],
"registration": {
"capital": "100000.00",
"office": "Porto"
}
},
"customer": {
"name": "Gusto Unipessoal Lda",
"tax_id": {
"country": "PT",
"code": "514329874"
},
"addresses": [
{
"street": "Avenida da Liberdade 152 2º Direito",
"locality": "Lisboa",
"code": "1250-146",
"country": "PT"
}
],
"emails": [
{
"addr": "gusto@example.com"
}
],
"websites": [
{
"url": "https://gusto.example.com"
}
],
"telephones": [
{
"num": "+351912345678"
}
]
},
"lines": [
{
"i": 1,
"quantity": "1",
"order": "PO-2024-001",
"item": {
"name": "Development services",
"price": "50.00",
"unit": "one",
"ext": {
"pt-saft-product-type": "S"
}
},
"sum": "50.00",
"discounts": [
{
"percent": "15.0%",
"amount": "7.50"
}
],
"taxes": [
{
"cat": "VAT",
"key": "standard",
"rate": "general",
"percent": "23.0%",
"ext": {
"pt-region": "PT",
"pt-saft-tax-rate": "NOR"
}
}
],
"total": "42.50"
}
],
"totals": {
"sum": "42.50",
"total": "42.50",
"taxes": {
"categories": [
{
"code": "VAT",
"rates": [
{
"key": "standard",
"ext": {
"pt-region": "PT",
"pt-saft-tax-rate": "NOR"
},
"base": "42.50",
"percent": "23.0%",
"amount": "9.78"
}
],
"amount": "9.78"
}
],
"sum": "9.78"
},
"tax": "9.78",
"total_with_tax": "52.28",
"payable": "52.28"
}
}
AT Portugal supplier
AT Portugal supplier
{
"$schema": "https://gobl.org/draft-0/org/party",
"name": "Innovatech Lda",
"tax_id": {
"country": "PT",
"code": "504614240"
},
"addresses": [
{
"num": "156",
"street": "Avenida da República",
"locality": "Lisboa",
"code": "1050-045",
"country": "PT"
}
],
"emails": [
{
"addr": "maria@example.com"
}
],
"registration": {
"capital": "150000.00",
"office": "CRC Lisboa",
"other": "sob NIF 770013813"
}
}
🇵🇹 Invopop resources for Portugal
🇵🇹 Invopop resources for Portugal
| Compliance | Compliance timeline |
| Apps | |
| Guides | AT Portugal Guide |
| FAQ | Portugal FAQ |
| GOBL |