Περιεχόμενο  Εισαγωγή 
Με τη χρήση του API δίνεται η δυνατότητα σε ERP εφαρμογές να χρησιμοποιούν τις Υπηρεσίες Παροχής Ηλεκτρονικής έκδοσης στοιχείων της ΤΕΣΑΕ και να αυθεντικοποιούν τα παραστατικά τους.
Μπορείτε να κατεβάσετε το Postman collection με όλα τα end-points του service από εδώ.
Επιπλέον εδώ θα βρείτε το collection με παραδείγματα χρήσης των end-points
Live περιβάλλον Live API URL: https://e-invoicing-user-api.pegcloud.io Για κάθε Πελάτη/Χρήστη της υπηρεσίας απαραίτητη προϋπόθεση είναι η σύναψη της σχετικής Σύμβασης και η αγορά πακέτου μονάδων Ηλεκτρονικής Τιμολόγησης. Για να ενεργοποιηθεί η πρόσβαση στην υπηρεσία e-invoicing.pegcloud.io (σύναψη σύμβασης, αρχικές ρυθμίσεις κ.α.), ακολουθήστε τα βήματα της μελέτης [e-invoicing.pegcloud.io: Έναρξη σύμβασης / Αρχικές Ρυθμίσεις].
Dev περιβάλλον Development API URL: https://e-invoicing-api-dev.pegcloud.io Με το Development API προσφέρεται ένα δοκιμαστικό περιβάλλον χωρίς να γίνεται ενημέρωση του myDATA. Επικοινωνήστε με το Τεχνικό Τμήμα της ΤΕΣΑΕ για να σας δοθεί πρόσβαση στο δοκιμαστικό περιβάλλον. Σημείωση: Τα παραδείγματα των request που έχουν δημιουργηθεί για τα endpoint χρησιμοποιούν το Development API.
Οδηγίες Bearer Token - Ταυτοποίηση Χρήστη Η ταυτοποίηση του Εγγεγραμμένου Χρήστη για τις κλήσεις του API γίνεται με μέσω του Bearer token (ή access token), το οποίο πρέπει να συμπεριλαμβάνεται στο Authorization header των request. Ως χρήστης του API για να παράξετε το Bearer Token ακολουθείτε μια σειρά από βήματα που διασφαλίζουν την εγκυρότητα του χρήστη που εκτελεί την επικοινωνία με τον Πάροχο. Επιπλέον το access token παραμένει ενεργό για περιορισμένο χρονικό διάστημα - σε περίπτωση που απενεργοποιηθεί μπορεί να χρησιμοποιηθεί ξανά αφού πρώτα γίνει ανανέωση. Παρακάτω παρουσιάζεται συνοπτικά η ροή που θα ακολουθήσετε για την δημιουργία και ανανέωση του access token.
Το Bearer Token είναι ένας μοναδικός κωδικός πρόσβασης που χρησιμοποιείται για την εξασφάλιση της ταυτοποίησης και της ασφάλειας των συναλλαγών. Ο κάθε Εγγεγραμμένος Χρήστης είναι αποκλειστικά υπεύθυνος για την ασφάλεια των Bearer Tokens και την πρόσβαση σε αυτά. Σε περίπτωση απώλειας ή υποψίας διαρροής, ο Εγγεγραμμένος Χρήστης οφείλει να ενημερώσει ΑΜΕΣΑ την ΤΕΣΑΕ. Η ΤΕΣΑΕ διασφαλίζει ότι δεν αποκαλύπτει ή δημοσιοποιεί με κανέναν τρόπο προσωπικά δεδομένα και πληροφορίες των λογαριασμών των Εγγεγραμμένων Χρηστών.
a.Δημιουργία access token
- Αρχικά καλείτε το endpoint για τη δημιουργία προσωρινού κωδικού - Παραγωγή προσωρινού κωδικού (init_code)
- Στην απάντηση που θα λάβετε περιέχεται ο προσωρινός κωδικός μαζί με ένα url επαλήθευσης. Κάνοντας login στο url επαλήθευσης, με τα στοιχεία σύνδεσης στην υπηρεσία του e-invoicing, ενεργοποιείται ο προσωρινός κωδικός.
- Τέλος καλείτε το endpoint για τη δημιουργία των access και refresh tokens - Παραγωγή access και refresh token (API Token) χρησιμοποιώντας τον ενεργοποιημένο προσωρινό κωδικό.
b.Ανανέωση access token
- Καλείτε το endpoint για ανανέωση του token - Ανανέωση API Token χρησιμοποιώντας το refresh token που λήφθηκε μαζί με το access token.
Διαχείριση Tokens μέσω του User Interface Μέσω του user interface της πλατφόρμας του παρόχου (e-invoicing.pegcloud.io) μπορείτε να διαχειριστείτε τα tokens που έχουν δημιουργηθεί για το λογαριασμό σας - διασφαλίζοντας έτσι την ευελιξία και τον έλεγχο της πρόσβασης στην υπηρεσία. Αφού συνδεθείτε στην πλατφόρμα, με τα προσωπικά σας στοιχεία, μεταβαίνετε στο μενού [Λογαριασμός > API Tokens]. Από εδώ μπορείτε να δημιουργήσετε νέα token ή να διαγράψετε ήδη υπάρχουσες εγγραφές.
Παρακάτω, δίνονται λεπτομέρειες για τα endpoints του API.
Παραγωγή προσωρινού κωδικού (init_code) 
- URL: "https://e-invoicing-user-api.pegcloud.io/initiate-authorization/"
Το initiate-authorization είναι το πρώτο βήμα στη διαδικασία ταυτοποίησης του Εγγεγραμμένου Χρήστη για τη χρήση του API. Όταν καλείται αυτό το endpoint, δημιουργείται ένας προσωρινός κωδικός (init_code), ο οποίος χρησιμοποιείται για την έναρξη της διαδικασίας επαλήθευσης. Μαζί με τον init_code, επιστρέφεται και ένα URL, όπου ο χρήστης πρέπει να μεταβεί για να ολοκληρώσει την επαλήθευση της ταυτότητάς του.
Κατά την κλήση του initiate-authorization, ο χρήστης μπορεί να ορίσει ένα API Token name, το οποίο θα εμφανίζεται στην λίστα των API Tokens στο user interface, βοηθώντας στην εύκολη αναγνώριση και διαχείριση του token. Επιπλέον, μπορεί να παρέχεται και ένα redirect URL, στο οποίο ο χρήστης θα ανακατευθύνεται αυτόματα σε περίπτωση επιτυχούς επαλήθευσης από το URL της διαδικασίας. Αυτή η λειτουργία διευκολύνει την εμπειρία του χρήστη και εξασφαλίζει μια ομαλή ροή εργασιών.
Αυτή η διαδικασία εξασφαλίζει ότι μόνο εξουσιοδοτημένοι χρήστες μπορούν να αποκτήσουν πρόσβαση στο API, διασφαλίζοντας την ακεραιότητα και την ασφάλεια των συναλλαγών.
-
Παραγωγή access και refresh token (API Token) 
- URL: "https://e-invoicing-user-api.pegcloud.io/get-token/"
Η Παραγωγή access και refresh token (API Token) είναι η διαδικασία μέσω της οποίας ο χρήστης λαμβάνει τα tokens που απαιτούνται για την πρόσβαση στο API. Για να πραγματοποιηθεί αυτή η διαδικασία, ο χρήστης καλεί το endpoint και στο πεδίο init_code, ο χρήστης πρέπει να εισάγει τον προσωρινό κωδικό που λάβει από το initiate-authorization. Εάν ο init_code είναι έγκυρος και έχει επαληθευτεί, το API επιστρέφει ένα JSON αντικείμενο που περιλαμβάνει τα access token και refresh token. Το access token χρησιμοποιείται για την ταυτοποίηση του χρήστη σε όλες τις επόμενες κλήσεις του API, ενώ το refresh token χρησιμεύει για την ανανέωση του access token όταν αυτό λήξει
-
- Method: POST

Ανανέωση API Token (refresh-token) 
- URL: "https://e-invoicing-user-api.pegcloud.io/refresh-token/"
Η Ανανέωση API Token είναι μια διαδικασία που επιτρέπει στον χρήστη να ανανεώσει το access token του όταν αυτό λήξει. Για να πραγματοποιηθεί αυτή η λειτουργία, ο χρήστης καλεί το endpoint, περνώντας το refresh token ως όρισμα. Εάν το refresh token είναι έγκυρο, το API επιστρέφει ένα νέο access token.
-
- Method: POST

Αποστολή/Παραλαβή Παραστατικού (invoice-data) 
- URL: "https://e-invoicing-user-api.pegcloud.io/invoice-data/"
-
- Method: GET
 REQUEST Mπορεί να κληθεί με pnr01 και auth_code. Αν είναι συμπληρωμένο το auth_code, τότε η αναζήτηση γίνεται με αυτό. Σημείωση: Για τον τρόπο που δομείτε την τιμή για το pnr01 δείτε παρακάτω στο POST.
