===== API ΠΛΑΤΦΟΡΜΑ ΔΗΛΩΣΗΣ ΕΠΙ ΤΩΝ ΑΚΑΘΑΡΙΣΤΩΝ ΕΣΟΔΩΝ ΚΑΙ ΠΑΡΕΠΙΔΗΜΟΥΝΤΩΝ -- dae.govapp.gr =====
Η πλατφόρμα Δήλωσης επί των ακαθαρίστων εσόδων και παρεπιδημούντων ή αλλιώς ΔΑΕ, παρέχει api για σύνδεση με τρίτες εφαρμογές.
====1. Πληροφορίες για το API ====
* [[https://demo.dae.govapp.gr/docs|Δοκιμαστικό περιβάλλον]]
* [[https://dae.govapp.gr/docs|Παραγωγικό περιβάλλον]]
====2. Οδηγίες Δημιουργίας Εφαρμογής στον auth.govhub.gr====
Για να κάνουμε δημιουργία εφαρμογής στο GovHub, θα κάνουμε τα παρακάτω βήματα.
- Εισαγωγή στην ιστοσελίδα http://auth.govhub.gr με τους κωδικούς του διαχειριστή του φορέα.
- Δημιουργία εφαρμογής με δικαίωμα GovApp.AkatharistaEsoda.Basic.
====3. Οδηγίες για την κλήση του API ====
Για να καλέσουμε τα api του ΔΑΕ πρώτα πρέπει έχουμε κάνει authenticate σαν εφαρμογή και να πάρουμε ένα JWT Token.
**Για το παραγωγικό περιβάλλον στο πεδίο scope συμπληρώνουμε GovApp.AkatharistaEsoda.Basic για το Δοκιμαστικό περιβάλλον στο πεδίο scope συμπληρώνουμε GovApp.AkatharistaEsoda.Test.**
[[dev-auth|Οδηγίες για λήψη JTW token από τον auth Server]]
Αφού λάβετε το JWT Token σύμφωνα με το Auth 2.0 πρότυπο θα πρέπει να κάνετε Bearer Authentication.
Authorization: Bearer
Αφού ρυθμίσετε τους παραπάνω headers μπορείτε να κάνετε κλήσεις σύμφωνα με τις οδηγίες του OpenApi(παράγραφος 1 docs).
====4. Σύστημα Δηλώσεων ====
===4.1 Helpers ===
Στην κλήση ''/api/Helper/Periodoi'' παίρνετε την λίστα των περιόδων, των οποίων το ID χρησιμοποιείται παρακάτω στα φίλτρα.
===4.2 Καταστάσεις ===
== 4.2.1 Κατάσταση Ελέγχου Δήλωσης ==
* Προς Έλεγχο = 1
* Ασυμφωνία = 2
* Ολοκληρωμένη = 3
== 4.2.2 Αιτίες Ασυμφωνίας ==
* Ασυμφωνία Ποσών = 1
* Ελλιπή Δικαιολογητικά = 2
* Άλλο = 3
== 4.2.3 Κατάσταση Πληρωμής ==
* Πληρωμένη = 2
* Αρνητικό Ποσό = 3
* Μηδενικό Ποσό = 4
* Αυτόματη Δημιουργία Μηδενικής = 5
* Αναμονή Απάντησης Από Τράπεζα = 6
* Πληρωμή στον Δήμο = 7
== 4.2.4 Είδος Ποσοστού Τέλους (ΚΑΔ) ==
* Παρεπιδημούντων (0.5%) = 1
* Υγειονομικού Ενδιαφέροντος (0.5%) = 2
* Άλλα (0.5%) = 3
* Κέντρα Διασκέδασης (0.5%) = 4
* Καζίνο (2%) = 5
===4.3 Δηλώσεις Επιχειρήσεων ===
Στην κλήση ''api/StatementsAdmin/GetStatementsPaged'' το json πρέπει να είναι της μορφής
{
"Start" : 0,
"Length" : 10,
"SearchColumns" : [
{
"ColumnName" : "EpixirisiTin",
"Value" : "123456789"
}
],
"orders" : [
{
"columnName" : "EpixirisiTin", //column name
"dir" : "asc" // asc ή desc
}
]
}
Φίλτρα υποστηρίζουμε στα παρακάτω πεδία
* EpixirisiTin
* EpixirisiDiakritikosTitlos
* PeriodosId (το ID της περιόδου που αναφέρεται στο 4.1)
* PaymentStatementState (δείτε 4.2.3)
* EtosPeriodou (π.χ. 2020)
* PeriodikiDilosiApo
* PeriodikiDilosiEos
* ElegxosState
* ThirdPartyIdUpdated (value : "0" επιστρέφει όσες δηλώσεις δεν έχουν δηλωμένο **ThirdPartyId**, "1" όσες έχουν)
Στην κλήση ''api/StatementsAdmin/GetStatementByPeriodosData'' το json πρέπει να είναι της μορφής
{
"epixeirisiAfm": "123456789",
"etosPeriodou": 2021,
"minasPeriodou": 1,
"diakreiaPeriodou": 3
}
Το φίλτρο θα κάνει αντιστοίχιση με τις περιόδους που αναφέρονται στο 4.1
Στην κλήση ''api/StatementsAdmin/GetStatement/{statementId}'' το **statementId** αντιπροσωπεύει το **Id** της δήλωσης.
Στην κλήση ''api/StatementsAdmin/GetStatementByThirdPartyId/{thirdPartyId}'' το **thirdPartyId** αντιπροσωπεύει το **ThirdPartyId** της δήλωσης.
Στην κλήση ''api/StatementsAdmin/EditStatement'' το json πρέπει να είναι της μορφής
{
"id": 1,
"elegxosState": 3,
"aitiesAsimfonias": 1,
"commentsAdmin": "Σχόλια υπαλλήλου ΟΤΑ"
}
Οι αιτίες ασυμφωνίας (aitiesAsimfonias 4.2.2) λαμβάνονται υπόψιν μόνο στην περίπτωση που η κατάσταση ελέγχου (elegxosState 4.2.1) είναι "Σε ασυμφωνία".
Στην κλήση ''api/StatementsAdmin/UpdateThirdPartyIdList'' το json πρέπει να είναι της μορφής
[
{
"id": 4,
"thirdPartyId": "101011"
},
{
"id": 7,
"thirdPartyId": "753912c1-5016-488b-b672-c83818ee729d"
}
]
Η κλήση επιστρέφει όλα τα Ids τα οποία αντιστοιχήθηκαν με ThirdPartyIds επιτυχώς.
Στην κλήση ''api/StatementsAdmin/DownloadDocument/{statementDocumentId}'' το **statementDocumentId** αντιπροσωπεύει το Id της δήλωσης.
====5. Σύστημα Αιτήσεων ====
===5.1 Helpers ===
Στην κλήση ''/api/AitiseisAadeAdmin/GetKatigoriesEpixeirisisGiaDimo'' παίρνετε την λίστα των κατηγοριών των επιχειρήσεων, των οποίων το ID χρησιμοποιείται στον χαρακτηρισμό της κάθε επιχείρησης, στην απάντηση της αίτησης.
===5.2 Καταστάσεις ===
== 5.2.1 Κατάσταση Αίτησης ==
* Υποβλήθηκε = 1 [Αρχική κατάσταση όταν ο υπάλληλος ΟΤΑ καταθέτει το αίτημά του]
* Αναμονή Απάντησης = 2 [Κατάσταση που μεταβαίνει η αίτηση όταν γίνει επιβεβαίωση παραλαβής από την ΚΕΔΕ]
* Ολοκληρώθηκε = 3 [Όταν έχει επιστραφεί απάντηση στον αντίστοιχο Δήμο]
== 5.2.2 Είδη Αίτησης ==
* Άντληση Στοιχείων = 1
== 5.2.3 Είδη Αίτησης ==
* Επιχειρήσεις με ΕΔΡΑ + Υποκαταστήματα ΟΛΑ στον δήμο & ΜΟΝΟ με ΚΑΔ που εμπίπτουν αποκλειστικά στα Δημοτικά Τέλη (MHTR_AIT_DIMOI) = 1
* Επιχειρήσεις με ΕΔΡΑ στον Δήμο (ΧΩΡΙΣ ΚΑΘΟΛΟΥ Υποκαταστήματα) και ασκούν και ΑΛΛΕΣ δραστηριότητες εκτός από αυτές που εμπίπτουν στα Δημοτικά Τέλη (MHTR_REST) = 2
* Λοιπές Επιχειρήσεις (MHTR_REST2.a - MHTR_REST2.b - MHTR_REST2.c) = 3
===5.3 Δηλώσεις Επιχειρήσεων ===
Στην κλήση GET ''/api/AitiseisAadeAdmin/GetAitisiById/{id}'' το ID αντιπροσωπεύει το ID της αίτησης.
Στην κλήση GET ''/api/AitiseisAadeAdmin/GetAitiseisList'' επιστρέφεται η λίστα όλων των αιτήσεων που βρίσκονται σε κατάσταση 1 (Υποβλήθηκε).
Στην κλήση GET ''/api/AitiseisAadeAdmin/ResetAitiseisListForDemo'' γίνεται επαναφορά της λίστας των αιτήσεων στην αρχική τους μορφή μηδενίζοντας τα στοιχεία απάντησης (ημερομηνία και πρωτόκολλο) και επαναφέροντας όλες τις αιτήσεις σε κατάσταση 1 (Υποβλήθηκε).
Στην κλήση POST ''/api/AitiseisAadeAdmin/GetAitiseisList'' το json πρέπει να είναι της μορφής
{
"municipalityTin": "123456789",
"start": "2022-01-01T14:38:41.579Z",
"end": "2022-01-05T13:38:41.579Z"
}
Τα φίλτρα είναι προορατικά. Αν θέλετε να χρησιμοποιήσετε ένα από όλα μπορείτε απλά να παραλείψετε τα υπόλοιπα όπως παρακάτω
{
"start": "2022-01-01T14:38:41.579Z"
}
Στην κλήση POST ''/api/AitiseisAadeAdmin/ConfirmationOfReceipt'' το json πρέπει να είναι της μορφής
{
"listaAitisewn": [
{
"id": 3,
"replyArithmosProtokollou": "25/2021",
"replyImerominiaProtokollou": "2021-12-17T09:07:48.631Z"
}
]
}
Η κλήση αυτή ενημερώνει το σύστημα ότι έχει γίνει παραλαβή των αιτήσεων που βρίσκονται στην λίστα και τις μεταβάλλει αυτόματα σε κατάσταση 2 (Αναμονή Απάντησης).
Στην κλήση POST ''/api/AitiseisAadeAdmin/AitisiResponse'' το json πρέπει να είναι της μορφής
{
"aitisiId": 1,
"oikonomikoEtos": 2020,
"responseSchemaVersion": "string",
"finalAitisiResponse": false,
"errorCode": "string",
"errorMessage": "string",
"epixiriseis": [
{
"afm": "string",
"doyKodikos": "string",
"doyPerigrafi": "string",
"katigoriaEpixeirisisGiaDimo": 1,
"typosEpitideumatia": "string",
"imerominiaEnarxis": "2022-05-03T09:05:27.361Z",
"imerominiaLixis": "2022-05-03T09:05:27.361Z",
"eponimia": "string",
"onoma": "string",
"patronimo": "string",
"fusikoNomikoProsopo": 0,
"diakritikosTitlos": "string",
"nomikiMorfiKodikos": 0,
"nomikiMorfiPerigrafi": "string",
"legalPurposePerigrafi": "string",
"vivliaKodikos": 0,
"vivliaPerigrafi": "string",
"address": "string",
"addressNo": "string",
"zipCode": "string",
"perioxi": "string",
"tilefono": "string",
"etosAnaforas_DoyKodikos": "string",
"etosAnaforas_Address": "string",
"etosAnaforas_AddressNo": "string",
"etosAnaforas_ZipCode": "string",
"etosAnaforas_Perioxi": "string",
"ypokatastimata": [
{
"startDate": "2022-05-03T09:05:27.361Z",
"endDate": "2022-05-03T09:05:27.361Z",
"aa": "string",
"doyKodikos": "string",
"address": "string",
"addressNo": "string",
"zipCode": "string",
"perioxi": "string",
"etosAnaforas_DoyKodikos": "string",
"etosAnaforas_Address": "string",
"etosAnaforas_AddressNo": "string",
"etosAnaforas_ZipCode": "string",
"etosAnaforas_Perioxi": "string",
"kad": [
{
"kodikos": 0,
"perigrafi": "string",
"startDate": "2022-05-06T06:26:09.774Z",
"changeDate": "2022-05-06T06:26:09.774Z",
"endDate": "2022-05-06T06:26:09.774Z",
"eidosDrastiriotitas": "string",
"eidosDrastiriotitasPerigrafi": "string",
"palaiotita": "string"
}
]
}
],
"kad": [
{
"kodikos": 0,
"perigrafi": "string",
"startDate": "2022-05-06T06:26:09.774Z",
"changeDate": "2022-05-06T06:26:09.774Z",
"endDate": "2022-05-06T06:26:09.774Z",
"eidosDrastiriotitas": "string",
"eidosDrastiriotitasPerigrafi": "string",
"palaiotita": "string"
}
],
"periodikesDiloseis": [
{
"poso": 0,
"imerominiaYpovolis": "2022-05-03T09:05:27.361Z",
"periodikiDilosiApo": "2022-05-03T09:05:27.361Z",
"periodikiDilosiEos": "2022-05-03T09:05:27.361Z",
"periodikiDilosiEidos": 0
}
]
}
]
}
Στο πεδίο katigoriaEpixeirisisGiaDimo της κάθε επιχείρησης χρησιμοποιήστε την κατηγορία όπως φαίνεται στο παράρτημα 5.1 .
Το πεδίο boolean finalAitisiResponse δηλώνει αν η απάντηση είναι η τελευταία που αφορά την Αίτηση και αν είναι 'true' μετατρέπει την Αίτηση σε κατάσταση 'Ολοκληρωμένη'.
== 5.3.1 Κωδικοί Σφαλμάτων Απάντησης Αίτησης ==
Error Code | Περιγραφή |
---|---|
1000 | Υπάρχει error από την πλευρά της ΑΑΔΕ με κωδικό {ErrorCode} και περιγραφή : {ErrorMessage} |
1001 | Η απάντηση δεν έχει κωδικό σφάλματος αλλά δεν περιέχει επιχειρήσεις |
2000 | Δεν βρέθηκε αίτηση στο σύστημα με ID {AitisiId} |
2001 | Η αίτηση δεν βρίσκεται σε κατάσταση αναμονής απάντησης |
2002 | Η αίτηση δεν έχει συμπληρωμένα τα στοιχεία Αριθμού πρωτοκόλλου απάντησης και Ημ/νια πρωτοκόλλου απάντησης |
2003 | Το οικονομικό έτος της απάντησης ({response.OikonomikoEtos}) δεν συμπίπτει με αυτό της απάντησης ({aitisi.EtosAnazitisis}) |
AuthServerUrl = "https://auth.govhub.gr"
ClientId = "demo-client-govhub-dae"
ClientSecret = "επικοινωνήστε με email"