mydata Ηλεκτρονικά Βιβλία ΑΑΔΕ Τεχνική περιγραφή για διαβίβαση & λήψη δεδομένων

Πίνακας περιεχομένων Πίνακας περιεχομένων Πίνακας περιεχομένων Εισαγωγή Σκοπός Τεχνολογικές απαιτήσεις λογισμικών έκδοσης παραστατικών Περιγραφή των REST API Portal για Προγραμματιστές Περιγραφή λειτουργίας των διεπαφών Εγγραφή user Απαραίτητα Headers Περιγραφή λειτουργιών SendInvoices SendIncomeClassification SendExpensesClassification CancelInvoice RequestDocs RequestTransmittedDocs Περιγραφή σχήματος απόδειξη/ τιμολογίου πεδία οντότητας Διεύθυνση Οντότητας Τρόπος Πληρωμής Επικεφαλίδα απόδειξη/ τιμολογίου πεδία απόδειξη/ τιμολογίου Δήλωση Διενέργειας (ΠΟΛ 1177/2018 Αρ. 27) Σύνολα Φόρων Περίληψη απόδειξη/ τιμολογίου Χαρακτηρισμός Εσόδων Χαρακτηρισμός Εξόδων Περιγραφή Απαντήσεων

Ξεκινήστε δωρεάν στην εφαρμογή τιμολόγησης από ->εδώ <-

Υποβολή Δεδομένων Λήψη Δεδομένων Σφάλματα Τεχνικά Σφάλματα Επιχειρησιακά Σφάλματα Παράρτημα Είδη παραστατικών Κατηγορία Φ.Π.Α Κατηγορία Αιτίας Εξαίρεσης ΦΠΑ Κατηγορία Παρακρατούμενων Φόρων Κατηγορία Λοιπών Φόρων Κατηγορία Συντελεστή Χαρτοσήμου Κατηγορία Τελών Κωδικός Κατηγορίας Χαρακτηρισμού Εσόδων Κωδικός Τύπου Χαρακτηρισμού Εσόδων Κωδικός Κατηγορίας Χαρακτηρισμού Εξόδων Κωδικός Τύπου Χαρακτηρισμού Εξόδων Τρόποι Πληρωμής Είδος Ποσότητας Σκοπός Διακίνησης Επισήμανση Ιστορικό αλλαγών Έκδοση Έκδοση Έκδοση Έκδοση Έκδοση

Εισαγωγή mydata, δηλαδή my Digital Accounting and Tax Application. Είναι το όνομα της νέας ηλεκτρονικής πλατφόρμας, με την οποία η ΑΑΔΕ εισάγει τα ηλεκτρονικά βιβλία στην καθημερινότητα των επιχειρήσεων. Τα Ηλεκτρονικά Βιβλία ΑΑΔΕ αποτελούν ένα πολύ σημαντικό βήμα ψηφιακού μετασχηματισμού του Δημοσίου και των επιχειρήσεων. Στόχος μας είναι πρωτίστως να εξυπηρετήσουμε τις επιχειρήσεις, προσφέροντας μια πρωτοποριακή ψηφιακή πλατφόρμα για την εκπλήρωση των φορολογικών τους υποχρεώσεων, που θα οδηγήσει σε αυτοματοποίηση της συμπλήρωσης των φορολογικών δηλώσεων και θα τις απαλλάξει από υποχρεώσεις που έχουν σήμερα, όπως η υποβολή Καταστάσεων Πελατών Προμηθευτών (ΜΥΦ). Η ηλεκτρονική πλατφόρμα mydata παρέχει εύκολες λύσεις για όλους. Τόσο για τις επιχειρήσεις που διαθέτουν μηχανογραφημένα λογιστήρια και θα μπορούν να διαβιβάζουν μαζικά και αυτοματοποιημένα τα αναγκαία δεδομένα, όσο και για τις λοιπές επιχειρήσεις, που θα μπορούν να διαβιβάζουν τα δεδομένα με απλό τρόπο, μέσω ειδικής φόρμας καταχώρισης στην ιστοσελίδα της ΑΑΔΕ. 2 Σκοπός Για τις ανάγκες των επιχειρήσεων και των επαγγελματιών που διαθέτουν μηχανογραφημένα λογιστήρια, παρέχεται από την ΑΑΔΕ μια διεπαφή REST API σε υποδομή public cloud (Microsoft Azure). Έτσι, δίνεται η δυνατότητα σε συστήματα ERP ή άλλα λογιστικά-εμπορικά συστήματα, να διασυνδέονται με την ΑΑΔΕ απρόσκοπτα και αδιάλειπτα για την ανταλλαγή των σχετικών δεδομένων. Πιο συγκεκριμένα, για μια επιχείρηση που χρησιμοποιεί κάποιο πληροφοριακό σύστημα που αξιοποιεί το σχετικό API, οι προσφερόμενες λειτουργίες αυτοματοποιημένης διασύνδεσης, είναι: Αποστολή δεδομένων για τα παραστατικά που εκδίδει. Αποστολή χαρακτηρισμών εσόδων που αφορούν τα παραστατικά που εκδίδει. Λήψη δεδομένων όσων παραστατικών έχουν εκδοθεί για αυτήν και έχουν διαβιβαστεί από τους αντίστοιχους εκδότες στην ΑΑΔΕ. Αποστολή δεδομένων χαρακτηρισμών εξόδων στην ΑΑΔΕ. Στο παρόν έγγραφο αναλύονται οι παραπάνω λειτουργίες, καθώς και οι αναγκαίες τεχνικές προδιαγραφές για την υλοποίηση των σχετικών κλήσεων των προσφερόμενων διεπαφών REST API. 3

Τεχνολογικές απαιτήσεις λογισμικών έκδοσης παραστατικών Για την υλοποίηση της επικοινωνίας ενός συστήματος λογισμικού με τις διεπαφές χρησιμοποιούνται οι παρακάτω τεχνολογίες HTTPS Secure HTTP Webservice REST API REST interface required for the data reporting process XML extensible Markup Language Οι διεπαφές μπορούν να χρησιμοποιηθούν από οποιοδήποτε λογισμικό που μπορεί να υλοποιήσει HTTPS κλήσεις και να δημιουργήσει έγγραφα XML συμβατά με το σχήμα που αναλύεται στο παρόν έγγραφο. Εκτός των σχετικών δεδομένων, το λογισμικό θα πρέπει να μπορεί να στείλει ταυτόχρονα και αυτοματοποιημένα και τις απαραίτητες πληροφορίες για την ταυτοποίηση του user μέσω της ίδιας HTTPS κλήσης. 4 Περιγραφή των REST API Συνοπτικά, η διεπαφή παρέχει τις εξής λειτουργίες-μεθόδους: /SendInvoices: διαδικασία υποβολής ενός ή περισσότερων παραστατικών, συμπεριλαμβανομένων και διορθωμένων/τροποποιητικών /RequestDocs: διαδικασία λήψης ενός ή περισσότερων παραστατικών, χαρακτηρισμών, ή ακυρώσεων παραστατικών που έχουν υποβάλλει άλλοι χρήστες /RequestTransmittedDocs: διαδικασία λήψης ενός ή περισσότερων παραστατικών, χαρακτηρισμών, ή ακυρώσεων παραστατικών που έχει υποβάλλει ο userς /SendIncomeClassification: διαδικασία υποβολής χαρακτηρισμών εσόδων, ενός ή περισσότερων, που θα αντιστοιχούν σε ήδη υποβεβλημένα παραστατικά /SendExpensesClassification: διαδικασία υποβολής χαρακτηρισμών εξόδων, ενός ή περισσότερων, που θα αντιστοιχούν σε ήδη υποβεβλημένα παραστατικά /CancelInvoice: διαδικασία ακύρωσης απόδειξη/ τιμολογίου, δίχως ταυτόχρονη υποβολή νέου Λεπτομερής περιγραφή των λειτουργιών αναλύονται σε επόμενο τμήμα αυτού του εγγράφου. 4.1 Portal για Προγραμματιστές Ειδικά για τη φάση ανάπτυξης και διενέργειας δοκιμών παρέχεται ειδικό portal για προγραμματιστές στο URL: Σε αυτό, υπάρχει τεκμηρίωση όλων των διαθέσιμων μεθόδων, δίνονται code samples σε διάφορες γλώσσες προγραμματισμού, καθώς και δυνατότητα εκτέλεσης απευθείας δοκιμαστικών κλήσεων μέσα από το ίδιο το portal. Επιπλέον, από το profile του user, παρέχονται analytics reports σχετικά με τις κλήσεις που έχουν γίνει. Ακόμα, από το profile, ο userς έχει τη δυνατότητα επανέκδοσης/αλλαγής του subscription key. 4

