pt

package
v0.50.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 26, 2023 License: Apache-2.0 Imports: 13 Imported by: 1

README

PT

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.

Public Documentation

Local Codes

InvoiceType (Tipo de documento)
Code Name GOBL Type GOBL Tax Tag
FT Fatura, emitida nos termos do artigo 36.o do Código do IVA standard
FS Fatura simplificada, emitida nos termos do artigo 40.o do Código do IVA standard simplified
FR Fatura-recibo standard invoice-receipt
ND Nota de débito credit-note
NC Nota de crédito debit-note
TaxExemptionCode (Código do motivo de isenção de imposto)
Code Description GOBL Line Tax (VAT) Tag
M01 Artigo 16.°, n.° 6 do CIVA exempt+outlay
M02 Artigo 6.° do Decreto-Lei n.° 198/90, de 19 de junho exempt+intrastate-export
M04 Isento artigo 13.° do CIVA exempt+imports
M05 Isento artigo 14.° do CIVA exempt+exports
M06 Isento artigo 15.° do CIVA exempt+suspension-scheme
M07 Isento artigo 9.° do CIVA exempt+internal-operations
M09 IVA - não confere direito a dedução / Artigo 62.° alínea b) do CIVA exempt+small-retail-scheme
M10 IVA - regime de isenção / Artigo 57.° do CIVA exempt+exempt-scheme
M11 Regime particular do tabaco / Decreto-Lei n.° 346/85, de 23 de agosto exempt+tobacco-scheme
M12 Regime da margem de lucro - Agências de viagens / Decreto-Lei n.° 221/85, de 3 de julho exempt+margin-scheme+travel
M13 Regime da margem de lucro - Bens em segunda mão / Decreto-Lei n.° 199/96, de 18 de outubro exempt+margin-scheme+second-hand
M14 Regime da margem de lucro - Objetos de arte / Decreto-Lei n.° 199/96, de 18 de outubro exempt+margin-scheme+art
M15 Regime da margem de lucro - Objetos de coleção e antiguidades / Decreto-Lei n.° 199/96, de 18 de outubro exempt+margin-scheme+antiques
M16 Isento artigo 14.° do RITI exempt+goods-transmission
M19 Outras isenções - Isenções temporárias determinadas em diploma próprio exempt+other
M20 IVA - regime forfetário / Artigo 59.°-D n.°2 do CIVA exempt+flat-rate-scheme
M21 IVA - não confere direito à dedução (ou expressão similar) - Artigo 72.° n.° 4 do CIVA exempt+non-deductible
M25 Mercadorias à consignação - Artigo 38.° n.° 1 alínea a) do CIVA exempt+consignment-goods
M30 IVA - autoliquidação / Artigo 2.° n.° 1 alínea i) do CIVA exempt+reverse-charge+waste
M31 IVA - autoliquidação / Artigo 2.° n.° 1 alínea j) do CIVA exempt+reverse-charge+civil-eng
M32 IVA - autoliquidação / Artigo 2.° n.° 1 alínea I) do CIVA exempt+reverse-charge+greenhouse
M33 IVA - autoliquidação / Artigo 2.° n.° 1 alínea m) do CIVA exempt+reverse-charge+woods
M40 IVA - autoliquidação / Artigo 6.° n.° 6 alínea a) do CIVA, a contrário exempt+reverse-charge+b2b
M41 IVA - autoliquidação / Artigo 8.° n.° 3 do RITI exempt+reverse-charge+intraeu
M42 IVA - autoliquidação / Decreto-Lei n.° 21/2007, de 29 de janeiro exempt+reverse-charge+real-estate
M43 IVA - autoliquidação / Decreto-Lei n.° 362/99, de 16 de setembro exempt+reverse-charge+gold
M99 Não sujeito ou não tributado exempt+non-taxable

Documentation

Overview

Package pt provides models for dealing with the Portuguese tax regime.

Index

Constants