GET /invoice-data /HTTP/1.1
Authorization: Bearer {{token}}
{
"auth_code": "String(100): Συμβολοσειρά Αυθεντικοποίησης",
"prn01": "String(100): External UID",
"sn": "String(20): Serial Number Τερματικού",
"app_code": "String(20): App Code"
}RESPONSE/ HTTP response code: 200 Πιθανές απαντήσεις:
| data.einv03.ok |
data.einv03.error_level |
data.einv03.error_code |
data.einv03.error_message |
data.einv03.mydata_response_xml |
|
1
|
Κενό |
Κενό |
Κενό |
XML Απάντησης Επιτυχίας Mydata |
Αν το παραστατικό που γίνεται get δεν έχει κάποιο λάθος |
0
|
mydata_sync |
mydata_sync_003 |
Η αποστολή στο myDATA απέτυχε (XML Validation) |
|
|
0
|
mydata_sync |
mydata_sync_004 |
Βρέθηκαν σφάλματα από το myDATA |
XML Απάντησης Σφαλμάτων Mydata |
|
0
|
mydata_sync |
mydata_sync_005 |
Έχει εκδοθεί Συμβολοσειρά Αυθεντικοποίησης από τον πάροχο λόγω αδυναμίας επικοινωνίας με το myDATA. Θα γίνει εκ νέου προσπάθεια διαβίβασης σε δεύτερο χρόνο. |
XML Απάντησης e-invoicing λόγω αδυναμίας επικοινωνίας με το Mydata |
Αν υπάρχει προσωρινό πρόβλημα επικοινωνίας του παρόχου με την υπηρεσία myDATA (το service myDATA δεν λειτουργεί για τεχνικούς λόγους). Σε αυτήν την περίπτωση εκδίδεται προσωρινό data.authcode και το data.transmissionFailure ορίζεται 2. To response από το service, θα γυρίσει "ok"= 1 αλλά "einv03.ok" = 0 και "einv03.error_code=mydata_sync_005". Θα πρέπει να καλέσετε σε δεύτερο χρόνο την μέθοδο GET invoice-data, με τη χρήση του pnr01 ώστε να λάβετε τα στοιχεία του παραστατικού, όπως αυτά ενημερώθηκαν στον πάροχο όταν αποκαταστάθηκε η επικοινωνία του παρόχου με το myDATA. |
| 0 |
mydata_sync |
mydata_sync_007 |
Δεν πραγματοποιήθηκε αποστολή για αυτό το παραστατικό επειδή είναι σε αναμονή για να αποσταλεί πρώτα παραστατικό συνδεμένο με αυτό (που δεν έχει αποσταλεί ακόμα). |
|
|
Σε περίπτωση που θέλετε να δημιουργήσετε το σχετικό QR code(για ενσωμάτωσή του στην εκτύπωση παραστατικού), θα χρησιμοποιήσετε το σύνδεσμο: e-invoicing.pegcloud.io/pegasus/einv02/search_invoice01.php?auth_code= {authcode}, όπου {authcode} η τιμή του στοιχείου authcode. Προσοχη: δεν θα προσθέσετε πρωτόκολλo https:// ή http:// μπροστά, και θα πρέπει να ελέγξετε ότι διαβάζεται σωστά από το appodixi app της ΑΑΔΕ.
{
"ok": "Number(1)",
"code": "Number(3)",
"data": {
"id": "Number(15): Μ.Κ.",
"uid": "String(50): Μοναδικός Αριθμός (ΜΑΡΚ)",
"mark": "String(50)",
"authcode": "String(100): Συμβολοσειρά Αυθεντικοποίησης",
"transmissionFailure": "Number(1): Αδυναμία Επικοινωνίας Παρόχου",
"entuid": "String(50): Κωδ.Χαρακτηρισμού",
"dmark": "String(50): ΜΑΡΚ Διαγραφής",
"is_vatNumber": "String(20): ΑΦΜ Εκδότη",
"is_country": "String(3): Χώρας Εκδότη",
"is_branch": "Number(5) Αρ.Εγκατάστασης Εκδότη",
"is_name": "String(60): Επωνυμία Εκδότη",
"is_address": "String(100): Διεύθυνση Εκδότη",
"is_address_num": "String(5): Αριθμός Διεύθυνσης",
"is_city": "String(100): Πόλη Εκδότη",
"is_zip": "String(20): ΤΚ Εκδότη",
"cp_vatNumber": "String(20): ΑΦΜ Λήπτη",
"cp_country": "String(3) Χώρα Λήπτη",
"cp_branch": "Number(5) Αρ.Εγκατάστασης Λήπτη",
"cp_name": "String(60): Επωνυμία Λήπτη",
"cp_address": "String(100): Διεύθυνση Λήπτη",
"cp_address_num": "String(5): Αριθμός Διεύθυνση",
"cp_city": "String(100): Πόλη Λήπτη",
"cp_zip": "String(20: ΤΚ Λήπτη)",
"series": "String(20): Σειρά Παρ/κού",
"aa": "String(20): Αρ.Παρ/κού",
"issueDate": "Date(10): Ημερομηνία Έκδοσης (YYYY-mm-dd)",
"issueTime": "String(8): Ώρα Έκδοσης (hh:mm:ss)",
"invoiceType": "String(20): Κατηγορία Παραστατικού",
"fuelInvoice": "Number(1): Παραστατικό καυσίμων (ένδειξη)",
"vatPaymentSuspension": "Number(1): Αναστολή Καταβολής ΦΠΑ",
"currency": "String(5): Κωδικός Νομίσματος",
"exchangeRate": "Number(13,5): Ισοτιμία",
"correlatedInvoices": "String(350): Συσχετιζόμενα Παρ/κά (marks)",
"selfPricing": "Number(1): Αυτοτιμολόγηση",
"dispatchDate": "Date(10): Ημερομηνία Εναρξη Αποστολής (YYYY-mm-dd)",
"dispatchTime": "String(8): Ωρα Εναρξης (hh:mm:ss)",
"vehicleNumber": "String(10): Αρ.Οχήματος",
"movePurpose": "String(20): Σκοπός Διακίνησης",
"totalNetValue": "Number(13,5): Σύνολο Καθαρής Αξίας",
"totalVatAmount": "Number(13,5): Σύνολο ΦΠΑ",
"totalWithheldAmount": "Number(13,5): Σύνολο Παρ.Φόρων",
"totalFeesAmount": "Number(13,5): Σύνολο Τελών",
"totalStampDutyAmount": "Number(13,5): Σύνολο Χαρτοσήμου",
"totalOtherTaxesAmount": "Number(13,5): Σύνολο Λοιπών Φόρων",
"totalDeductionsAmount": "Number(13,5): Σύνολο Κρατήσεων",
"totalGrossValue": "Number(13,5): Συνολική Aξία",
"p00": "Number(1): Έσοδο/Έξοδο",
"pnr01": "String(100): External UID",
"specialInvoiceCategory": "String(5): Ειδική Κατηγορία Παραστατικού.",
"tableAA": "String(50): AA Tραπεζιού.",
"multipleConnectedMarks": "String(350): Συνδεδεμένα Παρ/κά (marks)."
"cancellationMark": "String(50): ΜΑΡΚ Ακύρωσης - Εμφανίζεται σε περίπτωση ακύρωσης Δελτίου Αποστολής.",
"einv02": [
{
"id": "Number(15): Μ.Κ.",
"lineNumber": "Number(10): ΑΑ Γραμμής",
"rectype": "Number(1): Τύπος γραμμής",
"quantity": "Number(10,5): Ποσότητα",
"fuelCode": "Number(5): Κωδικός Καυσίμου",
"measurementUnit": "String(20): Μονάδα Μέτρησης",
"invoiceDetailType": "String(20): Επισήμανση",
"netValue": "Number(15,5): Καθαρή Αξία",
"vatCategory": "String(20): Κατηγορια ΦΠΑ",
"vatExemptionCategory": "String(20): Κατηγορια Εξαίρεσης ΦΠΑ",
"applicationId": "String(50): Αρ.Δήλωσης",
"applicationDate": "Date(10): Ημ/νία Δήλωσης (YYYY-mm-dd)",
"doy": "String(45): ΔΟΥ Δήλωσης",
"shipId": "String(100): Στοιχεία Πλοίου",
"discountOption": "Number(1): Δικαίωμα Έκπτωσης",
"withheldAmount": "Number(13,5): Ποσό Παρακράτησης Φόρου",
"withheldPercentCategory": "String(20):Κατηγορία Παρακρ.Φόρου",
"stampDutyAmount": "Number(13,5): Αξία Χαρτοσήμου",
"stampDutyPercentCategory": "String(20): Κατηγορία Συντελεστή Χαρτοσήμου",
"feesAmount": "Number(13,5): Ποσό Τελών",
"feesPercentCategory": "String(20): Κατηγορία Συντελεστή Τελών",
"otherTaxesPercentCategory": "String(20): Κατηγορια Λοιπών Φόρων",
"otherTaxesAmount": "Number(13,5): Ποσό Λοιπών Φόρων",
"vatAmount": "Number(13,5): Σύνολο ΦΠΑ",
"deductionsAmount": "Number(13,5): Σύνολο Κρατήσεων",
"mydt10_p00": "Number(1): Έσοδο/Έξοδο (1/2)",
"classificationType": "String(20): Κωδικός Χαρακτηρισμού",
"classificationCategory": "String(20): Κατηγορία Χαρακτηρισμού",
"vclassificationType": "String(20): Κωδικός Χαρακτηρισμού",
"class_amount": "Number(13,5): Σύνολο Καθαρής Αξίας",
"lineComments": "String(350): Σχόλια",
"taxtype": "String(10): Είδος Φόρου",
"taxcat": "String(10): Κατηγορία Φόρου",
"taxamount": "Number(13,5): Ποσό Φόρου",
"taxunder": "Number(13,5): Υποκείμενη Αξία",
"p105": "Number(10,2): Ποσότητα Pegasus. Χρησιμοποιείται στην προβολή του παραστατικού.",
"p106": "String: Περιγραφή Pegasus. Χρησιμοποιείται στην προβολή του παραστατικού."
"notVAT195": "Number(1): Ένδειξη μη συμμετοχής στο ΦΠΑ (έσοδα – εκροές)."
}
],
"payments": [
{
"id": "Number(15): Μ.Κ.",
"type": "String(5): Τύπος Πληρωμής",
"amount": "Number(13,2): Ποσό Πληρωμής",
"p_info": "String(150): Πληροφορίες",
"amount_t": "Number(13,2): Ποσό Φιλοδωρήματος (για πληρωμές type 7 POS/ePOS)",
"p_sign": "String(150): Υπογραφή Πληρωμής Παρόχου (για πληρωμές type 7 POS/ePOS)",
"tid": "String(50): Μοναδική Ταυτότητα Πληρωμής (για πληρωμές type 7 POS/ePOS)",
"tidnsp": "String(20): Ταυτότητα Μέσου Πληρωμών (για πληρωμές type 7 POS/ePOS)"
},
],
"einv03" : {
"ok": "Number(1): Status εκτέλεσης: Τιμές: 1 για επιτυχής αποστολή στην υπηρεσία του Mydata / 0 για περίπτωση αδυναμίας αποστολής στην υπηρεσία του Mydata.",
"error_level" : "String(100): Διαβάθμιση Λάθους (mydata_sync ή κενό)",
"error_code" : "String(100): Κωδικός Λάθους (mydata_sync_005 ή κενό)",
"error_message" : "String(250): Μήνυμα Λάθους ",
"mydata_response_xml" : "String: XML Απάντησης Mydata"
}
}
}
- *Κατεβάστε το JSON για τοPostman
RESPONSE/ HTTP response code: 400 Πρόβλημα στην εύρεση και παρουσίαση του παραστατικού.
{
"ok" : "0",
"code" : "String: The Error Code",
"error" : {
"title" : "String: Error's Title",
"message" : "String: Error's Message"
}
}
RESPONSE/ HTTP response code: 401 To bearer token που έχετε ορίσει στο header δεν είναι σωστό
{
"ok" : 0,
"code" : 401,
"error" : {
"title" : "Unauthorized"
}
}
- Method: POST
 REQUEST POST /invoice-data /HTTP/1.1