Περιγραφή λειτουργίας των διεπαφών Εγγραφή user Η χρήση των λειτουργιών των διεπαφών απαιτεί διαδικασία ταυτοποίησης του user (authentication). Η ταυτοποίηση πραγματοποιείται μέσω αποστολής σε κάθε κλήση, ενός ονόματος user καθώς και ενός subscription key στην ενότητα headers. Το subscription key είναι ένα string, μοναδικό ανά user και είναι κοινό όλες της λειτουργίες των διεπαφών. Για να αποκτήσει ένας userς τα παραπάνω διαπιστευτήρια-credentials,πρέπει να δημιουργήσει έναν λογαριασμό στο μητρώο των διεπαφών μέσω ειδικής διαδικασίας εγγραφής που προσφέρεται από την ηλεκτρονική πλατφόρμα mydata. Η διαδικασία εγγραφής στις προσφερόμενες υπηρεσίες του, θα γίνεται μέσω της εφαρμογής που είναι διαθέσιμη στο URL της πλατφόρμας του mydata: Αρχικά ζητείται από τον user να συνδεθεί με τους κωδικούς του taxisnet και στη συνέχεια εμφανίζεται η ακόλουθη σελίδα: Στην παραπάνω σελίδα, ο userς επιλέγει «Φόρμα εγγραφής στο» και στη φόρμα της σελίδας που εμφανίζεται επιλέγει Νέα εγγραφή. Στη φόρμα που εμφανίζεται αφού συμπληρώσει όνομα user, κωδικό και , επιλέγει «Προσθήκη εγγραφής». Σε περίπτωση επιτυχημένης εγγραφής, δημιουργείται o userς στο σχετικό μητρώο του REST API, και παρέχεται ειδικό subscription key που θα χρησιμοποιεί ο userς για την ταυτοποίηση του κατά τις κλήσεις των υπηρεσιών των διεπαφών. Το subscription key είναι η τιμή της στήλης «Κωδικός API» της παρακάτω οθόνης, στην οποία εμφανίζονται όλα τα susbsciption keys που έχει δημιουργήσει ο userς. 5

Μετά το στάδιο της εγγραφής ο userς θα μπορεί να συνδεθεί στο portal των διεπαφών με τα πεδία του λογαριασμού του από όπου θα μπορεί να δει και να αλλάξει το subscription key. H χρήση κάθε λειτουργίας των διεπαφών πραγματοποιείται μέσω της αποστολής μιας HTTPS κλήσης (GET ή POST, ανάλογα με τη λειτουργία) στον αντίστοιχο σύνδεσμο URL. Η κλήση πρέπει να εμπεριέχει την κατάλληλη κεφαλίδα (header) η οποία θα περιέχει πληροφορίες απαραίτητες για την ταυτοποίηση του user και ένα σώμα (body) σε XML μορφή, του οποίου η δομή θα εξαρτάται από την υπηρεσία που καλείται. Για κάθε κλήση ο userς θα λαμβάνει μια απάντηση με πληροφορίες για την έκβαση της κλήσης του, ομοίως σε XML μορφή. Στις υπηρεσίες υποβολής (κλήση τύπου POST) ο userς μπορεί να στείλει ένα ή πολλά αντικείμενα, ενσωματώνοντας τα στο σώμα (body) της κλήσης σε ειδική μορφή XML,(παραστατικά/λογιστικές εγγραφές ή χαρακτηρισμούς). Η απάντηση μπορεί να περιέχει, για κάθε παραστατικό, ένα ή περισσότερα μηνύματα error ή ένα μήνυμα πετυχημένης υποβολής. Σε περίπτωση που ένα αντικείμενο υποβληθεί ξανά, έχοντας τα ίδια αναγνωριστικά πεδία με προηγούμενα αποσταλμένο αντικείμενο, το τελευταίο διατηρείται στην βάση δεδομένων των Ηλεκτρονικών Βιβλίων ως έγκυρο, και αντιστοίχως το προηγούμενο ακυρώνεται. Στις υπηρεσίες λήψης ή απλής ακύρωσης απόδειξη/ τιμολογίου (κλήσεις τύπου GET ) ο userς κατά την κλήση θα αποστέλλει ως παραμέτρους τους μοναδικούς αριθμούς των παραστατικών που τον ενδιαφέρουν. *Σημείωση: Για την φάση ανάπτυξης και ελέγχου, η διαδικασία εγγραφής στις προσφερόμενες υπηρεσίες του mydata RESTAPI, θα γίνεται μέσω της εφαρμογής που είναι διαθέσιμη στο URL: 6

Απαραίτητα Headers Κάθε κλήση πρέπει να περιέχει με τη μορφή ζευγαριών-τιμών, τα παρακάτω headers,τα οποία είναι απαραίτητα για την ταυτοποίηση του user. Σε περίπτωση λανθασμένων στοιχείων ο userς θα λάβει μήνυμα error. KEY Data Type VALUE DESCRIPTION aade-user-id String {Όνομα user} Το όνομα user του λογαριασμού ocp-apim-subscription-key String {Subscription Key} Το subscription key του user Μέσα από την ταυτοποίηση του user μέσω των headers η διεπαφή θα αποκτά πρόσβαση και στον ΑΦΜ που είχε δηλώσει ο userς κατά την εγγραφή του, ώστε να μην είναι απαραίτητη η εισαγωγή αυτού του στοιχείου ξανά σε κάθε κλήση υπηρεσίας. 4.3 Περιγραφή λειτουργιών SendInvoices Η κλήση της μεθόδου SendInvoices είναι διαθέσιμη μέσω του ακόλουθου URL: Η κλήση έχει τα ακόλουθα χαρακτηριστικά: /SendInvoices, μέθοδος POST Έχει headers όπως αναφέρεται στην παράγραφο: Body που είναι σε μορφή xml και περιέχει το στοιχείο InvoicesDoc, το οποίο περιέχει ένα ή περισσότερα παραστατικά. Η δομή του στοιχείου αναλύεται από τον τύπο AadeBookInvoiceType και αναλύεται στο κεφάλαιο: 0 *Σημείωση: Για τη φάση της ανάπτυξης και διενέργειας δοκιμών, η μέθοδος είναι διαθέσιμη στη διεύθυνση URL: SendIncomeClassification Η κλήση της μεθόδου SendIncomeClassification είναι διαθέσιμη μέσω του ακόλουθου URL: 7

Η κλήση έχει τα ακόλουθα χαρακτηριστικά: /SendIncomeClassification, μέθοδος POST Headers όπως αναφέρεται στην παράγραφο: Body που αποτελείται από ένα ή περισσότερα πεδία InvoiceIncomeClassificationType. Ο τύπος αναλύεται παρακάτω: Πεδίο Τύπος Υποχρεωτικό Περιγραφή Αποδεκτές τιμές invoicemark xs:long Ναι Μοναδικός Αριθμός Καταχώρησης απόδειξη/ τιμολογίου classificationmark xs:long Όχι Μοναδικός Αριθμός Καταχώρησης Χαρακτηρισμού transactionmode xs:int Ναι (choice) Είδος Συναλλαγής 1 = Reject linenumber xs:int Ναι (choice) Αριθμός Γραμμής incomeclassificationdetaildata IncomeClassificationType Ναι (choice) Παρατηρήσεις: 1) Το πεδίο classificationmark συμπληρώνεται από την υπηρεσία 2) Το πεδίο transactionmode όταν παίρνει την τιμή 1 υποδηλώνει απόρριψη του απόδειξη/ τιμολογίου 3) Ο userς μπορεί να συμπεριλάβει είτε το στοιχείο transactionmode ή λίστα στοιχείων invoicesincomeclassificationdetails 4) Κάθε στοιχείο invoicesincomeclassificationdetails περιέχει ένα linenumber και μια λίστα στοιχείων invoiceincomeclassificationdetaildata 5) Το πεδίο linenumber αναφέρεται στον αντίστοιχο αριθμό γραμμής του αρχικού απόδειξη/ τιμολογίου με Μοναδικός Αριθμός Καταχώρησης αυτό του πεδίου mark *Σημείωση: Για τη φάση της ανάπτυξης και διενέργειας δοκιμών, η μέθοδος είναι διαθέσιμη στο URL: 8

SendExpensesClassification Η κλήση της μεθόδου SendExpensesClassification είναι διαθέσιμη μέσω του ακόλουθου URL: Η κλήση έχει τα ακόλουθα χαρακτηριστικά: /SendExpensesClassification, μέθοδος POST Headers όπως αναφέρεται στην παράγραφο: Body που αποτελείται από ένα ή περισσότερα πεδία InvoiceExpensesClassificationType. Ο τύπος αναλύεται από το παρακάτω διάγραμμα Πεδίο Τύπος Υποχρεωτικό Περιγραφή Αποδεκτές τιμές invoicemark xs:long Ναι Μοναδικός Αριθμός Καταχώρησης απόδειξη/ τιμολογίου classificationmark xs:long Όχι Μοναδικός Αριθμός Καταχώρησης Χαρακτηρισμού transactionmode xs:int Ναι (choice) Είδος Συναλλαγής 1 = Reject linenumber xs:int Ναι (choice) Αριθμός Γραμμής expensesclassificationdetaildata ExpensesClassificationType Ναι (choice) Παρατηρήσεις: 1) Το πεδίο classificationmark συμπληρώνεται από την υπηρεσία 2) Το πεδίο transactionmode όταν παίρνει την τιμή 1 υποδηλώνει απόρριψη του απόδειξη/ τιμολογίου 3) Ο userς μπορεί να συμπεριλάβει είτε το στοιχείο transactionmode ή λίστα στοιχείων invoicesexpensesclassificationdetails 4) Κάθε στοιχείο invoicesexpensesclassificationdetails περιέχει ένα linenumber και μια λίστα στοιχείων expensesclassificationdetaildata 9

