Πίνακας Περιεχομένων

API ΠΛΑΤΦΟΡΜΑ ΔΗΛΩΣΗΣ ΕΠΙ ΤΩΝ ΑΚΑΘΑΡΙΣΤΩΝ ΕΣΟΔΩΝ ΚΑΙ ΠΑΡΕΠΙΔΗΜΟΥΝΤΩΝ -- dae.govapp.gr

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

1. Πληροφορίες για το API

2. Οδηγίες Δημιουργίας Εφαρμογής στον auth.govhub.gr

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

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

3. Οδηγίες για την κλήση του API

Για να καλέσουμε τα 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. Σύστημα Δηλώσεων

4.1 Helpers

Στην κλήση /api/Helper/Periodoi παίρνετε την λίστα των περιόδων, των οποίων το ID χρησιμοποιείται παρακάτω στα φίλτρα.

4.2 Καταστάσεις

4.2.1 Κατάσταση Ελέγχου Δήλωσης
4.2.2 Αιτίες Ασυμφωνίας
4.2.3 Κατάσταση Πληρωμής
4.2.4 Είδος Ποσοστού Τέλους (ΚΑΔ)

4.3 Δηλώσεις Επιχειρήσεων

Στην κλήση api/StatementsAdmin/GetStatementsPaged το json πρέπει να είναι της μορφής

{
    "Start" : 0,
    "Length" : 10,
    "SearchColumns" : [
        {
            "ColumnName" : "EpixirisiTin",
            "Value" : "123456789"
        }
    ],
    "orders" : [
        {
            "columnName" : "EpixirisiTin", //column name
            "dir" : "asc"  // asc ή desc
        }
    ]
}

Φίλτρα υποστηρίζουμε στα παρακάτω πεδία

Στην κλήση 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 Κατάσταση Αίτησης
5.2.2 Είδη Αίτησης
5.2.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})

6. Δοκιμαστικά Δεδομένα

AuthServerUrl = "https://auth.govhub.gr"
ClientId = "demo-client-govhub-dae"
ClientSecret = "επικοινωνήστε με email"