Authorization: Bearer {{token}}
Content-Type: application/json
{
"transmission_failure": "Νumeric(1,1): Αδυναμία Επικοινωνίας Παρόχου (0: χωρίς αδυναμία επικοινωνίας, 1: με αδυναμία επικοινωνίας, default: 0)",
"is_vat": "String(20): ΑΦΜ Εκδότη",
"is_country": "String(3): Χώρα Εκδότη",
"is_branch": "Νumeric(5): Αρ.Εγκατάστασης Εκδότη",
"is_name": "String(60): Επωνυμία Εκδότη",
"is_address": "String(100): Διεύθυνση Εκδότη",
"is_address_num": "String(5): Αριθμός Διεύθυνσης Εκδότη",
"is_city": "String(100): Πόλη Εκδότη",
"is_zip": "String(20): ΤΚ Εκδότη",
"cp_vat": "String(20): ΑΦΜ Λήπτη",
"cp_country": "String(3): Χώρα Λήπτη",
"cp_branch": "Νumeric(5): Αρ. Εγκατάστασης Λήπτη",
"cp_name": "String(60): Επωνυμία Λήπτη",
"cp_address": "String(100): Διεύθυνση Λήπτη",
"cp_city": "String(100): Πόλη Λήπτη",
"cp_zip": "String(20): ΤΚ Λήπτη",
"cp_address_num": "String(5): Αριθμός Διεύθυνσης Λήπτη",
"series": "String(20): Σειρά Παραστατικού",
"aa": "String(20): Αρ. Παραστατικού",
"issuedate": "Date(10): Ημερομηνία Έκδοσης",
"issuetime": "String(8): Ώρα Έκδοσης",
"invtype": "String(20): Κατηγορία Παραστατικού",
"vatpaysusp": "Boolean(1): Αναστολή Καταβολής ΦΠΑ",
"currency": "String(5): Κωδικός Νομίσματος",
"exchrate": "Νumeric(13,5): Ισοτιμία",
"correlinv": "String(350): Συσχετιζόμενα Παραστατικά (marks)",
"slfpricing": "Boolean(1): Αυτοτιμολόγηση",
"dispdate": "Date(10): Ημερομηνία Έναρξης Αποστολής",
"disptime": "String(8): Ώρα Έναρξης",
"vehiclenum": "String(10): Αρ.Οχήματος",
"mvpurpose": "String(20): Σκοπός Διακίνησης",
"fuelinvoice": "Boolean(1): Παραστατικό καυσίμων",
"tnetvalue": "Νumeric(13,5): Σύνολο Καθαρής Αξίας",
"tvat_am": "Νumeric(13,5): Σύνολο ΦΠΑ",
"twthhld_am": "Νumeric(13,5): Σύνολο Παρακρατούμενων Φόρων",
"tfees_am": "Νumeric(15,5): Σύνολο Τελών",
"tstamp_am": "Νumeric(13,5): Σύνολο Χαρτοσήμου",
"ttax_am": "Νumeric(13,5): Σύνολο Λοιπών Φόρων",
"tdeduction": "Νumeric(13,5): Σύνολο Κρατήσεων",
"tgross_val": "Νumeric(13,5): Συνολική Aξία",
"p00": "Νumeric(1): Έσοδο/Έξοδο",
"sn": "String(20): Serial Number Τερματικού",
"app_code": "String(20): App Code",
"pnr01*": "String(100): External UID",
"einv02": [
{
"mydt10": "Νumeric(14): Μ.Κ. Παραστατικού",
"mydt57_p00": "String(20): Χαρακτηρισμός Εσόδου",
"mydt58_p00": "String(20): Χαρακτηρισμός Εξόδου",
"mydt61_p00": "String(20): Χαρακτηρισμός Ε3 Εσοδου",
"mydt62_p00": "String(20): Χαρακτηρισμός Ε3 Εξόδου",
"mydt62_p01": "String(20): Χαρακτηρισμός Ε3 ΦΠΑ Εξόδου",
"linenumber": "Νumeric(10): ΑΑ Γραμμής",
"rectype": "Νumeric(1): Τύπος γραμμής",
"p104": "Νumeric(1): Έσοδο/Έξοδο (1/2)",
"quantity": "Νumeric(10,5): Ποσότητα",
"fuelcode": "Νumeric(5): Κωδικός Καυσίμου",
"munit": "String(20): Μονάδα Μέτρησης",
"invdtype": "String(20): Επισήμανση mydt60",
"netvalue": "Νumeric(10,5): Καθαρή Αξία",
"vatcat": "String(20): Κατηγορια ΦΠΑ mydt51",
"vatexcat": "String(20): Κατηγορια Εξαίρεσης ΦΠΑ mydt52",
"fpavalue": "Νumeric(10,5): Αξία ΦΠΑ",
"appid": "String(50): Αρ.Δήλωσης",
"appdate": "Date(10): Ημ/νία Δήλωσης (YYYY-mm-dd)",
"doy": "String(45): ΔΟΥ Δήλωσης",
"shipid": "String(100): Στοιχεία Πλοίου",
"discoption": "Νumeric(1): Δικαίωμα Έκπτωσης",
"wthhldpcat": "String(20): Κατηγορία Παρακρ.Φόρου mydt53",
"wthhld_am": "Νumeric(13,5): Ποσό Παρακράτησης Φόρου",
"stampvalue": "Νumeric(13,5): Αξία Χαρτοσήμου",
"stamppcat": "String(20): Κατηγορία Συντελεστή Χαρτοσήμου mydt55",
"feestype": "String(20): Κατηγορία Συντελεστή Τελών mydt56",
"fees_am": "Νumeric(13,5): Ποσό Τελών",
"otaxpcat": "String(20): Κατηγορια Λοιπών Φόρων mydt54",
"otax_am": "Νumeric(13,5): Ποσό Λοιπών Φόρων",
"deducvalue": "Νumeric(13,5): Αξία Κρατήσεων",
"comments": "String(350): Σχόλια",
"taxcat": "String(10): Κατηγορία Φόρου",
"taxtype": "String(10): Είδος Φόρου",
"taxamount": "Νumeric(13,2): Ποσό Φόρου",
"taxunder": "Νumeric(13,2): Υποκείμενη Αξία",
"p105": "Νumeric(10,2): Ποσότητα Pegasus. Χρησιμοποιείται στην προβολή του παραστατικού.",
"p106": "Memo: Περιγραφή Pegasus. Χρησιμοποιείται στην προβολή του παραστατικού.",
"taric": "String(10): Κωδικός Taric",
"itemcode": "String(50): Κωδικός Είδους",
"omunit": "Νumeric(10): Πλήθος Μονάδας Μέτρησης Τεμάχια Άλλα",
"omuntl": "String(150): Τίτλος Μονάδας Μέτρησης Τεμάχια Άλλα",
"itemdescr": "String(350): Περιγραφή Είδους",
"novat195": "Νumeric(1): Ένδειξη μη συμμετοχής στο ΦΠΑ (έσοδα – εκροές).",
"ubltaxcat": "String(20): Κατηγορία Φόρου / Κράτησης (BT-95,BT-102)",
"ublvatcat": "String(20): Κατηγορία ΦΠΑ (BT-152)",
"ublprice": "Νumeric(16,8): Τιμή Μονάδος (BT-146)",
"ubldisc": "Νumeric(16,8): Ποσό έκπτωσης (BT-147)",
"ublvatexre": "String(255): Λεκτικό Εξαίρεσης ΦΠΑ (BT-120)",
"cpvcode": "String(100): CPV code (BT-158)",
"ublmunit": "String(5): Μονάδα μέτρησης (BT-150)"
},
{ ... }
],
"einv00": {
"p01": "Νumeric(1): Αποστολή παραστατικού (0: Στο mail που θα γυρίσει το myDATA, 1: Στο mail που θα γυρίσει το myDATA και στο p010, default: 0).",
"p02": "Νumeric(1): Όρισμός γλώσσας αποστολής παραστατικού με e-mail (Όρισμός γλώσσας αποστολής παραστατικού με e-mail (0:el, 1: en, default: el)",
"p010": "String(50): e-mail αποστολής παραστατικού",
"phone": "String(12): Τηλέφωνο SMS"
},
"lang": "String(3): Γλώσσα Διαχειριστικού",
"paytype": "String(20): Τρόπος Πληρωμής",
"payments": [
{
"type": "String(5): Τύπος Πληρωμής",
"amount": "Νumeric(13,2): Ποσό Πληρωμής",
"amount_t": "Νumeric(13,2): Ποσό Φιλοδωρήματος (για πληρωμές type 7 POS/ePOS)",
"p_sign": "String(150): Υπογραφή Πληρωμής Παρόχου (για πληρωμές type 7 POS/ePOS)",
"tid": "String(50): Μοναδική Ταυτότητα Πληρωμής όπως αυτή δόθηκε από το POS (για πληρωμές type 7 POS/ePOS)",
"tidnsp": "String(20): Ταυτότητα Μέσου Πληρωμών (για πληρωμές type 7 POS/ePOS)",
"p_info": "String(150): Πληροφορίες"
},
{ ... }
],
"einv09": [
{
"mydt10": "Νumeric(14): Μ.Κ. Παραστατικού",
"type": "String(10): Τύπος (sender / receiver / mydata)",
"vat": "String(20): ΑΦΜ",
"country": "String(3): Χώρα",
"branch": "Νumeric(5): Αρ.Εγκατάστασης",
"name": "String(60): Επωνυμία",
"address": "String(100): Διεύθυνση",
"city": "String(100): Πόλη",
"zip": "String(20): Τ.Κ",
"p00": "String(6): Τύπος Οντότητας (1 - Φορολογικός Εκπρόσωπος, 2 - Διαμεσολαβητής 3 - Μεταφορέας, 4 - Λήπτης του Αποστολέα (Πωλητή), 5 - Αποστολέας (Πωλητής), 6 - Λοιπές Συσχετιζόμενες Οντότητες)"
},
{ ... }
],
"p_notes": "Memo: Σημειώσεις",
"spinvcat": "String(5): Ειδική Κατηγορία Παραστατικού",
"tableaa": "String(50): AA Tραπεζιού",
"ldstreet": "String(100): Διεύθυνση Φόρτωσης / Οδός",
"ldnumber": "String(10): Διεύθυνση Φόρτωσης / Αριθμός",
"ldzip": "String(20): Διεύθυνση Φόρτωσης / TK",
"ldcity": "String(100): Διεύθυνση Φόρτωσης / Πόλη",
"dlvstreet": "String(100): Διεύθυνση Παράδοσης / Οδός",
"dlvnumber": "String(10): Διεύθυνση Παράδοσης / Αριθμός",
"dlvzip": "String(20): Διεύθυνση Παράδοσης / TK",
"dlvcity": "String(100): Διεύθυνση Παράδοσης / Πόλη",
"ss_branch": "Νumeric(5): Εγκατάσταση έναρξης διακίνησης (Εκδότη)",
"cs_branch": "Νumeric(5): Εγκατάσταση έναρξης διακίνησης (Λήπτη)",
"isdlvno": "Boolean(1): Ένδειξη Παραστατικού Διακίνησης",
"othmvpur": "String(150): Τίτλος της Λοιπής Αιτίας Διακίνησης",
"thcoll": "Boolean(1): Ένδειξη Είσπραξης Τρίτων",
"cp_p600": "String(100): Αρ. Παροχής Ηλ. Ρεύματος Λήπτη",
"cp_p601": "String(100): Αριθμός επίσημου εγγράφου Λήπτη",
"cp_p602": "String(2): Κωδ. Χώρας Έκδοσης Επίσημου Εγγράφου Λήπτη",
"rdn": "Boolean(1): Αντίστροφη Διακίνηση",
"rdnpur": "String(20): Αιτία Έκδοσης Αντίστροφης Διακίνησης (1: ΜΗ ΥΠΟΧΡΕΟΣ ΕΚΔΟΣΗΣ, 2: ΑΡΝΗΣΗ ΕΚΔΟΣΗΣ/ΕΚ ΠΑΡΑΔΡΟΜΗΣ ΜΗ ΕΚΔΟΣΗ, 3: ΕΝΔΟΚΟΙΝΟΤΙΚΗ ΑΠΟΚΤΗΣΗ, 4: ΑΠΟΚΤΗΣΗ ΤΡΙΤΗ ΧΩΡΑ, 5: ΑΝΤΙΣΤΡΟΦΗ ΥΠΟΧΡΕΩΣΗΣ)",
"mconmrk": "String(350): Συνδεδεμένα Παρ/κά (marks) - χωρισμένα με κόμμα.",
"mconauth": "String(350): Συνδεδεμένα Παρ/κά (Authentication Codes) - χωρισμένα με κόμμα.",
"channel": "Boolean(1): Κανάλι/λια αποστολής (0: Απλά πάροχος, 2: B2G)",
"ublinvtype": "Νumeric(3): Τύπος παραστατικού (BT-3) (πιθανές τιμές: 380, 381)",
"ublbuyerid": "String(50): Κωδικός Αναθέτουσας Αρχής (ΒΤ-46)",
"ublcontref": "String(50): Στοιχείο αναφοράς σύμβασης (ΒΤ-12)",
"ublbuyeref": "String(250): Όνομα Αναθέτουσας Αρχής (BT-10)",
"ublprojref": "String(50): Κωδικός Έργου (BT-11)",
"ublpordref": "String(50): Αναφορά Εντολής Αγοράς (BT-13)",
"ublsordref": "String(50): Στοιχείο αναφοράς εντολής πώλησης (BT-14)",
"ublradvref": "String(50): Στοιχείο αναφοράς ενημέρωσης παραλαβής (BT-15)",
"ubldadvref": "String(50): Στοιχείο Αναφοράς Δελτίου Αποστολής (BT-16)",
"ubltendlotref": "String(50): Στοιχείο αναφοράς προσφοράς ή παρτίδας (BT-17)",
"ublbaccref": "String(50): Στοιχείο Λογιστικής Αναφοράς Αγοραστή (BT-19)",
"ublpayterm": "String(350): Όροι πληρωμής (BT-20)",
"ublrelid**": "String(150): Συσχετιζόμενο παραστατικό (ΒΤ-25)",
"ublnotetp": "String(20): Τύπος Σημείωσης (BT-21). Για πιθανές τιμές δείτε https://service.unece.org/trade/untdid/d96b/uncl/uncl4451.htm",
"ublnote": "String(255): Σημείωση (BT-22)",
"to_weigh": "Boolean(1): Προς Ζύγιση"
}* pnr01: Προτείνεται η τιμή που θα συμπληρώσετε είναι ένα string όπου κάνετε concat τα παρακάτω στοιχεία
και ανάμεσά τους υπάρχει το token #:
- is_vat
- issuedate
- is_branch
- invtype
- series
- aa
- cp_vat
για παράδειγμα: 094420307#20230203#0#1.1#ΤΠ-ΔΑ#123#
Προσοχή, το pnr01 δεν πρέπει να ξεκινάει με το πρόθεμα "einvoicing_pegcloud_io"** ublrelid: Αν το πεδίο έχει τιμή τότε δεν λαμβάνεται υπόψη η τιμή του πεδίου "correlinv". Αν δώστε τιμή και στα δυο πεδία τότε και τα δύο θα πρέπει να αναφέρονται στο ίδιο παραστατικό. RESPONSE/ HTTP response code: 200 Πιθανές απαντήσεις:
| data.einv03.ok |
data.einv03.error_level |
data.einv03.error_code |
data.einv03.error_message |
data.einv03.mydata_response_xml |
|
1
|
Κενό |
Κενό |
Κενό |
XML Απάντησης Επιτυχίας Mydata |
Αν η αποστολή του παραστατικού (στην υπηρεσία του MyData) ολοκληρωθεί με επιτυχία |
0
|
mydata_sync |
mydata_sync_005 |
Έχει εκδοθεί Συμβολοσειρά Αυθεντικοποίησης από τον πάροχο λόγω αδυναμίας επικοινωνίας με το myDATA. Θα γίνει εκ νέου προσπάθεια διαβίβασης σε δεύτερο χρόνο. |
XML Απάντησης e-invoicing λόγω αδυναμίας επικοινωνίας με το Mydata |
Αν υπάρχει προσωρινό πρόβλημα επικοινωνίας του παρόχου με την υπηρεσία myDATA (το service myDATA δεν λειτουργεί για τεχνικούς λόγους). Σε αυτήν την περίπτωση εκδίδεται προσωρινό data.authcode και το data.transmissionFailure ορίζεται 2. To response από το service, θα γυρίσει "ok"= 1 αλλά "einv03.ok" = 0 και "einv03.error_code=mydata_sync_005". Θα πρέπει να καλέσετε σε δεύτερο χρόνο την μέθοδο GET invoice-data, με τη χρήση του pnr01 ώστε να λάβετε τα στοιχεία του παραστατικού, όπως αυτά ενημερώθηκαν στον πάροχο όταν αποκαταστάθηκε η επικοινωνία του παρόχου με το myDATA. |
| 0 |
mydata_sync |
mydata_sync_007 |
Δεν πραγματοποιήθηκε αποστολή για αυτό το παραστατικό επειδή είναι σε αναμονή για να αποσταλεί πρώτα παραστατικό συνδεμένο με αυτό (που δεν έχει αποσταλεί ακόμα). |
|
|
Σε περίπτωση που θέλετε να δημιουργήσετε το σχετικό QR code(για ενσωμάτωσή του στην εκτύπωση παραστατικού), θα χρησιμοποιήσετε το σύνδεσμο: https://e-invoicing.pegcloud.io/pegasus/einv02/search_invoice01.php?auth_code= {authcode},όπου {authcode} η τιμή του στοιχείου authcode. Προσοχη: δεν θα προσθέσετε πρωτόκολλo https:// ή http:// μπροστά, και θα πρέπει να ελέγξετε ότι διαβάζεται σωστά από το appodixi app της ΑΑΔΕ.
{
"ok": "Number(1)",
"code": "Number(3)",
"data": {
"id": "Number(15): Μ.Κ.",
"uid": "String(50): Μοναδικός Αριθμός (ΜΑΡΚ)",
"mark": "String(50)",
"authcode": "String(100): Συμβολοσειρά Αυθεντικοποίησης",
"transmissionFailure": "Number(1): Αδυναμία Επικοινωνίας Παρόχου",
"entuid": "String(50): Κωδ.Χαρακτηρισμού",
"dmark": "String(50): ΜΑΡΚ Διαγραφής",
"is_vatNumber": "String(20): ΑΦΜ Εκδότη",
"is_country": "String(3): Χώρας Εκδότη",
"is_branch": "Number(5) Αρ.Εγκατάστασης Εκδότη",
"is_name": "String(60): Επωνυμία Εκδότη",
"is_address": "String(100): Διεύθυνση Εκδότη",
"is_address_num": "String(5): Αριθμός Διεύθυνσης",
"is_city": "String(100): Πόλη Εκδότη",
"is_zip": "String(20): ΤΚ Εκδότη",
"cp_vatNumber": "String(20): ΑΦΜ Λήπτη",
"cp_country": "String(3) Χώρα Λήπτη",
"cp_branch": "Number(5) Αρ.Εγκατάστασης Λήπτη",
"cp_name": "String(60): Επωνυμία Λήπτη",
"cp_address": "String(100): Διεύθυνση Λήπτη",
"cp_address_num": "String(5): Αριθμός Διεύθυνση",
"cp_city": "String(100): Πόλη Λήπτη",
"cp_zip": "String(20: ΤΚ Λήπτη)",
"series": "String(20): Σειρά Παρ/κού",
"aa": "String(20): Αρ.Παρ/κού",
"issueDate": "Date(10): Ημερομηνία Έκδοσης (YYYY-mm-dd)",
"issueTime": "String(8): Ώρα Έκδοσης (hh:mm:ss)",
"invoiceType": "String(20): Κατηγορία Παραστατικού",
"fuelInvoice": "Number(1): Παραστατικό καυσίμων (ένδειξη)",
"vatPaymentSuspension": "Number(1): Αναστολή Καταβολής ΦΠΑ",
"currency": "String(5): Κωδικός Νομίσματος",
"exchangeRate": "Number(13,5): Ισοτιμία",
"correlatedInvoices": "String(350): Συσχετιζόμενα Παρ/κά (marks)",
"selfPricing": "Number(1): Αυτοτιμολόγηση",
"dispatchDate": "Date(10): Ημερομηνία Εναρξη Αποστολής (YYYY-mm-dd)",
"dispatchTime": "String(8): Ωρα Εναρξης (hh:mm:ss)",
"vehicleNumber": "String(10): Αρ.Οχήματος",
"movePurpose": "String(20): Σκοπός Διακίνησης",
"totalNetValue": "Number(13,5): Σύνολο Καθαρής Αξίας",
"totalVatAmount": "Number(13,5): Σύνολο ΦΠΑ",
"totalWithheldAmount": "Number(13,5): Σύνολο Παρ.Φόρων",
"totalFeesAmount": "Number(13,5): Σύνολο Τελών",
"totalStampDutyAmount": "Number(13,5): Σύνολο Χαρτοσήμου",
"totalOtherTaxesAmount": "Number(13,5): Σύνολο Λοιπών Φόρων",
"totalDeductionsAmount": "Number(13,5): Σύνολο Κρατήσεων",
"totalGrossValue": "Number(13,5): Συνολική Aξία",
"p00": "Number(1): Έσοδο/Έξοδο",
"pnr01": "String(100): External UID",
"specialInvoiceCategory": "String(5): Ειδική Κατηγορία Παραστατικού.",
"tableAA": "String(50): AA Tραπεζιού.",
"multipleConnectedMarks": "String(350): Συνδεδεμένα Παρ/κά (marks).",
"ldstreet" : "String(100): Διεύθυνση Φόρτωσης / Οδός",
"ldnumber" : "String(10): Διεύθυνση Φόρτωσης / Αριθμός",
"ldzip" : "String(20): Διεύθυνση Φόρτωσης / TK",
"ldcity" : "String(100): Διεύθυνση Φόρτωσης / Πόλη",
"dlvstreet" : "String(100): Διεύθυνση Παράδοσης / Οδός",
"dlvnumber" : "String(10): Διεύθυνση Παράδοσης / Αριθμός",
"dlvzip" : "String(20): Διεύθυνση Παράδοσης / TK",
"dlvcity" : "String(100): Διεύθυνση Παράδοσης / Πόλη",
"ss_branch" : "Number(5): Εγκατάσταση έναρξης διακίνησης (Εκδότη)",
"cs_branch" : "Number(5): Εγκατάσταση έναρξης διακίνησης (Λήπτη)",
"isdlvno" : "Number(1): Ένδειξη Παραστατικού Διακίνησης",
"othmvpur" : "String(150): Τίτλος της Λοιπής Αιτίας Διακίνησης",
"thcoll" : "Number(1): Ένδειξη Είσπραξης Τρίτων",
"cp_p600" : "String(100): Αρ. Παροχής Ηλ. Ρεύματος Λήπτη",
"cp_p601" : "String(100): Αριθμός επίσημου εγγράφου Λήπτη",
"cp_p602" : "String(2): Κωδ. Χώρας Έκδοσης Επίσημου Εγγράφου Λήπτ",
"channel": "Boolean(1): Κανάλι/λια αποστολής",
"ublinvtype": "Νumeric(3): Τύπος παραστατικού (BT-3)",
"ublbuyerid": "String(50): Κωδικός Αναθέτουσας Αρχής (ΒΤ-46)",
"ublcontref": "String(50): Στοιχείο αναφοράς σύμβασης (ΒΤ-12)",
"ublbuyeref": "String(250): Όνομα Αναθέτουσας Αρχής (BT-10)",
"ublprojref": "String(50): Κωδικός Έργου (BT-11)",
"ublpordref": "String(50): Αναφορά Εντολής Αγοράς (BT-13)",
"ublsordref": "String(50): Στοιχείο αναφοράς εντολής πώλησης (BT-14)",
"ublradvref": "String(50): Στοιχείο αναφοράς ενημέρωσης παραλαβής (BT-15)",
"ubldadvref": "String(50): Στοιχείο Αναφοράς Δελτίου Αποστολής (BT-16)",
"ubltendlotref": "String(50): Στοιχείο αναφοράς προσφοράς ή παρτίδας (BT-17)",
"ublbaccref": "String(50): Στοιχείο Λογιστικής Αναφοράς Αγοραστή (BT-19)",
"ublpayterm": "String(350): Όροι πληρωμής (BT-20)",
"ublrelid": "String(150): Συσχετιζόμενο παραστατικό (ΒΤ-25)",
"ublnotetp": "String(20): Τύπος Σημείωσης (BT-21)",
"ublnote": "String(255): Σημείωση (BT-22)",
"cancellationMark": "String(50): ΜΑΡΚ Ακύρωσης - Εμφανίζεται σε περίπτωση ακύρωσης Δελτίου Αποστολής.",
"toWeigh":"Number(1): Προς Ζύγιση",
"einv02": [
{
"id": "Number(15): Μ.Κ.",
"lineNumber": "Number(10): ΑΑ Γραμμής",
"rectype": "Number(1): Τύπος γραμμής",
"quantity": "Number(10,5): Ποσότητα",
"fuelCode": "Number(5): Κωδικός Καυσίμου",
"measurementUnit": "String(20): Μονάδα Μέτρησης",
"invoiceDetailType": "String(20): Επισήμανση",
"netValue": "Number(15,5): Καθαρή Αξία",
"vatCategory": "String(20): Κατηγορια ΦΠΑ",
"vatExemptionCategory": "String(20): Κατηγορια Εξαίρεσης ΦΠΑ",
"applicationId": "String(50): Αρ.Δήλωσης",
"applicationDate": "Date(10): Ημ/νία Δήλωσης (YYYY-mm-dd)",
"doy": "String(45): ΔΟΥ Δήλωσης",
"shipId": "String(100): Στοιχεία Πλοίου",
"discountOption": "Number(1): Δικαίωμα Έκπτωσης",
"withheldAmount": "Number(13,5): Ποσό Παρακράτησης Φόρου",
"withheldPercentCategory": "String(20):Κατηγορία Παρακρ.Φόρου",
"stampDutyAmount": "Number(13,5): Αξία Χαρτοσήμου",
"stampDutyPercentCategory": "String(20): Κατηγορία Συντελεστή Χαρτοσήμου",
"feesAmount": "Number(13,5): Ποσό Τελών",
"feesPercentCategory": "String(20): Κατηγορία Συντελεστή Τελών",
"otherTaxesPercentCategory": "String(20): Κατηγορια Λοιπών Φόρων",
"otherTaxesAmount": "Number(13,5): Ποσό Λοιπών Φόρων",
"vatAmount": "Number(13,5): Σύνολο ΦΠΑ",
"deductionsAmount": "Number(13,5): Σύνολο Κρατήσεων",
"mydt10_p00": "Number(1): Έσοδο/Έξοδο (1/2)",
"classificationType": "String(20): Κωδικός Χαρακτηρισμού",
"classificationCategory": "String(20): Κατηγορία Χαρακτηρισμού",
"vclassificationType": "String(20): Κωδικός Χαρακτηρισμού",
"class_amount": "Number(13,5): Σύνολο Καθαρής Αξίας",
"lineComments": "String(350): Σχόλια",
"taxtype": "String(10): Είδος Φόρου",
"taxcat": "String(10): Κατηγορία Φόρου",
"taxamount": "Number(13,5): Ποσό Φόρου",
"taxunder": "Number(13,5): Υποκείμενη Αξία",
"p105": "Number(10,2): Ποσότητα Pegasus. Χρησιμοποιείται στην προβολή του παραστατικού.",
"p106": "String: Περιγραφή Pegasus. Χρησιμοποιείται στην προβολή του παραστατικού.",
"TaricNo": "String(10): Κωδικός Taric",
"itemCode": "String(50): Κωδικός Είδους",
"otherMeasurementUnitQuantity": "Number(10) Πλήθος Μονάδας Μέτρησης Τεμάχια Άλλα",
"otherMeasurementUnitTitle": "String(150): Τίτλος Μονάδας Μέτρησης Τεμάχια Άλλα",
"itemdescr": "String(350): Περιγραφή Είδους",
"notVAT195": "Number(1): Ένδειξη μη συμμετοχής στο ΦΠΑ (έσοδα – εκροές).",
"ubltaxcat": "String(20): Κατηγορία Φόρου / Κράτησης (BT-95,BT-102)",
"ublvatcat": "String(20): Κατηγορία ΦΠΑ (BT-152)",
"ublprice": "Νumeric(16,8): Τιμή Μονάδος (BT-146)",
"ubldisc": "Νumeric(16,8): Ποσό έκπτωσης (BT-147)",
"ublvatexre": "String(255): Λεκτικό Εξαίρεσης ΦΠΑ (BT-120)",
"cpvcode": "String(100): CPV code (BT-158)",
"ublmunit": "String(5): Μονάδα μέτρησης (BT-150)"
}
],
"payments": [
{
"id": "Number(15): Μ.Κ.",
"type": "String(5): Τύπος Πληρωμής",
"amount": "Number(13,2): Ποσό Πληρωμής",
"p_info": "String(150): Πληροφορίες",
"amount_t": "Number(13,2): Ποσό Φιλοδωρήματος (για πληρωμές type 7 POS/ePOS)",
"p_sign": "String(150): Υπογραφή Πληρωμής Παρόχου (για πληρωμές type 7 POS/ePOS)",
"tid": "String(50): Μοναδική Ταυτότητα Πληρωμής (για πληρωμές type 7 POS/ePOS)",
"tidnsp": "String(20): Ταυτότητα Μέσου Πληρωμών (για πληρωμές type 7 POS/ePOS)"
}
],
"einv09" : [
{
"mydt10" : "Number(1): Έσοδο/Έξοδο (1/2)",
"type" : "String(10): Τύπος (sender / receiver)",
"vat" : "String(20): ΑΦΜ",
"country" : "String(3): Χώρα",
"branch" : "Number(5): Αρ.Εγκατάστασης",
"name" : "String(60): Επωνυμία",
"address" : "String(100): Διεύθυνση",
"city" : "String(100): Πόλη",
"zip" : "String(20): Τ.Κ."
}
],
"p_notes" : "String: Σημειώσεις",
"einv03" : {
"ok": "Number(1): Status εκτέλεσης: Τιμές: 1 για επιτυχής αποστολή στην υπηρεσία του Mydata / 0 για περίπτωση αδυναμίας αποστολής στην υπηρεσία του Mydata.",
"error_level" : "String(100): Διαβάθμιση Λάθους (mydata_sync ή κενό)",
"error_code" : "String(100): Κωδικός Λάθους (mydata_sync_005 ή κενό)",
"error_message" : "String(250): Μήνυμα Λάθους ",
"mydata_response_xml" : "String: XML Απάντησης Mydata"
},
"request_xml": "String: XML Αποστολής Mydata",
"response_xml": "String: XML Απάντησης Mydata"
}
}
- *Κατεβάστε το JSON για τοPostman
RESPONSE/ HTTP response code: 400 Πρόβλημα στη δημιουργία του παραστατικού.
Το στοιχείο data επιστρέφει μόνο στην περίπτωση των codes mydata_sync_003 και mydata_sync_004.
| Code |
Message |
|
| customer_api_009 |
Η τιμή του πεδίου transmission_failure μπορεί να είναι μόνο 0 ή 1 |
Εμφανίζεται σε περίπτωση που δοθεί μη αποδεκτή τιμή στο input transmission_failure |
| customer_api_014 |
Το ΑΦΜ Εκδότη δεν μπορεί να είναι κενό |
|
| customer_api_001 |
Έχουν λήξει οι υπολειπόμενες κλήσεις σας |
|
| customer_api_002 |
Έχουν καταναλωθεί όλες οι κλήσεις Ηλεκτρονικής τιμολόγησης |
|
| customer_api_006 |
Το παραστατικό έχει ξανασταλεί επιτυχώς |
|
| customer_api_007 |
Δεν μπόρεσε να καταχωρηθεί το παραστατικό |
Γενικό Λάθος |
| customer_api_015 |
Υπάρχει λάθος στις πληρωμές του παραστατικού. |
Γενικό Λάθος |
| customer_api_016 |
Δεν έχει οριστεί το πεδίο Ποσό Πληρωμής (amount) της πληρωμής. |
|
| customer_api_017 |
Το ποσό της πληρωμής πρέπει να είναι θετικός αριθμός μεγαλύτερος του μηδενός. |
|
|
|
Δεν έχει οριστεί ο τύπος πληρωμής (type). |
|
| customer_api_019 |
Ο τύπος πληρωμής δεν ανήκει σε κάποιο από τους γνωστούς τύπους πληρωμής. |
|
| customer_api_020 |
Δεν επιτρέπεται η καταχώρηση πληρωμών (type = 5) επί πιστώσει |
|
| customer_api_021 |
Το ποσό tip πρέπει να είναι θετικός αριθμός μεγαλύτερος ή ίσο του μηδενός. |
|
|
|
Δεν μπορείτε να ορίσετε υπογραφή πληρωμής σε πληρωμή που δεν είναι POS / ePOS (type = 7). |
|
|
|
Δεν έχει οριστεί υπογραφή πληρωμής (p_sign) στην πληρωμή POS / ePOS. |
|
|
|
Έχετε χρησιμοποίηση την υπογραφή πληρωμής πάνω από μια φορές στις πληρωμές του παραστατικού. |
|
| customer_api_025 |
Δεν έχει οριστεί Transaction ID (tid) στην πληρωμή POS / ePOS. |
|
| customer_api_026 |
Η υπογραφή πληρωμής δεν υπάρχει. |
|
|
|
Η υπογραφή ανήκει σε πληρωμή άλλου παραστατικού με Authorization Code.
|
|
|
|
Το σύνολο των πληρωμών υπερβαίνει την συνολική αξία του παραστατικού.
|
|
|
|
Η ημερομηνία έκδοσης της υπογραφής δεν είναι ίδια με αυτή του παραστατικού.
|
|
|
|
Η υπογραφή πληρωμής δεν είναι πλέον διαθέσιμη.
|
|
|
|
O αριθμός εγκατάστασης εκδότη της υπογραφής δεν είναι ίδιος με αυτόν του παραστατικού.
|
|
|
|
Η κατηγορία παραστατικού της υπογραφής είναι διαφορετική από αυτήν του παραστατικού.
|
|
|
|
Η σειρά παραστατικού της υπογραφής είναι διαφορετική από αυτήν του παραστατικού.
|
|
|
|
Ο αριθμός παραστατικού της υπογραφής είναι διαφορετικός από αυτόν του παραστατικού.
|
|
|
|
Το σύνολο καθαρής αξίας παραστατικού της υπογραφής είναι διαφορετικό από αυτό του παραστατικού.
|
|
|
|
Το σύνολο του ΦΠΑ του παραστατικού της υπογραφής είναι διαφορετικό από αυτό του παραστατικού.
|
|
|
|
Η συνολική αξία παραστατικού της υπογραφής είναι διαφορετική από αυτήν του παραστατικού.
|
|
|
|
Δεν είναι δυνατή η δημιουργία UID για αυτό το παραστατικό.
|
|
|
|
Το UID της υπογραφής δεν είναι ίδιο με αυτό που προκύπτει από τα στοιχεία του παραστατικού.
|
|
| customer_api_083 |
Δεν είναι δυνατόν να εκδώσετε το παραστατικό με ΑΦΜ εκδότη ({ΑΦΜ εκδότη}) διαφορετικό από το {ΑΦΜ λογαριασμού} |
|
|
|
Δεν είναι δυνατόν να στειλετε περισσότερους απο εναν Αποστολείς/Παραλήπτες στο Παραστατικό.
|
|
|
|
Επιτρεπεται μόνο η αποστολή τύπου Αποστολεα/Παραλήπτη στο Παραστατικό.
|
|
|
|
Τα δεδομένα των γραμμών του παραστατικού (einv02) δεν είναι έγκυρα.
|
|
|
|
Τα δεδομένα των παραμέτρων πελάτη (einv00) δεν είναι έγκυρα.
|
|
|
|
Τα δεδομένα Αποστολεα/Παραλήπτη στο Παραστατικό (einv09) δεν ειναι έγκυρα.
|
|
|
|
Τα δεδομένα των πληρωμών του παραστατικού (payments) δεν είναι έγκυρα.
|
|
| mydata_sync_003 |
Η αποστολή στο myDATA απέτυχε (XML Validation) |
Πληροφορίες για το error στο στοιχείο data.validation_errors. |
| mydata_sync_004 |
Βρέθηκαν σφάλματα από το myDATA |
Πληροφορίες για το error στο στοιχείο data.errors. Πρόκειται για επιχειρησιακά σφάλματα που επιστρέφουν από το myDATA service π.χ. [Code: 235 - Message: Issuer must be different from counterpart] ή [Access denied due to missing subscription key. Make sure to include subscription key when making requests to an API]. |
customer_api_099
|
Δεν είναι δυνατή η καταχώρηση παραστατικών αν δεν κλείσουν τα δελτία: |
|
{
"ok" : 0,
"code" : "String: The Error Code",
"error" : {
"title" : "String: Error's Title",
"message" : "String: Error's Message"
},
"data": {
"errors": [
{
"code": "Number: MyData error code",
"message": "String: MyData error message"
}
],
"validation_errors": [
"String: Error message"
],
"requestURL": "String: MyData URL",
"request_xml": "String: XML Αποστολής Mydata",
"response_xml": "String: XML Απάντησης Mydata"
}
}
RESPONSE/ HTTP response code: 401 To bearer token που έχετε ορίσει στο header δεν είναι σωστό
{
"ok" : 0,
"code" : 401,
"error" : {
"title" : "Unauthorized"
}
}
Δημιουργία Υπογραφής (create-payment-signature) 
- URL: "https://e-invoicing-user-api.pegcloud.io/create-payment-signature/"
-
- Method: POST
 REQUEST POST /create-payment-signature /HTTP/1.1