Το πεδίο linenumber αναφέρεται στον αντίστοιχο αριθμό γραμμής του αρχικού απόδειξη/ τιμολογίου με Μοναδικός Αριθμός Καταχώρησης αυτό του πεδίου mark *Σημείωση: Για τη φάση της ανάπτυξης και διενέργειας δοκιμών, η μέθοδος είναι διαθέσιμη στο URL: CancelInvoice Αυτή η POST μέθοδος χρησιμοποιείται για την ακύρωση απόδειξη/ τιμολογίου χωρίς επαναϋποβολή καινούργιου. Ο userς την καλεί υποβάλλοντας ως παράμετρο το mark του απόδειξη/ τιμολογίου το οποίο θέλει να ακυρώσει. Δεν απαιτείται αποστολή xml body. Όνομα Τύπος Υποχρεωτικό Περιγραφή Παραμέτρου mark xs:long Ναι Μοναδικός αριθμός καταχώρησης απόδειξη/ τιμολογίου προς ακύρωση Σε περίπτωση επιτυχίας η ακύρωση ως πράξη λαμβάνει το δικό της mark το οποίο επιστρέφεται στον user και το παραστατικό θεωρείται ακυρωμένο. Σε περίπτωση αποτυχίας επιστρέφεται το αντίστοιχο μήνυμα λάθους. *Σημείωση: Για τη φάση της ανάπτυξης και διενέργειας δοκιμών, η μέθοδος είναι διαθέσιμη στο RequestDocs Με αυτή την μέθοδο ο userς λαμβάνει παραστατικά, χαρακτηρισμούς και ακυρώσεις παραστατικών που έχουν υποβάλλει άλλοι χρήστες και τον αφορούν. Αυτό πραγματοποιείται μέσω μιας HTTP κλήσης GET της μεθόδου, με την παρακάτω παράμετρο η οποία λειτουργεί ως κριτήριο αναζήτησης. ey] Όνομα Τύπος Υποχρεωτικό Περιγραφή Παραμέτρου mark xs:long Ναι Μοναδικός αριθμός καταχώρησης nextpartitionkey xs:string Όχι Παράμετρος για την τμηματική λήψη των αποτελεσμάτων nextrowkey xs:string Όχι Παράμετρος για την τμηματική 10

λήψη των αποτελεσμάτων Η κλήση επιστρέφει όσα πεδία αφορούν τον user και έχουν ως αναγνωριστικό Μοναδικό Αριθμό Καταχώρησης μεγαλύτερο της παραμέτρου. Παρατηρήσεις: 1) Στην περίπτωση που τα αποτελέσματα αναζήτησης ξεπερνούν σε μέγεθος το μέγιστο επιτρεπτό όριο ο userς θα τα λάβει τμηματικά. Τα πεδία nextpartitionkey και nextrowkey θα εμπεριέχονται σε κάθε τμήμα των αποτελεσμάτων και θα χρησιμοποιούνται ως παράμετροι στην κλήση για την λήψη του επόμενου τμήματος αποτελεσμάτων *Σημείωση: Για τη φάση της ανάπτυξης και διενέργειας δοκιμών, η μέθοδος είναι διαθέσιμη στο URL: RequestTransmittedDocs Με αυτή την μέθοδο ο userς λαμβάνει παραστατικά, χαρακτηρισμούς και ακυρώσεις παραστατικών που έχει υποβάλλει ο ίδιος και τον αφορούν. Αυτό πραγματοποιείται μέσω μιας HTTP κλήσης GET της μεθόδου, με την παρακάτω παράμετρο η οποία λειτουργεί ως κριτήριο αναζήτησης. &[nextrowkey] Όνομα Τύπος Υποχρεωτικό Περιγραφή Παραμέτρου mark xs:long Ναι Μοναδικός αριθμός καταχώρησης nextpartitionkey xs:string Όχι Παράμετρος για την τμηματική λήψη των αποτελεσμάτων nextrowkey xs:string Όχι Παράμετρος για την τμηματική λήψη των αποτελεσμάτων Η κλήση επιστρέφει όσα πεδία αφορούν τον user και έχουν ως αναγνωριστικό Μοναδικό Αριθμό Καταχώρησης μεγαλύτερο της παραμέτρου. Παρατήρηση: Στην περίπτωση που τα αποτελέσματα αναζήτησης ξεπερνούν σε μέγεθος το μέγιστο επιτρεπτό όριο ο userς θα τα λάβει τμηματικά. Τα πεδία nextpartitionkey και nextrowkey θα εμπεριέχονται σε κάθε τμήμα των αποτελεσμάτων και θα 11

χρησιμοποιούνται ως παράμετροι στην κλήση για την λήψη του επόμενου τμήματος αποτελεσμάτων *Σημείωση: Για τη φάση της ανάπτυξης και διενέργειας δοκιμών, η μέθοδος είναι διαθέσιμη στο URL: 12

Περιγραφή σχήματος απόδειξη/ τιμολογίου Αυτή η ενότητα περιγράφει αναλυτικά το περιεχόμενο του απόδειξη/ τιμολογίου (τύπου AadeBookInvoiceType). Η δομή του αναλύεται παρακάτω: Πεδίο Τύπος Υποχρεωτικό Περιγραφή Αποδεκτές τιμές uid xs:string Όχι Αναγνωριστικό απόδειξη/ τιμολογίου Μήκος= 40 Συμπληρώνεται από την 13

mark xs:long Όχι Μοναδικός Αριθμός Καταχώρησης απόδειξη/ τιμολογίου cancelledbymark xs:long Όχι Μοναδικός Αριθμός Καταχώρησης Ακυρωτικού authenticationcode xs:string Όχι Συμβολοσειρά Αυθεντικοποίησης transmissionfailure xs:byte Όχι Αδυναμία Επικοινωνίας Παρόχου Υπηρεσία Συμπληρώνεται από την Υπηρεσία Συμπληρώνεται από την Υπηρεσία Συμπληρώνεται από την Υπηρεσία μόνο στην περίπτωση που η αποστολή γίνεται από παρόχους Αποδεκτό μόνο στην περίπτωση αποστολής από παρόχους. Επιτρεπτές τιμές {1,2}: 1 : Στην περίπτωση αδυναμίας επικοινωνίας οντότητας με τον πάροχο κατά την έκδοση/διαβίβαση απόδειξη/ τιμολογίου 2 : Στην περίπτωση αδυναμίας επικοινωνίας του παρόχου με το mydata κατά την έκδοση/ διαβίβαση απόδειξη/ τιμολογίου issuer PartyType Όχι Εκδότης απόδειξη/ τιμολογίου counterpart PartyType Όχι Λήπτης απόδειξη/ τιμολογίου paymentmethods PaymentMethodDetailType Όχι Τρόποι Πληρωμής invoiceheader InvoiceHeaderType Ναι Επικεφαλίδα απόδειξη/ τιμολογίου invoicedetails InvoiceRowType Ναι Γραμμές απόδειξη/ τιμολογίου taxestotals TaxesType Όχι Σύνολα Φόρων invoicesummary InvoiceSummaryType Ναι Περίληψη απόδειξη/ τιμολογίου Παρατηρήσεις: 1) Το uid αποτελεί το αναγνωριστικό κάθε απόδειξη/ τιμολογίου και συμπληρώνεται από την Υπηρεσία. Υπολογίζεται από το SHA-1 hash 6 πεδίων του απόδειξη/ τιμολογίου τα οποία είναι : o ΑΦΜ Eκδότη o Ημερομηνία Έκδοσης o Αριθμός Εγκατάστασης στο Μητρώο του Taxis 14

o o o Τύπος απόδειξη/ τιμολογίου Σειρά ΑΑ 2) Το mark αποτελεί τον Μοναδικό Αριθμό Καταχώρησης του απόδειξη/ τιμολογίου (Μ.ΑΡ.Κ) 3) Στο στοιχείο taxestotals θα περιλαμβάνονται φόροι όλων των κατηγοριών, εκτός του ΦΠΑ, οι οποίοι αφορούν όλο το παραστατικό σαν σύνολο. Σε περίπτωση που ο userς κάνει χρήση αυτού του στοιχείου, δεν θα μπορεί να εισάγει φόρους εκτός του ΦΠΑ σε κάθε γραμμή του απόδειξη/ τιμολογίου ξεχωριστά 4) Η δομή των τύπων PartyType, PaymentMethodDetailType, InvoiceHeaderType, InvoiceRowType, TaxTotalsType, InvoiceSummaryType αναλύεται στη συνέχεια 5) Ο Μοναδικός Αριθμός Καταχώρησης Ακυρωτικού εμφανίζεται κατά την λήψη μόνο εφόσον το εν λόγω παραστατικό έχει ακυρωθεί και συμπληρώνεται με το ΜΑΡΚ της ακύρωσης 6) Το authenticationcode αποτελεί τη συμβολοσειρά αυθεντικοποίησης κάθε απόδειξη/ τιμολογίου και συμπληρώνεται από την Υπηρεσία για την περίπτωση που η αποστολή γίνεται μέσω Παρόχου Ηλεκτρονικής Τιμολόγησης. Υπολογίζεται από το SHA-1 hash 8 πεδίων του απόδειξη/ τιμολογίου τα οποία είναι : o ΑΦΜ Eκδότη o Ημερομηνία Έκδοσης o Αριθμός Εγκατάστασης στο Μητρώο του Taxis o Τύπος απόδειξη/ τιμολογίου o Σειρά o ΑΑ o Μ.ΑΡ.Κ απόδειξη/ τιμολογίου o Συνολική Αξία απόδειξη/ τιμολογίου o Σύνολο Αξίας Φ.Π.Α. απόδειξη/ τιμολογίου o ΑΦΜ Λήπτη 15

