# Τεκμηρίωση για developers της Novus Conceptus > Η Novus Conceptus είναι πιστοποιημένος Πάροχος Ηλεκτρονικής Τιμολόγησης της ΑΑΔΕ (Κωδικός Παρόχου 005). Αυτή είναι η πλήρης τεκμηρίωση του Provider API (έκδοση τιμολογίων, αποδείξεων, δελτίων διακίνησης και τιμολογίων B2G μέσω myDATA) και του Onboarding API (ενεργοποίηση πελατών), με τους πίνακες κωδικών της ΑΑΔΕ, έτοιμα παραδείγματα JSON και τις συχνές ερωτήσεις. - Δοκιμαστικό περιβάλλον (sandbox): https://provider-dev.timologisi.online (δωρεάν λογαριασμός με εγγραφή). Παραγωγή: https://provider.timologisi.online (μετά την πιστοποίηση). - Κάθε κλήση στέλνει το API key στο HTTP header `API-KEY`. Ένα κλειδί εξυπηρετεί όλους τους ΑΦΜ εκδότη του λογαριασμού. - Το `SendInvoices` δέχεται ακριβώς ένα παραστατικό ανά κλήση και επιστρέφει MARK, UID, Authentication Code και το link του PDF στην ίδια απάντηση. - Όλες οι σελίδες σε ένα αρχείο: https://developers.novusconceptus.com/el/llms-full.txt - Αγγλική έκδοση: https://developers.novusconceptus.com/llms.txt και https://developers.novusconceptus.com/llms-full.txt - OpenAPI (YAML) και συλλογές Postman: https://developers.novusconceptus.com/el/tools/ --- Novus Conceptus · 5ος Πάροχος Ηλεκτρονικής Τιμολόγησης στην Ελλάδα # Πιστοποιημένος Πάροχος Ηλεκτρονικής Τιμολόγησης: API για την εφαρμογή σας Εκδίδετε τιμολόγια και αποδείξεις με μία κλήση. Στέλνετε το παραστατικό σε JSON· εμείς το διαβιβάζουμε στο myDATA της ΑΑΔΕ, παίρνουμε MARK, φτιάχνουμε το PDF με το QR code και το στέλνουμε στον πελάτη σας. [Ξεκινήστε εδώ](https://developers.novusconceptus.com/el/start/how-it-works/) [Το πρώτο σας παραστατικό](https://developers.novusconceptus.com/el/start/first-invoice/) Πιστοποιημένος Πάροχος ΑΑΔΕ · Κωδικός **005** myDATA **2.0.2** All in One POS κατά **Α.1158/2023** OpenAPI & Postman ## Τι θέλετε να κάνετε; - **Να ξεκινήσω από το μηδέν** Πώς δουλεύει ο Πάροχος, λογαριασμός δοκιμών και API key. [ Πώς λειτουργεί](https://developers.novusconceptus.com/el/start/how-it-works/) - **Να κόψω την πρώτη μου απόδειξη** Ένα έτοιμο JSON, μία κλήση, και βλέπετε το PDF. [ Το πρώτο παραστατικό](https://developers.novusconceptus.com/el/start/first-invoice/) - **Τιμολόγια, αποδείξεις, πιστωτικά** Ποιον τύπο διαλέγω και τι στέλνω σε κάθε περίπτωση. [ Τιμολόγια & αποδείξεις](https://developers.novusconceptus.com/el/guides/invoices/) - **Πληρωμή με κάρτα ή IRIS** Υπογραφή Παρόχου για το POS και ολοκλήρωση της πληρωμής. [ Κάρτα / IRIS](https://developers.novusconceptus.com/el/guides/card-payments/) - **Εστίαση** Δελτία παραγγελίας 8.6, ακυρώσεις και κλείσιμο τραπεζιού. [ Εστίαση (8.6)](https://developers.novusconceptus.com/el/guides/food-service/) - **Διακίνηση** Δελτία αποστολής, τιμολόγιο - δελτίο αποστολής, ακύρωση. [ Διακίνηση](https://developers.novusconceptus.com/el/guides/delivery/) - **Τιμολόγηση του Δημοσίου** Ηλεκτρονικό τιμολόγιο B2G κατά EN 16931. [ Δημόσιο (B2G)](https://developers.novusconceptus.com/el/guides/b2g/) - **Ενεργοποίηση νέου πελάτη** Αίτηση, σύμβαση, έγκριση και Δήλωση Παρόχου, χωρίς χαρτιά. [ Onboarding API](https://developers.novusconceptus.com/el/onboarding-api/) Ψάχνετε κάτι συγκεκριμένο; [Συχνές ερωτήσεις](https://developers.novusconceptus.com/el/faq/) · [Κωδικοί ΑΑΔΕ](https://developers.novusconceptus.com/el/aade/) · [Σφάλματα](https://developers.novusconceptus.com/el/provider-api/errors/) · [Όλα τα πεδία του JSON](https://developers.novusconceptus.com/el/provider-api/send-invoices/) · [Postman & παραδείγματα](https://developers.novusconceptus.com/el/tools/) ## Γιατί Novus - **Από τους πρώτους Παρόχους** Πιστοποιημένος από την ΑΑΔΕ τον Νοέμβριο του 2020, Κωδικός Παρόχου 005. - **Πάνω από 5.000 ΑΦΜ** Εκδίδουν μέσω Novus, απευθείας ή μέσα από τις εφαρμογές 85 και πλέον software houses. - **Πάντα στην τρέχουσα έκδοση του myDATA** Κάθε αλλαγή της ΑΑΔΕ υλοποιείται και ανακοινώνεται στις [Αλλαγές](https://developers.novusconceptus.com/el/changelog/) πριν τεθεί σε ισχύ. - **ISO 27001** Πιστοποιημένο σύστημα ασφάλειας πληροφοριών. Υποδομή στο Microsoft Azure. - **Υποστήριξη από τους developers του API** Μέσω email και ticket, με γραπτό SLA και χρόνους απόκρισης. - **Δοκιμαστικό περιβάλλον αμέσως** Εγγραφή, API key και πρώτο παραστατικό σε λίγα λεπτά, χωρίς έγκριση. Η πιστοποίηση είναι δωρεάν. ## Από τις δοκιμές στην παραγωγή, σε 4 βήματα 1. **Λογαριασμός δοκιμών** Εγγραφή στο developer portal και API key για το δοκιμαστικό περιβάλλον. [Λογαριασμός & API key](https://developers.novusconceptus.com/el/start/account/) 2. **Ανάπτυξη** Ξεκινάτε από το Postman και τα έτοιμα JSON, και συνδέετε την εφαρμογή σας. [Postman & παραδείγματα](https://developers.novusconceptus.com/el/tools/) 3. **Πιστοποίηση** Τρέχετε από την εφαρμογή σας τα βασικά σενάρια και στέλνετε την αίτηση online. [Πιστοποίηση](https://developers.novusconceptus.com/el/start/go-live/) 4. **Παραγωγή** Κλειδί παραγωγής, και οι πελάτες σας ενεργοποιούνται με το Onboarding API. [Onboarding API](https://developers.novusconceptus.com/el/onboarding-api/) ## Τα δύο APIs - **Provider API** Έκδοση και διαβίβαση παραστατικών, PDF, πληρωμές μέσω POS, εστίαση, B2G. [ Τεκμηρίωση](https://developers.novusconceptus.com/el/provider-api/) · [OpenAPI (YAML)](https://developers.novusconceptus.com/openapi/novus-provider-api.openapi.yaml) · [Postman](https://developers.novusconceptus.com/postman/Novus_Provider_API.postman_collection.json) - **Onboarding API** Ενεργοποίηση νέων πελατών: αίτηση, σύμβαση, υπογραφή, έγκριση. [ Τεκμηρίωση](https://developers.novusconceptus.com/el/onboarding-api/) · [OpenAPI (YAML)](https://developers.novusconceptus.com/openapi/novus-onboarding-api.openapi.yaml) · [Postman](https://developers.novusconceptus.com/postman/Novus_Onboarding_API.postman_collection.json) ## Περιβάλλοντα | | Δοκιμαστικό (Sandbox) | Παραγωγή | |:---|:---|:---| | **Base URL** | `https://provider-dev.timologisi.online` | `https://provider.timologisi.online` | | **Portal** | [developer.portal.timologisi.online](https://developer.portal.timologisi.online) | [portal.timologisi.online](https://portal.timologisi.online) | | **Αυθεντικοποίηση** | Header `API-KEY` | Header `API-KEY` (άλλο κλειδί) | | **ΑΑΔΕ** | myDATA 2.0.2 | myDATA 2.0.2 | ## Ποιοι είμαστε Η **Novus Conceptus** είναι ο **5ος Πάροχος Ηλεκτρονικής Τιμολόγησης** που αδειοδοτήθηκε από την ΑΑΔΕ. Μέσω της υποδομής μας εκδίδουν παραστατικά επιχειρήσεις απευθείας, αλλά και μέσα από τις εφαρμογές των software houses που συνεργαζόμαστε. Όταν χρειάζεστε βοήθεια για ένα συγκεκριμένο παραστατικό, δώστε μας το `invoiceUid` ή το request / response που σας απασχολεί. Τι άλλαξε ανά έκδοση: [Αλλαγές](https://developers.novusconceptus.com/el/changelog/). | | | |:---|:---| | **Επωνυμία** | NOVUS CONCEPTUS Ο.Ε. | | **Κωδικός Παρόχου** | `005` | | **Άδεια καταλληλότητας (ΥΠΑΗΕΣ)** | `2020_11_105Novus Conceptus _001_ timologisi.online_V1_181120` | | **Αδειοδότηση** | 18/11/2020 · ανανέωση 19/11/2025 | | **All in one Cash Register / POS** | **Novus All in One**, αδειοδοτημένο κατά Α.1158/2023 (15/3/2024) | Πηγή: https://developers.novusconceptus.com/el/ --- # Πώς λειτουργεί Η εφαρμογή σας (ERP, POS, e-shop, PMS) στέλνει το παραστατικό σε JSON στον **Novus Provider**. Ο Πάροχος: 1. κάνει τους δικούς του ελέγχους (δικαιώματα, credits, κανόνες εστίασης/POS κ.λπ.), 2. το διαβιβάζει στην **ΑΑΔΕ (myDATA)** και παίρνει **MARK**, **UID** και **Authentication Code**, 3. παράγει το **PDF** με QR code και όλα τα υποχρεωτικά στοιχεία παρόχου, 4. το στέλνει με email στους παραλήπτες που δηλώσατε και το αρχειοθετεί, 5. σας επιστρέφει τα παραπάνω στην απάντηση, στην ίδια κλήση. **Σημείωση: Ποια παραστατικά περνούν από τον Πάροχο** Μόνο οι τύποι **1.1 έως 11.5** (τιμολόγια, αποδείξεις, πιστωτικά, ειδικά στοιχεία, δελτία, λιανική). Οι τύποι **12.x έως 17.x** (παραστατικά λήπτη, έξοδα, εγγραφές τακτοποίησης) **δεν** διαβιβάζονται από Πάροχο. ```mermaid sequenceDiagram autonumber participant APP as Η εφαρμογή σας
(ERP / POS) participant NP as Novus Provider API participant AADE as ΑΑΔΕ myDATA participant C as Πελάτης (λήπτης) APP->>NP: POST /api/v1/Provider/SendInvoices (JSON, API-KEY) NP->>NP: Έλεγχοι Novus (δικαιώματα, credits, κανόνες) alt Αποτυχία ελέγχων Novus NP-->>APP: HTTP 400 / 401 { "errors": [...] } else Επιτυχία NP->>AADE: SendInvoices (XML, υπογεγραμμένο από τον Πάροχο) AADE-->>NP: MARK, UID, AuthenticationCode ή σφάλματα NP->>NP: PDF + QR, αρχειοθέτηση NP-->>APP: HTTP 200 { response: [ statusCode, invoiceMark, invoiceUid, invoiceUrl, ... ] } NP-)C: Email με το PDF (αν δηλώθηκε παραλήπτης) end ``` ## Βασικές έννοιες | Όρος | Τι είναι | Πού το βρίσκετε | |:---|:---|:---| | **MARK** | Μοναδικός Αριθμός Καταχώρησης του παραστατικού στο myDATA. | `response[].invoiceMark` | | **UID** | Αναγνωριστικό του παραστατικού: SHA-1 των ΑΦΜ εκδότη, ημερομηνίας, εγκατάστασης, τύπου, σειράς, ΑΑ. **Μοναδικό**: δεύτερη αποστολή με τα ίδια στοιχεία απορρίπτεται. | `response[].invoiceUid` | | **Authentication Code** | Συμβολοσειρά αυθεντικοποίησης, υποχρεωτική για παραστατικά που εκδίδονται μέσω Παρόχου. | `response[].authenticationCode` | | **QR / invoiceUrl** | Σύνδεσμος προς το PDF και τη σελίδα επαλήθευσης του Παρόχου. Τυπώνεται ως QR στο παραστατικό. | `response[].invoiceUrl`, `qrUrl` | | **aadeQrUrl** | Ο επίσημος σύνδεσμος επαλήθευσης της ΑΑΔΕ. Είναι πληροφοριακός, δεν χρειάζεται ενέργεια. | `response[].aadeQrUrl` | | **Provider signature** | Υπογραφή Παρόχου για πληρωμές με κάρτα/IRIS μέσω POS (Α.1155/2023). | [Πληρωμή με κάρτα / IRIS](https://developers.novusconceptus.com/el/guides/card-payments/) | | **Credits** | Η χρέωση κάθε κλήσης, από το υπόλοιπο του λογαριασμού σας. | `response[].credits`, [Credits](https://developers.novusconceptus.com/el/provider-api/credits/) | ## Ποιος κάνει τι - **Η εφαρμογή σας** - Σωστά ποσά, ΦΠΑ, χαρακτηρισμούς εσόδων/εξόδων και τύπο παραστατικού. - Αρίθμηση (σειρά + ΑΑ) χωρίς κενά και διπλότυπα. - Τα στοιχεία εκτύπωσης (`providerAdditionalInvoiceDetails`). - Χειρισμό σφαλμάτων και επανάληψη αποστολής όπου απαιτείται. - **Ο Novus Provider** - Διαβίβαση στο myDATA ως πιστοποιημένος Πάροχος. - PDF με QR, MARK, UID, Authentication Code και στοιχεία Παρόχου. - Αποστολή email στον λήπτη και αρχειοθέτηση. - Αυτόματη διαβίβαση αργότερα, αν η ΑΑΔΕ είναι εκτός λειτουργίας (`statusCode = Offline`). **Προσοχή: Ο Πάροχος δεν «διορθώνει» δεδομένα** Ο Πάροχος προωθεί στην ΑΑΔΕ τα στοιχεία όπως τα λαμβάνει. Ποσά, κατηγορίες ΦΠΑ και χαρακτηρισμοί είναι ευθύνη της εφαρμογής που εκδίδει το παραστατικό. ## Τα τρία πιθανά αποτελέσματα μιας αποστολής | Αποτέλεσμα | Πώς το αναγνωρίζετε | Τι κάνετε | |:---|:---|:---| | **Εκδόθηκε** | HTTP 200 και `statusCode = "Success"` | Αποθηκεύετε MARK, UID, AuthenticationCode, invoiceUrl. | | **Εκδόθηκε, η ΑΑΔΕ ήταν offline** | HTTP 200 και `statusCode = "Offline"` | **Δεν** το ξαναστέλνετε. Ο Πάροχος το διαβιβάζει αυτόματα. Βλ. [Offline](https://developers.novusconceptus.com/el/provider-api/errors/#offline). | | **Δεν εκδόθηκε** | HTTP 4xx/5xx **ή** HTTP 200 με `statusCode` = `ValidationError` / `XMLSyntaxError` / `TechnicalError` | Διορθώνετε και ξαναστέλνετε. Βλ. [Errors & status codes](https://developers.novusconceptus.com/el/provider-api/errors/). | Πηγή: https://developers.novusconceptus.com/el/start/how-it-works/ --- # Περιβάλλοντα & API key Υπάρχουν δύο **εντελώς ανεξάρτητα** περιβάλλοντα, το καθένα με δικό του portal, δικό του λογαριασμό και δικό του API key. | | Sandbox | Production | |:---|:---|:---| | Σκοπός | Ανάπτυξη και δοκιμές | Πραγματικά παραστατικά με φορολογική ισχύ | | Base URL | `https://provider-dev.timologisi.online` | `https://provider.timologisi.online` | | Portal | [developer.portal.timologisi.online](https://developer.portal.timologisi.online) | [portal.timologisi.online](https://portal.timologisi.online) | | Swagger | [provider-dev.timologisi.online/index.html](https://provider-dev.timologisi.online/index.html) | [provider.timologisi.online/index.html](https://provider.timologisi.online/index.html) | | Λογαριασμός | Αυτόματα, με εγγραφή | Μετά την [πιστοποίηση](https://developers.novusconceptus.com/el/start/go-live/) | | ΑΦΜ εκδότη | Ο ΑΦΜ που δηλώσατε στην εγγραφή ενεργοποιείται αυτόματα | Κάθε ΑΦΜ πελάτη ενεργοποιείται μετά από σύμβαση και εξουσιοδότηση ([Onboarding API](https://developers.novusconceptus.com/el/onboarding-api/)) | | Credits | Δοκιμαστικά | Αγορά από το portal | | Διατήρηση δεδομένων | Τα παραστατικά **διαγράφονται μετά από 30 ημέρες** | Μόνιμη αρχειοθέτηση | ## 1. Δημιουργία λογαριασμού (Sandbox) 1. Ανοίξτε τη [φόρμα εγγραφής](https://developer.portal.timologisi.online/?action=register). 2. Δηλώστε email και ΑΦΜ. 3. Επιβεβαιώστε τον λογαριασμό από το email που θα λάβετε και ορίστε κωδικό. 4. Συνδεθείτε στο portal. Εκεί βρίσκετε το **API key** σας. Από το portal μπορείτε επίσης να: - δείτε και να αναζητήσετε τα παραστατικά που εκδόσατε, - δείτε τους εξουσιοδοτημένους ΑΦΜ, - ανεβάσετε λογότυπα πελατών. Το `logoId` που παίρνετε μπαίνει στο πεδίο `additionalDetails.logoId`. - (Production) αγοράσετε credits και ζητήσετε ενεργοποίηση νέου ΑΦΜ. **Προσοχή: Και το Sandbox στέλνει κανονικά emails** Το PDF κάθε παραστατικού στέλνεται στο `recipients.email` και στις διευθύνσεις παραλαβής που επιστρέφει η ΑΑΔΕ για τον λήπτη. Τα emails του Onboarding API στέλνονται επίσης. Γι' αυτό, στις δοκιμές: - ως λήπτη βάζετε **φανταστικό ΑΦΜ** (όπως στα έτοιμα παραδείγματα), όχι ΑΦΜ πραγματικής επιχείρησης, - σε όλα τα πεδία email βάζετε **μόνο δικές σας** διευθύνσεις. ## 2. Αυθεντικοποίηση Κάθε κλήση στέλνει το κλειδί στο HTTP header `API-KEY`: ```http POST /api/v1/Provider/SendInvoices HTTP/1.1 Host: provider-dev.timologisi.online API-KEY: <το κλειδί σας> Content-Type: application/json ``` | Αποτέλεσμα | Σημαίνει | |:---|:---| | `401 Unauthorized` χωρίς σώμα | Το header λείπει, το κλειδί είναι λάθος ή ανενεργό, ή χρησιμοποιείτε κλειδί Sandbox σε Production (ή ανάποδα). | | `401` με `{"errors": ["You don't have the authority to send for this vat numbers ..."]}` | Το κλειδί είναι σωστό, αλλά ο ΑΦΜ του εκδότη δεν είναι ενεργοποιημένος στον λογαριασμό σας. | **Σημαντικό: Κρατήστε το κλειδί μυστικό** Το API key εκδίδει παραστατικά με φορολογική ισχύ και χρεώνει τα credits σας. - Μην το βάζετε σε κώδικα που τρέχει σε browser ή σε δημόσιο repository. - Αποθηκεύστε το κρυπτογραφημένο, όπως και τα υπόλοιπα credentials της εφαρμογής σας. - Αν διαρρεύσει, επικοινωνήστε αμέσως μαζί μας για να ακυρωθεί και να εκδοθεί νέο. ## 3. Ένα κλειδί, πολλοί πελάτες Ως software house χρησιμοποιείτε **ένα API key** για όλους τους πελάτες σας. Κάθε παραστατικό λέει για ποιον πελάτη εκδίδεται μέσω του `issuer.vatNumber`. Ο Πάροχος ελέγχει ότι ο ΑΦΜ αυτός είναι ενεργοποιημένος στον λογαριασμό σας. Τα credits είναι κοινά για όλους τους ΑΦΜ του λογαριασμού. ## 4. Τεχνικές απαιτήσεις - **HTTPS / TLS 1.2+.** - **JSON σε UTF-8.** Τα ονόματα πεδίων δεν κάνουν διάκριση κεφαλαίων-πεζών, αλλά προτείνουμε camelCase όπως στα παραδείγματα. - **Ημερομηνίες** σε μορφή `yyyy-MM-dd` και **ώρες** σε μορφή `HH:mm:ss`. - **Δεκαδικά** ως JSON numbers με τελεία (`124.25`) και έως 2 δεκαδικά για ποσά. - **Ειδικοί χαρακτήρες** μέσα σε strings: escape κατά JSON (`\"`, `\\`, `\n`, `\r`, `\t`, `\b`, `\f`). - **Timeout:** προτείνουμε τουλάχιστον 60″ για το `SendInvoices`, γιατί η κλήση περιμένει την απάντηση της ΑΑΔΕ και τη δημιουργία του PDF. Πηγή: https://developers.novusconceptus.com/el/start/account/ --- # Το πρώτο σας παραστατικό Θα εκδώσουμε στο **Sandbox** μια **Απόδειξη Λιανικής Πώλησης (11.1)** με μία γραμμή: 1 × καφές 10,00 € + ΦΠΑ 24%, πληρωμή με μετρητά. **Σημείωση: Πριν ξεκινήσετε** - Έχετε [API key για το Sandbox](https://developers.novusconceptus.com/el/start/account/). - Αντικαταστήστε το `123456789` με τον ΑΦΜ που δηλώσατε στην εγγραφή σας. - Βάλτε στο `issueDate` τη **σημερινή** ημερομηνία. Η ΑΑΔΕ δεν δέχεται από Πάροχο παραστατικό με άλλη ημερομηνία ([σφάλμα 238](https://developers.novusconceptus.com/el/provider-api/aade-errors/)). - Κάθε φορά που το ξαναστέλνετε, αλλάξτε το `aa`. Ίδια σειρά + ΑΑ σημαίνει ίδιο UID, και απορρίπτεται ως διπλότυπο. ## 1. Το request ```json title="retail-receipt-11.1.json" { "invoice": [ { "issuer": { "vatNumber": "123456789", "country": "GR", "branch": 0 }, "invoiceHeader": { "series": "A", "aa": "1001", "issueDate": "2026-09-24", "invoiceType": "11.1", "currency": "EUR" }, "paymentMethods": [ { "type": 3, "amount": 12.40 } ], "invoiceDetails": [ { "lineNumber": 1, "lineCode": "ESP-01", "lineDescription": "Espresso", "quantity": 1, "measurementUnit": 1, "measurementUnitLabel": "τεμ.", "lineUnitPrice": 10.00, "totalNetPriceBeforeDiscount": 10.00, "totalDiscountValue": 0, "netValue": 10.00, "vatCategory": 1, "vatCategoryPercent": 24.00, "vatAmount": 2.40, "incomeClassification": [ { "classificationType": "E3_561_003", "classificationCategory": "category1_1", "amount": 10.00 } ] } ], "invoiceSummary": { "totalNetValue": 10.00, "totalVatAmount": 2.40, "totalWithheldAmount": 0, "totalFeesAmount": 0, "totalStampDutyAmount": 0, "totalOtherTaxesAmount": 0, "totalDeductionsAmount": 0, "totalGrossValue": 12.40, "incomeClassification": [ { "classificationType": "E3_561_003", "classificationCategory": "category1_1", "amount": 10.00 } ] }, "providerAdditionalInvoiceDetails": { "issuer": { "name": "TEST ISSUER ΙΚΕ", "profession": "Καφετέρια", "taxoffice": "Α' Αθηνών", "addressStreet": "Οδός Δοκιμής", "addressNumber": "1", "addressPostalCode": "10431", "addressCity": "Αθήνα", "addressCountry": "Ελλάδα" }, "counterpart": { "name": "Πελάτης Λιανικής" }, "additionalDetails": { "documentLabel": "Απόδειξη Λιανικής Πώλησης", "paymentMethodInvoiceLabel": "Μετρητά", "documentSizeCode": 0 } } } ] } ``` Τι σημαίνει κάθε μπλοκ: | Μπλοκ | Ρόλος | |:---|:---| | `issuer` | Ο εκδότης. Ο ΑΦΜ πρέπει να είναι ενεργοποιημένος στον λογαριασμό σας. Η `branch` είναι η εγκατάσταση στο Taxis (έδρα = `0`). | | `invoiceHeader` | Σειρά, ΑΑ, ημερομηνία και [τύπος παραστατικού](https://developers.novusconceptus.com/el/aade/documents/#invoice-types). | | `paymentMethods` | [Τρόποι πληρωμής](https://developers.novusconceptus.com/el/aade/lines-payments/#payment-methods). **Το άθροισμα πρέπει να ισούται με το `totalGrossValue`.** | | `invoiceDetails` | Οι γραμμές, με [κατηγορία ΦΠΑ](https://developers.novusconceptus.com/el/aade/vat/#vat-category) και [χαρακτηρισμό εσόδων](https://developers.novusconceptus.com/el/aade/classifications/#income-classification-type). | | `invoiceSummary` | Τα σύνολα. Πρέπει να συμφωνούν με το άθροισμα των γραμμών. | | `providerAdditionalInvoiceDetails` | Στοιχεία **μόνο για το PDF** (επωνυμία, διεύθυνση, ετικέτες). Δεν πηγαίνουν στην ΑΑΔΕ. | ## 2. Στείλτε το **cURL** ```bash curl -X POST "https://provider-dev.timologisi.online/api/v1/Provider/SendInvoices" \ -H "API-KEY: $NOVUS_API_KEY" \ -H "Content-Type: application/json" \ --data @retail-receipt-11.1.json ``` **C# (.NET)** ```csharp using var http = new HttpClient { BaseAddress = new Uri("https://provider-dev.timologisi.online"), Timeout = TimeSpan.FromSeconds(60) }; http.DefaultRequestHeaders.Add("API-KEY", Environment.GetEnvironmentVariable("NOVUS_API_KEY")); var json = await File.ReadAllTextAsync("retail-receipt-11.1.json"); var res = await http.PostAsync("/api/v1/Provider/SendInvoices", new StringContent(json, System.Text.Encoding.UTF8, "application/json")); var body = await res.Content.ReadAsStringAsync(); Console.WriteLine($"{(int)res.StatusCode}: {body}"); ``` **Delphi** ```delphi uses System.Net.HttpClient, System.Classes, System.SysUtils, System.IOUtils; var Http: THTTPClient; Body: TStringStream; Resp: IHTTPResponse; begin Http := THTTPClient.Create; Body := TStringStream.Create(TFile.ReadAllText('retail-receipt-11.1.json', TEncoding.UTF8), TEncoding.UTF8); try Http.ResponseTimeout := 60000; Http.CustomHeaders['API-KEY'] := GetEnvironmentVariable('NOVUS_API_KEY'); Http.ContentType := 'application/json'; Resp := Http.Post('https://provider-dev.timologisi.online/api/v1/Provider/SendInvoices', Body); Writeln(Resp.StatusCode, ': ', Resp.ContentAsString(TEncoding.UTF8)); finally Body.Free; Http.Free; end; end; ``` **Python** ```python import json, os, requests with open("retail-receipt-11.1.json", encoding="utf-8") as f: payload = json.load(f) r = requests.post( "https://provider-dev.timologisi.online/api/v1/Provider/SendInvoices", headers={"API-KEY": os.environ["NOVUS_API_KEY"]}, json=payload, timeout=60, ) print(r.status_code, r.json()) ``` ## 3. Η απάντηση ```json title="HTTP 200 OK" { "response": [ { "index": 1, "statusCode": "Success", "invoiceUid": "C10262E0AE13C6AFD7DD2C980900BB0DF266D9C5", "invoiceMark": 400001939576037, "authenticationCode": "1D0F38488D532D3BB715408E01283D39E8D56A3A", "invoiceUrl": "https://provider-dev.timologisi.online/api/v1/Provider/GetInvoicePdf/671899191d6d0b3d947bc4bb.pdf", "qrUrl": "https://provider-dev.timologisi.online/api/v1/Provider/GetInvoicePdf/671899191d6d0b3d947bc4bb.pdf", "aadeQrUrl": "<ο σύνδεσμος επαλήθευσης της ΑΑΔΕ>", "credits": "0,50", "errors": null, "providerSignature": null } ] } ``` Αποθηκεύστε στη βάση σας τα `invoiceMark`, `invoiceUid`, `authenticationCode` και `invoiceUrl`. Θα σας χρειαστούν για συσχετίσεις (π.χ. πιστωτικά), αναζητήσεις και επανεκτύπωση. **Σημείωση: Έτοιμο** Ανοίξτε το `invoiceUrl` για να δείτε το PDF. Αν πήρατε `statusCode` διαφορετικό από `Success`, δείτε το [Errors & status codes](https://developers.novusconceptus.com/el/provider-api/errors/). Το μήνυμα στο `errors[].error[].message` λέει ακριβώς τι να διορθώσετε. ## Επόμενα βήματα - Όλα τα πεδία του παραστατικού: [SendInvoices reference](https://developers.novusconceptus.com/el/provider-api/send-invoices/). - Όλα τα είδη παραστατικών με έτοιμο JSON: [Τιμολόγια & αποδείξεις](https://developers.novusconceptus.com/el/guides/invoices/). - Κάρτα/IRIS, εστίαση, διακίνηση, B2G: δείτε τους αντίστοιχους οδηγούς στο μενού αριστερά. Πηγή: https://developers.novusconceptus.com/el/start/first-invoice/ --- # Πιστοποίηση & μετάβαση σε παραγωγή Πριν πάρετε κλειδί παραγωγής, πιστοποιούμε ότι η εφαρμογή σας κάνει σωστά **τα βασικά**: εκδίδει, πιστώνει, τυπώνει και χειρίζεται τα σφάλματα. Δεν χρειάζεται ραντεβού ούτε Word, και δεν χρειάζεται να μας στείλετε MARK: τα παραστατικά που εκδώσατε στο δοκιμαστικό τα βλέπουμε εμείς. Η πιστοποίηση δεν χρεώνεται. ```mermaid flowchart LR A["Τρέχετε τα βασικά σενάρια
από την εφαρμογή σας"] --> B["Αίτηση
πιστοποίησης"] B --> C{"Έλεγχος
Novus"} C -- "χρειάζεται διόρθωση" --> A C -- "εγκρίθηκε" --> D["Κλειδί
παραγωγής"] D --> E["Ενεργοποίηση
πελατών"] ``` ## 1. Τρέξτε τα βασικά σενάρια - Τα σενάρια τα τρέχετε **από τη δική σας εφαρμογή**, στο δοκιμαστικό περιβάλλον, με τον ΑΦΜ που δηλώσατε στην εγγραφή σας. - Το [Postman](https://developers.novusconceptus.com/el/tools/) έχει έτοιμο κάθε σενάριο (φάκελοι 1, 2, 3 και 9): δείτε εκεί τι ακριβώς πρέπει να στέλνει η εφαρμογή σας. Η πιστοποίηση όμως γίνεται από την εφαρμογή σας, όχι από το Postman. - Σημειώστε **τις ημερομηνίες** που τα τρέξατε. Θα μας τις δώσετε στην αίτηση. - Στείλτε την αίτηση **μέσα σε 30 ημέρες**: στο δοκιμαστικό τα παραστατικά σβήνονται μετά από 30 ημέρες. | # | Τι κάνετε | Στην αίτηση | |:--|:--|:--| | Β1 | Ένα παραστατικό με **δύο γραμμές**, μία με ΦΠΑ 24% και μία με 13%: **11.1** αν κάνετε λιανική, **1.1** αν κάνετε χονδρική (αν κάνετε και τα δύο, και τα δύο). | Τίποτα. Το βλέπουμε εμείς. | | Β2 | Ένα **πιστωτικό** για το Β1: **11.4** για λιανική, **5.2** ή **5.1** για χονδρική ([ποιο πιστωτικό](https://developers.novusconceptus.com/el/guides/credit-notes/)). | Τίποτα. Το βλέπουμε εμείς. | | Β3 | Την **εκτύπωση** του Β1, όπως τη βγάζει η εφαρμογή σας ([κανόνες εκτύπωσης](https://developers.novusconceptus.com/el/start/go-live/#kanones-ektyposis)). | PDF ή φωτογραφία. Αν δίνετε στον πελάτη το PDF του Παρόχου (`invoiceUrl`), αρκεί να το δηλώσετε. | | Β4 | Ένα **σκόπιμο λάθος** (π.χ. πληρωμές διαφορετικές από το σύνολο → HTTP 400). Ο χρήστης σας πρέπει να δει κατανοητό μήνυμα. | Δήλωση | | Β5 | Στέλνετε **ξανά** το Β1, ίδιο ακριβώς → σφάλμα ΑΑΔΕ **228**. Η εφαρμογή πρέπει να το δείξει ως «ήδη εκδομένο», με το MARK του αρχικού, και όχι ως αποτυχία. | Δήλωση | ## 2. Οι υπόλοιπες ενότητες: δεν πιστοποιούνται Πληρωμή με κάρτα, εστίαση, διακίνηση, B2G, OSS και Onboarding API **δεν** περνούν από πιστοποίηση. Στην αίτηση δηλώνετε ποιες χρησιμοποιείτε, και την υλοποίησή τους την ελέγχετε εσείς, με τον οδηγό και το Postman. | Ενότητα | Οδηγός | Postman | Προσοχή | |:---|:---|:---|:---| | **Κάρτα / IRIS** | [Πληρωμή με κάρτα / IRIS](https://developers.novusconceptus.com/el/guides/card-payments/) | φάκελος 4 | Κάθε υπογραφή που ζητάτε πρέπει να ολοκληρωθεί με `CompletionPosInvoices`. | | **Εστίαση** | [Εστίαση](https://developers.novusconceptus.com/el/guides/food-service/) | φάκελος 5 | Τραπέζι ανοιχτό πάνω από **24 ώρες** μπλοκάρει την έκδοση για όλη την εγκατάσταση του πελάτη σας. | | **Διακίνηση** | [Διακίνηση](https://developers.novusconceptus.com/el/guides/delivery/) | φάκελος 6 | | | **B2G** | [Δημόσιο (B2G)](https://developers.novusconceptus.com/el/guides/b2g/) | φάκελος 7 | Χρειάζεστε ξεχωριστό δοκιμαστικό κλειδί B2G. | | **OSS** | [OSS](https://developers.novusconceptus.com/el/guides/oss/) | φάκελος 8 | Τον ξένο ΦΠΑ τον υπολογίζει η εφαρμογή σας. | | **Onboarding API** | [Onboarding API](https://developers.novusconceptus.com/el/onboarding-api/) | συλλογή Onboarding | Αν χρησιμοποιείτε webhooks, επαληθεύετε την υπογραφή κάθε κλήσης. | ## 3. Στείλτε την αίτηση πιστοποίησης Όταν τρέξουν τα σενάρια, συμπληρώστε την αίτηση: [Αίτηση πιστοποίησης](https://www.novusconceptus.com/certification) Η αίτηση ζητά: - εταιρεία, εφαρμογή και έκδοση, - το email του δοκιμαστικού λογαριασμού σας και τον ΑΦΜ εκδότη που χρησιμοποιήσατε, - τις ημερομηνίες που τρέξατε τα σενάρια, - την εκτύπωση του Β3 (ή τη δήλωση ότι δίνετε το PDF του Παρόχου), - τις δηλώσεις για τα Β4 και Β5, - τις ενότητες που χρησιμοποιείτε. ## 4. Τι γίνεται μετά - Ελέγχουμε τα παραστατικά σας και την εκτύπωση, και σας απαντάμε **στην ίδια αίτηση**. - **Αν χρειάζεται διόρθωση**, σας λέμε τι ακριβώς. Διορθώνετε, ξανατρέχετε μόνο αυτό το σενάριο και απαντάτε στην ίδια αίτηση. - **Αν εγκριθεί**, σας στέλνουμε τις οδηγίες για τον λογαριασμό και το κλειδί παραγωγής. ## 5. Ενεργοποίηση ΑΦΜ πελατών (μόνο στην παραγωγή) Για κάθε πελάτη (ΑΦΜ εκδότη) απαιτούνται: 1. **Σύμβαση** του πελάτη με τη Novus Conceptus, υπογεγραμμένη από τον νόμιμο εκπρόσωπο. 2. **Εξουσιοδότηση** της Novus Conceptus ως Παρόχου από τον πελάτη στο myAADE. 3. **Δήλωση Παρόχου** στην ΑΑΔΕ. Την υποβάλλουμε εμείς μετά την έγκριση. Όλα αυτά γίνονται αυτόματα μέσω του **Onboarding API**: δημιουργείτε αίτημα, ο πελάτης υπογράφει τη σύμβαση και εσείς παρακολουθείτε την κατάσταση μέχρι την έγκριση. Εναλλακτικά γίνονται από το portal. Δείτε [Onboarding API](https://developers.novusconceptus.com/el/onboarding-api/). ## 6. Credits Κάθε κλήση χρεώνει credits από το υπόλοιπο του λογαριασμού σας ([χρεώσεις ανά τύπο](https://developers.novusconceptus.com/el/provider-api/credits/)). Αγοράζετε credits από το portal παραγωγής. Όταν το υπόλοιπο δεν επαρκεί, η κλήση απορρίπτεται με HTTP 400 `"You don't have enough balance to send this request."` και το παραστατικό **δεν** διαβιβάζεται. ## Κανόνες εκτύπωσης Αν χρησιμοποιείτε το PDF του Παρόχου (`invoiceUrl`), οι κανόνες καλύπτονται ήδη. Αν τυπώνετε **δικό σας** παραστατικό (π.χ. σε θερμικό εκτυπωτή), πρέπει να περιέχει: - την επωνυμία και τον ιστότοπο του Παρόχου: **Novus Conceptus | https://timologisi.online**, - το **QR code** (από το `invoiceUrl` / `qrUrl`), - τα **MARK**, **UID** και **Authentication Code**, - την ημερομηνία και την ώρα έκδοσης, ευανάγνωστα, - σε πληρωμή με POS: τα στοιχεία πληρωμής, δηλαδή το transaction id και την υπογραφή Παρόχου που χρησιμοποιήθηκε, για κάθε ποσό ξεχωριστά, - σε offline έκδοση: την ένδειξη **«Απώλεια Διασύνδεσης Παρόχου - ΑΑΔΕ»** ή **«Απώλεια Διασύνδεσης Οντότητας - Παρόχου»**, ανάλογα με την περίπτωση. ## Μετά τη μετάβαση - Τηρείτε τους όρους χρήσης. - Παρακολουθείτε τις απαντήσεις για warnings και errors. - Αν αργότερα προσθέσετε μια ενότητα (π.χ. κάρτα ή εστίαση), **δεν** χρειάζεται νέα πιστοποίηση: ακολουθήστε τον οδηγό της. - Κάθε αλλαγή της ΑΑΔΕ που σας αφορά την ανακοινώνουμε στη σελίδα [Αλλαγές](https://developers.novusconceptus.com/el/changelog/), πριν τεθεί σε ισχύ. Πηγή: https://developers.novusconceptus.com/el/start/go-live/ --- # Τιμολόγια & αποδείξεις Όλα τα παραστατικά εκδίδονται με την ίδια κλήση, [`SendInvoices`](https://developers.novusconceptus.com/el/provider-api/send-invoices/). Αλλάζει μόνο ο **τύπος** (`invoiceHeader.invoiceType`) και λίγα πεδία. ## Ποιον τύπο να διαλέξω | Συναλλαγή | Τύπος | Λήπτης (`counterpart`) | Έτοιμο JSON | |:---|:---:|:---:|:---| | Πώληση αγαθών σε επιχείρηση | `1.1` | ναι | [1.1-sales-invoice.json](https://developers.novusconceptus.com/examples/invoicing/1.1-sales-invoice.json) | | Παροχή υπηρεσιών σε επιχείρηση | `2.1` | ναι | [2.1-service-invoice.json](https://developers.novusconceptus.com/examples/invoicing/2.1-service-invoice.json) | | Λιανική πώληση αγαθών σε ιδιώτη | `11.1` | όχι | [11.1-retail-receipt.json](https://developers.novusconceptus.com/examples/invoicing/11.1-retail-receipt.json) | | Λιανική παροχή υπηρεσιών σε ιδιώτη | `11.2` | όχι | [11.2-service-receipt.json](https://developers.novusconceptus.com/examples/invoicing/11.2-service-receipt.json) | | Αγορά από μη υπόχρεο (τίτλος κτήσης) | `3.1` | ναι | [3.1-title-of-acquisition.json](https://developers.novusconceptus.com/examples/invoicing/3.1-title-of-acquisition.json) | | Τέλος ανθεκτικότητας κλιματικής κρίσης | `8.2` | προαιρετικά | [8.2-climate-resilience-fee.json](https://developers.novusconceptus.com/examples/invoicing/8.2-climate-resilience-fee.json) | | Πιστωτικό / επιστροφή | `5.1`, `5.2`, `11.4` | ανάλογα | [Πιστωτικά & συσχετίσεις](https://developers.novusconceptus.com/el/guides/credit-notes/) | | Τιμολόγιο που είναι και δελτίο αποστολής | `1.1` + `isDeliveryNote` | ναι | [Διακίνηση](https://developers.novusconceptus.com/el/guides/delivery/) | **Σημείωση: Μόνο τύποι 1.1 έως 11.5** Μέσω Παρόχου εκδίδονται **μόνο** οι τύποι 1.1 έως 11.5. Οι τύποι 12.x έως 17.x δεν διαβιβάζονται από Πάροχο. Όλοι οι επιτρεπτοί τύποι: [Πίνακες ΑΑΔΕ → Παραστατικά](https://developers.novusconceptus.com/el/aade/documents/#invoice-types). ## Οι 6 κανόνες που κόβουν τα περισσότερα λάθη 1. **Ένα παραστατικό ανά κλήση.** Το `invoice` είναι πίνακας με ακριβώς ένα στοιχείο. 2. **Σημερινή ημερομηνία.** Το `issueDate` πρέπει να είναι η σημερινή. Η μόνη εξαίρεση είναι η αποστολή με `transmissionFailure = 1` ([Offline](https://developers.novusconceptus.com/el/guides/offline/)). 3. **Πληρωμές = σύνολο.** Το άθροισμα του `paymentMethods[].amount` ισούται με το `invoiceSummary.totalGrossValue`. Αν ο πελάτης πληρώνει αργότερα, στέλνετε `type: 5` (Επί πιστώσει). 4. **Όχι επωνυμία για ελληνικά ΑΦΜ.** Στο `issuer` και στο `counterpart` με `country: "GR"` **δεν** στέλνετε `name`. Η επωνυμία που τυπώνεται μπαίνει στο `providerAdditionalInvoiceDetails`. 5. **Χαρακτηρισμός σε κάθε γραμμή.** Κάθε γραμμή εσόδου έχει `incomeClassification` με ποσό ίσο με το `netValue`. Η σύνοψη έχει τα αθροίσματα ανά τύπο και κατηγορία. 6. **Δύο μπλοκ, δύο σκοποί.** Ό,τι είναι στο `providerAdditionalInvoiceDetails` πηγαίνει **μόνο στο PDF**. Όλα τα υπόλοιπα πηγαίνουν στην ΑΑΔΕ. ## Συνηθισμένοι χαρακτηρισμοί εσόδων | Περίπτωση | `classificationType` | `classificationCategory` | |:---|:---|:---| | Χονδρική πώληση εμπορευμάτων (1.1) | `E3_561_001` | `category1_1` | | Παροχή υπηρεσιών σε επιχείρηση (2.1) | `E3_561_001` | `category1_3` | | Λιανική πώληση εμπορευμάτων (11.1) | `E3_561_003` | `category1_1` | | Λιανική παροχή υπηρεσιών (11.2, εστίαση) | `E3_561_003` | `category1_3` | | Πώληση εντός ΕΕ | `E3_561_005` | `category1_1` | | Πώληση σε τρίτη χώρα | `E3_561_006` | `category1_1` | | Πληροφοριακά (π.χ. 8.6, γραμμή ΦΠΑ OSS) | — | `category1_95` | Ποιος συνδυασμός ισχύει για κάθε τύπο παραστατικού το ορίζει η ΑΑΔΕ (αρχείο «Συνδυασμοί χαρακτηρισμών»). Όλοι οι κωδικοί: [Χαρακτηρισμοί](https://developers.novusconceptus.com/el/aade/classifications/). ## Έτοιμα παραδείγματα Όλα περνούν τον έλεγχο αθροισμάτων. Πριν τα στείλετε: - βάλτε στο `issuer.vatNumber` τον δικό σας ΑΦΜ του Sandbox (στα παραδείγματα είναι `123456789`), - βάλτε στο `issueDate` τη σημερινή ημερομηνία, - αλλάξτε το `aa`. Ο ΑΦΜ λήπτη `987654324` είναι φανταστικός, αλλά έγκυρος ως προς το check digit. **Παράδειγμα: 1.1 — Τιμολόγιο Πώλησης** [ Λήψη](https://developers.novusconceptus.com/examples/invoicing/1.1-sales-invoice.json) ```json { "invoice": [ { "issuer": { "vatNumber": "123456789", "country": "GR", "branch": 0 }, "counterpart": { "vatNumber": "987654324", "country": "GR", "branch": 0, "address": { "street": "Οδός Πελάτη", "number": "10", "postalCode": "15772", "city": "Ζωγράφου" } }, "invoiceHeader": { "series": "A", "aa": "1001", "issueDate": "2026-09-24", "invoiceType": "1.1", "currency": "EUR", "dispatchDate": "2026-09-24", "dispatchTime": "10:00:00", "vehicleNumber": "ABC-1234", "movePurpose": 1, "movePurposeLabel": "Πώληση" }, "paymentMethods": [ { "type": 5, "amount": 124 } ], "invoiceDetails": [ { "lineNumber": 1, "lineCode": "655-000023", "quantity": 1, "measurementUnitLabel": "ΤΜΧ", "lineUnitPrice": 120, "totalNetPriceBeforeDiscount": 120, "totalDiscountValue": 20, "netValue": 100, "vatCategory": 1, "vatCategoryPercent": 24, "vatAmount": 24, "lineDescription": "Αντικατάσταση Λέβητα", "incomeClassification": [ { "classificationType": "E3_561_001", "classificationCategory": "category1_1", "amount": 100 } ] } ], "invoiceSummary": { "totalNetValue": 100, "totalVatAmount": 24, "totalWithheldAmount": 0, "totalFeesAmount": 0, "totalStampDutyAmount": 0, "totalOtherTaxesAmount": 0, "totalDeductionsAmount": 0, "totalGrossValue": 124, "incomeClassification": [ { "classificationType": "E3_561_001", "classificationCategory": "category1_1", "amount": 100 } ] }, "providerAdditionalInvoiceDetails": { "issuer": { "name": "TEST ISSUER ΙΚΕ", "profession": "Εμπόριο ειδών θέρμανσης", "taxoffice": "Α' Αθηνών", "addressStreet": "Οδός Δοκιμής", "addressNumber": "1", "addressPostalCode": "10431", "addressCity": "Αθήνα", "addressCountry": "Ελλάδα", "phone": "2100000000", "email": "info@example.com", "webSite": "www.example.com", "registryNumber": "ΓΕΜΗ: 000000000000", "emtyLine2": "IBAN: GR00 0000 0000 0000 0000 0000 000" }, "counterpart": { "code": "C-0001", "name": "TEST CLIENT ΑΕ", "profession": "Χονδρικό εμπόριο", "taxoffice": "Ζωγράφου", "addressStreet": "Οδός Πελάτη", "addressNumber": "10", "addressPostalCode": "15772", "addressCity": "Ζωγράφου", "addressCountry": "Ελλάδα", "phone": "2100000001", "email": "client@example.com" }, "additionalDetails": { "documentLabel": "Τιμολόγιο Πώλησης", "documentLanguageCode": "EL", "documentSizeCode": 0, "documentComments": "Εξόφληση εντός 30 ημερών.", "paymentMethodInvoiceLabel": "Επί πιστώσει" } } } ] } ``` **Παράδειγμα: 2.1 — Τιμολόγιο Παροχής Υπηρεσιών** [ Λήψη](https://developers.novusconceptus.com/examples/invoicing/2.1-service-invoice.json) ```json { "invoice": [ { "issuer": { "vatNumber": "123456789", "country": "GR", "branch": 0 }, "counterpart": { "vatNumber": "987654324", "country": "GR", "branch": 0, "address": { "street": "Οδός Πελάτη", "number": "10", "postalCode": "15772", "city": "Ζωγράφου" } }, "invoiceHeader": { "series": "A", "aa": "1002", "issueDate": "2026-09-24", "invoiceType": "2.1", "currency": "EUR" }, "paymentMethods": [ { "type": 5, "amount": 100 }, { "type": 6, "amount": 24 } ], "invoiceDetails": [ { "lineNumber": 1, "lineCode": "655-000023", "quantity": 1, "measurementUnitLabel": "ΤΜΧ", "lineUnitPrice": 120, "totalNetPriceBeforeDiscount": 120, "totalDiscountValue": 20, "netValue": 100, "vatCategory": 1, "vatCategoryPercent": 24, "vatAmount": 24, "lineDescription": "Αντικατάσταση Λέβητα", "incomeClassification": [ { "classificationType": "E3_561_001", "classificationCategory": "category1_3", "amount": 100 } ] } ], "invoiceSummary": { "totalNetValue": 100, "totalVatAmount": 24, "totalWithheldAmount": 0, "totalFeesAmount": 0, "totalStampDutyAmount": 0, "totalOtherTaxesAmount": 0, "totalDeductionsAmount": 0, "totalGrossValue": 124, "incomeClassification": [ { "classificationType": "E3_561_001", "classificationCategory": "category1_3", "amount": 100 } ] }, "providerAdditionalInvoiceDetails": { "issuer": { "name": "TEST ISSUER ΙΚΕ", "profession": "Εμπόριο ειδών θέρμανσης", "taxoffice": "Α' Αθηνών", "addressStreet": "Οδός Δοκιμής", "addressNumber": "1", "addressPostalCode": "10431", "addressCity": "Αθήνα", "addressCountry": "Ελλάδα", "phone": "2100000000", "email": "info@example.com", "webSite": "www.example.com", "registryNumber": "ΓΕΜΗ: 000000000000", "emtyLine2": "IBAN: GR00 0000 0000 0000 0000 0000 000" }, "counterpart": { "code": "C-0001", "name": "TEST CLIENT ΑΕ", "profession": "Χονδρικό εμπόριο", "taxoffice": "Ζωγράφου", "addressStreet": "Οδός Πελάτη", "addressNumber": "10", "addressPostalCode": "15772", "addressCity": "Ζωγράφου", "addressCountry": "Ελλάδα", "phone": "2100000001", "email": "client@example.com" }, "additionalDetails": { "documentLabel": "Τιμολόγιο Παροχής Υπηρεσιών", "documentLanguageCode": "EL", "documentSizeCode": 0, "documentComments": "Εξόφληση εντός 30 ημερών.", "paymentMethodInvoiceLabel": "Επί πιστώσει" } } } ] } ``` **Παράδειγμα: 11.1 — Απόδειξη Λιανικής Πώλησης** [ Λήψη](https://developers.novusconceptus.com/examples/invoicing/11.1-retail-receipt.json) ```json { "invoice": [ { "issuer": { "vatNumber": "123456789", "country": "GR", "branch": 0 }, "invoiceHeader": { "series": "A", "aa": "1007", "issueDate": "2026-09-24", "invoiceType": "11.1", "currency": "EUR" }, "paymentMethods": [ { "type": 3, "amount": 124 } ], "invoiceDetails": [ { "lineNumber": 1, "lineCode": "655-000023", "quantity": 1, "measurementUnitLabel": "ΤΜΧ", "lineUnitPrice": 120, "totalNetPriceBeforeDiscount": 120, "totalDiscountValue": 20, "netValue": 100, "vatCategory": 1, "vatCategoryPercent": 24, "vatAmount": 24, "lineDescription": "Αντικατάσταση Λέβητα", "incomeClassification": [ { "classificationType": "E3_561_003", "classificationCategory": "category1_1", "amount": 100 } ] } ], "invoiceSummary": { "totalNetValue": 100, "totalVatAmount": 24, "totalWithheldAmount": 0, "totalFeesAmount": 0, "totalStampDutyAmount": 0, "totalOtherTaxesAmount": 0, "totalDeductionsAmount": 0, "totalGrossValue": 124, "incomeClassification": [ { "classificationType": "E3_561_003", "classificationCategory": "category1_1", "amount": 100 } ] }, "providerAdditionalInvoiceDetails": { "issuer": { "name": "TEST ISSUER ΙΚΕ", "profession": "Εμπόριο ειδών θέρμανσης", "taxoffice": "Α' Αθηνών", "addressStreet": "Οδός Δοκιμής", "addressNumber": "1", "addressPostalCode": "10431", "addressCity": "Αθήνα", "addressCountry": "Ελλάδα", "phone": "2100000000", "email": "info@example.com", "webSite": "www.example.com", "registryNumber": "ΓΕΜΗ: 000000000000", "emtyLine2": "IBAN: GR00 0000 0000 0000 0000 0000 000" }, "additionalDetails": { "documentLabel": "Απόδειξη Λιανικής Πώλησης", "documentLanguageCode": "EL", "documentSizeCode": 1, "documentComments": "Εξόφληση εντός 30 ημερών.", "paymentMethodInvoiceLabel": "Επί πιστώσει" } } } ] } ``` **Παράδειγμα: 11.2 — Απόδειξη Παροχής Υπηρεσιών** [ Λήψη](https://developers.novusconceptus.com/examples/invoicing/11.2-service-receipt.json) ```json { "invoice": [ { "issuer": { "vatNumber": "123456789", "country": "GR", "branch": 0 }, "invoiceHeader": { "series": "A", "aa": "1008", "issueDate": "2026-09-24", "invoiceType": "11.2", "currency": "EUR" }, "paymentMethods": [ { "type": 1, "amount": 124 } ], "invoiceDetails": [ { "lineNumber": 1, "lineCode": "655-000023", "quantity": 1, "measurementUnitLabel": "ΤΜΧ", "lineUnitPrice": 120, "totalNetPriceBeforeDiscount": 120, "totalDiscountValue": 20, "netValue": 100, "vatCategory": 1, "vatCategoryPercent": 24, "vatAmount": 24, "lineDescription": "Αντικατάσταση Λέβητα", "incomeClassification": [ { "classificationType": "E3_561_003", "classificationCategory": "category1_3", "amount": 100 } ] } ], "invoiceSummary": { "totalNetValue": 100, "totalVatAmount": 24, "totalWithheldAmount": 0, "totalFeesAmount": 0, "totalStampDutyAmount": 0, "totalOtherTaxesAmount": 0, "totalDeductionsAmount": 0, "totalGrossValue": 124, "incomeClassification": [ { "classificationType": "E3_561_003", "classificationCategory": "category1_3", "amount": 100 } ] }, "providerAdditionalInvoiceDetails": { "issuer": { "name": "TEST ISSUER ΙΚΕ", "profession": "Εμπόριο ειδών θέρμανσης", "taxoffice": "Α' Αθηνών", "addressStreet": "Οδός Δοκιμής", "addressNumber": "1", "addressPostalCode": "10431", "addressCity": "Αθήνα", "addressCountry": "Ελλάδα", "phone": "2100000000", "email": "info@example.com", "webSite": "www.example.com", "registryNumber": "ΓΕΜΗ: 000000000000", "emtyLine2": "IBAN: GR00 0000 0000 0000 0000 0000 000" }, "additionalDetails": { "documentLabel": "Απόδειξη Παροχής Υπηρεσιών", "documentLanguageCode": "EL", "documentSizeCode": 0, "documentComments": "Εξόφληση εντός 30 ημερών.", "paymentMethodInvoiceLabel": "Επί πιστώσει" } } } ] } ``` **Παράδειγμα: 3.1 — Τίτλος Κτήσης** [ Λήψη](https://developers.novusconceptus.com/examples/invoicing/3.1-title-of-acquisition.json) ```json { "invoice": [ { "issuer": { "vatNumber": "123456789", "country": "GR", "branch": 0 }, "counterpart": { "vatNumber": "987654324", "country": "GR", "branch": 0, "address": { "street": "Οδός Πελάτη", "number": "10", "postalCode": "15772", "city": "Ζωγράφου" } }, "invoiceHeader": { "series": "A", "aa": "1003", "issueDate": "2026-09-24", "invoiceType": "3.1", "currency": "EUR", "exchangeRate": 1.19552, "dispatchDate": "2026-09-24", "dispatchTime": "10:00:00", "vehicleNumber": "ABC-1234", "movePurpose": 1, "movePurposeLabel": "Πώληση" }, "paymentMethods": [ { "type": 5, "amount": 100 } ], "invoiceDetails": [ { "lineNumber": 1, "lineCode": "655-000023", "quantity": 1, "measurementUnitLabel": "ΤΜΧ", "lineUnitPrice": 120, "totalNetPriceBeforeDiscount": 120, "totalDiscountValue": 20, "netValue": 100, "vatCategory": 8, "vatCategoryPercent": 0, "vatAmount": 0, "lineDescription": "Αντικατάσταση Λέβητα", "expensesClassification": [ { "classificationType": "E3_102_002", "classificationCategory": "category2_1", "amount": 100 } ] } ], "invoiceSummary": { "totalNetValue": 100, "totalVatAmount": 0, "totalWithheldAmount": 0, "totalFeesAmount": 0, "totalStampDutyAmount": 0, "totalOtherTaxesAmount": 0, "totalDeductionsAmount": 0, "totalGrossValue": 100, "expensesClassification": [ { "classificationType": "E3_102_002", "classificationCategory": "category2_1", "amount": 100 } ] }, "providerAdditionalInvoiceDetails": { "issuer": { "name": "TEST ISSUER ΙΚΕ", "profession": "Εμπόριο ειδών θέρμανσης", "taxoffice": "Α' Αθηνών", "addressStreet": "Οδός Δοκιμής", "addressNumber": "1", "addressPostalCode": "10431", "addressCity": "Αθήνα", "addressCountry": "Ελλάδα", "phone": "2100000000", "email": "info@example.com", "webSite": "www.example.com", "registryNumber": "ΓΕΜΗ: 000000000000", "emtyLine2": "IBAN: GR00 0000 0000 0000 0000 0000 000" }, "counterpart": { "code": "C-0001", "name": "TEST CLIENT ΑΕ", "profession": "Χονδρικό εμπόριο", "taxoffice": "Ζωγράφου", "addressStreet": "Οδός Πελάτη", "addressNumber": "10", "addressPostalCode": "15772", "addressCity": "Ζωγράφου", "addressCountry": "Ελλάδα", "phone": "2100000001", "email": "client@example.com" }, "additionalDetails": { "documentLabel": "Τίτλος Κτήσης", "documentLanguageCode": "EL", "documentSizeCode": 0, "documentComments": "Εξόφληση εντός 30 ημερών.", "paymentMethodInvoiceLabel": "Επί πιστώσει" } } } ] } ``` **Παράδειγμα: 8.2 — Τέλος ανθεκτικότητας κλιματικής κρίσης** Το τέλος δηλώνεται ως λοιπός φόρος με ποσό: `otherTaxesPercentCategory` 20–30, ανά διανυκτέρευση. Βλ. [Λοιποί φόροι](https://developers.novusconceptus.com/el/aade/taxes/#other-taxes). [ Λήψη](https://developers.novusconceptus.com/examples/invoicing/8.2-climate-resilience-fee.json) ```json { "invoice": [ { "issuer": { "vatNumber": "123456789", "country": "GR", "branch": 0 }, "counterpart": { "vatNumber": "987654324", "country": "GR", "branch": 0, "address": { "street": "Οδός Πελάτη", "number": "10", "postalCode": "15772", "city": "Ζωγράφου" } }, "invoiceHeader": { "series": "A", "aa": "1006", "issueDate": "2026-09-24", "invoiceType": "8.2", "currency": "EUR" }, "paymentMethods": [ { "type": 3, "amount": 6.0 } ], "invoiceDetails": [ { "lineNumber": 1, "lineCode": "CRF-01", "quantity": 2, "measurementUnitLabel": "ΔΙΑΝ.", "lineUnitPrice": 0, "totalNetPriceBeforeDiscount": 0, "totalDiscountValue": 0, "netValue": 0, "vatCategory": 8, "vatCategoryPercent": 0, "vatAmount": 0, "otherTaxesPercentCategory": 21, "otherTaxesAmount": 6.0, "lineDescription": "Τέλος ανθεκτικότητας κλιματικής κρίσης (2 διανυκτερεύσεις)", "incomeClassification": [ { "classificationCategory": "category1_95", "amount": 0 } ] } ], "invoiceSummary": { "totalNetValue": 0, "totalVatAmount": 0, "totalWithheldAmount": 0, "totalFeesAmount": 0, "totalStampDutyAmount": 0, "totalOtherTaxesAmount": 6.0, "totalDeductionsAmount": 0, "totalGrossValue": 6.0, "incomeClassification": [ { "classificationCategory": "category1_95", "amount": 0 } ] }, "providerAdditionalInvoiceDetails": { "issuer": { "name": "TEST ISSUER ΙΚΕ", "profession": "Εμπόριο ειδών θέρμανσης", "taxoffice": "Α' Αθηνών", "addressStreet": "Οδός Δοκιμής", "addressNumber": "1", "addressPostalCode": "10431", "addressCity": "Αθήνα", "addressCountry": "Ελλάδα", "phone": "2100000000", "email": "info@example.com", "webSite": "www.example.com", "registryNumber": "ΓΕΜΗ: 000000000000", "emtyLine2": "IBAN: GR00 0000 0000 0000 0000 0000 000" }, "counterpart": { "code": "C-0001", "name": "TEST CLIENT ΑΕ", "profession": "Χονδρικό εμπόριο", "taxoffice": "Ζωγράφου", "addressStreet": "Οδός Πελάτη", "addressNumber": "10", "addressPostalCode": "15772", "addressCity": "Ζωγράφου", "addressCountry": "Ελλάδα", "phone": "2100000001", "email": "client@example.com" }, "additionalDetails": { "documentLabel": "Τέλος Ανθεκτικότητας Κλιματικής Κρίσης", "documentLanguageCode": "EL", "documentSizeCode": 0, "documentComments": "Εξόφληση εντός 30 ημερών.", "paymentMethodInvoiceLabel": "Μετρητά" } } } ] } ``` Πηγή: https://developers.novusconceptus.com/el/guides/invoices/ --- # Πιστωτικά & συσχετίσεις ## Ποιο πιστωτικό | Περίπτωση | Τύπος | Τι συμπληρώνετε | |:---|:---:|:---| | Πίστωση τιμολογίου **χονδρικής**, προς επιχείρηση (επιστροφή, έκπτωση, ακύρωση) | `5.2` *(συνιστάται)* | Τίποτα επιπλέον | | Το ίδιο, με συσχέτιση στο αρχικό τιμολόγιο | `5.1` | `correlatedInvoices` με το MARK του αρχικού. Δείτε την προειδοποίηση παρακάτω. | | Ακύρωση ή επιστροφή απόδειξης **λιανικής** (11.1, 11.2, 11.3, 11.5) | `11.4` | Προαιρετικά `correlatedInvoices` | Τα ποσά του πιστωτικού γράφονται **θετικά**. Το ότι είναι πίστωση το δηλώνει ο τύπος. **Προσοχή: Γιατί συνιστάται το 5.2** Η ΑΑΔΕ χρειάζεται χρόνο για να συγχρονίσει ένα νέο παραστατικό, **έως και 24 ώρες**. Αν στείλετε πιστωτικό με `correlatedInvoices` σε MARK που δεν έχει ακόμη συγχρονιστεί, η ΑΑΔΕ απαντά ότι δεν βρίσκει το MARK και το πιστωτικό απορρίπτεται. Για να μη σταματάει η εφαρμογή σας, προτιμήστε το 5.2. Το 5.1 χρησιμοποιήστε μόνο όταν το αρχικό έχει εκδοθεί αρκετά νωρίτερα. ## Ακύρωση παραστατικού Παραστατικό που εκδόθηκε **δεν διαγράφεται ούτε ακυρώνεται**. Αντιλογίζεται μόνο με το νόμιμο πιστωτικό, με τα ίδια ποσά και χαρακτηρισμούς. Οι κλήσεις `CancelDeliveryNote` / `CancelReceivingNote` αφορούν μόνο δελτία (9.x / 10.x). Αν το αρχικό ήταν **αυτοτιμολόγηση** (`selfPricing: true`), και το πιστωτικό εκδίδεται ως αυτοτιμολόγηση, ώστε ο αντιλογισμός να έχει τα σωστά πρόσημα. ## Συσχέτιση | Πεδίο | Τι βάζετε | |:---|:---| | `invoiceHeader.correlatedInvoices` | Πίνακας με το MARK του αρχικού, π.χ. `[400001930000001]`. Το MARK το πήρατε στην απάντηση όταν εκδόθηκε το αρχικό. | | `invoiceHeader.correlatedInvoicesLabel` | Κείμενο για το PDF, π.χ. «Τιμολόγιο Πώλησης A 1001». | Αν το αρχικό εκδόθηκε `Offline` και δεν έχει ακόμη MARK, περιμένετε να το αποκτήσει. Το βρίσκετε με [`RequestTransmittedDocs`](https://developers.novusconceptus.com/el/provider-api/other-endpoints/#requesttransmitteddocs) και `uid`. **Συμβουλή: Δεν θυμάστε το MARK;** Κάντε αναζήτηση με [`RequestTransmittedDocs`](https://developers.novusconceptus.com/el/provider-api/other-endpoints/#requesttransmitteddocs) βάσει σειράς/ΑΑ ή UID. ## Έτοιμα παραδείγματα **Παράδειγμα: 5.1 — Πιστωτικό συσχετιζόμενο** [ Λήψη](https://developers.novusconceptus.com/examples/invoicing/5.1-credit-invoice-correlated.json) ```json { "invoice": [ { "issuer": { "vatNumber": "123456789", "country": "GR", "branch": 0 }, "counterpart": { "vatNumber": "987654324", "country": "GR", "branch": 0, "address": { "street": "Οδός Πελάτη", "number": "10", "postalCode": "15772", "city": "Ζωγράφου" } }, "invoiceHeader": { "series": "A", "aa": "1004", "issueDate": "2026-09-24", "invoiceType": "5.1", "currency": "EUR", "correlatedInvoices": [ 400001930000001 ], "correlatedInvoicesLabel": "Τιμολόγιο Πώλησης A 1001" }, "paymentMethods": [ { "type": 5, "amount": 124 } ], "invoiceDetails": [ { "lineNumber": 1, "lineCode": "655-000023", "quantity": 1, "measurementUnitLabel": "ΤΜΧ", "lineUnitPrice": 120, "totalNetPriceBeforeDiscount": 120, "totalDiscountValue": 20, "netValue": 100, "vatCategory": 1, "vatCategoryPercent": 24, "vatAmount": 24, "lineDescription": "Αντικατάσταση Λέβητα", "incomeClassification": [ { "classificationType": "E3_561_001", "classificationCategory": "category1_1", "amount": 100 } ] } ], "invoiceSummary": { "totalNetValue": 100, "totalVatAmount": 24, "totalWithheldAmount": 0, "totalFeesAmount": 0, "totalStampDutyAmount": 0, "totalOtherTaxesAmount": 0, "totalDeductionsAmount": 0, "totalGrossValue": 124, "incomeClassification": [ { "classificationType": "E3_561_001", "classificationCategory": "category1_1", "amount": 100 } ] }, "providerAdditionalInvoiceDetails": { "issuer": { "name": "TEST ISSUER ΙΚΕ", "profession": "Εμπόριο ειδών θέρμανσης", "taxoffice": "Α' Αθηνών", "addressStreet": "Οδός Δοκιμής", "addressNumber": "1", "addressPostalCode": "10431", "addressCity": "Αθήνα", "addressCountry": "Ελλάδα", "phone": "2100000000", "email": "info@example.com", "webSite": "www.example.com", "registryNumber": "ΓΕΜΗ: 000000000000", "emtyLine2": "IBAN: GR00 0000 0000 0000 0000 0000 000" }, "counterpart": { "code": "C-0001", "name": "TEST CLIENT ΑΕ", "profession": "Χονδρικό εμπόριο", "taxoffice": "Ζωγράφου", "addressStreet": "Οδός Πελάτη", "addressNumber": "10", "addressPostalCode": "15772", "addressCity": "Ζωγράφου", "addressCountry": "Ελλάδα", "phone": "2100000001", "email": "client@example.com" }, "additionalDetails": { "documentLabel": "Πιστωτικό Τιμολόγιο", "documentLanguageCode": "EL", "documentSizeCode": 0, "documentComments": "Εξόφληση εντός 30 ημερών.", "paymentMethodInvoiceLabel": "Επί πιστώσει" } } } ] } ``` **Παράδειγμα: 5.2 — Πιστωτικό μη συσχετιζόμενο** [ Λήψη](https://developers.novusconceptus.com/examples/invoicing/5.2-credit-invoice-uncorrelated.json) ```json { "invoice": [ { "issuer": { "vatNumber": "123456789", "country": "GR", "branch": 0 }, "counterpart": { "vatNumber": "987654324", "country": "GR", "branch": 0, "address": { "street": "Οδός Πελάτη", "number": "10", "postalCode": "15772", "city": "Ζωγράφου" } }, "invoiceHeader": { "series": "A", "aa": "1005", "issueDate": "2026-09-24", "invoiceType": "5.2", "currency": "EUR" }, "paymentMethods": [ { "type": 5, "amount": 124 } ], "invoiceDetails": [ { "lineNumber": 1, "lineCode": "655-000023", "quantity": 1, "measurementUnitLabel": "ΤΜΧ", "lineUnitPrice": 120, "totalNetPriceBeforeDiscount": 120, "totalDiscountValue": 20, "netValue": 100, "vatCategory": 1, "vatCategoryPercent": 24, "vatAmount": 24, "lineDescription": "Αντικατάσταση Λέβητα", "incomeClassification": [ { "classificationType": "E3_561_001", "classificationCategory": "category1_1", "amount": 100 } ] } ], "invoiceSummary": { "totalNetValue": 100, "totalVatAmount": 24, "totalWithheldAmount": 0, "totalFeesAmount": 0, "totalStampDutyAmount": 0, "totalOtherTaxesAmount": 0, "totalDeductionsAmount": 0, "totalGrossValue": 124, "incomeClassification": [ { "classificationType": "E3_561_001", "classificationCategory": "category1_1", "amount": 100 } ] }, "providerAdditionalInvoiceDetails": { "issuer": { "name": "TEST ISSUER ΙΚΕ", "profession": "Εμπόριο ειδών θέρμανσης", "taxoffice": "Α' Αθηνών", "addressStreet": "Οδός Δοκιμής", "addressNumber": "1", "addressPostalCode": "10431", "addressCity": "Αθήνα", "addressCountry": "Ελλάδα", "phone": "2100000000", "email": "info@example.com", "webSite": "www.example.com", "registryNumber": "ΓΕΜΗ: 000000000000", "emtyLine2": "IBAN: GR00 0000 0000 0000 0000 0000 000" }, "counterpart": { "code": "C-0001", "name": "TEST CLIENT ΑΕ", "profession": "Χονδρικό εμπόριο", "taxoffice": "Ζωγράφου", "addressStreet": "Οδός Πελάτη", "addressNumber": "10", "addressPostalCode": "15772", "addressCity": "Ζωγράφου", "addressCountry": "Ελλάδα", "phone": "2100000001", "email": "client@example.com" }, "additionalDetails": { "documentLabel": "Πιστωτικό Τιμολόγιο", "documentLanguageCode": "EL", "documentSizeCode": 0, "documentComments": "Εξόφληση εντός 30 ημερών.", "paymentMethodInvoiceLabel": "Επί πιστώσει" } } } ] } ``` **Παράδειγμα: 11.4 — Πιστωτικό στοιχείο λιανικής** [ Λήψη](https://developers.novusconceptus.com/examples/invoicing/11.4-retail-credit-note.json) ```json { "invoice": [ { "issuer": { "vatNumber": "123456789", "country": "GR", "branch": 0 }, "invoiceHeader": { "series": "A", "aa": "1009", "issueDate": "2026-09-24", "invoiceType": "11.4", "currency": "EUR" }, "paymentMethods": [ { "type": 3, "amount": 124 } ], "invoiceDetails": [ { "lineNumber": 1, "lineCode": "655-000023", "quantity": 1, "measurementUnitLabel": "ΤΜΧ", "lineUnitPrice": 120, "totalNetPriceBeforeDiscount": 120, "totalDiscountValue": 20, "netValue": 100, "vatCategory": 1, "vatCategoryPercent": 24, "vatAmount": 24, "lineDescription": "Αντικατάσταση Λέβητα", "incomeClassification": [ { "classificationType": "E3_561_003", "classificationCategory": "category1_1", "amount": 100 } ] } ], "invoiceSummary": { "totalNetValue": 100, "totalVatAmount": 24, "totalWithheldAmount": 0, "totalFeesAmount": 0, "totalStampDutyAmount": 0, "totalOtherTaxesAmount": 0, "totalDeductionsAmount": 0, "totalGrossValue": 124, "incomeClassification": [ { "classificationType": "E3_561_003", "classificationCategory": "category1_1", "amount": 100 } ] }, "providerAdditionalInvoiceDetails": { "issuer": { "name": "TEST ISSUER ΙΚΕ", "profession": "Εμπόριο ειδών θέρμανσης", "taxoffice": "Α' Αθηνών", "addressStreet": "Οδός Δοκιμής", "addressNumber": "1", "addressPostalCode": "10431", "addressCity": "Αθήνα", "addressCountry": "Ελλάδα", "phone": "2100000000", "email": "info@example.com", "webSite": "www.example.com", "registryNumber": "ΓΕΜΗ: 000000000000", "emtyLine2": "IBAN: GR00 0000 0000 0000 0000 0000 000" }, "additionalDetails": { "documentLabel": "Πιστωτικό Στοιχείο Λιανικής", "documentLanguageCode": "EL", "documentSizeCode": 7, "documentComments": "Εξόφληση εντός 30 ημερών.", "paymentMethodInvoiceLabel": "Επί πιστώσει" } } } ] } ``` Πηγή: https://developers.novusconceptus.com/el/guides/credit-notes/ --- # Φόροι, τέλη, κρατήσεις Εκτός από τον ΦΠΑ, ένα παραστατικό μπορεί να έχει παρακρατούμενο φόρο, τέλη, λοιπούς φόρους, ψηφιακό τέλος συναλλαγής (το πρώην χαρτόσημο) και κρατήσεις. Υπάρχουν **δύο τρόποι** να τα δηλώσετε. Διαλέγετε **έναν** ανά παραστατικό. | | Ανά γραμμή | Σε επίπεδο παραστατικού (`taxesTotals`) | |:---|:---|:---| | Πού | Σε κάθε `invoiceDetails[]`: `withheldAmount` + `withheldPercentCategory`, `feesAmount` + `feesPercentCategory` κ.λπ. | Στον πίνακα `taxesTotals[]`, μία εγγραφή ανά φόρο | | Πότε | Όταν ο φόρος αφορά συγκεκριμένες γραμμές | Όταν αφορά όλο το παραστατικό. **Υποχρεωτικό για B2G.** | | Εκτύπωση | Αυτόματα | Με το `taxTypeLabel` (υποχρεωτικό) και το `reducesPayable` | ## Πώς βγαίνει το σύνολο ```text totalGrossValue = totalNetValue + totalVatAmount − totalWithheldAmount + totalFeesAmount + totalStampDutyAmount + totalOtherTaxesAmount − totalDeductionsAmount ``` Το άθροισμα των `paymentMethods[].amount` πρέπει να ισούται με αυτό το ποσό. ## taxesTotals: ένα στοιχείο ανά φόρο | `taxType` | Είδος | `taxCategory` από τον πίνακα | Μειώνει το πληρωτέο | |:---:|:---|:---|:---:| | 1 | Παρακρατούμενος φόρος | [Παρακρατούμενοι](https://developers.novusconceptus.com/el/aade/taxes/#withheld-tax) | ναι | | 2 | Τέλη | [Τέλη](https://developers.novusconceptus.com/el/aade/taxes/#fees) | όχι | | 3 | Λοιποί φόροι | [Λοιποί φόροι](https://developers.novusconceptus.com/el/aade/taxes/#other-taxes) | όχι | | 4 | Ψηφιακό τέλος συναλλαγής | [Ψηφιακό τέλος](https://developers.novusconceptus.com/el/aade/taxes/#digital-transaction-fee) | όχι | | 5 | Κρατήσεις | — | ναι | ```json title="Παράδειγμα: παρακράτηση 4% σε τιμολόγιο 100 €" "taxesTotals": [ { "taxType": 1, "taxCategory": 6, "underlyingValue": 100, "taxAmount": 4.00, "reducesPayable": true, "taxTypeLabel": "Παρακράτηση φόρου 4%" } ] ``` **Προσοχή: Ποσοστό και ποσό πρέπει να συμφωνούν** Όταν η κατηγορία είναι ποσοστό (π.χ. 4%), το ποσό πρέπει να είναι αυτό το ποσοστό επί της αξίας. Όταν η κατηγορία είναι «ποσό» (π.χ. φόρος διαμονής), στέλνετε το ποσό που ισχύει. ## Έτοιμα παραδείγματα Και τα δύο αρχεία περιγράφουν το ίδιο τιμολόγιο (100 € + ΦΠΑ 24%, με όλα τα είδη φόρων), μία φορά ανά γραμμή και μία σε επίπεδο παραστατικού. Είναι παραδείγματα **δομής**, όχι φορολογική συμβουλή. **Παράδειγμα: Φόροι ανά γραμμή** [ Λήψη](https://developers.novusconceptus.com/examples/invoicing/taxes-line-level.json) ```json { "invoice": [ { "issuer": { "vatNumber": "123456789", "country": "GR", "branch": 0 }, "counterpart": { "vatNumber": "987654324", "country": "GR", "branch": 0, "address": { "street": "Οδός Πελάτη", "number": "10", "postalCode": "15772", "city": "Ζωγράφου" } }, "invoiceHeader": { "series": "A", "aa": "1010", "issueDate": "2026-09-24", "invoiceType": "1.1", "currency": "EUR" }, "paymentMethods": [ { "type": 3, "amount": 125.7 } ], "invoiceDetails": [ { "lineNumber": 1, "lineCode": "SRV-100", "quantity": 1, "measurementUnit": 1, "measurementUnitLabel": "ΤΜΧ", "lineUnitPrice": 100, "totalNetPriceBeforeDiscount": 100, "totalDiscountValue": 0, "netValue": 100, "vatCategory": 1, "vatCategoryPercent": 24, "vatAmount": 24, "lineDescription": "Προϊόν Α", "withheldPercentCategory": 6, "withheldAmount": 4.0, "feesPercentCategory": 10, "feesAmount": 2.0, "otherTaxesPercentCategory": 17, "otherTaxesAmount": 3.0, "stampDutyPercentCategory": 1, "stampDutyAmount": 1.2, "deductionsAmount": 0.5, "incomeClassification": [ { "classificationType": "E3_561_001", "classificationCategory": "category1_1", "amount": 100 } ] } ], "invoiceSummary": { "totalNetValue": 100, "totalVatAmount": 24, "totalWithheldAmount": 4.0, "totalFeesAmount": 2.0, "totalStampDutyAmount": 1.2, "totalOtherTaxesAmount": 3.0, "totalDeductionsAmount": 0.5, "totalGrossValue": 125.7, "incomeClassification": [ { "classificationType": "E3_561_001", "classificationCategory": "category1_1", "amount": 100 } ] }, "providerAdditionalInvoiceDetails": { "issuer": { "name": "TEST ISSUER ΙΚΕ", "profession": "Εμπόριο ειδών θέρμανσης", "taxoffice": "Α' Αθηνών", "addressStreet": "Οδός Δοκιμής", "addressNumber": "1", "addressPostalCode": "10431", "addressCity": "Αθήνα", "addressCountry": "Ελλάδα", "phone": "2100000000", "email": "info@example.com", "webSite": "www.example.com", "registryNumber": "ΓΕΜΗ: 000000000000", "emtyLine2": "IBAN: GR00 0000 0000 0000 0000 0000 000" }, "counterpart": { "code": "C-0001", "name": "TEST CLIENT ΑΕ", "profession": "Χονδρικό εμπόριο", "taxoffice": "Ζωγράφου", "addressStreet": "Οδός Πελάτη", "addressNumber": "10", "addressPostalCode": "15772", "addressCity": "Ζωγράφου", "addressCountry": "Ελλάδα", "phone": "2100000001", "email": "client@example.com" }, "additionalDetails": { "documentLabel": "Τιμολόγιο Πώλησης", "documentLanguageCode": "EL", "documentSizeCode": 0, "documentComments": "Εξόφληση εντός 30 ημερών.", "paymentMethodInvoiceLabel": "Μετρητά" } } } ] } ``` **Παράδειγμα: Φόροι σε επίπεδο παραστατικού (taxesTotals)** [ Λήψη](https://developers.novusconceptus.com/examples/invoicing/taxes-document-level.json) ```json { "invoice": [ { "issuer": { "vatNumber": "123456789", "country": "GR", "branch": 0 }, "counterpart": { "vatNumber": "987654324", "country": "GR", "branch": 0, "address": { "street": "Οδός Πελάτη", "number": "10", "postalCode": "15772", "city": "Ζωγράφου" } }, "invoiceHeader": { "series": "A", "aa": "1011", "issueDate": "2026-09-24", "invoiceType": "1.1", "currency": "EUR" }, "paymentMethods": [ { "type": 3, "amount": 125.7 } ], "invoiceDetails": [ { "lineNumber": 1, "lineCode": "SRV-100", "quantity": 1, "measurementUnit": 1, "measurementUnitLabel": "ΤΜΧ", "lineUnitPrice": 100, "totalNetPriceBeforeDiscount": 100, "totalDiscountValue": 0, "netValue": 100, "vatCategory": 1, "vatCategoryPercent": 24, "vatAmount": 24, "lineDescription": "Προϊόν Α", "incomeClassification": [ { "classificationType": "E3_561_001", "classificationCategory": "category1_1", "amount": 100 } ] } ], "taxesTotals": [ { "taxType": 1, "taxCategory": 6, "underlyingValue": 100, "taxAmount": 4.0, "reducesPayable": true, "taxTypeLabel": "Παρακράτηση φόρου 4%" }, { "taxType": 2, "taxCategory": 10, "underlyingValue": 100, "taxAmount": 2.0, "reducesPayable": false, "taxTypeLabel": "Λοιπά τέλη" }, { "taxType": 3, "taxCategory": 17, "underlyingValue": 100, "taxAmount": 3.0, "reducesPayable": false, "taxTypeLabel": "Λοιποί φόροι" }, { "taxType": 4, "taxCategory": 1, "underlyingValue": 100, "taxAmount": 1.2, "reducesPayable": false, "taxTypeLabel": "Ψηφιακό τέλος συναλλαγής 1,2%" }, { "taxType": 5, "underlyingValue": 100, "taxAmount": 0.5, "reducesPayable": true, "taxTypeLabel": "Κρατήσεις" } ], "invoiceSummary": { "totalNetValue": 100, "totalVatAmount": 24, "totalWithheldAmount": 4.0, "totalFeesAmount": 2.0, "totalStampDutyAmount": 1.2, "totalOtherTaxesAmount": 3.0, "totalDeductionsAmount": 0.5, "totalGrossValue": 125.7, "incomeClassification": [ { "classificationType": "E3_561_001", "classificationCategory": "category1_1", "amount": 100 } ] }, "providerAdditionalInvoiceDetails": { "issuer": { "name": "TEST ISSUER ΙΚΕ", "profession": "Εμπόριο ειδών θέρμανσης", "taxoffice": "Α' Αθηνών", "addressStreet": "Οδός Δοκιμής", "addressNumber": "1", "addressPostalCode": "10431", "addressCity": "Αθήνα", "addressCountry": "Ελλάδα", "phone": "2100000000", "email": "info@example.com", "webSite": "www.example.com", "registryNumber": "ΓΕΜΗ: 000000000000", "emtyLine2": "IBAN: GR00 0000 0000 0000 0000 0000 000" }, "counterpart": { "code": "C-0001", "name": "TEST CLIENT ΑΕ", "profession": "Χονδρικό εμπόριο", "taxoffice": "Ζωγράφου", "addressStreet": "Οδός Πελάτη", "addressNumber": "10", "addressPostalCode": "15772", "addressCity": "Ζωγράφου", "addressCountry": "Ελλάδα", "phone": "2100000001", "email": "client@example.com" }, "additionalDetails": { "documentLabel": "Τιμολόγιο Πώλησης", "documentLanguageCode": "EL", "documentSizeCode": 0, "documentComments": "Εξόφληση εντός 30 ημερών.", "paymentMethodInvoiceLabel": "Μετρητά" } } } ] } ``` Πηγή: https://developers.novusconceptus.com/el/guides/taxes/ --- # Πληρωμή με κάρτα / IRIS Με την απόφαση **Α.1155/2023**, όταν το τερματικό POS μιας επιχείρησης είναι «κλειδωμένο» (διασυνδεδεμένο), η χρέωση της κάρτας ή του IRIS γίνεται μόνο με **Υπογραφή Παρόχου**. Ο Πάροχος δίνει την υπογραφή, το POS τη χρησιμοποιεί για να χρεώσει, και μετά ολοκληρώνετε το παραστατικό. **Σημείωση: Ποιος το χρειάζεται** Μόνο όσοι έχουν POS υποχρεωμένο σε διασύνδεση. Αυτό το ορίζει η ΑΑΔΕ ανά επιχείρηση και τερματικό, και ο Πάροχος δεν μπορεί να το γνωρίζει. Γι' αυτό υπάρχει η παράμετρος `skipSignature`. Κατά την εγκύκλιο **Ε.2044/2024** της ΑΑΔΕ, εκτός διασύνδεσης είναι, μεταξύ άλλων, οι **πωλήσεις από απόσταση (e-shop)**, οι πληρωμές με payment link και όσες επιχειρήσεις δεν έχουν υποχρέωση ταμειακής (π.χ. ΠΟΛ.1002/2014, αποκλειστικά χονδρική). Εκεί στέλνετε με `skipSignature=true`. Για τη συγκεκριμένη περίπτωση κάθε πελάτη, την τελική απάντηση τη δίνει ο λογιστής του. ## Δύο διασυνδέσεις Η πληρωμή με κάρτα έχει **δύο ξεχωριστές διασυνδέσεις**. Ο Πάροχος δεν επικοινωνεί με το τερματικό. | Διασύνδεση | Τι κάνει | API και δοκιμαστικό | |:---|:---|:---| | **Εφαρμογή ↔ Πάροχος (Novus)** | Δίνει την υπογραφή Παρόχου και, μετά τη χρέωση, διαβιβάζει το παραστατικό στην ΑΑΔΕ (MARK). | Novus: αυτή η τεκμηρίωση | | **Εφαρμογή ↔ POS / NSP** (π.χ. Viva, Mellon, Cardlink, Worldline, Nexi, Euronet, EDPS) | Στέλνει στο τερματικό το ποσό και το token, χρεώνει την κάρτα και επιστρέφει το `transactionId`. | Ο NSP σας | Στον NSP δηλώνετε τη Novus Conceptus ως Πάροχο. Η ΑΑΔΕ έχει για εμάς δύο αναγνωριστικά, `provider_id` **005** και `license_id` **105**: δοκιμάστε στο δοκιμαστικό του NSP ποιο δέχεται. ## skipSignature: ο διακόπτης | `SendInvoices?skipSignature=` | Τι γίνεται με πληρωμή `type` 7 (κάρτα) ή 8 (IRIS) | |:---|:---| | `true` *(default)* | Το παραστατικό εκδίδεται αμέσως (MARK, UID, AuthCode). Δεν επιστρέφεται υπογραφή. Για POS που **δεν** είναι κλειδωμένο. | | `false` | Το παραστατικό **μένει σε αναμονή**, δεν πάει ακόμη στην ΑΑΔΕ. Επιστρέφεται `providerSignature` για το POS. Για **κλειδωμένο** POS. | Αν το παραστατικό δεν έχει πληρωμή 7 ή 8, το `skipSignature` δεν έχει καμία επίδραση. ## Ροή 1: έκδοση και πληρωμή μαζί (ταμείο) ```mermaid sequenceDiagram autonumber participant APP as Ταμείο / ERP participant NP as Novus Provider participant POS as POS / NSP (τράπεζα) participant AADE as ΑΑΔΕ APP->>NP: SendInvoices?skipSignature=false
paymentMethods: type 7, terminalId, posNspId NP-->>APP: providerSignature[].signatures[].token (+ data) APP->>POS: χρέωση με το token POS-->>APP: transactionId, τελικό paymentType (κάρτα ή IRIS) APP->>NP: CompletionPosInvoices [ signatureToken, transactionId, paymentAmount, paymentType ] NP->>AADE: διαβίβαση παραστατικού + πληρωμής NP-->>APP: MARK, UID, AuthCode, invoiceUrl ``` **Προσοχή: Η υπογραφή δεν είναι έκδοση** Με `skipSignature=false`, στο `SendInvoices` ο Πάροχος κάνει μόνο τους δικούς του ελέγχους και επιστρέφει την υπογραφή. Το παραστατικό **διαβιβάζεται στην ΑΑΔΕ μόνο στο `CompletionPosInvoices`**, δηλαδή αφού ο πελάτης έχει πληρώσει. Αν η ΑΑΔΕ το απορρίψει τότε (π.χ. λάθος χαρακτηρισμός, ΦΠΑ ή σύνολα), το παραστατικό **δεν εκδίδεται, ενώ η κάρτα έχει χρεωθεί**. Γι' αυτό, πριν ζητήσετε υπογραφή, πρέπει να είστε σίγουροι ότι το παραστατικό θα περάσει: - Δοκιμάστε στο sandbox, με ολόκληρη τη ροή (υπογραφή και completion), κάθε συνδυασμό τύπου παραστατικού, ΦΠΑ και χαρακτηρισμού που θα στέλνετε με κάρτα. Στην παραγωγή μην ξεφεύγετε από αυτούς. - Ελέγξτε στην εφαρμογή σας, πριν την κλήση, όσα απορρίπτει συχνότερα η ΑΑΔΕ: σύνολα και στρογγυλοποίηση (σφάλματα 207, 208, 312), συνδυασμούς χαρακτηρισμών, κατηγορία ΦΠΑ και απαλλαγές, ΑΦΜ λήπτη, μοναδική σειρά και αριθμό (σφάλμα 228). - Για παραστατικά με κάτι ασυνήθιστο, εκδώστε πρώτα και χρεώστε μετά με τη [Ροή 2](https://developers.novusconceptus.com/el/guides/card-payments/#flow-2-paying-an-earlier-document-on-credit). Αν παρ' όλα αυτά συμβεί, ο πελάτης έχει πληρώσει για παραστατικό που δεν εκδόθηκε. Το πώς τακτοποιείται (επιστροφή χρημάτων, νέα χρέωση, επανέκδοση) είναι λογιστικό θέμα: συμφωνήστε το **εκ των προτέρων** με τον λογιστή του πελάτη σας. **Βήμα 1:** στείλτε το παραστατικό με `skipSignature=false` και, στην πληρωμή, τα `terminalId` και [`posNspId`](https://developers.novusconceptus.com/el/aade/lines-payments/#pos-nsp): ```json "paymentMethods": [ { "type": 7, "amount": 124.00, "terminalId": "TID00001", "posNspId": 1 } ] ``` **Βήμα 2:** η απάντηση έχει την υπογραφή: ```json "providerSignature": [ { "invoiceUid": "5E1F953760F9496F5520A961DA3BE07B30ED07F8", "signatures": [ { "token": "3045022100F0B3EAEAAC535A0C6549B42619C65895...", "data": "5E1F953760F9496F5520A961DA3BE07B30ED07F8;;20260924155441;10000;2400;12400;12400;TID00001", "createdDate": "2026-09-24T12:54:41Z", "expiryDate": "2026-09-25T12:54:41Z", "isExpired": false, "paymentBalance": 124, "issuerVatNumber": "123456789" } ] } ] ``` - **`token`:** το περνάτε **αυτούσιο** στο API του NSP/τράπεζας. Είναι ήδη στη μορφή που θέλει ο NSP (HEX ή BASE64, βάσει του `posNspId`). Μην το μετατρέπετε. - **`data`:** τα δεδομένα που υπογράφηκαν. Μερικοί NSP τα ζητούν μαζί με το token. - **Ισχύς:** 24 ώρες. Για συναλλαγές εστίασης (`specialInvoiceCategory = 12`) η ισχύς είναι 2 ώρες. **Βήμα 3:** χρεώστε στο POS. Ο πελάτης μπορεί να αλλάξει τρόπο (π.χ. από κάρτα σε IRIS). Κρατήστε το `transactionId` και τον τελικό τύπο πληρωμής. **Βήμα 4:** ολοκληρώστε: ```http POST /api/v1/Provider/CompletionPosInvoices ``` ```json [ { "signatureToken": "", "transactionId": "123456788555", "paymentAmount": 124, "tipAmount": 0, "paymentType": 7 } ] ``` | Πεδίο | Υποχρεωτικό | Σημείωση | |:---|:---:|:---| | `signatureToken` | ναι | Το `token` του βήματος 2. | | `transactionId` | ναι | Από το POS/NSP. | | `paymentAmount` | ναι | > 0 και όχι μεγαλύτερο από το `paymentBalance` της υπογραφής. | | `tipAmount` | όχι | Φιλοδώρημα. | | `paymentType` | όχι | Ο **τελικός** τύπος από το POS: 7 ή 8. Αν λείπει, θεωρείται 7. | Η απάντηση έχει την ίδια μορφή με το `SendInvoices`, με MARK, UID, AuthCode και invoiceUrl. ## Ροή 2: πληρωμή παλιού παραστατικού (επί πιστώσει) Το παραστατικό εκδόθηκε νωρίτερα (π.χ. `type: 5`, επί πιστώσει) και τώρα εξοφλείται με κάρτα. 1. `POST /api/v1/Provider/AskSignatureForOldInvoice?terminalId=TID00001&posNspId=1`. Το **body** είναι σκέτο το MARK: `400001930000001`. Η απάντηση επιστρέφει `token`, `data`, `paymentBalance`. 2. Χρέωση στο POS με το token. 3. `POST /api/v1/Provider/CompletionAskSignatureForOldInvoice?signatureToken=…&transactionId=…&paymentAmount=…&tipAmount=0&paymentType=7`. Το **body** είναι πάλι σκέτο το MARK. Λεπτομέρειες: [Other endpoints](https://developers.novusconceptus.com/el/provider-api/other-endpoints/#asksignatureforoldinvoice). ## Αποτυχία, ακύρωση, timeout Στη Ροή 1 (έκδοση και πληρωμή μαζί), μέχρι το `CompletionPosInvoices` το παραστατικό μένει σε αναμονή και **δεν** έχει διαβιβαστεί στην ΑΑΔΕ. Αν η χρέωση στο POS δεν ολοκληρωθεί, ή αποτύχει το completion: | Τι έγινε στο POS | Τι κάνετε | |:---|:---| | Η κάρτα απορρίφθηκε ή η συναλλαγή ακυρώθηκε, και ο πελάτης ξαναδοκιμάζει με κάρτα | Νέα χρέωση με **το ίδιο token**, όσο ισχύει (24 ώρες, 2 ώρες στην εστίαση). Όταν πετύχει, `CompletionPosInvoices`. | | Ο πελάτης πληρώνει τελικά με άλλο τρόπο (π.χ. μετρητά) | Ξαναστέλνετε **το ίδιο παραστατικό, με τον ίδιο αριθμό**, με τον νέο τρόπο πληρωμής. Για την υπογραφή που δεν χρησιμοποιήθηκε δεν καλείτε `CompletionPosInvoices`. | | Timeout: δεν ξέρετε αν έγινε η χρέωση | Ελέγξτε πρώτα στο POS / NSP την κατάσταση της συναλλαγής. Αν χρεώθηκε, `CompletionPosInvoices` με το `transactionId`. Αν όχι, όπως στις δύο πρώτες γραμμές. | | Η χρέωση πέτυχε, αλλά το `CompletionPosInvoices` επέστρεψε σφάλμα της ΑΑΔΕ | Ο πελάτης πλήρωσε, το παραστατικό δεν εκδόθηκε. Το πώς τακτοποιείται είναι λογιστικό θέμα: ακολουθήστε όσα έχετε συμφωνήσει με τον λογιστή του πελάτη σας. Για να μη συμβεί, δείτε την προειδοποίηση στη [Ροή 1](https://developers.novusconceptus.com/el/guides/card-payments/#flow-1-issue-and-pay-together-checkout). | Μην καλείτε `CompletionPosInvoices` χωρίς επιτυχημένη χρέωση: με το completion το παραστατικό διαβιβάζεται ως εξοφλημένο με κάρτα ή IRIS. Στη Ροή 2 το παραστατικό έχει ήδη εκδοθεί. Αν η χρέωση δεν γίνει, δεν καλείτε το completion και το παραστατικό μένει ανεξόφλητο. ## Δοκιμές - Η Novus **δεν** διαθέτει POS ή simulator. Για τη χρέωση χρησιμοποιείτε το δοκιμαστικό περιβάλλον ή το test τερματικό του NSP σας. - Το δοκιμαστικό του Παρόχου επιστρέφει κανονική υπογραφή, στη μορφή που περιμένει ο NSP του `posNspId` ([HEX ή BASE64](https://developers.novusconceptus.com/el/aade/lines-payments/#pos-nsp)). - Χωρίς τερματικό δοκιμάζετε όλη τη ροή από την πλευρά του Παρόχου: στο δοκιμαστικό, το `CompletionPosInvoices` δέχεται και δοκιμαστικό `transactionId`. Είναι έτοιμο στο [Postman](https://developers.novusconceptus.com/el/tools/), φάκελος 4 (4.1 και 4.2). - Η πληρωμή με κάρτα / IRIS δεν πιστοποιείται. Τη δηλώνετε στην [αίτηση πιστοποίησης](https://developers.novusconceptus.com/el/start/go-live/#modules). ## Σφάλματα που θα δείτε | Μήνυμα | Τι σημαίνει | |:---|:---| | `If one of the payment methods requires pos then the Terminal Id (tid) field is required.` | Λείπει το `terminalId` με `skipSignature=false`. | | `If one of the payment methods requires pos then the Pos Nsp Id fields is required.` | Λείπει το `posNspId`. | | `The transactionId field is required.` | Completion χωρίς `transactionId`. | | `One ore more of the tokens is not verified.` | Λάθος ή αλλοιωμένο token. | | `One ore more of the signature token balance is not enough.` | Το `paymentAmount` ξεπερνά το υπόλοιπο της υπογραφής. | | `The paymentType field only accepts values 7 or 8.` | Άλλος τύπος στο completion. | ## Καλό να ξέρετε - Κάθε γραμμή πληρωμής με υπογραφή χρεώνει **0,25 credits** επιπλέον ([Credits](https://developers.novusconceptus.com/el/provider-api/credits/)). - Το ζητούμενο `paymentType` στο `SendInvoices` δεν είναι οριστικό. Το τελικό δηλώνεται στο completion. - Αν τυπώνετε δικό σας παραστατικό, γράψτε το `transactionId` και την υπογραφή που χρησιμοποιήθηκε, για κάθε ποσό ([κανόνες εκτύπωσης](https://developers.novusconceptus.com/el/start/go-live/#kanones-ektyposis)). - Σε μελλοντική έκδοση το `skipSignature` θα καταργηθεί και η υπογραφή θα επιστρέφεται πάντα για τύπους 7/8. ## Ειδικές περιπτώσεις | Περίπτωση | Πώς γίνεται | |:---|:---| | **Πολλά τιμολόγια, ένα χτύπημα κάρτας** | Ένα 8.4 (Απόδειξη Είσπραξης POS) για το συνολικό ποσό, με τα MARK των τιμολογίων που εξοφλούνται στο `invoiceHeader.multipleConnectedMarks`. Μία υπογραφή, μία χρέωση, ένα completion. | | **Προκαταβολή** (π.χ. κράτηση που τιμολογείται αργότερα) | Τη στιγμή της προκαταβολής εκδίδετε 8.4 με `skipSignature=false`. Όταν εκδοθεί το τελικό παραστατικό, βάζετε το MARK του 8.4 στο `multipleConnectedMarks`. | | **Επιστροφή χρημάτων στην κάρτα** | Εκδίδετε το νόμιμο πιστωτικό (π.χ. 11.4) με πληρωμή 7 ή 8 και `skipSignature=false`, όπως στην πώληση. Με την υπογραφή, το τερματικό κάνει την επιστροφή. | | **Mail order, δόσεις, pre-authorization** | Ίδια υπογραφή με την απλή πώληση. Οι διαφορές αφορούν μόνο την επικοινωνία της εφαρμογής σας με το τερματικό. | | **Κωδικός Παρόχου στον NSP** | Η ΑΑΔΕ έχει για τη Novus Conceptus δύο αναγνωριστικά: `provider_id` **005** και `license_id` **105**. Κάθε τράπεζα / NSP ζητά ένα από τα δύο στο δικό της πεδίο (π.χ. `aadeProviderId`). Δοκιμάστε στο δοκιμαστικό του NSP ποιο δέχεται. | | **Viva: ΦΠΑ 2400 στο `data`** | Το πεδίο ΦΠΑ στο `data` της υπογραφής είναι σταθερά `2400`, όποιοι κι αν είναι οι συντελεστές. Δεν επηρεάζει τη χρέωση. Περνάτε `token` και `data` όπως τα παίρνετε. | ## Αποδείξεις POS (8.4 / 8.5) Για επιχειρήσεις που εισπράττουν ή επιστρέφουν ποσά μέσω POS (π.χ. για λογαριασμό τρίτων, με `thirdPartyCollection`). **Παράδειγμα: 11.1 με πληρωμή κάρτας (για skipSignature=false)** [ Λήψη](https://developers.novusconceptus.com/examples/pos/11.1-card-payment.json) ```json { "invoice": [ { "issuer": { "vatNumber": "123456789", "country": "GR", "branch": 0 }, "invoiceHeader": { "series": "A", "aa": "1101", "issueDate": "2026-09-24", "invoiceType": "11.1", "currency": "EUR" }, "paymentMethods": [ { "type": 7, "amount": 124, "terminalId": "TID00001", "posNspId": 1 } ], "invoiceDetails": [ { "lineNumber": 1, "lineCode": "655-000023", "quantity": 1, "measurementUnitLabel": "ΤΜΧ", "lineUnitPrice": 120, "totalNetPriceBeforeDiscount": 120, "totalDiscountValue": 20, "netValue": 100, "vatCategory": 1, "vatCategoryPercent": 24, "vatAmount": 24, "lineDescription": "Αντικατάσταση Λέβητα", "incomeClassification": [ { "classificationType": "E3_561_003", "classificationCategory": "category1_1", "amount": 100 } ] } ], "invoiceSummary": { "totalNetValue": 100, "totalVatAmount": 24, "totalWithheldAmount": 0, "totalFeesAmount": 0, "totalStampDutyAmount": 0, "totalOtherTaxesAmount": 0, "totalDeductionsAmount": 0, "totalGrossValue": 124, "incomeClassification": [ { "classificationType": "E3_561_003", "classificationCategory": "category1_1", "amount": 100 } ] }, "providerAdditionalInvoiceDetails": { "issuer": { "name": "TEST ISSUER ΙΚΕ", "profession": "Εμπόριο ειδών θέρμανσης", "taxoffice": "Α' Αθηνών", "addressStreet": "Οδός Δοκιμής", "addressNumber": "1", "addressPostalCode": "10431", "addressCity": "Αθήνα", "addressCountry": "Ελλάδα", "phone": "2100000000", "email": "info@example.com", "webSite": "www.example.com", "registryNumber": "ΓΕΜΗ: 000000000000", "emtyLine2": "IBAN: GR00 0000 0000 0000 0000 0000 000" }, "additionalDetails": { "documentLabel": "Απόδειξη Λιανικής Πώλησης", "documentLanguageCode": "EL", "documentSizeCode": 1, "documentComments": "Εξόφληση εντός 30 ημερών.", "paymentMethodInvoiceLabel": "Κάρτα" } } } ] } ``` **Παράδειγμα: 8.4 — Απόδειξη Είσπραξης POS** [ Λήψη](https://developers.novusconceptus.com/examples/pos/8.4-pos-collection-receipt.json) ```json { "invoice": [ { "issuer": { "vatNumber": "123456789", "country": "GR", "branch": 0 }, "invoiceHeader": { "series": "A", "aa": "1012", "issueDate": "2026-09-24", "invoiceType": "8.4", "currency": "EUR", "multipleConnectedMarks": [ 400001930000001 ] }, "paymentMethods": [ { "type": 7, "amount": 10, "terminalId": "TID00001", "posNspId": 1 } ], "invoiceDetails": [ { "lineNumber": 1, "lineCode": "#0001", "quantity": 1, "measurementUnitLabel": "LT", "lineUnitPrice": 20, "totalNetPriceBeforeDiscount": 20, "totalDiscountValue": 10, "netValue": 10, "vatCategory": 8, "vatCategoryPercent": 0, "vatAmount": 0, "lineDescription": "Είδος δοκιμής", "incomeClassification": [ { "classificationCategory": "category1_95", "amount": 10 } ] } ], "invoiceSummary": { "totalNetValue": 10, "totalVatAmount": 0, "totalWithheldAmount": 0, "totalFeesAmount": 0, "totalStampDutyAmount": 0, "totalOtherTaxesAmount": 0, "totalDeductionsAmount": 0, "totalGrossValue": 10, "incomeClassification": [ { "classificationCategory": "category1_95", "amount": 10 } ] }, "providerAdditionalInvoiceDetails": { "issuer": { "name": "TEST ISSUER ΙΚΕ", "profession": "Εμπόριο ειδών θέρμανσης", "taxoffice": "Α' Αθηνών", "addressStreet": "Οδός Δοκιμής", "addressNumber": "1", "addressPostalCode": "10431", "addressCity": "Αθήνα", "addressCountry": "Ελλάδα", "phone": "2100000000", "email": "info@example.com", "webSite": "www.example.com", "registryNumber": "ΓΕΜΗ: 000000000000", "emtyLine2": "IBAN: GR00 0000 0000 0000 0000 0000 000" }, "additionalDetails": { "documentLabel": "Απόδειξη Είσπραξης POS", "documentLanguageCode": "EL", "documentSizeCode": 0, "paymentMethodInvoiceLabel": "POS" } } } ] } ``` **Παράδειγμα: 8.5 — Απόδειξη Επιστροφής POS** [ Λήψη](https://developers.novusconceptus.com/examples/pos/8.5-pos-refund-receipt.json) ```json { "invoice": [ { "issuer": { "vatNumber": "123456789", "country": "GR", "branch": 0 }, "invoiceHeader": { "series": "A", "aa": "1013", "issueDate": "2026-09-24", "invoiceType": "8.5", "currency": "EUR" }, "paymentMethods": [ { "type": 7, "amount": 10, "terminalId": "TID00001", "posNspId": 1 } ], "invoiceDetails": [ { "lineNumber": 1, "lineCode": "#0001", "quantity": 1, "measurementUnitLabel": "LT", "lineUnitPrice": 20, "totalNetPriceBeforeDiscount": 20, "totalDiscountValue": 10, "netValue": 10, "vatCategory": 8, "vatCategoryPercent": 0, "vatAmount": 0, "lineDescription": "Είδος δοκιμής", "incomeClassification": [ { "classificationCategory": "category1_95", "amount": 10 } ] } ], "invoiceSummary": { "totalNetValue": 10, "totalVatAmount": 0, "totalWithheldAmount": 0, "totalFeesAmount": 0, "totalStampDutyAmount": 0, "totalOtherTaxesAmount": 0, "totalDeductionsAmount": 0, "totalGrossValue": 10, "incomeClassification": [ { "classificationCategory": "category1_95", "amount": 10 } ] }, "providerAdditionalInvoiceDetails": { "issuer": { "name": "TEST ISSUER ΙΚΕ", "profession": "Εμπόριο ειδών θέρμανσης", "taxoffice": "Α' Αθηνών", "addressStreet": "Οδός Δοκιμής", "addressNumber": "1", "addressPostalCode": "10431", "addressCity": "Αθήνα", "addressCountry": "Ελλάδα", "phone": "2100000000", "email": "info@example.com", "webSite": "www.example.com", "registryNumber": "ΓΕΜΗ: 000000000000", "emtyLine2": "IBAN: GR00 0000 0000 0000 0000 0000 000" }, "additionalDetails": { "documentLabel": "Απόδειξη Επιστροφής POS", "documentLanguageCode": "EL", "documentSizeCode": 0, "paymentMethodInvoiceLabel": "POS" } } } ] } ``` Πηγή: https://developers.novusconceptus.com/el/guides/card-payments/ --- # Εστίαση: Δελτίο Παραγγελίας 8.6 Κάθε παραγγελία σε τραπέζι διαβιβάζεται στο myDATA ως **Δελτίο Παραγγελίας Εστίασης (8.6)**. Όταν ο πελάτης πληρώσει, εκδίδετε την απόδειξη ή το τιμολόγιο που **κλείνει** όλα τα δελτία του τραπεζιού (Α.1138/2020, όπως ισχύει μετά την Α.1170/2023). ```mermaid flowchart LR A["Βήμα 1: Παραγγελία
8.6 (tableAA)"] --> B["Βήμα 2: Ακύρωση είδους
8.6 με recType 7"] B --> C["Βήμα 3: Κλείσιμο τραπεζιού
11.1 με multipleConnectedMarks"] A -. "ή ολική ακύρωση" .-> D["8.6 με totalCancelDeliveryOrders"] ``` **Σημαντικό: Ο κανόνας των 24 ωρών** Κάθε 8.6 πρέπει να κλείσει (με παραστατικό ή με ολική ακύρωση) **μέσα σε 24 ώρες**. Αν μείνει ανοιχτό, ο Πάροχος **μπλοκάρει την έκδοση για όλη την εγκατάσταση**, με HTTP 401 `You don't have the authority to send invoices for this branch becouse you have open table more than 24h.`, μέχρι να κλείσει. Αυτό το προβλέπει ο νόμος. ## 1. Νέα παραγγελία Ένα 8.6 για κάθε παραγγελία. Τα δεδομένα είναι ίδια με μια απόδειξη λιανικής, με αυτές τις διαφορές: | Πεδίο | Τιμή | |:---|:---| | `invoiceHeader.invoiceType` | `"8.6"` | | `invoiceHeader.tableAA` | **GUID του τραπεζιού.** Το ίδιο για όλες τις παραγγελίες του ίδιου τραπεζιού μέχρι να κλείσει. Το δημιουργείτε εσείς. | | `invoiceDetails[].itemDescr` | Η περιγραφή του είδους (πηγαίνει στην ΑΑΔΕ). | | `invoiceDetails[].incomeClassification` | **Μόνο** `category1_95`, χωρίς `classificationType`. | | `paymentMethods` | **Δεν** στέλνεται. | Κρατήστε το **MARK** κάθε 8.6: θα το χρειαστείτε στο κλείσιμο. ## 2. Ακύρωση είδους (μερική) Νέο 8.6 στο **ίδιο** `tableAA`, **μόνο** με τα είδη που ακυρώνονται και `"recType": 7` σε κάθε γραμμή. Τα ποσά γράφονται θετικά. Κρατήστε και αυτό το MARK. ## 3. Κλείσιμο τραπεζιού Εκδίδετε το παραστατικό αξίας: `11.1` ή `1.1` για χρεωστικό, `11.4` ή `5.x` για πιστωτικό. Περιέχει: | Πεδίο | Τιμή | |:---|:---| | `invoiceHeader.multipleConnectedMarks` | **Όλα** τα MARK του τραπεζιού: παραγγελίες **και** ακυρώσεις. | | `invoiceHeader.specialInvoiceCategory` | `12` (Συναλλαγές εστίασης). | | `invoiceDetails` | Ό,τι έμεινε: παραγγελθέντα μείον ακυρωμένα. **Ίδια συνολική ποσότητα και καθαρή αξία** με τα ανοιχτά δελτία. | | `paymentMethods` | Κανονικά. Για κάρτα, δείτε [Πληρωμή με κάρτα / IRIS](https://developers.novusconceptus.com/el/guides/card-payments/). | Ο Πάροχος ελέγχει ότι ποσότητα και αξία συμφωνούν με τα ανοιχτά δελτία. Αν δεν συμφωνούν, το παραστατικό απορρίπτεται πριν φτάσει στην ΑΑΔΕ. **Συμβουλή: Δελτίο που βγήκε Offline (χωρίς MARK);** Βάλτε το UID του στο `multipleConnectedUids`, αντί για MARK στο `multipleConnectedMarks`. Ο Πάροχος κάνει τη μετατροπή. ## Ολική ακύρωση παραγγελίας Ένα 8.6 με: - `totalCancelDeliveryOrders: true`, - `multipleConnectedMarks` με τα MARK που ακυρώνονται, - **μία** γραμμή με μηδενικά ποσά και `vatCategory: 8`. ## Ποια τραπέζια είναι ανοιχτά; | Κλήση | Επιστρέφει | |:---|:---| | GET `/api/v1/Provider/GetOpenTables?VatNumber=…&Branch=0` | Τα `tableAA` με ανοιχτά δελτία | | GET `/api/v1/Provider/GetOpenOrdersForTable?TableId=…&VatNumber=…&Branch=0` | Για κάθε ανοιχτό δελτίο: `mark`, `uid`, `quantityProducts`, `totalNet` | Χρήσιμο στο κλείσιμο ημέρας, για να μην ξεχαστεί κανένα τραπέζι. ## Έτοιμα παραδείγματα: ένα τραπέζι από την αρχή ως το τέλος Χωριάτικη + τζατζίκι + φέτα → ακύρωση της χωριάτικης → πληρωμή τζατζικιού + φέτας. **Παράδειγμα: 1 — Νέα παραγγελία (8.6)** [ Λήψη](https://developers.novusconceptus.com/examples/food/1-new-order-8.6.json) ```json { "invoice": [ { "issuer": { "vatNumber": "123456789", "country": "GR", "branch": 0 }, "invoiceHeader": { "series": "A", "aa": "1018", "issueDate": "2026-09-24", "invoiceType": "8.6", "currency": "EUR", "tableAA": "A98EFBDE-5FBB-4128-BBD8-B6DDA701AB20" }, "invoiceDetails": [ { "lineNumber": 1, "lineCode": "#0131", "itemDescr": "Χωριάτικη", "quantity": 1, "measurementUnit": 1, "measurementUnitLabel": "ΤΜΧ", "lineUnitPrice": 100, "totalNetPriceBeforeDiscount": 100, "totalDiscountValue": 0, "netValue": 100, "vatCategory": 2, "vatCategoryPercent": 13, "vatAmount": 13, "lineDescription": "Χωριάτικη", "incomeClassification": [ { "classificationCategory": "category1_95", "amount": 100 } ] }, { "lineNumber": 2, "lineCode": "#0501", "itemDescr": "ΤΖΑΤΖΙΚΙ", "quantity": 1, "measurementUnit": 1, "measurementUnitLabel": "ΤΜΧ", "lineUnitPrice": 5, "totalNetPriceBeforeDiscount": 5, "totalDiscountValue": 0, "netValue": 5, "vatCategory": 1, "vatCategoryPercent": 24, "vatAmount": 1.2, "lineDescription": "ΤΖΑΤΖΙΚΙ", "incomeClassification": [ { "classificationCategory": "category1_95", "amount": 5 } ] }, { "lineNumber": 3, "lineCode": "#0605", "itemDescr": "ΦΕΤΑ", "quantity": 1, "measurementUnit": 1, "measurementUnitLabel": "ΤΜΧ", "lineUnitPrice": 10, "totalNetPriceBeforeDiscount": 10, "totalDiscountValue": 0, "netValue": 10, "vatCategory": 1, "vatCategoryPercent": 24, "vatAmount": 2.4, "lineDescription": "ΦΕΤΑ", "incomeClassification": [ { "classificationCategory": "category1_95", "amount": 10 } ] } ], "invoiceSummary": { "totalNetValue": 115, "totalVatAmount": 16.6, "totalWithheldAmount": 0, "totalFeesAmount": 0, "totalStampDutyAmount": 0, "totalOtherTaxesAmount": 0, "totalDeductionsAmount": 0, "totalGrossValue": 131.6, "incomeClassification": [ { "classificationCategory": "category1_95", "amount": 115 } ] }, "providerAdditionalInvoiceDetails": { "issuer": { "name": "TEST ISSUER ΙΚΕ", "profession": "Εμπόριο ειδών θέρμανσης", "taxoffice": "Α' Αθηνών", "addressStreet": "Οδός Δοκιμής", "addressNumber": "1", "addressPostalCode": "10431", "addressCity": "Αθήνα", "addressCountry": "Ελλάδα", "phone": "2100000000", "email": "info@example.com", "webSite": "www.example.com", "registryNumber": "ΓΕΜΗ: 000000000000", "emtyLine2": "IBAN: GR00 0000 0000 0000 0000 0000 000" }, "additionalDetails": { "documentLabel": "ΔΕΛΤΙΟ ΠΑΡΑΓΓΕΛΙΑΣ", "documentLanguageCode": "EL", "documentSizeCode": 7, "paymentMethodInvoiceLabel": "Επί πιστώσει" } } } ] } ``` **Παράδειγμα: 2 — Ακύρωση της χωριάτικης (8.6, recType 7)** [ Λήψη](https://developers.novusconceptus.com/examples/food/2-partial-cancellation-8.6.json) ```json { "invoice": [ { "issuer": { "vatNumber": "123456789", "country": "GR", "branch": 0 }, "invoiceHeader": { "series": "A", "aa": "1019", "issueDate": "2026-09-24", "invoiceType": "8.6", "currency": "EUR", "tableAA": "A98EFBDE-5FBB-4128-BBD8-B6DDA701AB20" }, "invoiceDetails": [ { "lineNumber": 1, "lineCode": "#0131", "itemDescr": "Χωριάτικη", "recType": 7, "quantity": 1, "measurementUnit": 1, "measurementUnitLabel": "ΤΜΧ", "lineUnitPrice": 100, "totalNetPriceBeforeDiscount": 100, "totalDiscountValue": 0, "netValue": 100, "vatCategory": 2, "vatCategoryPercent": 13, "vatAmount": 13, "lineDescription": "Χωριάτικη", "incomeClassification": [ { "classificationCategory": "category1_95", "amount": 100 } ] } ], "invoiceSummary": { "totalNetValue": 100, "totalVatAmount": 13, "totalWithheldAmount": 0, "totalFeesAmount": 0, "totalStampDutyAmount": 0, "totalOtherTaxesAmount": 0, "totalDeductionsAmount": 0, "totalGrossValue": 113, "incomeClassification": [ { "classificationCategory": "category1_95", "amount": 100 } ] }, "providerAdditionalInvoiceDetails": { "issuer": { "name": "TEST ISSUER ΙΚΕ", "profession": "Εμπόριο ειδών θέρμανσης", "taxoffice": "Α' Αθηνών", "addressStreet": "Οδός Δοκιμής", "addressNumber": "1", "addressPostalCode": "10431", "addressCity": "Αθήνα", "addressCountry": "Ελλάδα", "phone": "2100000000", "email": "info@example.com", "webSite": "www.example.com", "registryNumber": "ΓΕΜΗ: 000000000000", "emtyLine2": "IBAN: GR00 0000 0000 0000 0000 0000 000" }, "additionalDetails": { "documentLabel": "ΔΕΛΤΙΟ ΠΑΡΑΓΓΕΛΙΑΣ - ΜΕΡΙΚΗ ΑΚΥΡΩΣΗ", "documentLanguageCode": "EL", "documentSizeCode": 7, "paymentMethodInvoiceLabel": "Επί πιστώσει" } } } ] } ``` **Παράδειγμα: 3 — Κλείσιμο τραπεζιού (11.1)** Στο `multipleConnectedMarks` βάλτε τα MARK που πήρατε στα βήματα 1 και 2. [ Λήψη](https://developers.novusconceptus.com/examples/food/3-close-table-11.1.json) ```json { "invoice": [ { "issuer": { "vatNumber": "123456789", "country": "GR", "branch": 0 }, "invoiceHeader": { "series": "A", "aa": "1020", "issueDate": "2026-09-24", "invoiceType": "11.1", "currency": "EUR", "multipleConnectedMarks": [ 400001930000011, 400001930000012 ], "specialInvoiceCategory": 12 }, "paymentMethods": [ { "type": 3, "amount": 18.6 } ], "invoiceDetails": [ { "lineNumber": 1, "lineCode": "#0501", "quantity": 1, "measurementUnit": 1, "measurementUnitLabel": "ΤΜΧ", "lineUnitPrice": 5, "totalNetPriceBeforeDiscount": 5, "totalDiscountValue": 0, "netValue": 5, "vatCategory": 1, "vatCategoryPercent": 24, "vatAmount": 1.2, "lineDescription": "ΤΖΑΤΖΙΚΙ", "incomeClassification": [ { "classificationType": "E3_561_003", "classificationCategory": "category1_3", "amount": 5 } ] }, { "lineNumber": 2, "lineCode": "#0605", "quantity": 1, "measurementUnit": 1, "measurementUnitLabel": "ΤΜΧ", "lineUnitPrice": 10, "totalNetPriceBeforeDiscount": 10, "totalDiscountValue": 0, "netValue": 10, "vatCategory": 1, "vatCategoryPercent": 24, "vatAmount": 2.4, "lineDescription": "ΦΕΤΑ", "incomeClassification": [ { "classificationType": "E3_561_003", "classificationCategory": "category1_3", "amount": 10 } ] } ], "invoiceSummary": { "totalNetValue": 15, "totalVatAmount": 3.6, "totalWithheldAmount": 0, "totalFeesAmount": 0, "totalStampDutyAmount": 0, "totalOtherTaxesAmount": 0, "totalDeductionsAmount": 0, "totalGrossValue": 18.6, "incomeClassification": [ { "classificationType": "E3_561_003", "classificationCategory": "category1_3", "amount": 15 } ] }, "providerAdditionalInvoiceDetails": { "issuer": { "name": "TEST ISSUER ΙΚΕ", "profession": "Εμπόριο ειδών θέρμανσης", "taxoffice": "Α' Αθηνών", "addressStreet": "Οδός Δοκιμής", "addressNumber": "1", "addressPostalCode": "10431", "addressCity": "Αθήνα", "addressCountry": "Ελλάδα", "phone": "2100000000", "email": "info@example.com", "webSite": "www.example.com", "registryNumber": "ΓΕΜΗ: 000000000000", "emtyLine2": "IBAN: GR00 0000 0000 0000 0000 0000 000" }, "additionalDetails": { "documentLabel": "Απόδειξη Λιανικής Πώλησης", "documentLanguageCode": "EL", "documentSizeCode": 7, "paymentMethodInvoiceLabel": "Μετρητά" } } } ] } ``` **Παράδειγμα: Ολική ακύρωση άλλης παραγγελίας (8.6)** [ Λήψη](https://developers.novusconceptus.com/examples/food/4-cancel-whole-order-8.6.json) ```json { "invoice": [ { "issuer": { "vatNumber": "123456789", "country": "GR", "branch": 0 }, "invoiceHeader": { "series": "A", "aa": "1021", "issueDate": "2026-09-24", "invoiceType": "8.6", "currency": "EUR", "multipleConnectedMarks": [ 400001930000013 ], "tableAA": "3C1B2A77-0D4E-4F5B-9C61-2B8E7A9D0F12", "totalCancelDeliveryOrders": true }, "invoiceDetails": [ { "lineNumber": 1, "lineCode": "#0", "itemDescr": "ΚΑΘΟΛΙΚΗ ΑΚΥΡΩΣΗ", "quantity": 1, "measurementUnit": 1, "measurementUnitLabel": "ΤΜΧ", "lineUnitPrice": 0, "totalNetPriceBeforeDiscount": 0, "totalDiscountValue": 0, "netValue": 0, "vatCategory": 8, "vatCategoryPercent": 0, "vatAmount": 0, "lineDescription": "ΚΑΘΟΛΙΚΗ ΑΚΥΡΩΣΗ" } ], "invoiceSummary": { "totalNetValue": 0, "totalVatAmount": 0, "totalWithheldAmount": 0, "totalFeesAmount": 0, "totalStampDutyAmount": 0, "totalOtherTaxesAmount": 0, "totalDeductionsAmount": 0, "totalGrossValue": 0 }, "providerAdditionalInvoiceDetails": { "issuer": { "name": "TEST ISSUER ΙΚΕ", "profession": "Εμπόριο ειδών θέρμανσης", "taxoffice": "Α' Αθηνών", "addressStreet": "Οδός Δοκιμής", "addressNumber": "1", "addressPostalCode": "10431", "addressCity": "Αθήνα", "addressCountry": "Ελλάδα", "phone": "2100000000", "email": "info@example.com", "webSite": "www.example.com", "registryNumber": "ΓΕΜΗ: 000000000000", "emtyLine2": "IBAN: GR00 0000 0000 0000 0000 0000 000" }, "additionalDetails": { "documentLabel": "ΔΕΛΤΙΟ ΠΑΡΑΓΓΕΛΙΑΣ - ΚΑΘΟΛΙΚΗ ΑΚΥΡΩΣΗ", "documentLanguageCode": "EL", "documentSizeCode": 7, "paymentMethodInvoiceLabel": "Επί πιστώσει" } } } ] } ``` Πηγή: https://developers.novusconceptus.com/el/guides/food-service/ --- # Διακίνηση: δελτία αποστολής ## Τρεις τρόποι | Περίπτωση | Τι στέλνετε | Έτοιμο JSON | |:---|:---|:---| | Τιμολόγιο που είναι **και** δελτίο αποστολής | `1.1` (ή `11.1`) με `isDeliveryNote: true` + `otherDeliveryNoteHeader` | [1.1-sales-invoice-delivery-note.json](https://developers.novusconceptus.com/examples/delivery/1.1-sales-invoice-delivery-note.json) | | Σκέτο δελτίο αποστολής | `9.3` χωρίς τρόπο πληρωμής, με αξίες 0 ή πραγματικές | [9.3-delivery-note.json](https://developers.novusconceptus.com/examples/delivery/9.3-delivery-note.json) | | Τιμολόγιο που κλείνει δελτία που στάλθηκαν νωρίτερα | `1.1` με `multipleConnectedMarks` = τα MARK των δελτίων | [1.1-invoice-closing-delivery-notes.json](https://developers.novusconceptus.com/examples/delivery/1.1-invoice-closing-delivery-notes.json) | ## Τα πεδία της διακίνησης | Πεδίο | Τι είναι | |:---|:---| | `invoiceHeader.isDeliveryNote` | `true` όταν το τιμολόγιο είναι και δελτίο. | | `invoiceHeader.movePurpose` | [Σκοπός διακίνησης](https://developers.novusconceptus.com/el/aade/movement/#move-purpose). Οι τιμές 6, 15, 16, 17 και 18 δεν γίνονται πλέον δεκτές. | | `invoiceHeader.otherDeliveryNoteHeader.loadingAddress` / `deliveryAddress` | Διεύθυνση φόρτωσης και παράδοσης (υποχρεωτικές). | | `…startShippingBranch` / `completeShippingBranch` | Εγκατάσταση έναρξης/ολοκλήρωσης, αν διαφέρει. | | `invoiceHeader.dispatchDate`, `dispatchTime`, `vehicleNumber` | Ο **προγραμματισμός** της αποστολής. | | `invoiceDetails[].itemCode`, `itemDescr`, `TaricNo` | Κωδικός και περιγραφή είδους για την ΑΑΔΕ. | | `invoiceDetails[].incomeClassification` | Για το σκέτο 9.3: `category3` (Διακίνηση). | | `additionalDetails.dispatchPlaceFrom` / `dispatchPlaceTo` | Κείμενα για το PDF. | ## Τι άλλαξε με το myDATA 2.0 (Ψηφιακό Δελτίο Αποστολής) - Τα `dispatchDate`, `dispatchTime` και `vehicleNumber` δηλώνουν πλέον **προγραμματισμό**. Τα πραγματικά στοιχεία της μεταφοράς (έναρξη, μεταφόρτωση, παράδοση) τα δηλώνουν ο μεταφορέας και ο λήπτης απευθείας στην ΑΑΔΕ, με τις κλήσεις του Ψηφιακού Δελτίου Αποστολής. Αυτές **δεν** γίνονται μέσω Παρόχου. - Καταργήθηκε το `otherTransportDetails`. Αν το στείλετε, η ΑΑΔΕ επιστρέφει σφάλμα. - Νέοι τύποι: **9.1** (Δελτίο Αποστολής Συσχετιζόμενο), **9.2** (Συγκεντρωτικό), **10.1 / 10.2** (Δελτίο Ποσοτικής Παραλαβής). - Νέα πεδία: | Πεδίο | Πού | Πότε | |:---|:---|:---| | `toWeigh` | header | Είδη «προς ζύγιση». Μόνο σε 9.1, 9.2, 9.3. | | `nonObligatedRecipient` | header | Ο λήπτης δεν συμμετέχει στην ψηφιακή διαδικασία. | | `withoutDigitalTransportTracking` | header | Το δελτίο δεν συμμετέχει στην ψηφιακή παρακολούθηση και ολοκληρώνεται με την έκδοση. | | `receivingNotePurpose` (+ `otherReceivingNotePurposeTitle` για 7) | header | **Υποχρεωτικό** σε 10.1 / 10.2. [Τιμές](https://developers.novusconceptus.com/el/aade/movement/#receiving-note-purpose) | | `movePurposeLine` (+ `otherMovePurposeLineTitle` για 19) | γραμμή | Διαφορετικός σκοπός για μία γραμμή. | | `packingsDeclarations[].Packages[]` | παραστατικό | Συσκευασίες: `packagingType` (1–6), `quantity`. | ```json title="Απόσπασμα: Δελτίο Ποσοτικής Παραλαβής 10.2" "invoiceHeader": { "series": "DPP", "aa": "15", "issueDate": "2026-09-24", "invoiceType": "10.2", "receivingNotePurpose": 6 }, "packingsDeclarations": [ { "Packages": [ { "packagingType": 1, "quantity": 3 } ] } ] ``` ## Ακύρωση δελτίου Ένα δελτίο δεν «διαγράφεται». Ακυρώνεται με ξεχωριστή κλήση, και η ακύρωση παίρνει δικό της MARK (`cancellationMark`): | Κλήση | Για | |:---|:---| | POST `/api/v1/Provider/CancelDeliveryNote` `{ "mark": "…", "entityVatNumber": "…" }` | Δελτία αποστολής (9.x) | | POST `/api/v1/Provider/CancelReceivingNote` `{ "mark": "…", "entityVatNumber": "…" }` | Δελτία ποσοτικής παραλαβής (10.x) | ## Έτοιμα παραδείγματα **Παράδειγμα: 1.1 — Τιμολόγιο Πώλησης - Δελτίο Αποστολής** [ Λήψη](https://developers.novusconceptus.com/examples/delivery/1.1-sales-invoice-delivery-note.json) ```json { "invoice": [ { "issuer": { "vatNumber": "123456789", "country": "GR", "branch": 0 }, "counterpart": { "vatNumber": "987654324", "country": "GR", "branch": 0, "address": { "street": "Οδός Πελάτη", "number": "10", "postalCode": "15772", "city": "Ζωγράφου" } }, "invoiceHeader": { "series": "A", "aa": "1014", "issueDate": "2026-09-24", "invoiceType": "1.1", "currency": "EUR", "dispatchDate": "2026-09-24", "dispatchTime": "10:00:00", "vehicleNumber": "ABC-1234", "movePurpose": 1, "movePurposeLabel": "Πώληση", "isDeliveryNote": true, "otherDeliveryNoteHeader": { "loadingAddress": { "street": "Οδός Αποθήκης", "number": "5", "postalCode": "19300", "city": "Ασπρόπυργος" }, "deliveryAddress": { "street": "Οδός Πελάτη", "number": "10", "postalCode": "15772", "city": "Ζωγράφου" }, "startShippingBranch": 0, "completeShippingBranch": 0 } }, "paymentMethods": [ { "type": 5, "amount": 124 } ], "invoiceDetails": [ { "lineNumber": 1, "lineCode": "655-000023", "itemDescr": "Αντικατάσταση Λέβητα", "quantity": 1, "measurementUnit": 1, "measurementUnitLabel": "ΤΜΧ", "lineUnitPrice": 100, "totalNetPriceBeforeDiscount": 100, "totalDiscountValue": 0, "netValue": 100, "vatCategory": 1, "vatCategoryPercent": 24, "vatAmount": 24, "lineDescription": "Αντικατάσταση Λέβητα", "incomeClassification": [ { "classificationType": "E3_561_001", "classificationCategory": "category1_1", "amount": 100 } ] } ], "invoiceSummary": { "totalNetValue": 100, "totalVatAmount": 24, "totalWithheldAmount": 0, "totalFeesAmount": 0, "totalStampDutyAmount": 0, "totalOtherTaxesAmount": 0, "totalDeductionsAmount": 0, "totalGrossValue": 124, "incomeClassification": [ { "classificationType": "E3_561_001", "classificationCategory": "category1_1", "amount": 100 } ] }, "providerAdditionalInvoiceDetails": { "issuer": { "name": "TEST ISSUER ΙΚΕ", "profession": "Εμπόριο ειδών θέρμανσης", "taxoffice": "Α' Αθηνών", "addressStreet": "Οδός Δοκιμής", "addressNumber": "1", "addressPostalCode": "10431", "addressCity": "Αθήνα", "addressCountry": "Ελλάδα", "phone": "2100000000", "email": "info@example.com", "webSite": "www.example.com", "registryNumber": "ΓΕΜΗ: 000000000000", "emtyLine2": "IBAN: GR00 0000 0000 0000 0000 0000 000" }, "counterpart": { "code": "C-0001", "name": "TEST CLIENT ΑΕ", "profession": "Χονδρικό εμπόριο", "taxoffice": "Ζωγράφου", "addressStreet": "Οδός Πελάτη", "addressNumber": "10", "addressPostalCode": "15772", "addressCity": "Ζωγράφου", "addressCountry": "Ελλάδα", "phone": "2100000001", "email": "client@example.com" }, "additionalDetails": { "documentLabel": "Τιμολόγιο Πώλησης - Δελτίο Αποστολής_Διακίνηση Αγαθών", "documentLanguageCode": "EL", "documentSizeCode": 0, "documentComments": "Εξόφληση εντός 30 ημερών.", "paymentMethodInvoiceLabel": "Επί πιστώσει", "dispatchPlaceFrom": "Οδός Αποθήκης 5, 19300 Ασπρόπυργος", "dispatchPlaceTo": "Οδός Πελάτη 10, 15772 Ζωγράφου" } } } ] } ``` **Παράδειγμα: 11.1 — Απόδειξη Λιανικής - Δελτίο Αποστολής** [ Λήψη](https://developers.novusconceptus.com/examples/delivery/11.1-retail-receipt-delivery-note.json) ```json { "invoice": [ { "issuer": { "vatNumber": "123456789", "country": "GR", "branch": 0 }, "counterpart": { "vatNumber": "987654324", "country": "GR", "branch": 0, "address": { "street": "Οδός Πελάτη", "number": "10", "postalCode": "15772", "city": "Ζωγράφου" } }, "invoiceHeader": { "series": "A", "aa": "1015", "issueDate": "2026-09-24", "invoiceType": "11.1", "currency": "EUR", "dispatchDate": "2026-09-24", "dispatchTime": "10:00:00", "vehicleNumber": "ABC-1234", "movePurpose": 1, "movePurposeLabel": "Πώληση", "isDeliveryNote": true, "otherDeliveryNoteHeader": { "loadingAddress": { "street": "Οδός Αποθήκης", "number": "5", "postalCode": "19300", "city": "Ασπρόπυργος" }, "deliveryAddress": { "street": "Οδός Πελάτη", "number": "10", "postalCode": "15772", "city": "Ζωγράφου" }, "startShippingBranch": 0, "completeShippingBranch": 0 } }, "paymentMethods": [ { "type": 5, "amount": 124 } ], "invoiceDetails": [ { "lineNumber": 1, "lineCode": "655-000023", "itemDescr": "Αντικατάσταση Λέβητα", "quantity": 1, "measurementUnit": 1, "measurementUnitLabel": "ΤΜΧ", "lineUnitPrice": 120, "totalNetPriceBeforeDiscount": 120, "totalDiscountValue": 20, "netValue": 100, "vatCategory": 1, "vatCategoryPercent": 24, "vatAmount": 24, "lineDescription": "Αντικατάσταση Λέβητα", "incomeClassification": [ { "classificationType": "E3_561_003", "classificationCategory": "category1_1", "amount": 100 } ] } ], "invoiceSummary": { "totalNetValue": 100, "totalVatAmount": 24, "totalWithheldAmount": 0, "totalFeesAmount": 0, "totalStampDutyAmount": 0, "totalOtherTaxesAmount": 0, "totalDeductionsAmount": 0, "totalGrossValue": 124, "incomeClassification": [ { "classificationType": "E3_561_003", "classificationCategory": "category1_1", "amount": 100 } ] }, "providerAdditionalInvoiceDetails": { "issuer": { "name": "TEST ISSUER ΙΚΕ", "profession": "Εμπόριο ειδών θέρμανσης", "taxoffice": "Α' Αθηνών", "addressStreet": "Οδός Δοκιμής", "addressNumber": "1", "addressPostalCode": "10431", "addressCity": "Αθήνα", "addressCountry": "Ελλάδα", "phone": "2100000000", "email": "info@example.com", "webSite": "www.example.com", "registryNumber": "ΓΕΜΗ: 000000000000", "emtyLine2": "IBAN: GR00 0000 0000 0000 0000 0000 000" }, "counterpart": { "code": "C-0001", "name": "TEST CLIENT ΑΕ", "profession": "Χονδρικό εμπόριο", "taxoffice": "Ζωγράφου", "addressStreet": "Οδός Πελάτη", "addressNumber": "10", "addressPostalCode": "15772", "addressCity": "Ζωγράφου", "addressCountry": "Ελλάδα", "phone": "2100000001", "email": "client@example.com" }, "additionalDetails": { "documentLabel": "Απόδειξη λιανικής - Δελτίο Αποστολής", "documentLanguageCode": "EL", "documentSizeCode": 0, "documentComments": "Εξόφληση εντός 30 ημερών.", "paymentMethodInvoiceLabel": "Επί πιστώσει" } } } ] } ``` **Παράδειγμα: 9.3 — Δελτίο Αποστολής** [ Λήψη](https://developers.novusconceptus.com/examples/delivery/9.3-delivery-note.json) ```json { "invoice": [ { "issuer": { "vatNumber": "123456789", "country": "GR", "branch": 0 }, "counterpart": { "vatNumber": "987654324", "country": "GR", "branch": 0, "address": { "street": "Οδός Πελάτη", "number": "10", "postalCode": "15772", "city": "Ζωγράφου" } }, "invoiceHeader": { "series": "A", "aa": "1016", "issueDate": "2026-09-24", "invoiceType": "9.3", "dispatchDate": "2026-09-24", "dispatchTime": "18:33:00", "vehicleNumber": "ABC-1234", "otherDeliveryNoteHeader": { "loadingAddress": { "street": "Οδός Αποθήκης", "number": "5", "postalCode": "19300", "city": "Ασπρόπυργος" }, "deliveryAddress": { "street": "Οδός Πελάτη", "number": "10", "postalCode": "15772", "city": "Ζωγράφου" }, "startShippingBranch": 0, "completeShippingBranch": 0 }, "movePurpose": 1, "movePurposeLabel": "Πώληση" }, "invoiceDetails": [ { "lineNumber": 1, "itemDescr": "Είδος δοκιμής", "lineCode": "#0001", "quantity": 1, "measurementUnit": 1, "measurementUnitLabel": "LT", "lineUnitPrice": 0, "totalNetPriceBeforeDiscount": 0, "totalDiscountValue": 0, "netValue": 0, "vatCategory": 8, "vatCategoryPercent": 0, "vatAmount": 0, "lineDescription": "Είδος δοκιμής", "incomeClassification": [ { "classificationCategory": "category3", "amount": 0 } ] } ], "invoiceSummary": { "totalNetValue": 0, "totalVatAmount": 0, "totalWithheldAmount": 0, "totalFeesAmount": 0, "totalStampDutyAmount": 0, "totalOtherTaxesAmount": 0, "totalDeductionsAmount": 0, "totalGrossValue": 0, "incomeClassification": [ { "classificationCategory": "category3", "amount": 0 } ] }, "providerAdditionalInvoiceDetails": { "issuer": { "name": "TEST ISSUER ΙΚΕ", "profession": "Εμπόριο ειδών θέρμανσης", "taxoffice": "Α' Αθηνών", "addressStreet": "Οδός Δοκιμής", "addressNumber": "1", "addressPostalCode": "10431", "addressCity": "Αθήνα", "addressCountry": "Ελλάδα", "phone": "2100000000", "email": "info@example.com", "webSite": "www.example.com", "registryNumber": "ΓΕΜΗ: 000000000000", "emtyLine2": "IBAN: GR00 0000 0000 0000 0000 0000 000" }, "counterpart": { "code": "C-0001", "name": "TEST CLIENT ΑΕ", "profession": "Χονδρικό εμπόριο", "taxoffice": "Ζωγράφου", "addressStreet": "Οδός Πελάτη", "addressNumber": "10", "addressPostalCode": "15772", "addressCity": "Ζωγράφου", "addressCountry": "Ελλάδα", "phone": "2100000001", "email": "client@example.com" }, "additionalDetails": { "documentLabel": "Δελτίο Αποστολής_Διακίνηση Αγαθών", "documentLanguageCode": "EL", "documentSizeCode": 0, "documentComments": "Εξόφληση εντός 30 ημερών.", "paymentMethodInvoiceLabel": "Επί πιστώσει", "dispatchPlaceFrom": "Οδός Αποθήκης 5, 19300 Ασπρόπυργος", "dispatchPlaceTo": "Οδός Πελάτη 10, 15772 Ζωγράφου" } } } ] } ``` **Παράδειγμα: 1.1 — Τιμολόγιο που κλείνει δελτία αποστολής** [ Λήψη](https://developers.novusconceptus.com/examples/delivery/1.1-invoice-closing-delivery-notes.json) ```json { "invoice": [ { "issuer": { "vatNumber": "123456789", "country": "GR", "branch": 0 }, "counterpart": { "vatNumber": "987654324", "country": "GR", "branch": 0, "address": { "street": "Οδός Πελάτη", "number": "10", "postalCode": "15772", "city": "Ζωγράφου" } }, "invoiceHeader": { "series": "A", "aa": "1017", "issueDate": "2026-09-24", "invoiceType": "1.1", "currency": "EUR", "multipleConnectedMarks": [ 400001930000001, 400001930000002 ] }, "paymentMethods": [ { "type": 5, "amount": 124 } ], "invoiceDetails": [ { "lineNumber": 1, "lineCode": "655-000023", "quantity": 1, "measurementUnit": 1, "measurementUnitLabel": "ΤΜΧ", "lineUnitPrice": 120, "totalNetPriceBeforeDiscount": 120, "totalDiscountValue": 20, "netValue": 100, "vatCategory": 1, "vatCategoryPercent": 24, "vatAmount": 24, "lineDescription": "Αντικατάσταση Λέβητα", "incomeClassification": [ { "classificationType": "E3_561_001", "classificationCategory": "category1_1", "amount": 100 } ] } ], "invoiceSummary": { "totalNetValue": 100, "totalVatAmount": 24, "totalWithheldAmount": 0, "totalFeesAmount": 0, "totalStampDutyAmount": 0, "totalOtherTaxesAmount": 0, "totalDeductionsAmount": 0, "totalGrossValue": 124, "incomeClassification": [ { "classificationType": "E3_561_001", "classificationCategory": "category1_1", "amount": 100 } ] }, "providerAdditionalInvoiceDetails": { "issuer": { "name": "TEST ISSUER ΙΚΕ", "profession": "Εμπόριο ειδών θέρμανσης", "taxoffice": "Α' Αθηνών", "addressStreet": "Οδός Δοκιμής", "addressNumber": "1", "addressPostalCode": "10431", "addressCity": "Αθήνα", "addressCountry": "Ελλάδα", "phone": "2100000000", "email": "info@example.com", "webSite": "www.example.com", "registryNumber": "ΓΕΜΗ: 000000000000", "emtyLine2": "IBAN: GR00 0000 0000 0000 0000 0000 000" }, "counterpart": { "code": "C-0001", "name": "TEST CLIENT ΑΕ", "profession": "Χονδρικό εμπόριο", "taxoffice": "Ζωγράφου", "addressStreet": "Οδός Πελάτη", "addressNumber": "10", "addressPostalCode": "15772", "addressCity": "Ζωγράφου", "addressCountry": "Ελλάδα", "phone": "2100000001", "email": "client@example.com" }, "additionalDetails": { "documentLabel": "Τιμολόγιο Πώλησης - Δελτίο Αποστολής", "documentLanguageCode": "EL", "documentSizeCode": 0, "documentComments": "Εξόφληση εντός 30 ημερών.", "paymentMethodInvoiceLabel": "Επί πιστώσει" } } } ] } ``` Πηγή: https://developers.novusconceptus.com/el/guides/delivery/ --- # Δημόσιο (B2G) Ηλεκτρονικό τιμολόγιο προς φορείς του Δημοσίου, κατά το πρότυπο EN 16931. Στέλνετε **το ίδιο JSON** με ένα κανονικό τιμολόγιο, στην κλήση [`SendInvoicesB2G`](https://developers.novusconceptus.com/el/provider-api/send-invoices-b2g/), με τρεις προσθήκες: 1. το μπλοκ `providerB2gAdditionalInvoiceDetails` (σύμβαση, προϋπολογισμός, φορέας), 2. σε κάθε γραμμή: `QuantityUnitsUblCode`, `itemClassificationIdentifiers` (CPV) και `itemCodification`, 3. φόρους και κρατήσεις **μόνο** μέσω `taxesTotals` ([Φόροι](https://developers.novusconceptus.com/el/guides/taxes/)). **Προσοχή: Πριν το πρώτο τιμολόγιο σε έναν φορέα** Ο πελάτης σας επικοινωνεί με τον φορέα και επιβεβαιώνει τα στοιχεία δρομολόγησης: Κωδικό Αναθέτουσας Αρχής, τύπο προϋπολογισμού, ΑΔΑΜ σύμβασης, ΑΔΑ ανάληψης υποχρέωσης. Λάθος στοιχεία σημαίνουν ότι το τιμολόγιο δεν φτάνει στο σωστό σύστημα πληρωμής. ## Κανόνες | Κανόνας | | |:---|:---| | Τύποι | 1.1, 1.6, 2.1, 2.4, 3.1, 3.2, 5.2, 6.1, 6.2, 7.1 | | Τρόπος πληρωμής | Πάντα `type: 5` (Επί πιστώσει) | | Φόροι / κρατήσεις | Μόνο στο `taxesTotals` | | Credits | 1 ανά τιμολόγιο, από ξεχωριστό υπόλοιπο B2G | ## providerB2gAdditionalInvoiceDetails | Πεδίο | EN 16931 | Τι βάζετε | |:---|:---:|:---| | `contractReference` | BT-12 | ΑΔΑΜ της σύμβασης στο ΚΗΜΔΗΣ. `"0"` αν δεν υπάρχει. **Κενό** σε πιστωτικό. | | `purchaseOrderReference` | BT-13 | Αριθμός παραγγελίας του φορέα, αν υπάρχει. | | `buyerReference` | BT-10 | Υπηρεσία του φορέα που παραλαμβάνει. | | `buyerLegalRegistrationIdentifier` | BT-47 | Αναγνωριστικό του αγοραστή. | | `buyerIdentifiers[].buyerIdentifier` | BT-46 | **Δρομολόγηση:** ο Κωδικός Αναθέτουσας Αρχής από το Μητρώο Αναθετόντων (π.χ. `1007.909.0001`). | | `budget.type` | BT-11 | `1` Τακτικός Προϋπολογισμός · `2` ΠΔΕ · `3` λοιποί. | | `budget.identifier` | BT-11 | Για 1 και 3: ΑΔΑ ανάληψης υποχρέωσης. Για 2: Ενάριθμος έργου. **Σε πιστωτικό, για 1 και 3, κενό.** | | `credits[].accountIdentifier` | BT-84 | IBAN του εκδότη. | | `credits[].accountName` | BT-85 | Δικαιούχος του λογαριασμού. | | `credits[].serviceProviderIdentifier` | BT-86 | BIC της τράπεζας. | | `dueDate` | BT-9 | Ημερομηνία πληρωμής (`yyyy-MM-dd`). | | `partyName` | BT-70 | Σε ποιον παραδίδονται τα αγαθά ή οι υπηρεσίες. | | `deliveryDetails` (`street`, `city`, `postalCode`) | BT-75/77/78 | Διεύθυνση παράδοσης. | ## Ανά γραμμή | Πεδίο | EN 16931 | Τι βάζετε | |:---|:---:|:---| | `QuantityUnitsUblCode` | BT-130 | Μονάδα κατά UN/ECE Rec. 20, π.χ. `EA` (τεμάχιο), `KGM`, `LTR`, `HUR`. | | `itemClassificationIdentifiers[]` | BT-158 | Κωδικός CPV: `classificationIdentifier` (π.χ. `15555100-4`), `classificationIdentifierScheme` = `STI`, `classificationIdentifierSchemeVersion` (π.χ. `2008`). | | `itemCodification` | BT-153 | Σύντομη ονομασία είδους. | ## Δοκιμές στο Sandbox Για B2G χρειάζεστε **ξεχωριστό API key δοκιμών**. Ζητήστε το από τη Novus. Στις δοκιμές στέλνετε υποχρεωτικά αυτές τις τιμές: | Πεδίο | Τιμή | |:---|:---| | `issuer.vatNumber` | `177472438` | | `counterpart.vatNumber` | `997875116` | | `buyerIdentifiers[].buyerIdentifier` | `1007.909.0001` | | `invoiceHeader.series` | Ο ΑΦΜ που χρησιμοποιείτε στις δοκιμές σας (στα παραδείγματα `123456789`) | ## Έτοιμα παραδείγματα **Παράδειγμα: 1.1 — Τιμολόγιο Πώλησης** [ Λήψη](https://developers.novusconceptus.com/examples/b2g/1.1-sales-invoice.json) ```json { "invoice": [ { "issuer": { "vatNumber": "177472438", "country": "GR", "branch": 0 }, "counterpart": { "vatNumber": "997875116", "country": "GR", "branch": 0, "address": { "street": "Οδός Πελάτη", "number": "10", "postalCode": "15772", "city": "Ζωγράφου" } }, "invoiceHeader": { "series": "123456789", "aa": "1022", "issueDate": "2026-09-24", "invoiceType": "1.1", "currency": "EUR", "dispatchDate": "2026-09-24", "dispatchTime": "10:00:00", "vehicleNumber": "ABC-1234", "movePurpose": 1, "movePurposeLabel": "Πώληση" }, "paymentMethods": [ { "type": 5, "amount": 124.25 } ], "invoiceDetails": [ { "lineNumber": 1, "lineCode": "655-000023", "QuantityUnitsUblCode": "EA", "quantity": 1, "measurementUnitLabel": "ΤΜΧ", "lineUnitPrice": 120, "totalNetPriceBeforeDiscount": 120, "totalDiscountValue": 20, "netValue": 100, "vatCategory": 1, "vatCategoryPercent": 24, "vatAmount": 24, "lineDescription": "Αντικατάσταση Λέβητα", "incomeClassification": [ { "classificationType": "E3_561_001", "classificationCategory": "category1_1", "amount": 100 } ], "itemClassificationIdentifiers": [ { "classificationIdentifier": "15555100-4", "classificationIdentifierScheme": "STI", "classificationIdentifierSchemeVersion": "2008" } ], "itemCodification": "ΓΙΑ.ΠΡ.ΠΑΡ.ΠΗΛ.950ΓΡ." } ], "taxesTotals": [ { "taxType": 3, "taxCategory": 4, "underlyingValue": 1, "taxAmount": 0.25, "reducesPayable": false, "taxTypeLabel": "ksenodoxeio 4.00" } ], "invoiceSummary": { "totalNetValue": 100, "totalVatAmount": 24, "totalWithheldAmount": 0, "totalFeesAmount": 0, "totalStampDutyAmount": 0, "totalOtherTaxesAmount": 0.25, "totalDeductionsAmount": 0, "totalGrossValue": 124.25, "incomeClassification": [ { "classificationType": "E3_561_001", "classificationCategory": "category1_1", "amount": 100 } ] }, "providerAdditionalInvoiceDetails": { "issuer": { "name": "TEST ISSUER ΙΚΕ", "profession": "Εμπόριο ειδών θέρμανσης", "taxoffice": "Α' Αθηνών", "addressStreet": "Οδός Δοκιμής", "addressNumber": "1", "addressPostalCode": "10431", "addressCity": "Αθήνα", "addressCountry": "Ελλάδα", "phone": "2100000000", "email": "info@example.com", "webSite": "www.example.com", "registryNumber": "ΓΕΜΗ: 000000000000", "emtyLine2": "IBAN: GR00 0000 0000 0000 0000 0000 000" }, "counterpart": { "code": "C-0001", "name": "TEST CLIENT ΑΕ", "profession": "Χονδρικό εμπόριο", "taxoffice": "Ζωγράφου", "addressStreet": "Οδός Πελάτη", "addressNumber": "10", "addressPostalCode": "15772", "addressCity": "Ζωγράφου", "addressCountry": "Ελλάδα", "phone": "2100000001", "email": "client@example.com" }, "additionalDetails": { "documentLabel": "Τιμολόγιο Πώλησης", "documentLanguageCode": "EL", "documentSizeCode": 0, "documentComments": "Εξόφληση εντός 30 ημερών.", "paymentMethodInvoiceLabel": "Επί πιστώσει" } }, "providerB2gAdditionalInvoiceDetails": { "contractReference": "26SYMV000000001", "buyerReference": "ΔΟΚΙΜΑΣΤΙΚΟΣ ΦΟΡΕΑΣ", "buyerLegalRegistrationIdentifier": "123412312", "credits": [ { "accountIdentifier": "GR00 0000 0000 0000 0000 0000 000", "accountName": "TEST ISSUER ΙΚΕ", "serviceProviderIdentifier": "BANKGRAA" } ], "partyName": "ΔΟΚΙΜΑΣΤΙΚΟΣ ΦΟΡΕΑΣ", "dueDate": "2026-10-24", "budget": { "type": 1, "identifier": "123412312" }, "buyerIdentifiers": [ { "buyerIdentifier": "1007.909.0001" } ], "deliveryDetails": { "street": "Οδός Φορέα 1", "city": "Αθήνα", "postalCode": "10431" } } } ] } ``` **Παράδειγμα: 1.1 — με απαλλαγή ΦΠΑ** [ Λήψη](https://developers.novusconceptus.com/examples/b2g/1.1-sales-invoice-vat-exemption.json) ```json { "invoice": [ { "issuer": { "vatNumber": "177472438", "country": "GR", "branch": 0 }, "counterpart": { "vatNumber": "997875116", "country": "GR", "branch": 0, "address": { "street": "Οδός Πελάτη", "number": "10", "postalCode": "15772", "city": "Ζωγράφου" } }, "invoiceHeader": { "series": "123456789", "aa": "1023", "issueDate": "2026-09-24", "invoiceType": "1.1", "currency": "EUR", "dispatchDate": "2026-09-24", "dispatchTime": "10:00:00", "vehicleNumber": "ABC-1234", "movePurpose": 1, "movePurposeLabel": "Πώληση" }, "paymentMethods": [ { "type": 5, "amount": 112 } ], "invoiceDetails": [ { "lineNumber": 1, "lineCode": "655-000023", "QuantityUnitsUblCode": "EA", "quantity": 1, "measurementUnitLabel": "ΤΜΧ", "lineUnitPrice": 50, "totalNetPriceBeforeDiscount": 50, "totalDiscountValue": 0, "netValue": 50, "vatCategory": 7, "vatCategoryPercent": 0, "vatAmount": 0, "vatExemptionCategory": 6, "vatExemptionCategoryLabel": "Χωρίς ΦΠΑ - άρθρο 24 του Κώδικα ΦΠΑ", "lineDescription": "Αντικατάσταση Λέβητα", "incomeClassification": [ { "classificationType": "E3_561_001", "classificationCategory": "category1_1", "amount": 50 } ], "itemClassificationIdentifiers": [ { "classificationIdentifier": "15555100-4", "classificationIdentifierScheme": "STI", "classificationIdentifierSchemeVersion": "2008" } ], "itemCodification": "ΓΙΑ.ΠΡ.ΠΑΡ.ΠΗΛ.950ΓΡ." }, { "lineNumber": 2, "lineCode": "655-000023", "QuantityUnitsUblCode": "EA", "quantity": 1, "measurementUnitLabel": "ΤΜΧ", "lineUnitPrice": 50, "totalNetPriceBeforeDiscount": 50, "totalDiscountValue": 0, "netValue": 50, "vatCategory": 1, "vatCategoryPercent": 24, "vatAmount": 12, "lineDescription": "Αντικατάσταση Λέβητα", "incomeClassification": [ { "classificationType": "E3_561_001", "classificationCategory": "category1_1", "amount": 50 } ], "itemClassificationIdentifiers": [ { "classificationIdentifier": "15555100-4", "classificationIdentifierScheme": "STI", "classificationIdentifierSchemeVersion": "2008" } ], "itemCodification": "ΓΙΑ.ΠΡ.ΠΑΡ.ΠΗΛ.950ΓΡ." } ], "invoiceSummary": { "totalNetValue": 100, "totalVatAmount": 12, "totalWithheldAmount": 0, "totalFeesAmount": 0, "totalStampDutyAmount": 0, "totalOtherTaxesAmount": 0, "totalDeductionsAmount": 0, "totalGrossValue": 112, "incomeClassification": [ { "classificationType": "E3_561_001", "classificationCategory": "category1_1", "amount": 100 } ] }, "providerAdditionalInvoiceDetails": { "issuer": { "name": "TEST ISSUER ΙΚΕ", "profession": "Εμπόριο ειδών θέρμανσης", "taxoffice": "Α' Αθηνών", "addressStreet": "Οδός Δοκιμής", "addressNumber": "1", "addressPostalCode": "10431", "addressCity": "Αθήνα", "addressCountry": "Ελλάδα", "phone": "2100000000", "email": "info@example.com", "webSite": "www.example.com", "registryNumber": "ΓΕΜΗ: 000000000000", "emtyLine2": "IBAN: GR00 0000 0000 0000 0000 0000 000" }, "counterpart": { "code": "C-0001", "name": "TEST CLIENT ΑΕ", "profession": "Χονδρικό εμπόριο", "taxoffice": "Ζωγράφου", "addressStreet": "Οδός Πελάτη", "addressNumber": "10", "addressPostalCode": "15772", "addressCity": "Ζωγράφου", "addressCountry": "Ελλάδα", "phone": "2100000001", "email": "client@example.com" }, "additionalDetails": { "documentLabel": "Τιμολόγιο Πώλησης", "documentLanguageCode": "EL", "documentSizeCode": 0, "documentComments": "Εξόφληση εντός 30 ημερών.", "paymentMethodInvoiceLabel": "Επί πιστώσει" } }, "providerB2gAdditionalInvoiceDetails": { "contractReference": "26SYMV000000001", "buyerReference": "ΔΟΚΙΜΑΣΤΙΚΟΣ ΦΟΡΕΑΣ", "buyerLegalRegistrationIdentifier": "123412312", "credits": [ { "accountIdentifier": "GR00 0000 0000 0000 0000 0000 000", "accountName": "TEST ISSUER ΙΚΕ", "serviceProviderIdentifier": "BANKGRAA" } ], "partyName": "ΔΟΚΙΜΑΣΤΙΚΟΣ ΦΟΡΕΑΣ", "dueDate": "2026-10-24", "budget": { "type": 1, "identifier": "123412312" }, "buyerIdentifiers": [ { "buyerIdentifier": "1007.909.0001" } ], "deliveryDetails": { "street": "Οδός Φορέα 1", "city": "Αθήνα", "postalCode": "10431" } } } ] } ``` **Παράδειγμα: 1.1 — Τιμολόγιο καυσίμων** [ Λήψη](https://developers.novusconceptus.com/examples/b2g/1.1-fuel-invoice.json) ```json { "invoice": [ { "issuer": { "vatNumber": "177472438", "country": "GR", "branch": 0 }, "counterpart": { "vatNumber": "997875116", "country": "GR", "branch": 0, "address": { "street": "Οδός Πελάτη", "number": "10", "postalCode": "15772", "city": "Ζωγράφου" } }, "invoiceHeader": { "series": "123456789", "aa": "1024", "issueDate": "2026-09-24", "invoiceType": "1.1", "currency": "EUR", "dispatchDate": "2026-09-24", "dispatchTime": "10:00:00", "vehicleNumber": "ABC-1234", "movePurpose": 1, "movePurposeLabel": "Πώληση", "fuelInvoice": true }, "paymentMethods": [ { "type": 5, "amount": 124.25 } ], "invoiceDetails": [ { "lineNumber": 1, "lineCode": "655-000023", "QuantityUnitsUblCode": "EA", "quantity": 1, "fuelCode": 40, "measurementUnitLabel": "ΤΜΧ", "lineUnitPrice": 120, "totalNetPriceBeforeDiscount": 120, "totalDiscountValue": 20, "netValue": 100, "vatCategory": 1, "vatCategoryPercent": 24, "vatAmount": 24, "lineDescription": "Αντικατάσταση Λέβητα", "incomeClassification": [ { "classificationType": "E3_561_001", "classificationCategory": "category1_1", "amount": 100 } ], "itemClassificationIdentifiers": [ { "classificationIdentifier": "15555100-4", "classificationIdentifierScheme": "STI", "classificationIdentifierSchemeVersion": "2008" } ], "itemCodification": "ΓΙΑ.ΠΡ.ΠΑΡ.ΠΗΛ.950ΓΡ." } ], "taxesTotals": [ { "taxType": 3, "taxCategory": 4, "underlyingValue": 1, "taxAmount": 0.25, "reducesPayable": false, "taxTypeLabel": "ksenodoxeio 4.00" } ], "invoiceSummary": { "totalNetValue": 100, "totalVatAmount": 24, "totalWithheldAmount": 0, "totalFeesAmount": 0, "totalStampDutyAmount": 0, "totalOtherTaxesAmount": 0.25, "totalDeductionsAmount": 0, "totalGrossValue": 124.25, "incomeClassification": [ { "classificationType": "E3_561_001", "classificationCategory": "category1_1", "amount": 100 } ] }, "providerAdditionalInvoiceDetails": { "issuer": { "name": "TEST ISSUER ΙΚΕ", "profession": "Εμπόριο ειδών θέρμανσης", "taxoffice": "Α' Αθηνών", "addressStreet": "Οδός Δοκιμής", "addressNumber": "1", "addressPostalCode": "10431", "addressCity": "Αθήνα", "addressCountry": "Ελλάδα", "phone": "2100000000", "email": "info@example.com", "webSite": "www.example.com", "registryNumber": "ΓΕΜΗ: 000000000000", "emtyLine2": "IBAN: GR00 0000 0000 0000 0000 0000 000" }, "counterpart": { "code": "C-0001", "name": "TEST CLIENT ΑΕ", "profession": "Χονδρικό εμπόριο", "taxoffice": "Ζωγράφου", "addressStreet": "Οδός Πελάτη", "addressNumber": "10", "addressPostalCode": "15772", "addressCity": "Ζωγράφου", "addressCountry": "Ελλάδα", "phone": "2100000001", "email": "client@example.com" }, "additionalDetails": { "documentLabel": "Τιμολόγιο Πώλησης", "documentLanguageCode": "EL", "documentSizeCode": 0, "documentComments": "Εξόφληση εντός 30 ημερών.", "paymentMethodInvoiceLabel": "Επί πιστώσει" } }, "providerB2gAdditionalInvoiceDetails": { "contractReference": "26SYMV000000001", "buyerReference": "ΔΟΚΙΜΑΣΤΙΚΟΣ ΦΟΡΕΑΣ", "buyerLegalRegistrationIdentifier": "123412312", "credits": [ { "accountIdentifier": "GR00 0000 0000 0000 0000 0000 000", "accountName": "TEST ISSUER ΙΚΕ", "serviceProviderIdentifier": "BANKGRAA" } ], "partyName": "ΔΟΚΙΜΑΣΤΙΚΟΣ ΦΟΡΕΑΣ", "dueDate": "2026-10-24", "budget": { "type": 1, "identifier": "123412312" }, "buyerIdentifiers": [ { "buyerIdentifier": "1007.909.0001" } ], "deliveryDetails": { "street": "Οδός Φορέα 1", "city": "Αθήνα", "postalCode": "10431" } } } ] } ``` **Παράδειγμα: 1.1 — Τιμολόγιο - Δελτίο Αποστολής** [ Λήψη](https://developers.novusconceptus.com/examples/b2g/1.1-sales-invoice-delivery-note.json) ```json { "invoice": [ { "issuer": { "vatNumber": "177472438", "country": "GR", "branch": 0 }, "counterpart": { "vatNumber": "997875116", "country": "GR", "branch": 0, "address": { "street": "Οδός Πελάτη", "number": "10", "postalCode": "15772", "city": "Ζωγράφου" } }, "invoiceHeader": { "series": "123456789", "aa": "1025", "issueDate": "2026-09-24", "invoiceType": "1.1", "currency": "EUR", "dispatchDate": "2026-09-24", "dispatchTime": "10:00:00", "vehicleNumber": "ABC-1234", "movePurpose": 1, "movePurposeLabel": "Πώληση", "isDeliveryNote": true, "otherDeliveryNoteHeader": { "loadingAddress": { "street": "Οδός Αποθήκης", "number": "5", "postalCode": "19300", "city": "Ασπρόπυργος" }, "deliveryAddress": { "street": "Οδός Πελάτη", "number": "10", "postalCode": "15772", "city": "Ζωγράφου" }, "startShippingBranch": 0, "completeShippingBranch": 0 } }, "paymentMethods": [ { "type": 5, "amount": 124.25 } ], "invoiceDetails": [ { "lineNumber": 1, "lineCode": "655-000023", "QuantityUnitsUblCode": "EA", "quantity": 1, "itemDescr": "Αντικατάσταση Λέβητα", "measurementUnit": 1, "measurementUnitLabel": "ΤΜΧ", "lineUnitPrice": 120, "totalNetPriceBeforeDiscount": 120, "totalDiscountValue": 20, "netValue": 100, "vatCategory": 1, "vatCategoryPercent": 24, "vatAmount": 24, "lineDescription": "Αντικατάσταση Λέβητα", "incomeClassification": [ { "classificationType": "E3_561_001", "classificationCategory": "category1_1", "amount": 100 } ], "itemClassificationIdentifiers": [ { "classificationIdentifier": "15555100-4", "classificationIdentifierScheme": "STI", "classificationIdentifierSchemeVersion": "2008" } ], "itemCodification": "ΓΙΑ.ΠΡ.ΠΑΡ.ΠΗΛ.950ΓΡ." } ], "taxesTotals": [ { "taxType": 3, "taxCategory": 4, "underlyingValue": 1, "taxAmount": 0.25, "reducesPayable": false, "taxTypeLabel": "ksenodoxeio 4.00" } ], "invoiceSummary": { "totalNetValue": 100, "totalVatAmount": 24, "totalWithheldAmount": 0, "totalFeesAmount": 0, "totalStampDutyAmount": 0, "totalOtherTaxesAmount": 0.25, "totalDeductionsAmount": 0, "totalGrossValue": 124.25, "incomeClassification": [ { "classificationType": "E3_561_001", "classificationCategory": "category1_1", "amount": 100 } ] }, "providerAdditionalInvoiceDetails": { "issuer": { "name": "TEST ISSUER ΙΚΕ", "profession": "Εμπόριο ειδών θέρμανσης", "taxoffice": "Α' Αθηνών", "addressStreet": "Οδός Δοκιμής", "addressNumber": "1", "addressPostalCode": "10431", "addressCity": "Αθήνα", "addressCountry": "Ελλάδα", "phone": "2100000000", "email": "info@example.com", "webSite": "www.example.com", "registryNumber": "ΓΕΜΗ: 000000000000", "emtyLine2": "IBAN: GR00 0000 0000 0000 0000 0000 000" }, "counterpart": { "code": "C-0001", "name": "TEST CLIENT ΑΕ", "profession": "Χονδρικό εμπόριο", "taxoffice": "Ζωγράφου", "addressStreet": "Οδός Πελάτη", "addressNumber": "10", "addressPostalCode": "15772", "addressCity": "Ζωγράφου", "addressCountry": "Ελλάδα", "phone": "2100000001", "email": "client@example.com" }, "additionalDetails": { "documentLabel": "Τιμολόγιο Πώλησης", "documentLanguageCode": "EL", "documentSizeCode": 0, "documentComments": "Εξόφληση εντός 30 ημερών.", "paymentMethodInvoiceLabel": "Επί πιστώσει", "dispatchPlaceFrom": "Οδός Αποθήκης 5, 19300 Ασπρόπυργος", "dispatchPlaceTo": "Οδός Πελάτη 10, 15772 Ζωγράφου" } }, "providerB2gAdditionalInvoiceDetails": { "contractReference": "26SYMV000000001", "buyerReference": "ΔΟΚΙΜΑΣΤΙΚΟΣ ΦΟΡΕΑΣ", "buyerLegalRegistrationIdentifier": "123412312", "credits": [ { "accountIdentifier": "GR00 0000 0000 0000 0000 0000 000", "accountName": "TEST ISSUER ΙΚΕ", "serviceProviderIdentifier": "BANKGRAA" } ], "partyName": "ΔΟΚΙΜΑΣΤΙΚΟΣ ΦΟΡΕΑΣ", "dueDate": "2026-10-24", "budget": { "type": 1, "identifier": "123412312" }, "buyerIdentifiers": [ { "buyerIdentifier": "1007.909.0001" } ], "deliveryDetails": { "street": "Οδός Φορέα 1", "city": "Αθήνα", "postalCode": "10431" } } } ] } ``` **Παράδειγμα: 2.1 — Τιμολόγιο Παροχής Υπηρεσιών** [ Λήψη](https://developers.novusconceptus.com/examples/b2g/2.1-service-invoice.json) ```json { "invoice": [ { "issuer": { "vatNumber": "177472438", "country": "GR", "branch": 0 }, "counterpart": { "vatNumber": "997875116", "country": "GR", "branch": 0, "address": { "street": "Οδός Πελάτη", "number": "10", "postalCode": "15772", "city": "Ζωγράφου" } }, "invoiceHeader": { "series": "123456789", "aa": "1026", "issueDate": "2026-09-24", "invoiceType": "2.1", "currency": "EUR" }, "paymentMethods": [ { "type": 5, "amount": 124.25 } ], "invoiceDetails": [ { "lineNumber": 1, "lineCode": "655-000023", "QuantityUnitsUblCode": "EA", "quantity": 1, "measurementUnitLabel": "ΤΜΧ", "lineUnitPrice": 120, "totalNetPriceBeforeDiscount": 120, "totalDiscountValue": 20, "netValue": 100, "vatCategory": 1, "vatCategoryPercent": 24, "vatAmount": 24, "lineDescription": "Αντικατάσταση Λέβητα", "incomeClassification": [ { "classificationType": "E3_561_001", "classificationCategory": "category1_3", "amount": 100 } ], "itemClassificationIdentifiers": [ { "classificationIdentifier": "15555100-4", "classificationIdentifierScheme": "STI", "classificationIdentifierSchemeVersion": "2008" } ], "itemCodification": "ΓΙΑ.ΠΡ.ΠΑΡ.ΠΗΛ.950ΓΡ." } ], "taxesTotals": [ { "taxType": 3, "taxCategory": 4, "underlyingValue": 1, "taxAmount": 0.25, "reducesPayable": false, "taxTypeLabel": "ksenodoxeio 4.00" } ], "invoiceSummary": { "totalNetValue": 100, "totalVatAmount": 24, "totalWithheldAmount": 0, "totalFeesAmount": 0, "totalStampDutyAmount": 0, "totalOtherTaxesAmount": 0.25, "totalDeductionsAmount": 0, "totalGrossValue": 124.25, "incomeClassification": [ { "classificationType": "E3_561_001", "classificationCategory": "category1_3", "amount": 100 } ] }, "providerAdditionalInvoiceDetails": { "issuer": { "name": "TEST ISSUER ΙΚΕ", "profession": "Εμπόριο ειδών θέρμανσης", "taxoffice": "Α' Αθηνών", "addressStreet": "Οδός Δοκιμής", "addressNumber": "1", "addressPostalCode": "10431", "addressCity": "Αθήνα", "addressCountry": "Ελλάδα", "phone": "2100000000", "email": "info@example.com", "webSite": "www.example.com", "registryNumber": "ΓΕΜΗ: 000000000000", "emtyLine2": "IBAN: GR00 0000 0000 0000 0000 0000 000" }, "counterpart": { "code": "C-0001", "name": "TEST CLIENT ΑΕ", "profession": "Χονδρικό εμπόριο", "taxoffice": "Ζωγράφου", "addressStreet": "Οδός Πελάτη", "addressNumber": "10", "addressPostalCode": "15772", "addressCity": "Ζωγράφου", "addressCountry": "Ελλάδα", "phone": "2100000001", "email": "client@example.com" }, "additionalDetails": { "documentLabel": "Τιμολόγιο Πώλησης", "documentLanguageCode": "EL", "documentSizeCode": 0, "documentComments": "Εξόφληση εντός 30 ημερών.", "paymentMethodInvoiceLabel": "Επί πιστώσει" } }, "providerB2gAdditionalInvoiceDetails": { "contractReference": "26SYMV000000001", "buyerReference": "ΔΟΚΙΜΑΣΤΙΚΟΣ ΦΟΡΕΑΣ", "buyerLegalRegistrationIdentifier": "123412312", "credits": [ { "accountIdentifier": "GR00 0000 0000 0000 0000 0000 000", "accountName": "TEST ISSUER ΙΚΕ", "serviceProviderIdentifier": "BANKGRAA" } ], "partyName": "ΔΟΚΙΜΑΣΤΙΚΟΣ ΦΟΡΕΑΣ", "dueDate": "2026-10-24", "budget": { "type": 1, "identifier": "123412312" }, "buyerIdentifiers": [ { "buyerIdentifier": "1007.909.0001" } ], "deliveryDetails": { "street": "Οδός Φορέα 1", "city": "Αθήνα", "postalCode": "10431" } } } ] } ``` **Παράδειγμα: 5.2 — Πιστωτικό** [ Λήψη](https://developers.novusconceptus.com/examples/b2g/5.2-credit-invoice.json) ```json { "invoice": [ { "issuer": { "vatNumber": "177472438", "country": "GR", "branch": 0 }, "counterpart": { "vatNumber": "997875116", "country": "GR", "branch": 0, "address": { "street": "Οδός Πελάτη", "number": "10", "postalCode": "15772", "city": "Ζωγράφου" } }, "invoiceHeader": { "series": "123456789", "aa": "1027", "issueDate": "2026-09-24", "invoiceType": "5.2", "currency": "EUR" }, "paymentMethods": [ { "type": 5, "amount": 124.25 } ], "invoiceDetails": [ { "lineNumber": 1, "lineCode": "655-000023", "QuantityUnitsUblCode": "EA", "quantity": 1, "measurementUnitLabel": "ΤΜΧ", "lineUnitPrice": 120, "totalNetPriceBeforeDiscount": 120, "totalDiscountValue": 20, "netValue": 100, "vatCategory": 1, "vatCategoryPercent": 24, "vatAmount": 24, "lineDescription": "Αντικατάσταση Λέβητα", "incomeClassification": [ { "classificationType": "E3_561_001", "classificationCategory": "category1_3", "amount": 100 } ], "itemClassificationIdentifiers": [ { "classificationIdentifier": "15555100-4", "classificationIdentifierScheme": "STI", "classificationIdentifierSchemeVersion": "2008" } ], "itemCodification": "ΓΙΑ.ΠΡ.ΠΑΡ.ΠΗΛ.950ΓΡ." } ], "taxesTotals": [ { "taxType": 3, "taxCategory": 4, "underlyingValue": 1, "taxAmount": 0.25, "reducesPayable": false, "taxTypeLabel": "ksenodoxeio 4.00" } ], "invoiceSummary": { "totalNetValue": 100, "totalVatAmount": 24, "totalWithheldAmount": 0, "totalFeesAmount": 0, "totalStampDutyAmount": 0, "totalOtherTaxesAmount": 0.25, "totalDeductionsAmount": 0, "totalGrossValue": 124.25, "incomeClassification": [ { "classificationType": "E3_561_001", "classificationCategory": "category1_3", "amount": 100 } ] }, "providerAdditionalInvoiceDetails": { "issuer": { "name": "TEST ISSUER ΙΚΕ", "profession": "Εμπόριο ειδών θέρμανσης", "taxoffice": "Α' Αθηνών", "addressStreet": "Οδός Δοκιμής", "addressNumber": "1", "addressPostalCode": "10431", "addressCity": "Αθήνα", "addressCountry": "Ελλάδα", "phone": "2100000000", "email": "info@example.com", "webSite": "www.example.com", "registryNumber": "ΓΕΜΗ: 000000000000", "emtyLine2": "IBAN: GR00 0000 0000 0000 0000 0000 000" }, "counterpart": { "code": "C-0001", "name": "TEST CLIENT ΑΕ", "profession": "Χονδρικό εμπόριο", "taxoffice": "Ζωγράφου", "addressStreet": "Οδός Πελάτη", "addressNumber": "10", "addressPostalCode": "15772", "addressCity": "Ζωγράφου", "addressCountry": "Ελλάδα", "phone": "2100000001", "email": "client@example.com" }, "additionalDetails": { "documentLabel": "Τιμολόγιο Πώλησης", "documentLanguageCode": "EL", "documentSizeCode": 0, "documentComments": "Εξόφληση εντός 30 ημερών.", "paymentMethodInvoiceLabel": "Επί πιστώσει" } }, "providerB2gAdditionalInvoiceDetails": { "contractReference": "", "buyerReference": "ΔΟΚΙΜΑΣΤΙΚΟΣ ΦΟΡΕΑΣ", "buyerLegalRegistrationIdentifier": "123412312", "credits": [ { "accountIdentifier": "GR00 0000 0000 0000 0000 0000 000", "accountName": "TEST ISSUER ΙΚΕ", "serviceProviderIdentifier": "BANKGRAA" } ], "partyName": "ΔΟΚΙΜΑΣΤΙΚΟΣ ΦΟΡΕΑΣ", "dueDate": "2026-10-24", "budget": { "type": 1, "identifier": "" }, "buyerIdentifiers": [ { "buyerIdentifier": "1007.909.0001" } ], "deliveryDetails": { "street": "Οδός Φορέα 1", "city": "Αθήνα", "postalCode": "10431" } } } ] } ``` Πηγή: https://developers.novusconceptus.com/el/guides/b2g/ --- # OSS: πωλήσεις σε ιδιώτες στην ΕΕ Από 1/7/2021, όταν μια επιχείρηση ενταγμένη στο **One Stop Shop (OSS)** πουλά εξ αποστάσεως (e-shop) σε **ιδιώτη** άλλου κράτους-μέλους, χρεώνει τον ΦΠΑ της χώρας του πελάτη και τον αποδίδει μέσω της δήλωσης OSS. Στο myDATA **δεν** πηγαίνει ως ελληνικός ΦΠΑ. | Ισχύει για | Δεν ισχύει για | |:---|:---| | B2C πώληση σε ιδιώτη άλλης χώρας της ΕΕ | B2B με έγκυρο ΑΦΜ VIES | | Εξ αποστάσεως (π.χ. e-shop) | Πωλήσεις μέσα στην Ελλάδα | | Επιχείρηση εγγεγραμμένη στο OSS | Εξαγωγές εκτός ΕΕ | ## Πώς το στέλνετε Συνήθως με **11.1** (ΑΛΠ) και **δύο γραμμές**. Και οι δύο έχουν `vatCategory: 7` (0%) και `vatExemptionCategory: 30` (άρθρο 57, OSS ενωσιακό καθεστώς). | | Γραμμή 1: καθαρή αξία | Γραμμή 2: ΦΠΑ της χώρας του πελάτη | |:---|:---|:---| | `netValue` | Η καθαρή αξία της πώλησης | Το ποσό του ξένου ΦΠΑ | | `vatCategory` / `vatExemptionCategory` | `7` / `30` | `7` / `30` | | `incomeClassification` | `E3_561_007` + `category1_1` | Μόνο `category1_95` (πληροφοριακό) | | Εκτύπωση | π.χ. «Πώληση εμπορεύματος» | π.χ. «ΦΠΑ Γερμανίας 19%» | Έτσι ο πελάτης βλέπει στην απόδειξη τον ΦΠΑ της χώρας του, και στο myDATA το έσοδο καταγράφεται σωστά χωρίς ελληνικό ΦΠΑ. **Σημείωση: Τον ξένο ΦΠΑ τον υπολογίζει η εφαρμογή σας** Οι συντελεστές ανά χώρα αλλάζουν, π.χ. Γερμανία 19%, Γαλλία 20%, Ιταλία 22%, Ισπανία/Ολλανδία/Βέλγιο 21%. Ελέγχετε τακτικά τους ισχύοντες. Ο Πάροχος προωθεί τα ποσά όπως τα λαμβάνει. **Παράδειγμα: 11.1 — ΑΛΠ OSS (πελάτης στη Γερμανία, 100 € + 19%)** [ Λήψη](https://developers.novusconceptus.com/examples/oss/11.1-oss-retail-receipt.json) ```json { "invoice": [ { "issuer": { "vatNumber": "123456789", "country": "GR", "branch": 0 }, "invoiceHeader": { "series": "A", "aa": "1028", "issueDate": "2026-09-24", "invoiceType": "11.1", "currency": "EUR" }, "paymentMethods": [ { "type": 1, "amount": 119 } ], "invoiceDetails": [ { "lineNumber": 1, "quantity": 1, "measurementUnitLabel": "ΤΜΧ", "lineUnitPrice": 100, "totalNetPriceBeforeDiscount": 100, "totalDiscountValue": 0, "netValue": 100, "vatCategory": 7, "vatCategoryPercent": 0, "vatAmount": 0, "vatExemptionCategory": 30, "vatExemptionCategoryLabel": "Χωρίς ΦΠΑ – άρθρο 57(πρώην 47γ)του Κώδικα ΦΠΑ (OSS_ενωσιακό καθεστώς", "lineDescription": "ΠΩΛΗΣΗ ΕΜΠΟΡΕΥΜΑΤΟΣ", "incomeClassification": [ { "classificationType": "E3_561_007", "classificationCategory": "category1_1", "amount": 100 } ] }, { "lineNumber": 2, "quantity": 1, "measurementUnitLabel": "ΤΜΧ", "lineUnitPrice": 19, "totalNetPriceBeforeDiscount": 19, "totalDiscountValue": 0, "netValue": 19, "vatCategory": 7, "vatCategoryPercent": 0, "vatAmount": 0, "vatExemptionCategory": 30, "vatExemptionCategoryLabel": "Χωρίς ΦΠΑ – άρθρο 57(πρώην 47γ)του Κώδικα ΦΠΑ (OSS_ενωσιακό καθεστώς", "lineDescription": "ΦΠΑ ΕΜΠΟΡΕΥΜΑΤΟΣ", "incomeClassification": [ { "classificationCategory": "category1_95", "amount": 19 } ] } ], "invoiceSummary": { "totalNetValue": 119, "totalVatAmount": 0, "totalWithheldAmount": 0, "totalFeesAmount": 0, "totalStampDutyAmount": 0, "totalOtherTaxesAmount": 0, "totalDeductionsAmount": 0, "totalGrossValue": 119, "incomeClassification": [ { "classificationType": "E3_561_007", "classificationCategory": "category1_1", "amount": 100 }, { "classificationCategory": "category1_95", "amount": 19 } ] }, "providerAdditionalInvoiceDetails": { "issuer": { "name": "TEST ISSUER ΙΚΕ", "profession": "Εμπόριο ειδών θέρμανσης", "taxoffice": "Α' Αθηνών", "addressStreet": "Οδός Δοκιμής", "addressNumber": "1", "addressPostalCode": "10431", "addressCity": "Αθήνα", "addressCountry": "Ελλάδα", "phone": "2100000000", "email": "info@example.com", "webSite": "www.example.com", "registryNumber": "ΓΕΜΗ: 000000000000", "emtyLine2": "IBAN: GR00 0000 0000 0000 0000 0000 000" }, "additionalDetails": { "documentLabel": "Απόδειξη Λιανικής Πώλησης - OSS", "documentLanguageCode": "EL", "documentSizeCode": 0, "paymentMethodInvoiceLabel": "Κατάθεση στην τράπεζα" } } } ] } ``` Πηγή: https://developers.novusconceptus.com/el/guides/oss/ --- # Offline & επαναλήψεις Ο νόμος απαιτεί κάθε παραστατικό να φτάνει στην ΑΑΔΕ σε πραγματικό χρόνο. Όταν κάτι πέσει, η διαδικασία εξαρτάται από το **ποια** σύνδεση χάθηκε. ## Α. Δεν μπορείτε να φτάσετε τον Πάροχο **Πώς το καταλαβαίνετε:** timeout, σφάλμα δικτύου ή HTTP 5xx στο `SendInvoices`. 1. Περιμένετε λίγο (π.χ. 30 δευτερόλεπτα, μετά 1 λεπτό κ.ο.κ.), **όχι** άμεσο retry. Αν μπορείτε, ελέγξτε πρώτα με [`RequestTransmittedDocs`](https://developers.novusconceptus.com/el/provider-api/other-endpoints/#requesttransmitteddocs) (σειρά/ΑΑ ή UID) αν το παραστατικό υπάρχει ήδη. 2. **Ξαναστείλτε το ίδιο** (ίδια σειρά, ΑΑ, ημερομηνία). Αν πάρετε σφάλμα ΑΑΔΕ **228** («already sent»), η πρώτη προσπάθεια **είχε πετύχει**. Το MARK και το AuthCode είναι μέσα στο μήνυμα. 3. Αν ο Πάροχος παραμένει απρόσιτος, εκδώστε το παραστατικό τοπικά και δώστε το στον πελάτη. 4. Μόλις επανέλθει η σύνδεση, και **μέσα σε 1 ημέρα** από το `issueDate`, στείλτε το με **`"transmissionFailure": 1`** και την αρχική ημερομηνία. 5. Ο Πάροχος προσθέτει στο PDF την ένδειξη **«Απώλεια Διασύνδεσης Οντότητας - Παρόχου - Transmission Failure_1»**. ## Β. Ο Πάροχος δεν μπορεί να φτάσει την ΑΑΔΕ **Πώς το καταλαβαίνετε:** HTTP 200 με `statusCode = "Offline"`, `invoiceMark = 0` και κενό `authenticationCode`. 1. **Μην το ξαναστείλετε.** Το παραστατικό έχει εκδοθεί με UID. Παίρνετε PDF με την ένδειξη **«Απώλεια Διασύνδεσης Παρόχου - ΑΑΔΕ - Transmission Failure_2»**. 2. Μόλις η ΑΑΔΕ επανέλθει, ο Πάροχος το διαβιβάζει αυτόματα και φτιάχνει **δεύτερο PDF** με MARK και AuthCode. 3. Για να πάρετε το τελικό MARK και PDF: [`RequestTransmittedDocs`](https://developers.novusconceptus.com/el/provider-api/other-endpoints/#requesttransmitteddocs) με `uid=`. 4. **Ελέγξτε ότι πήρε MARK**, όπως παρακάτω. ### Ελέγξτε ότι πήρε MARK Όσο η ΑΑΔΕ δεν απαντά, ο Πάροχος κάνει μόνο τους δικούς του ελέγχους. Τους ελέγχους της ΑΑΔΕ το παραστατικό τους περνά όταν διαβιβαστεί, οπότε ένα παραστατικό `Offline` με λάθος στα δεδομένα μπορεί να μη γίνει δεκτό. Γι' αυτό ελέγχετε κάθε `Offline` με [`RequestTransmittedDocs`](https://developers.novusconceptus.com/el/provider-api/other-endpoints/#requesttransmitteddocs) και `uid=`: | Τι βλέπετε | Τι σημαίνει | |:---|:---| | Μία εγγραφή, με `mark` 0 | Δεν έχει διαβιβαστεί ακόμη. Ξαναελέγξτε αργότερα. | | Δύο εγγραφές: μία με `mark` 0 και μία με το MARK της ΑΑΔΕ | Διαβιβάστηκε. Κρατήστε το MARK, το Authentication Code και το νέο PDF της δεύτερης εγγραφής. | | Μετά από 24 ώρες, πάλι μόνο η εγγραφή με `mark` 0 | Πιθανότατα η ΑΑΔΕ δεν το δέχτηκε λόγω λάθους στα δεδομένα. Επικοινωνήστε μαζί μας με το `invoiceUid`. | ## Πότε ξαναστέλνω; | Τι πήρατε | Ξαναστέλνω; | Πώς | |:---|:---:|:---| | `Success` | όχι | Τελείωσε. | | `Offline` | **ποτέ** | Ο Πάροχος το αναλαμβάνει. Ελέγξτε ότι πήρε MARK ([πώς](https://developers.novusconceptus.com/el/guides/offline/#check-offline)). | | HTTP 400 / `ValidationError` / `XMLSyntaxError` | ναι, αφού διορθώσετε | Το παραστατικό **δεν** εκδόθηκε, οπότε μπορείτε να κρατήσετε ίδια σειρά/ΑΑ. | | `TechnicalError` | ναι | Ίδια δεδομένα, μετά από λίγο. | | Timeout / 5xx | ναι | Ίδια δεδομένα. Το σφάλμα 228 σημαίνει ότι είχε ήδη εκδοθεί. Αν δεν επανέλθει, ακολουθήστε το Α. | Όλοι οι κωδικοί: [Errors & statusCode](https://developers.novusconceptus.com/el/provider-api/errors/) · [Κωδικοί σφαλμάτων ΑΑΔΕ](https://developers.novusconceptus.com/el/provider-api/aade-errors/). Πηγή: https://developers.novusconceptus.com/el/guides/offline/ --- # Provider API Έκδοση παραστατικών και διαβίβαση στο myDATA της ΑΑΔΕ (2.0.2). Όλες οι κλήσεις θέλουν το header `API-KEY`, εκτός από τα δημόσια links των εγγράφων. | | | |:---|:---| | **Base URL** | Δοκιμαστικό `https://provider-dev.timologisi.online` · Παραγωγή `https://provider.timologisi.online` | | **Αυθεντικοποίηση** | Header `API-KEY: <το κλειδί σας>`, διαφορετικό κλειδί ανά περιβάλλον. Δείτε [Λογαριασμός & API key](https://developers.novusconceptus.com/el/start/account/). | | **Μορφή** | JSON (`Content-Type: application/json`), UTF-8. Στα ονόματα των πεδίων δεν μετράνε τα κεφαλαία / πεζά. | | **Αρχεία** | [OpenAPI (YAML)](https://developers.novusconceptus.com/openapi/novus-provider-api.openapi.yaml) · [Postman](https://developers.novusconceptus.com/postman/Novus_Provider_API.postman_collection.json) | ## Οι κλήσεις | | Endpoint | Τι κάνει | |:---|:---|:---| | POST | [`/api/v1/Provider/SendInvoices`](https://developers.novusconceptus.com/el/provider-api/send-invoices/) | Έκδοση και διαβίβαση παραστατικού. Μόνο τύποι 1.1 – 11.5· οι 12.x – 17.x δεν διαβιβάζονται από Πάροχο. | | POST | [`/api/v1/Provider/SendInvoicesB2G`](https://developers.novusconceptus.com/el/provider-api/send-invoices-b2g/) | Ηλεκτρονικό τιμολόγιο προς φορέα του Δημοσίου (EN 16931). | | GET | [`/api/v1/Provider/RequestTransmittedDocs`](https://developers.novusconceptus.com/el/provider-api/other-endpoints/#requesttransmitteddocs) | Αναζήτηση στα παραστατικά που εκδώσατε. | | POST | [`/api/v1/Provider/CancelDeliveryNote`](https://developers.novusconceptus.com/el/provider-api/other-endpoints/#canceldeliverynote) | Ακύρωση δελτίου αποστολής (9.x). | | POST | [`/api/v1/Provider/CancelReceivingNote`](https://developers.novusconceptus.com/el/provider-api/other-endpoints/#cancelreceivingnote) | Ακύρωση δελτίου ποσοτικής παραλαβής (10.x). | | GET | [`/api/v1/Provider/GetCreditsBalance`](https://developers.novusconceptus.com/el/provider-api/other-endpoints/#getcreditsbalance) | Το υπόλοιπο credits. | | GET | [`/api/v1/Provider/GetInvoicePdf/{fileName}`](https://developers.novusconceptus.com/el/provider-api/other-endpoints/#getinvoicepdf) | Το PDF πίσω από το `invoiceUrl` (δημόσιο). | | GET | [`/api/v1/Provider/GetInvoice/{uid}/{fileType}`](https://developers.novusconceptus.com/el/provider-api/other-endpoints/#getinvoice) | Το παραστατικό με UID, σε `pdf` ή `myDATA` (δημόσιο, το `downloadingInvoiceUrl`). | | GET | [`/api/v1/Provider/GetInvoicePdfByAuthenticationCode/{code}`](https://developers.novusconceptus.com/el/provider-api/other-endpoints/#getinvoicepdfbyauthenticationcode) | Το PDF με Authentication Code (δημόσιο). | | POST | [`/api/v1/Provider/CompletionPosInvoices`](https://developers.novusconceptus.com/el/provider-api/other-endpoints/#completionposinvoices) | Ολοκλήρωση μετά τη χρέωση στο POS. | | POST | [`/api/v1/Provider/AskSignatureForOldInvoice`](https://developers.novusconceptus.com/el/provider-api/other-endpoints/#asksignatureforoldinvoice) | Υπογραφή Παρόχου για να εξοφληθεί μέσω POS ένα ήδη εκδομένο παραστατικό. | | POST | [`/api/v1/Provider/CompletionAskSignatureForOldInvoice`](https://developers.novusconceptus.com/el/provider-api/other-endpoints/#completionasksignatureforoldinvoice) | Ολοκλήρωση αυτής της πληρωμής. | | GET | [`/api/v1/Provider/GetOpenTables`](https://developers.novusconceptus.com/el/provider-api/other-endpoints/#getopentables) | Τραπέζια με ανοιχτά δελτία 8.6. | | GET | [`/api/v1/Provider/GetOpenOrdersForTable`](https://developers.novusconceptus.com/el/provider-api/other-endpoints/#getopenordersfortable) | Τα ανοιχτά δελτία ενός τραπεζιού. | Για να προσθέσετε νέο πελάτη (ΑΦΜ) στο κλειδί σας, χρησιμοποιήστε το [Onboarding API](https://developers.novusconceptus.com/el/onboarding-api/). Πηγή: https://developers.novusconceptus.com/el/provider-api/ --- # SendInvoices Εκδίδει ένα παραστατικό, το διαβιβάζει στο myDATA της ΑΑΔΕ, παράγει το PDF και το στέλνει στον λήπτη. POST {baseUrl}/api/v1/Provider/SendInvoices?skipSignature={true|false}` | | | |:---|:---| | **Αυθεντικοποίηση** | Header `API-KEY` | | **Content-Type** | `application/json` | | **Παραστατικά ανά κλήση** | **1**. Το body είναι πίνακας για συμβατότητα με το σχήμα της ΑΑΔΕ, αλλά το API δέχεται ακριβώς ένα παραστατικό ανά κλήση. | | **Χρέωση** | Τα credits εξαρτώνται από τον τύπο. Δείτε [Χρεώσεις](https://developers.novusconceptus.com/el/provider-api/credits/). | | **Επανάληψη** | Με βάση το **UID**. Η ΑΑΔΕ το υπολογίζει από ΑΦΜ εκδότη, ημερομηνία, εγκατάσταση, τύπο, σειρά και ΑΑ. Αν ξαναστείλετε το ίδιο παραστατικό, απορρίπτεται με σφάλμα ΑΑΔΕ `228`, και το μήνυμα περιέχει το MARK του αρχικού. | ## Παράμετροι query | Όνομα | Τύπος | Προεπιλογή | Περιγραφή | |:---|:---|:---|:---| | `skipSignature` | boolean | `true` | Αφορά μόνο πληρωμές με `type` 7 (κάρτα) ή 8 (IRIS). `true`: το παραστατικό εκδίδεται αμέσως, χωρίς υπογραφή Παρόχου. `false`: το παραστατικό **δεν** διαβιβάζεται ακόμη. Η απάντηση φέρνει υπογραφή Παρόχου, χρεώνετε στο POS και μετά ολοκληρώνετε με το [CompletionPosInvoices](https://developers.novusconceptus.com/el/provider-api/other-endpoints/#completionposinvoices). Δείτε [Πληρωμή με κάρτα / IRIS](https://developers.novusconceptus.com/el/guides/card-payments/). | ## Το body ```text { "invoice": [ ← ακριβώς ένα στοιχείο { "issuer": PartyType (υποχρεωτικό) "counterpart": PartyType (B2B: υποχρεωτικό) "invoiceHeader": InvoiceHeader (υποχρεωτικό) "paymentMethods": PaymentMethod[] (υποχρεωτικό, εκτός 8.6 / 9.x / 10.x) "invoiceDetails": InvoiceRow[] (υποχρεωτικό) "taxesTotals": TaxTotal[] (προαιρετικό) "invoiceSummary": InvoiceSummary (υποχρεωτικό) "packingsDeclarations": [...] (προαιρετικό, μόνο παραστατικά διακίνησης) "transmissionFailure": 1 (προαιρετικό) "providerAdditionalInvoiceDetails": (υποχρεωτικό, στοιχεία του PDF) } ] } ``` Υπόμνημα: υποχρ. υποχρεωτικό · προαιρ. προαιρετικό · νέο νέο στο myDATA 2.0.x · **PDF** = χρησιμοποιείται μόνο στο έντυπο, δεν στέλνεται στην ΑΑΔΕ · **Novus** = πεδίο του Παρόχου, όχι της ΑΑΔΕ. ### invoice | Πεδίο | Τύπος | | Περιγραφή | |:---|:---|:---:|:---| | `issuer` | [PartyType](https://developers.novusconceptus.com/el/provider-api/send-invoices/#partytype) | υποχρ. | Ο εκδότης. Ο `issuer.vatNumber` πρέπει να είναι ενεργός στον λογαριασμό σας. | | `counterpart` | [PartyType](https://developers.novusconceptus.com/el/provider-api/send-invoices/#partytype) | προαιρ. | Ο λήπτης. Η ΑΑΔΕ τον ζητά στα τιμολόγια (1.x, 2.x, 5.x …). Στη λιανική (11.x) παραλείπεται. | | `invoiceHeader` | [InvoiceHeader](https://developers.novusconceptus.com/el/provider-api/send-invoices/#invoiceheader) | υποχρ. | | | `paymentMethods` | [PaymentMethod](https://developers.novusconceptus.com/el/provider-api/send-invoices/#paymentmethods)[] | υποχρ. | Υποχρεωτικό σε όλους τους τύπους **εκτός από** 8.6, 9.1, 9.2, 9.3, 10.1, 10.2. Στο 8.6 **απαγορεύεται**. Το άθροισμα των `amount` πρέπει να ισούται με το `invoiceSummary.totalGrossValue`. | | `invoiceDetails` | [InvoiceRow](https://developers.novusconceptus.com/el/provider-api/send-invoices/#invoicedetails)[] | υποχρ. | Τουλάχιστον μία γραμμή. | | `taxesTotals` | [TaxTotal](https://developers.novusconceptus.com/el/provider-api/send-invoices/#taxestotals)[] | προαιρ. | Φόροι εκτός ΦΠΑ σε επίπεδο παραστατικού. Αν το χρησιμοποιείτε, δεν στέλνετε τους ίδιους φόρους και ανά γραμμή. | | `invoiceSummary` | [InvoiceSummary](https://developers.novusconceptus.com/el/provider-api/send-invoices/#invoicesummary) | υποχρ. | | | `packingsDeclarations` νέο | [PackingsDeclaration](https://developers.novusconceptus.com/el/provider-api/send-invoices/#packingsdeclarations)[] | προαιρ. | Μόνο σε παραστατικά διακίνησης. | | `transmissionFailure` | integer | προαιρ. | `1` = το παραστατικό εκδόθηκε ενώ η εφαρμογή σας δεν έφτανε στον Πάροχο, και το στέλνετε τώρα. Στέλνεται μέσα σε 1 ημέρα από το `issueDate`. Το `2` το βάζει ο ίδιος ο Πάροχος και **απορρίπτεται** αν το στείλετε. Δείτε [Offline](https://developers.novusconceptus.com/el/provider-api/errors/#offline). | | `providerAdditionalInvoiceDetails` | [ProviderAdditionalInvoiceDetails](https://developers.novusconceptus.com/el/provider-api/send-invoices/#provideradditionalinvoicedetails) | υποχρ. | Στοιχεία μόνο για το PDF: επωνυμίες, διευθύνσεις, ετικέτες, παραλήπτες. | **Σημείωση: Πεδία που ΔΕΝ στέλνετε** Τα `uid`, `mark`, `authenticationCode`, `qrCodeUrl` και `downloadingInvoiceUrl` τα συμπληρώνει η ΑΑΔΕ ή ο Πάροχος. Στα `paymentMethods`, τα `transactionId`, `ProvidersSignature`, `tipAmount` και `ECRToken` απορρίπτονται: τα συμπληρώνει η ροή του POS. ### PartyType Για τα `issuer`, `counterpart` και `otherCorrelatedEntities[].entityData`. Όλα τα πεδία στέλνονται στην ΑΑΔΕ. | Πεδίο | Τύπος | | Περιγραφή | |:---|:---|:---:|:---| | `vatNumber` | string | υποχρ. | ΑΦΜ. Χωρίς κενά στην αρχή ή στο τέλος: ο Πάροχος απορρίπτει `counterpart.vatNumber` με κενά. | | `country` | string | υποχρ. | ISO 3166-1 alpha-2, π.χ. `GR`. | | `branch` | integer | υποχρ. | Αριθμός εγκατάστασης όπως στο Taxis. Έδρα = `0`. | | `name` | string | προαιρ. | Επωνυμία. **Δεν γίνεται δεκτή από την ΑΑΔΕ για ελληνικές οντότητες** (χώρα `GR`), άρα τη στέλνετε μόνο για αλλοδαπούς λήπτες. | | `address` | [Address](https://developers.novusconceptus.com/el/provider-api/send-invoices/#address) | προαιρ. | Για τον εκδότη, δεν γίνεται δεκτή για ελληνικές οντότητες. Για αλλοδαπό λήπτη, υποχρεωτική με `postalCode` και `city`. | | `documentIdNo` | string(100) | προαιρ. | Αριθμός επίσημου εγγράφου του λήπτη (π.χ. διαβατήριο). Μόνο σε tax free (`specialInvoiceCategory = 4`). | | `supplyAccountNo` | string(100) | προαιρ. | Αριθμός παροχής ρεύματος. Μόνο σε τιμολόγια καυσίμων (`fuelInvoice = true`). | | `countryDocumentId` | string | προαιρ. | Χώρα που εξέδωσε το `documentIdNo`. Μόνο σε tax free. | #### Address | Πεδίο | Τύπος | | Περιγραφή | |:---|:---|:---:|:---| | `street` | string | προαιρ. | Οδός | | `number` | string | προαιρ. | Αριθμός | | `postalCode` | string | υποχρ. | Ταχυδρομικός κώδικας | | `city` | string | υποχρ. | Πόλη | ### invoiceHeader | Πεδίο | Τύπος | | Περιγραφή | |:---|:---|:---:|:---| | `series` | string(50) | υποχρ. | Σειρά. `"0"` αν το παραστατικό δεν έχει σειρά. | | `aa` | string(50) | υποχρ. | Αύξων αριθμός μέσα στη σειρά. | | `issueDate` | date `yyyy-MM-dd` | υποχρ. | **Η σημερινή ημερομηνία** για παραστατικά μέσω Παρόχου (σφάλμα ΑΑΔΕ `238`). Εξαίρεση: `transmissionFailure = 1`. | | `invoiceType` | string | υποχρ. | [Τύπος παραστατικού](https://developers.novusconceptus.com/el/aade/documents/#invoice-types). Μέσω Παρόχου επιτρέπονται **μόνο οι τύποι 1.1 έως 11.5**. Οι τύποι 12.x έως 17.x δεν διαβιβάζονται ποτέ από Πάροχο. | | `vatPaymentSuspension` | boolean | προαιρ. | Αναστολή καταβολής ΦΠΑ. | | `currency` | string | προαιρ. | ISO 4217, π.χ. `EUR`. | | `exchangeRate` | decimal(5) | προαιρ. | Μόνο όταν το `currency` δεν είναι `EUR`. | | `correlatedInvoices` | long[] | προαιρ. | MARK των συσχετιζόμενων παραστατικών, π.χ. το αρχικό τιμολόγιο ενός πιστωτικού 5.1. | | `correlatedInvoicesLabel` | string | προαιρ. | **PDF.** Η αναφορά στα συσχετιζόμενα που τυπώνεται. Υποχρεωτικό όταν στέλνετε `correlatedInvoices`. | | `correlatedInvoicesUids` | string[] | προαιρ. | **Novus.** UID των συσχετιζόμενων, που ο Πάροχος μετατρέπει σε MARK. *Προς το παρόν ισχύει μόνο στην ολοκλήρωση πληρωμών POS και στην επαναποστολή offline.* Σε κανονική κλήση χρησιμοποιήστε το `correlatedInvoices`. | | `selfPricing` | boolean | προαιρ. | Αυτοτιμολόγηση. | | `dispatchDate` | date | προαιρ. | **Προγραμματισμένη** ημερομηνία αποστολής. Από το myDATA 2.0 τα πραγματικά στοιχεία μεταφοράς τα δηλώνει ο μεταφορέας στη ροή του ψηφιακού δελτίου αποστολής. | | `dispatchTime` | time `HH:mm:ss` | προαιρ. | Προγραμματισμένη ώρα αποστολής. | | `vehicleNumber` | string | προαιρ. | Προγραμματισμένος αριθμός οχήματος. | | `movePurpose` | integer | προαιρ. | [Σκοπός διακίνησης](https://developers.novusconceptus.com/el/aade/movement/#move-purpose). Οι τιμές 6, 15, 16, 17 και 18 δεν γίνονται πλέον δεκτές. | | `movePurposeLabel` | string | προαιρ. | **PDF.** Το κείμενο του σκοπού διακίνησης που τυπώνεται. | | `otherMovePurposeTitle` | string | προαιρ. | Μόνο όταν `movePurpose = 19`. | | `fuelInvoice` | boolean | προαιρ. | Παραστατικό πώλησης καυσίμων. | | `specialInvoiceCategory` | integer | προαιρ. | [Ειδική κατηγορία παραστατικού](https://developers.novusconceptus.com/el/aade/documents/#special-invoice-category). | | `invoiceVariationType` | integer | προαιρ. | [Τύπος απόκλισης](https://developers.novusconceptus.com/el/aade/documents/#invoice-variation-type). **Δεν επιτρέπεται** μέσω Παρόχου. | | `otherCorrelatedEntities` | [EntityType](https://developers.novusconceptus.com/el/provider-api/send-invoices/#entitytype)[] | προαιρ. | Άλλες συσχετιζόμενες οντότητες: μεταφορέας, φορολογικός αντιπρόσωπος κ.λπ. | | `otherDeliveryNoteHeader` | [OtherDeliveryNoteHeader](https://developers.novusconceptus.com/el/provider-api/send-invoices/#otherdeliverynoteheader) | προαιρ. | Υποχρεωτικό στα δελτία αποστολής (9.x) και στα τιμολόγια με `isDeliveryNote = true`. | | `isDeliveryNote` | boolean | προαιρ. | Το τιμολόγιο είναι και δελτίο αποστολής, π.χ. 1.1 με στοιχεία μεταφοράς. | | `thirdPartyCollection` | boolean | προαιρ. | Μόνο σε 8.4 / 8.5. | | `multipleConnectedMarks` | long[] | προαιρ. | Πολλαπλά συνδεδεμένα MARK. Κυρίως για το κλείσιμο δελτίων 8.6. Δεν γίνεται δεκτό σε 1.6, 2.4 και 5.1. | | `multipleConnectedUids` | string[] | προαιρ. | **Novus.** Το ίδιο, με UID. Χρήσιμο για δελτία 8.6 που εκδόθηκαν όσο η ΑΑΔΕ ήταν offline. | | `tableAA` | string (GUID) | προαιρ. | Αναγνωριστικό τραπεζιού. **Υποχρεωτικό στο 8.6**, και χρησιμοποιείται στο κλείσιμο του τραπεζιού. Δείτε [Εστίαση](https://developers.novusconceptus.com/el/guides/food-service/). | | `totalCancelDeliveryOrders` | boolean | προαιρ. | Μόνο σε 8.6: ακυρώνει όλα τα δελτία του `multipleConnectedMarks`. | | `reverseDeliveryNote` | boolean | προαιρ. | Μόνο σε 9.3: αντίστροφη διακίνηση. | | `reverseDeliveryNotePurpose` | integer | προαιρ. | [Σκοπός αντίστροφης διακίνησης](https://developers.novusconceptus.com/el/aade/movement/#reverse-delivery-purpose). Υποχρεωτικό όταν `reverseDeliveryNote = true`. | | `toWeigh` νέο | boolean | προαιρ. | «Προς ζύγιση». Μόνο σε 9.1, 9.2 και 9.3. | | `receivingNotePurpose` νέο | integer | προαιρ. | [Σκοπός δελτίου ποσοτικής παραλαβής](https://developers.novusconceptus.com/el/aade/movement/#receiving-note-purpose). **Υποχρεωτικό** σε 10.1 και 10.2, και γίνεται δεκτό μόνο εκεί. | | `otherReceivingNotePurposeTitle` νέο | string | προαιρ. | Μόνο όταν `receivingNotePurpose = 7`. | | `nonObligatedRecipient` νέο | boolean | προαιρ. | Μόνο σε παραστατικά διακίνησης: ο λήπτης δεν είναι υπόχρεος να συμμετέχει στην ψηφιακή διακίνηση. | | `withoutDigitalTransportTracking` νέο | boolean | προαιρ. | Μόνο σε παραστατικά διακίνησης: το παραστατικό δεν συμμετέχει στην ψηφιακή παρακολούθηση της μεταφοράς. Η κατάστασή του γίνεται *Ολοκληρωμένη* με την έκδοση. | #### EntityType | Πεδίο | Τύπος | | Περιγραφή | |:---|:---|:---:|:---| | `type` | integer | υποχρ. | [Τύπος συσχετιζόμενης οντότητας](https://developers.novusconceptus.com/el/aade/documents/#entity-type). | | `entityData` | [PartyType](https://developers.novusconceptus.com/el/provider-api/send-invoices/#partytype) | υποχρ. | | #### OtherDeliveryNoteHeader | Πεδίο | Τύπος | | Περιγραφή | |:---|:---|:---:|:---| | `loadingAddress` | [Address](https://developers.novusconceptus.com/el/provider-api/send-invoices/#address) | υποχρ. | Διεύθυνση φόρτωσης. | | `deliveryAddress` | [Address](https://developers.novusconceptus.com/el/provider-api/send-invoices/#address) | υποχρ. | Διεύθυνση παράδοσης. | | `startShippingBranch` | integer | προαιρ. | Εγκατάσταση του εκδότη από όπου ξεκινά η διακίνηση, αν διαφέρει από την εγκατάσταση έκδοσης. | | `completeShippingBranch` | integer | προαιρ. | Εγκατάσταση του λήπτη όπου ολοκληρώνεται η διακίνηση, αν διαφέρει. | ### paymentMethods | Πεδίο | Τύπος | | Περιγραφή | |:---|:---|:---:|:---| | `type` | integer | υποχρ. | [Τρόπος πληρωμής](https://developers.novusconceptus.com/el/aade/lines-payments/#payment-methods). | | `amount` | decimal(2) | υποχρ. | Το ποσό που πληρώνεται με αυτόν τον τρόπο. Τα ποσά όλων των τρόπων πρέπει να αθροίζουν στο `totalGrossValue`. | | `paymentMethodInfo` | string | προαιρ. | Επιπλέον πληροφορία που στέλνεται στην ΑΑΔΕ, π.χ. IBAN. | | `terminalId` | string(200) | προαιρ. | **Novus.** Κωδικός τερματικού POS (TID). Υποχρεωτικό σε `type` 7/8 με `skipSignature=false`. Γίνεται δεκτό και με το όνομα της ΑΑΔΕ, `tid`. | | `posNspId` | integer | προαιρ. | **Novus.** [Πάροχος POS / NSP](https://developers.novusconceptus.com/el/aade/lines-payments/#pos-nsp) του τερματικού. Υποχρεωτικό σε `type` 7/8 με `skipSignature=false`. Καθορίζει τη μορφή της υπογραφής. | ### invoiceDetails | Πεδίο | Τύπος | | Περιγραφή | |:---|:---|:---:|:---| | `lineNumber` | integer | υποχρ. | Αριθμός γραμμής, από 1. | | `lineCode` | string | προαιρ. | **PDF.** Κωδικός είδους που τυπώνεται. | | `lineDescription` | string | υποχρ. | **PDF.** Περιγραφή γραμμής που τυπώνεται. | | `recType` | integer | προαιρ. | [Είδος γραμμής](https://developers.novusconceptus.com/el/aade/lines-payments/#rec-type). Το `7` (αρνητικό πρόσημο) χρησιμοποιείται στη μερική ακύρωση 8.6. | | `TaricNo` | string(10) | προαιρ. | Κωδικός TARIC. Μόνο σε τιμολόγια που είναι και δελτία αποστολής, και σε παραστατικά διακίνησης. | | `itemCode` | string(50) | προαιρ. | Κωδικός είδους **που στέλνεται στην ΑΑΔΕ**. Ίδιος περιορισμός με το `TaricNo`. | | `itemDescr` | string(300) | προαιρ. | Περιγραφή είδους **που στέλνεται στην ΑΑΔΕ**. Tax free, παραστατικά διακίνησης και 8.6. | | `fuelCode` | integer | προαιρ. | [Κωδικός καυσίμου](https://developers.novusconceptus.com/el/aade/lines-payments/#fuel-codes). Μόνο όταν `fuelInvoice = true`. | | `quantity` | decimal | προαιρ. | Ποσότητα (≥ 0). | | `measurementUnit` | integer | προαιρ. | [Μονάδα μέτρησης](https://developers.novusconceptus.com/el/aade/lines-payments/#measurement-units). | | `measurementUnitLabel` | string | προαιρ. | **PDF.** Η μονάδα που τυπώνεται, π.χ. `τεμ.`. | | `otherMeasurementUnitQuantity` | integer | προαιρ. | Υποχρεωτικό όταν `measurementUnit = 7`. | | `otherMeasurementUnitTitle` | string | προαιρ. | Υποχρεωτικό όταν `measurementUnit = 7`, π.χ. `3_Παλέτες`. | | `invoiceDetailType` | integer | προαιρ. | [Επισήμανση](https://developers.novusconceptus.com/el/aade/lines-payments/#invoice-detail-type). Για τιμολόγια εκκαθάρισης 1.5. | | `lineUnitPrice` | decimal | υποχρ. | **PDF.** Τιμή μονάδας. | | `totalNetPriceBeforeDiscount` | decimal | υποχρ. | **PDF.** `lineUnitPrice × quantity`. | | `totalDiscountValue` | decimal | υποχρ. | **PDF.** Συνολική έκπτωση γραμμής (`0` αν δεν υπάρχει). | | `netValue` | decimal(2) | υποχρ. | Καθαρή αξία γραμμής, μετά την έκπτωση. | | `vatCategory` | integer | υποχρ. | [Κατηγορία ΦΠΑ](https://developers.novusconceptus.com/el/aade/vat/#vat-category). | | `vatCategoryPercent` | decimal | υποχρ. | **PDF.** Ο συντελεστής ΦΠΑ που τυπώνεται, π.χ. `24.00`. | | `vatAmount` | decimal(2) | υποχρ. | Ποσό ΦΠΑ της γραμμής. | | `vatExemptionCategory` | integer | προαιρ. | [Αιτία εξαίρεσης ΦΠΑ](https://developers.novusconceptus.com/el/aade/vat/#vat-exemption). **Υποχρεωτικό όταν `vatCategory = 7`.** | | `vatExemptionCategoryLabel` | string | προαιρ. | **PDF.** Το κείμενο της εξαίρεσης που τυπώνεται. | | `dienergia` | [Ship](https://developers.novusconceptus.com/el/provider-api/send-invoices/#ship) | προαιρ. | Δήλωση διενέργειας δραστηριότητας (άρθρο 27, ΠΟΛ 1177/2018, πλοία). | | `discountOption` | boolean | προαιρ. | Δικαίωμα έκπτωσης. | | `withheldAmount` / `withheldPercentCategory` | decimal / integer | προαιρ. | Παρακρατούμενος φόρος ([κατηγορίες](https://developers.novusconceptus.com/el/aade/taxes/#withheld-tax)). | | `stampDutyAmount` / `stampDutyPercentCategory` | decimal / integer | προαιρ. | Ψηφιακό Τέλος συναλλαγής, πρώην χαρτόσημο ([κατηγορίες](https://developers.novusconceptus.com/el/aade/taxes/#digital-transaction-fee)). | | `feesAmount` / `feesPercentCategory` | decimal / integer | προαιρ. | Τέλη ([κατηγορίες](https://developers.novusconceptus.com/el/aade/taxes/#fees)). | | `otherTaxesAmount` / `otherTaxesPercentCategory` | decimal / integer | προαιρ. | Λοιποί φόροι ([κατηγορίες](https://developers.novusconceptus.com/el/aade/taxes/#other-taxes)). | | `deductionsAmount` | decimal(2) | προαιρ. | Κρατήσεις. | | `lineComments` | string | προαιρ. | Σχόλια που στέλνονται στην ΑΑΔΕ (δεν τυπώνονται). | | `incomeClassification` | [Classification](https://developers.novusconceptus.com/el/provider-api/send-invoices/#classification)[] | προαιρ. | Χαρακτηρισμός εσόδων της γραμμής. | | `expensesClassification` | [Classification](https://developers.novusconceptus.com/el/provider-api/send-invoices/#classification)[] | προαιρ. | Χαρακτηρισμός εξόδων, π.χ. στην αυτοτιμολόγηση. | | `quantity15` | decimal | προαιρ. | Ποσότητα στους 15 °C. Μόνο σε τιμολόγια καυσίμων. | | `notVAT195` νέο | boolean | προαιρ. | Τα ποσά της γραμμής δεν συμμετέχουν στη δήλωση ΦΠΑ (εκροές). Μόνο σε τύπους 1.1 έως 11.5. | | `movePurposeLine` νέο | integer | προαιρ. | [Σκοπός διακίνησης](https://developers.novusconceptus.com/el/aade/movement/#move-purpose) της γραμμής, όταν διαφέρει από της επικεφαλίδας. | | `otherMovePurposeLineTitle` νέο | string(150) | προαιρ. | Υποχρεωτικό όταν `movePurposeLine = 19`. | #### Ship (dienergia) | Πεδίο | Τύπος | | Περιγραφή | |:---|:---|:---:|:---| | `applicationId` | string | υποχρ. | Αριθμός δήλωσης διενέργειας δραστηριότητας. | | `applicationDate` | date | υποχρ. | Ημερομηνία δήλωσης. | | `doy` | string | προαιρ. | ΔΟΥ της δήλωσης. | | `shipId` | string | υποχρ. | Στοιχεία πλοίου. | #### Classification | Πεδίο | Τύπος | | Περιγραφή | |:---|:---|:---:|:---| | `classificationType` | string | προαιρ. | [Τύπος εσόδων](https://developers.novusconceptus.com/el/aade/classifications/#income-classification-type) (`E3_…`) ή [τύπος εξόδων](https://developers.novusconceptus.com/el/aade/classifications/#expenses-classification-type) (`E3_…`, `VAT_…`). | | `classificationCategory` | string | υποχρ. | [Κατηγορία εσόδων](https://developers.novusconceptus.com/el/aade/classifications/#income-classification-category) (`category1_…`, `category3`) ή [κατηγορία εξόδων](https://developers.novusconceptus.com/el/aade/classifications/#expenses-classification-category) (`category2_…`). | | `amount` | decimal(2) | υποχρ. | Το ποσό που χαρακτηρίζεται. | | `vatAmount`, `vatCategory`, `vatExemptionCategory` | | προαιρ. | Μόνο στον χαρακτηρισμό εξόδων. | | `id` | integer | προαιρ. | Αύξων αριθμός του χαρακτηρισμού. | ### taxesTotals Παρακράτηση, τέλη, λοιποί φόροι, ψηφιακό τέλος συναλλαγής και κρατήσεις **για όλο το παραστατικό**. Στα τιμολόγια B2G είναι ο μόνος επιτρεπτός τρόπος. | Πεδίο | Τύπος | | Περιγραφή | |:---|:---|:---:|:---| | `taxType` | integer | υποχρ. | [Είδος φόρου](https://developers.novusconceptus.com/el/aade/taxes/#taxes-totals-type): 1 παρακρατούμενος, 2 τέλη, 3 λοιποί φόροι, 4 ψηφιακό τέλος συναλλαγής, 5 κρατήσεις. | | `taxCategory` | integer | προαιρ. | Η κατηγορία από τον πίνακα που αντιστοιχεί στο `taxType`. | | `underlyingValue` | decimal | προαιρ. | Το ποσό πάνω στο οποίο υπολογίζεται ο φόρος. | | `taxAmount` | decimal(2) | υποχρ. | Ποσό φόρου. | | `id` | integer | προαιρ. | Αύξων αριθμός. | | `reducesPayable` | boolean | προαιρ. | **PDF.** `true` αν το ποσό μειώνει το πληρωτέο, π.χ. παρακράτηση. | | `taxTypeLabel` | string | υποχρ. | **PDF.** Η ετικέτα που τυπώνεται για τον φόρο, π.χ. `Φόρος διαμονής 4*`. | ### invoiceSummary | Πεδίο | Τύπος | | Περιγραφή | |:---|:---|:---:|:---| | `totalNetValue` | decimal(2) | υποχρ. | Άθροισμα των `netValue`. | | `totalVatAmount` | decimal(2) | υποχρ. | Άθροισμα των `vatAmount`. | | `totalWithheldAmount` | decimal(2) | υποχρ. | `0` αν δεν υπάρχει. | | `totalFeesAmount` | decimal(2) | υποχρ. | `0` αν δεν υπάρχει. | | `totalStampDutyAmount` | decimal(2) | υποχρ. | Σύνολο ψηφιακού τέλους συναλλαγής. `0` αν δεν υπάρχει. | | `totalOtherTaxesAmount` | decimal(2) | υποχρ. | `0` αν δεν υπάρχει. | | `totalDeductionsAmount` | decimal(2) | υποχρ. | `0` αν δεν υπάρχει. | | `totalGrossValue` | decimal(2) | υποχρ. | `καθαρή αξία + ΦΠΑ − παρακράτηση + τέλη + ψηφιακό τέλος + λοιποί φόροι − κρατήσεις`. Πρέπει να ισούται με το άθροισμα των `paymentMethods[].amount`. | | `incomeClassification` | [Classification](https://developers.novusconceptus.com/el/provider-api/send-invoices/#classification)[] | προαιρ. | Το άθροισμα των χαρακτηρισμών των γραμμών, ανά τύπο και κατηγορία. | | `expensesClassification` | [Classification](https://developers.novusconceptus.com/el/provider-api/send-invoices/#classification)[] | προαιρ. | Το ίδιο για τα έξοδα. | ### packingsDeclarations νέο Μόνο σε παραστατικά διακίνησης. Κάθε στοιχείο έχει μια λίστα `Packages`: | Πεδίο | Τύπος | | Περιγραφή | |:---|:---|:---:|:---| | `Packages[].packagingType` | integer | υποχρ. | Είδος συσκευασίας (1–6). Δείτε ΑΑΔΕ «Ψηφιακό Δελτίο Αποστολής», πίνακας 8.23. | | `Packages[].quantity` | integer | υποχρ. | Πλήθος συσκευασιών. | | `Packages[].otherPackagingTypeTitle` | string(150) | προαιρ. | Τίτλος για «λοιπές» συσκευασίες. | ### providerAdditionalInvoiceDetails Όλα εδώ χρησιμοποιούνται **μόνο για το PDF και το email** προς τον λήπτη. Τίποτα δεν στέλνεται στην ΑΑΔΕ. #### issuer (υποχρεωτικό) | Πεδίο | | Περιγραφή | |:---|:---:|:---| | `name`, `profession`, `taxoffice` | υποχρ. | Επωνυμία, δραστηριότητα και ΔΟΥ. | | `addressStreet`, `addressNumber`, `addressPostalCode`, `addressCity`, `addressCountry` | υποχρ. | Η διεύθυνση όπως τυπώνεται. | | `phone`, `fax`, `email`, `webSite`, `registryNumber` | προαιρ. | `registryNumber` = ΓΕΜΗ. | | `emtyLine`, `emtyLine2` | προαιρ. | Δύο ελεύθερες γραμμές κάτω από τον εκδότη, π.χ. IBAN. *(Τα ονόματα γράφονται `emty…`.)* | #### counterpart (προαιρετικό) | Πεδίο | | Περιγραφή | |:---|:---:|:---| | `code` | προαιρ. | Ο κωδικός πελάτη σας. | | `vat` | προαιρ. | ΑΦΜ που τυπώνεται σε παραστατικά **λιανικής** (11.1/11.2) όταν το ζητήσει ο πελάτης. | | `name`, `profession`, `taxoffice` | προαιρ. | Στα τιμολόγια (B2B) προτείνουμε να τα συμπληρώνετε πάντα. | | `addressStreet`, `addressNumber`, `addressPostalCode`, `addressCity`, `addressCountry`, `phone`, `email` | προαιρ. | | #### additionalDetails (υποχρεωτικό) | Πεδίο | Τύπος | | Περιγραφή | |:---|:---|:---:|:---| | `documentLabel` | string | υποχρ. | Ο τίτλος του παραστατικού που τυπώνεται, π.χ. `Τιμολόγιο Πώλησης`. | | `paymentMethodInvoiceLabel` | string | υποχρ. | Ο τρόπος πληρωμής που τυπώνεται, π.χ. `Μετρητά`. | | `documentSizeCode` | integer | προαιρ. | [Πρότυπο PDF](https://developers.novusconceptus.com/el/aade/documents/#document-size): A4, A5, 80mm, 57mm. Προεπιλογή `0` (A4). | | `documentLanguageCode` | string | προαιρ. | `EL` (προεπιλογή) ή `EN`. | | `documentComments` | string | προαιρ. | Ελεύθερα σχόλια που τυπώνονται. Για αλλαγή γραμμής, `\n`. | | `recipients.email` | string | προαιρ. | Το email όπου στέλνεται το PDF μετά την έκδοση. Το PDF στέλνεται επίσης στις διευθύνσεις παραλαβής που επιστρέφει η ΑΑΔΕ, αν ο λήπτης έχει δηλώσει ότι παραλαμβάνει ηλεκτρονικά. Αποστολέας, θέμα και κείμενο του email είναι σταθερά. | | `digitsQty` | integer 2–5 | προαιρ. | Δεκαδικά ψηφία στις ποσότητες. Προεπιλογή `3`. | | `digitsItemPrice` | integer 2–5 | προαιρ. | Δεκαδικά ψηφία στις τιμές μονάδας. Προεπιλογή `2`. | | `dispatchPlaceFrom`, `dispatchPlaceTo` | string | προαιρ. | Τόπος φόρτωσης / προορισμού που τυπώνεται στα παραστατικά διακίνησης. | | `logoId` | GUID | προαιρ. | Logo που ανεβάσατε στο portal. | | `oldLogoId` | integer | προαιρ. | *Παλιό.* Μόνο για παλιούς λογαριασμούς. | ## Έλεγχοι του Παρόχου (πριν την ΑΑΔΕ) Ο Πάροχος κάνει αυτούς τους ελέγχους **πριν** διαβιβάσει. Αν αποτύχει κάποιος, το παραστατικό **δεν** στέλνεται στην ΑΑΔΕ και **δεν χρεώνονται credits**. Η απάντηση είναι HTTP 400/401 με body `{"errors": ["<μήνυμα>"]}`. Τα μηνύματα έρχονται στα αγγλικά, όπως στη στήλη «Μήνυμα». | HTTP | Κανόνας | Μήνυμα | |:---:|:---|:---| | 401 | Λείπει ή είναι άκυρο το `API-KEY`. | *(κενό body)* | | 400 | Το `invoice` είναι κενό. | `There is no invoice in the request.` | | 400 | Περισσότερα από ένα παραστατικά στο `invoice[]`. | `At this moment you can send only one invoice per request.` | | 401 | Ο λογαριασμός δεν επιτρέπεται να εκδίδει (π.χ. σε αναστολή). | `You don't have the authority to send invoices this time.` | | 400 | Τύπος 8.6 με `paymentMethods`. | `Invoice type 8.6 can't have payment methods.` | | 400 | Χωρίς `paymentMethods` (τύποι εκτός 8.6, 9.x, 10.x). | `Invoice needs to have payment methods.` | | 400 | Σφάλματα σχήματος / υποχρεωτικών πεδίων. | Ένα μήνυμα ανά πεδίο, π.χ. `The DocumentLabel field is required.` | | 400 | `transmissionFailure = 2`. | `You have transmissionFailure with value 2 in one or more invoices.` | | 400 | Το `counterpart.vatNumber` έχει κενά στην αρχή ή στο τέλος. | `Counterpart VAT number should not contain leading or trailing spaces.` | | 400 | `transmissionFailure = 1` και `issueDate` παλαιότερο από 1 ημέρα. | `If you have one or more invoices with transmissionFailure = 1, the invoice issue date cannot be more than 1 day old.` | | 400 | Σ `paymentMethods[].amount` ≠ `totalGrossValue`. | `The sum of the payment methods amount must be equal to the total gross value of the invoices.` | | 400 | `skipSignature=false`, πληρωμή 7/8 χωρίς `terminalId`/`tid`. | `If one of the payment methods requires pos then the Terminal Id (tid) field is required.` | | 400 | `skipSignature=false`, πληρωμή 7/8 χωρίς `posNspId`. | `If one of the payment methods requires pos then the Pos Nsp Id fields is required.` | | 400 | Συμπληρωμένα `transactionId`, `ProvidersSignature`, `tipAmount` ή `ECRToken`. | `The transactionId, ProvidersSignature, tipAmount, ECRToken fields is not allowed to be filled.` | | 401 | Ο `issuer.vatNumber` δεν είναι ενεργός στον λογαριασμό σας. | `You don't have the authority to send for this vat numbers ...` | | 401 | Εστίαση: η εγκατάσταση έχει τραπέζι 8.6 ανοιχτό πάνω από 24 ώρες. | `You don't have the authority to send invoices for this branch becouse you have open table more than 24h.` | | 400 | Εστίαση: ασυνεπής ακύρωση με `recType = 7`. | `You can't send this invoice because it includes inconsistent recType 7 details, ...` | | 400 | Εστίαση: το παραστατικό κλεισίματος δεν ταιριάζει με τα ανοιχτά δελτία. | `Multiple connected marks are not as invoice details. ...` / `The total quantity of products and the total net value in the closing order invoice ... do not match ...` | | 400 | Δεν επαρκούν τα credits. | `You don't have enough balance to send this request.` | ## Η απάντηση Το HTTP **200** σημαίνει ότι ο Πάροχος επεξεργάστηκε την κλήση. Αν το παραστατικό **εκδόθηκε**, το λέει το `response[0].statusCode`. ```json { "response": [ { "index": 1, "statusCode": "Success", "invoiceUid": "C10262E0AE13C6AFD7DD2C980900BB0DF266D9C5", "invoiceMark": 400001939576037, "authenticationCode": "1D0F38488D532D3BB715408E01283D39E8D56A3A", "invoiceUrl": "https://provider.timologisi.online/api/v1/Provider/GetInvoicePdf/671899191d6d0b3d947bc4bb.pdf", "qrUrl": "https://provider.timologisi.online/api/v1/Provider/GetInvoicePdf/671899191d6d0b3d947bc4bb.pdf", "aadeQrUrl": "…", "credits": "1,00", "paymentMethodMark": 0, "providerSignature": null, "receptionProviders": null, "receptionEmails": null, "errors": null } ] } ``` | Πεδίο | Τύπος | Περιγραφή | |:---|:---|:---| | `index` | integer | Η θέση του παραστατικού στην κλήση (από 1). | | `statusCode` | string | `Success`, `Offline`, `ValidationError`, `XMLSyntaxError`, `TechnicalError`. Δείτε [statusCode](https://developers.novusconceptus.com/el/provider-api/errors/#statuscode). | | `invoiceUid` | string(40) | Το UID. Επιστρέφεται και σε `Offline`. | | `invoiceMark` | long | Το MARK. `0` σε `Offline` ή σε σφάλμα. | | `authenticationCode` | string | Το Authentication Code. Κενό σε `Offline`. | | `invoiceUrl` | string | Link στο PDF. Το τυπώνετε ως QR code, ή το χρησιμοποιείτε για προβολή και λήψη. | | `qrUrl` | string | Ίδιο με το `invoiceUrl`. Μένει για συμβατότητα. | | `aadeQrUrl` | string | Το επίσημο link επαλήθευσης της ΑΑΔΕ. Πληροφοριακό. | | `credits` | string | Τα credits που χρεώθηκαν, με **υποδιαστολή κόμμα**, π.χ. `"0,50"`. | | `paymentMethodMark` | long | MARK της εγγραφής τρόπου πληρωμής (ροές POS). | | `providerSignature` | array | Μόνο με `skipSignature=false` και πληρωμή με κάρτα / IRIS. Δείτε [Πληρωμή με κάρτα / IRIS](https://developers.novusconceptus.com/el/guides/card-payments/). | | `receptionProviders` | object | Οι Πάροχοι μέσω των οποίων ο λήπτης παραλαμβάνει ηλεκτρονικά τιμολόγια, όταν τους επιστρέφει η ΑΑΔΕ. | | `receptionEmails` | object | Τα emails που έχει δηλώσει ο λήπτης για παραλαβή ηλεκτρονικών τιμολογίων, όταν τα επιστρέφει η ΑΑΔΕ. | | `errors` | array | `[{ "error": [ { "code": "…", "message": "…" } ] }]` όταν το `statusCode` είναι σφάλμα. Δείτε [Κωδικοί σφαλμάτων ΑΑΔΕ](https://developers.novusconceptus.com/el/provider-api/aade-errors/). | Δείτε επίσης: [Σφάλματα & statusCode](https://developers.novusconceptus.com/el/provider-api/errors/) · [Κωδικοί σφαλμάτων ΑΑΔΕ](https://developers.novusconceptus.com/el/provider-api/aade-errors/) · [Χρεώσεις](https://developers.novusconceptus.com/el/provider-api/credits/) Πηγή: https://developers.novusconceptus.com/el/provider-api/send-invoices/ --- # SendInvoicesB2G Ηλεκτρονικό τιμολόγιο προς φορέα του Δημοσίου (EN 16931). Ο οδηγός, με τις τιμές για τις δοκιμές: [Δημόσιο (B2G)](https://developers.novusconceptus.com/el/guides/b2g/). POST {baseUrl}/api/v1/Provider/SendInvoicesB2G` Το body είναι **ίδιο** με του [SendInvoices](https://developers.novusconceptus.com/el/provider-api/send-invoices/) (ένα παραστατικό ανά κλήση), με αυτές τις διαφορές: | | | |:---|:---| | **Επιτρεπτοί τύποι** | 1.1, 1.6, 2.1, 2.4, 3.1, 3.2, 5.2, 6.1, 6.2, 7.1 | | **Πληρωμή** | `paymentMethods[].type` = `5` (επί πιστώσει) | | **Φόροι** | Παρακράτηση, τέλη, λοιποί φόροι, ψηφιακό τέλος συναλλαγής και κρατήσεις **μόνο** στο `taxesTotals` | | **Επιπλέον αντικείμενο** | `providerB2gAdditionalInvoiceDetails` (υποχρεωτικό) | | **Επιπλέον πεδία γραμμής** | `QuantityUnitsUblCode`, `itemClassificationIdentifiers`, `itemCodification` (υποχρεωτικά) | | **Ενεργοποίηση** | Χωριστά για κάθε πελάτη (ΑΦΜ), από τη Novus. | | **Credits** | 1 ανά τιμολόγιο, από το ξεχωριστό υπόλοιπο B2G (όχι από τα credits του Provider API) | | **Δοκιμές** | Χρειάζεται ξεχωριστό δοκιμαστικό κλειδί B2G. Ζητήστε το από τη Novus. | ## providerB2gAdditionalInvoiceDetails | Πεδίο | BT | Τύπος | Περιγραφή | |:---|:---:|:---|:---| | `contractReference` | BT-12 | string | ΑΔΑΜ της σύμβασης στο ΚΗΜΔΗΣ. `"0"` αν δεν υπάρχει. Κενό σε πιστωτικό. | | `purchaseOrderReference` | BT-13 | string | Αριθμός παραγγελίας του φορέα. | | `buyerReference` | BT-10 | string | Η υπηρεσία του φορέα που παραλαμβάνει. | | `buyerLegalRegistrationIdentifier` | BT-47 | string | Αναγνωριστικό του αγοραστή. | | `buyerIdentifiers[].buyerIdentifier` | BT-46 | string | **Δρομολόγηση:** ο Κωδικός Αναθέτουσας Αρχής από το Μητρώο Αναθετόντων, π.χ. `1007.909.0001`. | | `budget.type` | BT-11 | integer | `1` Τακτικός Προϋπολογισμός, `2` ΠΔΕ, `3` λοιποί. | | `budget.identifier` | BT-11 | string | Για 1 και 3: ΑΔΑ ανάληψης υποχρέωσης. Για 2: Ενάριθμος έργου. Σε πιστωτικό με 1 ή 3: κενό. | | `credits[].accountIdentifier` | BT-84 | string | IBAN του εκδότη. | | `credits[].accountName` | BT-85 | string | Δικαιούχος του λογαριασμού. | | `credits[].serviceProviderIdentifier` | BT-86 | string | BIC της τράπεζας. | | `dueDate` | BT-9 | date | Ημερομηνία πληρωμής. | | `partyName` | BT-70 | string | Σε ποιον παραδίδονται τα αγαθά ή οι υπηρεσίες. | | `vatPaidByBuyer` | — | boolean | Προαιρετικό. | | `deliveryDetails.street` / `city` / `postalCode` | BT-75/77/78 | string | Διεύθυνση παράδοσης. | ## Επιπλέον πεδία γραμμής | Πεδίο | BT | Περιγραφή | |:---|:---:|:---| | `QuantityUnitsUblCode` | BT-130 | Μονάδα μέτρησης κατά UN/ECE Rec. 20 (π.χ. `EA`, `KGM`, `LTR`, `HUR`). | | `itemClassificationIdentifiers[]` | BT-158 | Ο κωδικός CPV του είδους, ένα αντικείμενο με: `classificationIdentifier` (ο κωδικός CPV, π.χ. `15555100-4`), `classificationIdentifierScheme` (`STI` για CPV) και `classificationIdentifierSchemeVersion` (π.χ. `2008`). | | `itemCodification` | BT-153 | Σύντομη ονομασία είδους. | Παραδείγματα: [οδηγός B2G](https://developers.novusconceptus.com/el/guides/b2g/#examples). Πηγή: https://developers.novusconceptus.com/el/provider-api/send-invoices-b2g/ --- # Υπόλοιπες κλήσεις Όλες οι κλήσεις θέλουν το header `API-KEY`, εκτός από τα τρία δημόσια links των εγγράφων. **Σε αυτή τη σελίδα:** [RequestTransmittedDocs](https://developers.novusconceptus.com/el/provider-api/other-endpoints/#requesttransmitteddocs) · [CancelDeliveryNote](https://developers.novusconceptus.com/el/provider-api/other-endpoints/#canceldeliverynote) · [CancelReceivingNote](https://developers.novusconceptus.com/el/provider-api/other-endpoints/#cancelreceivingnote) · [GetCreditsBalance](https://developers.novusconceptus.com/el/provider-api/other-endpoints/#getcreditsbalance) · [GetInvoicePdf](https://developers.novusconceptus.com/el/provider-api/other-endpoints/#getinvoicepdf) · [GetInvoice](https://developers.novusconceptus.com/el/provider-api/other-endpoints/#getinvoice) · [GetInvoicePdfByAuthenticationCode](https://developers.novusconceptus.com/el/provider-api/other-endpoints/#getinvoicepdfbyauthenticationcode) · [CompletionPosInvoices](https://developers.novusconceptus.com/el/provider-api/other-endpoints/#completionposinvoices) · [AskSignatureForOldInvoice](https://developers.novusconceptus.com/el/provider-api/other-endpoints/#asksignatureforoldinvoice) · [CompletionAskSignatureForOldInvoice](https://developers.novusconceptus.com/el/provider-api/other-endpoints/#completionasksignatureforoldinvoice) · [GetOpenTables](https://developers.novusconceptus.com/el/provider-api/other-endpoints/#getopentables) · [GetOpenOrdersForTable](https://developers.novusconceptus.com/el/provider-api/other-endpoints/#getopenordersfortable) ## Παραστατικά ### RequestTransmittedDocs GET `/api/v1/Provider/RequestTransmittedDocs` Αναζήτηση στα παραστατικά που εκδώσατε. Τη χρησιμοποιείτε για να βρείτε ένα MARK (π.χ. μετά από `Offline`) ή για συμφωνία. Για ένα παραστατικό `Offline` θα δείτε με το ίδιο `uid` μία εγγραφή με `mark` 0 και, μόλις διαβιβαστεί, μια δεύτερη με το MARK της ΑΑΔΕ ([έλεγχος Offline](https://developers.novusconceptus.com/el/guides/offline/#check-offline)). | Query | Υποχρεωτικό | Περιγραφή | |:---|:---:|:---| | `issuerVatNumber` | ναι | ΑΦΜ εκδότη. | | `issuedFrom`, `issuedTo` | ναι | Διάστημα ημερομηνιών έκδοσης, `yyyy-MM-dd`. | | `uid`, `invoiceMark`, `authenticationcode` | | Για ένα συγκεκριμένο παραστατικό. | | `series`, `aa`, `invoiceType`, `branch`, `counterpartVatNumber` | | Φίλτρα. | | `resultNumber` | | Μέγιστος αριθμός αποτελεσμάτων. | | `nextPageKey` | | Η σελίδα που ζητάτε. Τα αποτελέσματα έρχονται ανά 100. | ```json title="200 OK" { "providerTransmittedDocs": [ { "uid": "15B0B6AEB08979B44EE68110CD734458F22ED6DE", "mark": 400001939575310, "authenticationCode": "904E2E03B5C4B0B0826BB2B8375F61E5F73118AD", "issuer": { "vatNumber": "123456789", "branch": 0 }, "counterpart": { "vatNumber": "987654324" }, "invoiceHeader": { "series": "A", "aa": "1001", "issueDate": "2026-09-24T00:00:00Z", "invoiceType": "1.1" }, "invoiceSummary": { "totalNetValue": 100, "totalVatAmount": 24, "totalGrossValue": 124 }, "cost": 1, "pdfUrl": "https://provider-dev.timologisi.online/api/v1/Provider/GetInvoicePdf/671893b51d6d0b3d947bc4b9.pdf", "insertedDateTime": "2026-09-24T06:12:05.55Z" } ] } ``` Στο δοκιμαστικό περιβάλλον τα παραστατικά σβήνονται μετά από 30 ημέρες. ### CancelDeliveryNote POST `/api/v1/Provider/CancelDeliveryNote` Ακύρωση δελτίου αποστολής (9.x) χωρίς να εκδοθεί νέο. Χρεώνει 0,25 credits. ```json title="Body" { "mark": "400001958007000", "entityVatNumber": "123456789" } ``` Η απάντηση έχει την [ίδια μορφή με το SendInvoices](https://developers.novusconceptus.com/el/provider-api/send-invoices/#response). Με επιτυχία, το `statusCode` είναι `Success` και το `cancellationMark` έχει το MARK της ακύρωσης. ### CancelReceivingNote POST `/api/v1/Provider/CancelReceivingNote` Το ίδιο, για δελτία ποσοτικής παραλαβής (10.x, myDATA 2.0.2). ### GetCreditsBalance GET `/api/v1/Provider/GetCreditsBalance` ```json title="200 OK" { "userId": "…", "creditsBalance": 1520.5 } ``` ## Έγγραφα (δημόσια, χωρίς API key) ### GetInvoicePdf GET `/api/v1/Provider/GetInvoicePdf/{fileName}` Το PDF πίσω από το `invoiceUrl` / `qrUrl`. Επιστρέφει `application/pdf`. ### GetInvoice GET `/api/v1/Provider/GetInvoice/{uid}/{fileType}` Το παραστατικό με βάση το **UID**. Είναι το `downloadingInvoiceUrl` που στέλνει ο Πάροχος στην ΑΑΔΕ για τον λήπτη (Α.1128/2025). | `fileType` | Επιστρέφει | |:---|:---| | `pdf` (προεπιλογή, ή χωρίς τιμή) | `application/pdf` | | `myDATA` | Το αναλυτικό XML του myDATA (`InvoicesDoc_detailed`) | ### GetInvoicePdfByAuthenticationCode GET `/api/v1/Provider/GetInvoicePdfByAuthenticationCode/{authenticationCode}` Το PDF με βάση το Authentication Code. ## Πληρωμές μέσω POS Η ροή με διαγράμματα: [Πληρωμή με κάρτα / IRIS](https://developers.novusconceptus.com/el/guides/card-payments/). ### CompletionPosInvoices POST `/api/v1/Provider/CompletionPosInvoices` Ολοκληρώνει τα παραστατικά που στάλθηκαν με `SendInvoices?skipSignature=false`, αφού το τερματικό χρέωσε την κάρτα ή το IRIS. Το body είναι **πίνακας**: ```json [ { "signatureToken": "", "transactionId": "123456788555", "paymentAmount": 124, "tipAmount": 0, "paymentType": 7 } ] ``` | Πεδίο | Υποχρεωτικό | Περιγραφή | |:---|:---:|:---| | `signatureToken` | ναι | Το `providerSignature[].signatures[].token` από το SendInvoices. | | `transactionId` | ναι | Από το POS / NSP. | | `paymentAmount` | ναι | Μεγαλύτερο από 0 και έως το `paymentBalance` της υπογραφής. | | `tipAmount` | | Φιλοδώρημα. | | `paymentType` | | Ο τελικός τύπος από το τερματικό: `7` κάρτα ή `8` IRIS. Προεπιλογή `7`. | Επιστρέφει την [απάντηση του SendInvoices](https://developers.novusconceptus.com/el/provider-api/send-invoices/#response). ### AskSignatureForOldInvoice POST `/api/v1/Provider/AskSignatureForOldInvoice?terminalId={tid}&posNspId={id}` Υπογραφή Παρόχου για να εξοφληθεί μέσω POS ένα παραστατικό που εκδόθηκε νωρίτερα (π.χ. επί πιστώσει). **Προσοχή: Ασυνήθιστο body** Το body είναι **σκέτο το MARK του παραστατικού, ως αριθμός JSON**, π.χ. `400001930000001`, όχι αντικείμενο. Τα `terminalId` και [`posNspId`](https://developers.novusconceptus.com/el/aade/lines-payments/#pos-nsp) πηγαίνουν στο query string. ```json title="200 OK" { "token": "…", "data": "…", "createdDate": "…", "expiryDate": "…", "paymentBalance": 124.00, "issuerVatNumber": "123456789" } ``` ### CompletionAskSignatureForOldInvoice POST `/api/v1/Provider/CompletionAskSignatureForOldInvoice?signatureToken=…&transactionId=…&paymentAmount=…&tipAmount=0&paymentType=7` Body: **σκέτο το MARK του παραστατικού, ως αριθμός JSON**. Το `paymentType` είναι προαιρετικό (7 ή 8, προεπιλογή 7). ## Εστίαση (8.6) Ο οδηγός: [Εστίαση](https://developers.novusconceptus.com/el/guides/food-service/). ### GetOpenTables GET `/api/v1/Provider/GetOpenTables?VatNumber=123456789&Branch=0` Επιστρέφει τα τραπέζια (`tableAA`, GUID) που έχουν ακόμη ανοιχτά δελτία παραγγελίας. ```json title="200 OK" [ "A98EFBDE-5FBB-4128-BBD8-B6DDA701AB20" ] ``` ### GetOpenOrdersForTable GET `/api/v1/Provider/GetOpenOrdersForTable?TableId={guid}&VatNumber=123456789&Branch=0` ```json title="200 OK" [ { "mark": "400001930000011", "uid": "…", "quantityProducts": 2, "totalNet": 15.00 } ] ``` Επιστρέφει 404 όταν το τραπέζι δεν έχει ανοιχτά δελτία. Πηγή: https://developers.novusconceptus.com/el/provider-api/other-endpoints/ --- # Σφάλματα & statusCode Ένα παραστατικό μπορεί να αποτύχει σε δύο διαφορετικά επίπεδα. Η εφαρμογή σας πρέπει να χειρίζεται **και τα δύο**. ```mermaid flowchart TD A[POST SendInvoices] --> B{HTTP status} B -- "401" --> U[Άκυρο API key ή ΑΦΜ
χωρίς δικαίωμα
διορθώστε τις ρυθμίσεις] B -- "400" --> V["Απορρίφθηκε από τον Πάροχο
body: { errors: [...] }
ΔΕΝ στάλθηκε στην ΑΑΔΕ
διορθώστε και ξαναστείλτε"] B -- "5xx / timeout / χωρίς σύνδεση" --> T["Ο Πάροχος δεν απαντά
ξαναστείλτε με transmissionFailure = 1
(μέσα σε 1 ημέρα)"] B -- "200" --> S{"response[0].statusCode"} S -- Success --> OK[Εκδόθηκε ✔] S -- Offline --> OFF["Εκδόθηκε ✔ — η ΑΑΔΕ δεν απαντούσε
ο Πάροχος θα το διαβιβάσει
ΜΗΝ το ξαναστείλετε
μετά ελέγξτε ότι πήρε MARK"] S -- "ValidationError
XMLSyntaxError
TechnicalError" --> E["Απορρίφθηκε από την ΑΑΔΕ
δείτε το errors[].error[]
διορθώστε και ξαναστείλτε"] ``` ## Κωδικοί HTTP | HTTP | Τι σημαίνει | Body | Εκδόθηκε; | |:---:|:---|:---|:---:| | **200** | Η κλήση επεξεργάστηκε. Δείτε το `statusCode`. | `{ "response": [ … ] }` | Ανάλογα με το `statusCode` | | **400** | Απορρίφθηκε από τους ελέγχους του Παρόχου. Δείτε τη [λίστα των κανόνων](https://developers.novusconceptus.com/el/provider-api/send-invoices/#provider-validation-before-aade). | `{ "errors": ["…"] }` | Όχι | | **401** | Λείπει ή είναι άκυρο το `API-KEY`, ή ο ΑΦΜ εκδότη δεν είναι ενεργός στον λογαριασμό σας. | κενό ή `{ "errors": ["…"] }` | Όχι | | **404** | Δεν βρέθηκε, π.χ. άγνωστο τραπέζι ή παραστατικό. | `{ "errors": ["…"] }` | — | | **5xx** | Απρόσμενο σφάλμα στον Πάροχο. | διάφορο | Θεωρήστε ότι **δεν** εκδόθηκε, δείτε παρακάτω | ## statusCode | `statusCode` | Εκδόθηκε; | Τι κάνετε | |:---|:---:|:---| | `Success` | | Αποθηκεύετε `invoiceMark`, `invoiceUid`, `authenticationCode`, `invoiceUrl`. | | `Offline` | | Το παραστατικό **εκδόθηκε**, με UID. Η ΑΑΔΕ δεν απαντούσε και ο Πάροχος θα το διαβιβάσει αυτόματα. **Μην το ξαναστείλετε**, αλλά ελέγξτε αργότερα ότι πήρε MARK. Δείτε [Offline](https://developers.novusconceptus.com/el/provider-api/errors/#offline). | | `ValidationError` | | Η ΑΑΔΕ απέρριψε τα δεδομένα. Διαβάστε το `errors[].error[].code` και το `message`, διορθώστε και ξαναστείλτε. Κωδικοί: [Κωδικοί σφαλμάτων ΑΑΔΕ](https://developers.novusconceptus.com/el/provider-api/aade-errors/). | | `XMLSyntaxError` | | Μια τιμή είναι εκτός του σχήματος της ΑΑΔΕ, π.χ. άκυρο `invoiceType` ή κωδικός. Διορθώστε και ξαναστείλτε. | | `TechnicalError` | | Απρόσμενο σφάλμα στην ΑΑΔΕ. Ξαναδοκιμάστε αργότερα. | **Προσοχή: Το HTTP 200 δεν σημαίνει επιτυχία** Και ένα παραστατικό που απορρίφθηκε (`ValidationError`) επιστρέφει **HTTP 200**. Το παραστατικό έχει εκδοθεί μόνο όταν το `statusCode` είναι `Success` ή `Offline`. Παράδειγμα απόρριψης από την ΑΑΔΕ: ```json { "response": [ { "index": 1, "statusCode": "ValidationError", "invoiceMark": 0, "invoiceUid": null, "invoiceUrl": null, "credits": null, "errors": [ { "error": [ { "code": "228", "message": "The UID: C10262E0AE13C6AFD7DD2C980900BB0DF266D9C5 is invalid . It has already been sent for another invoice (MARK:400001939576037 , AUTHENTICATION_CODE:1D0F38488D532D3BB715408E01283D39E8D56A3A)" } ] } ] } ] } ``` **Συμβουλή: Σφάλμα 228: «έχει ήδη σταλεί»** Συνήθως σημαίνει ότι η προηγούμενη προσπάθειά σας **πέτυχε**, αλλά δεν πήρατε ποτέ την απάντηση (π.χ. timeout). Το μήνυμα περιέχει το MARK και το Authentication Code του αρχικού. Χρησιμοποιήστε αυτά αντί να το εκδώσετε ξανά. Το αρχικό το βρίσκετε και με το [RequestTransmittedDocs](https://developers.novusconceptus.com/el/provider-api/other-endpoints/#requesttransmitteddocs), με φίλτρο το `uid`. ## Offline & επαναλήψεις - **Δεν φτάνετε στον Πάροχο** (timeout, σφάλμα δικτύου, 5xx): ξαναστείλτε το ίδιο παραστατικό. Αν ο Πάροχος συνεχίζει να μην απαντά, εκδώστε το παραστατικό τοπικά και στείλτε το μέσα σε 1 ημέρα με `"transmissionFailure": 1`. - **`statusCode = "Offline"`:** το παραστατικό **εκδόθηκε**, αλλά η ΑΑΔΕ δεν απαντούσε και ο Πάροχος θα το διαβιβάσει αργότερα. **Μην το ξαναστείλετε ποτέ.** Το τελικό MARK το βρίσκετε με `RequestTransmittedDocs?uid=…`. - **Ελέγξτε ότι ένα `Offline` πήρε τελικά MARK.** Όσο η ΑΑΔΕ δεν απαντά, γίνονται μόνο οι έλεγχοι του Παρόχου, όχι της ΑΑΔΕ. Ένα παραστατικό με λάθος στα δεδομένα μπορεί να μη γίνει δεκτό όταν διαβιβαστεί. [Πώς το ελέγχετε](https://developers.novusconceptus.com/el/guides/offline/#check-offline). Αναλυτικά, βήμα βήμα: [Offline & επαναλήψεις](https://developers.novusconceptus.com/el/guides/offline/). ## Η μορφή των σφαλμάτων με μια ματιά **Πάροχος (HTTP 400/401/404)** ```json { "errors": [ "The sum of the payment methods amount must be equal to the total gross value of the invoices." ] } ``` **ΑΑΔΕ (HTTP 200)** ```json { "response": [ { "statusCode": "ValidationError", "errors": [ { "error": [ { "code": "203", "message": "…" } ] } ] } ] } ``` Πηγή: https://developers.novusconceptus.com/el/provider-api/errors/ --- # Κωδικοί σφαλμάτων ΑΑΔΕ Αυτά τα σφάλματα έρχονται **από την ΑΑΔΕ**, μέσα στο `response[].errors[].error[]`, με HTTP 200 και `statusCode` = `ValidationError`, `XMLSyntaxError` ή `TechnicalError`. Για τα σφάλματα του Παρόχου, *πριν* το παραστατικό φτάσει στην ΑΑΔΕ, δείτε [Σφάλματα & statusCode](https://developers.novusconceptus.com/el/provider-api/errors/). Το μήνυμα στην απάντηση έρχεται **στα αγγλικά**, όπως στην τελευταία στήλη. Πηγή: ΑΑΔΕ myDATA 2.0.2, §7.2 (ERP) και §7.2 (Πάροχοι). Οι κωδικοί με αφορούν μόνο τους Παρόχους. | Κωδικός | Status | Στοιχείο | Περιγραφή | Μήνυμα στην απάντηση (EN) | |:---:|:---|:---|:---|:---| | `101` | XMLSyntaxError | Application | Σφάλμα επικύρωσης σύνταξης XML | XML Syntax Validation Error | | `102` | ValidationError | Application | Ο ΑΦΜ {ΑΦΜ} δεν ανήκει σε ενεργή εταιρεία | Vat number {vatNumber} does not belong to active corporation | | `103` | ValidationError | Application | Περάστε το MARK στις παραμέτρους αιτήματος | Please pass mark in the request parameters | | `104` | ValidationError | Application | Το αιτούμενο τιμολόγιο δεν βρέθηκε | Requested Invoice was not found | | `105` | ValidationError | Application | Ο ΑΦΜ χρήστη {ΑΦΜ} δεν είναι εξουσιοδοτημένος να εκτελέσει αυτήν τη μέθοδο για τον ΑΦΜ {ΑΦΜ} | User VAT number {vatNumber} is not authorized to execute this method for VAT number {vatNumber} | | `201` | ValidationError | Invoice | Ο ΑΦΜ χρήστη {ΑΦΜ} δεν είναι εξουσιοδοτημένος να εκτελέσει αυτήν τη μέθοδο | User VAT number {vatNumber} is not authorized to execute this method | | `202` | ValidationError | Invoice | Μη έγκυρος ελληνικός ΑΦΜ | Invalid Greek VAT number | | `203` | ValidationError | Invoice | Η Ακαθάριστη Αξία δεν ταιριάζει με το άθροισμα της καθαρής αξίας συν τους φόρους | Gross Value doesn't match with sum of net value plus taxes | | `204` | ValidationError | Invoice | Το {Πεδίο} είναι υποχρεωτικό για αυτόν τον τύπο τιμολογίου | {Field} is mandatory for this invoice type | | `205` | ValidationError | Invoice | Το {Πεδίο} είναι απαγορευμένο για αυτόν τον τύπο τιμολογίου | {Field} is forbidden for this invoice type | | `206` | TechnicalError | Invoice | Μη αναμενόμενο τεχνικό σφάλμα για τη γραμμή τιμολογίων | Unexpected technical error for invoice line | | `207` | ValidationError | Invoice | Το άθροισμα των καθαρών αξιών των γραμμών τιμολογίου δεν ταιριάζει με τη συνολική καθαρή αξία του τιμολογίου | The sum of net values of the invoice lines doesn't match with total net value of the invoice | | `208` | ValidationError | Invoice | Το άθροισμα των μικτών αξιών των γραμμών τιμολογίου δεν ταιριάζει με τη συνολική ακαθάριστη αξία του τιμολογίου | The sum of gross values of the invoice lines doesn't match with total gross value of the invoice | | `209` | ValidationError | Invoice | Το άθροισμα του ποσού ΦΠΑ των γραμμών τιμολογίου δεν ταιριάζει με το συνολικό ποσό ΦΠΑ του τιμολογίου | The sum of vat amount of the invoice lines doesn't match with total vat amount of the invoice | | `210` | ValidationError | Invoice | Το άθροισμα του παρακρατηθέντος ποσού των γραμμών τιμολογίου δεν ταιριάζει με το συνολικό παρακρατούμενο ποσό του τιμολογίου | The sum of withheld amount of the invoice lines doesn't match with total withheld amount of the invoice | | `211` | ValidationError | Invoice | Η συναλλαγματική ισοτιμία πρέπει να είναι μεγαλύτερη από 0 όταν το νόμισμα δεν είναι ευρώ | Exchange Rate must be greater than 0 when the currency is not Euro | | `212` | ValidationError | Invoice | Το στοιχείο AA πρέπει να είναι αριθμός με τιμή μεταξύ 0 και 18446744073709551615 για εκδότη από την Ελλάδα | AA element must be number with value between 0 and 18446744073709551615 for issuer from Greece | | `213` | ValidationError | Invoice | Το {Πεδίο} πρέπει να έχει τιμή 0 για αυτόν τον τύπο τιμολογίου | {Field} must have value 0 for this invoice type | | `214` | ValidationError | Invoice | Το στοιχείο {Στοιχείο} πρέπει να αποσταλεί μόνο εάν είναι αληθές | Element {Element} must be sent only if it is true | | `215` | ValidationError | Invoice | Η κατηγορία ΦΠΑ πρέπει να έχει τιμή {τιμή} για αυτόν τον τύπο τιμολογίου [Πιθανές τιμές {τιμή}: {7, 8}] | Vat category must have value {value} for this invoice type [Possible { value } values: {7, 8} | | `216` | ValidationError | Invoice | Η κατηγορία ΦΠΑ πρέπει να έχει αξία διαφορετική από 8 για αυτόν τον τύπο τιμολογίου | Vat category must have value other than 8 for this invoice type | | `217` | ValidationError | Invoice | Όταν η Κατηγορία ΦΠΑ έχει τιμή 7, το στοιχείο Κατηγορία Απαλλαγής ΦΠΑ είναι υποχρεωτικό | When vatCategory has value 7, element vatExemptionCategory is mandatory | | `218` | ValidationError | Invoice | Το Ποσό ΦΠΑ πρέπει να έχει τιμή 0 για αυτόν τον τύπο τιμολογίου | Vat Amount must have value 0 for this invoice type | | `219` | ValidationError | Invoice | Το Όνομα Εκδότη απαγορεύεται για τον Εκδότη από την Ελλάδα | Issuer Name is forbidden for Issuer from Greece | | `220` | ValidationError | Invoice | Το όνομα Αντισυμβαλλόμενος απαγορεύεται για τον Αντισυμβαλλόμενο από την Ελλάδα | Counterpart Name is forbidden for Counterpart from Greece | | `221` | ValidationError | Invoice | Το {Πεδίο} είναι απαγορευμένο για τις γραμμές που έχουν Τύπο Στοιχείου Τιμολογίου = 2 για αυτόν τον τύπο τιμολογίου | {Field} is forbidden for the lines that have invoiceDetailType = 2 for this invoice type | | `222` | ValidationError | Invoice | Το {Πεδίο} πρέπει να έχει τιμή μεγαλύτερη από 0 για αυτόν τον τύπο τιμολογίου | {Field} must have value greater than 0 for this invoice type | | `223` | ValidationError | Invoice | Μη υποστηριζόμενος τύπος τιμολογίου | Unsupported invoice type | | `224` | ValidationError | Invoice | Επιτρέπονται φόροι είτε ανά γραμμή τιμολογίου είτε ανά τιμολόγιο (όχι και στα δύο) | Taxes are allowed either per invoice line or per invoice (not in both) | | `225` | ValidationError | Invoice | Το {Πεδίο} πρέπει να υπάρχει (δεν μπορεί να είναι κενό) καθώς το {Πεδίο} δεν είναι κενό (γραμμή τιμολογίου {Αριθμός Γραμμής}) | {Field} must exist (cannot be null) since the {Field} is not null (invoice line {lineNumber}) | | `226` | ValidationError | Invoice | Το άθροισμα του ποσού {Πεδίο} του τιμολογίου {ενότητα} δεν ταιριάζει με το συνολικό ποσό {Πεδίο} του τιμολογίου | The sum of {field} amount of the invoice {section} doesn't match with total {field} amount of the invoice | | `227` | ValidationError | Invoice | Το {Πεδίο1} δεν μπορεί να υπάρχει (πρέπει να είναι κενό) καθώς το {Πεδίο1} είναι κενό (γραμμή τιμολογίου: {Αριθμός Γραμμής}) [Πιθανές τιμές {Πεδίο1, Πεδίο2}: {'Ποσό Τελών', Κατηγορία Ποσοστού Τελών'}, {'Ποσό Ψηφιακού Τέλους συναλλαγής,' Κατηγορία Ποσοστού Ψηφιακού Τέλους συναλλαγής}, {'Παρακρατηθέν Ποσό', 'Κατηγορία Παρακρατηθέντος Ποσοστού'}] | {Field1} cannot exist (must be null) since the {Field1} is null (invoice line : {lineNumber}) [ Possible {Field1, Field2} values: {‘feesAmount’, feesPercentCategory’}, {‘stampDutyAmount, ‘stampDutyPercentCategory’ }, {‘withheldAmount’, ‘withheldPercentCategory’}] | | `228` (Αφορά μόνο Παρόχους) | ValidationError | Invoice | Το {Πεδίο} δεν είναι έγκυρο [Πιθανές τιμές {Πεδίο}: {UID, Τύπος Τιμολογίου} [Αφορά μόνο τους παρόχους] | {Field} is invalid [Possible {Field} values: {UID, InvoiceType} [Αφορά μόνο τους παρόχους] | | `229` | ValidationError | Invoice | Το {Πεδίο1} δεν είναι σωστό σύμφωνα με το δεδομένο: {Πεδίο2} (γραμμή τιμολογίου: {Αριθμός Γραμμής}) [Πιθανές τιμές {Πεδίο1, Πεδίο2}: {'Ποσό Τελών', Κατηγορία Ποσοστού Τελών'}, {'Ποσό Ψηφιακού Τέλους συναλλαγής,' Κατηγορία Ποσοστού Ψηφιακού Τέλους συναλλαγής}, {'Παρακρατηθέν Ποσό', 'Κατηγορία Παρακρατηθέντος Ποσοστού'}] [Αφορά μόνο τους παρόχους] | {Field1} is not correct according to the given: {Field2} (invoice line: {lineNumber}) [ Possible {Field1, Field2} values: {‘feesAmount’, feesPercentCategory’}, {‘stampDutyAmount, ‘stampDutyPercentCategory’ }, {‘withheldAmount’, ‘withheldPercentCategory’}] [Αφορά μόνο τους παρόχους] | | `230` | ValidationError | Invoice | Το {Πεδίο} είναι υποχρεωτικό για στοιχεία τιμολογίου (αριθμός} [Πιθανές τιμές {Πεδίο} : {Ταξινομήσεις E3, ταξινομήσεις ΦΠΑ} | {Field} is mandatory for invoice detail (number} [Possible {Field} values: {E3 classifications, VAT classifications} | | `231` | ValidationError | Invoice | Το {Πεδίο} απαγορεύεται για στοιχεία τιμολογίου (αριθμός} [Πιθανές τιμές {Πεδίο} : {Ταξινομήσεις E3, ταξινομήσεις ΦΠΑ} | {Field} is forbidden for invoice detail (number} [Possible {Field} values: {E3 classifications, VAT classifications} | | `233` | ValidationError | Invoice | UID: Το " + {uid} + " έχει ήδη σταλεί [Αφορά μόνο τους παρόχους] | UID: " + {uid} + " has already been sent [Αφορά μόνο τους παρόχους] | | `234` | ValidationError | Invoice | Οι τιμές 7 ή 8 δεν επιτρέπονται για την κατηγορία ΦΠΑ για αυτόν τον τύπο τιμολογίου | The values 7 or 8 are not allowed for Vat Category for this invoice type | | `235` | ValidationError | Invoice | Ο εκδότης πρέπει να είναι διαφορετικός από τον αντίστοιχο | Issuer must be different from counterpart | | `236` (Αφορά μόνο Παρόχους) | ValidationError | Invoice | Ο Αποστολέας (ΑΦΜ): " + {ΑΦΜ} + " πρέπει να είναι διαφορετικός από τον εκδότη (ΑΦΜ) | The Sender (vatnumber): " + {afm} + " must be different from the issuer (vatnumber) | | `237` | ValidationError | Invoice | Η υποκείμενη αξία(εις) των φόρων δεν μπορεί να είναι μεγαλύτερη από τη συνολική καθαρή αξία του τιμολογίου | Underlying Value(s) of taxes cannot be greater than the total net value of invoice | | `239` | ValidationError | Invoice | Ο φόρος (α) των φόρων δεν μπορεί να είναι μεγαλύτερος από τη συνολική καθαρή αξία του τιμολογίου | Taxamount(s) of taxes cannot be greater than the total net value of invoice | | `240` | ValidationError | Invoice | Ποσό Φόρου {Ποσό Φόρου} της Γραμμής Φόρου: Το {A/A} δεν μπορεί να είναι μεγαλύτερο από την αντίστοιχη υποκείμενη αξία | Taxamount {Taxamount } of taxline: {A/A} cannot be greater than the corresponding underlying value | | `241` | ValidationError | Invoice | Το {Πεδίο1} δεν μπορεί να είναι μεγαλύτερο από την αντίστοιχη καθαρή αξία γραμμής τιμολογίου (Γραμμή Τιμολογίου: + {αριθμός γραμμής}) [Πιθανές τιμές {Πεδίο1}: {'Ποσό Τελών', 'Ποσό Ποσοστού Λοιπών Φόρων', 'Ποσό Τέλους Ψηφιακού Τέλους συναλλαγής, 'Παρακρατηθέν Ποσό'}] | {Field1} cannot be greater than the corresponding invoiceline net value (invoice line: + {linenumber} ) [ Possible {Field1} values: {‘feesAmount’, ‘otherTaxesPercentAmount’, ‘stampDutyAmount, ‘withheldAmount’}] | | `242` | ValidationError | Invoice | Η χώρα του {Πεδίο} για αυτόν τον τύπο τιμολογίου πρέπει να είναι η Ελλάδα [Πιθανές τιμές {Πεδίο}: {Εκδότης, Αντισυμβαλλόμενος} | {Field} 's country for this invoice type must be Greece [Possible {Field} values: {Issuer, Counterpart} | | `243` | ValidationError | Invoice | Η χώρα του {Πεδίο} για αυτόν τον τύπο τιμολογίου πρέπει να είναι στην Ευρώπη αλλά όχι στην Ελλάδα [Πιθανές τιμές {Πεδίο}: {Εκδότης, Αντισυμβαλλόμενος} | {Field} 's country for this invoice type must be in Europe but not Greece [Possible {Field} values: {Issuer, Counterpart} | | `244` | ValidationError | Invoice | Η χώρα του {Πεδίο} για αυτόν τον τύπο τιμολογίου δεν πρέπει να είναι στην ΕΕ [Πιθανές τιμές {Πεδίο}: {Εκδότης, Αντισυμβαλλόμενος} | {Field} 's country for this invoice type must not be in EU [Possible {Field} values: {Issuer, Counterpart} | | `245` (Αφορά μόνο Παρόχους) | ValidationError | Invoice | Ο πάροχος δεν είναι εξουσιοδοτημένος να εκδίδει τιμολόγια για: {ΑΦΜ} | Provider is not authorised to issue Invoices for: {vatNumber} | | `246` | ValidationError | Invoice | Το τιμολόγιο τύπου 1.5 πρέπει να έχει τουλάχιστον μία γραμμή με: Τύπος Στοιχείου = 1 και μία με: Τύπος Στοιχείου = 2 | Invoice of type 1.5 must have at least one line with detailtype = 1 and one with detail type=2 | | `247` | ValidationError | Invoice | Γραμμή τιμολογίου: {Αριθμός Γραμμής}. Το {Πεδίο} είναι απαγορευμένο. [Πιθανές τιμές {Πεδίο}: {Τύπος rec =1, Τύπος rec =4, Τύπος rec =5} | Invoice line: {lineNumber}. {Field} is forbidden. [Possible {Field} values: {recType=1, recType=4, recType=5} | | `248` | ValidationError | Invoice | Το τιμολόγιο με MARK {mark} δεν μπορεί να ακυρωθεί επειδή δεν δημοσιεύτηκε από τον ΑΦΜ {ΑΦΜ} | Invoice with MARK {mark} cannot be cancelled because was not posted by VAT number {vat} | | `249` | ValidationError | Invoice | Το τιμολόγιο με MARK {mark} δεν μπορεί να ακυρωθεί λόγω δημοσίευσης από τον πάροχο | Invoice with MARK {mark} cannot be cancelled because of being posted by provider | | `250` | ValidationError | Invoice | Το τιμολόγιο με MARK {mark} δεν μπορεί να ακυρωθεί επειδή δημοσιεύτηκε από την τιμολόγηση myDATA | Invoice with MARK {mark} cannot be cancelled because of being posted by myDATA Invoicing | | `251` | ValidationError | Invoice | Το τιμολόγιο με MARK {mark} δεν μπορεί να ακυρωθεί επειδή έχει ήδη ακυρωθεί | Invoice with MARK {mark} cannot be cancelled because of being already cancelled | | `252` | ValidationError | Invoice | Η εγγραφή με MARK {mark} δεν είναι έγκυρο τιμολόγιο | Record with MARK {mark} is not a valid Invoice | | `253` | ValidationError | Invoice | Η Ημερομηνία Έκδοσης δεν είναι έγκυρη, πρέπει να είναι μεγαλύτερη ή ίση με {ημερομηνία} και μικρότερη ή ίση με την τρέχουσα ημερομηνία [Δεν αφορά τους παρόχους] | IssueDate is invalid, it must be greater or equal than {date} and less or equal than current date [Δεν αφορά τους παρόχους] | | `254` | ValidationError | Invoice | Γραμμή Φόρου (Σύνολα Φόρου): + {Αριθμός Γραμμής Φόρου}. Το {Πεδίο + Δεδομένα Πεδίου} απαγορεύεται | TaxLine (TaxTotals) : + {taxlinenumber} . {field + fieldData} is forbidden | | `255` | ValidationError | Invoice | Το τιμολόγιο με MARK {mark} δεν μπορεί να ακυρωθεί επειδή είναι συνδεδεμένο με ενεργό τιμολόγιο με MARK {mark1} | Invoice with MARK {mark} cannot be cancelled because it is connected with active invoice with MARK {mark1} | | `256` | ValidationError | Invoice | Το τιμολόγιο με MARK {mark} δεν μπορεί να ταξινομηθεί επειδή έχει ήδη ακυρωθεί | Invoice with MARK {mark} cannot be classified because of being already cancelled | | `257` | ValidationError | Invoice | Το τιμολόγιο με MARK {mark} δεν μπορεί να ακυρωθεί επειδή έχει αναρτηθεί από το Φορολογικό Μητρώο | Invoice with MARK {mark} cannot be cancelled because of being posted by TaxRegister | | `258` | ValidationError | Invoice | Όλες οι σειρές τιμολογίων πρέπει να έχουν {Πεδίο} [Πιθανές τιμές {Πεδίο}: {Τύπος rec =3} | All invoice rows should have {Field} [Possible {Field} values: {recType=3} | | `259` | ValidationError | Invoice | Το τιμολόγιο δεν μπορεί να αναρτηθεί επειδή αντικαθιστά το τιμολόγιο με MARK {mark} που έχει το ίδιο UID και εξακολουθεί να συνδέεται με ενεργά τιμολόγια | Invoice cannot be posted because it replaces invoice with MARK {mark} having same UID and is still connected with active invoices | | `260` | ValidationError | Invoice | Η Ημερομηνία Έκδοσης δεν είναι έγκυρη, πρέπει να είναι μικρότερη ή ίση με την τρέχουσα ημερομηνία | IssueDate is invalid, it must be less or equal than current date | | `261` | ValidationError | Invoice | Κάθε σειρά τιμολογίου πρέπει να έχει μοναδικό αριθμό γραμμής | Each Invoice row must have unique line number | | `262` | ValidationError | Invoice | Το μήκος {Πεδίο} πρέπει να είναι μικρότερο ή ίσο από το {αριθμός} | {field} length must be less or equal than {number} | | `263` | ValidationError | Invoice | Το τιμολόγιο με Τύπο Τροποποίησης Τιμολογίου {Πεδίο} και Ημερομηνία Έκδοσης {Ημερομηνία Έκδοσης} δεν μπορεί να σταλεί νωρίτερα από {ημερομηνία} [Πιθανές τιμές {Πεδίο}: {Τύπος Τροποποίησης Τιμολογίου =1,2,3,4} | Invoice with invoiceVariationType {field} and IssueDate {issueDate} cannot be sent earlier than { date} [Possible {field} values: {invoiceVariationType=1,2,3,4} | | `264` | ValidationError | Invoice | Το τιμολόγιο με Τύπο Τροποποίησης Τιμολογίου {Πεδίο} δεν μπορεί να σταλεί για έτος Ημερομηνίας Έκδοσης νωρίτερα από το 2021 [Πιθανές τιμές {Πεδίο}: {Τύπος Τροποποίησης Τιμολογίου=1,2,3,4} | Invoice with invoiceVariationType {field} cannot be sent for issueDate's year earlier than 2021 [Possible {field} values: {invoiceVariationType=1,2,3, 4} | | `265` | ValidationError | Invoice | Ο μέγιστος επιτρεπόμενος αριθμός τιμολογίων που περιέχονται σε ένα μήνυμα είναι 5000 | The maximum allowed number of invoices contained in one message is 5000 | | `266` | ValidationError | Invoice | Το {msg11} είναι απαγορευμένο {msg2} [Πιθανές τιμές {msg1}: {'Τιμολόγιο με πεδίο Τύπος Ειδικής Κατηγορίας Τιμολογίου με τιμή 4 (αφορολόγητο τιμολόγιο)'} [Πιθανές τιμές {msg2}: {'για τιμολόγια που αποστέλλονται από το κανάλι παρόχου'} | {msg11} is forbidden {msg2} [Possible {msg1} values: {‘Invoice with SpecialInvoiceCategoryType field with value 4 (taxfree invoice)’} [Possible {msg2} values: {‘for invoices sent by provider channel’} | | `267` | ValidationError | Invoice | Το {msg11} επιτρέπεται {msg2} [Πιθανές τιμές {msg1}: {'Τιμολόγιο με πεδίο Τύπος Ειδικής Κατηγορίας Τιμολογίου με τιμή 4 (αφορολόγητο τιμολόγιο)'} [Πιθανές τιμές {msg2}: {'μόνο για τιμολόγια που αποστέλλονται από κανάλι erp ή timologio'} | {msg11} is allowed {msg2} [Possible {msg1} values: {‘Invoice with SpecialInvoiceCategoryType field with value 4 (taxfree invoice)’} [Possible {msg2} values: {‘only for invoices sent by erp or timologio channel’} | | `268` | ValidationError | Invoice | Στην περίπτωση του Τιμολογίου Καυσίμων, τουλάχιστον μία γραμμή πρέπει να έχει Κωδικό Καυσίμων διαφορετικό από το 999 | In case of fuelInvoice, at least one line must have fuelCode different from 999 | | `269` | ValidationError | Invoice | Στην περίπτωση του Τιμολογίου Καυσίμων, η καθαρή αξία της γραμμής τιμολογίου με τον Κωδικό Καυσίμων 999 πρέπει να είναι μικρότερη ή ίση από το άθροισμα των καθαρών αξιών των άλλων γραμμών τιμολογίων | In case of fuelInvoice, the net value of the invoice line with fuelCode 999 must be less or equal than sum of net values of the other invoice lines | | `270` | ValidationError | Invoice | Στην περίπτωση του Τιμολογίου Καυσίμων, μόνο μία γραμμή μπορεί να έχει Κωδικό Καυσίμων ίσο με 999 | In case of fuelInvoice, only one line can have fuelCode equal with 999 | | `271` | ValidationError | Invoice | Αριθμός γραμμής τιμολογίου: {αριθμός γραμμής}. Το πεδίο Κατηγορία Απαλλαγής ΦΠΑ χρησιμοποιείται μόνο στην περίπτωση Κατηγορία ΦΠΑ = 7 | Invoice Line Number: {linenumber}. VatExemptionCategory field is used only in case of vatCategory = 7 | | `272` | ValidationError | Invoice | Το {Πεδίο} είναι υποχρεωτικό + {Περισσότερες Πληροφορίες} [{Περισσότερες Πληροφορίες} μπορεί να είναι κενό] | {field} is mandatory + {moreInfo} [{moreInfo} μπορεί να είναι null] | | `273` | ValidationError | Invoice | Το {Πεδίο} δεν επιτρέπεται + {Περισσότερες Πληροφορίες} [{περισσότερες πληροφορίες} μπορεί να είναι κενό] | {field} is not allowed + {moreInfo} [{moreInfo} μπορεί να είναι null] | | `274` | ValidationError | Invoice | Το {Πεδίο} είναι υποχρεωτικό για αυτόν τον τύπο τιμολογίου + {Περισσότερες Πληροφορίες} [{περισσότερες πληροφορίες} μπορεί να είναι κενό] | {field} are mandatory for this invoicetype + {moreInfo} [{moreInfo} μπορεί να είναι null] | | `275` | ValidationError | Invoice | Το μήνυμα δεν μπορεί να περιέχει τιμολόγια και τιμολόγια/δελτία αποστολής με το ίδιο uid | The message cannot contain invoices and invoices/consignment notes with the same uid | | `276` | ValidationError | Invoice | Το μήκος του {Πεδίο} πρέπει να είναι ίσο με τον {αριθμός} | {field} length must be equal with {number} | | `277` | ValidationError | Invoice | Το μήνυμα δεν μπορεί να περιέχει τιμολόγια τύπου: {Τύπος Τιμολογίου} με το ίδιο uid | The message cannot contain invoices of type: {invoiceType} with the same uid | | `278` | ValidationError | Invoice | Η Ημερομηνία Έκδοσης δεν είναι έγκυρη, πρέπει να είναι μεγαλύτερη ή ίση με την τρέχουσα ημερομηνία | IssueDate is invalid, it must be greater or equal with current date | | `279` | ValidationError | Invoice | Το τιμολόγιο με MARK {mark} δεν μπορεί να ακυρωθεί + {Περισσότερες Πληροφορίες} [{περισσότερες πληροφορίες} μπορεί να είναι κενό] | Invoice with MARK {mark} cannot be cancelled + {moreInfo} [{moreInfo} μπορεί να είναι null] | | `280` | ValidationError | Invoice | Η Ημερομηνία Αποστολής δεν είναι έγκυρη, πρέπει να είναι μεγαλύτερη ή ίση με την τρέχουσα ημερομηνία | DispatchDate is invalid, it must be greater or equal with current date | | `281` | ValidationError | Invoice | Τιμολόγιο τύπου 8.6 με totalCancelDeliveryOrders = αληθής, πρέπει να έχει μόνο μία σειρά. Η καθαρή αξία και το ποσό του ΦΠΑ αυτής της σειράς πρέπει να είναι ίσα με 0 και η κατηγορία του ΦΠΑ πρέπει να έχει τιμή 8 | Invoice of type 8.6 with totalCancelDeliveryOrders = true, must have only one row. The net value and vat amount of this row must be equal with 0 and its vat category must have value 8 | | `282` | ValidationError | Invoice | Το {msg1} πρέπει να έχει τιμή μεγαλύτερη ή ίση του μηδενός για αυτό΄ν τον τύπο του παραστατικού [Πιθανές {msg1} τιμές: {‘Η καθαρή αξία κάθε γραμμής,με recType = 6,’} | {msg1} must have value greater or equal than 0 for this invoice type [Possible {msg1} values: {‘NetValue per line, which have recType = 6,’} | | `283` | ValidationError | Invoice | Το παραστατικό με ΜΑΡΚ {mark} είναι {invoicetype value}. Με την CancelDeliveryNote μέθοδο μόνο 9.3 παραστατικά μπορούν να ακυρωθούν | Invoice with MARK {mark} is {invoiceType Value} invoice type. With CancelDeliveryNote method only 9.3 invoice type can be cancelled. | | `284` | ValidationError | Invoice | Περάστε το ΑΦΜ οντότητας στις παραμέτρους σώμα του http αιτήματος | Please pass entityVatNumber in the request parameters | | `285` | ValidationError | Invoice | Ο πάροχος με {ΑΦΜ Παρόχου} δεν είναι εξουσιοδοτημένος να εκτελεί αυτή τη μέθοδο για: {ΑΦΜ Οντότητας} | Provider with VAT number {vatNumber} is not authorised to execute this method for: {entityVatNumber} | | `286` | ValidationError | Invoice | Ο εκδότης πρέπει να είναι ίδιος με τον λήπτη | Issuer must be same with counterpart | | `287` | ValidationError | Invoice | Η χώρα του {Πεδίο} για αυτόν τον τύπο τιμολογίου δεν πρέπει να είναι η Ελλάδα [Πιθανές τιμές {Πεδίο}: {Εκδότης, Αντισυμβαλλόμενος} | {Field} 's country for this invoice type must not be Greece [Possible {Field} values: {Issuer, Counterpart} | | `288` (Αφορά μόνο Παρόχους) | ValidationError | Invoice | Η υποβολή τιμολογίου επιτρέπεται εντός δύο ημερών από την ημερομηνία έκδοσης όταν το TransmissionFlag = 4 | Invoice submission is allowed within two days from the issue date when TransmissionFlag = 4 | | `289` | ValidationError | Invoice | Το ΑΦΜ του {Πεδίο} πρέπει να είναι 000000000 [Πιθανές τιμές {Πεδίο}: {Εκδότης, Αντισυμβαλλόμενος} | {Field} VAT number must be 000000000 [Possible {Field} values: {Issuer’s, Counterpart’s} | | `290` | ValidationError | Invoice | Δεν επιτρέπονται ταυτόχρονα nonObligatedRecipient=true and withoutDigitalTransportTrac king=true | Both nonObligatedRecipient=true and withoutDigitalTransportTrac king=true are not allowed | | `301` | ValidationError | Classification | Τα τιμολόγια με MARK {mark} δεν βρέθηκαν | Invoices with ΜΑΡΚ {mark} requested not found | | `302` | ValidationError | Classification | Διπλότυπος αριθμός γραμμής ταξινόμησης {Αριθμός Γραμμής} | Duplicate classification line number {lineNumber} | | `303` | ValidationError | Classification | Ο αριθμός γραμμής {Αριθμός Γραμμής} δεν βρέθηκε στο τιμολόγιο με MARK {mark} | Line number {lineNumber} not found in invoice with MARK {mark} | | `304` | ValidationError | Classification | Όλες οι σειρές τιμολογίων ή καμία θα πρέπει να περιλαμβάνουν ταξινομήσεις | All invoice rows or none should have classifications included | | `305` | ValidationError | Classification | Γραμμή τιμολογίου: {Αριθμός Γραμμής}. Διπλότυπος τύπος ταξινόμησης {Τύπος Ταξινόμησης} και κατηγορία {Κατηγορία Ταξινόμησης} | Invoice line: {lineNumber}. Duplicate classification type {classificationType} and category{classificationCateg ory} | | `306` | ValidationError | Classification | Γραμμή τιμολογίου: {Αριθμός Γραμμής}. Το άθροισμα των ταξινομήσεων δεν είναι ίσο με την καθαρή αξία της γραμμής | Invoice line: {lineNumber}. Sum of classifications are not equal to line's net value | | `307` | ValidationError | Classification | Ο τύπος ταξινόμησης {Τύπος Ταξινόμησης} απαγορεύεται για την κατηγορία ταξινόμησης {Κατηγορία Ταξινόμησης} | Classification type {classificationType} is forbidden for Classification category {classificationCategory} | | `308` | ValidationError | Classification | Η κατηγορία ταξινόμησης {Κατηγορία Ταξινόμησης} απαγορεύεται για τον τύπο τιμολογίου {Τύπος Ταξινόμησης} | Classification category {classificationCategory} is forbidden for Invoice type {classificationType} | | `309` | ValidationError | Classification | Ταξινομήσεις {Τρόπος Ταξινόμησης} απαγορεύονται για τιμολόγιο με σήμα {mark} για λογαριασμό του ΑΦΜ {ΑΦΜ} για σειρά τιμολογίου με τύπο στοιχείου {Τύπος Στοιχείου} | {ClassificationMode} classifications are forbidden for invoice with mark {mark} on behalf of vat number {vatNumber} for invoice row with detail type {detailType} | | `310` | TechnicalError | Classification | Όλες οι ταξινομήσεις τιμολογίων ή καμία θα πρέπει να έχουν τιμή κατηγορίας {Κατηγορία Ταξινόμησης} | All classifications of invoice or none should have category value {classificationCategory} | | `311` | ValidationError | Classification | Ταξινόμηση με τύπο {Τύπος Ταξινόμησης} και κατηγορία " {Κατηγορία Ταξινόμησης} δεν βρέθηκε στην περίληψη τιμολογίων | Classification with type {classificationType} and category " {classificationCategory} not found in invoice summary | | `312` | ValidationError | Classification | Άθροισμα ταξινομήσεων με τύπο {Τύπος Ταξινόμησης} και κατηγορία {Κατηγορία Ταξινόμησης} που δεν ταιριάζει με το σχετικό σύνολο στην περίληψη τιμολογίων | Sum of classifications with type {classificationType} and category {classificationCategory} not matching with related total in invoice summary | | `313` | ValidationError | Classification | Ο τύπος ταξινόμησης {Τύπος Ταξινόμησης} απαγορεύεται για την κατηγορία ταξινόμησης {Κατηγορία Ταξινόμησης} σε συνδυασμό με τον τύπο τιμολογίου {Τύπος Τιμολογίου} | Classification type {classificationType} is forbidden for Classification category {classificationCategory} combined with invoice type {invoiceType} | | `314` | ValidationError | Classification | Όλα τα τιμολόγια πρέπει να περιέχουν είτε την ενότητα ταξινομήσεων εσόδων ή εξόδων, όχι και τις δύο ή καμία | All invoices should contain either income or expenses classifications section, not both or none | | `315` | ValidationError | Classification | Οι χαρακτηρισμοί (ταξινομήσεις) ΦΠΑ δεν έχουν κατηγορία | VAT classifications have no category | | `316` | ValidationError | Classification | Δεν επιτρέπονται χαρακτηρισμοί (ταξινομήσεις) ΦΠΑ σε περίπτωση απαλλαγής από τον ΦΠΑ | VAT classifications are not allowed in case of VAT exemption | | `317` | ValidationError | Classification | Στοιχεία τιμολογίου {Αριθμός Γραμμής}: Η ταξινόμηση ΦΠΑ πρέπει να είναι τύπου 366 σε περίπτωση Κατηγορία Απαλλαγής ΦΠΑ = 16 | Invoice detail { lineNumber } : VAT classification must be of type 366 in case vatExemptionCategory = 16 | | `318` | ValidationError | Invoice | Το στοιχείο {Πεδίο} πρέπει να έχει την ίδια τιμή με το συσχετισμένο | Element {Field} must have same value with correlated's one | | `319` | ValidationError | Invoice | Η καθαρή αξία του συσχετισμένου τιμολογίου έχει ήδη υπερβεί το άθροισμα των καθαρών αξιών των τιμολογίων που σχετίζονται με αυτό | Net value of correlated invoice already exceeded by sum of net values of invoices correlated to it | | `320` | ValidationError | Invoice | Μη έγκυρος τύπος συσχετισμένου τιμολογίου | Invalid correlated invoice type | | `321` | ValidationError | Classification | Δεν επιτρέπονται ταξινομήσεις μόνο στην περίληψη τιμολογίων | Classifications are not allowed only in the invoice summary | | `322` | ValidationError | Invoice | Μη υποστηριζόμενος τύπος συσχετισμένου τιμολογίου | Unsupported correlated invoice type | | `323` | ValidationError | Classification | Ο χρήστης δεν μπορεί να χρησιμοποιήσει απευθείας αυτήν την υπηρεσία λόγω των ετήσιων ορίων ακαθάριστου εισοδήματος | User cannot use directly this service due to annual gross income limits | | `324` | ValidationError | Classification | Η απόρριψη ή η απόκλιση ταξινόμησης δεν επιτρέπεται να αποστέλλεται με αυτήν τη μέθοδο | Classification rejection or deviation is not allowed to be sent with this method | | `325` | ValidationError | Classification | Ο συνδυασμός του αρχικού τιμολογίου Κατηγορίας ΦΠΑ {ΚατηγορίαΦΠΑ} και της Κατηγορίας Απαλλαγής ΦΠΑ {ΚατηγορίαΑπαλλαγήςΦΠΑ} δεν βρέθηκαν στο Έγγραφο χαρακτηρισμού εξόδων | Initial invoice's combination of vatCategory {vatCategory} and vatExemptionCategory {vatExemptionCategory} not found in ExpensesClassificationDoc | | `326` | ValidationError | Classification | Ο συνδυασμός του αρχικού τιμολογίου Κατηγορίας ΦΠΑ {ΚατηγορίαΦΠΑ}, Κατηγορίας Απαλλαγής ΦΠΑ {ΚατηγορίαΑπαλλαγήςΦΠΑ}, αξίας {αξίας} και ποσού ΦΠΑ {ποσόΦΠΑ} δεν ταιριάζουν με τους χαρακτηρισμούς | Initial invoice's combination of vatCategory {vatCategory}, vatExemptionCategory {vatExemptionCategory}, amount {amount} and VAT amount {vatAmount} not matching classification’s | | `327` | ValidationError | Classification | Συνδυασμός Κατηγορίας ΦΠΑ {ΚατηγορίαΦΠΑ}, Κατηγορίας Απαλλαγής ΦΠΑ {ΚατηγορίαΑπαλλαγήςΦΠΑ}: το ποσό πρέπει να έχει την ίδια αναλογία με το ποσό ΦΠΑ | Combination vatCategory {vatCategory}, vatExemptionCategory {vatExemptionCategory}: Amount must have same analogy with VAT amount | | `328` | ValidationError | Classification | Συνδυασμός Κατηγορίας ΦΠΑ {ΚατηγορίαΦΠΑ}, Κατηγορίας Απαλλαγής ΦΠΑ {ΚατηγορίαΑπαλλαγήςΦΠΑ}: το ποσό ΦΠΑ υπερβαίνει αυτό του αρχικού τιμολογίου για τον ίδιο συνδυασμό | Combination vatCategory {vatCategory}, vatExemptionCategory {vatExemptionCategory}: VAT amount exceedes the one of initial's invoice for same combination | | `329` | ValidationError | Classification | Συνδυασμός Κατηγορίας ΦΠΑ {ΚατηγορίαΦΠΑ}, Κατηγορίας Απαλλαγής ΦΠΑ {ΚατηγορίαΑπαλλαγήςΦΠΑ}: Ο συνδυασμός δε βρέθηκε στο αρχικό παραστατικό | Combination vatCategory {vatCategory}, vatExemptionCategory {vatExemptionCategory}: Combination not found in initial invoice | | `330` | ValidationError | Classification | Απροσδόκητο τεχνικό σφάλμα για τη γραμμή ταξινόμησης | Unexpected technical error for classification line | | `331` | ValidationError | Classification | Δεν ήταν δυνατή η φόρτωση/δεν βρέθηκε έγκυρο έγγραφο επικύρωσης για ταξινόμηση με κατηγορία {κατηγορία_ταξινόμησης} και τύπο {τύπος_ταξινόμησης} | Could not load/found valid validation doc for classification with category {classification_category} and type {classification_type} | | `332` | ValidationError | Classification | Σε περίπτωση απαλλαγής ΦΠΑ, το άθροισμα των ποσών των ταξινομήσεων Ε3 και το άθροισμα των ποσών ΦΠΑ των ταξινομήσεων ΦΠΑ πρέπει να είναι ίσο με τη συνολική καθαρή αξία του τιμολογίου συν τους φόρους που πρέπει να ταξινομηθούν συν το ποσό του μη εξαιρούμενου ΦΠΑ | In case of VAT exemption sum of E3 classifications' amounts and sum of VAT classifications' vat amounts must be equal to invoice total net value plus taxes to be classified plus excluded vat amount | | `333` | ValidationError | Classification | Το άθροισμα των ποσών των ταξινομήσεων E3 πρέπει να είναι ίσο με τη συνολική καθαρή αξία του τιμολογίου συν τους φόρους που πρέπει να ταξινομηθούν | Sum of E3 classifications' amounts must be equal to invoice total net value plus taxes to be classified | | `334` | ValidationError | Classification | Συνδυασμός Κατηγορία ΦΠΑ {Πεδίο1}, Κατηγορία Απαλλαγής ΦΠΑ {Πεδίο2}: Σε περίπτωση χωρίς υποχρέωση ΦΠΑ, απαιτείται ταξινόμηση με παρόμοια κατηγορία απαλλαγής ΦΠΑ, κατηγορία ΦΠΑ 24% ή 17% και τύπο ταξινόμησης 366 [Πιθανές τιμές {Πεδίο1}: {'κενό', [1-8]}] [Πιθανές τιμές {Πεδίο2}: {'κενό', [εύρος τιμών των αιτιών εξαίρεσης από το σχετικό παράρτημα]}] | Combination vatCategory {field1} , vatExemptionCategory {field2} : In case of without VAT obligation, a classification with similar VAT exemption category, VAT category of 24% or 17% and classification type 366 is required [Possible {field1} values: {‘null’, [1-8]}] [Possible {field2} values: {‘null’, [εύρος τιμών των αιτιών εξαίρεσης από το σχετικό παράρτημα]}] | | `335` | TechnicalError | Classification | Η Ταξινόμηση Εξόδων Αποστολής ανά Τιμολόγιο δεν υποστηρίζεται για τιμολόγια καυσίμων ή τιμολόγια τύπου 1.5 | SendExpensesClassificationP erInvoice method is not supported for fuel invoices or invoices of type 1.5 | | `336` | ValidationError | Classification | Σε περίπτωση απαλλαγής από ΦΠΑ, πρέπει να αναφέρεται ποσοστό του ποσού ΦΠΑ στην ταξινόμηση Ε3 με κατηγορία 2.5 | In case of VAT exemption a percentage of vat amount must be referred in E3 classification with category 2.5 | | `337` | ValidationError | Classification | Συνδυασμός Κατηγορία ΦΠΑ {Πεδίο1}, Κατηγορία Απαλλαγής ΦΠΑ {Πεδίο2}: Τα πεδία Ποσό ΦΠΑ, Κατηγορία ΦΠΑ και Κατηγορία Απαλλαγής ΦΠΑ πρέπει να είναι μηδενικά όταν δημοσιεύονται ταξινομήσεις ανά γραμμή [Πιθανές τιμές {Πεδίο1}: {'κενό', [1-8]}] [Πιθανές τιμές {Πεδίο2}: {'κενό', [εύρος τιμών των αιτιών εξαίρεσης ΦΠΑ από το σχετικό πίνακα του παραρτήματος]}] | Combination vatCategory {field1}, vatExemptionCategory {field2}: Fields vatAmount, vatCategory and vatExemptionCategory must be null when classifications are posted per line [Possible {field1} values: {‘null’, [1-8]}] [Possible {field2} values: {‘null’, [εύρος τιμών των αιτιών εξαίρεσης ΦΠΑ από το σχετικό πίνακα του παραρτήματος]}] | | `338` | ValidationError | Classification | Απαγορεύεται ο χαρακτηρισμός για τη σειρά τιμολογίων {αριθμός γραμμής} λόγω του Τύπος rec ή του Τύπου Στοιχείου: Τιμή | Classification is forbidden for invoice row {linenumber} because of its recType or its detailType Value | | `339` | ValidationError | Classification | {μήνυμα} χαρακτηρισμός δεν επιτρέπεται για τη γραμμή παραστατικού {αριθμός γραμμής} λόγω της τιμής του Τύπου Στοιχείου [Πιθανές τιμές {msg}: {'Χαρακτηρισμός εσόδων', ''Χαρακτηρισμός Εξόδων'}] | {msg} classification is forbidden for invoice row {linenumber} because of its detailType value [Possible {msg} values: {‘incomeClassification’, ‘expensesClassification’}] | | `340` | ValidationError | Classification | Το πεδίο Τρόπος Ανάρτησης Χαρακτηρισμού (ClassificationPostMode) δεν πρέπει να περιέχεται σε xml | ClassificationPostMode field must not be contained in xml | | `341` | ValidationError | Classification | Ο κωδικός κατάταξης ΦΠΑ δαπανών NOT_VAT_295 δεν επιτρέπεται να αναρτάται για τιμολόγια τύπου 14.1 και 14.3 | Expenses VAT classification code NOT_VAT_295 is not allowed to be posted for invoices of type 14.1 and 14.3 | | `401` | ValidationError | Invoice | Η εκ νέου αποστολή μεθόδων πληρωμής δεν επιτρέπεται για τον τύπο τιμολογίου του αρχικού | Resending payments methods is not allowed for initial's invoice type | | `402` | ValidationError | Payment | Τουλάχιστον ένα στοιχείο τρόπου πληρωμής πρέπει να είναι τύπου POS | At least one payment method detail must be of POS type | | `403` | ValidationError | Payment | Το τιμολόγιο με MARK {mark} στάλθηκε από τον πάροχο. Οι Τρόποι Πληρωμής πρέπει να περιέχουν την υπογραφή του παρόχου | Invoice with MARK {mark} was sent by provider. Payment Methods must contain provider signature | | `404` | ValidationError | Payment | Το τιμολόγιο με MARK {mark} στάλθηκε από ERP. Οι τρόποι πληρωμής δεν πρέπει να περιέχουν υπογραφή παρόχου" | Invoice with MARK {mark} was sent by ERP. Payment Methods must not contain provider signature" | | `405` | ValidationError | Payment | Το τιμολόγιο με MARK {mark} στάλθηκε από τον πάροχο. Οι τρόποι πληρωμής δεν πρέπει να περιέχουν διακριτικό ECR" | Invoice with MARK {mark} was sent by provider. Payment Methods must not contain ECR token" | | `406` | ValidationError | Payment | Το τιμολόγιο με MARK {mark} στάλθηκε από ERP. Οι τρόποι πληρωμής πρέπει να περιέχουν διακριτικό ECR | Invoice with MARK {mark} was sent by ERP. Payment Methods must contain ECR token | | `407` | ValidationError | Payment | Το συνολικό ποσό των τρόπων πληρωμής πρέπει να είναι ίσο ή μικρότερο από τη συνολική αξία του αρχικού τιμολογίου | Payment Methods total amount must be equal to or less than initial invoice's total value | | `408` | ValidationError | Payment | Τιμολόγιο με MARK {mark_τιμολογίου}: Δεν είναι δυνατή η εκ νέου αποστολή των τρόπων πληρωμής για τιμολόγια που δημιουργούνται από την εφαρμογή timologio | Invoice with ΜΑΡΚ {invoice_mark}: Payment Methods cannot be resent for invoices created by timologio application | | `409` | ValidationError | Payment | Το πεδίο EndToEndReferenceID απαγορεύεται για λεπτομέρειες μεθόδου πληρωμής τύπου ίσου με POS" | EndToΕndReferenceID field is forbidden for paymentMethodDetails of type equal to POS | | `-` | TechnicalError | - | Μη αναμενόμενο σφάλμα συνθήκης | Unexpected condition error | Πηγή: https://developers.novusconceptus.com/el/provider-api/aade-errors/ --- # Χρεώσεις (credits) Κάθε επιτυχημένη κλήση χρεώνεται σε **credits**, από το υπόλοιπο του λογαριασμού σας. Ένα υπόλοιπο καλύπτει όλους τους ΑΦΜ (πελάτες) του λογαριασμού σας. | Κλήση / τύπος παραστατικού | Credits | |:---|---:| | Τιμολόγια 1.x, 2.x, 3.x, 5.x, 6.x, 7.1, 8.1, 8.2 | 1,00 | | Παραστατικά διακίνησης 9.1, 9.2, 9.3, 10.1, 10.2 | 1,00 | | Παραστατικά λιανικής 11.1 – 11.5 | 0,50 | | Αποδείξεις POS 8.4, 8.5 | 0,50 | | Δελτίο Παραγγελίας Εστίασης 8.6 | 0,50 | | Τιμολόγιο B2G (`SendInvoicesB2G`) | 1,00 | | Υπογραφή Παρόχου για πληρωμή με κάρτα / IRIS, ανά γραμμή πληρωμής | 0,25 | | `CancelDeliveryNote` / `CancelReceivingNote` | 0,25 | - Κάθε απάντηση επιστρέφει τα credits που χρεώθηκαν στο πεδίο `credits`, ως κείμενο με υποδιαστολή κόμμα, π.χ. `"0,50"`. - Το υπόλοιπο το βλέπετε με GET `/api/v1/Provider/GetCreditsBalance`. - Αν το υπόλοιπο δεν φτάνει, η κλήση απορρίπτεται με HTTP 400 `You don't have enough balance to send this request.` και το παραστατικό **δεν** διαβιβάζεται. - Στο δοκιμαστικό περιβάλλον τα credits είναι μόνο για δοκιμές. Στην παραγωγή αγοράζετε credits από το [portal](https://portal.timologisi.online). **Σημείωση** Οι τιμές παραπάνω είναι η προεπιλεγμένη χρέωση ανά κλήση. Την τιμή κάθε πακέτου credits την ορίζει η εμπορική σας συμφωνία. Πηγή: https://developers.novusconceptus.com/el/provider-api/credits/ --- # Onboarding API: πώς λειτουργεί Με το Onboarding API ενεργοποιείτε νέους πελάτες (ΑΦΜ) στο API key σας χωρίς email και χαρτιά. Στέλνετε τα στοιχεία του πελάτη, ο πελάτης υπογράφει τη σύμβαση, η Novus εγκρίνει, και το σύστημα ολοκληρώνει μόνο του την ενεργοποίηση και τη Δήλωση Παρόχου στην ΑΑΔΕ. ```mermaid sequenceDiagram autonumber participant SH as Εσείς (software house) participant NP as Novus Onboarding API participant CL as Πελάτης participant NV as Novus (έλεγχος) participant AADE as ΑΑΔΕ SH->>NP: POST /api/v1/requests (στοιχεία πελάτη) NP-->>SH: requestId, status PENDING_SIGNATURE NP-)CL: Email με τη σύμβαση (PDF) και link ανεβάσματος CL->>NP: Ανεβάζει την υπογεγραμμένη σύμβαση (ή εσείς: POST …/signed-contract) NP-->>SH: status UNDER_REVIEW (webhook) NV->>NP: Έγκριση (ή ACTION_REQUIRED με αιτιολογία) NP->>NP: Ενεργοποίηση ΑΦΜ στο API key σας, αρχειοθέτηση σύμβασης NP->>AADE: Δήλωση Παρόχου NP-->>SH: status APPROVED, provisioning COMPLETED (webhook) NP-)CL: Email: «αποδεχθείτε τη δήλωση στο myAADE εντός 10 ημερών» ``` ## Οι καταστάσεις ενός αιτήματος | Status | Σημαίνει | Τι κάνετε | |:---|:---|:---| | `PENDING_SIGNATURE` | Η σύμβαση παράχθηκε και στάλθηκε στον πελάτη. | Περιμένετε την υπογραφή, ή ανεβάστε την εσείς. | | `UNDER_REVIEW` | Υπάρχει υπογεγραμμένη σύμβαση και την ελέγχει η Novus. | Τίποτα. Συνήθως ολοκληρώνεται σε 1 εργάσιμη. | | `ACTION_REQUIRED` | Η σύμβαση δεν έγινε δεκτή (π.χ. δεν διαβάζεται). Η αιτία είναι στο `message`. | Ανεβάστε νέα υπογεγραμμένη σύμβαση. | | `APPROVED` | Εγκρίθηκε. Η τεχνική ολοκλήρωση φαίνεται στο `provisioning`. | Όταν `provisioning.status = COMPLETED`, εκδίδετε κανονικά για αυτόν τον ΑΦΜ. | | `REJECTED` | Απορρίφθηκε. Τελική κατάσταση. | Δείτε το `message`. | | `CANCELLED` | Ακυρώθηκε από εσάς ή από τη Novus. Τελική κατάσταση. | Αν χρειάζεται, κάντε νέο αίτημα. | ```mermaid stateDiagram-v2 [*] --> PENDING_SIGNATURE: NEW_CONTRACT [*] --> UNDER_REVIEW: LINK_EXISTING PENDING_SIGNATURE --> UNDER_REVIEW: υπογεγραμμένη σύμβαση UNDER_REVIEW --> ACTION_REQUIRED: η Novus ζητά διόρθωση ACTION_REQUIRED --> UNDER_REVIEW: νέα σύμβαση UNDER_REVIEW --> APPROVED UNDER_REVIEW --> REJECTED PENDING_SIGNATURE --> CANCELLED ACTION_REQUIRED --> CANCELLED UNDER_REVIEW --> CANCELLED ``` ## Δύο είδη αιτήματος: το αποφασίζει το σύστημα | `requestType` | Πότε | Σύμβαση; | |:---|:---|:---| | `NEW_CONTRACT` | Ο ΑΦΜ δεν έχει σύμβαση με τη Novus. | Ναι. Ο πελάτης υπογράφει. | | `LINK_EXISTING` | Ο ΑΦΜ έχει ήδη σύμβαση, π.χ. μέσω άλλου software house. | Όχι. Γίνεται μόνο η σύνδεση με το δικό σας API key, μετά από έγκριση. | Η σύμβαση και η Δήλωση Παρόχου γίνονται **μία φορά ανά πελάτη**, όσα software houses κι αν τον εξυπηρετούν. ## Η σύμβαση - Παράγεται αυτόματα, με τα στοιχεία του αιτήματος, και είναι ήδη υπογεγραμμένη από τη Novus. - Στέλνεται στο `contactInfo.email` του πελάτη μαζί με link ανεβάσματος. Το email στέλνεται **πάντα**, γιατί η σύμβαση είναι μεταξύ Novus και πελάτη. - Γίνεται δεκτή κάθε ευανάγνωστη υπογραφή: σκαναρισμένη ιδιόχειρη, μέσω gov.gr ή ψηφιακή. Πρέπει να περιλαμβάνονται **όλες οι σελίδες**, όρθιες και καθαρές. Μόνο PDF, έως 15 MB. - Αν ο πελάτης κάνει συναλλαγές **B2C**, το αίτημα πρέπει να έχει και τον πάροχο internet του (`ispDetails`). Το απαιτεί η ΑΑΔΕ. ## Μετά την έγκριση 1. Ο ΑΦΜ ενεργοποιείται στο API key σας και μπορείτε να εκδίδετε. 2. Η Novus στέλνει Δήλωση Παρόχου στην ΑΑΔΕ. Ο πελάτης πρέπει να την **αποδεχθεί στο myAADE μέσα σε 10 ημέρες**. Αλλιώς θεωρείται αποδεκτή σιωπηρά (Α.1112/2025). 3. Διακοπή συνεργασίας μετά την έγκριση γίνεται **μόνο μέσω της Novus**. ## Στο Sandbox Στο Sandbox δεν υποβάλλεται Δήλωση Παρόχου στην ΑΑΔΕ και δεν δημιουργείται πραγματική σύμβαση. **Τα emails όμως στέλνονται κανονικά** (π.χ. η σύμβαση στο `contactInfo.email`), οπότε βάζετε μόνο δικές σας δοκιμαστικές διευθύνσεις. Μπορείτε να δοκιμάσετε και με πραγματικούς ΑΦΜ. Για να περάσει ένα δοκιμαστικό αίτημα σε `APPROVED`, στείλτε μας το `requestId`. ## Επόμενα - Όλες οι κλήσεις: [Endpoints](https://developers.novusconceptus.com/el/onboarding-api/endpoints/) - Ειδοποιήσεις σε πραγματικό χρόνο: [Webhooks](https://developers.novusconceptus.com/el/onboarding-api/webhooks/) - Για την εφαρμογή σας: [OpenAPI (YAML)](https://developers.novusconceptus.com/openapi/novus-onboarding-api.openapi.yaml) · [Postman](https://developers.novusconceptus.com/postman/Novus_Onboarding_API.postman_collection.json). Στο Postman, βάλτε το `apiKey` στις **Variables** της collection και τρέξτε τον φάκελο «1. Ροή onboarding» με τη σειρά. Πηγή: https://developers.novusconceptus.com/el/onboarding-api/ --- # Onboarding API: endpoints | | | |:---|:---| | **Base URL** | Δοκιμαστικό `https://provider-dev.timologisi.online` · Παραγωγή `https://provider.timologisi.online` | | **Αυθεντικοποίηση** | Header `API-KEY`, το **ίδιο κλειδί** με το Provider API. Το ποιο software house καλεί προκύπτει από το κλειδί. Δεν στέλνεται ποτέ στο body ή στο URL. | | **Όριο** | 60 κλήσεις / λεπτό ανά κλειδί. Το header `X-RateLimit-Remaining` δείχνει πόσες απομένουν. Πάνω από το όριο: `429 RATE_LIMITED` με `Retry-After`. | | **Ημερομηνίες** | Ημερομηνία-ώρα σε ISO-8601 UTC. Σκέτη ημερομηνία σε `YYYY-MM-DD`. | | **Αρχεία** | [OpenAPI (YAML)](https://developers.novusconceptus.com/openapi/novus-onboarding-api.openapi.yaml) · [Postman](https://developers.novusconceptus.com/postman/Novus_Onboarding_API.postman_collection.json) | | | Endpoint | Τι κάνει | |:---|:---|:---| | POST | [`/api/v1/requests`](https://developers.novusconceptus.com/el/onboarding-api/endpoints/#create) | Δημιουργία αίτησης για έναν πελάτη | | GET | [`/api/v1/requests`](https://developers.novusconceptus.com/el/onboarding-api/endpoints/#list) | Λίστα των αιτήσεών σας | | GET | [`/api/v1/requests/{requestId}`](https://developers.novusconceptus.com/el/onboarding-api/endpoints/#get) | Κατάσταση αίτησης | | GET | [`/api/v1/requests/{requestId}/history`](https://developers.novusconceptus.com/el/onboarding-api/endpoints/#history) | Ιστορικό μεταβολών | | GET | [`/api/v1/requests/{requestId}/contract`](https://developers.novusconceptus.com/el/onboarding-api/endpoints/#contract) | Λήψη της σύμβασης (PDF) | | POST | [`/api/v1/requests/{requestId}/signed-contract`](https://developers.novusconceptus.com/el/onboarding-api/endpoints/#upload) | Ανέβασμα της υπογεγραμμένης σύμβασης | | DELETE | [`/api/v1/requests/{requestId}`](https://developers.novusconceptus.com/el/onboarding-api/endpoints/#cancel) | Ακύρωση αίτησης | | POST GET DELETE | [`/api/v1/webhooks…`](https://developers.novusconceptus.com/el/onboarding-api/webhooks/) | Webhooks | ## Η μορφή κάθε απάντησης Όλα τα JSON endpoints απαντούν μέσα σε φάκελο: **Επιτυχία** ```json { "success": true, "data": { … } } ``` **Σφάλμα** ```json { "success": false, "error": { "code": "VALIDATION_ERROR", "message": "Ο έλεγχος των πεδίων απέτυχε.", "details": [ { "field": "companyDetails.vatNumber", "code": "INVALID_VALUE", "message": "companyDetails.vatNumber must be a valid nine digit Greek VAT number." } ] } } ``` Στο `error` μπορεί να υπάρχουν επίσης το `context` (π.χ. `existingRequestId`, `currentStatus`) και, μόνο σε `500`, το `traceId`. ## Δημιουργία αίτησης POST `/api/v1/requests` | Header | | |:---|:---| | `Idempotency-Key` | Προαιρετικό. Ένα GUID δικό σας, **ένα ανά πελάτη**, σταθερό σε όλα τα retries. Αν χαθεί η απάντηση και ξαναστείλετε με το ίδιο key, παίρνετε πίσω την αρχική αίτηση (`200` αντί για `201`). Μην το ξαναχρησιμοποιήσετε για άλλο ΑΦΜ, ή για αίτηση που ακυρώθηκε ή απορρίφθηκε: `409`. | ```json title="Body (B2B + B2C)" { "companyDetails": { "legalName": "Παπαδόπουλος Α.Ε.", "tradeName": "PapaCorp", "vatNumber": "094019245", "taxOffice": "Α΄ Αθηνών", "transactionTypes": [ "B2B", "B2C" ] }, "address": { "city": "Αθήνα", "streetAddress": "Ερμού 15", "postalCode": "10563" }, "contactInfo": { "email": "info@papacorp.gr", "phone": "2101234567", "backupPhone": "6971234567" }, "administrator": { "fullName": "Γιάννης Παπαδόπουλος", "vatNumber": "090000045" }, "ispDetails": { "providerName": "Cosmote", "contractNumber": "CSM-2026-1", "contractDate": "2026-09-01" } } ``` | Πεδίο | Υποχρεωτικό | Κανόνες | |:---|:---:|:---| | `companyDetails.legalName` | ναι | | | `companyDetails.tradeName` | | | | `companyDetails.vatNumber` | ναι | 9 ψηφία **με σωστό check digit**. Δοκιμαστικά όπως το `123456789` απορρίπτονται. | | `companyDetails.taxOffice` | ναι | | | `companyDetails.transactionTypes` | ναι | Τουλάχιστον ένα από `B2B`, `B2C`. Το `B2G` **δεν** γίνεται δεκτό. | | `address.city`, `address.streetAddress` | ναι | | | `address.postalCode` | | | | `contactInfo.email` | ναι | Εδώ στέλνεται η σύμβαση. | | `contactInfo.phone` | ναι | E.164 (`+30…`) ή ελληνικό 10ψήφιο | | `contactInfo.backupPhone` | | Ίδια μορφή | | `administrator.fullName` | ναι | Ο νόμιμος εκπρόσωπος | | `administrator.vatNumber` | ναι | Έγκυρος ΑΦΜ (check digit) | | `ispDetails.providerName`, `contractNumber`, `contractDate` | **αν B2C** | Ο πάροχος internet του πελάτη, και τα τρία πεδία. Το `contractDate` δεν μπορεί να είναι μελλοντικό. Αν μόνο `B2B`, το `ispDetails` παραλείπεται. | Όλα τα λάθη πεδίων επιστρέφονται μαζί στο `error.details[]`. Τον **τύπο της αίτησης** τον αποφασίζει το σύστημα, δεν τον στέλνετε εσείς: - `NEW_CONTRACT`: ο ΑΦΜ δεν έχει ενεργή σύμβαση με τη Novus. Παράγεται σύμβαση σε PDF και η αίτηση πάει σε `PENDING_SIGNATURE`. - `LINK_EXISTING`: ο ΑΦΜ έχει ήδη ενεργή σύμβαση μέσω άλλου software house. Το `contract` είναι `null`, δεν χρειάζεται υπογραφή, και η αίτηση πάει κατευθείαν σε `UNDER_REVIEW`. Ο πελάτης λαμβάνει **αυτόματα email** με τη σύμβαση και σύνδεσμο για να την ανεβάσει μόνος του. Άρα η αίτηση μπορεί να περάσει σε `UNDER_REVIEW` χωρίς δική σας ενέργεια. | HTTP | Πότε | |:---:|:---| | `201` | Η αίτηση δημιουργήθηκε. | | `200` | Επανάληψη με το **ίδιο** `Idempotency-Key`: επιστρέφεται η αρχική αίτηση. | | `409` | `DUPLICATE_OPEN_REQUEST`: υπάρχει ήδη ανοιχτή αίτηση για τον ΑΦΜ, το `error.context.existingRequestId` δείχνει ποια. `CLIENT_ALREADY_LINKED`: ο ΑΦΜ είναι ήδη ενεργός στο κλειδί σας. Ή επαναχρησιμοποίηση `Idempotency-Key` για άλλο ΑΦΜ / για ακυρωμένη ή απορριφθείσα αίτηση. | | `422` | `VALIDATION_ERROR`: δείτε το `details[]`. | **201 · NEW_CONTRACT** ```json { "success": true, "data": { "requestId": "req_8f7b2c9a", "requestType": "NEW_CONTRACT", "status": "PENDING_SIGNATURE", "message": "Η αίτηση καταχωρήθηκε. Απαιτείται υπογραφή της σύμβασης από τον πελάτη.", "contract": { "contractNumber": "10000", "contractDate": "2026-09-17", "templateVersion": "v6", "downloadUrl": "https://provider.timologisi.online/api/v1/requests/req_8f7b2c9a/contract" }, "provisioning": null, "aadeStatement": null, "createdAt": "2026-09-17T08:42:00Z" } } ``` **201 · LINK_EXISTING** ```json { "success": true, "data": { "requestId": "req_3a1c7d02", "requestType": "LINK_EXISTING", "status": "UNDER_REVIEW", "message": "Το ΑΦΜ έχει ήδη ενεργή σύμβαση. Η αίτηση σύνδεσης εστάλη για έλεγχο.", "contract": null, "provisioning": null, "aadeStatement": null, "createdAt": "2026-09-17T08:42:00Z" } } ``` **409 · DUPLICATE_OPEN_REQUEST** ```json { "success": false, "error": { "code": "DUPLICATE_OPEN_REQUEST", "message": "Υπάρχει ήδη ανοιχτή αίτηση για αυτό το ΑΦΜ.", "context": { "existingRequestId": "req_8f7b2c9a" } } } ``` ## Λίστα αιτήσεων GET `/api/v1/requests?status=UNDER_REVIEW,ACTION_REQUIRED&page=1&pageSize=50` Επιστρέφει **μόνο τις δικές σας** αιτήσεις. | Query | Περιγραφή | |:---|:---| | `status` | Ένα ή περισσότερα status, χωρισμένα με κόμμα | | `requestType` | `NEW_CONTRACT` ή `LINK_EXISTING` | | `vatNumber` | ΑΦΜ πελάτη | | `createdFrom`, `createdTo` | Διάστημα ημερομηνιών (`YYYY-MM-DD`) | | `page` | Από 1 (default 1) | | `pageSize` | 1 έως 200 (default 50) | | `sort` | `createdAt:desc` (default), `createdAt:asc`, `updatedAt:desc`, `updatedAt:asc` | Το `data` είναι `{ "items": [ … ], "total": 137, "page": 1, "pageSize": 50 }`. ## Κατάσταση αίτησης GET `/api/v1/requests/{requestId}` Η **πραγματική** κατάσταση της αίτησης. Μετά το `APPROVED` συμπληρώνονται τα `provisioning` και `aadeStatement`. | Πεδίο | Τι σημαίνει | |:---|:---| | `status` | Δείτε [τις καταστάσεις](https://developers.novusconceptus.com/el/onboarding-api/#request-statuses). | | `message` | Το τελευταίο μήνυμα, π.χ. γιατί η αίτηση είναι σε `ACTION_REQUIRED`. | | `contract` | Αριθμός, ημερομηνία, `templateVersion`, `downloadUrl`. Μετά το ανέβασμα και `signedVersion` (αυξάνεται σε κάθε ανέβασμα) και `sha256`. Σε `LINK_EXISTING` είναι `null`, και αυτό δεν είναι σφάλμα. | | `provisioning` | Μετά το `APPROVED`. `status`: `PENDING` → `IN_PROGRESS` → `COMPLETED` ή `FAILED`. Βήματα `clientAdded`, `clientLinked`, `contractUploaded`, `statementSent`, το καθένα `PENDING`, `IN_PROGRESS`, `DONE` ή `FAILED`. Και `error`. | | `aadeStatement` | Η Δήλωση Παρόχου στην ΑΑΔΕ. `status`: `SUBMITTED`, `ACCEPTED` (την αποδέχτηκε ο πελάτης), `PRESUMED_ACCEPTED` (πέρασαν 10 ημέρες χωρίς ενέργεια), `RECALLED`. Και `acceptDate`. | **Σημείωση: Πότε ο πελάτης μπορεί να εκδίδει** Όταν `provisioning.status = COMPLETED`. Αν δείτε `FAILED`, η Novus έχει ήδη ειδοποιηθεί και το αναλαμβάνει. **Μην ξαναστείλετε αίτηση.** **Παράδειγμα: Παράδειγμα: εγκεκριμένη και ενεργοποιημένη αίτηση** ```json { "success": true, "data": { "requestId": "req_8f7b2c9a", "requestType": "NEW_CONTRACT", "status": "APPROVED", "message": "Η αίτηση εγκρίθηκε.", "contract": { "contractNumber": "10000", "contractDate": "2026-09-17", "templateVersion": "v6", "signedVersion": 1, "sha256": "9f2c1d6e8a0b4c7d5e3f1a2b8c9d0e4f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d", "downloadUrl": "https://provider.timologisi.online/api/v1/requests/req_8f7b2c9a/contract" }, "provisioning": { "status": "COMPLETED", "clientAdded": "DONE", "clientLinked": "DONE", "contractUploaded": "DONE", "statementSent": "DONE", "error": null }, "aadeStatement": { "status": "SUBMITTED", "acceptDate": null }, "createdAt": "2026-09-17T08:42:00Z", "updatedAt": "2026-09-17T11:03:00Z" } } ``` ## Ιστορικό μεταβολών GET `/api/v1/requests/{requestId}/history` Χρονολογική λίστα των αλλαγών. Είναι χρήσιμη π.χ. όταν ο πελάτης ανέβασε μόνος του τη σύμβαση. Κάθε εγγραφή έχει: | Πεδίο | | |:---|:---| | `occurredAt` | Πότε | | `status`, `previousStatus` | Από ποιο status σε ποιο | | `message` | Μήνυμα | | `actor` | Ποιος προκάλεσε την αλλαγή: `SOFTWARE_HOUSE`, `CLIENT`, `NOVUS`, `SYSTEM` | ## Λήψη της σύμβασης GET `/api/v1/requests/{requestId}/contract?kind=unsigned` Επιστρέφει `application/pdf`. | Query | | |:---|:---| | `kind` | `unsigned` (default) ή `signed` | | `version` | Έκδοση του υπογεγραμμένου. Χωρίς αυτό επιστρέφεται η τελευταία. | **Προσοχή: Δεν είναι δημόσιο link** Χρειάζεται το API key σας. Μη στείλετε το `downloadUrl` στον πελάτη ως έχει. Κατεβάστε το PDF και προωθήστε το εσείς. Σε αίτηση `LINK_EXISTING` δεν υπάρχει σύμβαση: `409 NOT_APPLICABLE`. Το ίδιο και όταν δεν υπάρχει η έκδοση που ζητήσατε. ## Ανέβασμα της υπογεγραμμένης σύμβασης POST `/api/v1/requests/{requestId}/signed-contract` `multipart/form-data`, ένα αρχείο στο πεδίο **`contractFile`**. ```bash curl -X POST "https://provider-dev.timologisi.online/api/v1/requests/req_8f7b2c9a/signed-contract" \ -H "API-KEY: $NOVUS_API_KEY" \ -F "contractFile=@signed-contract.pdf;type=application/pdf" ``` Κανόνες: - ακριβώς **ένα** αρχείο, - **πραγματικό PDF** (ελέγχονται τα magic bytes, όχι η κατάληξη), έως **15 MB**, όχι κατεστραμμένο ή κλειδωμένο με κωδικό, - η αίτηση σε `PENDING_SIGNATURE` ή `ACTION_REQUIRED`, με `requestType = NEW_CONTRACT`. Τα παλιά αρχεία **δεν σβήνονται**. Κάθε ανέβασμα είναι νέα έκδοση. Με επιτυχία (`200`) η αίτηση περνά σε `UNDER_REVIEW`. | HTTP | `error.code` | Πότε | |:---:|:---|:---| | `400` | `BAD_REQUEST` | Λάθος multipart, περισσότερα από ένα αρχεία, ή κατεστραμμένο / κλειδωμένο PDF | | `409` | `INVALID_TRANSITION` | Λάθος status, π.χ. υπάρχει ήδη αρχείο υπό έλεγχο | | `409` | `NOT_APPLICABLE` | Η αίτηση είναι `LINK_EXISTING` | | `413` | `FILE_TOO_LARGE` | Πάνω από 15 MB | | `415` | `UNSUPPORTED_FILE_TYPE` | Δεν είναι PDF | Ο πελάτης μπορεί να ανεβάσει το αρχείο και μόνος του, από το link του email. ## Ακύρωση αίτησης DELETE `/api/v1/requests/{requestId}` Προαιρετικό body `{ "reason": "…" }` (έως 500 χαρακτήρες). Επιτρέπεται **μόνο πριν την έγκριση**. Σε αίτηση που είναι ήδη εγκεκριμένη ή σε τελική κατάσταση: `409 INVALID_TRANSITION`. Η διακοπή συνεργασίας μετά την έγκριση γίνεται μόνο σε συνεννόηση με τη Novus, όχι από το API. ## Κωδικοί σφαλμάτων | HTTP | `error.code` | Τι σημαίνει | |:---:|:---|:---| | 400 | `BAD_REQUEST` | Κακοδιατυπωμένο JSON ή multipart | | 401 | `UNAUTHORIZED` | Λείπει ή είναι άκυρο το API key | | 403 | `FORBIDDEN` | Η ενέργεια δεν επιτρέπεται με αυτό το κλειδί | | 404 | `NOT_FOUND` | Δεν υπάρχει **ή ανήκει σε άλλο software house**. Επιστρέφεται `404` αντί για `403`, ώστε να μη φαίνεται καν ότι υπάρχει. | | 409 | `DUPLICATE_OPEN_REQUEST` | Υπάρχει ήδη ανοιχτή αίτηση για τον ΑΦΜ (`context.existingRequestId`) | | 409 | `CLIENT_ALREADY_LINKED` | Ο ΑΦΜ είναι ήδη ενεργός στο κλειδί σας | | 409 | `CLIENT_ALREADY_ACTIVE` | Ο ΑΦΜ απέκτησε ενεργή σύμβαση πριν την έγκριση | | 409 | `INVALID_TRANSITION` | Δεν επιτρέπεται στο τρέχον status (`context.currentStatus`) | | 409 | `NOT_APPLICABLE` | Δεν ισχύει για αυτόν τον τύπο αίτησης | | 413 | `FILE_TOO_LARGE` | Αρχείο πάνω από 15 MB | | 415 | `UNSUPPORTED_FILE_TYPE` | Δεν είναι PDF | | 422 | `VALIDATION_ERROR` | Λάθος πεδία, δείτε το `details[]` | | 429 | `RATE_LIMITED` | Πάνω από 60 κλήσεις / λεπτό. Ξαναδοκιμάστε μετά από `Retry-After` δευτερόλεπτα. | | 500 | `INTERNAL_ERROR` | Απρόσμενο σφάλμα, με `traceId`. Δώστε μας τον `traceId`. | | 502 | `UPSTREAM_ERROR` | Προσωρινή αποτυχία εξωτερικής υπηρεσίας. Ξαναδοκιμάστε αργότερα. | Πηγή: https://developers.novusconceptus.com/el/onboarding-api/endpoints/ --- # Webhooks Αντί να ρωτάτε συνεχώς το `GET /api/v1/requests/{requestId}` (polling), δηλώστε ένα δικό σας HTTPS endpoint. Η Novus το καλεί κάθε φορά που αλλάζει κάτι σε μια αίτησή σας. ## Εγγραφή POST `/api/v1/webhooks` ```json { "url": "https://to-logismiko-sas.gr/novus-events", "events": [ "request.status_changed", "request.provisioned" ] } ``` | Πεδίο | | |:---|:---| | `url` | Το HTTPS endpoint σας | | `events` | Ποια events θέλετε, τουλάχιστον ένα (δείτε [παρακάτω](https://developers.novusconceptus.com/el/onboarding-api/webhooks/#events)) | Η απάντηση (`201`) περιέχει `endpointId`, `url`, `events`, `createdAt` και ένα **`secret`**. Το `secret` επιστρέφεται **μόνο αυτή τη φορά**, οπότε αποθηκεύστε το: με αυτό επαληθεύετε την υπογραφή κάθε κλήσης. | Κλήση | | |:---|:---| | GET `/api/v1/webhooks` | Τα endpoints σας (χωρίς τα secrets) | | DELETE `/api/v1/webhooks/{endpointId}` | Σταματά τις ειδοποιήσεις προς αυτό το endpoint (`204`) | | GET `/api/v1/webhooks/deliveries?endpointId=…&page=1&pageSize=50` | Ιστορικό αποστολών, για debugging: τι στάλθηκε και τι απαντήσατε (`eventId`, `event`, `attempt`, `responseStatus`, `deliveredAt`, `succeeded`). Φίλτρα `endpointId`, `eventId`. | ## Events | `event` | Πότε | |:---|:---| | `request.created` | Δημιουργήθηκε αίτηση | | `request.status_changed` | Άλλαξε το status μιας αίτησης. Το πιο χρήσιμο event. | | `request.provisioned` | Ο πελάτης ενεργοποιήθηκε (`provisioning.status = COMPLETED`) και μπορεί να εκδίδει | | `request.provisioning_failed` | Η ενεργοποίηση απέτυχε. Η Novus ειδοποιείται αυτόματα και το αναλαμβάνει. **Μην ξαναστείλετε αίτηση.** | | `client.statement_recalled` | Ανακλήθηκε η Δήλωση Παρόχου στην ΑΑΔΕ | ## Η κλήση που δέχεστε ```http POST https://to-logismiko-sas.gr/novus-events Content-Type: application/json X-Novus-Event-Id: evt_8f7b2c9a1d4e X-Novus-Signature: sha256=4f1c… ``` ```json { "event": "request.status_changed", "eventId": "evt_8f7b2c9a1d4e", "occurredAt": "2026-09-17T10:15:00Z", "data": { "requestId": "req_8f7b2c9a", "status": "APPROVED", "previousStatus": "UNDER_REVIEW", "message": "Η αίτηση εγκρίθηκε." } } ``` **Προσοχή: Το webhook λέει «κάτι άλλαξε», δεν είναι η αλήθεια** Επιβεβαιώνετε πάντα με [`GET /api/v1/requests/{requestId}`](https://developers.novusconceptus.com/el/onboarding-api/endpoints/#get) πριν κάνετε οτιδήποτε. - **Απαντήστε `2xx`** όσο πιο γρήγορα γίνεται και κάντε τη δουλειά σας μετά. Οτιδήποτε άλλο ξαναδοκιμάζεται μετά από **1 λεπτό, 5 λεπτά, 30 λεπτά, 2 ώρες και 12 ώρες**, και μετά εγκαταλείπεται. - **Διπλά:** το ίδιο event μπορεί να φτάσει ξανά σε retry, με το ίδιο `X-Novus-Event-Id`. Αγνοήστε όσα έχετε ήδη δει. - **Υπογραφή:** επαληθεύετε **πάντα** το `X-Novus-Signature`. ## Επαλήθευση της υπογραφής `X-Novus-Signature` = `sha256=` + το HMAC-SHA256 του **ακριβούς body**, με κλειδί το `secret` σας, σε πεζά hex. Υπολογίστε το πάνω στα bytes όπως τα λάβατε, πριν από οποιοδήποτε JSON parsing. **C#** ```csharp using System.Security.Cryptography; using System.Text; static bool IsValid(string rawBody, string header, string secret) { using var hmac = new HMACSHA256(Encoding.UTF8.GetBytes(secret)); var expected = "sha256=" + Convert.ToHexString(hmac.ComputeHash(Encoding.UTF8.GetBytes(rawBody))).ToLowerInvariant(); return CryptographicOperations.FixedTimeEquals(Encoding.UTF8.GetBytes(expected), Encoding.UTF8.GetBytes(header ?? "")); } ``` **Delphi** ```delphi uses System.Hash, System.SysUtils; function IsValid(const RawBody, Header, Secret: string): Boolean; var Expected: string; begin Expected := 'sha256=' + LowerCase(THash.DigestAsString( THashSHA2.GetHMACAsBytes(TEncoding.UTF8.GetBytes(RawBody), TEncoding.UTF8.GetBytes(Secret)))); Result := SameStr(Expected, Header); end; ``` **Node.js** ```javascript const crypto = require('crypto'); function isValid(rawBody, header, secret) { const expected = 'sha256=' + crypto.createHmac('sha256', secret).update(rawBody, 'utf8').digest('hex'); return header && crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(header)); } ``` **Python** ```python import hmac, hashlib def is_valid(raw_body: bytes, header: str, secret: str) -> bool: expected = "sha256=" + hmac.new(secret.encode(), raw_body, hashlib.sha256).hexdigest() return hmac.compare_digest(expected, header or "") ``` Πηγή: https://developers.novusconceptus.com/el/onboarding-api/webhooks/ --- # Πίνακες ΑΑΔΕ Όλοι οι πίνακες τιμών του JSON, ευθυγραμμισμένοι με την **έκδοση 2.0.2** της τεκμηρίωσης myDATA (2026-09-10). Είναι χωρισμένοι σε 6 σελίδες, και η αναζήτηση πάνω δεξιά βρίσκει και κωδικούς (π.χ. `E3_561_003`) και περιγραφές (π.χ. «Μετρητά»). | Πίνακας | Πεδίο JSON | Σελίδα | |:---|:---|:---| | [Είδη παραστατικών](https://developers.novusconceptus.com/el/aade/documents/#invoice-types) | `invoiceHeader.invoiceType` | Παραστατικά | | [Ειδική Κατηγορία Παραστατικού](https://developers.novusconceptus.com/el/aade/documents/#special-invoice-category) | `invoiceHeader.specialInvoiceCategory` | Παραστατικά | | [Τύπος Απόκλισης Παραστατικού](https://developers.novusconceptus.com/el/aade/documents/#invoice-variation-type) | `invoiceHeader.invoiceVariationType` | Παραστατικά | | [Κατηγορία Οντότητας](https://developers.novusconceptus.com/el/aade/documents/#entity-type) | `invoiceHeader.otherCorrelatedEntities[].type` | Παραστατικά | | [Μέγεθος εκτύπωσης](https://developers.novusconceptus.com/el/aade/documents/#document-size) | `providerAdditionalInvoiceDetails.additionalDetails.documentSizeCode` | Παραστατικά | | [Κατηγορία ΦΠΑ](https://developers.novusconceptus.com/el/aade/vat/#vat-category) | `invoiceDetails[].vatCategory` | ΦΠΑ | | [Κατηγορία Αιτίας Εξαίρεσης ΦΠΑ](https://developers.novusconceptus.com/el/aade/vat/#vat-exemption) | `invoiceDetails[].vatExemptionCategory` | ΦΠΑ | | [Κατηγορία Παρακρατούμενων Φόρων](https://developers.novusconceptus.com/el/aade/taxes/#withheld-tax) | `withheldPercentCategory / taxesTotals.taxCategory (taxType=1)` | Φόροι, τέλη, κρατήσεις | | [Κατηγορία Τελών](https://developers.novusconceptus.com/el/aade/taxes/#fees) | `feesPercentCategory / taxesTotals.taxCategory (taxType=2)` | Φόροι, τέλη, κρατήσεις | | [Κατηγορία Λοιπών Φόρων](https://developers.novusconceptus.com/el/aade/taxes/#other-taxes) | `otherTaxesPercentCategory / taxesTotals.taxCategory (taxType=3)` | Φόροι, τέλη, κρατήσεις | | [Κατηγορία Συντελεστή Ψηφιακού Τέλους συναλλαγής](https://developers.novusconceptus.com/el/aade/taxes/#digital-transaction-fee) | `stampDutyPercentCategory / taxesTotals.taxCategory (taxType=4)` | Φόροι, τέλη, κρατήσεις | | [Είδος Φόρου](https://developers.novusconceptus.com/el/aade/taxes/#taxes-totals-type) | `taxesTotals[].taxType` | Φόροι, τέλη, κρατήσεις | | [Κωδικός Κατηγορίας Χαρακτηρισμού Εσόδων](https://developers.novusconceptus.com/el/aade/classifications/#income-classification-category) | `incomeClassification[].classificationCategory` | Χαρακτηρισμοί εσόδων / εξόδων | | [Κωδικός Τύπου Χαρακτηρισμού Εσόδων](https://developers.novusconceptus.com/el/aade/classifications/#income-classification-type) | `incomeClassification[].classificationType` | Χαρακτηρισμοί εσόδων / εξόδων | | [Κωδικός Κατηγορίας Χαρακτηρισμού Εξόδων](https://developers.novusconceptus.com/el/aade/classifications/#expenses-classification-category) | `expensesClassification[].classificationCategory` | Χαρακτηρισμοί εσόδων / εξόδων | | [Κωδικός Τύπου Χαρακτηρισμού Εξόδων](https://developers.novusconceptus.com/el/aade/classifications/#expenses-classification-type) | `expensesClassification[].classificationType` | Χαρακτηρισμοί εσόδων / εξόδων | | [Τρόποι Πληρωμής](https://developers.novusconceptus.com/el/aade/lines-payments/#payment-methods) | `paymentMethods[].type` | Γραμμές & πληρωμές | | [Πάροχος Υπηρεσιών Πληρωμών (NSP)](https://developers.novusconceptus.com/el/aade/lines-payments/#pos-nsp) | `paymentMethods[].posNspId` | Γραμμές & πληρωμές | | [Είδος Ποσότητας](https://developers.novusconceptus.com/el/aade/lines-payments/#measurement-units) | `invoiceDetails[].measurementUnit` | Γραμμές & πληρωμές | | [Είδος Γραμμής](https://developers.novusconceptus.com/el/aade/lines-payments/#rec-type) | `invoiceDetails[].recType` | Γραμμές & πληρωμές | | [Επισήμανση](https://developers.novusconceptus.com/el/aade/lines-payments/#invoice-detail-type) | `invoiceDetails[].invoiceDetailType` | Γραμμές & πληρωμές | | [Κωδικοί Καυσίμων](https://developers.novusconceptus.com/el/aade/lines-payments/#fuel-codes) | `invoiceDetails[].fuelCode` | Γραμμές & πληρωμές | | [Σκοπός Διακίνησης](https://developers.novusconceptus.com/el/aade/movement/#move-purpose) | `invoiceHeader.movePurpose / invoiceDetails[].movePurposeLine` | Διακίνηση | | [Αιτία Έκδοσης Αντίστροφης Διακίνησης](https://developers.novusconceptus.com/el/aade/movement/#reverse-delivery-purpose) | `invoiceHeader.reverseDeliveryNotePurpose` | Διακίνηση | | [Αιτία Έκδοσης Δελτίου Ποσοτικής Παραλαβής](https://developers.novusconceptus.com/el/aade/movement/#receiving-note-purpose) | `invoiceHeader.receivingNotePurpose` | Διακίνηση | Επίσημη πηγή: [https://www.aade.gr/epiheiriseis/mydata-ilektronika-biblia-aade/tehnikes-prodiagrafes-ekdoseis](https://www.aade.gr/epiheiriseis/mydata-ilektronika-biblia-aade/tehnikes-prodiagrafes-ekdoseis) Πηγή: https://developers.novusconceptus.com/el/aade/ --- # Παραστατικά _Document types · ΑΑΔΕ myDATA 2.0.2_ Τύπος παραστατικού και οι ενδείξεις της επικεφαλίδας. **Σε αυτή τη σελίδα:** [Είδη παραστατικών](https://developers.novusconceptus.com/el/aade/documents/#invoice-types) · [Ειδική Κατηγορία Παραστατικού](https://developers.novusconceptus.com/el/aade/documents/#special-invoice-category) · [Τύπος Απόκλισης Παραστατικού](https://developers.novusconceptus.com/el/aade/documents/#invoice-variation-type) · [Κατηγορία Οντότητας](https://developers.novusconceptus.com/el/aade/documents/#entity-type) · [Μέγεθος εκτύπωσης](https://developers.novusconceptus.com/el/aade/documents/#document-size) ## Είδη παραστατικών _Invoice types · πεδίο `invoiceHeader.invoiceType` · ΑΑΔΕ myDATA 2.0.2 — Παράρτημα 8.1_ **Σημείωση: Μέσω Παρόχου: μόνο οι τύποι 1.1 έως 11.5** Ο Πάροχος εκδίδει και διαβιβάζει **μόνο** παραστατικά τύπων **1.x έως 11.x**. Οι τύποι 12.x έως 17.x (παραστατικά λήπτη, έξοδα, εγγραφές τακτοποίησης) **δεν** διαβιβάζονται από Πάροχο και γι' αυτό δεν εμφανίζονται εδώ. **Τιμολόγιο Πώλησης** (Sales invoice) | Κωδικός | Περιγραφή (ΑΑΔΕ) | Description (EN) | Σημειώσεις | |:---:|:---|:---|:---| | `1.1` | Τιμολόγιο Πώλησης | Sales invoice | | | `1.2` | Τιμολόγιο Πώλησης / Ενδοκοινοτικές Παραδόσεις | Sales invoice / Intra-community supplies | | | `1.3` | Τιμολόγιο Πώλησης / Παραδόσεις Τρίτων Χωρών | Sales invoice / Third-country supplies | | | `1.4` | Τιμολόγιο Πώλησης / Πώληση για Λογαριασμό Τρίτων | Sales invoice / Sale on behalf of third parties | | | `1.5` | Τιμολόγιο Πώλησης / Εκκαθάριση Πωλήσεων Τρίτων - Αμοιβή από Πωλήσεις Τρίτων | Sales invoice / Clearance of third-party sales - Fee from third-party sales | | | `1.6` | Τιμολόγιο Πώλησης / Συμπληρωματικό Παραστατικό | Sales invoice / Supplementary document | | **Τιμολόγιο Παροχής Υπηρεσιών** (Service invoice) | Κωδικός | Περιγραφή (ΑΑΔΕ) | Description (EN) | Σημειώσεις | |:---:|:---|:---|:---| | `2.1` | Τιμολόγιο Παροχής | Service invoice | | | `2.2` | Τιμολόγιο Παροχής / Ενδοκοινοτική Παροχή Υπηρεσιών | Service invoice / Intra-community services | | | `2.3` | Τιμολόγιο Παροχής / Παροχή Υπηρεσιών σε λήπτη Τρίτης Χώρας | Service invoice / Services to third-country recipient | | | `2.4` | Τιμολόγιο Παροχής / Συμπληρωματικό Παραστατικό | Service invoice / Supplementary document | | **Τίτλος Κτήσης** (Proof of acquisition (title of acquisition)) | Κωδικός | Περιγραφή (ΑΑΔΕ) | Description (EN) | Σημειώσεις | |:---:|:---|:---|:---| | `3.1` | Τίτλος Κτήσης (μη υπόχρεος Εκδότης) | Title of acquisition (issuer not obliged) | | | `3.2` | Τίτλος Κτήσης (άρνηση έκδοσης από υπόχρεο Εκδότη) | Title of acquisition (obliged issuer refused to issue) | | **Πιστωτικό Τιμολόγιο** (Credit invoice) | Κωδικός | Περιγραφή (ΑΑΔΕ) | Description (EN) | Σημειώσεις | |:---:|:---|:---|:---| | `5.1` | Πιστωτικό Τιμολόγιο / Συσχετιζόμενο | Credit invoice / Correlated | | | `5.2` | Πιστωτικό Τιμολόγιο / Μη Συσχετιζόμενο | Credit invoice / Non-correlated | | **Στοιχείο Αυτοπαράδοσης - Ιδιοχρησιμοποίησης** (Self-delivery / self-supply) | Κωδικός | Περιγραφή (ΑΑΔΕ) | Description (EN) | Σημειώσεις | |:---:|:---|:---|:---| | `6.1` | Στοιχείο Αυτοπαράδοσης | Self-delivery record | | | `6.2` | Στοιχείο Ιδιοχρησιμοποίησης | Self-supply record | | **Συμβόλαιο - Έσοδο** (Contract - income) | Κωδικός | Περιγραφή (ΑΑΔΕ) | Description (EN) | Σημειώσεις | |:---:|:---|:---|:---| | `7.1` | Συμβόλαιο - Έσοδο | Contract - income | | **Ειδικό Στοιχείο (Έσοδο) – Απόδειξη Είσπραξης** (Special record (income) – receipt) | Κωδικός | Περιγραφή (ΑΑΔΕ) | Description (EN) | Σημειώσεις | |:---:|:---|:---|:---| | `8.1` | Ενοίκια - Έσοδο | Rents - income | | | `8.2` | Τέλος ανθεκτικότητας κλιματικής κρίσης | Climate crisis resilience fee | | | `8.4` | Απόδειξη Είσπραξης POS | POS collection receipt | | | `8.5` | Απόδειξη Επιστροφής POS | POS refund receipt | | **Δελτίο Παραγγελίας** (Order slip) | Κωδικός | Περιγραφή (ΑΑΔΕ) | Description (EN) | Σημειώσεις | |:---:|:---|:---|:---| | `8.6` | Δελτίο Παραγγελίας Εστίασης | Food & beverage order slip | Δείτε τον οδηγό Εστίαση (8.6). | **Παραστατικά Διακίνησης** (Delivery / transport documents) | Κωδικός | Περιγραφή (ΑΑΔΕ) | Description (EN) | Σημειώσεις | |:---:|:---|:---|:---| | `9.1` | Δελτίο Αποστολής Συσχετιζόμενο | Delivery note - correlated | Νέο στο myDATA 2.0 | | `9.2` | Συγκεντρωτικό Δελτίο Αποστολής | Consolidated delivery note | Νέο στο myDATA 2.0 | | `9.3` | Δελτίο Αποστολής | Delivery note | | | `10.1` | Δελτίο Ποσοτικής Παραλαβής Συσχετιζόμενο | Quantitative receiving note - correlated | Νέο στο myDATA 2.0. Υποχρεωτικό το receivingNotePurpose. | | `10.2` | Δελτίο Ποσοτικής Παραλαβής Μη Συσχετιζόμενο | Quantitative receiving note - non-correlated | Νέο στο myDATA 2.0. Υποχρεωτικό το receivingNotePurpose. | **Παραστατικά Λιανικής** (Retail documents) | Κωδικός | Περιγραφή (ΑΑΔΕ) | Description (EN) | Σημειώσεις | |:---:|:---|:---|:---| | `11.1` | ΑΛΠ | Retail sales receipt | | | `11.2` | ΑΠΥ | Service provision receipt | | | `11.3` | Απλοποιημένο Τιμολόγιο | Simplified invoice | | | `11.4` | Πιστωτικό Στοιχ. Λιανικής | Retail credit note | | | `11.5` | Απόδειξη Λιανικής Πώλησης για Λογ/σμό Τρίτων | Retail sales receipt on behalf of third parties | | ## Ειδική Κατηγορία Παραστατικού _Special invoice category · πεδίο `invoiceHeader.specialInvoiceCategory` · ΑΑΔΕ myDATA 2.0.2 — Παράρτημα 8.19_ | Κωδικός | Περιγραφή (ΑΑΔΕ) | Description (EN) | Σημειώσεις | |:---:|:---|:---|:---| | `1` | Επιδοτήσεις – Επιχορηγήσεις | Subsidies - grants | | | `2` | Έσοδα Λιανικής Ξενοδοχείων – Χρεώσεις Δωματίου | Hotel retail income - room charges | | | `3` | Λογιστική Εγγραφή | Accounting entry | | | `4` | Tax Free | Tax free | Όχι μέσω Παρόχου (σφάλματα ΑΑΔΕ 266/267). Μόνο μέσω ERP ή timologio. | | `5` | Σύνθετες συναλλαγές ημεδαπής – αλλοδαπής | Complex domestic-foreign transactions | | | `6` | Δικαιούχοι του άρθρου 3 της υπό στοιχεία 139818 ΕΞ2022/28.09.2022 (Β’5083) ΚΥΑ | Beneficiaries of art. 3 of JMD 139818 ΕΞ2022 | | | `7` | Αγορά αγροτικών αγαθών υπηρεσιών Άρθρο 41 του Κώδικα ΦΠΑ | Purchase of agricultural goods/services (art. 41 VAT Code) | | | `8` | Έσοδα Λιανικών ΦΗΜ ΑΑΔΕ_1 | (Μόνο για ανάγνωση) Retail income - cash registers AADE_1 | Μόνο για ανάγνωση. Δεν γίνεται δεκτό από ERP / Πάροχο. | | `9` | Έσοδα Λιανικών ΦΗΜ ΑΑΔΕ_2 | (Μόνο για ανάγνωση) Retail income - cash registers AADE_2 | Μόνο για ανάγνωση. Δεν γίνεται δεκτό από ERP / Πάροχο. | | `10` | Έσοδα Λιανικών ΦΗΜ Επιχείρησης Απόκλιση | Retail income - business cash registers deviation | | | `11` | Επίδομα Θέρμανσης | Heating allowance | | | `12` | Συναλλαγές εστίασης | Food & beverage transactions | | | `13` | Ένδειξη Δυσχέρεια Συσχέτισης | Correlation difficulty indicator | Ισχύει μόνο για τον τύπο 11.4. | ## Τύπος Απόκλισης Παραστατικού _Invoice variation (deviation) type · πεδίο `invoiceHeader.invoiceVariationType` · ΑΑΔΕ myDATA 2.0.2 — Παράρτημα 8.18_ | Κωδικός | Περιγραφή (ΑΑΔΕ) | Description (EN) | Σημειώσεις | |:---:|:---|:---|:---| | `1` | Διαβίβαση Παράλειψης από Λήπτη | Omission transmitted by recipient | Επιτρεπτοί τύποι: 1.1, 1.6, 2.1, 2.4, 5.2, 8.1, 8.2 | | `2` | Διαβίβαση Παράλειψης από Εκδότη | Omission transmitted by issuer | Επιτρεπτοί τύποι: 11.3, 11.4 | | `3` | Διαβίβαση Απόκλισης από Λήπτη | Deviation transmitted by recipient | Επιτρεπτοί τύποι: 11.3, 11.4 (για παραστατικά του 2021 μόνο: 1.1 και 5.2) | | `4` | Διαβίβαση Απόκλισης από Εκδότη | Deviation transmitted by issuer | Επιτρεπτοί τύποι: 11.3, 11.4 | ## Κατηγορία Οντότητας _Correlated entity type · πεδίο `invoiceHeader.otherCorrelatedEntities[].type` · ΑΑΔΕ myDATA 2.0.2 — Παράρτημα 8.20_ | Κωδικός | Περιγραφή (ΑΑΔΕ) | Description (EN) | |:---:|:---|:---| | `1` | Φορολογικός Εκπρόσωπος | Tax representative | | `2` | Διαμεσολαβητής | Intermediary | | `3` | Μεταφορέας | Carrier | | `4` | Λήπτης του Αποστολέα (Πωλητή) | Recipient of the sender (seller) | | `5` | Αποστολέας (Πωλητής) | Sender (seller) | | `6` | Λοιπές Συσχετιζόμενες Οντότητες | Other correlated entities | ## Μέγεθος εκτύπωσης _Document size codes (PDF layout) · πεδίο `providerAdditionalInvoiceDetails.additionalDetails.documentSizeCode` · Novus Conceptus_ Πεδίο του Παρόχου. Επιλέγει το πρότυπο του PDF. Άγνωστη τιμή = 0 (A4). | Κωδικός | Περιγραφή (ΑΑΔΕ) | Description (EN) | |:---:|:---|:---| | `0` | A4 (προεπιλογή) | A4 (default) | | `1` | Θερμικός εκτυπωτής 80mm - σχέδιο 1 | Thermal printer 80mm - design 1 | | `2` | Θερμικός εκτυπωτής 80mm - σχέδιο 2 | Thermal printer 80mm - design 2 | | `3` | Θερμικός εκτυπωτής 57mm | Thermal printer 57mm | | `4` | Θερμικός εκτυπωτής 80mm - σχέδιο 3 | Thermal printer 80mm - design 3 | | `5` | Θερμικός εκτυπωτής 80mm - σχέδιο 4 | Thermal printer 80mm - design 4 | | `6` | A5 | A5 | | `7` | Θερμικός εκτυπωτής 57mm - απλό | Thermal printer 57mm - simple | Πηγή: https://developers.novusconceptus.com/el/aade/documents/ --- # ΦΠΑ _VAT · ΑΑΔΕ myDATA 2.0.2_ Κατηγορίες ΦΠΑ και αιτίες εξαίρεσης. **Σε αυτή τη σελίδα:** [Κατηγορία ΦΠΑ](https://developers.novusconceptus.com/el/aade/vat/#vat-category) · [Κατηγορία Αιτίας Εξαίρεσης ΦΠΑ](https://developers.novusconceptus.com/el/aade/vat/#vat-exemption) ## Κατηγορία ΦΠΑ _VAT category · πεδίο `invoiceDetails[].vatCategory` · ΑΑΔΕ myDATA 2.0.2 — Παράρτημα 8.2_ | Κωδικός | Περιγραφή (ΑΑΔΕ) | Description (EN) | Συντελεστής / ποσό | |:---:|:---|:---|:---| | `1` | ΦΠΑ συντελεστής 24% | VAT 24% | 24% | | `2` | ΦΠΑ συντελεστής 13% | VAT 13% | 13% | | `3` | ΦΠΑ συντελεστής 6% | VAT 6% | 6% | | `4` | ΦΠΑ συντελεστής 17% | VAT 17% | 17% | | `5` | ΦΠΑ συντελεστής 9% | VAT 9% | 9% | | `6` | ΦΠΑ συντελεστής 4% | VAT 4% | 4% | | `7` | Άνευ Φ.Π.Α. | Without VAT (0%) — requires vatExemptionCategory | 0% | | `8` | Εγγραφές χωρίς ΦΠΑ (πχ Μισθοδοσία, Αποσβέσεις) | Records without VAT (e.g. payroll, depreciation) | - | | `9` | ΦΠΑ συντελεστής 3% (αρ.31 ν.5057/2023) | VAT 3% (art. 31 L.5057/2023) | 3% | | `10` | ΦΠΑ συντελεστής 4% (αρ.31 ν.5057/2023) | VAT 4% (art. 31 L.5057/2023) | 4% | ## Κατηγορία Αιτίας Εξαίρεσης ΦΠΑ _VAT exemption category · πεδίο `invoiceDetails[].vatExemptionCategory` · ΑΑΔΕ myDATA 2.0.2 — Παράρτημα 8.3_ Υποχρεωτικό όταν vatCategory = 7. Από το myDATA 1.0.11 οι κωδικοί μένουν ίδιοι, αλλά η νομική αναφορά ακολουθεί τον νέο Κώδικα ΦΠΑ (ν. 5144/2024). Η προηγούμενη αναφορά (ν. 2859/2000) φαίνεται πληροφοριακά. | Κωδικός | Περιγραφή (ΑΑΔΕ) | Προηγούμενη αναφορά (ν.2859/2000) | |:---:|:---|:---| | `1` | Χωρίς ΦΠΑ - άρθρο 2 και 3 του Κώδικα ΦΠΑ | Χωρίς ΦΠΑ - άρθρο 2 και 3 του Κώδικα ΦΠΑ | | `2` | Χωρίς ΦΠΑ - άρθρο 5 του Κώδικα ΦΠΑ | Χωρίς ΦΠΑ - άρθρο 5 του Κώδικα ΦΠΑ | | `3` | Χωρίς ΦΠΑ - άρθρο 17 του Κώδικα ΦΠΑ | Χωρίς ΦΠΑ - άρθρο 13 του Κώδικα ΦΠΑ | | `4` | Χωρίς ΦΠΑ - άρθρο 18 του Κώδικα ΦΠΑ | Χωρίς ΦΠΑ - άρθρο 14 του Κώδικα ΦΠΑ | | `5` | Χωρίς ΦΠΑ - άρθρο 21 του Κώδικα ΦΠΑ | Χωρίς ΦΠΑ - άρθρο 16 του Κώδικα ΦΠΑ | | `6` | Χωρίς ΦΠΑ - άρθρο 24 του Κώδικα ΦΠΑ | Χωρίς ΦΠΑ - άρθρο 19 του Κώδικα ΦΠΑ | | `7` | Χωρίς ΦΠΑ - άρθρο 27 του Κώδικα ΦΠΑ | Χωρίς ΦΠΑ - άρθρο 22 του Κώδικα ΦΠΑ | | `8` | Χωρίς ΦΠΑ - άρθρο 29 του Κώδικα ΦΠΑ | Χωρίς ΦΠΑ - άρθρο 24 του Κώδικα ΦΠΑ | | `9` | Χωρίς ΦΠΑ - άρθρο 30 του Κώδικα ΦΠΑ | Χωρίς ΦΠΑ - άρθρο 25 του Κώδικα ΦΠΑ | | `10` | Χωρίς ΦΠΑ - άρθρο 31 του Κώδικα ΦΠΑ | Χωρίς ΦΠΑ - άρθρο 26 του Κώδικα ΦΠΑ | | `11` | Χωρίς ΦΠΑ - άρθρο 32 του Κώδικα ΦΠΑ | Χωρίς ΦΠΑ - άρθρο 27 του Κώδικα ΦΠΑ | | `12` | Χωρίς ΦΠΑ - άρθρο 32 του Κώδικα ΦΠΑ - Πλοία Ανοικτής Θαλάσσης | Χωρίς ΦΠΑ - άρθρο 27 του Κώδικα ΦΠΑ - Πλοία Ανοικτής Θαλάσσης | | `13` | Χωρίς ΦΠΑ - άρθρο 32.1.γ. του Κώδικα ΦΠΑ - Πλοία Ανοικτής Θαλάσσης | Χωρίς ΦΠΑ - άρθρο 27.1.γ. του Κώδικα ΦΠΑ - Πλοία Ανοικτής Θαλάσσης | | `14` | Χωρίς ΦΠΑ - άρθρο 33 του Κώδικα ΦΠΑ | Χωρίς ΦΠΑ - άρθρο 28 του Κώδικα ΦΠΑ | | `15` | Χωρίς ΦΠΑ - άρθρο 44 του Κώδικα ΦΠΑ | Χωρίς ΦΠΑ - άρθρο 39 του Κώδικα ΦΠΑ | | `16` | Χωρίς ΦΠΑ - άρθρο 45 του Κώδικα ΦΠΑ | Χωρίς ΦΠΑ - άρθρο 39α του Κώδικα ΦΠΑ | | `17` | Χωρίς ΦΠΑ - άρθρο 47 του Κώδικα ΦΠΑ | Χωρίς ΦΠΑ - άρθρο 40 του Κώδικα ΦΠΑ | | `18` | Χωρίς ΦΠΑ - άρθρο 48 του Κώδικα ΦΠΑ | Χωρίς ΦΠΑ - άρθρο 41 του Κώδικα ΦΠΑ | | `19` | Χωρίς ΦΠΑ - άρθρο 54 του Κώδικα ΦΠΑ | Χωρίς ΦΠΑ - άρθρο 47 του Κώδικα ΦΠΑ | | `20` | ΦΠΑ εμπεριεχόμενος - άρθρο 50 του Κώδικα ΦΠΑ | ΦΠΑ εμπεριεχόμενος - άρθρο 43 του Κώδικα ΦΠΑ | | `21` | ΦΠΑ εμπεριεχόμενος - άρθρο 51 του Κώδικα ΦΠΑ | ΦΠΑ εμπεριεχόμενος - άρθρο 44 του Κώδικα ΦΠΑ | | `22` | ΦΠΑ εμπεριεχόμενος - άρθρο 52 του Κώδικα ΦΠΑ | ΦΠΑ εμπεριεχόμενος - άρθρο 45 του Κώδικα ΦΠΑ | | `23` | ΦΠΑ εμπεριεχόμενος - άρθρο 53 του Κώδικα ΦΠΑ | ΦΠΑ εμπεριεχόμενος - άρθρο 46 του Κώδικα ΦΠΑ | | `24` | Χωρίς ΦΠΑ - άρθρο 8 του Κώδικα ΦΠΑ | Χωρίς ΦΠΑ - άρθρο 6 του Κώδικα ΦΠΑ | | `25` | Χωρίς ΦΠΑ - ΠΟΛ.1029/1995 | Χωρίς ΦΠΑ - ΠΟΛ.1029/1995 | | `26` | Χωρίς ΦΠΑ - ΠΟΛ.1167/2015 | Χωρίς ΦΠΑ - ΠΟΛ.1167/2015 | | `27` | Λοιπές Εξαιρέσεις ΦΠΑ | Λοιπές Εξαιρέσεις ΦΠΑ | | `28` | Χωρίς ΦΠΑ – άρθρο 29 περ. β’ παρ.1 του Κώδικα ΦΠΑ (Tax Free) | Χωρίς ΦΠΑ – άρθρο 24 περ. β’ παρ.1 του Κώδικα ΦΠΑ (Tax Free) | | `29` | Χωρίς ΦΠΑ – άρθρο 56 του Κώδικα ΦΠΑ (OSS μη ενωσιακό καθεστώς) | Χωρίς ΦΠΑ – άρθρο 47β του Κώδικα ΦΠΑ (OSS μη ενωσιακό καθεστώς) | | `30` | Χωρίς ΦΠΑ – άρθρο 57 του Κώδικα ΦΠΑ (OSS ενωσιακό καθεστώς) | Χωρίς ΦΠΑ – άρθρο 47γ του Κώδικα ΦΠΑ (OSS ενωσιακό καθεστώς) | | `31` | Χωρίς ΦΠΑ – άρθρο 58 του Κώδικα ΦΠΑ (IOSS) | Χωρίς ΦΠΑ – άρθρο 47δ του Κώδικα ΦΠΑ (IOSS) | Πηγή: https://developers.novusconceptus.com/el/aade/vat/ --- # Φόροι, τέλη, κρατήσεις _Taxes, fees, deductions · ΑΑΔΕ myDATA 2.0.2_ Παρακρατούμενοι, τέλη, λοιποί φόροι, ψηφιακό τέλος συναλλαγής και τα είδη του taxesTotals. **Σε αυτή τη σελίδα:** [Κατηγορία Παρακρατούμενων Φόρων](https://developers.novusconceptus.com/el/aade/taxes/#withheld-tax) · [Κατηγορία Τελών](https://developers.novusconceptus.com/el/aade/taxes/#fees) · [Κατηγορία Λοιπών Φόρων](https://developers.novusconceptus.com/el/aade/taxes/#other-taxes) · [Κατηγορία Συντελεστή Ψηφιακού Τέλους συναλλαγής](https://developers.novusconceptus.com/el/aade/taxes/#digital-transaction-fee) · [Είδος Φόρου](https://developers.novusconceptus.com/el/aade/taxes/#taxes-totals-type) ## Κατηγορία Παρακρατούμενων Φόρων _Withholding tax category · πεδίο `withheldPercentCategory / taxesTotals.taxCategory (taxType=1)` · ΑΑΔΕ myDATA 2.0.2 — Παράρτημα 8.4_ | Κωδικός | Περιγραφή (ΑΑΔΕ) | Συντελεστής / ποσό | |:---:|:---|:---| | `1` | Περιπτ. β’ - Τόκοι - 15% | 15% | | `2` | Περιπτ. γ’ - Δικαιώματα - 20% | 20% | | `3` | Περιπτ. δ’ - Αμοιβές Συμβουλών Διοίκησης - 20% | 20% | | `4` | Περιπτ. δ’ - Τεχνικά Έργα - 3% | 3% | | `5` | Υγρά καύσιμα και προϊόντα καπνοβιομηχανίας 1% | 1% | | `6` | Λοιπά Αγαθά 4% | 4% | | `7` | Παροχή Υπηρεσιών 8% | 8% | | `8` | Προκαταβλητέος Φόρος Αρχιτεκτόνων και Μηχανικών επί Συμβατικών Αμοιβών, για Εκπόνηση Μελετών και Σχεδίων 4% | 4% | | `9` | Προκαταβλητέος Φόρος Αρχιτεκτόνων και Μηχανικών επί Συμβατικών Αμοιβών, που αφορούν οποιασδήποτε άλλης φύσης έργα 10% | 10% | | `10` | Προκαταβλητέος Φόρος στις Αμοιβές Δικηγόρων 15% | 15% | | `11` | Παρακράτηση Φόρου Μισθωτών Υπηρεσιών παρ. 1 αρ. 15 ν. 4172/2013 | ποσό | | `12` | Παρακράτηση Φόρου Μισθωτών Υπηρεσιών παρ. 2 αρ. 15 ν. 4172/2013 - Αξιωματικών Εμπορικού Ναυτικού | 15% | | `13` | Παρακράτηση Φόρου Μισθωτών Υπηρεσιών παρ. 2 αρ. 15 ν. 4172/2013 - Κατώτερο Πλήρωμα Εμπορικού Ναυτικού | 10% | | `14` | Παρακράτηση Ειδικής Εισφοράς Αλληλεγγύης | ποσό | | `15` | Παρακράτηση Φόρου Αποζημίωσης λόγω Διακοπής Σχέσης Εργασίας παρ. 3 αρ. 15 ν. 4172/2013 | ποσό | | `16` | Παρακρατήσεις συναλλαγών αλλοδαπής βάσει συμβάσεων αποφυγής διπλής φορολογίας (Σ.Α.Δ.Φ.) | ποσό | | `17` | Λοιπές Παρακρατήσεις Φόρου | ποσό | | `18` | Παρακράτηση Φόρου Μερίσματα περ.α παρ. 1 αρ. 64 ν. 4172/2013 | 5% | ## Κατηγορία Τελών _Fees category · πεδίο `feesPercentCategory / taxesTotals.taxCategory (taxType=2)` · ΑΑΔΕ myDATA 2.0.2 — Παράρτημα 8.7_ | Κωδικός | Περιγραφή (ΑΑΔΕ) | Συντελεστής / ποσό | |:---:|:---|:---| | `1` | Για μηνιαίο λογαριασμό μέχρι και 50 ευρώ 12% | 12% | | `2` | Για μηνιαίο λογαριασμό από 50,01 μέχρι και 100 ευρώ 15% | 15% | | `3` | Για μηνιαίο λογαριασμό από 100,01 μέχρι και 150 ευρώ 18% | 18% | | `4` | Για μηνιαίο λογαριασμό από 150,01 ευρώ και άνω 20% | 20% | | `5` | Τέλος καρτοκινητής επί της αξίας του χρόνου ομιλίας (12%) | 12% | | `6` | Τέλος στη συνδρομητική τηλεόραση 10% | 10% | | `7` | Τέλος συνδρομητών σταθερής τηλεφωνίας 5% | 5% | | `8` | Περιβαλλοντικό Τέλος & πλαστικής σακούλας ν. 2339/2001 αρ. 6α 0,07 ευρώ ανά τεμάχιο | ποσό | | `9` | Εισφορά δακοκτονίας 2% | 2% | | `10` | Λοιπά τέλη | ποσό | | `11` | Τέλη Λοιπών Φόρων | ποσό | | `12` | Εισφορά δακοκτονίας | ποσό | | `13` | Για μηνιαίο λογαριασμό κάθε σύνδεσης (10%) | 10% | | `14` | Τέλος καρτοκινητής επί της αξίας του χρόνου ομιλίας (10%) | 10% | | `15` | Τέλος κινητής και καρτοκινητής για φυσικά πρόσωπα ηλικίας 15 έως και 29 ετών (0%) | 0% | | `16` | Εισφορά προστασίας περιβάλλοντος πλαστικών προϊόντων 0,04 λεπτά ανά τεμάχιο [άρθρο 4 ν. 4736/2020] | ποσό | | `17` | Τέλος ανακύκλωσης 0,08 λεπτά ανά τεμάχιο [άρθρο 80 ν. 4819/2021] | ποσό | | `18` | Τέλος διαμονής παρεπιδημούντων | ποσό | | `19` | Τέλος επί των ακαθάριστων εσόδων των εστιατορίων και συναφών καταστημάτων | ποσό | | `20` | Τέλος επί των ακαθάριστων εσόδων των κέντρων διασκέδασης | ποσό | | `21` | Τέλος επί των ακαθάριστων εσόδων των καζίνο | ποσό | | `22` | Λοιπά τέλη επί των ακαθάριστων εσόδων | ποσό | ## Κατηγορία Λοιπών Φόρων _Other taxes category · πεδίο `otherTaxesPercentCategory / taxesTotals.taxCategory (taxType=3)` · ΑΑΔΕ myDATA 2.0.2 — Παράρτημα 8.5_ | Κωδικός | Περιγραφή (ΑΑΔΕ) | Συντελεστής / ποσό | |:---:|:---|:---| | `1` | α1) ασφάλιστρα κλάδου πυρός 20% | 15% | | `2` | α2) ασφάλιστρα κλάδου πυρός 20% | 5% | | `3` | β) ασφάλιστρα κλάδου ζωής 4% | 4% | | `4` | γ) ασφάλιστρα λοιπών κλάδων 15% | 15% | | `5` | δ) απαλλασσόμενα φόρου ασφαλίστρων 0% | 0% | | `6` | Ξενοδοχεία 1-2 αστέρων 0,50 € | ποσό | | `7` | Ξενοδοχεία 3 αστέρων 1,50 € | ποσό | | `8` | Ξενοδοχεία 4 αστέρων 3,00 € | ποσό | | `9` | Ξενοδοχεία 4 αστέρων 4,00 € | ποσό | | `10` | Ενοικιαζόμενα - επιπλωμένα δωμάτια - διαμερίσματα 0,50 € | ποσό | | `11` | Ειδικός Φόρος στις διαφημίσεις που προβάλλονται από την τηλεόραση (ΕΦΤΔ) 5% | 5% | | `12` | 3.1 Φόρος πολυτελείας 10% επί της φορολογητέας αξίας για τα ενδοκοινοτικώς αποκτούμενα και εισαγόμενα από τρίτες χώρες 10% | 10% | | `13` | 3.2 Φόρος πολυτελείας 10% επί της τιμής πώλησης προ Φ.Π.Α. για τα εγχωρίως παραγόμενα είδη 10% | 10% | | `14` | Δικαίωμα του Δημοσίου στα εισιτήρια των καζίνο (80% επί του εισιτηρίου) | 80% | | `15` | ασφάλιστρα κλάδου πυρός 20% | 20% | | `16` | Λοιποί Τελωνειακοί Δασμοί-Φόροι | ποσό | | `17` | Λοιποί Φόροι | ποσό | | `18` | Επιβαρύνσεις Λοιπών Φόρων | ποσό | | `19` | ΕΦΚ | ποσό | | `20` | Ξενοδοχεία 1-2 αστέρων 1,50€ (ανά Δωμ./Διαμ.) | ποσό | | `21` | Ξενοδοχεία 3 αστέρων 3,00€ (ανά Δωμ./Διαμ.) | ποσό | | `22` | Ξενοδοχεία 4 αστέρων 7,00€ (ανά Δωμ./Διαμ.) | ποσό | | `23` | Ξενοδοχεία 5 αστέρων 10,00€ (ανά Δωμ./Διαμ.) | ποσό | | `24` | Ενοικιαζόμενα επιπλωμένα δωμάτια – διαμερίσματα 1,50€ (ανά Δωμ./Διαμ.) | ποσό | | `25` | Ακίνητα βραχυχρόνιας μίσθωσης 1,50€ | ποσό | | `26` | Ακίνητα βραχυχρόνιας μίσθωσης μονοκατοικίες άνω των 80 τ.μ. 10,00€ | ποσό | | `27` | Αυτοεξυπηρετούμενα καταλύματα – τουριστικές επιπλωμένες επαύλεις (βίλες) 10,00€ | ποσό | | `28` | Ακίνητα βραχυχρόνιας μίσθωσης 0,50€ | ποσό | | `29` | Ακίνητα βραχυχρόνιας μίσθωσης μονοκατοικίες άνω των 80 τ.μ. 4,00€ | ποσό | | `30` | Αυτοεξυπηρετούμενα καταλύματα – τουριστικές επιπλωμένες επαύλεις (βίλες) 4,00€ | ποσό | ## Κατηγορία Συντελεστή Ψηφιακού Τέλους συναλλαγής _Digital transaction fee category (former stamp duty) · πεδίο `stampDutyPercentCategory / taxesTotals.taxCategory (taxType=4)` · ΑΑΔΕ myDATA 2.0.2 — Παράρτημα 8.6_ Από το myDATA 1.0.11 το «Χαρτόσημο» λέγεται «Ψηφιακό Τέλος συναλλαγής». Άλλαξε μόνο η ονομασία: τα πεδία του JSON μένουν ίδια (stampDutyAmount, stampDutyPercentCategory, totalStampDutyAmount). | Κωδικός | Περιγραφή (ΑΑΔΕ) | Συντελεστής / ποσό | |:---:|:---|:---| | `1` | Συντελεστής 1,2 % | 1,20% | | `2` | Συντελεστής 2,4 % | 2,40% | | `3` | Συντελεστής 3,6 % | 3,60% | | `4` | Λοιπές περιπτώσεις | ποσό | ## Είδος Φόρου _Tax type (taxesTotals) · πεδίο `taxesTotals[].taxType` · ΑΑΔΕ myDATA 2.0.2 — §5.5_ | Κωδικός | Περιγραφή (ΑΑΔΕ) | Description (EN) | Σημειώσεις | |:---:|:---|:---|:---| | `1` | Παρακρατούμενος Φόρος | Withheld tax | taxCategory από τον πίνακα 8.4 | | `2` | Τέλη | Fees | taxCategory από τον πίνακα 8.7 | | `3` | Λοιποί Φόροι | Other taxes | taxCategory από τον πίνακα 8.5 | | `4` | Ψηφιακό Τέλος συναλλαγής (πρώην Χαρτόσημο) | Digital transaction fee (former stamp duty) | taxCategory από τον πίνακα 8.6 | | `5` | Κρατήσεις | Deductions | | Πηγή: https://developers.novusconceptus.com/el/aade/taxes/ --- # Χαρακτηρισμοί εσόδων / εξόδων _Income & expense classifications · ΑΑΔΕ myDATA 2.0.2_ Κατηγορίες (category…) και τύποι (E3_…) χαρακτηρισμών. **Σε αυτή τη σελίδα:** [Κωδικός Κατηγορίας Χαρακτηρισμού Εσόδων](https://developers.novusconceptus.com/el/aade/classifications/#income-classification-category) · [Κωδικός Τύπου Χαρακτηρισμού Εσόδων](https://developers.novusconceptus.com/el/aade/classifications/#income-classification-type) · [Κωδικός Κατηγορίας Χαρακτηρισμού Εξόδων](https://developers.novusconceptus.com/el/aade/classifications/#expenses-classification-category) · [Κωδικός Τύπου Χαρακτηρισμού Εξόδων](https://developers.novusconceptus.com/el/aade/classifications/#expenses-classification-type) ## Κωδικός Κατηγορίας Χαρακτηρισμού Εσόδων _Income classification category · πεδίο `incomeClassification[].classificationCategory` · ΑΑΔΕ myDATA 2.0.2 — Παράρτημα 8.8_ | Κωδικός | Περιγραφή (ΑΑΔΕ) | |:---:|:---| | `category1_1` | Έσοδα από Πώληση Εμπορευμάτων (+) / (-) | | `category1_2` | Έσοδα από Πώληση Προϊόντων (+) / (-) | | `category1_3` | Έσοδα από Παροχή Υπηρεσιών (+) / (-) | | `category1_4` | Έσοδα από Πώληση Παγίων (+) / (-) | | `category1_5` | Λοιπά Έσοδα/ Κέρδη (+) / (-) | | `category1_6` | Αυτοπαραδόσεις / Ιδιοχρησιμοποιήσεις (+) / (-) | | `category1_7` | Έσοδα για λ/σμο τρίτων (+) / (-) | | `category1_8` | Έσοδα προηγούμενων χρήσεων (+)/ (-) | | `category1_9` | Έσοδα επομένων χρήσεων (+) / (-) | | `category1_10` | Λοιπές Εγγραφές Τακτοποίησης Εσόδων (+) / (-) | | `category1_95` | Λοιπά Πληροφοριακά Στοιχεία Εσόδων (+) / (-) | | `category3` | Διακίνηση | ## Κωδικός Τύπου Χαρακτηρισμού Εσόδων _Income classification type · πεδίο `incomeClassification[].classificationType` · ΑΑΔΕ myDATA 2.0.2 — Παράρτημα 8.9_ | Κωδικός | Περιγραφή (ΑΑΔΕ) | |:---:|:---| | `E3_106` | Ιδιοπαραγωγή παγίων - Αυτοπαραδόσεις - Καταστροφές αποθεμάτων/Εμπορεύματα | | `E3_205` | Ιδιοπαραγωγή παγίων - Αυτοπαραδόσεις - Καταστροφές αποθεμάτων/Πρώτες ύλες και λοιπά υλικά | | `E3_210` | Ιδιοπαραγωγή παγίων - Αυτοπαραδόσεις - Καταστροφές αποθεμάτων/Προϊόντα και παραγωγή σε εξέλιξη | | `E3_305` | Ιδιοπαραγωγή παγίων - Αυτοπαραδόσεις – Καταστροφές αποθεμάτων/Πρώτες ύλες και λοιπά υλικά | | `E3_310` | Ιδιοπαραγωγή παγίων - Αυτοπαραδόσεις - Καταστροφές αποθεμάτων/Προϊόντα και παραγωγή σε εξέλιξη | | `E3_318` | Ιδιοπαραγωγή παγίων - Αυτοπαραδόσεις - Καταστροφές αποθεμάτων/Έξοδα παραγωγής | | `E3_561_001` | Πωλήσεις αγαθών και υπηρεσιών Χονδρικές - Επιτηδευματιών | | `E3_561_002` | Πωλήσεις αγαθών και υπηρεσιών Χονδρικές βάσει άρθρου 39α παρ 5 του Κώδικα Φ.Π.Α. (Ν.2859/2000) | | `E3_561_003` | Πωλήσεις αγαθών και υπηρεσιών Λιανικές - Ιδιωτική Πελατεία | | `E3_561_004` | Πωλήσεις αγαθών και υπηρεσιών Λιανικές βάσει άρθρου 39α παρ 5 του Κώδικα Φ.Π.Α. (Ν.2859/2000) | | `E3_561_005` | Πωλήσεις αγαθών και υπηρεσιών Εξωτερικού Ενδοκοινοτικές | | `E3_561_006` | Πωλήσεις αγαθών και υπηρεσιών Εξωτερικού Τρίτες Χώρες | | `E3_561_007` | Πωλήσεις αγαθών και υπηρεσιών Λοιπά | | `E3_562` | Λοιπά συνήθη έσοδα | | `E3_563` | Πιστωτικοί τόκοι και συναφή έσοδα | | `E3_564` | Πιστωτικές συναλλαγματικές διαφορές | | `E3_565` | Έσοδα συμμετοχών | | `E3_566` | Κέρδη από διάθεση μη κυκλοφορούντων περιουσιακών στοιχείων | | `E3_567` | Κέρδη από αναστροφή προβλέψεων και απομειώσεων | | `E3_568` | Κέρδη από επιμέτρηση στην εύλογη αξία | | `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` | Πωλήσεις για λογ/σμο Τρίτων Λιανικές | | `E3_881_003` | Πωλήσεις για λογ/σμο Τρίτων Εξωτερικού Ενδοκοινοτικές | | `E3_881_004` | Πωλήσεις για λογ/σμο Τρίτων Εξωτερικού Τρίτες Χώρες | | `E3_598_001` | Πωλήσεις αγαθών που υπάγονται σε ΕΦΚ | | `E3_598_003` | Πωλήσεις για λογαριασμό αγροτών μέσω αγροτικού συνεταιρισμού κλπ | ## Κωδικός Κατηγορίας Χαρακτηρισμού Εξόδων _Expenses classification category · πεδίο `expensesClassification[].classificationCategory` · ΑΑΔΕ myDATA 2.0.2 — Παράρτημα 8.10_ | Κωδικός | Περιγραφή (ΑΑΔΕ) | |:---:|:---| | `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` | Λοιπά Πληροφοριακά Στοιχεία Εξόδων (-) / (+) | ## Κωδικός Τύπου Χαρακτηρισμού Εξόδων _Expenses classification type · πεδίο `expensesClassification[].classificationType` · ΑΑΔΕ myDATA 2.0.2 — Παράρτημα 8.11_ | Κωδικός | Περιγραφή (ΑΑΔΕ) | |:---:|:---| | `E3_101` | Εμπορεύματα έναρξης | | `E3_102_001` | Αγορές εμπορευμάτων χρήσης (καθαρό ποσό)/Χονδρικές | | `E3_102_002` | Αγορές εμπορευμάτων χρήσης (καθαρό ποσό)/Λιανικές | | `E3_102_003` | Αγορές εμπορευμάτων χρήσης (καθαρό ποσό)/Αγαθών του άρθρου 39α παρ.5 του Κώδικα Φ.Π.Α. (ν.2859/2000) | | `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` | Προμήθειες διαχείρισης ημεδαπής - αλλοδαπής (management fees) | | `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` | Λοιπές Αμοιβές για υπηρεσίες αλλοδαπής | | `E3_585_011` | Ενέργεια | | `E3_585_012` | Ύδρευση | | `E3_585_013` | Τηλεπικοινωνίες | | `E3_585_014` | Ενοίκια | | `E3_585_015` | Διαφήμιση και προβολή | | `E3_585_016` | Λοιπά έξοδα | | `E3_585_017` | Διάφορα λειτουργικά έξοδα Ζ2 | | `E3_586` | Χρεωστικοί τόκοι και συναφή έξοδα | | `E3_587` | Αποσβέσεις | | `E3_588` | Ασυνήθη έξοδα, ζημιές και πρόστιμα | | `E3_589` | Προβλέψεις (εκτός από προβλέψεις για το προσωπικό) | | `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` | Ενδοκοινοτικές λήψεις υπηρεσιών άρθρ. 14.2.α | | `VAT_366` | Λοιπές πράξεις λήπτη | | `E3_103` | Απομείωση εμπορευμάτων | | `E3_203` | Απομείωση πρώτων υλών και υλικών | | `E3_303` | Απομείωση πρώτων υλών και υλικών | | `E3_208` | Απομείωση προϊόντων και παραγωγής σε εξέλιξη | | `E3_308` | Απομείωση προϊόντων και παραγωγής σε εξέλιξη | | `E3_314` | Απομείωση ζώων - φυτών – εμπορευμάτων | | `E3_106` | Ιδιοπαραγωγή παγίων - Αυτοπαραδόσεις - Καταστροφές αποθεμάτων | | `E3_205` | Ιδιοπαραγωγή παγίων - Αυτοπαραδόσεις - Καταστροφές αποθεμάτων | | `E3_305` | Ιδιοπαραγωγή παγίων - Αυτοπαραδόσεις - Καταστροφές αποθεμάτων | | `E3_210` | Ιδιοπαραγωγή παγίων - Αυτοπαραδόσεις - Καταστροφές αποθεμάτων | | `E3_310` | Ιδιοπαραγωγή παγίων - Αυτοπαραδόσεις - Καταστροφές αποθεμάτων | | `E3_318` | Ιδιοπαραγωγή παγίων - Αυτοπαραδόσεις - Καταστροφές αποθεμάτων | | `E3_598_002` | Αγορές αγαθών που υπάγονται σε ΕΦΚ | | `NOT_VAT_295` | Μη συμμετοχή στο ΦΠΑ (έξοδα – εισροές Φ2) | Πηγή: https://developers.novusconceptus.com/el/aade/classifications/ --- # Γραμμές & πληρωμές _Lines & payments · ΑΑΔΕ myDATA 2.0.2_ Τρόποι πληρωμής, πάροχοι POS, μονάδες μέτρησης, είδος γραμμής, καύσιμα. **Σε αυτή τη σελίδα:** [Τρόποι Πληρωμής](https://developers.novusconceptus.com/el/aade/lines-payments/#payment-methods) · [Πάροχος Υπηρεσιών Πληρωμών (NSP)](https://developers.novusconceptus.com/el/aade/lines-payments/#pos-nsp) · [Είδος Ποσότητας](https://developers.novusconceptus.com/el/aade/lines-payments/#measurement-units) · [Είδος Γραμμής](https://developers.novusconceptus.com/el/aade/lines-payments/#rec-type) · [Επισήμανση](https://developers.novusconceptus.com/el/aade/lines-payments/#invoice-detail-type) · [Κωδικοί Καυσίμων](https://developers.novusconceptus.com/el/aade/lines-payments/#fuel-codes) ## Τρόποι Πληρωμής _Payment methods · πεδίο `paymentMethods[].type` · ΑΑΔΕ myDATA 2.0.2 — Παράρτημα 8.12_ | Κωδικός | Περιγραφή (ΑΑΔΕ) | Description (EN) | Σημειώσεις | |:---:|:---|:---|:---| | `1` | Επαγ. Λογαριασμός Πληρωμών Ημεδαπής | Domestic business payment account | | | `2` | Επαγ. Λογαριασμός Πληρωμών Αλλοδαπής | Foreign business payment account | | | `3` | Μετρητά | Cash | | | `4` | Επιταγή | Cheque | | | `5` | Επί Πιστώσει | On credit | | | `6` | Web Banking | Web banking | | | `7` | POS / e-POS | POS / e-POS (card) | Δείτε τον οδηγό Πληρωμή με κάρτα / IRIS (υπογραφή Παρόχου). | | `8` | Άμεσες Πληρωμές IRIS | IRIS instant payments | Δείτε τον οδηγό Πληρωμή με κάρτα / IRIS (υπογραφή Παρόχου). | ## Πάροχος Υπηρεσιών Πληρωμών (NSP) _Payment network service provider (posNspId) · πεδίο `paymentMethods[].posNspId` · Novus Conceptus_ Πεδίο του Παρόχου. Λέει σε ποιον πάροχο POS (NSP) ανήκει το τερματικό, ώστε η υπογραφή Παρόχου να επιστρέφεται στη μορφή και με τη σειρά πεδίων που περιμένει ο συγκεκριμένος NSP. | Κωδικός | NSP | Μορφή υπογραφής | Σειρά πεδίων που υπογράφονται | |:---:|:---|:---|:---| | `1` | Mellon | HEX | UID;MARK;DATETIME;NET;VAT;TOTAL;AMOUNT_TO_PAY;TID | | `2` | Viva | BASE64 | UID;MARK;DATETIME;AMOUNT_TO_PAY;NET;VAT;TOTAL;TID | | `3` | Cardlink | HEX | UID;MARK;DATETIME;NET;VAT;TOTAL;AMOUNT_TO_PAY;TID | | `4` | Euronet | BASE64 | UID;MARK;DATETIME;AMOUNT_TO_PAY;NET;VAT;TOTAL;TID | | `5` | Nexi | BASE64 | UID;MARK;DATETIME;AMOUNT_TO_PAY;NET;VAT;TOTAL;TID | | `6` | EDPS | BASE64 | UID;MARK;DATETIME;AMOUNT_TO_PAY;NET;VAT;TOTAL;TID | | `7` | Worldline | BASE64 | UID;MARK;DATETIME;NET;VAT;TOTAL;AMOUNT_TO_PAY;TID | | `98` | Other (HEX) | HEX | UID;MARK;DATETIME;AMOUNT_TO_PAY;NET;VAT;TOTAL;TID | | `99` | Other (BASE64) | BASE64 | UID;MARK;DATETIME;AMOUNT_TO_PAY;NET;VAT;TOTAL;TID | ## Είδος Ποσότητας _Measurement units · πεδίο `invoiceDetails[].measurementUnit` · ΑΑΔΕ myDATA 2.0.2 — Παράρτημα 8.13_ | Κωδικός | Περιγραφή (ΑΑΔΕ) | Description (EN) | |:---:|:---|:---| | `1` | Τεμάχια | Pieces | | `2` | Κιλά | Kilograms | | `3` | Λίτρα | Litres | | `4` | Μέτρα | Metres | | `5` | Τετραγωνικά Μέτρα | Square metres | | `6` | Κυβικά Μέτρα | Cubic metres | | `7` | Τεμάχια_Λοιπές Περιπτώσεις | Pieces - other cases (use otherMeasurementUnitQuantity / otherMeasurementUnitTitle) | ## Είδος Γραμμής _Line type (recType) · πεδίο `invoiceDetails[].recType` · ΑΑΔΕ myDATA 2.0.2 — Παράρτημα 8.16_ | Κωδικός | Περιγραφή (ΑΑΔΕ) | Description (EN) | Σημειώσεις | |:---:|:---|:---|:---| | `1` | Ειδική Γραμμή Παρακρατούμενων Φόρων | (Για μελλοντική χρήση) Special withholding-tax line | Ανενεργό, για μελλοντική χρήση. | | `2` | Γραμμή Τέλους με Φ.Π.Α. | Fee line with VAT | | | `3` | Γραμμή Λοιπών Φόρων με Φ.Π.Α. | Other-taxes line with VAT | | | `4` | Ειδική Γραμμή Ψηφιακού Τέλους συναλλαγής | (Για μελλοντική χρήση) Special digital-transaction-fee line | Ανενεργό, για μελλοντική χρήση. | | `5` | Ειδική Γραμμή Κρατήσεων | (Για μελλοντική χρήση) Special deductions line | Ανενεργό, για μελλοντική χρήση. | | `6` | Δωροεπιταγή | Gift voucher | | | `7` | Αρνητικό πρόσημο αξιών | Negative sign of values | Για τη μερική ακύρωση δελτίου 8.6 (δείτε τον οδηγό Εστίαση). | ## Επισήμανση _Invoice detail type (marking) · πεδίο `invoiceDetails[].invoiceDetailType` · ΑΑΔΕ myDATA 2.0.2 — Παράρτημα 8.15_ | Κωδικός | Περιγραφή (ΑΑΔΕ) | Description (EN) | |:---:|:---|:---| | `1` | Εκκαθάριση Πωλήσεων Τρίτων | Clearance of third-party sales | | `2` | Αμοιβή από Πωλήσεις Τρίτων | Fee from third-party sales | ## Κωδικοί Καυσίμων _Fuel codes · πεδίο `invoiceDetails[].fuelCode` · ΑΑΔΕ myDATA 2.0.2 — Παράρτημα 8.17_ | Κωδικός | Περιγραφή (ΑΑΔΕ) | Σημειώσεις | |:---:|:---|:---| | `10` | Benzine 95RON | | | `11` | Benzine 95RON+ | | | `12` | Benzine 100RON | | | `13` | Benzine LRP | | | `14` | Βενζίνη αεροπλάνων | | | `15` | Ειδικό καύσιμο αεριωθουμένων | | | `20` | Diesel | | | `21` | Diesel premium | | | `30` | Diesel Heatnn | | | `31` | Diesel Heat premium | | | `32` | Diesel Light | | | `33` | Diesel άλλων χρήσεων | | | `34` | Diesel ναυτιλίας | | | `35` | Κηροζίνη JP1 | | | `36` | Κηροζίνη άλλων χρήσεων | | | `37` | Μαζούτ | | | `38` | Μαζούτ ναυτιλίας | | | `40` | LPG (υγραέριο) | | | `41` | Υγραέριο (LPG) και μεθάνιο βιομηχανικό /εμπορικό κινητήρων (χύδην) | | | `42` | Υγραέριο (LPG) και μεθάνιο θέρμανσης και λοιπών χρήσεων (χύδην) | | | `43` | Υγραέριο (LPG) και μεθάνιο βιομηχανικό /εμπορικό κινητήρων (σε φιάλες) | | | `44` | Υγραέριο (LPG) και μεθάνιο θέρμανσης και λοιπών χρήσεων (σε φιάλες) | | | `50` | CNG (πεπιεσμένο φυσικό αέριο) | | | `60` | Αρωματικοί Υδρογονάνθρακες Δασμολογικής Κλάσης 2707 | | | `61` | Κυκλικοί Υδρογονάνθρακες Δασμολογικής Κλάσης 2902 | | | `70` | Ελαφρύ πετρέλαιο (WHITE SPIRIT) | | | `71` | Ελαφριά λάδια | | | `72` | Βιοντίζελ | | | `999` | Λοιπές χρεώσεις υπηρεσιών | Για μικρές χρεώσεις εκτός καυσίμων σε τιμολόγιο καυσίμων. | Πηγή: https://developers.novusconceptus.com/el/aade/lines-payments/ --- # Διακίνηση _Goods movement · ΑΑΔΕ myDATA 2.0.2_ Σκοπός διακίνησης, αντίστροφη διακίνηση, δελτίο ποσοτικής παραλαβής. **Σε αυτή τη σελίδα:** [Σκοπός Διακίνησης](https://developers.novusconceptus.com/el/aade/movement/#move-purpose) · [Αιτία Έκδοσης Αντίστροφης Διακίνησης](https://developers.novusconceptus.com/el/aade/movement/#reverse-delivery-purpose) · [Αιτία Έκδοσης Δελτίου Ποσοτικής Παραλαβής](https://developers.novusconceptus.com/el/aade/movement/#receiving-note-purpose) ## Σκοπός Διακίνησης _Purpose of movement · πεδίο `invoiceHeader.movePurpose / invoiceDetails[].movePurposeLine` · ΑΑΔΕ myDATA 2.0.2 — Παράρτημα 8.14_ | Κωδικός | Περιγραφή (ΑΑΔΕ) | Description (EN) | Σημειώσεις | |:---:|:---|:---|:---| | `1` | Πώληση | Sale | | | `2` | Πώληση για Λογαριασμό Τρίτων | Sale on behalf of third parties | | | `3` | Δειγματισμός | Sampling | | | `4` | Έκθεση | Exhibition | | | `5` | Επιστροφή | Return | | | `6` | Φύλαξη | (Δεν γίνεται πλέον δεκτό) Safekeeping | Δεν γίνεται πλέον δεκτό (από το myDATA 1.0.11). | | `7` | Επεξεργασία Συναρμολόγηση | Processing / assembly | | | `8` | Μεταξύ Εγκαταστάσεων Οντότητας | Between the entity's premises | | | `9` | Αγορά | Purchase | | | `10` | Εφοδιασμός πλοίων και αεροσκαφών | Supply of ships and aircraft | | | `11` | Δωρεάν διάθεση | Free distribution | | | `12` | Εγγύηση | Warranty | | | `13` | Χρησιδανεισμός | Loan for use | | | `14` | Αποθήκευση σε Τρίτους | Storage at third parties | | | `15` | Επιστροφή από Φύλαξη | (Δεν γίνεται πλέον δεκτό) Return from safekeeping | Δεν γίνεται πλέον δεκτό (από το myDATA 1.0.11). | | `16` | Ανακύκλωση | (Δεν γίνεται πλέον δεκτό) Recycling | Δεν γίνεται πλέον δεκτό (από το myDATA 1.0.11). | | `17` | Καταστροφή άχρηστου υλικού | (Δεν γίνεται πλέον δεκτό) Destruction of useless material | Δεν γίνεται πλέον δεκτό (από το myDATA 1.0.11). | | `18` | Διακίνηση Παγίων (Ενδοδιακίνηση) | (Δεν γίνεται πλέον δεκτό) Movement of fixed assets (internal) | Δεν γίνεται πλέον δεκτό (από το myDATA 1.0.11). | | `19` | Λοιπές Διακινήσεις | Other movements | Συμπληρώστε otherMovePurposeTitle (επικεφαλίδα) / otherMovePurposeLineTitle (γραμμή). | | `20` | Μεταφορές - Ταχυμεταφορές | Transport - courier services | | ## Αιτία Έκδοσης Αντίστροφης Διακίνησης _Reverse delivery note purpose · πεδίο `invoiceHeader.reverseDeliveryNotePurpose` · ΑΑΔΕ myDATA 2.0.2 — Παράρτημα 8.21_ | Κωδικός | Περιγραφή (ΑΑΔΕ) | Description (EN) | |:---:|:---|:---| | `1` | ΜΗ ΥΠΟΧΡΕΟΣ ΕΚΔΟΣΗΣ | Issuer not obliged | | `2` | ΑΡΝΗΣΗ ΕΚΔΟΣΗΣ/ΕΚ ΠΑΡΑΔΡΟΜΗΣ ΜΗ ΕΚΔΟΣΗ | Refusal / omission to issue | | `3` | ΕΝΔΟΚΟΙΝΟΤΙΚΗ ΑΠΟΚΤΗΣΗ | Intra-community acquisition | | `4` | ΑΠΟΚΤΗΣΗ ΤΡΙΤΗ ΧΩΡΑ | Third-country acquisition | | `5` | ΑΝΤΙΣΤΡΟΦΗ ΥΠΟΧΡΕΩΣΗΣ | Reverse obligation | ## Αιτία Έκδοσης Δελτίου Ποσοτικής Παραλαβής _Receiving note purpose · πεδίο `invoiceHeader.receivingNotePurpose` · ΑΑΔΕ myDATA 2.0.2 — Παράρτημα 8.24_ Νέο στο myDATA 2.0.2. Υποχρεωτικό (και δεκτό μόνο) στους τύπους 10.1 και 10.2. | Κωδικός | Περιγραφή (ΑΑΔΕ) | Description (EN) | Σημειώσεις | |:---:|:---|:---|:---| | `1` | ΔΠΠ - ΜΗ ΥΠΟΧΡΕΟΣ ΕΚΔΟΣΗΣ | Issuer not obliged | 10.1, 10.2 | | `2` | ΔΠΠ - ΑΡΝΗΣΗ ΕΚΔΟΣΗΣ/ΕΚ ΠΑΡΑΔΡΟΜΗΣ ΜΗ ΕΚΔΟΣΗ | Refusal / omission to issue | 10.1, 10.2 | | `3` | ΔΠΠ - ΕΝΔΟΚΟΙΝΟΤΙΚΗ ΑΠΟΚΤΗΣΗ | Intra-community acquisition | 10.1, 10.2 | | `4` | ΔΠΠ - ΑΠΟΚΤΗΣΗ ΤΡΙΤΗ ΧΩΡΑ | Third-country acquisition | 10.1, 10.2 | | `5` | ΔΠΠ - ΠΟΣΟΤΙΚΟΣ ΕΛΕΓΧΟΣ | Quantitative check | Μόνο 10.1 | | `6` | ΔΠΠ - ΜΗ/ΜΕΡΙΚΗ ΠΑΡΑΔΟΣΗ | Non / partial delivery | 10.1, 10.2 | | `7` | ΔΠΠ - ΛΟΙΠΕΣ ΠΕΡΙΠΤΩΣΕΙΣ | Other cases (fill otherReceivingNotePurposeTitle) | 10.1, 10.2 | Πηγή: https://developers.novusconceptus.com/el/aade/movement/ --- # Postman & παραδείγματα Όλα όσα χρειάζεται ένας developer για να ξεκινήσει: ένα **YAML** (OpenAPI) και μία **συλλογή Postman** για κάθε API. ## Τα αρχεία | API | OpenAPI (YAML) | Postman | |:---|:---|:---| | **Provider API**: έκδοση παραστατικών | [ novus-provider-api.openapi.yaml](https://developers.novusconceptus.com/openapi/novus-provider-api.openapi.yaml) | [ Novus_Provider_API.postman_collection.json](https://developers.novusconceptus.com/postman/Novus_Provider_API.postman_collection.json) | | **Onboarding API**: ενεργοποίηση πελατών | [ novus-onboarding-api.openapi.yaml](https://developers.novusconceptus.com/openapi/novus-onboarding-api.openapi.yaml) | [ Novus_Onboarding_API.postman_collection.json](https://developers.novusconceptus.com/postman/Novus_Onboarding_API.postman_collection.json) | - Το **YAML** (OpenAPI 3.1) το διαβάζετε σαν κείμενο ή το δίνετε σε code generator (NSwag, OpenAPI Generator, Kiota). Ξεκινά με τη ροή και τις σημαντικές σημειώσεις. Κάθε πεδίο με κωδικό της ΑΑΔΕ έχει τις επιτρεπτές τιμές με την περιγραφή τους. - Η **συλλογή Postman** έχει όλες τις κλήσεις, οργανωμένες σε σενάρια, με εξηγήσεις και έτοιμα tests. ## Postman σε 3 βήματα 1. Στο Postman: **Import** → σύρετε το αρχείο της συλλογής. 2. Ανοίξτε τη συλλογή → καρτέλα **Variables** και συμπληρώστε: | Μεταβλητή | Provider API | Onboarding API | |:---|:---|:---| | `apiKey` | Το δοκιμαστικό API key σας ([πού το βρίσκω](https://developers.novusconceptus.com/el/start/account/)) | Το ίδιο κλειδί | | `issuerVat` | Ο ΑΦΜ με τον οποίο γραφτήκατε | — | | `vatNumber` | — | Ο ΑΦΜ του πελάτη που ενεργοποιείτε | | `b2gApiKey` | Μόνο για B2G: το ξεχωριστό κλειδί B2G | — | 3. Τρέξτε τον **φάκελο 1** της συλλογής, ένα αίτημα τη φορά, με τη σειρά. Το `baseUrl` δείχνει εξ ορισμού στο **δοκιμαστικό** (`https://provider-dev.timologisi.online`). Για παραγωγή το αλλάζετε σε `https://provider.timologisi.online`. **Συμβουλή: Δεν χρειάζεται να αλλάζετε ημερομηνία και ΑΑ** Στο Provider API η συλλογή βάζει μόνη της τη **σημερινή ημερομηνία** (`{{today}}`) και **νέο ΑΑ** (`{{aa}}`) πριν από κάθε κλήση. Τα MARK, τα UID και τα tokens που χρειάζονται τα επόμενα βήματα αποθηκεύονται αυτόματα. Στο **Console** του Postman βλέπετε το `statusCode`, το MARK και τα σφάλματα της ΑΑΔΕ κάθε απάντησης. ## Τα σενάρια του Provider API | Φάκελος | Τι δοκιμάζει | Με σειρά | |:---|:---|:---:| | **1. Ροή: το πρώτο παραστατικό** | Credits → απόδειξη 11.1 → αναζήτηση → PDF → myDATA XML | ✔ | | **2. Τιμολόγια & αποδείξεις** | 1.1, 2.1, 11.2, 3.1, 8.2, φόροι ανά γραμμή και σε επίπεδο παραστατικού | | | **3. Πιστωτικά** | Τιμολόγιο → 5.1 που το πιστώνει · 5.2 · 11.4 | ✔ | | **4. Κάρτα / IRIS μέσω POS** | Υπογραφή Παρόχου → ολοκλήρωση · εξόφληση παλιού τιμολογίου με κάρτα · 8.4 · 8.5 | ✔ | | **5. Εστίαση (8.6)** | Παραγγελία → ακύρωση είδους → ανοιχτά τραπέζια → κλείσιμο με 11.1 · ολική ακύρωση | ✔ | | **6. Διακίνηση** | Τιμολόγιο / απόδειξη - δελτίο αποστολής · 9.3 → τιμολόγιο που το κλείνει · ακύρωση δελτίου | ✔ | | **7. B2G (Δημόσιο)** | 6 τιμολόγια προς φορείς (χρειάζεται `b2gApiKey`) | | | **8. OSS** | 11.1 σε καταναλωτή άλλου κράτους μέλους | | | **9. Σενάρια σφαλμάτων** | 401 χωρίς κλειδί · 400 λάθος σύνολο πληρωμών · 228 διπλότυπο | ✔ | Για το Onboarding API, η ροή και τα σενάρια περιγράφονται στο [Πώς λειτουργεί](https://developers.novusconceptus.com/el/onboarding-api/). **Σημείωση: Όλη η συλλογή με μία εντολή** Με το **Runner** του Postman, ή με το [Newman](https://www.npmjs.com/package/newman) στο CI σας, τρέχετε όλα τα σενάρια με τη σειρά: ```bash newman run Novus_Provider_API.postman_collection.json \ --env-var apiKey=ΤΟ_ΚΛΕΙΔΙ_ΣΑΣ --env-var issuerVat=ΤΟΝ_ΑΦΜ_ΣΑΣ ``` Χωρίς `b2gApiKey` ο φάκελος 7 αποτυγχάνει, κάτι αναμενόμενο. ## Έτοιμα JSON Κάθε αρχείο είναι **έγκυρο request** για το `SendInvoices` (ή το `SendInvoicesB2G`). Τα ποσά, ο ΦΠΑ, τα σύνολα και οι χαρακτηρισμοί ελέγχονται αυτόματα σε κάθε έκδοση της τεκμηρίωσης. Πριν τα στείλετε, αλλάξτε τον ΑΦΜ εκδότη, το `issueDate` και το `aa`. | Κατηγορία | Αρχεία | Οδηγός | |:---|:---|:---| | Τιμολόγια & αποδείξεις | [1.1](https://developers.novusconceptus.com/examples/invoicing/1.1-sales-invoice.json) · [2.1](https://developers.novusconceptus.com/examples/invoicing/2.1-service-invoice.json) · [3.1](https://developers.novusconceptus.com/examples/invoicing/3.1-title-of-acquisition.json) · [8.2](https://developers.novusconceptus.com/examples/invoicing/8.2-climate-resilience-fee.json) · [11.1](https://developers.novusconceptus.com/examples/invoicing/11.1-retail-receipt.json) · [11.2](https://developers.novusconceptus.com/examples/invoicing/11.2-service-receipt.json) | [Τιμολόγια & αποδείξεις](https://developers.novusconceptus.com/el/guides/invoices/) | | Πιστωτικά | [5.1](https://developers.novusconceptus.com/examples/invoicing/5.1-credit-invoice-correlated.json) · [5.2](https://developers.novusconceptus.com/examples/invoicing/5.2-credit-invoice-uncorrelated.json) · [11.4](https://developers.novusconceptus.com/examples/invoicing/11.4-retail-credit-note.json) | [Πιστωτικά](https://developers.novusconceptus.com/el/guides/credit-notes/) | | Φόροι | [Ανά γραμμή](https://developers.novusconceptus.com/examples/invoicing/taxes-line-level.json) · [Σε επίπεδο παραστατικού](https://developers.novusconceptus.com/examples/invoicing/taxes-document-level.json) | [Φόροι, τέλη, κρατήσεις](https://developers.novusconceptus.com/el/guides/taxes/) | | Κάρτα / IRIS | [11.1 με κάρτα](https://developers.novusconceptus.com/examples/pos/11.1-card-payment.json) · [Ολοκλήρωση](https://developers.novusconceptus.com/examples/pos/completion.json) · [8.4](https://developers.novusconceptus.com/examples/pos/8.4-pos-collection-receipt.json) · [8.5](https://developers.novusconceptus.com/examples/pos/8.5-pos-refund-receipt.json) | [Πληρωμή με κάρτα / IRIS](https://developers.novusconceptus.com/el/guides/card-payments/) | | Εστίαση | [Παραγγελία](https://developers.novusconceptus.com/examples/food/1-new-order-8.6.json) · [Ακύρωση είδους](https://developers.novusconceptus.com/examples/food/2-partial-cancellation-8.6.json) · [Κλείσιμο 11.1](https://developers.novusconceptus.com/examples/food/3-close-table-11.1.json) · [Ολική ακύρωση](https://developers.novusconceptus.com/examples/food/4-cancel-whole-order-8.6.json) | [Εστίαση](https://developers.novusconceptus.com/el/guides/food-service/) | | Διακίνηση | [1.1 - Δελτίο](https://developers.novusconceptus.com/examples/delivery/1.1-sales-invoice-delivery-note.json) · [11.1 - Δελτίο](https://developers.novusconceptus.com/examples/delivery/11.1-retail-receipt-delivery-note.json) · [9.3](https://developers.novusconceptus.com/examples/delivery/9.3-delivery-note.json) · [1.1 που κλείνει δελτία](https://developers.novusconceptus.com/examples/delivery/1.1-invoice-closing-delivery-notes.json) | [Διακίνηση](https://developers.novusconceptus.com/el/guides/delivery/) | | B2G | [1.1](https://developers.novusconceptus.com/examples/b2g/1.1-sales-invoice.json) · [1.1 απαλλαγή ΦΠΑ](https://developers.novusconceptus.com/examples/b2g/1.1-sales-invoice-vat-exemption.json) · [1.1 καύσιμα](https://developers.novusconceptus.com/examples/b2g/1.1-fuel-invoice.json) · [1.1 - Δελτίο](https://developers.novusconceptus.com/examples/b2g/1.1-sales-invoice-delivery-note.json) · [2.1](https://developers.novusconceptus.com/examples/b2g/2.1-service-invoice.json) · [5.2](https://developers.novusconceptus.com/examples/b2g/5.2-credit-invoice.json) | [Δημόσιο (B2G)](https://developers.novusconceptus.com/el/guides/b2g/) | | OSS | [11.1 OSS](https://developers.novusconceptus.com/examples/oss/11.1-oss-retail-receipt.json) | [OSS](https://developers.novusconceptus.com/el/guides/oss/) | | Onboarding | [Νέα αίτηση](https://developers.novusconceptus.com/examples/onboarding/create-request.json) · [Νέο webhook](https://developers.novusconceptus.com/examples/onboarding/create-webhook.json) | [Onboarding API](https://developers.novusconceptus.com/el/onboarding-api/) | **Προσοχή: Δοκιμαστικά στοιχεία** Οι επωνυμίες, τα emails και τα MARK στα παραδείγματα είναι **εικονικά**. Ο `123456789` είναι ο δικός σας ΑΦΜ εκδότη: αλλάξτε τον. ## Για AI εργαλεία Όλη η τεκμηρίωση υπάρχει και ως **ένα αρχείο κειμένου** (Markdown), για να το δίνετε σε AI εργαλεία όπως Claude, ChatGPT, Copilot ή Cursor, π.χ. «διάβασε αυτό και φτιάξε τη σύνδεση με το SendInvoices». Παράγεται αυτόματα σε κάθε δημοσίευση, οπότε είναι πάντα ενημερωμένο. | Αρχείο | Τι περιέχει | |:---|:---| | [/el/llms-full.txt](https://developers.novusconceptus.com/el/llms-full.txt) | Όλες οι σελίδες στα ελληνικά, με τα παραδείγματα JSON ενσωματωμένα. Αυτό δίνετε στο εργαλείο. | | [/el/llms.txt](https://developers.novusconceptus.com/el/llms.txt) | Ευρετήριο: μία γραμμή ανά σελίδα, με σύνδεσμο και περιγραφή. | | [/llms-full.txt](https://developers.novusconceptus.com/llms-full.txt) · [/llms.txt](https://developers.novusconceptus.com/llms.txt) | Τα ίδια στα αγγλικά. | Μαζί με το αρχείο, δώστε στο εργαλείο και το [OpenAPI (YAML)](https://developers.novusconceptus.com/el/tools/#the-files) του API που χρησιμοποιείτε. Πηγή: https://developers.novusconceptus.com/el/tools/ --- # Συχνές ερωτήσεις Οι ερωτήσεις που μας κάνουν πιο συχνά οι developers, με σύντομη απάντηση και link στον σχετικό οδηγό. Κάθε ερώτηση ανοίγει με κλικ. Για κάτι συγκεκριμένο, χρησιμοποιήστε την **αναζήτηση** πάνω δεξιά: ψάχνει και μέσα στις απαντήσεις. - **[Ξεκινώντας & λογαριασμός](https://developers.novusconceptus.com/el/faq/start/)** Λογαριασμός δοκιμών, κλειδιά, πολλοί πελάτες σε ένα κλειδί, credits. 10 ερωτήσεις - **[Πιστοποίηση & παραγωγή](https://developers.novusconceptus.com/el/faq/go-live/)** Από τις δοκιμές στο κλειδί παραγωγής. 6 ερωτήσεις - **[Onboarding & πελάτες](https://developers.novusconceptus.com/el/faq/onboarding/)** Ενεργοποίηση πελατών, συμβάσεις, Δήλωση Παρόχου. 26 ερωτήσεις - **[Έκδοση παραστατικών](https://developers.novusconceptus.com/el/faq/invoices/)** Τύποι, αρίθμηση, χαρακτηρισμοί, PDF, email στον λήπτη. 20 ερωτήσεις - **[Πιστωτικά & ακυρώσεις](https://developers.novusconceptus.com/el/faq/credit-notes/)** Πώς «ακυρώνεται» ένα παραστατικό. 5 ερωτήσεις - **[Σφάλματα](https://developers.novusconceptus.com/el/faq/errors/)** Τι σημαίνει κάθε σφάλμα και τι κάνετε. 10 ερωτήσεις - **[Κάρτα / POS](https://developers.novusconceptus.com/el/faq/card-payments/)** Υπογραφή Παρόχου, NSP, ειδικές περιπτώσεις. 16 ερωτήσεις - **[Εστίαση](https://developers.novusconceptus.com/el/faq/food-service/)** Δελτία παραγγελίας 8.6 και τραπέζια. 4 ερωτήσεις - **[Διακίνηση](https://developers.novusconceptus.com/el/faq/delivery/)** Δελτία αποστολής και Ψηφιακή Διακίνηση. 7 ερωτήσεις - **[B2G (Δημόσιο)](https://developers.novusconceptus.com/el/faq/b2g/)** Τιμολόγια προς φορείς του Δημοσίου. 8 ερωτήσεις - **[Γενικά](https://developers.novusconceptus.com/el/faq/general/)** Όρια, αρχειοθέτηση, νομικό πλαίσιο. 5 ερωτήσεις Πηγή: https://developers.novusconceptus.com/el/faq/ --- # Ξεκινώντας & λογαριασμός Λογαριασμός δοκιμών, κλειδιά, πολλοί πελάτες σε ένα κλειδί, credits. ### Πώς αποκτώ πρόσβαση στο δοκιμαστικό περιβάλλον (sandbox) και στην τεκμηρίωση του API; Η τεκμηρίωση (οδηγοί, OpenAPI και συλλογή Postman με έτοιμα σενάρια και JSON) είναι δημοσιευμένη στο developer site. Λογαριασμό sandbox ανοίγετε μόνοι σας με εγγραφή στο developer portal (email και ΑΦΜ): μετά την επιβεβαίωση βρίσκετε στο portal το API key, και ο ΑΦΜ της εγγραφής ενεργοποιείται αυτόματα ως εκδότης. Οι κλήσεις δοκιμών γίνονται στο `https://provider-dev.timologisi.online` με το κλειδί στο header `API-KEY`. Τα παραστατικά του sandbox σβήνονται μετά από 30 ημέρες. Δείτε: [Περιβάλλοντα & API key](https://developers.novusconceptus.com/el/start/account/#create-an-account-sandbox) ### Ποιον ΑΦΜ λήπτη μπορώ να χρησιμοποιώ στα δοκιμαστικά τιμολόγια του sandbox; Ως εκδότη βάζετε τον ΑΦΜ της εγγραφής σας. Ως λήπτη βάζετε **φανταστικό ΑΦΜ** που περνά τον έλεγχο check digit, όπως στα έτοιμα παραδείγματα. Μη βάζετε ΑΦΜ πραγματικής επιχείρησης: η ΑΑΔΕ επιστρέφει για κάθε λήπτη τα emails παραλαβής που έχει δηλώσει, και ο Πάροχος του στέλνει το PDF ακόμη και από το δοκιμαστικό. Δείτε: [Περιβάλλοντα & API key](https://developers.novusconceptus.com/el/start/account/) ### Αποθηκεύει ο Πάροχος τα παραστατικά που εκδίδω, ή η αρχειοθέτηση είναι δική μου ευθύνη; Ναι. Αφού διαβιβάσει το παραστατικό στο myDATA, ο Πάροχος παράγει το PDF και το αρχειοθετεί· στην παραγωγή η αρχειοθέτηση είναι μόνιμη. Το PDF και τα στοιχεία κάθε παραστατικού τα βρίσκετε μέσω του `invoiceUrl`, του `GetInvoice/{uid}/{fileType}` ή του `RequestTransmittedDocs`. Στο δοκιμαστικό τα παραστατικά σβήνονται μετά από 30 ημέρες. Καλό είναι να κρατάτε και στην εφαρμογή σας τα MARK, UID, Authentication Code και `invoiceUrl`. Δείτε: [Πώς λειτουργεί](https://developers.novusconceptus.com/el/start/how-it-works/) ### Έχει το API και γραφικό περιβάλλον (web) για χειροκίνητη έκδοση παραστατικών; Όχι. Το Provider API είναι φτιαγμένο για επικοινωνία συστήματος με σύστημα και δεν έχει οθόνη έκδοσης. Στο portal του λογαριασμού σας βλέπετε και αναζητάτε τα παραστατικά που εκδώσατε, αλλά δεν δημιουργείτε νέα. Για χειροκίνητη έκδοση η Novus έχει ξεχωριστή εφαρμογή ηλεκτρονικής τιμολόγησης, ανεξάρτητη από το API. Δείτε: [Περιβάλλοντα & API key](https://developers.novusconceptus.com/el/start/account/) ### Μπορώ να συνδέσω απευθείας το δικό μου σύστημα (custom backend, e-shop ή ERP) με το API, χωρίς ενδιάμεσο λογισμικό ή πλατφόρμα της Novus; Ναι. Η Novus είναι η ίδια ο πιστοποιημένος Πάροχος και η συνεργασία γίνεται απευθείας, χωρίς μεταπωλητή ή ERP. Το σύστημά σας καλεί το REST API με JSON, π.χ. όταν ολοκληρώνεται μια παραγγελία στο e-shop, και παίρνει MARK, UID, Authentication Code και PDF στην ίδια απάντηση. Η Novus παρέχει το επίπεδο του Παρόχου, δηλαδή το API και τη διασύνδεση με την ΑΑΔΕ. Τη λογική της έκδοσης (τύποι, ΦΠΑ, χαρακτηρισμοί, αρίθμηση) και την υλοποίηση στο σύστημά σας τις κάνετε εσείς. Δείτε: [Πώς λειτουργεί](https://developers.novusconceptus.com/el/start/how-it-works/) ### Μπορώ να μεταφέρω στη Novus παραστατικά που έχω ήδη εκδώσει μέσω άλλου παρόχου, στέλνοντάς τα ξανά; Όχι. Τα παραστατικά που έχουν ήδη διαβιβαστεί στο myDATA δεν ξαναστέλνονται, γιατί μια νέα αποστολή δημιουργεί σύγκρουση στο myDATA (π.χ. διπλότυπο, σφάλμα 228). Επιπλέον, μέσω Παρόχου το `issueDate` πρέπει να είναι η σημερινή ημερομηνία. Κρατήστε το ιστορικό στη δική σας εφαρμογή ή στον προηγούμενο πάροχο και εκδίδετε μέσω Novus μόνο τα νέα παραστατικά. Δείτε: [Σφάλματα & statusCode](https://developers.novusconceptus.com/el/provider-api/errors/#statuscode) ### Μπορώ να αλλάξω το email ενός λογαριασμού που έχω ήδη ενεργοποιήσει στο developer portal; Όχι, το email ενός ενεργοποιημένου λογαριασμού δεν αλλάζει. Κάντε νέα εγγραφή στο developer portal με το σωστό email· ο λογαριασμός Sandbox και το API key δημιουργούνται μετά την επιβεβαίωση του email και τον ορισμό κωδικού. Επειδή email και ΑΦΜ που δηλώνετε στην εγγραφή χρησιμοποιούνται και στην αίτηση πιστοποίησης, ελέγξτε τα πριν την υποβολή. Δείτε: [Περιβάλλοντα & API key](https://developers.novusconceptus.com/el/start/account/#create-an-account-sandbox) ### Αναλαμβάνει η Novus την υλοποίηση της διασύνδεσης στο ERP μου ή παρέχει έτοιμο module για κάποιο ERP; Όχι. Η Novus παρέχει το REST API (Provider API και Onboarding API) και την τεχνική τεκμηρίωση, και η διασύνδεση γίνεται από τη δική σας ομάδα ανάπτυξης, τον κατασκευαστή του λογισμικού σας ή εξωτερικό συνεργάτη. Η εφαρμογή σας παραμένει το περιβάλλον εργασίας και καλεί το API σε κάθε έκδοση. Είναι υπεύθυνη για σωστά ποσά, ΦΠΑ, χαρακτηρισμούς, αρίθμηση και χειρισμό σφαλμάτων. Για να ξεκινήσετε υπάρχουν έτοιμα JSON, OpenAPI και συλλογή Postman. Δείτε: [Πώς λειτουργεί](https://developers.novusconceptus.com/el/start/how-it-works/) ### Μπορώ να μοιράζω ελεύθερα τα credits του λογαριασμού μου σε όλους τους πελάτες (ΑΦΜ) που εξυπηρετώ; Ναι. Ένα API key μπορεί να έχει πολλούς ΑΦΜ πελατών με **κοινό υπόλοιπο credits**: κάθε παραστατικό, όποιου ΑΦΜ, χρεώνεται από το ίδιο υπόλοιπο, που το βλέπετε με `GET /api/v1/Provider/GetCreditsBalance`. Αν προτιμάτε, μπορείτε να κάνετε και ξεχωριστή εγγραφή (ξεχωριστό API key, με δικά του credits) για κάθε ΑΦΜ. Σε κάθε περίπτωση, κάθε νέος ΑΦΜ ενεργοποιείται με σύμβαση και έγκριση της Novus, από το Onboarding API ή το portal. Δείτε: [Χρεώσεις (credits)](https://developers.novusconceptus.com/el/provider-api/credits/) ### Πόσα credits χρεώνεται κάθε παραστατικό και χρεώνονται οι αποτυχημένες αποστολές; Τα τιμολόγια (1.x, 2.x, 3.x, 5.x, 6.x, 7.1, 8.1, 8.2) και τα παραστατικά διακίνησης (9.x, 10.x) χρεώνουν 1 credit, ενώ η λιανική (11.1–11.5), οι αποδείξεις POS 8.4/8.5 και το 8.6 χρεώνουν 0,5. Η υπογραφή Παρόχου για κάρτα/IRIS χρεώνει επιπλέον 0,25 ανά γραμμή πληρωμής, όπως και οι ακυρώσεις δελτίων. Χρεώνονται μόνο οι επιτυχημένες κλήσεις: απορρίψεις από τους ελέγχους του Παρόχου και `ValidationError` της ΑΑΔΕ δεν χρεώνονται. Τα credits κάθε κλήσης επιστρέφονται στο πεδίο `credits` και το υπόλοιπο με `GetCreditsBalance`. Δείτε: [Χρεώσεις (credits)](https://developers.novusconceptus.com/el/provider-api/credits/) Πηγή: https://developers.novusconceptus.com/el/faq/start/ --- # Πιστοποίηση & παραγωγή Από τις δοκιμές στο κλειδί παραγωγής. ### Πώς γίνεται η πιστοποίηση για να πάρω κλειδί παραγωγής; Χρειάζεται ραντεβού, έντυπο ή αποστολή MARK; Από την εφαρμογή σας, στο δοκιμαστικό, τρέχετε τα βασικά σενάρια Β1–Β5: παραστατικό με δύο συντελεστές ΦΠΑ, πιστωτικό για αυτό, εκτύπωση, σκόπιμο λάθος και ξανά το ίδιο παραστατικό (σφάλμα 228). Μετά στέλνετε την αίτηση πιστοποίησης online, μέσα σε 30 ημέρες. Δεν χρειάζεται ραντεβού, αρχείο Word ή αποστολή MARK: τα παραστατικά σας τα βλέπουμε εμείς. Κάρτα, εστίαση, διακίνηση, B2G, OSS και Onboarding δεν πιστοποιούνται· απλώς τα δηλώνετε στην αίτηση. **Η πιστοποίηση δεν χρεώνεται.** Δείτε: [Πιστοποίηση & μετάβαση σε παραγωγή](https://developers.novusconceptus.com/el/start/go-live/#request) ### Τα σενάρια πιστοποίησης εκτελούνται στο δοκιμαστικό ή στο παραγωγικό περιβάλλον; Στο δοκιμαστικό (sandbox). Η πιστοποίηση είναι ο έλεγχος πριν τη μετάβαση στην παραγωγή, και κλειδί παραγωγής δίνεται μόνο μετά την έγκρισή της. Επειδή στο sandbox τα παραστατικά σβήνονται μετά από 30 ημέρες, η αίτηση πρέπει να σταλεί μέσα σε αυτό το διάστημα από την εκτέλεση των σεναρίων. Δείτε: [Πιστοποίηση & μετάβαση σε παραγωγή](https://developers.novusconceptus.com/el/start/go-live/#scenarios) ### Πώς ενεργοποιείται το παραγωγικό περιβάλλον και πώς παίρνω το κλειδί παραγωγής μετά την πιστοποίηση; Όταν εγκριθεί η αίτηση πιστοποίησης, σας στέλνουμε στην ίδια αίτηση τις οδηγίες για τον λογαριασμό και το κλειδί παραγωγής. Η παραγωγή είναι εντελώς ξεχωριστό περιβάλλον, με δικό της base URL (`https://provider.timologisi.online`), λογαριασμό και API key· εκεί αγοράζετε credits και ενεργοποιείτε τους πελάτες σας. Το κλειδί του δοκιμαστικού δεν δουλεύει στην παραγωγή (HTTP 401). Δείτε: [Πιστοποίηση & μετάβαση σε παραγωγή](https://developers.novusconceptus.com/el/start/go-live/#after) ### Καλύπτει το API και τιμολόγια B2B και αποδείξεις B2C, και μπορώ να ξεκινήσω μόνο με B2B και να προσθέσω B2C αργότερα; Ναι. Το API καλύπτει όλους τους τύπους 1.1 έως 11.5 με την ίδια κλήση `SendInvoices`, οπότε μπορείτε να ξεκινήσετε μόνο με τιμολόγια B2B και να προσθέσετε τη λιανική αργότερα. Για πελάτες με λιανική (B2C), η αίτηση στο Onboarding API χρειάζεται και το `ispDetails`. Δείτε: [Πιστοποίηση & μετάβαση σε παραγωγή](https://developers.novusconceptus.com/el/start/go-live/#scenarios) ### Πιστοποιείται η πληρωμή με κάρτα (σενάριο EFT/POS); Όχι. Με τη νέα διαδικασία πιστοποιούνται μόνο τα βασικά σενάρια Β1–Β5. Η πληρωμή με κάρτα / IRIS, όπως και οι άλλες ενότητες (εστίαση, διακίνηση, B2G, OSS, Onboarding), δεν πιστοποιείται: τη δηλώνετε στην αίτηση και την ελέγχετε εσείς με τον οδηγό και το Postman (φάκελος 4). Δείτε: [Πιστοποίηση & μετάβαση σε παραγωγή](https://developers.novusconceptus.com/el/start/go-live/#modules) ### Χρειάζεται ξεχωριστή δοκιμή πιστοποίησης για το 11.2 ή για 11.1 με διακίνηση (`isDeliveryNote`); Όχι. Στο Β1 στέλνετε 11.1 για λιανική ή 1.1 για χονδρική. Το 11.2 (Απόδειξη Παροχής Υπηρεσιών) ακολουθεί την ίδια λογική και δεν χρειάζεται ξεχωριστή δοκιμή. Το 11.1 με `isDeliveryNote: true` ανήκει στη διακίνηση, που δηλώνεται στην αίτηση αλλά δεν πιστοποιείται. Δείτε: [Πιστοποίηση & μετάβαση σε παραγωγή](https://developers.novusconceptus.com/el/start/go-live/#scenarios) Πηγή: https://developers.novusconceptus.com/el/faq/go-live/ --- # Onboarding & πελάτες Ενεργοποίηση πελατών, συμβάσεις, Δήλωση Παρόχου. ### Ποια είναι η διαδικασία για να ενεργοποιήσω έναν νέο πελάτη (ΑΦΜ) ώστε να εκδίδει μέσω της εφαρμογής μου; Με το Onboarding API στέλνετε `POST /api/v1/requests` με τα στοιχεία του πελάτη: επωνυμία, ΑΦΜ, ΔΟΥ, `transactionTypes` (B2B/B2C), διεύθυνση, email και τηλέφωνο επικοινωνίας, νόμιμο εκπρόσωπο και, για B2C, `ispDetails`. Ο πελάτης λαμβάνει με email τη σύμβαση και την ανεβάζει υπογεγραμμένη (ή την ανεβάζετε εσείς με `signed-contract`), η Novus την ελέγχει και με την έγκριση ο ΑΦΜ ενεργοποιείται στο κλειδί σας και υποβάλλεται η Δήλωση Παρόχου, που ο πελάτης αποδέχεται στο myAADE μέσα σε 10 ημέρες. Απαιτείται επίσης η εξουσιοδότηση της Novus ως Παρόχου από τον πελάτη στο myAADE. Εκδίδετε για τον πελάτη όταν `provisioning.status = COMPLETED`· εναλλακτικά η διαδικασία γίνεται από το portal. Δείτε: [Onboarding API: πώς λειτουργεί](https://developers.novusconceptus.com/el/onboarding-api/) ### Μπορώ να αυτοματοποιήσω την αίτηση ενεργοποίησης ενός ΑΦΜ και να ενημερώνομαι αυτόματα για την κατάστασή της; Ναι, με το Onboarding API: η αίτηση δημιουργείται με `POST /api/v1/requests`, η κατάσταση (`PENDING_SIGNATURE`, `UNDER_REVIEW`, `ACTION_REQUIRED`, `APPROVED`, `REJECTED`, `CANCELLED`) διαβάζεται με `GET /api/v1/requests/{requestId}` και το ιστορικό με `/history`. Για να αποφύγετε το polling, δηλώστε webhook με `POST /api/v1/webhooks` για τα events `request.status_changed` και `request.provisioned`, και επαληθεύετε πάντα την υπογραφή `X-Novus-Signature`. Πριν ενεργοποιήσετε την έκδοση για τον πελάτη, επιβεβαιώνετε την κατάσταση με `GET`. Δείτε: [Webhooks](https://developers.novusconceptus.com/el/onboarding-api/webhooks/#events) ### Ποιες μορφές υπογραφής γίνονται δεκτές στη σύμβαση του πελάτη και μπορώ να χειριστώ την υπογραφή μέσα από την εφαρμογή μου; Γίνεται δεκτή κάθε ευανάγνωστη υπογραφή: σκαναρισμένη ιδιόχειρη, μέσω gov.gr ή ψηφιακή. Το αρχείο πρέπει να είναι PDF έως 15 MB, με όλες τις σελίδες όρθιες και καθαρές· αλλιώς η αίτηση πάει σε `ACTION_REQUIRED`. Μπορείτε να κατεβάσετε τη σύμβαση με `GET /api/v1/requests/{requestId}/contract`, να τη δείξετε στον πελάτη και να ανεβάσετε εσείς την υπογεγραμμένη με `POST /api/v1/requests/{requestId}/signed-contract` (πεδίο `contractFile`). Ο σύνδεσμος του email είναι εναλλακτική, όχι υποχρεωτικό βήμα, και για τον πελάτη η πιο απλή λύση είναι συνήθως το gov.gr. Δείτε: [Onboarding API: endpoints](https://developers.novusconceptus.com/el/onboarding-api/endpoints/#upload) ### Ποιο είναι το μέγιστο επιτρεπόμενο μέγεθος αρχείου για την υπογεγραμμένη σύμβαση; Η υπογεγραμμένη σύμβαση πρέπει να είναι πραγματικό PDF (όχι κατεστραμμένο ή κλειδωμένο με κωδικό) και έως **15 MB**. Πάνω από αυτό το Onboarding API επιστρέφει `413 FILE_TOO_LARGE`. Αν ένα σκαναρισμένο αρχείο ξεπερνά το όριο, σκανάρετε με χαμηλότερη ανάλυση ή συμπιέστε το PDF. Δείτε: [Onboarding API: endpoints](https://developers.novusconceptus.com/el/onboarding-api/endpoints/#upload) ### Χρειάζεται ο πελάτης δικά του διαπιστευτήρια myDATA ή εξουσιοδότηση προς τον Πάροχο για να εκδίδει μέσω της εφαρμογής μου; Δεν χρειάζονται τα διαπιστευτήρια myDATA (user id / subscription key) του πελάτη. Απαιτούνται η σύμβαση με τη Novus, η εξουσιοδότηση της Novus ως Παρόχου από τον πελάτη στο myAADE και η Δήλωση Παρόχου, που την υποβάλλει η Novus μετά την έγκριση και ο πελάτης την αποδέχεται στο myAADE μέσα σε 10 ημέρες (αλλιώς θεωρείται αποδεκτή σιωπηρά). Η εξουσιοδότηση εξακολουθεί να απαιτείται και όταν η ενεργοποίηση γίνεται με το Onboarding API. Δείτε: [Πιστοποίηση & μετάβαση σε παραγωγή](https://developers.novusconceptus.com/el/start/go-live/#clients) ### Μπορεί ένας πελάτης που έχει ήδη εξουσιοδοτήσει άλλο Πάροχο να χρησιμοποιεί ταυτόχρονα και τη Novus; Ναι, μια επιχείρηση μπορεί να χρησιμοποιεί περισσότερους από έναν Παρόχους. Για τη Novus χρειάζονται κανονικά σύμβαση, εξουσιοδότηση και Δήλωση Παρόχου. Αν ο πελάτης έχει ήδη σύμβαση με τη Novus μέσω άλλου software house, το Onboarding API δημιουργεί αίτημα `LINK_EXISTING` χωρίς νέα σύμβαση. Δείτε: [Onboarding API: πώς λειτουργεί](https://developers.novusconceptus.com/el/onboarding-api/#two-request-types-the-system-decides) ### Πόσο χρόνο παίρνει η ενεργοποίηση ενός νέου πελάτη μέχρι να μπορεί να εκδίδει; Εξαρτάται κυρίως από το πόσο γρήγορα ο πελάτης υπογράψει και ανεβάσει τη σύμβαση και κάνει την εξουσιοδότηση. Από τη στιγμή που υπάρχει υπογεγραμμένη σύμβαση, ο έλεγχος της Novus (`UNDER_REVIEW`) ολοκληρώνεται συνήθως μέσα σε 1 εργάσιμη, συχνά σε λίγες ώρες. Ο πελάτης μπορεί να εκδίδει όταν η αίτηση είναι `APPROVED` και `provisioning.status = COMPLETED`. Δείτε: [Onboarding API: πώς λειτουργεί](https://developers.novusconceptus.com/el/onboarding-api/#request-statuses) ### Για ποιους λόγους μπορεί να μη γίνει δεκτή η υπογεγραμμένη σύμβαση Παρόχου ενός πελάτη; Η σύμβαση πρέπει να είναι πλήρης: συμπληρωμένα κανονικά όλα τα στοιχεία (όχι μόνο με σφραγίδα), με ημερομηνία και αριθμό σύμβασης, όλες οι σελίδες όρθιες και ευανάγνωστες, σε PDF έως 15 MB. Γίνεται δεκτή σκαναρισμένη ιδιόχειρη, gov.gr ή ψηφιακή υπογραφή. Αν η σύμβαση δεν γίνει δεκτή, η αίτηση περνά σε `ACTION_REQUIRED` με την αιτία στο `message` και ανεβάζετε νέα υπογεγραμμένη σύμβαση. Με το Onboarding API η σύμβαση παράγεται ήδη συμπληρωμένη με αριθμό και ημερομηνία, κάτι που αποφεύγει τέτοια λάθη. Δείτε: [Onboarding API: πώς λειτουργεί](https://developers.novusconceptus.com/el/onboarding-api/#the-contract) ### Τι σημαίνει το μήνυμα «the requested contract is not readable» σε αίτηση ενεργοποίησης πελάτη; Η υπογεγραμμένη σύμβαση δεν έγινε δεκτή στον έλεγχο της Novus και η αίτηση πέρασε σε `ACTION_REQUIRED`, με την αιτία στο `message`. Συνήθως φταίει το αρχείο: σελίδες ανάποδα ή στραβά, θολό σκανάρισμα ή σελίδες που λείπουν. Ανεβάστε νέο PDF με όλες τις σελίδες όρθιες και καθαρές (έως 15 MB), με `POST /api/v1/requests/{requestId}/signed-contract` ή από το link που έλαβε ο πελάτης, και η αίτηση επιστρέφει σε `UNDER_REVIEW`. Δείτε: [Onboarding API: πώς λειτουργεί](https://developers.novusconceptus.com/el/onboarding-api/#the-contract) ### Πώς ξέρω αν ο πελάτης δήλωσε στη σύμβαση λιανική (B2C), χονδρική (B2B) ή και τα δύο; Με το Onboarding API τα είδη συναλλαγών τα δηλώνετε εσείς στην αίτηση, στο `companyDetails.transactionTypes` (`B2B`, `B2C` ή και τα δύο· το `B2G` δεν γίνεται δεκτό), και η σύμβαση παράγεται με βάση αυτά. Για `B2C` απαιτείται επιπλέον το `ispDetails`. Συνεννοηθείτε με τον πελάτη πριν την αίτηση, ώστε οι ρυθμίσεις της εφαρμογής σας να συμφωνούν με όσα δηλώνονται στη σύμβαση και στο myDATA. Δείτε: [Onboarding API: endpoints](https://developers.novusconceptus.com/el/onboarding-api/endpoints/#create) ### Είναι υποχρεωτικό να συμπληρωθεί το Παράρτημα Α της σύμβασης Παρόχου; Ναι, όταν ο πελάτης εκδίδει παραστατικά λιανικής (B2C), είτε μόνο λιανική είτε λιανική και χονδρική, γιατί το απαιτεί η ΑΑΔΕ. Στο Onboarding API η αντίστοιχη πληροφορία είναι ο πάροχος internet του πελάτη (`ispDetails.providerName`, `contractNumber`, `contractDate`), υποχρεωτικός όταν τα `transactionTypes` περιέχουν `B2C`· για μόνο B2B παραλείπεται. Δείτε: [Onboarding API: πώς λειτουργεί](https://developers.novusconceptus.com/el/onboarding-api/#the-contract) ### Πρέπει κάθε πελάτης (ΑΦΜ) να υπογράψει δική του σύμβαση με τη Novus, ακόμη κι αν τον εξυπηρετώ ως μεταπωλητής; Ναι. Η σύμβαση είναι μεταξύ Novus και πελάτη και υπογράφεται από τον νόμιμο εκπρόσωπο κάθε επιχείρησης· μαζί απαιτούνται η εξουσιοδότηση της Novus στο myAADE και η Δήλωση Παρόχου. Σύμβαση και Δήλωση γίνονται μία φορά ανά πελάτη, όσα software houses κι αν τον εξυπηρετούν. Το μοντέλο μεταπώλησης αφορά τα credits, όχι τη σύμβαση. Δείτε: [Πιστοποίηση & μετάβαση σε παραγωγή](https://developers.novusconceptus.com/el/start/go-live/#clients) ### Τι είναι το email «Οδηγίες διασύνδεσης Παρόχου Ηλεκτρονικής τιμολόγησης» που λαμβάνει ο πελάτης, και τι πρέπει να κάνει; Είναι μέρος της ενεργοποίησης του πελάτη στον Πάροχο. Στέλνεται ως απάντηση σε αίτημα διασύνδεσης και περιέχει σύνδεσμο στο portal για να ολοκληρωθεί η διασύνδεση, δηλαδή η σύμβαση με τη Novus. Ο πελάτης ακολουθεί τον σύνδεσμο και ολοκληρώνει τη διαδικασία· αν δεν ζήτησε υπηρεσίες ηλεκτρονικής τιμολόγησης, αγνοεί το μήνυμα. Μετά την έγκριση ο ΑΦΜ ενεργοποιείται, και ο πελάτης πρέπει να αποδεχθεί τη Δήλωση Παρόχου στο myAADE μέσα σε 10 ημέρες. Δείτε: [Onboarding API: πώς λειτουργεί](https://developers.novusconceptus.com/el/onboarding-api/) ### Γιατί η αίτηση για πελάτη με συναλλαγές B2C ζητά στοιχεία «παρόχου» (όνομα, αριθμό και ημερομηνία συμβολαίου) και τι πρέπει να συμπληρώσω; Όταν ο πελάτης δηλώνει συναλλαγές B2C (λιανική), η ΑΑΔΕ απαιτεί τα στοιχεία του παρόχου internet του (εναλλακτικός πάροχος σύνδεσης), όχι της Novus ως Παρόχου τιμολόγησης. Στο Onboarding API τα δίνετε στο `ispDetails` με `providerName`, `contractNumber` και `contractDate` (όχι μελλοντική)· αν ο πελάτης κάνει μόνο B2B, το `ispDetails` παραλείπεται. Επειδή η σύμβαση παράγεται ήδη συμπληρωμένη, πρέπει να έχετε αυτά τα στοιχεία πριν κάνετε την αίτηση. Αίτηση με B2C χωρίς στοιχεία παρόχου internet δεν προχωρά. Δείτε: [Onboarding API: endpoints](https://developers.novusconceptus.com/el/onboarding-api/endpoints/#create) ### Πελάτης που ήδη εκδίδει μέσω Novus μόνο λιανική (B2C) θέλει να προσθέσει και χονδρική (B2B) ή να δηλώσει ξανά τον Πάροχο: τι πρέπει να γίνει; Χρειάζεται νέα σύμβαση (από το portal) που να περιλαμβάνει όλες τις συναλλαγές, και αλλαγή της δήλωσης Παρόχου στο myDATA: ο πελάτης, συνήθως μέσω του λογιστή του, ανακαλεί την υπάρχουσα δήλωση ορίζοντας ως ημέρα λήξης την ημέρα της αλλαγής (η ανάκληση υποβάλλεται το αργότερο 10 ημέρες μετά). Στη συνέχεια η Novus, με βάση τη νέα σύμβαση, υποβάλλει νέα Δήλωση Έναρξης με όλες τις ενεργές συναλλαγές (υφιστάμενες και νέες), την οποία ο πελάτης εγκρίνει στο myAADE. Αν η νέα αίτηση επιστρέφει `409 CLIENT_ALREADY_LINKED`, ο πελάτης πρέπει πρώτα να αφαιρεθεί από τον λογαριασμό σας και να γίνει νέα αίτηση, με την ανάκληση και την αποδοχή από τη Novus την ίδια ημέρα. Πριν από κάθε αλλαγή ο πελάτης καλό είναι να συμβουλευτεί τον λογιστή του. Δείτε: [Onboarding API: endpoints](https://developers.novusconceptus.com/el/onboarding-api/endpoints/#create) ### Ο πελάτης ζητά τον αριθμό και την ημερομηνία της σύμβασής του με τον Πάροχο για να δηλώσει τον Πάροχο στην ΑΑΔΕ. Πού τα βρίσκει; Τη Δήλωση Παρόχου στην ΑΑΔΕ την υποβάλλει η Novus μετά την έγκριση της σύμβασης. Ο πελάτης απλώς την αποδέχεται στο myAADE μέσα σε 10 ημέρες, αλλιώς θεωρείται σιωπηρά αποδεκτή. Ο αριθμός και η ημερομηνία της σύμβασης υπάρχουν στο `contract` (`contractNumber`, `contractDate`) της αίτησης στο Onboarding API, και το PDF το κατεβάζετε με `GET /api/v1/requests/{requestId}/contract`. Για παλαιότερες συμβάσεις που δεν έγιναν μέσω API, το αντίγραφο το ζητάτε από τη Novus. Δείτε: [Onboarding API: endpoints](https://developers.novusconceptus.com/el/onboarding-api/endpoints/#get) ### Σε ατομική επιχείρηση ή αγρότη, τι συμπληρώνω στα πεδία `administrator` της αίτησης onboarding; Στην ατομική επιχείρηση ο νόμιμος εκπρόσωπος είναι ο ίδιος ο επιχειρηματίας. Στέλνετε στο `administrator.fullName` το ονοματεπώνυμό του και στο `administrator.vatNumber` τον ίδιο ΑΦΜ με το `companyDetails.vatNumber`. Δεν υπάρχει έλεγχος που να απορρίπτει τους δύο ίδιους ΑΦΜ· αρκεί ο ΑΦΜ να έχει σωστό check digit. Δείτε: [Onboarding API: endpoints](https://developers.novusconceptus.com/el/onboarding-api/endpoints/#create) ### Αν ο πελάτης έχει ήδη σύμβαση Novus μέσω άλλου software house (`LINK_EXISTING`), κόβεται η σύνδεσή του με εκείνο μετά την έγκριση; Όχι. Ένας ΑΦΜ μπορεί να συνδέεται ταυτόχρονα με περισσότερα software houses, ενώ η σύμβαση και η Δήλωση Παρόχου γίνονται μία φορά ανά πελάτη. Με την έγκριση ενός αιτήματος `LINK_EXISTING` ο ΑΦΜ απλώς προστίθεται στο δικό σας API key, χωρίς νέα υπογραφή, και η σύνδεση με το προηγούμενο software house μένει ενεργή. Ο πελάτης μπορεί να εκδίδει και από τις δύο εφαρμογές. Δείτε: [Onboarding API: πώς λειτουργεί](https://developers.novusconceptus.com/el/onboarding-api/#two-request-types-the-system-decides) ### Μπορώ να απενεργοποιήσω ή να ξαναστείλω το αυτόματο email της σύμβασης προς τον πελάτη, και λήγει ο σύνδεσμός του; Το email με τη σύμβαση και τον σύνδεσμο ανεβάσματος στέλνεται πάντα στο `contactInfo.email` και δεν απενεργοποιείται, γιατί η σύμβαση συνάπτεται μεταξύ Novus και πελάτη. Ο σύνδεσμος δεν λήγει και δείχνει πάντα την τρέχουσα κατάσταση της αίτησης. Επαναποστολή δεν προβλέπεται: αν χρειαστεί νέο email, ακυρώνετε την αίτηση με `DELETE /api/v1/requests/{requestId}` (μόνο πριν την έγκριση) και δημιουργείτε νέα, με νέο `Idempotency-Key`. Δείτε: [Onboarding API: πώς λειτουργεί](https://developers.novusconceptus.com/el/onboarding-api/#the-contract) ### Πώς δοκιμάζω τη ροή onboarding στο δοκιμαστικό περιβάλλον; Γίνεται πραγματική σύμβαση ή Δήλωση Παρόχου και στέλνονται emails; Στο δοκιμαστικό δεν δημιουργείται πραγματική σύμβαση ούτε υποβάλλεται Δήλωση Παρόχου. Μπορείτε να χρησιμοποιήσετε πραγματικούς ΑΦΜ ή οποιονδήποτε εννιαψήφιο με σωστό check digit. Η ροή: δημιουργείτε αίτηση, κατεβάζετε το PDF, ανεβάζετε ένα υπογεγραμμένο PDF, στέλνετε στη Novus το `requestId` για να την εγκρίνει και παρακολουθείτε το `provisioning` μέχρι `COMPLETED`. Δοκιμάστε και τα σφάλματα `409 DUPLICATE_OPEN_REQUEST` και `422`. **Τα emails στέλνονται κανονικά**, οπότε στο `contactInfo.email` βάζετε μόνο δικές σας διευθύνσεις. Δείτε: [Onboarding API: πώς λειτουργεί](https://developers.novusconceptus.com/el/onboarding-api/) ### Από πότε μπορεί να εκδίδει ο νέος πελάτης: με `provisioning.status = COMPLETED` ή πρέπει να περιμένω να γίνει αποδεκτή η Δήλωση Παρόχου; Μόλις το `provisioning.status` γίνει `COMPLETED` (ή λάβετε το webhook `request.provisioned`), ο ΑΦΜ είναι ενεργός στο API key σας και εκδίδετε κανονικά μέσω του Provider API. Δεν χρειάζεται να περιμένετε το `aadeStatement.status` να γίνει `ACCEPTED`· αρκεί το `SUBMITTED`. Την αποδοχή στο myAADE την κάνει παράλληλα ο πελάτης. Αν δεν την κάνει, η δήλωση θεωρείται αποδεκτή μετά από 10 ημέρες (`PRESUMED_ACCEPTED`). Δείτε: [Onboarding API: endpoints](https://developers.novusconceptus.com/el/onboarding-api/endpoints/#get) ### Τι πρέπει να κάνει η εφαρμογή μου όταν λάβει το webhook `client.statement_recalled`; Προς το παρόν η Novus συνιστά να μη σταματάτε αυτόματα την έκδοση με βάση αυτό το event, γιατί η ΑΑΔΕ διαμορφώνει ακόμη τη διαδικασία της ανάκλησης. Από την πλευρά της Novus, ανάκληση γίνεται όταν αλλάζει ουσιωδώς το είδος των συναλλαγών του πελάτη (π.χ. σε πελάτη μόνο B2B προστίθεται B2C). Τότε ανακαλείται η παλιά δήλωση και υποβάλλεται νέα, άρα το event δεν δείχνει από μόνο του πρόβλημα. Επιβεβαιώνετε πάντα την κατάσταση με `GET /api/v1/requests/{requestId}` και περιμένετε οδηγία της Novus. Δείτε: [Webhooks](https://developers.novusconceptus.com/el/onboarding-api/webhooks/#events) ### Πώς αποσυνδέεται ένας ενεργός πελάτης από το software house μου μετά το `APPROVED`; Μετά την έγκριση η αίτηση δεν ακυρώνεται από το API (`DELETE` επιστρέφει `409 INVALID_TRANSITION`). Η αποσύνδεση γίνεται μόνο σε συνεννόηση με τη Novus, γιατί έχει συμβατικές συνέπειες. Αφαιρεί μόνο τη δική σας σύνδεση: δεν ακυρώνει τη σύμβαση του πελάτη με τη Novus ούτε ανακαλεί τη Δήλωση Παρόχου, αν ο πελάτης συνεχίζει μέσω άλλου software house. Αν ένας πελάτης έρχεται σε εσάς από άλλο software house, στέλνετε απλώς αίτηση και παίρνετε `LINK_EXISTING`. Δείτε: [Onboarding API: endpoints](https://developers.novusconceptus.com/el/onboarding-api/endpoints/#cancel) ### Ο λογιστής του πελάτη λέει ότι λείπουν δηλώσεις παρόχου στο myAADE, ενώ ο πελάτης εκδίδει μέσω Novus. Ποιος υποβάλλει τι; Για κάθε ΑΦΜ εκδότη χρειάζονται τρία πράγματα: σύμβαση με τη Novus, εξουσιοδότηση της Novus ως Παρόχου από τον ίδιο τον πελάτη στο myAADE, και Δήλωση Παρόχου στην ΑΑΔΕ (Α.1112/2025). Το δικό του μέρος το κάνει ο πελάτης όταν ξεκινά να χρησιμοποιεί τον Πάροχο. Τη Δήλωση Παρόχου την υποβάλλει η Novus μόνο αφού ο ΑΦΜ ενεργοποιηθεί με δική του σύμβαση, από το portal ή το Onboarding API, και ο πελάτης την αποδέχεται στο myAADE μέσα σε 10 ημέρες. Αν τον πελάτη τον εξυπηρετεί software house, η διαδικασία γίνεται μέσω αυτού. Δείτε: [Πιστοποίηση & μετάβαση σε παραγωγή](https://developers.novusconceptus.com/el/start/go-live/#clients) ### Λειτουργεί το API και για πελάτες που είχα ενεργοποιήσει πριν αρχίσω να χρησιμοποιώ το Onboarding API; Κάθε ΑΦΜ που είναι ήδη ενεργός στο API key σας εκδίδει κανονικά μέσω του Provider API, όπως κι αν ενεργοποιήθηκε. Αν στείλετε αίτηση στο Onboarding API για ΑΦΜ που είναι ήδη ενεργός στο κλειδί σας, παίρνετε `409 CLIENT_ALREADY_LINKED`· δεν χρειάζεται νέα αίτηση. Δείτε: [Περιβάλλοντα & API key](https://developers.novusconceptus.com/el/start/account/#one-key-many-customers) ### Πώς μπορεί ο πελάτης ή ο λογιστής του να επιβεβαιώσει ότι η Novus Conceptus είναι αδειοδοτημένος Πάροχος Ηλεκτρονικής Τιμολόγησης της ΑΑΔΕ; Η Novus Conceptus είναι αδειοδοτημένος Πάροχος Ηλεκτρονικής Τιμολόγησης (ΥΠΑΗΕΣ) με κωδικό Παρόχου `005`. Βρίσκεται στη δημόσια λίστα αδειοδοτημένων παρόχων στον ιστότοπο της ΑΑΔΕ, όπου μπορεί να την επαληθεύσει ο λογιστής. Τα στοιχεία της άδειας (αριθμός, ημερομηνία αδειοδότησης και ανανέωσης) υπάρχουν στην ενότητα «Ποιοι είμαστε» της τεκμηρίωσης. Δείτε: [Εκδίδετε παραστατικά από την εφαρμογή σας, με μία κλήση](https://developers.novusconceptus.com/el/#novus) Πηγή: https://developers.novusconceptus.com/el/faq/onboarding/ --- # Έκδοση παραστατικών Τύποι, αρίθμηση, χαρακτηρισμοί, PDF, email στον λήπτη. ### Ο χαρακτηρισμός εσόδων για το Ε3 (`incomeClassification`) στέλνεται μαζί με το παραστατικό ή είναι ξεχωριστή ενέργεια μετά την έκδοση; Στέλνεται μαζί με το ίδιο το παραστατικό, στην ίδια κλήση `SendInvoices`, και είναι ευθύνη της εφαρμογής σας. Κάθε γραμμή εσόδου έχει `incomeClassification` (`classificationType`, `classificationCategory` και `amount` ίσο με το `netValue`), και το `invoiceSummary.incomeClassification` έχει τα αθροίσματα ανά τύπο και κατηγορία. Για έξοδα (π.χ. αυτοτιμολόγηση) χρησιμοποιείται το `expensesClassification`. Οι τιμές (π.χ. `E3_561_001` με `category1_1`) προέρχονται από τους πίνακες χαρακτηρισμών της ΑΑΔΕ, ανάλογα με τη δραστηριότητα. Δείτε: [Τιμολόγια & αποδείξεις](https://developers.novusconceptus.com/el/guides/invoices/#the-6-rules-that-prevent-most-errors) ### Μπορώ να στείλω αναδρομικά χαρακτηρισμούς εσόδων για παραστατικά που έχουν ήδη εκδοθεί μέσω Παρόχου χωρίς χαρακτηρισμό; Όχι μέσω του Provider API: μέσω Παρόχου ο χαρακτηρισμός διαβιβάζεται μόνο μαζί με το παραστατικό, τη στιγμή της έκδοσης. Για τα παλιά παραστατικά οι χαρακτηρισμοί μπορούν να γίνουν από τον λογιστή, στο λογιστικό του πρόγραμμα ή απευθείας στο myDATA. Εναλλακτικά χρειάζεται ξεχωριστή διασύνδεση με το κανάλι ERP της ΑΑΔΕ (μέθοδος `SendIncomeClassification`) με τα διαπιστευτήρια myDATA του πελάτη, εκτός Novus. Για τα νέα παραστατικά διορθώστε το payload ώστε να περιέχει τους χαρακτηρισμούς. ### Τι επιστρέφει το API μετά την έκδοση ενός παραστατικού, και μπορώ να τυπώνω δικό μου παραστατικό με αυτά τα στοιχεία; Η απάντηση είναι σύγχρονη, στην ίδια κλήση `SendInvoices`. Με `statusCode = Success` παίρνετε `invoiceMark` (MARK), `invoiceUid`, `authenticationCode`, `invoiceUrl`/`qrUrl` (link στο PDF, που τυπώνεται ως QR) και `aadeQrUrl`, ενώ σε σφάλμα παίρνετε το `statusCode` και τα `errors`. Μπορείτε να δίνετε στον πελάτη το PDF του Παρόχου ή να τυπώνετε δικό σας παραστατικό. Αν τυπώνετε δικό σας, πρέπει να έχει τουλάχιστον την επωνυμία και τον ιστότοπο του Παρόχου, το QR code, τα MARK, UID και Authentication Code, και την ημερομηνία και ώρα έκδοσης. Δείτε: [SendInvoices](https://developers.novusconceptus.com/el/provider-api/send-invoices/#response) ### Ποιος ορίζει τη σειρά και τον αύξοντα αριθμό (`series`, `aa`), γίνονται δεκτά ελληνικά γράμματα και μπορώ να συνεχίσω την αρίθμηση που είχα πριν τον Πάροχο; Τα `series` και `aa` τα ορίζει αποκλειστικά η εφαρμογή σας και ο Πάροχος τα διαβιβάζει χωρίς αλλαγή· εσείς φροντίζετε για αρίθμηση χωρίς κενά και διπλότυπα. Ελληνικοί χαρακτήρες στη σειρά υποστηρίζονται (string έως 50 χαρακτήρες, `"0"` αν δεν υπάρχει σειρά). Ο Πάροχος δεν επιβάλλει περιορισμό στη συνέχεια της αρίθμησης, οπότε μπορείτε να συνεχίσετε από τον αριθμό που είχατε φτάσει. Προσοχή: ίδιος εκδότης, ημερομηνία, εγκατάσταση, τύπος, σειρά και ΑΑ δίνουν ίδιο UID και η δεύτερη αποστολή απορρίπτεται ως διπλότυπο. Δείτε: [SendInvoices](https://developers.novusconceptus.com/el/provider-api/send-invoices/#invoiceheader) ### Είναι υποχρεωτικά τα πεδία `lineUnitPrice`, `totalNetPriceBeforeDiscount` και `vatCategoryPercent` στις γραμμές του παραστατικού; Ναι. Δεν πηγαίνουν στην ΑΑΔΕ, αλλά είναι στοιχεία του PDF (τιμή μονάδας, αξία πριν την έκπτωση, συντελεστής ΦΠΑ) και τα στέλνετε σε κάθε γραμμή. Όταν οι τιμές δεν περιλαμβάνουν ΦΠΑ, στη στήλη της αξίας δείξτε την καθαρή αξία. Δείτε: [SendInvoices](https://developers.novusconceptus.com/el/provider-api/send-invoices/#invoicedetails) ### Μπορώ να τυπώνω ή να στέλνω το παραστατικό με δικό μου template αντί για το PDF του Παρόχου; Ναι. Το API επιστρέφει πάντα έτοιμο PDF του Παρόχου (`invoiceUrl`) μαζί με τα στοιχεία του παραστατικού, αλλά μπορείτε να φτιάχνετε δικό σας PDF ή εκτύπωση. Τότε το έντυπο πρέπει να έχει την επωνυμία και τον ιστότοπο του Παρόχου, το QR code (από το `invoiceUrl` / `qrUrl`), MARK, UID, Authentication Code, ημερομηνία και ώρα έκδοσης, τα στοιχεία πληρωμής POS όπου υπάρχουν και την ένδειξη απώλειας διασύνδεσης σε offline έκδοση. Στην πιστοποίηση υποβάλλετε δείγμα της εκτύπωσής σας (σενάριο Β3), εκτός αν δίνετε στον πελάτη το PDF του Παρόχου. Δείτε: [Πιστοποίηση & μετάβαση σε παραγωγή](https://developers.novusconceptus.com/el/start/go-live/#kanones-ektyposis) ### Ποια ημερομηνία και ώρα έκδοσης τυπώνω σε δικό μου έντυπο, όταν το PDF παράγεται αργότερα από την έκδοση; Τυπώνετε την τοπική ημερομηνία και ώρα που δημιουργήθηκε (εκδόθηκε) το παραστατικό στο σύστημά σας, όχι τη στιγμή που αργότερα παράγεται ή ξανατυπώνεται το PDF. Η ημερομηνία πρέπει να συμφωνεί με το `issueDate` που στάλθηκε, που μέσω Παρόχου είναι η σημερινή (εκτός από την περίπτωση `transmissionFailure = 1`). Ημερομηνία και ώρα πρέπει να είναι ευανάγνωστες. Δείτε: [Πιστοποίηση & μετάβαση σε παραγωγή](https://developers.novusconceptus.com/el/start/go-live/#kanones-ektyposis) ### Γιατί απορρίπτεται ο Τίτλος Κτήσης (τύπος 3.1) που στέλνω; Ο τύπος `3.1` είναι παραστατικό αγοράς, άρα για τον εκδότη αφορά έξοδο. Γι' αυτό, και στις γραμμές (`invoiceDetails`) και στη σύνοψη (`invoiceSummary`), στέλνετε `expensesClassification` με κατηγορίες `category2_…` και όχι `incomeClassification`. Δείτε το έτοιμο παράδειγμα 3.1 στον οδηγό. Δείτε: [Τιμολόγια & αποδείξεις](https://developers.novusconceptus.com/el/guides/invoices/) ### Μπορώ να εκδίδω αποδείξεις λιανικής μέσω του API χωρίς ταμειακή μηχανή ή φορολογικό μηχανισμό; Ναι. Μέσω του Παρόχου εκδίδετε παραστατικά λιανικής (11.x), και στην εστίαση τα δελτία παραγγελίας 8.6 με την απόδειξη που τα κλείνει, χωρίς ταμειακή μηχανή ή ΕΑΦΔΣΣ· η λύση λειτουργεί εξ ολοκλήρου στο cloud. Ο Πάροχος τα διαβιβάζει στο myDATA και παράγει PDF με QR και όλα τα υποχρεωτικά στοιχεία. Αν ο πελάτης σας κάνει συναλλαγές B2C, στο αίτημα ενεργοποίησης δηλώνεται και ο πάροχος internet του (`ispDetails`). Δείτε: [Τιμολόγια & αποδείξεις](https://developers.novusconceptus.com/el/guides/invoices/) ### Πώς δείχνω το PDF του παραστατικού σε προεπισκόπηση στον browser, αφού το endpoint το επιστρέφει ως λήψη (attachment); Το endpoint του PDF (`invoiceUrl` / `GetInvoicePdf`) επιστρέφει σκόπιμα το αρχείο ως attachment, ώστε τα ERP να το κατεβάζουν και να το αποθηκεύουν· δεν υπάρχει παράμετρος (π.χ. `?preview=true`) ούτε εναλλακτικό header. Για προεπισκόπηση διαβάστε το αρχείο στη δική σας πλευρά. Είτε το σερβίρετε από το backend σας με `Content-Disposition: inline`, είτε στο frontend το φέρνετε με `fetch`, το παίρνετε ως `Blob` και ανοίγετε ένα τοπικό object URL. Δείτε: [Υπόλοιπες κλήσεις](https://developers.novusconceptus.com/el/provider-api/other-endpoints/#getinvoicepdf) ### Πώς στέλνω τιμολόγιο τύπου 1.5 (Εκκαθάριση Πωλήσεων Τρίτων – Αμοιβή από Πωλήσεις Τρίτων); Στέλνεται με το `SendInvoices` και `invoiceType` = `1.5`, με την ίδια δομή JSON όπως κάθε τιμολόγιο (`issuer`, `counterpart`, `invoiceHeader`, `paymentMethods`, `invoiceDetails`, `invoiceSummary`, `providerAdditionalInvoiceDetails`). Η διαφορά είναι στις γραμμές: κάθε γραμμή δηλώνει `invoiceDetailType` `1` (Εκκαθάριση Πωλήσεων Τρίτων) ή `2` (Αμοιβή από Πωλήσεις Τρίτων), και η ΑΑΔΕ απαιτεί τουλάχιστον μία γραμμή από το καθένα (σφάλμα `246`). Οι χαρακτηρισμοί ακολουθούν τους συνδυασμούς της ΑΑΔΕ για τον τύπο 1.5, και η σύνοψη έχει τα αθροίσματα των χαρακτηρισμών των γραμμών (εσόδων και εξόδων, όπου υπάρχουν). Δείτε: [Γραμμές & πληρωμές](https://developers.novusconceptus.com/el/aade/lines-payments/#invoice-detail-type) ### Η έκδοση παραστατικού είναι σύγχρονη ή το αποτέλεσμα έρχεται με webhook; Σύγχρονη. Το `SendInvoices` επιστρέφει στην ίδια κλήση το αποτέλεσμα: `statusCode`, MARK, UID, Authentication Code, QR και link του PDF, ή τα σφάλματα. Δεν χρειάζεται webhook. Η μόνη εξαίρεση είναι το `statusCode = Offline`: το παραστατικό έχει εκδοθεί και ο Πάροχος το διαβιβάζει μόλις επανέλθει η ΑΑΔΕ· το MARK το βρίσκετε μετά με `RequestTransmittedDocs`. Δείτε: [Πώς λειτουργεί](https://developers.novusconceptus.com/el/start/how-it-works/) ### Ποιος στέλνει το παραστατικό με email στον λήπτη, και μπορώ να προσαρμόσω αποστολέα, θέμα και κείμενο; Ο Πάροχος στέλνει το PDF στο `providerAdditionalInvoiceDetails.additionalDetails.recipients.email`, αν το συμπληρώσετε, και στις διευθύνσεις παραλαβής που επιστρέφει η ΑΑΔΕ για τον λήπτη, αν αυτός έχει δηλώσει ότι παραλαμβάνει ηλεκτρονικά. Αν δεν υπάρχει καμία από τις δύο, δεν στέλνεται email. Αποστολέας, θέμα και κείμενο είναι σταθερά. Μπορείτε παράλληλα να στέλνετε και δικό σας email από την εφαρμογή σας με το `invoiceUrl`. Δείτε: [SendInvoices](https://developers.novusconceptus.com/el/provider-api/send-invoices/#additionaldetails-required) ### Μπορεί μια πλατφόρμα συνδρομών ή e-shop να εκδίδει αυτόματα παραστατικό μέσω API μετά από κάθε επιτυχή χρέωση κάρτας σε πύλη πληρωμών; Ναι. Η πλατφόρμα σας χρεώνει την κάρτα μέσω της πύλης πληρωμών, λαμβάνει την επιβεβαίωση και μετά καλεί το `SendInvoices` για να εκδοθεί το παραστατικό (π.χ. 11.2 για ιδιώτη, 2.1 για επιχείρηση), χωρίς χειροκίνητη ενέργεια. Η Novus δεν συνδέεται απευθείας με την πύλη πληρωμών· τη ροή πύλη → πλατφόρμα → Provider API την υλοποιεί ο προγραμματιστής σας. Ως τρόπο πληρωμής δηλώνετε `type` 7 (POS / e-POS)· η υπογραφή Παρόχου (`skipSignature=false`) χρειάζεται μόνο όταν το τερματικό είναι «κλειδωμένο» κατά Α.1155/2023, οπότε επιβεβαιώστε αν ισχύει για την πύλη σας. Δείτε: [Πώς λειτουργεί](https://developers.novusconceptus.com/el/start/how-it-works/) ### Δέχεται το API απευθείας τους κωδικούς της ΑΑΔΕ (τύπους παραστατικών, ΦΠΑ, χαρακτηρισμούς, τρόπους πληρωμής) και ποιους τύπους παραστατικών υποστηρίζει; Ναι, το API δέχεται απευθείας τους επίσημους κωδικούς του myDATA: `invoiceType` (π.χ. `2.1`, `11.2`, `5.1`), `vatCategory`, `vatExemptionCategory` (υποχρεωτικό όταν `vatCategory` = 7), `incomeClassification` / `expensesClassification` και `paymentMethods[].type`. Μέσω Παρόχου όμως διαβιβάζονται μόνο οι τύποι 1.1 έως 11.5· οι τύποι 12.x έως 17.x (παραστατικά λήπτη, έξοδα, εγγραφές τακτοποίησης) δεν στέλνονται ποτέ από Πάροχο. Όλοι οι κωδικοί είναι στους «Πίνακες ΑΑΔΕ» της τεκμηρίωσης και υπάρχουν έτοιμα JSON για τους βασικούς τύπους. Δείτε: [Παραστατικά](https://developers.novusconceptus.com/el/aade/documents/#invoice-types) ### Πώς δηλώνεται το Τέλος Ανθεκτικότητας στην Κλιματική Κρίση σε καταλύματα; Το τέλος εκδίδεται ως παραστατικό τύπου `8.2` (Τέλος ανθεκτικότητας κλιματικής κρίσης). Στη γραμμή δηλώνεται ως λοιπός φόρος με ποσό: `otherTaxesPercentCategory` από 20 έως 30, ανάλογα με το είδος του καταλύματος, και `otherTaxesAmount` = ποσό ανά διανυκτέρευση × διανυκτερεύσεις, με `netValue` 0, `vatCategory` 8 και χαρακτηρισμό `category1_95`. Το `totalOtherTaxesAmount`, το `totalGrossValue` και ο τρόπος πληρωμής ισούνται με το ποσό του τέλους. Υπάρχει έτοιμο JSON στα παραδείγματα του οδηγού «Τιμολόγια & αποδείξεις». Δείτε: [Τιμολόγια & αποδείξεις](https://developers.novusconceptus.com/el/guides/invoices/#ready-made-examples) ### Μπορώ να διαβιβάσω μέσω Παρόχου παραστατικά με παλαιότερη ημερομηνία έκδοσης, αν δεν στάλθηκαν τη σωστή ημέρα; Όχι. Μέσω Παρόχου το `issueDate` πρέπει να είναι η σημερινή ημερομηνία (αλλιώς η ΑΑΔΕ απορρίπτει με σφάλμα 238), γιατί ο Πάροχος διαβιβάζει μόνο σε πραγματικό χρόνο. Η μόνη εξαίρεση είναι όταν η εφαρμογή σας δεν μπορούσε να φτάσει τον Πάροχο: τότε στέλνετε με `"transmissionFailure": 1` και την αρχική ημερομηνία, αλλά μόνο μέσα σε 1 ημέρα από το `issueDate`. Παραστατικά που δεν στάλθηκαν ποτέ δεν διαβιβάζονται αναδρομικά, οπότε παρακολουθείτε ότι κάθε αποστολή έγινε πραγματικά και για τον χειρισμό τους συμβουλεύεστε τον λογιστή. Δείτε: [SendInvoices](https://developers.novusconceptus.com/el/provider-api/send-invoices/#invoiceheader) ### Υπάρχουν έτοιμα παραδείγματα JSON για Τιμολόγιο Ενδοκοινοτικών Παραδόσεων (1.2) και Συμπληρωματικό Παραστατικό (1.6); Στην τρέχουσα τεκμηρίωση δεν υπάρχουν έτοιμα JSON για 1.2 και 1.6 (υπάρχουν για 1.1, 2.1, 3.1, 5.1, 5.2, 8.2 και 11.x). Και τα δύο εκδίδονται με το ίδιο `SendInvoices`, αλλάζοντας το `invoiceType` και τα σχετικά πεδία· στο 1.2 ο λήπτης είναι αλλοδαπός (με `name` και `address`) και ο συνήθης χαρακτηρισμός είναι `E3_561_005`, ενώ στο 1.6 δεν γίνεται δεκτό το `multipleConnectedMarks`. Δείγματα για 1.2 και 1.6 μπορείτε να ζητήσετε από τη Novus. Δείτε: [Τιμολόγια & αποδείξεις](https://developers.novusconceptus.com/el/guides/invoices/#ready-made-examples) ### Μπορώ να εκδώσω μέσω του Παρόχου παραστατικό που δεν διαβιβάζεται στην ΑΑΔΕ, π.χ. για προείσπραξη σε διαδικασία tax free που γίνεται από τρίτη υπηρεσία; Όχι. Κάθε παραστατικό που εκδίδεται μέσω του Παρόχου παίρνει MARK και διαβιβάζεται στο myDATA τη στιγμή της έκδοσης. Δεν υπάρχει «μη διαβιβαζόμενο» παραστατικό, όπως δεν υπάρχει και σε ταμειακή μηχανή. Για tax free που το διεκπεραιώνει εξωτερική υπηρεσία, το πώς τεκμηριώνεται η προείσπραξη και το πιστωτικό λιανικής για τον ΦΠΑ που επιστρέφεται τα επιβεβαιώνετε με τον λογιστή. Δείτε: [Πώς λειτουργεί](https://developers.novusconceptus.com/el/start/how-it-works/) ### Πώς στέλνω ένα παραστατικό (π.χ. απλοποιημένο 11.3 χωρίς ΦΠΑ) ώστε το ποσό να χαρακτηρίζεται στο myDATA ως πληροφοριακό και όχι ως έσοδο; Τον χαρακτηρισμό δεν τον ορίζει η σειρά ούτε ο Πάροχος. Προκύπτει από το `incomeClassification` που στέλνει η εφαρμογή σας στο `SendInvoices`. Στις γραμμές (`invoiceDetails[].incomeClassification`) στέλνετε `classificationCategory` = `category1_95` (Λοιπά Πληροφοριακά Στοιχεία Εσόδων) χωρίς `classificationType` (κωδικό E3), με ποσό ίσο με το `netValue`. Την ίδια αλλαγή κάνετε στο `invoiceSummary.incomeClassification`, με ποσό το σύνολο της καθαρής αξίας. Γραμμές με πραγματικό έσοδο κρατούν τον κανονικό χαρακτηρισμό (`category1_x` με E3), και το ποια περίπτωση ισχύει το κρίνει ο λογιστής. Δείτε: [Χαρακτηρισμοί εσόδων / εξόδων](https://developers.novusconceptus.com/el/aade/classifications/#income-classification-category) Πηγή: https://developers.novusconceptus.com/el/faq/invoices/ --- # Πιστωτικά & ακυρώσεις Πώς «ακυρώνεται» ένα παραστατικό. ### Ποιο πιστωτικό εκδίδω για να ακυρώσω ένα παραστατικό: λιανικής ή χονδρικής; Εξαρτάται από το αρχικό παραστατικό: | Αρχικό παραστατικό | Ακυρώνεται με | |:---|:---| | **Λιανικής:** 11.1 (ΑΛΠ), 11.2 (ΑΠΥ), 11.3 (απλοποιημένο τιμολόγιο), 11.5 | **11.4** Πιστωτικό Στοιχείο Λιανικής | | **Χονδρικής:** τιμολόγιο προς επιχείρηση (1.x, 2.x κ.λπ.) | **5.2** Πιστωτικό Τιμολόγιο *(συνιστάται)* ή **5.1** με συσχέτιση στο αρχικό | Και στις δύο περιπτώσεις τα ποσά γράφονται **θετικά**, με τους ίδιους συντελεστές ΦΠΑ και χαρακτηρισμούς με το αρχικό. Για μερική ακύρωση (π.χ. επιστροφή ενός είδους) βάζετε μόνο τις γραμμές που πιστώνετε. Δείτε: [Πιστωτικά & συσχετίσεις](https://developers.novusconceptus.com/el/guides/credit-notes/#which-credit-note) ### Πώς ακυρώνω μια απόδειξη λιανικής (π.χ. ΑΛΠ 11.1) με πιστωτικό 11.4; Εκδίδετε πιστωτικό στοιχείο λιανικής `11.4` με τις γραμμές που επιστρέφονται: - ποσά **θετικά**, ίδιο `vatCategory` και ίδιος χαρακτηρισμός εσόδων με την απόδειξη (π.χ. `E3_561_003` / `category1_1`), - χωρίς `counterpart`, όπως και στην απόδειξη, - στο `paymentMethods` ο τρόπος που επιστρέφονται τα χρήματα: μετρητά `3`, ή κάρτα / IRIS `7` / `8` με `skipSignature=false`, ώστε το τερματικό να κάνει την επιστροφή, - προαιρετικά `correlatedInvoices` με το MARK της αρχικής απόδειξης, μαζί με `correlatedInvoicesLabel` για το PDF. Αν δεν μπορείτε να εντοπίσετε την αρχική απόδειξη, η ΑΑΔΕ προβλέπει για το 11.4 την [ειδική κατηγορία](https://developers.novusconceptus.com/el/aade/documents/#special-invoice-category) `13` «Ένδειξη Δυσχέρειας Συσχέτισης» (`specialInvoiceCategory`). Δείτε: [Πιστωτικά & συσχετίσεις](https://developers.novusconceptus.com/el/guides/credit-notes/#ready-made-examples) · [Πληρωμή με κάρτα / IRIS](https://developers.novusconceptus.com/el/guides/card-payments/#special-cases) ### Πώς ακυρώνω ένα τιμολόγιο (π.χ. 1.1 ή 2.1) που έχει ήδη εκδοθεί μέσω Παρόχου; Παραστατικό που εκδόθηκε δεν διαγράφεται ούτε ακυρώνεται μέσω API· το αντιλογίζετε με το νόμιμο πιστωτικό, με τα ίδια ποσά και χαρακτηρισμούς. Για τιμολόγια προς επιχείρηση **συνιστάται το 5.2**: το 5.1 με `correlatedInvoices` μπορεί να απορριφθεί αν το αρχικό δεν έχει ακόμη συγχρονιστεί στην ΑΑΔΕ (έως 24 ώρες). Για λιανική: 11.4. Αν το αρχικό ήταν αυτοτιμολόγηση, και το πιστωτικό εκδίδεται ως αυτοτιμολόγηση. Οι κλήσεις `CancelDeliveryNote` / `CancelReceivingNote` αφορούν μόνο δελτία (9.x / 10.x). Δείτε: [Πιστωτικά & συσχετίσεις](https://developers.novusconceptus.com/el/guides/credit-notes/#cancel) ### Πώς διορθώνω λάθος παραστατικό αυτοτιμολόγησης (π.χ. Τίτλο Κτήσης 3.1 ή τιμολόγιο 1.1 με αυτοτιμολόγηση), αφού δεν γίνεται ακύρωση; Με πιστωτικό που εκδίδεται **επίσης ως αυτοτιμολόγηση** (`selfPricing: true`), ώστε ο αντιλογισμός να έχει τα σωστά πρόσημα. Όπως σε κάθε πιστωτικό προς επιχείρηση, συνιστάται το 5.2. Τον χαρακτηρισμό τον επιβεβαιώνετε με τον λογιστή του πελάτη. Δείτε: [Πιστωτικά & συσχετίσεις](https://developers.novusconceptus.com/el/guides/credit-notes/#cancel) ### Ποια είναι η σωστή μορφή του πεδίου συσχέτισης σε πιστωτικό τιμολόγιο 5.1; Το πεδίο είναι `invoiceHeader.correlatedInvoices` (camelCase) και είναι πίνακας με τα MARK των αρχικών παραστατικών ως αριθμούς (long), π.χ. `[]` και όχι ως strings. Όταν το στέλνετε, είναι υποχρεωτικό και το `correlatedInvoicesLabel`, με το κείμενο αναφοράς που τυπώνεται στο PDF. Αν το αρχικό εκδόθηκε `Offline` και δεν έχει ακόμη MARK, περιμένετε να το αποκτήσει και βρείτε το με `RequestTransmittedDocs` και `uid`. Δείτε: [Πιστωτικά & συσχετίσεις](https://developers.novusconceptus.com/el/guides/credit-notes/#correlation) Πηγή: https://developers.novusconceptus.com/el/faq/credit-notes/ --- # Σφάλματα Τι σημαίνει κάθε σφάλμα και τι κάνετε. ### Τι σημαίνει το σφάλμα 401 «You don't have the authority to send for this vat numbers» και πώς το διορθώνω; Το API key είναι σωστό, αλλά ο ΑΦΜ του εκδότη (`issuer.vatNumber`) δεν είναι ενεργοποιημένος στον λογαριασμό σας, οπότε το παραστατικό δεν στέλνεται και δεν χρεώνεται. Στο sandbox ενεργοποιείται αυτόματα μόνο ο ΑΦΜ της εγγραφής σας, ενώ στην παραγωγή κάθε ΑΦΜ πελάτη ενεργοποιείται μετά το onboarding (`provisioning.status = COMPLETED`). Ελέγξτε ότι στέλνετε τον σωστό ΑΦΜ εκδότη και, αν θα έπρεπε να είναι ενεργός, επικοινωνήστε με τη Novus. Δείτε: [Περιβάλλοντα & API key](https://developers.novusconceptus.com/el/start/account/#authentication) ### Όταν το `SendInvoices` επιστρέφει `statusCode = Offline`, πρέπει να ξαναστείλω το παραστατικό και πώς παίρνω αργότερα MARK, Authentication Code και QR; Όχι, δεν το ξαναστέλνετε: το παραστατικό έχει εκδοθεί με UID και ο Πάροχος θα το στείλει αυτόματα στην ΑΑΔΕ όταν εκείνη επανέλθει. Αρχικά παίρνετε `invoiceMark = 0`, κενό `authenticationCode` και PDF με την ένδειξη απώλειας διασύνδεσης Παρόχου - ΑΑΔΕ. Το τελικό MARK, το Authentication Code και το νέο PDF τα παίρνετε με `RequestTransmittedDocs` φιλτράροντας με το `uid` (δεν τεκμηριώνεται webhook για αυτό). Αν χρειαστεί συσχέτιση πριν αποκτήσει MARK (π.χ. κλείσιμο τραπεζιού), χρησιμοποιήστε το UID. Δείτε: [Offline & επαναλήψεις](https://developers.novusconceptus.com/el/guides/offline/#b-the-provider-cannot-reach-aade) ### Πώς ελέγχω αν ένα παραστατικό `Offline` διαβιβάστηκε τελικά στην ΑΑΔΕ; Με `RequestTransmittedDocs` και `uid=`. Όσο δεν έχει διαβιβαστεί, υπάρχει μία εγγραφή με `mark` 0. Μόλις διαβιβαστεί, εμφανίζεται και δεύτερη εγγραφή με το MARK της ΑΑΔΕ. Όσο η ΑΑΔΕ δεν απαντά, γίνονται μόνο οι έλεγχοι του Παρόχου, οπότε ένα παραστατικό με λάθος στα δεδομένα μπορεί να μη γίνει δεκτό όταν διαβιβαστεί. Αν μετά από 24 ώρες υπάρχει ακόμη μόνο η εγγραφή με `mark` 0, επικοινωνήστε μαζί μας με το `invoiceUid`. Δείτε: [Offline & επαναλήψεις](https://developers.novusconceptus.com/el/guides/offline/#check-offline) ### Γιατί ένα τιμολόγιο παροχής υπηρεσιών σε πελάτη εξωτερικού απορρίπτεται με το μήνυμα «Classification type E3_561_001 is forbidden ...»; Ο κωδικός `E3_561_001` αφορά πωλήσεις χονδρικής σε επιτηδευματίες εσωτερικού, και η ΑΑΔΕ δεν τον δέχεται σε παραστατικό εξωτερικού όπως το `2.2`. Αλλάξτε το `classificationType` ανάλογα με τη χώρα του λήπτη: `E3_561_005` για πελάτη σε χώρα της ΕΕ (τύπος `2.2`, κατηγορία `category1_3`), ή `E3_561_006` για πελάτη σε τρίτη χώρα, όπου ο σωστός τύπος είναι συνήθως ο `2.3`. Αλλάξτε τον χαρακτηρισμό και στις γραμμές και στο `invoiceSummary`. Δείτε: [Χαρακτηρισμοί εσόδων / εξόδων](https://developers.novusconceptus.com/el/aade/classifications/#income-classification-type) ### Γιατί απορρίπτεται το τιμολόγιο αυτοτιμολόγησης όταν στέλνω το `selfPricing` με την τιμή true σε εισαγωγικά; Το `selfPricing` είναι boolean και στέλνεται ως JSON boolean (`true`), χωρίς εισαγωγικά. Με τιμή μέσα σε εισαγωγικά (string) το παραστατικό απορρίπτεται και δεν εκδίδεται. Το ίδιο ισχύει για όλα τα boolean πεδία, π.χ. `isDeliveryNote` και `fuelInvoice`. Δείτε: [SendInvoices](https://developers.novusconceptus.com/el/provider-api/send-invoices/#invoiceheader) ### Γιατί παίρνω τα σφάλματα ΑΑΔΕ 207, 208 και 312, ενώ τα ποσά φαίνονται σωστά; Τα σφάλματα 207, 208 και 312 σημαίνουν ότι τα αθροίσματα των γραμμών (καθαρή αξία, μικτή αξία, χαρακτηρισμοί) δεν ταυτίζονται με τα σύνολα του `invoiceSummary`. Συνήθως φταίει η στρογγυλοποίηση: απορρίπτεται ακόμη και διαφορά λίγων λεπτών, π.χ. 0,03 €. Υπολογίστε τα σύνολα αθροίζοντας τις ήδη στρογγυλεμένες τιμές των γραμμών (2 δεκαδικά), ώστε το `totalNetValue`, το `totalGrossValue` και τα ποσά των χαρακτηρισμών να συμφωνούν ακριβώς. Δείτε: [Κωδικοί σφαλμάτων ΑΑΔΕ](https://developers.novusconceptus.com/el/provider-api/aade-errors/) ### Τι σημαίνει το σφάλμα 202 «Invalid Greek VAT number», όταν ο πελάτης επιμένει ότι ο ΑΦΜ είναι σωστός; Το σφάλμα το επιστρέφει η ΑΑΔΕ (myDATA), όχι ο Πάροχος, και σημαίνει ότι ο ΑΦΜ δεν είναι έγκυρος ελληνικός ΑΦΜ. Ελέγξτε για τυπογραφικό λάθος ή λάθος ψηφίο ελέγχου, π.χ. αναζητώντας τον ΑΦΜ σε μητρώο. Ο Πάροχος προωθεί τα δεδομένα όπως τα λαμβάνει και δεν διορθώνει ΑΦΜ. Δείτε: [Κωδικοί σφαλμάτων ΑΑΔΕ](https://developers.novusconceptus.com/el/provider-api/aade-errors/) ### Τι σημαίνει το σφάλμα HTTP 400 «The invoicesDocRequest field is required» ή «The JSON value could not be converted to …» όταν στέλνω παραστατικό; Το σώμα του request δεν μπορεί να διαβαστεί (deserialization) με το σχήμα του API, οπότε ο Πάροχος το απορρίπτει με HTTP 400 και το παραστατικό δεν φτάνει στην ΑΑΔΕ. Η συνηθέστερη αιτία είναι πεδίο που πρέπει να είναι πίνακας αλλά στάλθηκε ως σκέτο αντικείμενο ή κενό: τα `invoice`, `invoiceDetails`, `paymentMethods` και `incomeClassification` / `expensesClassification` μπαίνουν πάντα μέσα σε `[ ]`, ακόμη και με ένα στοιχείο. Το ίδιο συμβαίνει με τιμή κωδικού που δεν αναγνωρίζεται ή είναι κενή (π.χ. στον χαρακτηρισμό). Το `Path` του μηνύματος (π.χ. `$.invoice[0].invoiceDetails`) δείχνει ποιο πεδίο φταίει· διορθώνετε και ξαναστέλνετε με την ίδια σειρά/ΑΑ, αφού το παραστατικό δεν εκδόθηκε. Δείτε: [SendInvoices](https://developers.novusconceptus.com/el/provider-api/send-invoices/#request-body) ### Τι κάνω σε HTTP 5xx, timeout ή αποτυχία σύνδεσης, όταν δεν ξέρω αν το παραστατικό παραλήφθηκε, ώστε να μην εκδοθεί δύο φορές; Θεωρήστε την κατάσταση άγνωστη. Πρώτα ελέγξτε με `RequestTransmittedDocs` (π.χ. με σειρά/ΑΑ ή UID) αν το παραστατικό υπάρχει και έχει MARK. Αν δεν υπάρχει, ξαναστείλτε το ίδιο ακριβώς payload (ίδια σειρά, ΑΑ και ημερομηνία)· αν η πρώτη αποστολή είχε περάσει, η ΑΑΔΕ επιστρέφει σφάλμα 228 με το αρχικό MARK και Authentication Code, τα οποία κρατάτε ως «ήδη εκδομένο». Μην κάνετε άμεσο retry: αφήστε εύλογη καθυστέρηση (π.χ. exponential backoff), γιατί δύο αιτήματα με διαφορά λίγων milliseconds μπορεί να παρακάμψουν τον έλεγχο διπλοτύπου της ΑΑΔΕ. Αν ο Πάροχος παραμένει απρόσιτος, εκδίδετε τοπικά και στέλνετε μέσα σε 1 ημέρα με `transmissionFailure: 1`. Δείτε: [Offline & επαναλήψεις](https://developers.novusconceptus.com/el/guides/offline/#a-you-cannot-reach-the-provider) ### Γιατί παίρνω HTTP 401 Unauthorized στο `SendInvoices` της παραγωγής, ενώ το ίδιο API key δουλεύει σε άλλη εγκατάσταση; Χρειάζομαι κλειδί ανά πελάτη; Δεν χρειάζεστε κλειδί ανά πελάτη: ένα API key εξυπηρετεί όλους τους ενεργοποιημένους ΑΦΜ σας, και ο πελάτης προκύπτει από το `issuer.vatNumber`. Ένα 401 χωρίς μήνυμα `errors` σημαίνει ότι το header `API-KEY` λείπει ή δεν φτάνει σωστά, ότι το κλειδί είναι λάθος ή ανενεργό, ή ότι στέλνετε κλειδί Sandbox σε Production (ή ανάποδα). Αν δεν είναι ενεργοποιημένος ο ΑΦΜ του εκδότη, το 401 έρχεται με `errors` «You don't have the authority to send for this vat numbers ...». Ελέγξτε τη ρύθμιση της συγκεκριμένης εγκατάστασης (header, URL περιβάλλοντος, κενά ή κρυφοί χαρακτήρες στο κλειδί). Αν το πρόβλημα μένει, στείλτε στη Novus το JSON του request και του response. Δείτε: [Περιβάλλοντα & API key](https://developers.novusconceptus.com/el/start/account/#authentication) Πηγή: https://developers.novusconceptus.com/el/faq/errors/ --- # Κάρτα / POS Υπογραφή Παρόχου, NSP, ειδικές περιπτώσεις. ### Πώς εμπλέκεται το Provider API σε πληρωμή με κάρτα ή IRIS μέσω POS και πότε επιστρέφεται υπογραφή Παρόχου; Για POS που είναι «κλειδωμένο» κατά την Α.1155/2023, στέλνετε το παραστατικό με `SendInvoices?skipSignature=false` και πληρωμή `type` 7 (κάρτα) ή 8 (IRIS) με `terminalId` και `posNspId`. Η απάντηση φέρνει `providerSignature` (`token`, `data`)· το token το περνάτε αυτούσιο στο POS/NSP και, μετά τη χρέωση, καλείτε `CompletionPosInvoices` με `signatureToken`, `transactionId`, `paymentAmount` και τον τελικό `paymentType`, οπότε το παραστατικό διαβιβάζεται και παίρνετε MARK. Με `skipSignature=true` (προεπιλογή) το παραστατικό εκδίδεται αμέσως χωρίς υπογραφή. Κάθε γραμμή πληρωμής με υπογραφή χρεώνει επιπλέον 0,25 credits. Δείτε: [Πληρωμή με κάρτα / IRIS](https://developers.novusconceptus.com/el/guides/card-payments/) ### Ποιος κάνει τη διασύνδεση της εφαρμογής μου με το τερματικό POS της τράπεζας για πληρωμές με κάρτα; Τη διασύνδεση με το τερματικό την κάνει η εφαρμογή σας, με το API και το δοκιμαστικό περιβάλλον που δίνει η τράπεζα ή ο πάροχος πληρωμών (NSP, π.χ. Viva, Mellon, Cardlink, Worldline, Nexi, Euronet, EDPS). Είναι ξεχωριστή διασύνδεση από αυτή με τον Πάροχο, που δίνει μόνο την υπογραφή Παρόχου. Στέλνετε `SendInvoices?skipSignature=false` με `terminalId` και `posNspId`, περνάτε το token στο POS, και μετά τη χρέωση ολοκληρώνετε με το `CompletionPosInvoices`. Η ροή είναι ίδια για κάθε NSP. Δείτε: [Πληρωμή με κάρτα / IRIS](https://developers.novusconceptus.com/el/guides/card-payments/#two-integrations) ### Διαθέτει η Novus test POS ή POS simulator για δοκιμές πληρωμής με κάρτα; Όχι. Για τη χρέωση χρησιμοποιείτε το δοκιμαστικό περιβάλλον ή το test τερματικό του NSP σας (π.χ. Viva, Mellon, Cardlink, Worldline, Nexi, Euronet, EDPS). Το δοκιμαστικό του Παρόχου επιστρέφει κανονική υπογραφή, στη μορφή που περιμένει ο NSP (HEX ή BASE64), και στο δοκιμαστικό το `CompletionPosInvoices` δέχεται και δοκιμαστικό `transactionId`. Έτσι δοκιμάζετε όλη τη ροή από την πλευρά του Παρόχου χωρίς τερματικό, με έτοιμα βήματα στο Postman (φάκελος 4). Δείτε: [Πληρωμή με κάρτα / IRIS](https://developers.novusconceptus.com/el/guides/card-payments/#testing) ### Τι κάνω αν η πληρωμή στο POS αποτύχει, ακυρωθεί ή πάρω timeout; Μέχρι το `CompletionPosInvoices` το παραστατικό μένει σε αναμονή και δεν έχει διαβιβαστεί. Αν ο πελάτης ξαναδοκιμάσει με κάρτα, χρεώνετε ξανά με το ίδιο token, όσο ισχύει (24 ώρες, 2 ώρες στην εστίαση), και κάνετε completion όταν πετύχει. Αν πληρώσει τελικά με άλλο τρόπο, ξαναστέλνετε το ίδιο παραστατικό, με τον ίδιο αριθμό, με τον νέο τρόπο πληρωμής. Σε timeout, ελέγχετε πρώτα στο POS / NSP αν έγινε η χρέωση. Completion καλείτε μόνο μετά από επιτυχημένη χρέωση. Δείτε: [Πληρωμή με κάρτα / IRIS](https://developers.novusconceptus.com/el/guides/card-payments/#failed-payment) ### Αν το `CompletionPosInvoices` αποτύχει με σφάλμα της ΑΑΔΕ, ο πελάτης έχει ήδη πληρώσει. Πώς το αποφεύγω και τι κάνω αν συμβεί; Στη Ροή 1 (έκδοση και πληρωμή μαζί) η υπογραφή σημαίνει ότι ο Πάροχος δέχτηκε το παραστατικό, όχι η ΑΑΔΕ: η διαβίβαση γίνεται στο completion, μετά τη χρέωση. Αν η ΑΑΔΕ το απορρίψει, το παραστατικό δεν εκδίδεται ενώ η κάρτα έχει χρεωθεί. Για να μη συμβεί, δοκιμάστε στο sandbox κάθε συνδυασμό που θα στέλνετε με κάρτα, ελέγξτε σύνολα και χαρακτηρισμούς πριν ζητήσετε υπογραφή, και για ασυνήθιστα παραστατικά χρησιμοποιήστε τη Ροή 2 (έκδοση πρώτα, χρέωση μετά). Αν συμβεί, το πώς θα τακτοποιηθεί είναι λογιστικό θέμα: συμφωνήστε το εκ των προτέρων με τον λογιστή του πελάτη σας. Δείτε: [Πληρωμή με κάρτα / IRIS](https://developers.novusconceptus.com/el/guides/card-payments/#flow-1-issue-and-pay-together-checkout) ### Χρειάζεται ξεχωριστό σενάριο δοκιμής ή πιστοποίησης για πληρωμές IRIS (`paymentType` 8); Όχι. Το IRIS ακολουθεί την ίδια ροή με την κάρτα: υπογραφή Παρόχου, χρέωση στο τερματικό, `CompletionPosInvoices`. Αν ο πελάτης αλλάξει τρόπο στο τερματικό (π.χ. από κάρτα σε IRIS), δηλώνετε το 8 ως τελικό `paymentType` στο completion. Η πληρωμή με κάρτα / IRIS δεν πιστοποιείται: τη δηλώνετε στην αίτηση πιστοποίησης. Δείτε: [Πληρωμή με κάρτα / IRIS](https://developers.novusconceptus.com/el/guides/card-payments/#flow-1-issue-and-pay-together-checkout) ### Τι γίνεται αν στείλω ξανά το ίδιο παραστατικό με άλλο τρόπο πληρωμής, ενώ η πρώτη αποστολή έγινε με κάρτα και `skipSignature=false`; Με πληρωμή κάρτας ή IRIS και `skipSignature=false` το παραστατικό δεν διαβιβάζεται αμέσως: μένει σε αναμονή και η απάντηση φέρνει υπογραφή Παρόχου, μέχρι να καλέσετε το `CompletionPosInvoices`. Αν στο μεταξύ στείλετε ξανά τον ίδιο αριθμό με άλλο τρόπο πληρωμής (π.χ. επί πιστώσει), η δεύτερη κλήση εκδίδεται κανονικά και η πρώτη παραμένει σε αναμονή. Αυτό είναι και το σωστό όταν η χρέωση με κάρτα δεν έγινε και ο πελάτης πληρώνει αλλιώς: ίδιος αριθμός, νέος τρόπος πληρωμής, χωρίς completion για την υπογραφή που δεν χρησιμοποιήθηκε. Αν όμως η κάρτα χρεώθηκε, μην ξαναστέλνετε το παραστατικό: ολοκληρώστε με το `CompletionPosInvoices`, όπου δηλώνεται και ο τελικός τύπος πληρωμής (7 ή 8). Δείτε: [Πληρωμή με κάρτα / IRIS](https://developers.novusconceptus.com/el/guides/card-payments/#failed-payment) ### Ποιο `posNspId` βάζω για ένα τερματικό POS, και σε ποια μορφή (HEX ή BASE64) θα πάρω το token; Το `posNspId` λέει σε ποιον NSP ανήκει το τερματικό και καθορίζει τη μορφή και τη σειρά των πεδίων της υπογραφής, π.χ. `2` Viva: BASE64. Για NSP που δεν είναι στη λίστα, ρωτήστε τον ποιο πρωτόκολλο (μορφή και σειρά πεδίων) απαιτεί και επιλέξτε τον αντίστοιχο κωδικό, π.χ. `98` Other (HEX) ή `99` Other (BASE64). Το `token` επιστρέφεται ήδη στη μορφή του NSP, οπότε το περνάτε αυτούσιο, χωρίς μετατροπή. Δείτε: [Γραμμές & πληρωμές](https://developers.novusconceptus.com/el/aade/lines-payments/#pos-nsp) ### Γιατί στο `data` της υπογραφής Παρόχου για τη Viva το πεδίο του ΦΠΑ είναι πάντα 2400, όποιο κι αν είναι το παραστατικό; Το πεδίο αυτό είναι πλέον legacy. Η εσωτερική διαχείριση καλύπτει και παραστατικά με πολλούς συντελεστές, οπότε η ενημέρωση προς τον NSP και την ΑΑΔΕ γίνεται με σταθερή τιμή 24,00% (2400), ανεξάρτητα από τον πραγματικό ΦΠΑ. Η τιμή αυτή δεν επηρεάζει τη χρέωση ή την ολοκλήρωση της πληρωμής. Περνάτε το `token` και το `data` όπως τα επιστρέφει ο Πάροχος. Δείτε: [Πληρωμή με κάρτα / IRIS](https://developers.novusconceptus.com/el/guides/card-payments/#special-cases) ### Ποια είναι η σωστή μορφή του body στις κλήσεις `CompletionPosInvoices` και `AskSignatureForOldInvoice`; Στο `CompletionPosInvoices` το body είναι πίνακας (array) από αντικείμενα με `signatureToken`, `transactionId`, `paymentAmount` και, προαιρετικά, `tipAmount` και `paymentType`· σκέτο αντικείμενο απορρίπτεται. Στο `AskSignatureForOldInvoice` το body είναι σκέτο το MARK του παραστατικού ως αριθμός JSON, και τα `terminalId` και `posNspId` πηγαίνουν στο query string. Το ίδιο body (το MARK) παίρνει και το `CompletionAskSignatureForOldInvoice`. Αν ένα παράδειγμα διαφέρει από τη συμπεριφορά του API, ισχύει το Swagger του κάθε περιβάλλοντος. Δείτε: [Υπόλοιπες κλήσεις](https://developers.novusconceptus.com/el/provider-api/other-endpoints/#completionposinvoices) ### Ποια τιμή του `aadeProviderId` στέλνω στον NSP για τη Novus, το 005 ή το 105; Η ΑΑΔΕ έχει για τη Novus Conceptus δύο αναγνωριστικά: `provider_id` **005** και `license_id` **105**. Κάθε τράπεζα / NSP ζητά ένα από τα δύο στο δικό του πεδίο (π.χ. `aadeProviderId`). Δείτε στην τεκμηρίωση του NSP ποιο περιμένει και δοκιμάστε πρώτα στο δοκιμαστικό του. Δείτε: [Πληρωμή με κάρτα / IRIS](https://developers.novusconceptus.com/el/guides/card-payments/#special-cases) ### Σε online πληρωμή με κάρτα από e-shop (χωρίς φυσικό POS) χρειάζεται υπογραφή Παρόχου; Συνήθως όχι. Κατά την εγκύκλιο **Ε.2044/2024** της ΑΑΔΕ, οι πωλήσεις από απόσταση (e-commerce) και οι πληρωμές με payment link είναι εκτός της υποχρέωσης διασύνδεσης POS. Στέλνετε `SendInvoices` με `skipSignature=true` (προεπιλογή) και τρόπο πληρωμής `type` 7, και το παραστατικό εκδίδεται αμέσως. Αν η ίδια επιχείρηση έχει και φυσικό POS υποχρεωμένο σε διασύνδεση, εκεί ισχύει η ροή με υπογραφή. Για τη συγκεκριμένη περίπτωση κάθε πελάτη, επιβεβαιώστε με τον λογιστή του. Δείτε: [Πληρωμή με κάρτα / IRIS](https://developers.novusconceptus.com/el/guides/card-payments/) ### Μπορώ να εξοφλήσω πολλά ανεξόφλητα παραστατικά ενός πελάτη με ένα μόνο χτύπημα κάρτας στο POS; Ναι, με ένα συγκεντρωτικό παραστατικό 8.4 (Απόδειξη Είσπραξης POS) για το συνολικό ποσό. Στο 8.4 βάζετε υποχρεωτικά στο `invoiceHeader.multipleConnectedMarks` τα MARK των ανεξόφλητων παραστατικών που εξοφλούνται, ώστε η ΑΑΔΕ να ξέρει ποια τιμολόγια καλύπτει η είσπραξη. Το στέλνετε με `skipSignature=false` και πληρωμή `type` 7 ή 8, παίρνετε μία υπογραφή Παρόχου, χρεώνετε μία φορά στο POS και ολοκληρώνετε με `CompletionPosInvoices`. Για εξόφληση ενός μόνο παλιού παραστατικού υπάρχει και η ροή `AskSignatureForOldInvoice`. Δείτε: [Πληρωμή με κάρτα / IRIS](https://developers.novusconceptus.com/el/guides/card-payments/#pos-receipts-84--85) ### Πώς χρεώνω προκαταβολή με κάρτα σε «κλειδωμένο» POS, όταν το κύριο παραστατικό θα εκδοθεί αργότερα (π.χ. κράτηση που τιμολογείται στο check-out); Τη στιγμή της προκαταβολής η εφαρμογή εκδίδει 8.4 (Απόδειξη Είσπραξης POS) για το ποσό, με `skipSignature=false`· παίρνει την υπογραφή Παρόχου, το POS χρεώνει και η ροή κλείνει με `CompletionPosInvoices`. Στο 8.4 δεν δηλώνετε συσχετιζόμενα, αφού το κύριο παραστατικό δεν έχει εκδοθεί ακόμη. Όταν εκδοθεί το τελικό τιμολόγιο ή η απόδειξη, βάζετε το MARK του 8.4 στο `multipleConnectedMarks`. Δείτε: [Πληρωμή με κάρτα / IRIS](https://developers.novusconceptus.com/el/guides/card-payments/#special-cases) ### Πώς κάνω επιστροφή χρημάτων (refund) σε κάρτα μέσω «κλειδωμένου» POS που απαιτεί υπογραφή Παρόχου; Δεν υπάρχει ξεχωριστό endpoint για «υπογραφή επιστροφής». Εκδίδετε το νόμιμο πιστωτικό παραστατικό (π.χ. 11.4 ή πιστωτικό τιμολόγιο) με τρόπο πληρωμής POS (`type` 7 ή 8) και `skipSignature=false`, όπως στην αρχική πώληση· με την υπογραφή Παρόχου που παίρνετε, το τερματικό κάνει την επιστροφή στην κάρτα, και κλείνετε τη ροή με `CompletionPosInvoices`. Για επιστροφή που γίνεται μόνο στο POS και δεν αντιστοιχεί σε εκδοθέν παραστατικό πώλησης (π.χ. επιστροφή προκαταβολής), εκδίδετε 8.5 (Απόδειξη Επιστροφής POS) και χρησιμοποιείτε την υπογραφή του. Δείτε: [Πληρωμή με κάρτα / IRIS](https://developers.novusconceptus.com/el/guides/card-payments/) ### Για συναλλαγές POS όπως mail order, δόσεις, preloaded ή ολοκλήρωση pre-authorization χρειάζεται διαφορετική υπογραφή Παρόχου; Όχι. Χρησιμοποιείτε την ίδια υπογραφή που επιστρέφει το `SendInvoices` με `skipSignature=false` και την περνάτε στο τερματικό όπως στην απλή πώληση. Οι ιδιαιτερότητες κάθε τύπου συναλλαγής (mail order, δόσεις, pre-authorization κ.λπ.) αφορούν μόνο την επικοινωνία της εφαρμογής σας με το τερματικό μέσω του πρωτοκόλλου του NSP και δεν επηρεάζουν την υπογραφή του Παρόχου. Δείτε: [Πληρωμή με κάρτα / IRIS](https://developers.novusconceptus.com/el/guides/card-payments/) Πηγή: https://developers.novusconceptus.com/el/faq/card-payments/ --- # Εστίαση Δελτία παραγγελίας 8.6 και τραπέζια. ### Γιατί το τραπέζι (δελτία παραγγελίας 8.6) μένει ανοιχτό ενώ έχει εκδοθεί η απόδειξη πληρωμής; Ο Πάροχος κλείνει τα δελτία 8.6 όταν το παραστατικό κλεισίματος (π.χ. `11.1` με `specialInvoiceCategory` 12) έχει στο `invoiceHeader.multipleConnectedMarks` όλα τα MARK του τραπεζιού, παραγγελίες και ακυρώσεις. Αν η απόδειξη εκδόθηκε χωρίς αυτή τη συσχέτιση, τα δελτία εξακολουθούν να εμφανίζονται στο `GetOpenTables` και, μετά από 24 ώρες, μπλοκάρεται η έκδοση για την εγκατάσταση. Κλείστε τα με ολική ακύρωση (8.6 με `totalCancelDeliveryOrders: true` και τα MARK στο `multipleConnectedMarks`). Δείτε: [Εστίαση: Δελτίο Παραγγελίας 8.6](https://developers.novusconceptus.com/el/guides/food-service/) ### Τι σημαίνει όταν ένα δελτίο παραγγελίας 8.6 έχει MARK 0 και πώς κλείνω το τραπέζι του; MARK 0 σημαίνει ότι το δελτίο εκδόθηκε **offline** (`statusCode = Offline`): έχει UID αλλά δεν έχει ακόμη διαβιβαστεί στην ΑΑΔΕ. Ο Πάροχος το στέλνει μόλις επανέλθει η σύνδεση. Αν χρειαστεί να κλείσετε το τραπέζι πριν πάρει MARK, βάλτε το UID του στο `multipleConnectedUids` αντί για MARK στο `multipleConnectedMarks`· ο Πάροχος κάνει τη μετατροπή. Δείτε: [Εστίαση: Δελτίο Παραγγελίας 8.6](https://developers.novusconceptus.com/el/guides/food-service/#closing-the-table) ### Γιατί το `GetOpenOrdersForTable` δεν επιστρέφει τα ανοιχτά δελτία ενός τραπεζιού που εμφανίζεται στο `GetOpenTables`; Η κλήση είναι `GET /api/v1/Provider/GetOpenOrdersForTable?TableId=…&VatNumber=…&Branch=…` και επιστρέφει για κάθε ανοιχτό 8.6 τα `mark`, `uid`, `quantityProducts` και `totalNet` (ή 404 αν το τραπέζι δεν έχει ανοιχτά δελτία). Ελέγξτε ότι στέλνετε το `TableId` όπως το επέστρεψε το `GetOpenTables`, τον ίδιο ΑΦΜ και την ίδια εγκατάσταση (`Branch`) με τα 8.6, με μέθοδο GET, και ότι κλειδί και base URL ανήκουν στο ίδιο περιβάλλον (Sandbox ή Production). Μπορείτε να επαληθεύσετε την κλήση από το Swagger και να αναζητήσετε το δελτίο με το MARK του στο portal. Δείτε: [Υπόλοιπες κλήσεις](https://developers.novusconceptus.com/el/provider-api/other-endpoints/#getopenordersfortable) ### Πού βρίσκω τις τεχνικές προδιαγραφές για τη διαβίβαση των δελτίων παραγγελίας εστίασης (8.6) και το κλείσιμο των τραπεζιών μέσω Παρόχου; Στον οδηγό Εστίασης. Κάθε παραγγελία τραπεζιού στέλνεται ως 8.6 με `tableAA` (GUID του τραπεζιού), χαρακτηρισμό `category1_95` και χωρίς `paymentMethods`. Οι ακυρώσεις ειδών γίνονται με νέο 8.6 και `recType: 7`, και το τραπέζι κλείνει με 11.1 ή 1.1 που έχει `specialInvoiceCategory: 12` και όλα τα MARK του τραπεζιού στο `multipleConnectedMarks`. Κάθε 8.6 πρέπει να κλείσει μέσα σε 24 ώρες· υπάρχουν έτοιμα JSON και ο φάκελος 5 του Postman. Δείτε: [Εστίαση: Δελτίο Παραγγελίας 8.6](https://developers.novusconceptus.com/el/guides/food-service/) Πηγή: https://developers.novusconceptus.com/el/faq/food-service/ --- # Διακίνηση Δελτία αποστολής και Ψηφιακή Διακίνηση. ### Πρέπει τα δελτία αποστολής (9.3) να διαβιβάζονται υποχρεωτικά μέσω Παρόχου ή μπορούν να πηγαίνουν απευθείας στην ΑΑΔΕ; Είναι φορολογικό/λογιστικό ζήτημα που εξαρτάται από τις υποχρεώσεις της επιχείρησης και πρέπει να επιβεβαιωθεί με τον λογιστή της. Κατά τη Novus, όταν ένας πελάτης έχει δηλώσει Πάροχο, θα πρέπει να εκδίδει μέσω Παρόχου σε όλα. Μέσω του Provider API υποστηρίζονται τα δελτία 9.1, 9.2, 9.3 και 10.x, καθώς και τιμολόγιο ή απόδειξη που είναι και δελτίο (`isDeliveryNote`), με χρέωση 1 credit ανά δελτίο. Δείτε: [Διακίνηση: δελτία αποστολής](https://developers.novusconceptus.com/el/guides/delivery/) ### Με το Ψηφιακό Δελτίο Αποστολής, αλλάζει η έκδοση δελτίων μέσω Παρόχου; Μπορεί ο Πάροχος να καλεί για λογαριασμό μου τις μεθόδους μεταφοράς (`/RegisterTransfer` έως `/ConfirmDeliveryReturn`); Η έκδοση και η διαβίβαση των παραστατικών διακίνησης (9.x, 10.x, Τιμολόγιο/Απόδειξη – Δελτίο Αποστολής) συνεχίζονται κανονικά μέσω του Παρόχου, με MARK και QR, χωρίς αλλαγή στη διασύνδεση. Τα γεγονότα της μεταφοράς (παραλαβή/μεταφόρτωση, παράδοση, επιβεβαίωση ή απόρριψη από τον λήπτη, ολοκλήρωση επιστροφής) τα δηλώνει το ERP απευθείας στην ΑΑΔΕ, από το κανάλι ERP του myDATA. Χρησιμοποιεί τα διαπιστευτήρια (`aade-user-id`, `ocp-apim-subscription-key`) της επιχείρησης που ενεργεί κάθε φορά: εκδότη, μεταφορέα ή λήπτη. Οι μέθοδοι αυτές δεν υπάρχουν στο κανάλι των παρόχων, άρα ο Πάροχος δεν μπορεί να τις καλέσει. Ως αναφορά χρησιμοποιείτε το MARK / `qrUrl` του δελτίου που σας επιστρέφει ο Πάροχος. Δείτε: [Διακίνηση: δελτία αποστολής](https://developers.novusconceptus.com/el/guides/delivery/#what-changed-with-mydata-20-digital-delivery-note) ### Γιατί ένα Τιμολόγιο Πώλησης - Δελτίο Αποστολής (1.1 με `isDeliveryNote: true`) εμφανίζεται στο `RequestTransmittedDocs` με `isDeliveryNote = false`; Συνήθως επειδή τα πεδία της διακίνησης δεν βρίσκονται μέσα στο αντικείμενο `invoiceHeader`. Τα `isDeliveryNote`, `dispatchDate`, `dispatchTime`, `vehicleNumber`, `movePurpose` και το `otherDeliveryNoteHeader` (με `loadingAddress` και `deliveryAddress`) ανήκουν όλα στο `invoiceHeader`. Αν το `invoiceHeader` κλείσει νωρίτερα (π.χ. αμέσως μετά το `currency`), τα πεδία μένουν στο root του παραστατικού, δεν αναγνωρίζονται και το παραστατικό περνά ως απλό τιμολόγιο. Συγκρίνετε τη δομή σας με το έτοιμο παράδειγμα «1.1 — Τιμολόγιο Πώλησης - Δελτίο Αποστολής». Δείτε: [Διακίνηση: δελτία αποστολής](https://developers.novusconceptus.com/el/guides/delivery/#goods-movement-fields) ### Γιατί απορρίπτεται δελτίο αποστολής με `movePurpose = 6` και ποιον σκοπό διακίνησης χρησιμοποιώ αντί γι' αυτόν; Ο σκοπός διακίνησης `6` (Φύλαξη) έχει καταργηθεί από την ΑΑΔΕ και δεν γίνεται πλέον δεκτός, ακόμη κι αν αποστολέας και παραλήπτης έχουν τον ίδιο ΑΦΜ. Το ίδιο ισχύει για τους `15`, `16`, `17` και `18`. Επιλέξτε έναν ενεργό κωδικό από τον πίνακα «Σκοπός Διακίνησης» ανάλογα με την πραγματική συναλλαγή, π.χ. `14` (Αποθήκευση σε Τρίτους) ή `19` (Λοιπές Διακινήσεις, με `otherMovePurposeTitle`). Ποιος κωδικός ταιριάζει σε μια παρακαταθήκη το αποφασίζει η επιχείρηση με τον λογιστή της. Δείτε: [Διακίνηση](https://developers.novusconceptus.com/el/aade/movement/#move-purpose) ### Μπορώ να ανακτήσω μέσω του Provider API τα εισερχόμενα παραστατικά (π.χ. δελτία αποστολής) που εκδόθηκαν προς τον ΑΦΜ της επιχείρησης; Όχι. Το Provider API δεν έχει endpoint για εισερχόμενα, και το `RequestTransmittedDocs` επιστρέφει μόνο παραστατικά που εκδώσατε εσείς μέσω του λογαριασμού σας. Τα εισερχόμενα προς έναν ΑΦΜ τα αντλεί το λογισμικό σας απευθείας από το myDATA API της ΑΑΔΕ, με τους κωδικούς myDATA της επιχείρησης. Δείτε: [Υπόλοιπες κλήσεις](https://developers.novusconceptus.com/el/provider-api/other-endpoints/#requesttransmitteddocs) ### Υποστηρίζεται κωδικός TARIC / Συνδυασμένης Ονοματολογίας ανά γραμμή για την Ενιαία Κωδικοποίηση Ειδών; Ναι. Το πεδίο γραμμής `invoiceDetails[].TaricNo` (10 χαρακτήρες) γίνεται δεκτό και διαβιβάζεται στο myDATA, μαζί με τα `itemCode` / `itemDescr`. Για την Ενιαία Κωδικοποίηση Ειδών σε όλα τα παραστατικά θα ανακοινώσουμε στις Αλλαγές ό,τι χρειαστεί, όταν η ΑΑΔΕ εκδώσει τις τελικές προδιαγραφές. Δείτε: [SendInvoices](https://developers.novusconceptus.com/el/provider-api/send-invoices/#invoicedetails) ### Υποστηρίζει ο Πάροχος τους νέους τύπους διακίνησης του myDATA 2.0.2 (9.1, 9.2, 10.1, 10.2) ή πρέπει να περιμένω νέα έκδοση της διασύνδεσης; Υποστηρίζονται ήδη όλοι: 9.1, 9.2, 9.3, 10.1 και 10.2, καθώς και 1.1 / 11.1 ως Τιμολόγιο/Απόδειξη – Δελτίο Αποστολής (`isDeliveryNote: true` με `otherDeliveryNoteHeader`). Εκδίδονται με το ίδιο `SendInvoices` και παίρνετε MARK και UID στην απάντηση, χωρίς να τα στείλετε χωριστά στο myDATA. Στα 10.1 / 10.2 το `receivingNotePurpose` είναι υποχρεωτικό. Η τρέχουσα τεκμηρίωση (έκδοση 3.0) είναι ευθυγραμμισμένη με το myDATA 2.0.2, και κάθε νέα αλλαγή της ΑΑΔΕ ανακοινώνεται στο changelog πριν τεθεί σε ισχύ. Δείτε: [Διακίνηση: δελτία αποστολής](https://developers.novusconceptus.com/el/guides/delivery/) Πηγή: https://developers.novusconceptus.com/el/faq/delivery/ --- # B2G (Δημόσιο) Τιμολόγια προς φορείς του Δημοσίου. ### Πού βρίσκω τον Κωδικό Αναθέτουσας Αρχής και πώς επιβεβαιώνω τα στοιχεία της σύμβασης (ΑΔΑΜ, ΑΔΑ, CPV); Τον **Κωδικό Αναθέτουσας Αρχής** τον βρίσκετε στο [Μητρώο Αναθετουσών Αρχών της ΓΓΠΣΔΔ](https://webapps.gsis.gr/dsae2/foreisreg/faces/pages/mainmenu/anOikYpList.xhtml), με αναζήτηση βάσει ΑΦΜ του φορέα ή κωδικού ΑΑΗΤ. Μπαίνει στο `buyerIdentifiers[].buyerIdentifier`, και με αυτόν δρομολογείται το τιμολόγιο. Τα στοιχεία της **σύμβασης** τα επιβεβαιώνετε στο [ΚΗΜΔΗΣ](https://cerpp.eprocurement.gov.gr/upgkimdis/unprotected/home.xhtml), μενού «Συμβάσεις», με αναζήτηση βάσει ΑΔΑΜ: εκεί φαίνονται ο ΑΔΑ, οι κωδικοί CPV των ειδών και ο Ενάριθμος ΠΔΕ. Ο ΑΔΑΜ μπαίνει στο `contractReference` και ο CPV σε κάθε γραμμή, στο `itemClassificationIdentifiers`. Αν κάτι δεν ταιριάζει, ο πελάτης σας το διορθώνει με τον φορέα πριν από την έκδοση. Δείτε: [Δημόσιο (B2G)](https://developers.novusconceptus.com/el/guides/b2g/#providerb2gadditionalinvoicedetails) ### Ποιον τύπο προϋπολογισμού (`budget.type`) βάζω και τι μπαίνει στο `budget.identifier`; Ο τύπος ορίζει σε ποιο σύστημα του Δημοσίου πηγαίνει το τιμολόγιο για πληρωμή, γι' αυτό τον επιβεβαιώνετε με τον φορέα: | `budget.type` | Πότε | `budget.identifier` | Πού πηγαίνει | |:---:|:---|:---|:---| | `1` | Φορέας της Κεντρικής Διοίκησης (άρθρο 14 ν. 4270/2014), δαπάνη του Τακτικού Προϋπολογισμού | ΑΔΑ της απόφασης ανάληψης υποχρέωσης | ΟΠΣΔΠ | | `2` | Δαπάνη του Προγράμματος Δημοσίων Επενδύσεων (ΠΔΕ) | Ενάριθμος του έργου, όπως στη ΣΑ και στη σύμβαση | e-ΠΔΕ | | `3` | Δαπάνη του προϋπολογισμού του ίδιου του φορέα (π.χ. Δήμος, ΝΠΔΔ) | ΑΔΑ της απόφασης ανάληψης υποχρέωσης | Το πληροφοριακό σύστημα του φορέα | Στο πιστωτικό 5.2, για τύπο 1 ή 3, το `budget.identifier` μένει κενό. Δείτε: [Δημόσιο (B2G)](https://developers.novusconceptus.com/el/guides/b2g/#providerb2gadditionalinvoicedetails) ### Τι είναι ο ΑΔΑ και τι ο Ενάριθμος; Τι κάνω αν δεν έχω σύμβαση; - **ΑΔΑ:** ο μοναδικός αριθμός της Απόφασης Ανάληψης Υποχρέωσης (ΑΑΥ) στη Διαύγεια. Με την ΑΑΥ ο φορέας δεσμεύει την πίστωση πριν από τη δαπάνη, και ο ΑΔΑ αναφέρεται στη σύμβαση. Σε πολυετείς δαπάνες υπάρχουν περισσότερες ΑΑΥ: αν η σύμβαση δεν γράφει ποια ισχύει, ρωτήστε την υπηρεσία του φορέα που εκτελεί τη σύμβαση. - **Ενάριθμος:** ο 14ψήφιος κωδικός ενός έργου του ΠΔΕ, από το σύστημα e-ΠΔΕ. Τα 4 πρώτα ψηφία είναι το έτος πρώτης ένταξης, ακολουθούν ο κωδικός της Συλλογικής Απόφασης (ΣΑ) και ο αύξων αριθμός του έργου. Αναφέρεται στη σύμβαση ως πηγή χρηματοδότησης· αν δεν τον βρίσκετε, ρωτήστε την Αναθέτουσα Αρχή. - **Χωρίς σύμβαση:** στο `contractReference` βάζετε `"0"`. Για το `budget.identifier` επικοινωνήστε με τον φορέα. Δείτε: [Δημόσιο (B2G)](https://developers.novusconceptus.com/el/guides/b2g/#providerb2gadditionalinvoicedetails) ### Τι σημαίνουν τα σφάλματα BR-CL-23, BT-158-EMPTY-VALUES και 222 σε τιμολόγιο B2G; | Σφάλμα | Τι σημαίνει | Τι κάνετε | |:---|:---|:---| | `BR-CL-23` «Unit code MUST be coded according to the UN/ECE Recommendation 20…» | Η μονάδα μέτρησης δεν είναι κωδικός UN/ECE Rec. 20 | Αντιστοιχίστε τις μονάδες σας σε κωδικό UBL στο `QuantityUnitsUblCode`, π.χ. `H87` ή `EA` (τεμάχιο / μονάδα), `KGM` (κιλό), `LTR` (λίτρο), `HUR` (ώρα). | | `BT-158-EMPTY-VALUES` | Λείπει ο κωδικός CPV σε μια γραμμή | Συμπληρώστε `itemClassificationIdentifiers[].classificationIdentifier` σε κάθε γραμμή. Τον CPV τον βρίσκετε στη σύμβαση. | | `222` «NetValue per line must have value greater than 0…» | Γραμμή με μηδενική καθαρή αξία | Κάθε γραμμή πρέπει να έχει `netValue` μεγαλύτερο από 0. | Τα `BR-…` / `BT-…` έρχονται από την πλατφόρμα ηλεκτρονικής τιμολόγησης του Δημοσίου (ΚΕΔ). Για ό,τι δεν λύνεται από την πλευρά σας, τα στοιχεία επικοινωνίας είναι στη [σελίδα ηλεκτρονικής τιμολόγησης της ΓΓΠΣΔΔ](https://gsis.gr/polites-epiheiriseis/pliromes-kai-eispraxeis/e-invoice). Το `222` είναι [σφάλμα της ΑΑΔΕ](https://developers.novusconceptus.com/el/provider-api/aade-errors/). Δείτε: [Δημόσιο (B2G)](https://developers.novusconceptus.com/el/guides/b2g/#per-line) ### Σε ποια πεδία του API αντιστοιχούν τα στοιχεία του τιμολογίου B2G (π.χ. BT-10 «Στοιχεία αναφοράς αγοραστή», BT-9, BT-70) και τι πρέπει να συμπληρώσω για να εκδοθεί; Τα στοιχεία EN 16931 μπαίνουν στο `providerB2gAdditionalInvoiceDetails`. Το BT-10 είναι το `buyerReference`, το BT-9 το `dueDate` (καταληκτική ημερομηνία πληρωμής· σε τμηματικές πληρωμές, η πρώτη) και το BT-70 το `partyName`: η οργανική μονάδα του φορέα που παραλαμβάνει φυσικά τα αγαθά ή τις υπηρεσίες, χωρίς να είναι η ίδια η Αναθέτουσα Αρχή (π.χ. «Αποθήκη Υγειονομικού Υλικού»). Χρειάζονται επίσης `contractReference`, `budget`, ο Κωδικός Αναθέτουσας Αρχής στο `buyerIdentifiers`, και σε κάθε γραμμή τα `QuantityUnitsUblCode`, `itemClassificationIdentifiers` (CPV) και `itemCodification`. Ο τρόπος πληρωμής είναι πάντα `5` (επί πιστώσει), με τον τραπεζικό λογαριασμό που θα πληρωθεί στο `credits[]`. Αν λείπουν υποχρεωτικά πεδία, το τιμολόγιο δεν εκδίδεται, οπότε ξεκινήστε από τα έτοιμα παραδείγματα B2G. Δείτε: [Δημόσιο (B2G)](https://developers.novusconceptus.com/el/guides/b2g/) ### Χρειάζομαι ξεχωριστό API key για να δοκιμάσω τιμολόγια προς το Δημόσιο (`SendInvoicesB2G`) στο Sandbox; Ναι. Για το `SendInvoicesB2G` χρειάζεστε ξεχωριστό δοκιμαστικό κλειδί B2G, που το ζητάτε από τη Novus. Με το κανονικό κλειδί η κλήση απορρίπτεται με HTTP 401 «You don't have the authority…». Στην παραγωγή, η έκδοση B2G ενεργοποιείται χωριστά και έχει δικό της υπόλοιπο credits. Δείτε: [Δημόσιο (B2G)](https://developers.novusconceptus.com/el/guides/b2g/#testing-in-the-sandbox) ### Γιατί δεν φεύγει πιστωτικό τιμολόγιο 5.1 προς φορέα του Δημοσίου (B2G); Στο `SendInvoicesB2G` το πιστωτικό είναι **5.2**. Ο τύπος 5.1 δεν είναι στους επιτρεπτούς τύπους B2G (1.1, 1.6, 2.1, 2.4, 3.1, 3.2, 5.2, 6.1, 6.2, 7.1). Στο 5.2 το `contractReference` μένει κενό, και για προϋπολογισμό τύπου 1 ή 3 κενό μένει και το `budget.identifier`. Δείτε: [SendInvoicesB2G](https://developers.novusconceptus.com/el/provider-api/send-invoices-b2g/) ### Γιατί αποτυγχάνει η έκδοση τιμολογίου B2G για έναν πελάτη, ενώ τα υπόλοιπα παραστατικά του εκδίδονται κανονικά; Η υπηρεσία B2G ενεργοποιείται χωριστά για κάθε πελάτη και χρεώνεται από ξεχωριστό υπόλοιπο B2G (1 credit ανά τιμολόγιο). Αν η υπηρεσία B2G του πελάτη δεν είναι ενεργή ή δεν έχει ανανεωθεί, τα τιμολόγια προς το Δημόσιο δεν εκδίδονται, ενώ τα υπόλοιπα παραστατικά συνεχίζουν κανονικά. Επικοινωνήστε με τη Novus για ενεργοποίηση ή ανανέωση και ξαναστείλτε μόλις επιβεβαιωθεί. Δείτε: [SendInvoicesB2G](https://developers.novusconceptus.com/el/provider-api/send-invoices-b2g/) Πηγή: https://developers.novusconceptus.com/el/faq/b2g/ --- # Γενικά Όρια, αρχειοθέτηση, νομικό πλαίσιο. ### Υπάρχουν όρια (rate limits) στον αριθμό κλήσεων προς το API; Προς το παρόν όριο υπάρχει μόνο στο **Onboarding API**: 60 κλήσεις ανά λεπτό ανά κλειδί, με το header `X-RateLimit-Remaining`· πάνω από αυτό απαντά `429 RATE_LIMITED` με `Retry-After`. Στο Provider API ο Πάροχος δεν βάζει όριο, όμως κλήσεις όπως το `RequestTransmittedDocs` εξαρτώνται και από την ΑΑΔΕ, οπότε μην κάνετε polling πιο συχνά απ' όσο χρειάζεται. Δείτε: [Onboarding API: endpoints](https://developers.novusconceptus.com/el/onboarding-api/endpoints/) ### Πώς ενημερώνομαι για αλλαγές του myDATA και για νέες εκδόσεις της τεκμηρίωσης του API; Τις αλλαγές που σας αφορούν (νέες εκδόσεις myDATA, νέα πεδία, αλλαγές στο API) τις ανακοινώνουμε στη σελίδα **Αλλαγές** (changelog) της τεκμηρίωσης, πριν τεθούν σε ισχύ. Η Novus Conceptus, ως πιστοποιημένος Πάροχος, προσαρμόζει την υποδομή της στις αλλαγές της ΑΑΔΕ. Για τις επίσημες ανακοινώσεις και προδιαγραφές, πηγή είναι η ενότητα myDATA του ιστότοπου της ΑΑΔΕ. Δείτε: [Changelog](https://developers.novusconceptus.com/el/changelog/) ### Βρήκα παραστατικό που εμφανίζεται διαβιβασμένο στο myDATA αλλά λείπει από τα παραστατικά του Παρόχου· τι κάνω; Για τη συμφωνία χρησιμοποιήστε το `RequestTransmittedDocs`, με ΑΦΜ εκδότη και διάστημα ημερομηνιών ή με `invoiceMark`/`uid`, για να δείτε τι έχει καταγράψει ο Πάροχος. Για να διερευνήσει μια ασυμφωνία, η Novus χρειάζεται το `invoiceUid` ή το request και το response JSON της συγκεκριμένης αποστολής. Γι' αυτό η εφαρμογή σας πρέπει να κρατά το request και το response κάθε αποστολής, μαζί με MARK, UID, Authentication Code και `invoiceUrl`. Δείτε: [Υπόλοιπες κλήσεις](https://developers.novusconceptus.com/el/provider-api/other-endpoints/#requesttransmitteddocs) ### Προσφέρει το API αναζήτηση στοιχείων επιχείρησης (επωνυμία, διεύθυνση) με βάση τον ΑΦΜ; Όχι. Το Provider API δεν έχει αναζήτηση επωνυμίας ή διεύθυνσης με βάση τον ΑΦΜ· τα στοιχεία του λήπτη τα στέλνει η εφαρμογή σας. Για αναζήτηση υπάρχει η υπηρεσία «Αναζήτηση Βασικών Στοιχείων Μητρώου» της ΑΑΔΕ, με δικούς σας κωδικούς πρόσβασης. ### Μπορώ να στέλνω μέσω Παρόχου μόνο ορισμένα παραστατικά (π.χ. μόνο τιμολόγια) και τα υπόλοιπα να τα διαβιβάζω με άλλο τρόπο; Τεχνικά ο Πάροχος διαβιβάζει μόνο όσα παραστατικά στέλνει η εφαρμογή σας στο `SendInvoices`· ό,τι δεν στέλνετε δεν περνά από αυτόν. Το ποια παραστατικά πρέπει υποχρεωτικά να εκδίδονται μέσω Παρόχου το ορίζει όμως η νομοθεσία και όχι ο Πάροχος: από 1/10/2026 η υποχρέωση καλύπτει και την τελευταία ομάδα επιχειρήσεων για τα τιμολόγια B2B και B2G, που εκδίδονται είτε μέσω Παρόχου είτε μέσω των δωρεάν εφαρμογών της ΑΑΔΕ. Για κάθε πελάτη επιβεβαιώστε με τον λογιστή του ποια παραστατικά μπορούν να μείνουν εκτός Παρόχου. Πηγή: https://developers.novusconceptus.com/el/faq/general/ --- # Αλλαγές Κάθε ενημέρωση myDATA της ΑΑΔΕ είναι υλοποιημένη στο Provider API. Σε κάθε ενημέρωση φαίνεται η έκδοση της τεκμηρίωσης (`v3.0`) και η έκδοση myDATA που καλύπτει (`myDATA 2.0.2`). Οι πιο πρόσφατες πρώτες: πατήστε μια ενημέρωση για να ανοίξει. **Τρέχουσα:** τεκμηρίωση v3.0 · myDATA 2.0.2 · Επίσημη πηγή: [Τεχνικές προδιαγραφές ΑΑΔΕ](https://www.aade.gr/epiheiriseis/mydata-ilektronika-biblia-aade/tehnikes-prodiagrafes-ekdoseis) ## 2026 ### Ενημέρωση Σεπτεμβρίου 2026 `v3.0` `myDATA 2.0.2` **Νέο site τεκμηρίωσης**, αντί για τα αρχεία Word: - **Δύο APIs, πλήρως τεκμηριωμένα:** [Provider API](https://developers.novusconceptus.com/el/provider-api/) και [Onboarding API](https://developers.novusconceptus.com/el/onboarding-api/) (με [webhooks](https://developers.novusconceptus.com/el/onboarding-api/webhooks/)), το καθένα με [OpenAPI και συλλογή Postman](https://developers.novusconceptus.com/el/tools/). Η συλλογή του Provider τρέχει 9 σενάρια αλυσιδωτά, με tests σε κάθε κλήση. - **32 έτοιμα JSON**, ελεγμένα αυτόματα (ποσά, ΦΠΑ, σύνολα, χαρακτηρισμοί). Οι 25 πίνακες ΑΑΔΕ ομαδοποιήθηκαν σε [6 σελίδες](https://developers.novusconceptus.com/el/aade/). - **[Συχνές ερωτήσεις](https://developers.novusconceptus.com/el/faq/):** πάνω από 100 ερωτήσεις από πραγματικές περιπτώσεις developers. - **Νέα [πιστοποίηση](https://developers.novusconceptus.com/el/start/go-live/):** χωρίς ραντεβού, μόνο για τα βασικά σενάρια, με αίτηση online. Οι ενότητες (κάρτα, εστίαση, διακίνηση, B2G, OSS, Onboarding) δηλώνονται, δεν πιστοποιούνται. - **Γράφεται ρητά:** μέσω Παρόχου εκδίδονται μόνο οι τύποι **1.1 έως 11.5**. - **Τεκμηριώνονται πλέον:** `multipleConnectedUids`, `correlatedInvoicesUids`, `CancelReceivingNote`, `GetInvoice/{uid}/{fileType}`, `GetInvoicePdfByAuthenticationCode`, `GetCreditsBalance`, οι [κανόνες επικύρωσης του Παρόχου](https://developers.novusconceptus.com/el/provider-api/send-invoices/#provider-validation-before-aade) και οι [κωδικοί σφαλμάτων ΑΑΔΕ](https://developers.novusconceptus.com/el/provider-api/aade-errors/). - **Διορθώσεις:** το `SendInvoices` δέχεται **ένα** παραστατικό ανά κλήση · τα `GetOpenTables` / `GetOpenOrdersForTable` είναι **GET** · διορθώθηκε το HEX/BASE64 ανά NSP (Viva, Cardlink, Worldline, Other HEX) · το default του `digitsItemPrice` είναι `2`. **myDATA 2.0.2:** - **Πεδία:** `receivingNotePurpose` (υποχρεωτικό στα 10.1 / 10.2, [πίνακας 8.24](https://developers.novusconceptus.com/el/aade/movement/#receiving-note-purpose)), `otherReceivingNotePurposeTitle`, `nonObligatedRecipient`, `withoutDigitalTransportTracking`. Σφάλμα ΑΑΔΕ `290`. - Το `ConfirmDeliveryReturn` (δήλωση επιστροφής από τον εκδότη) είναι μέθοδος του καναλιού ERP: καμία αλλαγή στη σύνδεσή σας με τον Πάροχο. ### Ενημέρωση Μαρτίου 2026 `myDATA 2.0.1` - Μόνο διορθώσεις ορθογραφίας της ΑΑΔΕ (`invoiceDeliveryStatus`, `EndToEndReferenceID` με λατινικό E). Καμία αλλαγή στα requests σας. ## 2025 ### Ενημέρωση Δεκεμβρίου 2025 `v2.3` `myDATA 2.0.0` **Ψηφιακό Δελτίο Αποστολής** (myDATA 1.0.12 και 2.0.0). Δείτε [Διακίνηση: δελτία αποστολής](https://developers.novusconceptus.com/el/guides/delivery/#what-changed-with-mydata-20-digital-delivery-note). - **Τύποι:** 9.1, 9.2, 10.1, 10.2. - **Πεδία:** `reverseDeliveryNote`, `reverseDeliveryNotePurpose` ([πίνακας 8.21](https://developers.novusconceptus.com/el/aade/movement/#reverse-delivery-purpose)), `packingsDeclarations` (τύποι συσκευασίας, πίνακας 8.23), `toWeigh`, `movePurposeLine`, `otherMovePurposeLineTitle`. Σφάλματα ΑΑΔΕ `288`, `289`, `409`. - **Αλλαγές:** τα `dispatchDate`, `dispatchTime` και `vehicleNumber` αφορούν πλέον τον *προγραμματισμό* της διακίνησης. Τα πραγματικά γεγονότα (`RegisterTransfer`, παράδοση, απόρριψη) δηλώνονται από το κανάλι ERP, όχι από τον Πάροχο. - **Καταργήθηκε:** το `otherTransportDetails`. - **Provider API:** νέα κλήση `CancelDeliveryNote`. Τα `invoiceUrl` και `qrUrl` είναι πλέον ίδια· νέο πεδίο `aadeQrUrl`. Ο Πάροχος στέλνει στην ΑΑΔΕ το `downloadingInvoiceUrl` ([`GetInvoice`](https://developers.novusconceptus.com/el/provider-api/other-endpoints/#getinvoice), Α.1128/2025). ### Ενημέρωση Απριλίου 2025 `myDATA 1.0.11` - **Μετονομασία:** το «Χαρτόσημο» έγινε [Ψηφιακό Τέλος Συναλλαγής](https://developers.novusconceptus.com/el/aade/taxes/#digital-transaction-fee). Μόνο η ονομασία: τα πεδία JSON μένουν ίδια. - **Εξαιρέσεις ΦΠΑ:** νέα αντιστοίχιση με τον νέο Κώδικα ΦΠΑ, ν. 5144/2024. Ίδιοι κωδικοί, νέα άρθρα. Δείτε [Κατηγορία Αιτίας Εξαίρεσης ΦΠΑ](https://developers.novusconceptus.com/el/aade/vat/#vat-exemption). - **Διακίνηση:** οι [σκοποί](https://developers.novusconceptus.com/el/aade/movement/#move-purpose) 6, 15, 16, 17, 18 δεν γίνονται πλέον δεκτοί· νέος σκοπός 20. Νέα ειδική κατηγορία παραστατικού 13. - Το `transmissionFailure` επεκτάθηκε από την ΑΑΔΕ έως το `4`· μέσω Παρόχου στέλνετε πάντα μόνο το `1`. Σφάλματα ΑΑΔΕ `281` έως `287`. ## 2024 ### Ενημέρωση Δεκεμβρίου 2024 `myDATA 1.0.10` - Τα παραστατικά καυσίμων (`fuelInvoice`, `fuelCode`) γίνονται δεκτά και από ERP. Καμία αλλαγή για το κανάλι του Παρόχου. ### Ενημέρωση Ιουλίου 2024 `v2.2` `myDATA 1.0.9` - **Πεδία:** `tid` (τερματικό POS), `multipleConnectedMarks`, `tableAA` και `totalCancelDeliveryOrders` ([εστίαση](https://developers.novusconceptus.com/el/guides/food-service/)), `notVAT195` (γραμμή εκτός ΦΠΑ). - **Κωδικοί:** [κατηγορία ΦΠΑ](https://developers.novusconceptus.com/el/aade/vat/#vat-category) 10 (4%, αρ. 31 ν. 5057/2023)· [λοιποί φόροι](https://developers.novusconceptus.com/el/aade/taxes/#other-taxes) 19 έως 30· τύπος εξόδων `NOT_VAT_295`· τρόπος πληρωμής 8, Άμεσες Πληρωμές IRIS. - **Αλλαγές:** ο τύπος 8.2 μετονομάστηκε σε «Τέλος ανθεκτικότητας κλιματικής κρίσης». Σφάλματα ΑΑΔΕ `280`, `341`. - **Provider API:** ενημέρωση των κανόνων επικύρωσης του Παρόχου. ### Ενημέρωση Μαΐου 2024 `v2.1` - Οδηγίες εγγραφής developer account. Νέα διαδικασία ενεργοποίησης πελάτη. ### Ενημέρωση Μαρτίου 2024 `v2.0` `myDATA 1.0.8` - **Τύποι:** 8.4 / 8.5 (αποδείξεις POS), 8.6 ([δελτίο παραγγελίας εστίασης](https://developers.novusconceptus.com/el/guides/food-service/)), 9.3 (δελτίο αποστολής). - **Πληρωμές με κάρτα (Α.1155/2023):** υπογραφή Παρόχου για διασυνδεδεμένα τερματικά POS. Δείτε [Πληρωμή με κάρτα / IRIS](https://developers.novusconceptus.com/el/guides/card-payments/). - **Τιμολόγιο – δελτίο αποστολής:** `isDeliveryNote` με `otherDeliveryNoteHeader`, `otherMovePurposeTitle`, `thirdPartyCollection`. Σκοποί διακίνησης 9 έως 19. - **Γραμμές:** `TaricNo`, `itemCode`, `otherMeasurementUnitQuantity`, `otherMeasurementUnitTitle`. Νέες μονάδες: μέτρα, m², m³, τεμάχια (λοιπές περιπτώσεις). - **Κωδικοί:** κατηγορία ΦΠΑ 9 (3%)· χαρακτηρισμός εσόδων `category3`· νέες ειδικές κατηγορίες παραστατικού. ## 2023 ### Ενημέρωση Οκτωβρίου 2023 `myDATA 1.0.7` - **Πεδία:** `countryDocumentId`, `otherCorrelatedEntities` (με τις κατηγορίες συσχετιζόμενων οντοτήτων, πίνακας 8.20). - **Κωδικοί:** νέες ειδικές κατηγορίες παραστατικού. ## 2022 ### Ενημέρωση Ιουνίου 2022 `myDATA 1.0.6` - **Πεδία:** `documentIdNo`, `supplyAccountNo`, `specialInvoiceCategory`, `invoiceVariationType`, `quantity15`, `itemDescr`. - **Κωδικοί:** νέες κατηγορίες εξαίρεσης ΦΠΑ, παρακρατούμενων φόρων, λοιπών φόρων και τελών· νέος κωδικός καυσίμου. - **Αλλαγές:** τιμή `7` στο `recType` (αρνητικό πρόσημο αξιών). ### Ενημέρωση Φεβρουαρίου 2022 `myDATA 1.0.5` - Νέοι κωδικοί καυσίμων. ## 2021 ### Ενημέρωση Δεκεμβρίου 2021 `myDATA 1.0.4` - **Κωδικοί:** νέες κατηγορίες τελών, τύποι χαρακτηρισμού εσόδων και εξόδων, τρόποι πληρωμής. Αφαιρέθηκαν οι τύποι εξόδων `E3_598_001` και `E3_598_003`. ### Ενημέρωση Ιουνίου 2021 `myDATA 1.0.3` - **Παραστατικά καυσίμων:** `fuelInvoice`, `fuelCode` και ο πίνακας κωδικών καυσίμων. - **Κωδικοί:** νέες κατηγορίες εξαίρεσης ΦΠΑ, παρακρατούμενων φόρων, λοιπών φόρων, χαρτοσήμου και τελών. Οι [λοιποί φόροι](https://developers.novusconceptus.com/el/aade/taxes/#other-taxes) 1 και 2 (ασφάλιστρα κλάδου πυρός) δεν γίνονται πλέον δεκτοί. ### Ιανουάριος 2021: πρώτη έκδοση `myDATA 1.0.2` - Πρώτη έκδοση του Provider API, με όλες τις αλλαγές της ΑΑΔΕ έως τον Νοέμβριο 2020. - Οι εκδόσεις 1.1 έως 1.9 (2021 – 2023) πρόσθεσαν σταδιακά: credits, παραστατικά καυσίμων, logos, μεγέθη εντύπου, ειδικούς χαρακτήρες, `taxesTotals`, tax free. Πηγή: https://developers.novusconceptus.com/el/changelog/