dae-govapp

Η πλατφόρμα Δήλωσης επί των ακαθαρίστων εσόδων και παρεπιδημούντων ή αλλιώς ΔΑΕ, παρέχει api για σύνδεση με τρίτες εφαρμογές.

Για να κάνουμε δημιουργία εφαρμογής στο GovHub, θα κάνουμε τα παρακάτω βήματα.

  1. Εισαγωγή στην ιστοσελίδα http://auth.govhub.gr με τους κωδικούς του διαχειριστή του φορέα.
  2. Δημιουργία εφαρμογής με δικαίωμα GovApp.AkatharistaEsoda.Basic.

Για να καλέσουμε τα api του ΔΑΕ πρώτα πρέπει έχουμε κάνει authenticate σαν εφαρμογή και να πάρουμε ένα JWT Token.

Για το παραγωγικό περιβάλλον στο πεδίο scope συμπληρώνουμε GovApp.AkatharistaEsoda.Basic για το Δοκιμαστικό περιβάλλον στο πεδίο scope συμπληρώνουμε GovApp.AkatharistaEsoda.Test.

Οδηγίες για λήψη JTW token από τον auth Server

Αφού λάβετε το JWT Token σύμφωνα με το Auth 2.0 πρότυπο θα πρέπει να κάνετε Bearer Authentication.

Authorization: Bearer <token>

Αφού ρυθμίσετε τους παραπάνω headers μπορείτε να κάνετε κλήσεις σύμφωνα με τις οδηγίες του OpenApi(παράγραφος 1 docs).

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.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"
  • dae-govapp.txt
  • Τελευταία τροποποίηση: 2023/11/06 12:20
  • από egritos