πεδία οντότητας Ο εκδότης και ο λήπτης του απόδειξη/ τιμολογίου είναι πεδία τύπου PartyType Και η δομή τους αναλύεται παρακάτω: Πεδίο Τύπος Υποχρεωτικό Περιγραφή Αποδεκτές τιμές vatnumber xs:string Ναι ΑΦΜ Οποιοσδήποτε έγκυρος ΑΦΜ country xs:string Ναι Κωδικός Χώρας Κωδικοί χωρών branch xs:int Ναι Αρ. Εγκατάστασης Ελάχιστη τιμή = 0 name xs:string Όχι Επωνυμία address AddressType Όχι Διεύθυνση Παρατηρήσεις: 1) Ο κωδικός της χώρας είναι δύο χαρακτήρες και προέρχεται από την αντίστοιχη λίστα χωρών όπως αναλύεται στο ISO ) Σε περίπτωση που η εγκατάσταση του εκδότη είναι η έδρα ή δεν υφίσταται, το πεδίο branch πρέπει να έχει την τιμή 0 3) Για τον εκδότη, τα πεδία Επωνυμία και Διεύθυνση δεν γίνονται αποδεκτά στην περίπτωση που αφορούν οντότητα εντός Ελλάδας (GR). Για τον λήπτη, το στοιχείο Επωνυμία δεν γίνονται αποδεκτό στην περίπτωση που αφορά οντότητα εντός Ελλάδας (GR) 16

Διεύθυνση Οντότητας Η διεύθυνση του εκδότη (ή του λήπτη) είναι στοιχείο τύπου AddressType και η δομή του αναλύεται παρακάτω: Πεδίο Τύπος Υποχρεωτικό Περιγραφή street xs:string Όχι Οδός number xs:string Όχι Αριθμός postalcode xs:string Ναι ΤΚ city xs:string Ναι Πόλη 17

Τρόπος Πληρωμής Ο τρόπος πληρωμής είναι στοιχείο τύπου PaymentMethodDetailType και η δομή του αναλύεται παρακάτω: Πεδίο Τύπος Υποχρεωτικό Περιγραφή Αποδεκτές τιμές type xs:int Ναι Τύπος Πληρωμής Ελάχιστη τιμή = 1 Μέγιστη τιμή = 5 amount xs:decimal Ναι Ποσό Πληρωμής Ελάχιστη τιμή = 0 Δεκαδικά ψηφία = 2 paymentmethodinfo xs:string Όχι Πληροφορίες Παρατηρήσεις: 1) Οι τιμές του πεδίου type αναλύονται σε αντίστοιχο πίνακα του παραρτήματος 2) Το πεδίο amount μπορεί να αντιστοιχεί σε ένα τμήμα της συνολικής αξίας του απόδειξη/ τιμολογίου 3) Το πεδίο Πληροφορίες μπορεί να περιέχει επιπλέον πληροφορίες σχετικά με τον συγκεκριμένο τύπο (πχ Αρ. Λογαριασμού Τραπέζης) 18

Επικεφαλίδα απόδειξη/ τιμολογίου Η επικεφαλίδα του απόδειξη/ τιμολογίου είναι στοιχείο τύπου InvoiceHeaderType και η δομή του αναλύεται εδώ: Πεδίο Τύπος Υποχρεωτικό Περιγραφή Αποδεκτές τιμές series xs:string Ναι Σειρά Μέγιστο επιτρεπτό μήκος 50 απόδειξη/ τιμολογίου aa xs:string Ναι ΑΑ απόδειξη/ τιμολογίου Μέγιστο επιτρεπτό μήκος 50 issuedate xs:date Ναι Ημ. Έκδοσης απόδειξη/ τιμολογίου 19

invoicetype xs:string Ναι Είδος απόδειξη/ τιμολογίου Λίστα τιμών: 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.1, 2.2, 2.3, 2.4, 3.1, 3.2, 4, 5.1, 5.2, 6.1, 6.2, 7.1, 8.1, 8.2, 11.1, 11.2, 11.3, 11.4, 11.5, 12, 13.1, 13.2, 13.3, 13.4, 13.30, 13.31, 14.1, 14.2, 14.3, 14.4, 14.5, 14.30, 14.31, 15.1, 16.1, 17.1, 17.2, 17.3, 17.4, 17.5, [Για την περίπτωση των παρόχων μόνο οι τιμές 1.1 έως 11.5 είναι επιτρεπτές] vatpaymentsuspension xs:boolean Όχι Αναστολή Καταβολής ΦΠΑ currency xs:string Όχι Νόμισμα Κωδικοί νομισμάτων exchangerate xs:decimal Όχι Ισοτιμία Ελάχιστη τιμή = 0 Δεκαδικά ψηφία = 5 correlatedinvoices xs:long Όχι Συσχετιζόμενα Παραστατικά selfpricing xs:boolean Όχι Ένδειξη Αυτοτιμολόγησης dispatchdate xs:date Όχι Ημερομηνία Έναρξης Αποστολής dispatchtime xs:time Όχι Ώρα Έναρξης Αποστολής vehiclenumber xs:string Όχι Αριθμός Μεταφορικού Μέσου movepurpose xs:int Όχι Σκοπός Διακίνησης Ελάχιστη τιμή = 1 Μέγιστη τιμή = 8 Παρατηρήσεις: 1) To πεδίο exchangerate είναι η ισοτιμία του νομίσματος σε σχέση με το ευρώ. Πρέπει να συμπληρώνεται μόνο όταν το νόμισμα δεν έχει τιμή EUR. 2) Ο κωδικός νομισμάτων προέρχεται από την αντίστοιχη λίστα σύμφωνα με το πρότυπο ISO ) Το στοιχείο correlatedinvoices είναι λίστα και περιέχει τα ΜΑΡΚ των συσχετιζόμενων παραστατικών 4) Σε περίπτωση μη έκδοσης σειράς απόδειξη/ τιμολογίου, το πεδίο series πρέπει να έχει την τιμή 0 5) Το πεδίο selfpricing ορίζει αν πρόκειται για Τιμολόγιο Αυτοτιμολόγησης 6) Οι πιθανές τιμές των πεδίων movepurpose και invoicetype αναλύονται αναλυτικά στους αντίστοιχους πίνακες του Παραρτήματος 20

πεδία απόδειξη/ τιμολογίου Τα πεδία του απόδειξη/ τιμολογίου είναι πεδία τύπου InvoiceRowType και αναλύονται παρακάτω: 21

Πεδίο Τύπος Υποχρεωτικό Περιγραφή Αποδεκτές τιμές linenumber xs:int Ναι ΑΑ γραμμής Ελάχιστη τιμή = 1 quantity xs:decimal Όχι Ποσότητα Ελάχιστη τιμή = 0 measurementunit xs:int Όχι Είδος Ποσότητας Λίστα τιμών: 1,2,3 invoicedetailtype xs:int Όχι Επισήμανση Λίστα τιμών: 1,2 netvalue xs:decimal Ναι Καθαρή αξία Ελάχιστη τιμή = 0 Δεκαδικά ψηφία = 2 vatcategory xs:int Ναι Κατηγορία ΦΠΑ Ελάχιστη τιμή = 1 Μέγιστη τιμή = 8 vatamount xs:decimal Ναι Ποσό ΦΠΑ Ελάχιστη τιμή = 0 Δεκαδικά ψηφία = 2 vatexemptioncategory xs:int Όχι Κατηγορία Αιτίας Εξαίρεσης ΦΠΑ Ελάχιστη τιμή = 1 Μέγιστη τιμή = 23 dienergia ShipType Όχι ΠΟΛ 1177/2018 Αρ. 27 discountoption xs:boolean Όχι Δικαίωμα Έκπτωσης False / True withheldamount xs:decimal Όχι Ποσό Παρακράτησης Φόρου Ελάχιστη τιμή = 0 Δεκαδικά ψηφία = 2 withheldpercentcategory xs:int Όχι Κατηγορία Συντελεστή Παρακράτησης Φόρου Ελάχιστη τιμή = 1 Μέγιστη τιμή = 15 stampdutyamount xs: decimal Όχι Ποσό Χαρτοσήμου Ελάχιστη τιμή = 0 Δεκαδικά ψηφία = 2 stampdutypercentcategory xs:int Όχι Κατηγορία Συντελεστή Χαρτοσήμου Λίστα τιμών: 1, 2, 3 feesamount xs:decimal Όχι Ποσό Τελών Ελάχιστη τιμή = 0 Δεκαδικά ψηφία = 2 feespercentcategory xs:int Όχι Κατηγορία Συντελεστή Τελών Ελάχιστη τιμή = 1 Μέγιστη τιμή = 9 othertaxespercentcategory xs:int Όχι Κατηγορία Συντελεστή Λοιπών Φόρων Ελάχιστη τιμή = 1 Μέγιστη τιμή = 14 othertaxesamount xs:decimal Όχι Ποσό Λοιπών Φόρων Ελάχιστη τιμή = 0 Δεκαδικά ψηφία = 2 deductionsamount xs:decimal Όχι Ποσό Κρατήσεων Ελάχιστη τιμή = 0 Δεκαδικά ψηφία = 2 linecomments xs:string Όχι Σχόλια Γραμμής incomeclassification IncomeClassificationType Όχι Χαρακτηρισμοί Εσόδων expensesclassification ExpensesClassificationType Όχι Χαρακτηρισμοί Εξόδων Παρατηρήσεις: 1) Οι πιθανές τιμές για τα πεδία measurementunit, invoicedetailtype, vatcategory, vatexemptioncategory, withheldpercentcategory, stampdutypercentcategory, feespercentcategory και othertaxespercentcategory αναλύονται αναλυτικά στους αντίστοιχους πίνακες του Παραρτήματος 22