Authorization: Bearer {{token}}
{
"pos_protocol*": "String: Πρωτόκολλο POS",
"tidnsp": "String(20): Ταυτότητα Μέσου Πληρωμών (TID)",
"amount": "Νumeric(13,2): Ποσό Πληρωμής",
"mark**": "String(50): Μοναδικός Αριθμός (ΜΑΡΚ)",
"issue_date": "Date: Ημερομηνία Έκδοσης (YYYY-MM-DD)",
"issuer_vat": "String(20): ΑΦΜ Εκδότη",
"issuer_branch": "Νumeric(5): Αρ.Εγκατάστασης Εκδότη",
"invtype": "String(5): Κατηγορία Παραστατικού (π.χ. για ένα Τιμολόγιο Πώλησης, πρέπει να δώσετε τον κωδικό 1.1)",
"series": "String(150): Σειρά Παρ/κού",
"aa": "String(20): Αρ.Παρ/κού (Ο αριθμός παραστατικού είναι υποχρεωτικός μόνο στην περίπτωση που το παραστατικό έχει ήδη καταχωρηθεί)",
"invoice_net_value": "Νumeric(13,2): Σύνολο Καθαρής Αξίας",
"invoice_vat_value": "Νumeric(13,2): Σύνολο ΦΠΑ",
"invoice_total_value": "Νumeric(13,2): Συνολική Αξία"
}* pos_protocol: Τα πρωτόκολλα αναλυτικά, βρίσκονται στο επίσημο site της ΑΑΔΕ εδώ.
Πιθανές Τιμές pos_protocol:
0 : Mellon (EFTPOS-WebECR 2.5 7)
1 : EDPS (Json Protocol)
2 : Viva (Οnline Cloud API)
3 : Cardlink (ecr2eftdll.6.3.0)
4 : Euronet (EFTPOS-WebECR 2.5 7)
5 : Neosoft (NEOSOFT WEB/CPR)
6 : INSS(INSS Cloud 1.0.3) ** mark: Ο Μοναδικός Αριθμός (Μ.Αρ.Κ.), συμπληρώνεται μόνο στην περίπτωση που το παραστατικό έχει ήδη καταχωρηθεί. Προσοχή, το παραστατικό αυτό, πρέπει να έχει καταχωρηθεί στο e-invoicing.pegcloud.io. Αν είχε π.χ. καταχωρηθεί παλαιότερα με άλλον πάροχο ή απευθείας με myDATA, δεν μπορείτε να εκδώσετε Υποργαφή Πληρωμής, Αν υπάρξει τέτοια περίπτωση, θα πρέπει να εκδώσετε συσχετισμένη Απόδειξη Είσπραξης (8.4).
Αν το παραστατικό αυτό είναι υπό έκδοση, τότε στο ΜΑΡΚ, θα πρέπει να δώσετε 0. RESPONSE/ HTTP response code: 200 {
"ok": "Number(1)",
"code": "Number(3)",
"data": {
"p_sign": "Υπογραφή Πληρωμής Παρόχου σε base64 μορφή",
"p_sign_hex": "Υπογραφή Πληρωμής Παρόχου σε hex μορφή",
"p_sign_string": "Μήνυμα Υπογραφής. Πρόκειται για το αρχικό string που θα κρυπτογραφηθεί για να παραχθεί η υπογραφή. Η μορφή μπορεί να διαφέρει ανά NSP πρωτόκολλο."
}
}
- *Κατεβάστε το JSON για τοPostman
RESPONSE/ HTTP response code: 400 Πρόβλημα στη δημιουργία της υπογραφής πληρωμής.
| Code |
Message |
|
create_payment_signature_001
|
Υπάρχει σφάλμα στα δεδομένα εισαγωγής για την δημιουργία υπογραφής.
|
|
create_payment_signature_002
|
Δεν έχει οριστεί το πεδίο ημερομηνία έκδοσης (issue_date).
|
|
create_payment_signature_003
|
Δεν έχει οριστεί το πεδίο Τύπος Παραστατικού (invtype).
|
|
create_payment_signature_004
|
Η Κατηγορία Παραστατικού (invtype) που έχει οριστεί δεν αντιστοιχεί σε κάποια γνωστή Κατηγορία Παραστατικού.
|
|
create_payment_signature_005
|
Δεν έχει οριστεί το πεδίο ΑΦΜ Εκδότη (issuer_vat).
|
|
create_payment_signature_006
|
Το ΑΦΜ Εκδότη (issuer_vat) που έχει οριστεί είναι διαφορετικό από αυτό που έχετε καταχωρήσει στον λογαριασμό σας.
|
|
create_payment_signature_007
|
Δεν έχει οριστεί το πεδίο Αριθμός Εγκατάστασης Εκδότη (issuer_branch).
|
|
create_payment_signature_008
|
Δεν έχει οριστεί το πεδίο Σειρά Παραστατικού (series).
|
|
create_payment_signature_009
|
Δεν έχει οριστεί το πεδίο Αριθμός Παραστατικού (aa).
|
|
create_payment_signature_010
|
Δεν έχει οριστεί το πεδίο Πληρωτέο Ποσό (amount).
|
|
create_payment_signature_011
|
Το πεδίο πληρωτέο ποσό (amount) πρέπει να είναι αριθμός μεγαλύτερος ίσος του μηδενός με δύο δεκαδικά ψηφία.
|
|
create_payment_signature_012
|
Δεν έχει οριστεί το πεδίο Σύνολο Καθαρής Αξίας (invoice_net_value).
|
|
create_payment_signature_013
|
Το πεδίο Σύνολο Καθαρής Αξίας (invoice_net_value) πρέπει να είναι αριθμός μεγαλύτερος ίσος του μηδενός με δύο δεκαδικά ψηφία.
|
|
create_payment_signature_014
|
Δεν έχει οριστεί το πεδίο Σύνολο ΦΠΑ (invoice_vat_value).
|
|
create_payment_signature_015
|
Το πεδίο Σύνολο ΦΠΑ (invoice_vat_value) πρέπει να είναι αριθμός μεγαλύτερος ίσος του μηδενός με δύο δεκαδικά ψηφία.
|
|
create_payment_signature_016
|
Δεν έχει οριστεί το πεδίο Συνολική Αξία (invoice_total_value).
|
|
create_payment_signature_017
|
Το πεδίο Συνολική Αξία (invoice_total_value) πρέπει να είναι αριθμός μεγαλύτερος ίσος του μηδενός με δύο δεκαδικά ψηφία.
|
|
create_payment_signature_018
|
Υπάρχει σφάλμα κατά τον έλεγχο του Μ.Αρ.Κ. του παραστατικού για την δημιουργία υπογραφής.
|
|
create_payment_signature_019
|
Δεν βρέθηκε παραστατικό καταχωρημένο με αυτό το Μ.Αρ.Κ..
|
|
create_payment_signature_020
|
Το ΑΦΜ εκδότη του παραστατικού δεν είναι ίδιο με αυτό που έχει οριστεί στην υπογραφή issuer_vat.
|
|
create_payment_signature_021
|
Η ημερομηνία έκδοσης του παραστατικού δεν είναι η ίδια με αυτή που έχει οριστεί στην υπογραφή issue_date.
|
|
create_payment_signature_022
|
Ο αριθμός εγκατάστασης εκδότη του παραστατικού είναι διαφορετικός από αυτόν που έχει οριστεί στην υπογραφή issuer_branch.
|
|
create_payment_signature_023
|
Η Κατηγορία του παραστατικού είναι διαφορετική από αυτήν που έχει οριστεί στην υπογραφή invtype.
|
|
create_payment_signature_024
|
Η σειρά του παραστατικού είναι διαφορετική από αυτή που έχει οριστεί στην υπογραφή.
|
|
create_payment_signature_025
|
Ο αριθμός παραστατικού είναι διαφορετικός από αυτόν που έχει οριστεί στην υπογραφή.
|
|
create_payment_signature_026
|
Το σύνολο της καθαρής αξίας του παραστατικού είναι διαφορετικό από αυτό που έχει οριστεί στην υπογραφή.
|
|
create_payment_signature_027
|
Το σύνολο ΦΠΑ του παραστατικού είναι διαφορετικό από αυτό που έχει οριστεί στην υπογραφή invoice_vat_value.
|
|
create_payment_signature_028
|
Η συνολική αξία του παραστατικού είναι διαφορετική από αυτή που έχει οριστεί στην υπογραφή.
|
|
create_payment_signature_029
|
Το Πληρωτέο Ποσό amount πρέπει να είναι μικρότερο ή ίσο από την συνολική αξία του παραστατικού.
|
|
create_payment_signature_030
|
Δεν είναι δυνατή η δημιουργία UID από τα στοιχεία της πληρωμής.
|
|
create_payment_signature_031
|
Το UID του παραστατικού είναι διαφορετικό από αυτό που προκύπτει από τα στοιχεία της πληρωμής.
|
|
create_payment_signature_032
|
Υπάρχει σφάλμα στη δημιουργία υπογραφής πληρωμής.
|
|
create_payment_signature_033
|
Δεν είναι δυνατή η δημιουργία gUID από τα στοιχεία της πληρωμής.
|
|
create_payment_signature_034
|
Δεν είναι δυνατή η κωδικοποίηση της συμβολοσειράς υπογραφής πληρωμής.
|
|
create_payment_signature_035
|
Δεν είναι δυνατή η παραγωγή της υπογραφής πληρωμής.
|
|
create_payment_signature_036
|
Το ποσό της υπογραφής δεν μπορεί να υπερβαίνει την συνολική αξία του παραστατικού.
|
|
create_payment_signature_037
|
Η ημερομηνία έκδοσης του παραστατικού δεν έχει το απαιτούμενο format (YYYY-MM-DD)
|
|
{
"ok": 0,
"code": "String: The Error Code",
"error": {
"title": "String: Error's Title",
"message": "String: Error's Message"
"data": [
{
"code": "String: Specific Error Code",
"message": "String: Specific Error Message"
}
]
}
}
RESPONSE/ HTTP response code: 401 To bearer token που έχετε ορίσει στο header δεν είναι σωστό
{
"ok" : 0,
"code" : 401,
"error" : {
"title" : "Unauthorized"
}
}
Ενημέρωση υφιστάμενου παραστατικού με νέα πληρωμή (invoice-update) 
- URL: "https://e-invoicing-user-api.pegcloud.io/invoice-update/"
Η κλήση αυτή, μπορεί να χρησιμοποιηθεί μόνο για πληρωμές με πιστωτική κάρτα, τύπου 7.
-
- Method: POST
 REQUEST POST /invoice-update /HTTP/1.1
Authorization: Bearer {{token}}
{
"amount": "Νumeric(13,2): Ποσό Πληρωμής",
"amount_t": "Νumeric(13,2): Ποσό Φιλοδωρήματος",
"type": "String(5): Τύπος Πληρωμής",
"p_sign": "String(150): Υπογραφή Πληρωμής Παρόχου",
"tid": "String(50): Μοναδική Ταυτότητα Πληρωμής",
"p_info": "String(150): Πληροφορίες"
}RESPONSE/ HTTP response code: 200 {
"ok": "Number(1)",
"code": "Number(3)",
"data": {
"einv05": [
{
"id": "Number(15): Μ.Κ.",
"type": "String(5): Τύπος Πληρωμής",
"amount": "Number(13,2): Ποσό Πληρωμής",
"p_info": "String(150): Πληροφορίες",
"amount_t": "Number(13,2): Ποσό Φιλοδωρήματος",
"p_sign": "String(150): Υπογραφή Πληρωμής Παρόχου",
"tid": "String(50): Μοναδική Ταυτότητα Πληρωμής",
"tidnsp": "String(20): Ταυτότητα Μέσου Πληρωμών"
}
],
"paymentMethodMark": "String(50): Μοναδικός Αριθμός Καταχώρησης Πληρωμής
},
"message": "Η πληρωμή προστέθηκε στις υφιστάμενες πληρωμές του παραστατικού και έγινε η ενημέρωση του MyData."
}
- *Κατεβάστε το JSON για τοPostman
RESPONSE/ HTTP response code: 400 Πρόβλημα στην ενημέρωση παραστατικού με νέα πληρωμή.
| Code |
Message |
|
| update_invoice_data_000 |
Η πληρωμή δεν μπορεί να καταχωρηθεί. |
|
| update_invoice_data_001 |
Δεν έχει οριστεί το πεδίο Ποσό Πληρωμής (amount) της πληρωμής. |
|
| update_invoice_data_002 |
Το ποσό της πληρωμής πρέπει να είναι θετικός αριθμός μεγαλύτερος του μηδενός. |
|
| update_invoice_data_003 |
Δεν έχει οριστεί τύπος ο πληρωμής (type) |
|
| update_invoice_data_004 |
Επιτρέπεται η καταχώρηση πληρωμών τύπου POS / ePOS (type = 7) |
|
| update_invoice_data_005 |
Το ποσό tip πρέπει να είναι θετικός αριθμός μεγαλύτερος ή ισός του μηδενός. |
|
| update_invoice_data_006 |
Δεν έχει οριστεί υπογραφή πληρωμής (p_sign) στην πληρωμή POS / ePOS. |
|
| update_invoice_data_007 |
Δεν έχει οριστεί Transaction ID στην πληρωμή POS / ePOS. |
|
| update_invoice_data_008 |
Ο Έλεγχος της υπογραφής πληρωμής απέτυχε. |
|
| update_invoice_data_009 |
Έχει γίνει χρήση αυτής της υπογραφής σε άλλο παραστατικό. |
|
| update_invoice_data_010 |
Δεν βρέθηκε η υπογραφή πληρωμής. |
|
| update_invoice_data_011 |
To amount τις πληρωμής δεν μπορεί να είναι μεγαλύτερο από το amount της υπογραφής. |
|
| update_invoice_data_012 |
Το σύνολο των πληρωμών του παραστατικού θα υπερβαίνει το σύνολο του παραστατικού. |
|
| update_invoice_data_013 |
Η υπογραφή πληρωμής δεν είναι πλέον διαθέσιμη. |
|
| payments_sync_000 |
Δεν είναι δυνατή η επικοινωνία με το myData. |
|
| payments_sync_001 |
Το myData επέστρεψε σφάλμα. |
|
| payments_sync_002 |
Δεν είναι δυνατή η επικοινωνία με το myData. |
|
payments_sync_003 payments_sync_004 payments_sync_005 |
Σφάλμα μορφής δεδομένων. |
|
payments_sync_007 payments_sync_008 |
Δεν είναι δυνατή η επικοινωνία με το myData. |
|
| payments_sync_009 |
Το MyData επέστρεψε σφάλματα για τις πληρωμές. |
|
| payments_sync_010 |
Σφάλματα επικύρωσης XML |
|
{
"ok": 0,
"code": "String: The Error Code",
"error": {
"title": "String: Error's Title",
"message": "String: Error's Message"
"data": [
{
"code": "String: Specific Error Code",
"message": "String: Specific Error Message"
}
]
}
}
RESPONSE/ HTTP response code: 401 To bearer token που έχετε ορίσει στο header δεν είναι σωστό
{
"ok" : 0,
"code" : 401,
"error" : {
"title" : "Unauthorized"
}
}
Ακύρωση Δελτίου Αποστολής (cancel-delivery-note) 
- URL: "https://e-invoicing-user-api.pegcloud.io/cancel-delivery-note/"
-
- Method: POST

