{"id":384548,"date":"2026-10-20T19:39:50","date_gmt":"2026-10-20T19:39:50","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/flatin-pt\/"},"modified":"2026-10-20T19:39:34","modified_gmt":"2026-10-20T19:39:34","slug":"flatin-pt","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/flatin-pt\/","author":23583946,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.3","stable_tag":"1.0.3","tested":"7.1.3","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"flatin.pt","header_author":"flatin.pt","header_description":"Portuguese property tax calculators as shortcodes: IMT and stamp duty on purchase, IMI rates for all 308 municipalities. Rendered server-side, no iframes, no visitor tracking.","assets_banners_color":"363430","last_updated":"2026-10-20 19:39:34","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/gitlab.com\/flatin-pt-group\/wp","header_author_uri":"https:\/\/flatin.pt\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":37,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.3":{"tag":"1.0.3","author":"flatin","date":"2026-10-20 19:39:34","revision":3757375}},"upgrade_notice":{"1.0.3":"<p>Translations now come from translate.wordpress.org. No shortcode, attribute\nor setting changes.<\/p>","1.0.2":"<p>Optional <code>vpt<\/code> attribute for <code>[flatin_imt]<\/code>; the answer names the value the\ntaxes were calculated on. Existing shortcodes keep working unchanged.<\/p>","1.0.1":"<p>Wording only: the registration line is named correctly and its source is given.\nNo shortcode, attribute or setting changes.<\/p>","1.0.0":"<p>First release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3757375,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3757375,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3757375,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3757375,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3757375,"resolution":"1","location":"assets","locale":"","width":1200,"height":1150},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3757375,"resolution":"2","location":"assets","locale":"","width":1200,"height":470}},"screenshots":{"1":"IMT breakdown and IMI rate rendered inside a post with the default theme; the second IMI block is a municipality that sets no single rate.","2":"Settings \u2192 flatin.pt: the opt-in credit link (off by default), the shortcodes, and what leaves your site."}},"plugin_section":[],"plugin_tags":[716,287787,46089,2199,2012],"plugin_category":[45,59],"plugin_contributors":[287788],"plugin_business_model":[],"class_list":["post-384548","plugin","type-plugin","status-publish","hentry","plugin_tags-calculator","plugin_tags-imt","plugin_tags-portugal","plugin_tags-real-estate","plugin_tags-tax","plugin_category-ecommerce","plugin_category-utilities-and-tools","plugin_contributors-flatin","plugin_committers-flatin"],"banners":{"banner":"https:\/\/ps.w.org\/flatin-pt\/assets\/banner-772x250.png?rev=3757375","banner_2x":"https:\/\/ps.w.org\/flatin-pt\/assets\/banner-1544x500.png?rev=3757375","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/flatin-pt\/assets\/icon-128x128.png?rev=3757375","icon_2x":"https:\/\/ps.w.org\/flatin-pt\/assets\/icon-256x256.png?rev=3757375","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/flatin-pt\/assets\/screenshot-1.png?rev=3757375","caption":"IMT breakdown and IMI rate rendered inside a post with the default theme; the second IMI block is a municipality that sets no single rate."},{"src":"https:\/\/ps.w.org\/flatin-pt\/assets\/screenshot-2.png?rev=3757375","caption":"Settings \u2192 flatin.pt: the opt-in credit link (off by default), the shortcodes, and what leaves your site."}],"raw_content":"<!--section=description-->\n<p>Two shortcodes for sites that write about buying property in Portugal.<\/p>\n\n<ul>\n<li><code>[flatin_imt value=\"250000\"]<\/code> \u2014 what a purchase costs on top of the price:\nIMT, stamp duty and the price of registering the purchase.<\/li>\n<li><code>[flatin_imi concelho=\"porto\"]<\/code> \u2014 the yearly property tax (IMI) rate for a\nmunicipality, with the tax year next to it.<\/li>\n<\/ul>\n\n<p><strong>Rendered on your server, into your page.<\/strong> No iframes and no client-side\ndrawing: the output is part of your HTML, so it is styled by your theme,\nreadable without JavaScript, and visible to search engines.<\/p>\n\n<p><strong>Where the numbers come from.<\/strong> IMT is calculated from the official 2026\ntables. IMI rates were harvested from the Autoridade Tribut\u00e1ria portal and\nthen verified line by line against that same source \u2014 all 308 municipalities.\nWhere a municipality sets no single rate (it sets one per freguesia instead),\nthe plugin says so rather than printing a zero. The registration line is not a\nguess either: it is the published price of the Casa Pronta counter of the\nMinist\u00e9rio da Justi\u00e7a for one registration act. It does not cover the purchase\ncontract at a notary or a solicitador, and the shortcode says so under the\ntable.<\/p>\n\n<h4>Shortcode options<\/h4>\n\n<ul>\n<li><code>[flatin_imt value=\"250000\" territory=\"regioes_autonomas\"]<\/code> \u2014 the Azores\nor Madeira scale (default: <code>continente<\/code>, mainland Portugal).<\/li>\n<li><code>[flatin_imt value=\"250000\" primary=\"no\"]<\/code> \u2014 not the buyer's own permanent\nhome (default: <code>yes<\/code>).<\/li>\n<li><code>[flatin_imt value=\"250000\" young=\"yes\"]<\/code> \u2014 the reduced IMT table and the\nstamp duty deduction for buyers aged 35 or under buying their first own\npermanent home (default: <code>no<\/code>).<\/li>\n<li><code>[flatin_imt value=\"250000\" vpt=\"180000\"]<\/code> \u2014 the VPT (valor patrimonial\ntribut\u00e1rio) from the caderneta predial, if known. IMT and stamp duty are\ncharged on the higher of the contract price and the VPT, and the answer\nsays which one it used.<\/li>\n<li><code>[flatin_imi concelho=\"porto\" vpt=\"180000\"]<\/code> \u2014 also shows the yearly IMI for\nthat taxable value (VPT). <code>concelho<\/code> takes a name or the four-digit code.<\/li>\n<\/ul>\n\n<h4>Credit link<\/h4>\n\n<p>The credit link is <strong>off by default<\/strong>. If you would like to credit the source,\nswitch it on in <strong>Settings \u2192 flatin.pt<\/strong>: results then show a small\n\"Calculated by flatin.pt\" line with a link. While it is off, the plugin adds\nno link to flatin.pt anywhere in your pages \u2014 not even when the service is\nunreachable \u2014 and the calculators work exactly the same either way.<\/p>\n\n<h4>Who we are<\/h4>\n\n<p>flatin.pt is a lead-generation platform for property in Portugal. <strong>It is not\na real-estate agency and holds no AMI licence<\/strong>; the service itself is\nprovided by licensed agencies. The results are estimates from official tables,\nnot tax advice. This plugin sells nothing and collects nothing.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to the flatin.pt API (<code>https:\/\/flatin.pt\/api\/v1<\/code>), run\nby flatin.pt, to calculate taxes and look up IMI rates. The calculations are\ndone there so that one maintained tax table serves every site. Without this\nservice the shortcodes cannot show results.<\/p>\n\n<p><strong>When.<\/strong> Only when a page containing a shortcode is rendered and the answer\nfor that exact input is not already cached in your site's database. Answers\nare stored as transients: IMI rates for one day, IMT calculations for one\nhour, invalid input (for example a misspelt municipality) for one hour. No\nrequest is made on activation, from the settings screen, or on pages without\na shortcode.<\/p>\n\n<p><strong>What is sent.<\/strong><\/p>\n\n<ul>\n<li><code>[flatin_imt]<\/code>: an HTTPS POST to <code>https:\/\/flatin.pt\/api\/v1\/imt\/calculate<\/code>\nwith the price, the VPT if the shortcode gives one, the territory, and the\ntwo yes\/no options from the shortcode.<\/li>\n<li><code>[flatin_imi]<\/code>: an HTTPS GET to <code>https:\/\/flatin.pt\/api\/v1\/imi\/rates\/{municipality}<\/code>\nwith the municipality name or code from the shortcode. The taxable value\n(<code>vpt<\/code>) is not sent: the yearly amount is calculated on your server.<\/li>\n<\/ul>\n\n<p>Each request identifies the plugin with the User-Agent\n    flatin-pt-wordpress\/1.0.3 (+https:\/\/flatin.pt\/). <strong>Nothing about your\nvisitors is sent<\/strong>: no visitor IP address, page URL, referrer, cookies or\nidentifiers. As with any HTTPS request, the flatin.pt server sees the IP\naddress of your web server; it is kept in server logs as described in the\nprivacy policy.<\/p>\n\n<ul>\n<li>Terms of use: https:\/\/flatin.pt\/en\/legal\/termos-utilizacao\/<\/li>\n<li>Privacy policy: https:\/\/flatin.pt\/en\/legal\/privacidade\/<\/li>\n<li>API documentation: https:\/\/flatin.pt\/en\/tools\/api-and-data\/<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Install the plugin from the Plugins screen, or upload the <code>flatin-pt<\/code>\nfolder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate it.<\/li>\n<li>Put a shortcode into any post, page or widget, for example\n   [flatin_imt value=\"250000\"].<\/li>\n<li>Optional: turn on the credit link in <strong>Settings \u2192 flatin.pt<\/strong>.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20work%20without%20javascript%3F\"><h3>Does it work without JavaScript?<\/h3><\/dt>\n<dd><p>Yes. The whole output is rendered on the server.<\/p><\/dd>\n<dt id=\"does%20it%20slow%20my%20page%20down%3F\"><h3>Does it slow my page down?<\/h3><\/dt>\n<dd><p>The first render of a given input makes one HTTPS request with a five-second\ntimeout; after that the answer is served from your own database until the\ncache expires. The stylesheet loads only on pages that actually use a\nshortcode.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20flatin.pt%20is%20unreachable%3F\"><h3>What happens if flatin.pt is unreachable?<\/h3><\/dt>\n<dd><p>The block shows a short notice that the calculation service did not answer,\nand the rest of your page renders as usual. If you turned the credit link on,\nthe notice also links to the calculator on flatin.pt.<\/p><\/dd>\n<dt id=\"does%20it%20collect%20data%20about%20my%20visitors%20or%20set%20cookies%3F\"><h3>Does it collect data about my visitors or set cookies?<\/h3><\/dt>\n<dd><p>No. The plugin reads nothing about the visitor and sets no cookies. See\n\"External services\" above for exactly what is sent.<\/p><\/dd>\n<dt id=\"can%20i%20use%20it%20for%20a%20municipality%20that%20has%20no%20single%20rate%3F\"><h3>Can I use it for a municipality that has no single rate?<\/h3><\/dt>\n<dd><p>Yes, and the plugin will tell your readers exactly that. Printing a zero there\nwould be untrue.<\/p><\/dd>\n<dt id=\"is%20it%20available%20in%20portuguese%3F\"><h3>Is it available in Portuguese?<\/h3><\/dt>\n<dd><p>Translations are delivered through translate.wordpress.org. On a site set\nto Portuguese, the output and the settings screen switch to Portuguese once\nthe pt_PT translation is published there.<\/p><\/dd>\n<dt id=\"what%20is%20removed%20when%20i%20delete%20the%20plugin%3F\"><h3>What is removed when I delete the plugin?<\/h3><\/dt>\n<dd><p>The credit-link setting and every cached answer the plugin stored.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Translations are no longer bundled; WordPress loads them from\ntranslate.wordpress.org.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>New <code>vpt<\/code> attribute for <code>[flatin_imt]<\/code>. IMT and stamp duty are charged on\nthe higher of the contract price and the VPT; the table now says which one\nit was calculated on, and without a VPT says that a higher VPT would raise\nboth taxes.<\/li>\n<li>The Casa Pronta amounts in the note under the table come with the answer\nfrom flatin.pt instead of being written into the plugin.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>The third line of the purchase table is named for what the figure actually\nis: the published price of registering the purchase at the Casa Pronta\ncounter, not an estimate for the deed. The note under the table now names\nthat source, says the contract at a notary or a solicitador is charged\nseparately, and warns that buying with a mortgage costs more.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release: <code>[flatin_imt]<\/code> and <code>[flatin_imi]<\/code>, server-side rendering,\ntransient caching, Portuguese translation, opt-in credit link (off by\ndefault).<\/li>\n<\/ul>","raw_excerpt":"Portuguese property tax shortcodes: IMT and stamp duty on a purchase, IMI rates for all 308 municipalities. Rendered server-side, no iframes.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/384548","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=384548"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/flatin"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=384548"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=384548"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=384548"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=384548"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=384548"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=384548"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}