Σε όλες τις περιπτώσεις, ανεξαρτήτως της τιμής του αντίστοιχου πεδίου category, συμπληρώνεται πάντα το σχετικό ποσό στο αντίστοιχο πεδίο amount 3) Το πεδίο vatexemptioncategory είναι απαραίτητο στην περίπτωση που το vatcategory υποδηλώνει κατηγορία συντελεστή 0% ΦΠΑ 4) Για περιπτώσεις λογιστικών εγγραφών όπου δεν εφαρμόζεται ΦΠΑ, το πεδίο vatcategory θα έχει την τιμή 8 5) Τα σχόλια γραμμής συμπληρώνονται από τον user και χρησιμοποιούνται για πληροφοριακούς λόγους προς την υπηρεσία Οι χαρακτηρισμοί που αφορούν τον υποβάλλοντα (εκδότης εσόδων, λήπτης εξόδων), υποβάλλονται μαζί με το παραστατικό με την αντίστοιχη χρήση των πεδίων incomeclassification expensesclassification 23

Δήλωση Διενέργειας (ΠΟΛ 1177/2018 Αρ. 27) Η Δήλωσης Διενέργειας είναι στοιχείο τύπου ShipType και η δομή του αναλύεται παρακάτω: Πεδίο Τύπος Υποχρεωτικό Περιγραφή applicationid xs:string Ναι Αριθμός Δήλωσης Διενέργειας Δραστηριότητας applicationdate xs:date Ναι Ημερομηνία Δήλωσης doy xs:string Όχι ΔΟΥ Δήλωσης shipid xs:string Ναι πεδία Πλοίου 24

Σύνολα Φόρων Ο τύπος Σύνολα Φόρων (TaxTotalsType) περιγράφει την δομή των φόρων που αφορούν το σύνολο του απόδειξη/ τιμολογίου και αναλύεται παρακάτω: Πεδίο Τύπος Υποχρεωτικό Περιγραφή Αποδεκτές τιμές taxtype xs:byte Ναι Είδος Φόρου Λίστα τιμών: 1 = Παρακρατούμενος Φόρος 2 = Τέλη 3 = Λοιποί Φόροι 4 = Χαρτόσημο 5 = Κρατήσεις taxcategory xs:byte Όχι Κατηγορία Φόρου Ελάχιστη τιμή = 1 underlyingvalue xs:decimal Όχι Υποκείμενη Αξία Ελάχιστη τιμή = 0 Δεκαδικά ψηφία = 2 taxamount xs:decimal Ναι Ποσό Φόρου Ελάχιστη τιμή = 0 Δεκαδικά ψηφία = 2 id xs:byte Όχι Αύξων αριθμός γραμμής Παρατηρήσεις: 1) Το πεδίο taxcategory μπορεί να πάρει κάθε φορά οποιαδήποτε τιμή από τον αντίστοιχο πίνακα του Παραρτήματος του φόρου που αναφέρεται στο πεδίο taxtype 2) Το πεδίο underlyingvalue υποδηλώνει την αξία στην οποία εφαρμόζεται ο συγκεκριμένος φόρος 25

Περίληψη απόδειξη/ τιμολογίου Η περίληψη του απόδειξη/ τιμολογίου είναι τύπου InvoiceSummaryType και αναλύεται παρακάτω: Πεδίο Τύπος Υποχρεωτικό Περιγραφή Αποδεκτές τιμές totalnetvalue xs:decimal Ναι Σύνολο Καθαρής Αξίας Ελάχιστη τιμή = 0 Δεκαδικά ψηφία = 2 totalvatamount xs:decimal Ναι Σύνολο ΦΠΑ Ελάχιστη τιμή = 0 Δεκαδικά ψηφία = 2 totalwithheldamount xs:decimal Ναι Σύνολο Παρακρατήσεων Φόρων Ελάχιστη τιμή = 0 Δεκαδικά ψηφία = 2 totalfeesamount xs:decimal Ναι Σύνολο Τελών Ελάχιστη τιμή = 0 Δεκαδικά ψηφία = 2 totalstampdutyamount xs:decimal Ναι Σύνολο Χαρτοσήμου Ελάχιστη τιμή = 0 Δεκαδικά ψηφία = 2 totalothertaxesamount xs:decimal Ναι Σύνολο Λοιπών Φόρων Ελάχιστη τιμή = 0 Δεκαδικά ψηφία = 2 totaldeductionsamount xs:decimal Ναι Σύνολο Κρατήσεων Ελάχιστη τιμή = 0 Δεκαδικά ψηφία = 2 totalgrossvalue xs:decimal Ναι Συνολική Αξία Ελάχιστη τιμή = 0 Δεκαδικά ψηφία = 2 incomeclassification IncomeClassificationType Όχι Χαρακτηρισμοί Εσόδων expensesclassification ExpensesClassificationType Όχι Χαρακτηρισμοί Εξόδων 26

Παρατηρήσεις: 1) Τα πεδία incomeclassification και expensesclassification περιέχουν τα αθροίσματα για κάθε συνδυασμό τιμών των πεδίων classificationtype και classificationcategory που εντοπίζονται στις γραμμές του απόδειξη/ τιμολογίου 2) Όλα τα πεδία αθροισμάτων φόρων εκτός του totalvatamount θα περιέχουν είτε τα αθροίσματα των αντίστοιχων φόρων των γραμμών του απόδειξη/ τιμολογίου, είτε τα αθροίσματα των αντίστοιχων φόρων που περιέχονται στο στοιχείο taxestotals 27

Χαρακτηρισμός Εσόδων Ο τύπος IncomeClassificationType (αναλύεται παρακάτω) αποτελεί την βασική δομή του Χαρακτηρισμού Εσόδων και εμπεριέχεται είτε σε κάθε γραμμής του απόδειξη/ τιμολογίου ξεχωριστά (χαρακτηρισμός γραμμής), είτε στην περίληψη απόδειξη/ τιμολογίου (άθροισμα χαρακτηρισμών ανά τύπο – κατηγορία), είτε στο αντικείμενο InvoiceIncomeClassificationType όταν οι χαρακτηρισμοί εσόδων υποβάλλονται ξεχωριστά (βλ παράγραφος 4.3.2) Πεδίο Τύπος Υποχρεωτικό Περιγραφή Αποδεκτές Tιμές classificationtype xs: string Όχι Κωδικός Χαρακτηρισμού E3_106, E3_205, E3_210, E3_305, E3_310, E3_318, E3_561_001,E3_561_002,E3_561_003, E3_561_004, E3_561_005, E3_561_006, E3_561_007, E3_562, E3_563, E3_564, E3_565, E3_566, E3_567, E3_568, E3_569, E3_570, E3_595, E3_596, E3_597, E3_880_001, E3_880_002, E3_880_003, E3_880_004, E3_881_001, E3_881_002, classificationcategory xs: string Ναι Κατηγορία Χαρακτηρισμού E3_881_003, E3_881_004 category1_1, category1_2, category1_3, category1_4, category1_5, category1_6, category1_7, category1_8, category1_9, category1_10, category1_95 amount xs:decimal Ναι Ποσό Ελάχιστη τιμή = 0 Δεκαδικά ψηφία = 2 id xs:byte Όχι Αύξων αριθμός Χαρακτηρισμού 28

Παρατηρήσεις: 1) Οι τιμές των πεδίων classificationtype και classificationtype (για του χαρακτηρισμούς εσόδων) αναλύονται αναλυτικά στους αντίστοιχους πίνακες του Παραρτήματος 2) Το πεδίο id προσφέρεται για σειριακή αρίθμηση (1,2,3 κλπ) των χαρακτηρισμών εντός μιας γραμμής 29