View Source
const (
	KeyATTaxExemptionCode cbc.Key = "at-tax-exemption-code"
	KeyATInvoiceType      cbc.Key = "at-invoice-type"
)

Custom keys used typically in meta information

View Source
const (
	ZoneAveiro         l10n.Code = "01"
	ZoneBeja           l10n.Code = "02"
	ZoneBraga          l10n.Code = "03"
	ZoneBraganca       l10n.Code = "04"
	ZoneCasteloBranco  l10n.Code = "05"
	ZoneCoimbra        l10n.Code = "06"
	ZoneEvora          l10n.Code = "07"
	ZoneFaro           l10n.Code = "08"
	ZoneGuarda         l10n.Code = "09"
	ZoneLeiria         l10n.Code = "10"
	ZoneLisboa         l10n.Code = "11"
	ZonePortalegre     l10n.Code = "12"
	ZonePorto          l10n.Code = "13"
	ZoneSantarem       l10n.Code = "14"
	ZoneSetubal        l10n.Code = "15"
	ZoneVianaDoCastelo l10n.Code = "16"
	ZoneVilaReal       l10n.Code = "17"
	ZoneViseu          l10n.Code = "18"
	ZoneAzores         l10n.Code = "20" // Autonomous Region
	ZoneMadeira        l10n.Code = "30" // Autonomous Region
)

Zone code definitions for Portugal based on districts and autonomous regions based on ISO 3166-2:PT.

View Source
const (
	StampProviderATATCUD cbc.Key = "at-atcud"
	StampProviderATQR    cbc.Key = "at-qr"
)

AT official codes to include in stamps.

View Source
const (
	TaxRateExempt        cbc.Key = "exempt"
	TaxRateOutlay        cbc.Key = "outlay"
	TaxRateIntrastate    cbc.Key = "intrastate-export"
	TaxRateImports       cbc.Key = "imports"
	TaxRateExports       cbc.Key = "exports"
	TaxRateSuspension    cbc.Key = "suspension-scheme"
	TaxRateInternalOps   cbc.Key = "internal-operations"
	TaxRateSmallRetail   cbc.Key = "small-retail-scheme"
	TaxRateExemptScheme  cbc.Key = "exempt-scheme"
	TaxRateTobacco       cbc.Key = "tobacco-scheme"
	TaxRateMargin        cbc.Key = "margin-scheme"
	TaxRateTravel        cbc.Key = "travel"
	TaxRateSecondHand    cbc.Key = "second-hand"
	TaxRateArt           cbc.Key = "art"
	TaxRateAntiques      cbc.Key = "antiques"
	TaxRateTransmission  cbc.Key = "goods-transmission"
	TaxRateOther         cbc.Key = "other"
	TaxRateFlatRate      cbc.Key = "flat-rate-scheme"
	TaxRateNonDeductible cbc.Key = "non-deductible"
	TaxRateConsignment   cbc.Key = "consignment-goods"
	TaxRateReverseCharge cbc.Key = "reverse-charge"
	TaxRateWaste         cbc.Key = "waste"
	TaxRateCivilEng      cbc.Key = "civil-eng"
	TaxRateGreenhouse    cbc.Key = "greenhouse"
	TaxRateWoods         cbc.Key = "woods"
	TaxRateB2B           cbc.Key = "b2b"
	TaxRateIntraEU       cbc.Key = "intraeu"
	TaxRateRealEstate    cbc.Key = "real-estate"
	TaxRateGold          cbc.Key = "gold"
	TaxRateNonTaxable    cbc.Key = "non-taxable"
)

Tax rate exemption tags

View Source
const (
	TagInvoiceReceipt cbc.Key = "invoice-receipt"
)

Invoice type tags

Variables

This section is empty.

Functions

func Calculate

func Calculate(doc interface{}) error

Calculate will attempt to clean the object passed to it.

func New

func New() *tax.Regime

New instantiates a new Portugal regime for the given zone.

func Validate

func Validate(doc interface{}) error

Validate checks the document type and determines if it can be validated.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL