Η τεχνική διασύνδεση με την πλατφόρμα myDATA της ΑΑΔΕ δεν είναι δύσκολη στην ευχάριστη περίπτωση: στέλνεις ένα παραστατικό, παίρνεις έγκριση, τελειώνει. Η δουλειά κρύβεται στις δυσάρεστες περιπτώσεις — απορρίψεις, διακοπές, διπλές αποστολές και ακυρώσεις. Μια υλοποίηση που δεν τις έχει προβλέψει δουλεύει τον πρώτο μήνα και μετά γίνεται καθημερινή χειρωνακτική εργασία.

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

Τι κάνει η διασύνδεση στην πράξη

Το σύστημα που εκδίδει τα παραστατικά σας — εμπορικό πρόγραμμα, eshop ή custom εφαρμογή — στέλνει τα στοιχεία κάθε παραστατικού στην πλατφόρμα και λαμβάνει πίσω μοναδικούς αναγνωριστικούς κωδικούς. Αυτοί οι κωδικοί πρέπει να αποθηκευτούν μαζί με το παραστατικό, γιατί αποτελούν την απόδειξη της διαβίβασης.

Το κρίσιμο σημείο σχεδίασης είναι ότι η αποστολή δεν πρέπει να μπλοκάρει την έκδοση. Ο πελάτης στο ταμείο δεν μπορεί να περιμένει επειδή μια εξωτερική υπηρεσία αργεί. Η σωστή αρχιτεκτονική εκδίδει το παραστατικό τοπικά και διαβιβάζει ασύγχρονα, μέσω ουράς.

Λάθος 1: Σύγχρονη αποστολή στη ροή του χρήστη

Είναι το πιο συχνό και το πιο ακριβό λάθος. Όταν η διαβίβαση γίνεται μέσα στη ροή έκδοσης, κάθε καθυστέρηση της εξωτερικής υπηρεσίας γίνεται καθυστέρηση στο ταμείο και κάθε διακοπή γίνεται αδυναμία έκδοσης.

Η λύση είναι ουρά εργασιών: το παραστατικό εκδίδεται και καταχωρείται τοπικά, μπαίνει σε ουρά προς διαβίβαση και ένας ξεχωριστός μηχανισμός αναλαμβάνει την αποστολή με επαναλήψεις. Η εμπειρία του χρήστη δεν εξαρτάται από τη διαθεσιμότητα τρίτων.

Λάθος 2: Καμία προστασία από διπλή αποστολή

Αν μια αποστολή αποτύχει με χρονική λήξη, δεν γνωρίζετε αν το παραστατικό καταχωρήθηκε ή όχι. Μια αφελής επανάληψη μπορεί να οδηγήσει σε διπλή καταχώριση, που είναι πολύ πιο δύσκολη να διορθωθεί από μια αποτυχία.

Κάθε παραστατικό χρειάζεται σταθερό, μοναδικό αναγνωριστικό στο δικό σας σύστημα και καταγραφή της κατάστασης διαβίβασης πριν την αποστολή. Πριν από κάθε επανάληψη ελέγχεται η πραγματική κατάσταση, ώστε η ίδια ενέργεια να μην εκτελείται δύο φορές.

Λάθος 3: Απορρίψεις που καταλήγουν σε αρχείο καταγραφής

Οι απορρίψεις είναι αναμενόμενες: λάθος ΑΦΜ αντισυμβαλλόμενου, ασυμφωνία αξιών, μη επιτρεπτός συνδυασμός χαρακτηρισμών. Το πρόβλημα δεν είναι η απόρριψη — είναι όταν καταγράφεται μόνο σε ένα log που δεν διαβάζει κανείς.

Κάθε απόρριψη πρέπει να καταλήγει σε ορατή λίστα εκκρεμοτήτων, με το μήνυμα σφάλματος σε κατανοητή μορφή και δυνατότητα διόρθωσης και επανυποβολής από τον χρήστη, χωρίς παρέμβαση προγραμματιστή.

Λάθος 4: Δοκιμές απευθείας στην παραγωγή

Η ΑΑΔΕ διαθέτει περιβάλλον δοκιμών και υπάρχει για να χρησιμοποιείται. Η ανάπτυξη και ο έλεγχος όλων των σεναρίων — έκδοση, ακύρωση, χαρακτηρισμοί, απορρίψεις — γίνεται εκεί, με ξεχωριστά διαπιστευτήρια και ξεχωριστή βάση.

Η μετάβαση στην παραγωγή πρέπει να είναι αλλαγή ρύθμισης και όχι αλλαγή κώδικα. Αν χρειάζεται επέμβαση στον κώδικα για να αλλάξει περιβάλλον, η υλοποίηση έχει σχεδιαστικό πρόβλημα.

Τι πρέπει να έχει μια σωστή υλοποίηση

Πέρα από τη βασική λειτουργία, τα σημεία που ξεχωρίζουν μια υλοποίηση που θα σας αφήσει ήσυχους είναι λίγα και συγκεκριμένα:

  • Ουρά με αυτόματες επαναλήψεις και προοδευτική καθυστέρηση σε αποτυχίες
  • Προστασία από διπλή καταχώριση με σταθερά αναγνωριστικά ανά παραστατικό
  • Ορατή οθόνη εκκρεμοτήτων και απορρίψεων για τον χρήστη, όχι μόνο για τον προγραμματιστή
  • Πλήρες ιστορικό ανταλλαγών, για να απαντάται πάντα το «τι στάλθηκε και πότε»
  • Ειδοποίηση υπευθύνου όταν η διαβίβαση σταματά για παρατεταμένο διάστημα
  • Ξεχωριστά περιβάλλοντα δοκιμών και παραγωγής με αλλαγή μόνο σε ρυθμίσεις

Πώς να το αξιολογήσετε στη δική σας υλοποίηση

Αν έχετε ήδη διασύνδεση, δύο ερωτήσεις αρκούν για μια πρώτη εικόνα. Πρώτη: πού βλέπει ο υπάλληλός σας τα παραστατικά που απορρίφθηκαν και τι κάνει για να τα διορθώσει; Δεύτερη: τι συμβαίνει αν η υπηρεσία της ΑΑΔΕ είναι εκτός λειτουργίας για δύο ώρες σε ώρα αιχμής;

Αν οι απαντήσεις είναι «στέλνουμε email στον προγραμματιστή» και «σταματάμε να εκδίδουμε», η υλοποίηση χρειάζεται δουλειά — και η δουλειά αυτή είναι συνήθως μικρότερη από το κόστος που πληρώνετε σε χειρωνακτική διόρθωση κάθε μήνα.

Επιστροφή στο blog