Χαρακτηρισμός Εξόδων Ο τύπος ExpensesClassificationType (αναλύεται παρακάτω) αποτελεί την βασική δομή του Χαρακτηρισμού Εξόδων και εμπεριέχεται είτε σε κάθε γραμμής του απόδειξη/ τιμολογίου ξεχωριστά (χαρακτηρισμός γραμμής), είτε στην περίληψη απόδειξη/ τιμολογίου (άθροισμα χαρακτηρισμών ανά τύπο – κατηγορία), είτε στο αντικείμενο InvoiceExpensesClassificationType όταν οι χαρακτηρισμοί εσόδων υποβάλλονται ξεχωριστά (βλ παράγραφος 4.3.3) Πεδίο Τύπος Υποχρεωτικό Περιγραφή Tιμές classificationtype xs: string Όχι Κωδικός Χαρακτηρισμού Λίστα τιμών: E3_101, E3_102_001, E3_102_002, E3_102_003, E3_102_004, E3_102_005, E3_102_006, E3_104, E3_201, E3_202_001, E3_202_002, E3_202_003, E3_202_004, E3_202_005, E3_204, E3_207, E3_209, E3_301, E3_302_001, E3_302_002, E3_302_003, E3_302_004, E3_302_005, E3_304, E3_307, E3_309, E3_312, E3_313_001, E3_313_002, E3_313_003, E3_313_004, E3_313_005, E3_315, E3_581_001, E3_581_002, E3_581_003, E3_582, E3_583, E3_584, E3_585_001, E3_585_002, E3_585_003, E3_585_004, E3_585_005, E3_585_006, E3_585_007, E3_585_008, E3_585_009, E3_585_010, 30

32 classificationcategory xs: string Όχι Κατηγορία Χαρακτηρισμού E3_585_011, E3_585_012, E3_585_013, E3_585_014, E3_585_015, E3_585_016, E3_586, E3_587, E3_588, E3_589, E3_590, E3_596, E3_597, E3_882_001, E3_882_002, E3_882_003, E3_882_004, E3_883_001, E3_883_002, E3_883_003, E3_883_004, VAT_361, VAT_362, VAT_363, VAT_364, VAT_365, VAT_366 Λίστα τιμών: category2_1, category2_2, category2_3, category2_4, category2_5, category2_6, category2_7, category2_8, category2_9, category2_10, category2_11, category2_12, category2_13, category2_14, category2_95 amount xs:decimal Ναι Ποσό Ελάχιστη τιμή = 0 Δεκαδικά ψηφία = 2 id xs:byte Όχι Αύξων αριθμός Χαρακτηρισμού Παρατηρήσεις: 1) Οι τιμές των πεδίων classificationtype και classificationtype (για του χαρακτηρισμούς εξόδων) αναλύονται αναλυτικά στους αντίστοιχους πίνακες του Παραρτήματος 2) Το πεδίο id προσφέρεται για σειριακή αρίθμηση (1,2,3 κλπ) των χαρακτηρισμών εντός μιας γραμμής 31

Περιγραφή Απαντήσεων 6.1 Υποβολή Δεδομένων Στις περιπτώσεις που ο userς χρησιμοποιήσει κάποια μέθοδο υποβολής στοιχείων ή ακύρωση (SendInvoices, SendIncomeClassification, SendExpensesClassification, CancelInvoice) θα λαμβάνει ως απάντηση ένα αντικείμενο ResponseDoc σε xml μορφή. Το αντικείμενο περιλαμβάνει μια λίστα από πεδία τύπου response, ένα για κάθε οντότητα που υποβλήθηκε. Πεδίο Τύπος Υποχρεωτικό Περιγραφή Tιμές index xs: int Όχι Αριθμός Σειράς Οντότητας εντός του υποβληθέντος xml statuscode xs: string Ναι Κωδικός Αποτελέσματος Success, ValidationError, TechnicalError, XMLSyntaxError invoiceuid xs: string Όχι Αναγνωριστικό Μήκος = 40 απόδειξη/ τιμολογίου invoicemark xs: long Όχι Μοναδικός Αριθμός Καταχώρησης απόδειξη/ τιμολογίου classificationmark xs: long Όχι Μοναδικός Αριθμός Παραλαβής Χαρακτηρισμού authenticationcode xs: string Όχι Συμβολοσειρά Αυθεντικοποίησης 32

cancellationmark xs: long Όχι Μοναδικός Αριθμός Ακύρωσης errors ErrorType Ναι (choice) Λίστα Σφαλμάτων Παρατηρήσεις: 1) Το είδος της απάντησης (πετυχημένη ή αποτυχημένη διαδικασία) καθορίζεται από την τιμή του πεδίου statuscode. 2) Σε περίπτωση επιτυχίας το πεδίο statuscode έχει τιμή Success και η απάντηση περιλαμβάνει τις αντίστοιχες τιμές για τα πεδία invoiceuid, invoicemark, classificationmark και cancellationmark, ανάλογα με την οντότητα που υποβλήθηκε. 3) Σε περίπτωση αποτυχίας το πεδίο statuscode έχει τιμή αντίστοιχη του είδους του error και η απάντηση περιλαμβάνει μια λίστα στοιχείων error τύπου ErrorType για κάθε οντότητα που η υποβολή της απέτυχε. Όλα τα πεδία error ανά οντότητα είναι υποχρεωτικά της ίδιας κατηγορίας που χαρακτηρίζει την απάντηση 4) Το πεδίο invoiceuid επιστρέφει μόνο στην περίπτωση που η υποβολή αφορούσε παραστατικό 5) Το πεδίο classificationmark επιστρέφει μόνο στην περίπτωση που η υποβολή αφορούσε χαρακτηρισμό 6) Το πεδίο authenticationcode επιστρέφει στην περίπτωση που η υποβολή έγινε μέσω παρόχου 7) Το πεδίο cancellationmark επιστρέφει μόνο στην περίπτωση που η υποβολή αφορούσε ακύρωση απόδειξη/ τιμολογίου 8) Το πεδίο invoicemark περιέχει το mark του υποβληθέντος απόδειξη/ τιμολογίου στην περίπτωση που υποβλήθηκαν παραστατικά και το mark του απόδειξη/ τιμολογίου που αφορούσαν οι υποβληθέντες χαρακτηρισμοί, στην περίπτωση υποβολής χαρακτηρισμών 33

Λήψη Δεδομένων Στις περιπτώσεις που ο userς καλέσει μια εκ των δυο μεθόδων λήψης δεδομένων (RequestDocs,RequestTransmittedDocs), όπως αυτές αναλύονται σε προηγούμενη παράγραφο, θα λάβει ένα αντικείμενο RequestedDoc σε xml μορφή. Το αντικείμενο θα περιλαμβάνει λίστες παραστατικών, χαρακτηρισμών εσόδων εξόδων και ακυρώσεων παραστατικών οι οποίες έχουν mark μεγαλύτερο από αυτό που εισήχθη ως παράμετρο, καθώς και το στοιχείο continuationtoken, σε περίπτωση που ο όγκος των δεδομένων υπερβαίνει το επιτρεπτό όριο και η λήψη τους γίνει τμηματικά Πεδίο Τύπος Υποχρεωτικό Περιγραφή continuationtoken continuationtokentype Όχι Στοιχείο για την τμηματική λήψη αποτελεσμάτων invoicesdoc AadeBookInvoiceType Όχι Λίστα Παραστατικών cancelledinvoicesdoc CancelledInvoiceType Όχι Λίστα ακυρώσεων invoicemark xs:long Ναι ΜΑΡΚ απόδειξη/ τιμολογίου που ακυρώθηκε cancellationmark xs:long Ναι ΜΑΡΚ ακύρωσης cancellationdate xs:date Ναι Ημερομηνία ακύρωσης incomeclassificationsdoc InvoiceIncomeClassificationType Όχι Λίστα Χαρακτηρισμών Εσόδων expensesclassificationsdoc InvoiceExpensesClassificationType Όχι Λίστα Χαρακτηρισμών Εξόδων nextpartitionkey xs:string Ναι Παράμετρος για επόμενη κλήση λήψης nextrowkey xs:string Ναι Παράμετρος για επόμενη κλήση λήψης Παρατηρήσεις: 1) Σε περίπτωση που θα επιστρέφεται το στοιχείο continuationtoken τα πεδία nextpartitionkey και nextrowkey θα είναι συμπληρωμένα από την υπηρεσία και χρησιμοποιούνται στην επόμενη κλήση της ίδιας μεθόδου που είχε καλεστεί από τον user 34

2) Οι τύποι AadeBookInvoiceType, InvoiceIncomeClassificationType και InvoiceExpensesClassificationType αναλύονται σε προηγούμενες παραγράφους 35

