Η πλατφόρμα Δήλωσης επί των ακαθαρίστων εσόδων και παρεπιδημούντων ή αλλιώς ΔΑΕ, παρέχει api για σύνδεση με τρίτες εφαρμογές.
Για να κάνουμε δημιουργία εφαρμογής στο GovHub, θα κάνουμε τα παρακάτω βήματα.
Για να καλέσουμε τα 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).
Στην κλήση /api/Helper/Periodoi
παίρνετε την λίστα των περιόδων, των οποίων το ID χρησιμοποιείται παρακάτω στα φίλτρα.
Στην κλήση 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 της δήλωσης.
Στην κλήση /api/AitiseisAadeAdmin/GetKatigoriesEpixeirisisGiaDimo
παίρνετε την λίστα των κατηγοριών των επιχειρήσεων, των οποίων το ID χρησιμοποιείται στον χαρακτηρισμό της κάθε επιχείρησης, στην απάντηση της αίτησης.
Στην κλήση 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' μετατρέπει την Αίτηση σε κατάσταση 'Ολοκληρωμένη'.
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"