Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Arab emirates regime #421

Merged
merged 14 commits into from
Nov 21, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 35 additions & 19 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,27 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p

### Added

- ae: added UAE regime

## [v0.205.1] - 2024-11-19

### Added

- `org`: `Address` includes `LineOne()`, `LineTwo()`, `CompleteNumber()` methods to help with conversion to other formats with some regional formatting.

### Changes

- `bill`: `Invoice` can now have empty lines if discounts or charges present.

### Fixes

- `ch`: Deleted Supplier validation (not needed for under 2300 CHF/year)
- `bill`: `Invoice` `GetExtensions` method now works correctly if missing totals [Issue #424](https://github.com/invopop/gobl/issues/424).

## [v0.205.0] - 2024-11-12

### Added

- `org`: `Address` now includes a `state` code, for countries that require them.
- `es-tbai-v1`: normalize address information to automatically add new `es-tbai-region` extension to invoices.
- `org`: `Inbox` now supports `email` field, with auto-normalization of URLs and emails in the `code` field.
Expand All @@ -22,7 +43,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p

- `cal`: Fixing json schema issue with date times.

## [v0.204.1]
## [v0.204.1] - 2024-11-04

### Added

Expand All @@ -32,7 +53,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p

- `tax`: identity code handling will skip default validation for specific countries that use special characters.

## [v0.204.0]
## [v0.204.0] - 2024-10-31

### Added

Expand Down Expand Up @@ -71,7 +92,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p

- `mx`: Tax ID validation now correctly supports `&` and `Ñ` symbols in codes.

## [v0.203.0]
## [v0.203.0] - 2024-20-21

### Added

Expand All @@ -85,7 +106,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
- `tax.Identity`: support Calculate method to normalize IDs.
- `tax.Regime`: properly set regime when alternative codes is given.

## [v0.202.0]
## [v0.202.0] - 2024-10-14

### Changed

Expand All @@ -101,7 +122,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p

- `mx`: fixed panic when normalizing an invoice with `tax` but no `ext` inside.

## [v0.201.0]
## [v0.201.0] - 2024-10-07

### Fixed

Expand All @@ -114,13 +135,13 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
- `pt`: reduced rate category for PT-MA was updated to reflect latest value of 4%
- `co-dian-v2`: moved from `co` tax regime into own addon.

## [v0.200.1]
## [v0.200.1] - 2024-09-30

### Fixed

- `pt`: moving invoice tags from saft addon to regime, ensure defaults present.

## [v0.200.0]
## [v0.200.0] - 2024-09-26

Another ~~significant~~ epic release. Introducing "add-ons" which move the normalization and validation rules from Tax Regimes to specific packages that need to be enabled inside a document to be used.

Expand Down Expand Up @@ -162,13 +183,13 @@ Finally, the `draft` flag has been removed from the header, and much more emphas
- `org`: `DocumentRef` consolidates references to previous documents in a single place.
- `bill`: invoice type option `other` for usage when regular scenarios do not apply.

## [v0.115.1]
## [v0.115.1] - 2024-09-10

### Fixes

- `tax`: totals calculator was ignoring tax combos with rate and percent, when they should be classed as exempt.

## [v0.115.0]
## [v0.115.0] - 2024-09-10

This one is big...

Expand Down Expand Up @@ -221,20 +242,20 @@ Invoices in GOBL can now also finally produced for any country in the world, eve
- `tax.Scenario`: potential issue around matching notes.
- `tax.Set`: improved validation embedded error handling.

## [v0.114.0]
## [v0.114.0] - 2024-08-26

### Changed

- `org.Name`: either given **or** surname are required, as opposed to both at the same time.

## [v0.113.0]
## [v0.113.0] - 2024-08-01

### Added

- `head`: validation rule to check for the presence of stamps
- GR: support for credit notes

## [v0.112.0]
## [v0.112.0] - 2024-07-29

Significant set of small changes related to renaming of the `l10n.CountryCode` type. The main reason for this is an attempt to reduce confusion between regular ISO country selection, and the specific country codes used for tax purposes. Normally they coincide, but exception cases like for Greece, whose ISO code is `GR` but use `EL` for tax purposes, or `XI` for companies in Northern Ireland, mean that there needs to be a clear selection.

Expand All @@ -250,6 +271,8 @@ Significant set of small changes related to renaming of the `l10n.CountryCode` t
- GR: support for simplified invoices
- `l10n`: ISO and Tax lists of country definitions available, e.g. `l10n.Countries().ISO()`
- `tax`: support for alternative country codes
- `tax`: Scenarios now handle extension key and value for filtering.
- PT: exemption text handling moved to scenarios.

### Upgraded

Expand All @@ -259,13 +282,6 @@ Significant set of small changes related to renaming of the `l10n.CountryCode` t

- GR: fixed certain tax combos not getting calculated by the regime

## [v0.112.0] - 2024-07-26

### Added

- `tax`: Scenarios now handle extension key and value for filtering.
- PT: exemption text handling moved to scenarios.

## [v0.111.1] - 2024-07-25

### Added
Expand Down
172 changes: 172 additions & 0 deletions data/regimes/ae.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,172 @@
{
"$schema": "https://gobl.org/draft-0/tax/regime-def",
"name": {
"ar": "الإمارات العربية المتحدة",
"en": "United Arab Emirates"
},
"time_zone": "Asia/Dubai",
"country": "AE",
"currency": "AED",
"tags": [
{
"schema": "bill/invoice",
"list": [
{
"key": "simplified",
"name": {
"de": "Vereinfachte Rechnung",
"en": "Simplified Invoice",
"es": "Factura Simplificada",
"it": "Fattura Semplificata"
},
"desc": {
"de": "Wird für B2C-Transaktionen verwendet, wenn die Kundendaten nicht verfügbar sind. Bitte wenden Sie sich an die örtlichen Behörden, um die Grenzwerte zu ermitteln.",
"en": "Used for B2C transactions when the client details are not available, check with local authorities for limits.",
"es": "Usado para transacciones B2C cuando los detalles del cliente no están disponibles, consulte con las autoridades locales para los límites.",
"it": "Utilizzato per le transazioni B2C quando i dettagli del cliente non sono disponibili, controllare con le autorità locali per i limiti."
}
},
{
"key": "reverse-charge",
"name": {
"de": "Umkehr der Steuerschuld",
"en": "Reverse Charge",
"es": "Inversión del Sujeto Pasivo",
"it": "Inversione del soggetto passivo"
}
},
{
"key": "self-billed",
"name": {
"de": "Rechnung durch den Leistungsempfänger",
"en": "Self-billed",
"es": "Facturación por el destinatario",
"it": "Autofattura"
}
},
{
"key": "customer-rates",
"name": {
"de": "Kundensätze",
"en": "Customer rates",
"es": "Tarifas aplicables al destinatario",
"it": "Aliquote applicabili al destinatario"
}
},
{
"key": "partial",
"name": {
"de": "Teilweise",
"en": "Partial",
"es": "Parcial",
"it": "Parziale"
}
}
]
}
],
"scenarios": [
{
"schema": "bill/invoice",
"list": [
{
"tags": [
"reverse-charge"
],
"note": {
"key": "legal",
"src": "reverse-charge",
"text": "Reverse Charge"
}
},
{
"tags": [
"simplified"
],
"note": {
"key": "legal",
"src": "simplified",
"text": "Simplified Tax Invoice"
}
}
]
}
],
"corrections": [
{
"schema": "bill/invoice",
"types": [
"credit-note"
]
}
],
"categories": [
{
"code": "VAT",
"name": {
"ar": "ضريبة القيمة المضافة",
"en": "VAT"
},
"title": {
"ar": "ضريبة القيمة المضافة",
"en": "Value Added Tax"
},
"rates": [
{
"key": "zero",
"name": {
"ar": "معدل صفر",
"en": "Zero Rate"
},
"desc": {
"ar": "نسبة ضريبة قيمة مضافة 0٪ تطبق على الصادرات المحددة والمناطق المعينة والخدمات الأساسية.",
"en": "A VAT rate of 0% applicable to specific exports, designated areas, and essential services."
},
"values": [
{
"percent": "0.0%"
}
]
},
{
"key": "standard",
"name": {
"ar": "معدل قياسي",
"en": "Standard Rate"
},
"desc": {
"ar": "ينطبق على معظم السلع والخدمات ما لم ينص على خلاف ذلك.",
"en": "Applies to most goods and services unless specified otherwise."
},
"values": [
{
"since": "2018-01-01",
"percent": "5%"
}
]
},
{
"key": "exempt",
"name": {
"ar": "معفى",
"en": "Exempt"
},
"desc": {
"ar": "بعض السلع والخدمات، مثل الخدمات المالية والعقارات السكنية، معفاة من ضريبة القيمة المضافة.",
"en": "Certain goods and services, such as financial services and residential real estate, are exempt from VAT."
},
"exempt": true
}
],
"sources": [
{
"title": {
"ar": "الهيئة الاتحادية للضرائب",
"en": "Federal Tax Authority - UAE VAT Regulations"
},
"url": "https://www.tax.gov.ae"
}
]
}
]
}
47 changes: 47 additions & 0 deletions examples/ae/invoice-ae-ae-stnr.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
$schema: "https://gobl.org/draft-0/bill/invoice"
richifernandez marked this conversation as resolved.
Show resolved Hide resolved
uuid: "3aea7b56-59d8-4beb-90bd-f8f280d852a0"
currency: "AED"
issue_date: "2022-02-01"
series: "SAMPLE"
code: "001"

supplier:
tax_id:
country: "AE"
code: "123456789012346"
name: "Provide One LLC"
emails:
- addr: "[email protected]"
addresses:
- num: "16"
street: "Sheikh Zayed Road"
locality: "Dubai"
code: "00000"
country: "AE"

customer:
tax_id:
country: "AE"
code: "123456789012345"
name: "Sample Consumer"
emails:
- addr: "[email protected]"
addresses:
- num: "25"
street: "Al Maryah Island"
locality: "Abu Dhabi"
code: "00000"
country: "AE"

lines:
- quantity: 20
item:
name: "Development services"
price: "90.00"
unit: "h"
discounts:
- percent: "5%"
reason: "Special discount"
taxes:
- cat: VAT
rate: standard
Loading