Σφάλματα Τα σφάλματα είναι πεδία ErrorType και αναλύονται παρακάτω: Κάθε στοιχείο error που αφορά μια οντότητα αποτελείται από ένα μήνυμα που περιγράφει το σφάλμα και έναν κωδικό error. Πεδίο Τύπος Υποχρεωτικό Περιγραφή message xs: string Ναι Μήνυμα error code xs: string Ναι Κωδικός error 7.1 Τεχνικά Σφάλματα Τα τεχνικά σφάλματα χαρακτηρίζουν την κλήση ως μη επιτυχημένη και επιστρέφουν ένα τυπικό.νετ HttpResponseMessage αντί για το ErrorType που αναλύεται στην παράγραφο 7. Ως εκ τούτου δεν έχουν ειδικό κωδικό error, δεν συνοδεύονται από κάποιο statuscode του στοιχείου ResponseType, και αναγνωρίζονται από το αντίστοιχο HttpStatusCode. # HTTP Response Περιγραφή 1 HTTP 401 UNAUTHORIZED Aade-user-id header is missing 2 HTTP 401 UNAUTHORIZED Access Key does not correspond to given User Id 3 HTTP 400 BAD_REQUEST Please pass mark in the request parameters or body 4 HTTP 400 BAD_REQUEST General Exception Error 36

Επιχειρησιακά Σφάλματα Τα επιχειρησιακά σφάλματα είναι τύπου ErrorType (βλ Παρ. 7) και προκύπτουν κατά την αποτυχία των επιχειρησιακών ελέγχων. Στην περίπτωση τους η κλήση θεωρείται τεχνικά επιτυχημένη (HTTP Response 200). HTTP statuscode Κωδικός Στοιχείο Response Περιγραφή HTTP 200 OK XMLSyntaxError 101 Application XML Syntax Validation Error HTTP 200 OK ValidationError 102 Application Vat number {vatnumber} does not belong to active corporation HTTP 200 OK ValidationError 103 Application Please pass mark in the request parameters HTTP 200 OK ValidationError 104 Application Requested Invoice was not found HTTP 200 OK ValidationError 201 Invoice User VAT number {vatnumber} is not authorized to send this invoice HTTP 200 OK ValidationError 202 Invoice Invalid Greek VAT number HTTP 200 OK ValidationError 203 Invoice Gross Value doesn’t match with sum of net value plus taxes HTTP 200 OK ValidationError 204 Invoice {Field} is mandatory for this invoice type HTTP 200 OK ValidationError 205 Invoice {Field} is forbidden for this invoice type HTTP 200 OK TechnicalError 206 Invoice Unexpected technical error for invoice line HTTP 200 OK ValidationError 207 Invoice The sum of net values of the invoice lines doesn’t match with total net value of the invoice HTTP 200 OK ValidationError 208 Invoice The sum of gross values of the invoice lines doesn’t match with total gross value of the invoice HTTP 200 OK ValidationError 209 Invoice The sum of vat amount of the invoice lines doesn’t match with total vat amount of the invoice HTTP 200 OK ValidationError 210 Invoice The sum of withheld amount of the invoice lines doesn’t match with total withheld amount of the invoice HTTP 200 OK ValidationError 211 Invoice Exchange Rate must be greater than 0 when the currency is not Euro HTTP 200 OK ValidationError 212 Invoice

AA element must be number (positive) for issuer from Greece

HTTP 200 OK ValidationError 213 Invoice {Field} must have value 0 for this invoice type HTTP 200 OK ValidationError 214 Invoice Element {Element} must be sent only if it is true HTTP 200 OK ValidationError 215 Invoice Vat category must have value 8 for this invoice type HTTP 200 OK ValidationError 216 Invoice Vat category must have value other than 8 for this invoice type HTTP 200 OK ValidationError 217 Invoice

When vatcategory has value 7, element vatexemptioncategory is mandatory

HTTP 200 OK ValidationError 218 Invoice Vat Amount must have value 0 for this invoice type HTTP 200 OK ValidationError 219 Invoice Issuer Name is forbidden for Issuer from Greece HTTP 200 OK ValidationError 220 Invoice Counterpart Name is forbidden for Counterpart from Greece HTTP 200 OK ValidationError 221 Invoice {Field} is forbidden for the lines that have invoicedetailtype = 2 for this invoice type HTTP 200 OK ValidationError 222 Invoice {Field} must have value greater than 0 for this invoice type HTTP 200 OK ValidationError 223 Invoice Unsupported invoice type 37