Διασύνδεση με EFT/POS 
Σύμφωνα με την νομοθεσία Α.1155 /09-10-2023, εισάγεται μια νέα διαδικασία για τη λειτουργία των EFT/POS συσκευών. Από εδώ και στο εξής, τα EFT/POS θα είναι κλειδωμένα και δεν θα επιτρέπεται η χειροκίνητη εισαγωγή ποσών από τους χρήστες. Αντί αυτού, το ERP σύστημα θα αναλαμβάνει να δίνει τις εντολές στο POS για είσπραξη, επιστροφή χρημάτων ή οποιαδήποτε άλλη συναλλαγή. Δείτε αναλυτικά στο site της ΑΑΔΕ: aade.gr: Διασύνδεση POS - Ταμειακών Συστημάτων.
Οι NSP (πάροχοι μέσων πληρωμών) έχουν υλοποιήσει διάφορα πρωτόκολλα επικοινωνίας τα οποία μπορείτε να δείτε αναλυτικά εδώ: Πρωτόκολλα /Τεκμηρίωση για διασύνδεση με βάση την Α.1155/2023 . Τα πρωτόκολλα επικοινωνίας, ορίζουν τον τρόπο με τον οποίο, μπορεί ένα ERP, να δώσει μία εντολή π.χ. για εκκίνηση ενός sale, στο POS. Έχουν δοκιμαστεί με πάροχο e-invoicing.pegcloud.io και τις Pegasus Web App & Pegasus ERP εφαρμογές μας, τα πρωτόκολλα NSP όπως φαίνονται εδώ: Pegasus Web App και Διασύνδεση EFT POS.
Δημιουργία Υπογραφής Πληρωμής Σύμφωνα με την νομοθεσία Α.1155 /09-10-2023, κάθε εντολή που θα δοθεί π.χ. για εκκίνηση ενός sale, στο POS, θα πρέπει να συνοδεύεται από την αντίστοιχη Υπογραφή Πληρωμής. Η Υπογραφή αυτή, παράγεται από το e-invoicing.pegcloud.io , με την χρήση του API call create-payment-signature Μπορεί να δημιουργηθεί υπογραφή για ένα ήδη εκδομένο παραστατικό (Ετεροχρονισμένη Πληρωμή) είτε για ένα παραστατικό που εκδίδεται τώρα, δηλαδή είναι "Υπό Έκδοση" (Ταυτόχρονη Πληρωμή με Έκδοση Παραστατικού). Ισχύει ότι κάθε Υπογραφή Πληρωμής, θα πρέπει να συσχετιστεί με ένα παραστατικό.
Ταυτόχρονη Πληρωμή με Έκδοση Παραστατικού Εφόσον μία ταυτόχρονη πληρωμή ολοκληρωθεί επιτυχώς στο EFT/POS, κατά την αποστολή του παραστατικού στον πάροχο με την κλήση του API call invoice-data, θα πρέπει να συμπληρωθεί το object payments με τιις διάφορες πληρωμές του παραστατικού. Στην περίπτωση της πληρωμής με κάρτα, ο τύπος πληρωμής είναι ο 7, και συμπληρώνονται τα πεδία:
- amount: Το πραγατικό ποσό που πκηρώθηκε στο EFT/POS. Μπορεί να είναι μικρότερο ή ίσο του ποσού για το οποίο εκδόθηκε υπογραφή πληρωμής.
- amount_t: Το ποσό του φιλοδωρήματος (tip)
- p_sign: Υπογραφή πληρωμής όπως εκδόθηκε από την create-payment-signature.
- tid: Μοναδική Ταυτότητα Πληρωμής όπως επιστρέφεται από το EFT/POS
- tidnsp: Ταυτότητα Μέσου Πληρωμών (δηλαδή το Terminal ID, το ID του EFT/POS)
Στην περίπτωση που μία Υπογραφή για ένα "Υπό Έκδοση", δεν συσχετιστεί με το παραστατικό της (στις επόμενες 24 ώρες) π.χ. γιατί τελικά δεν καταχωρήθηκε το παραστατικό, το e-invoicing.pegcloud.io, αναφέρει τις υπογραφές αυτές στο myDATA.
Ετεροχρονισμένη πληρωμή μετά την Έκδοση Παραστατικού Στην περίπτωση που το παραστατικό είχε εκδοθεί επί πιστώσει, αλλά πληρώνεται μερικώς ή πλήρως σε δεύτερο χρόνο, τότε, θα πρέπει να γίνει κλήση του API call invoice-update. Η κλήση αυτή, μπορεί να χρησιμοποιηθεί μόνο για πληρωμές με πιστωτική κάρτα, τύπου 7 και συμπληρώνονται τα πεδία:
- amount: Το πραγατικό ποσό που πκηρώθηκε στο EFT/POS. Μπορεί να είναι μικρότερο ή ίσο του ποσού για το οποίο εκδόθηκε υπογραφή πληρωμής.
- amount_t: Το ποσό του φιλοδωρήματος (tip)
- p_sign: Υπογραφή πληρωμής όπως εκδόθηκε από την create-payment-signature.
- tid: Μοναδική Ταυτότητα Πληρωμής όπως επιστρέφεται από το EFT/POS
- tidnsp: Ταυτότητα Μέσου Πληρωμών (δηλαδή το Terminal ID, το ID του EFT/POS)
Απόδειξη Είσπραξης POS (8.4) - Απόδειξη Επιστροφής POS (8.5) Με την έκδοση 1.0.8 του myDATA, έχουν δημιουργηθεί δύο νέα παραστατικά, η Απόδειξη Είσπραξης POS (8.4) και η Απόδειξη Επιστροφής POS (8.5). Ο Τύπος Παραστατικού Απόδειξη Είσπραξης POS(8.4) δεν ακυρώνεται, επομένως, στην περίπτωση επιστροφής μίας πληρωμής Απόδειξης Είσπραξης POS (8.4), εκδίδεται Απόδειξη Επιστροφής POS (8.5) με την οποία συσχετίζεται.
Εκδίδεται Απόδειξη Είσπραξης POS(8.4) στις παρακάτω περιπτώσεις:
- Προείσπραξη: Είσπαξη με EFT/POS πριν από την έκδοση του σχετικού/ων Παραστατικού/ων
- Είσπραξη με EFT/POS για ένα παραστατικό που δεν είχε εκδοθεί με το e-invoicing.pegcloud.io (π.χ. είχε εκδοθεί με myDATA ή με άλλον πάροχο)
- Είσπραξημε EFT/POS για πολλαπλά παραστατικά, που έχουν ήδη καταχωρηθεί
Η αποστολή του παραστατικού στον πάροχο γίνεται με την κλήση του API call invoice-data.
Με βάση τους επιτρεπτούς χαρακτηρισμούς, ο επιτρεπτός χαρακτηρισμός για τα 8.4 και 8.5 μόνο η category1_95 [Λοιπά Πληροφοριακά Στοιχεία Εσόδων (+) / (-)]. Ο χαρακτηρισμός ΦΠΑ είναι κατηγορία 8 [Άνευ ΦΠΑ]
Με βάση την Α.1155 /09-10-2023 "Σε κάθε περίπτωση, οι αποδείξεις είσπραξης ή τα αντίστοιχα λογιστικά αρχεία που δημιουργούνται αντιστοιχίζονται με παραστατικά (τιμολόγια, αποδείξεις λιανικής πώλησης) που εκδίδονται μεταγενέστερα της πληρωμής για την ολοκλήρωση των συναλλαγών αυτών. Στην περίπτωση που οι αποδείξεις είσπραξης που εκδόθηκαν ή τα κατάλληλα λογιστικά αρχεία που δημιουργήθηκαν δεν συσχετιστούν με τιμολόγια ή αποδείξεις λιανικής πώλησης έως την υποβολή της δήλωσης φορολογίας εισοδήματος της χρήσης που αφορούν, τα σχετικά ποσά που αντιστοιχούν σε αυτές, προστίθενται στον ετήσιο κύκλο εργασιών της οντότητας. Εφόσον οι εν λόγω αποδείξεις είσπραξης τιμολογηθούν την επόμενη χρήση, για την τρέχουσα νοούνται ως έσοδα επόμενων χρήσεων."
Επομένως, θα πρέπει τα 8.4 και τα 8.5 να συσχετιστούν με τα παραστατικά τα οποία αφορά η πληρωμή. Με την έκδοση 1.0.9 του myDATA, δόθηκε η δυνατότητα συσχετισμού ενός παραστατικού με πολλαπλά ΜΑΡΚ για τη διασύνδεση των 8.4 και 8.5. Στο e-invoicing.pegcloud.io μπορείτε να τα δώσετε στο πεδίο mconmrk, χωρισμένα με κόμμα(,).
-
Απώλεια Διασύνδεσης 
Σε περίπτωση αδυναμίας διασύνδεσης με το e-Invoicing, μπορείτε να παράξετε ένα temporary QRCode και να το εκτυπώσετε στο παραστατικό σας. Όσο το παραστατικό δεν έχει σταλεί στο e-Invoicing, το QRCode οδηγεί σε μία σελίδα με υπόδειξη ότι το QRcode είναι προσωρινό και το παραστατικό δεν έχει πάρει συμβολοσειρά αυθεντικοποίησης.Όταν επανέλθει η επικοινωνία με το e-Invoicing και στην περίπτωση που το παραστατικό έλαβε συμβολοσειρά αυθεντικοποίησης επιτυχώς - το QRCode θα προβάλει πλέον το παραστατικό. Διαφορετικά θα εμφανίζει μήνυμα λάθους.
Για την παραγωγή του QRCode χρησιμοποιείτε το σύνδεσμο:
https://e-invoicing.pegcloud.io/pegasus/einv02/search_invoice01.php?temp_code={temp_code}&user_vat={User VAT}&issuer_vat={Issuer Vat}&issue_date={Issuer Date(Ymd}&issuer_branch={Issuer Branch}&invoice_type={Invoice Type}&series={Series}&aa={AA}
όπου το temp_code παράγεται με concatenation των παρακάτω χωρισμένα με το σύμβολο ";" και κρυπτογραφημένα με τον αλγόριθμο sha256:
- Issuer Vat
- Issue Date (Ymd)
- Issuer Branch
- Invoice Type
- Series
- AA
- User VAT
- Username σύνδεσης στο e-invoicing.pegcloud.io
Παράδειγμα:
string: 094420307;20230309;0;1.1;ΤΠ-ΔΑ;26;094420307;customer_demo hashed value: d6c9158c2086366ee5e66f2f5a3aeddeb0e07beffc6e6b29cb6fbb61de2d7680
ΠΡΟΣΟΧΗ: το hash value πρέπει να είναι με μικρά γράμματα.
-
Λειτουργία Εστίασης με Δελτία Παραγγελίας 
Στην έκδοση 1.0.9 του myDATA, ενσωματώθηκε το Δελτία Παραγγελίας Εστίασης: Έκδοση 1.0.9 myDATA. Η σχετική απόφαση: Α1126/2024. Το Δελτίο Παραγγελίας αφορά στο παραστατικό με invtype 8.6 του myDATA. Ένα δελτίο παραγγελίας πρέπει να "κλείσει" ή και να ακυρωθεί εντός 24 ωρών. Αν μείνουν ανοιχτά Δελτία, ο Πάροχος δεν δέχεται άλλα παραστατικά.
Για να "κλείσει" ένα Δελτίο πρέπει να αντιστοιχιστεί όλη η καθαρή αξία και όλη η ποσότητα του με κάποιο από τα:
- 11.1 - ΑΛΠ (Απόδειξη Λιανικής Πώλησης) για χρεωστικές συναλλαγές λιανικής
- 11.4 - Πιστωτικό Στοιχείο Λιανικής για πιστωτικές συναλλαγές λιανικής
- 1.1 - Τιμολόγιο Πώλησης, για χρεωστικές συναλλαγές χονδρικής
- 5.1 - Πιστωτικό Τιμολόγιο / Συσχετιζόμενο
- 5.2 - Πιστωτικό Τιμολόγιο για πιστωτικές συναλλαγές χονδρικής, στην περίπτωση που ζητηθεί η έκδοση τιμολογίου ή πιστωτικού με ένδειξη «Συναλλαγές Εστίασης».
Υπάρχουν περιπτώσεις που ένα κλειστό Δελτίο παραγγελίας μπορεί να ανοίξει ξανά π.χ. αν εκδοθεί Πιστωτικό στοιχείο για το παραστατικό που το "έκλεισε".
Επιπλέον για ένα Δελτίο Παραγγελίας μπορείτε:
- να το ακυρώσετε - σημαίνοντάς το με tcdord = 1 (TotalCancelDeliveryOrder)
- να ακυρώσετε κάποιες γραμμές του - εκδίδοντας αντιστοιχισμένο Δελτίο Παραγγελίας 8.6 το οποίο θα έχει ως γραμμές τα είδη που πρέπει να ακυρωθούν, με την ένδειξη rectype = 7
Για την αντιστοίχιση των Δελτίων Παραγγελίας είτε με τα παραστατικά που τα κλείνουν είτε με τα Δελτία που τα ακυρώνουν χρησιμοποιείτε τα πεδία mconauth ή mconmrk. Στο mconauth ορίζετε το Authentication Code του Δελτίου Παραγγελίας. Στο mconmrk ορίζετε το Μ.Αρ.Κ. του Δελτίου Παραγγελίας. Αν πρόκειται για πολλά Δελτία Παραγγελίας συμπληρώνετε όλα τις εγγραφές χωρισμένες με κόμμα(,).
Το mconauth είναι χρήσιμο στην περίπτωση Απώλειας Διασύνδεσης του παρόχου με το myDATA.
Για παράδειγμα, έστω ότι η επικοινωνία με την υπηρεσία του myDATA δεν είναι εφικτή και στέλνετε ένα Δελτίο Παραγγελίας στον Πάροχο το οποίο στη συνέχεια θα πρέπει να κλείσει με το αντίστοιχο ΑΛΠ. Αρχικά το Δελτίο Παραγγελίας δεν ενημερώνεται με MARK - ο Πάροχος εκδίδει ένα προσωρινό Authentication Code και το Δελτίο μπαίνει στην ‘ουρά’ για αποστολή στο myDATA. Εσείς μπορείτε να εκδώσετε το ΑΛΠ και να κλείσετε το Δελτίο Παραγγελίας συμπληρώνοντας το Authentication Code στο πεδίο mconauth. Το ΑΛΠ μπαίνει και αυτό στην ‘ουρά’. Ο Πάροχος αναλαμβάνει να ενημερώσει το myDATA με το Δελτίο Παραγγελίας και το ΑΛΠ όταν επανέλθει η επικοινωνία.
Μέσα από το user interface της πλατφόρμας του παρόχου (e-invoicing.pegcloud.io) μπορείτε να δείτε όλα τα εκκρεμή Δελτία Παραγγελίας μας. Για κάθε εγγραφεί καταγράφονται αναλυτικά η υπολειπόμενη αξία και ποσότητα προς κλείσιμο.
Για το κύκλωμα της Εστίασης, διακρίνονται οι παρακάτω περιπτώσεις παραστατικών. Για όλες τις περιπτώσεις η ενημέρωση του e-invoicing.pegcloud.io γίνεται μέσω του endpoint Αποστολή/Παραλαβή Παραστατικού (invoice-data) με τη μέθοδο POST.
Δελτίο παραγγελίας
- invtype = 8.6
- spinvcat = 12
- tableaa: Ο αριθμός του τραπεζιού
- mydt57_p00: category1_95
- mydt61_p00: κενός
Σημείωση: Το e-invoicing.pegcloud.io κρατάει μία λίστα με τα τραπέζια της επιχείρησης ώστε να μπορείτε να αναζητήσετε τα Δελτία Παραγγελίας με βάση το τραπέζι τους.
Δελτίο παραγγελίας που ακυρώνει γραμμή/γραμμές προηγούμενου δελτίου
- invtype = 8.6
- spinvcat = 12
- einv02 έχει γραμμή/γραμμές ειδών με rectype = 7
- mconauth = Το authentication code του δελτίου παραγγελίας από το οποίο ακυρώνει γραμμή/γραμμές
- mydt57_p00: category1_95
- mydt61_p00: κενός
Σημείωση: Ένα Δελτίο Παραγγελίας, μπορεί να έχει μόνο rectype 7 ή rectype 0. Δεν μπορεί να έχει και τα 2.
Δελτίο παραγγελίας που ακυρώνει όλο το δελτίο
- Πρέπει να διαβιβάζεται με μια μόνο γραμμή με μηδενικές αξίες
- invtype = 8.6
- spinvcat = 12
- tcdord = 1
- mconauth = Το authentication code του δελτίου παραγγελίας που ακυρώνει. Πρέπει να είναι ακριβώς 1
- vatCategory = 8
Παραστατικό που "κλείνει" Δελτίο παραγγελίας
- spinvcat = 12
- mconauth = Το authentication code του δελτίου παραγγελίας. Δεν γίνονται δεκτά Δελτία όπου tcdord = 1 ή με rectype = 7
Σημείωση 1: Παραστατικά που είναι Πιστωτικά μπορούν να έχουν μόνο ένα συνδεδεμένο Δελτίο Παραγγελίας. Σημείωση 2: Παραστατικά που ‘κλείνουν’ πολλά Δελτία Παραγγελίας θα πρέπει να έχουν αξία ίση ή μεγαλύτερη από το σύνολο όλων των Δελτίων Παραγγελίας (που κλείνει το παραστατικό)
-
|