HTTP 200 OK ValidationError 224 Invoice Taxes are allowed either per invoice line or per invoice (not in both) HTTP 200 OK ValidationError 225 Invoice {Field} must exist (cannot be null) since the {Field} is not null (invoice line {linenumber}) HTTP 200 OK ValidationError 226 Invoice The sum of {field} amount of the invoice {section} doesn’t match with total {field} amount of the invoice HTTP 200 OK ValidationError 227 Invoice {Field1} cannot exist (must be null) since the {Field1} is null (invoice line : {linenumber}) [ Possible {Field1, Field2} values: { feesamount, feespercentcategory }, { stampdutyamount, stampdutypercentcategory }, { withheldamount, withheldpercentcategory }] HTTP 200 OK ValidationError 228 Invoice {Field} is invalid [Possible {Field} values: {UID, InvoiceType} [Αφορά μόνο τους παρόχους] HTTP 200 OK ValidationError 229 Invoice {Field1} is not correct according to the given: {Field2} (invoice line: {linenumber}) [ Possible {Field1, Field2} values: { feesamount, feespercentcategory }, { stampdutyamount, stampdutypercentcategory }, { withheldamount, withheldpercentcategory }] [Αφορά μόνο τους παρόχους] HTTP 200 OK ValidationError 230

incomeclassification is mandatory for invoice detail 1

(number} [Possible {Field} values: {E3 classifications, VAT classifications} HTTP 200 OK ValidationError 231 Invoice {Field} is forbidden for invoice detail (number} [Possible {Field} values: {E3 classifications, VAT classifications} HTTP 200 OK ValidationError 233 Invoice UID: ” + {uid} + ” has already been sent [Αφορά μόνο τους παρόχους] HTTP 200 OK ValidationError 234 Invoice The values 7 or 8 are not allowed for Vat Category for this invoice type HTTP 200 OK ValidationError 235 Invoice Issuer must be different from counterpart HTTP 200 OK ValidationError 236 Invoice The Sender (vatnumber): ” + {afm} + ” must be different from the issuer (vatnumber) HTTP 200 OK ValidationError 237 Invoice Underlying Value(s) of taxes cannot be greater than the total net value of invoice HTTP 200 OK ValidationError 239 Invoice Taxamount(s) of taxes cannot be greater than the total net value of invoice HTTP 200 OK ValidationError 240 Invoice 240/ValidationError -Taxamount {Taxamount } of taxline: {A/A} cannot be greater than the corresponding underlying value HTTP 200 OK ValidationError 241 Invoice 241/ValidationError -{Field1} cannot be greater than the corresponding invoiceline net value (invoice line: + {linenumber} ) [ Possible {Field1} values: { feesamount, othertaxespercentamount, stampdutyamount, withheldamount }] HTTP 200 OK ValidationError 242 Invoice 242/ValidationError – {Field} ‘s country for this invoice 38

type must be Greece [Possible {Field} values: {Issuer, Counterpart} HTTP 200 OK ValidationError 243 Invoice 243/ValidationError – {Field} ‘s country for this invoice type must be in Europe but not Greece [Possible {Field} values: {Issuer, Counterpart} HTTP 200 OK ValidationError 244 Invoice 244/ValidationError – {Field} ‘s country for this invoice type must not be in EU [Possible {Field} values: {Issuer, Counterpart} HTTP 200 OK ValidationError 245 Invoice Provider is not authorised to issue Invoices for: {vatnumber} HTTP 200 OK ValidationError 246 Invoice Invoice of type 1.5 must have at least one line with detailtype = 1 and one with detail type=2 HTTP 200 OK ValidationError 301 Classification Invoices with ΜΑΡΚ {mark} requested not found HTTP 200 OK ValidationError 302 Classification Duplicate classification line number {linenumber} HTTP 200 OK ValidationError 303 Classification Line number {linenumber} not found in invoice with MARK {mark} HTTP 200 OK ValidationError 304 Classification All invoice rows or none should have classifications included HTTP 200 OK ValidationError 305 Classification Invoice line: {linenumber}. Duplicate classification type {classificationtype} and category{classificationcategory} HTTP 200 OK ValidationError 306 Classification Invoice line: {linenumber}. Sum of classifications are not equal to line’s net value HTTP 200 OK ValidationError 307 Classification Classification type {classificationtype} is forbidden for Classification category {classificationcategory} HTTP 200 OK ValidationError 308 Classification Classification category {classificationcategory} is forbidden for Invoice type {classificationtype} HTTP 200 OK ValidationError 309 Classification Classifications are forbidden for Invoice type {invoicetype} HTTP 200 OK TechnicalError 310 Classification All classifications of invoice or none should have category value {classificationcategory} HTTP 200 OK ValidationError 311 Classification Classification with type {classificationtype} and category ” {classificationcategory} not found in invoice summary HTTP 200 OK ValidationError 312 Classification Sum of classifications with type {classificationtype} and category {classificationcategory} not matching with related total in invoice summary HTTP 200 OK ValidationError 313 Classification Classification type {classificationtype} is forbidden for Classification category {classificationcategory} combined with invoice type {invoicetype} HTTP 200 OK ValidationError 314 Classification All invoices should contain either income or expenses classifications section, not both or none HTTP 200 OK ValidationError 315 Classification VAT classifications have no category HTTP 200 OK ValidationError 316 Classification VAT classifications are not allowed in case of VAT exemption HTTP 200 OK ValidationError 317 Classification Invoice detail { linenumber } : VAT classification must be of type 366 in case vatexemptioncategory = 16 39

HTTP 200 OK ValidationError 318 Invoice Element {Field} must have same value with correlated’s one HTTP 200 OK ValidationError 319 Invoice Net value of correlated invoice already exceeded by sum of net values of invoices correlated to it HTTP 200 OK ValidationError 320 Invoice Invalid correlated invoice type HTTP 200 OK ValidationError 321 Classification Classifications are not allowed only in the invoice summary HTTP 200 OK ValidationError 322 Invoice Unsupported correlated invoice type HTTP 200 OK ValidationError 323 Classification

User cannot use directly this service due to annual gross income limits

HTTP 200 OK TechnicalError 330 Classification Unexpected technical error for classification line HTTP 200 OK TechnicalError – – Unexpected condition error 40

Παράρτημα 8.1 Είδη παραστατικών Αντικριζόμενα Παραστατικά Εκδότη ημεδαπής / αλλοδαπής Τιμολόγιο Πώλησης Κωδικός Περιγραφή 1.1 Τιμολόγιο Πώλησης Τιμολόγιο Πώλησης / Ενδοκοινοτικές Παραδόσεις Τιμολόγιο Πώλησης / Παραδόσεις Τρίτων Χωρών Τιμολόγιο Πώλησης / Πώληση για Λογαριασμό Τρίτων Τιμολόγιο Πώλησης / Εκκαθάριση Πωλήσεων Τρίτων – Αμοιβή από Πωλήσεις Τρίτων Τιμολόγιο Πώλησης / Συμπληρωματικό Παραστατικό Τιμολόγιο Παροχής Υπηρεσιών 2.1 Τιμολόγιο Παροχής Τιμολόγιο Παροχής / Ενδοκοινοτική Παροχή Υπηρεσιών Τιμολόγιο Παροχής / Παροχή Υπηρεσιών σε λήπτη Τρίτης Χώρας Τιμολόγιο Παροχής / Συμπληρωματικό Παραστατικό Τίτλος Κτήσης

3.1 Τίτλος Κτήσης (μη υπόχρεος Εκδότης)

3.2 Τίτλος Κτήσης (άρνηση έκδοσης από υπόχρεο Εκδότη)

5.1 Πιστωτικό Τιμολόγιο / Συσχετιζόμενο

Στοιχείο Αυτοπαράδοσης – Ιδιοχρησιμοποίησης

5.2 Πιστωτικό Τιμολόγιο / Μη Συσχετιζόμενο

6.1 Στοιχείο Αυτοπαράδοσης

6.2 Στοιχείο Ιδιοχρησιμοποίησης

7.1 Συμβόλαιο – Έσοδο

Ειδικό Στοιχείο (Έσοδο) Απόδειξη Είσπραξης

8.1 Ενοίκια – Έσοδο

8.2 Ειδικό Στοιχείο Απόδειξης Είσπραξης Φόρου Διαμονής Μη Αντικριζόμενα Παραστατικά Εκδότη ημεδαπής / αλλοδαπής Παραστατικά Λιανικής 11.1 ΑΛΠ 11.2 ΑΠΥ 11.3 Απλοποιημένο Τιμολόγιο 11.4 Πιστωτικό Στοιχ. Λιανικής 11.5 Για Μελλοντική Χρήση 12 Μη Αντικριζόμενα Παραστατικά Λήπτη ημεδαπής / αλλοδαπής Λήψη Παραστατικών Λιανικής Απόδειξη Λιανικής Πώλησης για Λογ/σμό Τρίτων 42

Έξοδα – Αγορές Λιανικών Συναλλαγών ημεδαπής / αλλοδαπής Παροχή Λιανικών Συναλλαγών ημεδαπής / αλλοδαπής 13.3 Κοινόχρηστα 13.4 Συνδρομές Αντικριζόμενα Παραστατικά Λήπτη ημεδαπής / αλλοδαπής Παραστ. Εξαιρ. Οντοτήτων ημεδαπής / αλλοδαπής Παραστατικά Οντότητας ως Αναγράφονται από την ίδια (Δυναμικό) Πιστωτικό Στοιχ. Λιανικής ημεδαπής / αλλοδαπής Τιμολόγιο / Ενδοκοινοτικές Αποκτήσεις Τιμολόγιο / Αποκτήσεις Τρίτων Χωρών Τιμολόγιο / Ενδοκοινοτική Λήψη Υπηρεσιών Τιμολόγιο / Λήψη Υπηρεσιών Τρίτων Χωρών ΕΦΚΑ και λοιποί Ασφαλιστικοί Οργανισμοί Παραστατικά Οντότητας ως Αναγράφονται από την ίδια (Δυναμικό) Πιστωτικό ημεδαπής / αλλοδαπής Συμβόλαιο – Έξοδο 15.1 Συμβόλαιο – Έξοδο Ειδικό Στοιχείο (Έξοδο) Απόδειξη Πληρωμής 16.1 Ενοίκιο Έξοδο 43

Εγγραφές Τακτοποίησης Εσόδων- Εξόδων Εγγραφές Οντότητας 17.1 Μισθοδοσία 17.2 Αποσβέσεις Λοιπές Εγγραφές Τακτοποίησης Εσόδων – Λογιστική Βάση Λοιπές Εγγραφές Τακτοποίησης Εσόδων – Φορολογική Βάση Λοιπές Εγγραφές Τακτοποίησης Εξόδων – Λογιστική Βάση Λοιπές Εγγραφές Τακτοποίησης Εξόδων – Φορολογική Βάση 44

Κατηγορία Φ.Π.Α. Κωδικός Περιπτώσεις % Φ.Π.Α. % Φ.Π.Α. 1 ΦΠΑ συντελεστής 24% 24% 2 ΦΠΑ συντελεστής 13% 13% 3 ΦΠΑ συντελεστής 6% 6% 4 ΦΠΑ συντελεστής 17% 17% 5 ΦΠΑ συντελεστής 9% 9% 6 ΦΠΑ συντελεστής 4% 4% 7 Άνευ Φ.Π.Α. 0% 8 Εγγραφές χωρίς ΦΠΑ (πχ Μισθοδοσία, Αποσβέσεις) Κατηγορία Αιτίας Εξαίρεσης ΦΠΑ Κωδ. Περιγραφή Κωδ. Περιγραφή 1 Χωρίς ΦΠΑ – άρθρο 3 του Κώδικα Χωρίς ΦΠΑ – άρθρο 27.1.γ – Πλοία 13 ΦΠΑ Ανοικτής Θαλάσσης του Κώδικα ΦΠΑ 2 Χωρίς ΦΠΑ – άρθρο 5 του Κώδικα Χωρίς ΦΠΑ – άρθρο 28 του Κώδικα 14 ΦΠΑ ΦΠΑ 3 Χωρίς ΦΠΑ – άρθρο 13 του Κώδικα Χωρίς ΦΠΑ – άρθρο 39 του Κώδικα 15 ΦΠΑ ΦΠΑ 4 Χωρίς ΦΠΑ – άρθρο 14 του Κώδικα Χωρίς ΦΠΑ – άρθρο 39α του Κώδικα 16 ΦΠΑ ΦΠΑ 5 Χωρίς ΦΠΑ – άρθρο 16 του Κώδικα Χωρίς ΦΠΑ – άρθρο 40 του Κώδικα 17 ΦΠΑ ΦΠΑ 6 Χωρίς ΦΠΑ – άρθρο 19 του Κώδικα Χωρίς ΦΠΑ – άρθρο 41 του Κώδικα 18 ΦΠΑ ΦΠΑ 7 Χωρίς ΦΠΑ – άρθρο 22 του Κώδικα Χωρίς ΦΠΑ – άρθρο 47 του Κώδικα 19 ΦΠΑ ΦΠΑ 8 Χωρίς ΦΠΑ – άρθρο 24 του Κώδικα ΦΠΑ εμπεριεχόμενος – άρθρο 43 του 20 ΦΠΑ Κώδικα ΦΠΑ 9 Χωρίς ΦΠΑ – άρθρο 25 του Κώδικα ΦΠΑ εμπεριεχόμενος – άρθρο 44 του 21 ΦΠΑ Κώδικα ΦΠΑ 10 Χωρίς ΦΠΑ – άρθρο 26 του Κώδικα ΦΠΑ εμπεριεχόμενος – άρθρο 45 του 22 ΦΠΑ Κώδικα ΦΠΑ 11 Χωρίς ΦΠΑ – άρθρο 27 του Κώδικα ΦΠΑ εμπεριεχόμενος – άρθρο 46 του 23 ΦΠΑ Κώδικα ΦΠΑ Χωρίς ΦΠΑ – άρθρο 27 – Πλοία 12 Ανοικτής Θαλάσσης του Κώδικα ΦΠΑ 45

counterpart vat number is mandatory for this invoice type

vat classifications is mandatory for invoice detail 1

counterpart address is mandatory for this invoice type