EMDI web API

2.0.1 · openapi.yaml · Swagger

Οδηγός παρακάτω. Για Authorize / Try it out άνοιξε τη διαδραστική τεκμηρίωση (Swagger) σε νέα καρτέλα. Αναλυτικά πεδία JSON: Ανάλυση πεδίων EMDI web API.

Ξεκίνα εδώ (απλός οδηγός)

Αυτό το API επιτρέπει στο πρόγραμμά σου να μιλά με το EMDI web: επαφές, είδη, ραντεβού και παραστατικά αγορών/πωλήσεων.

Η βάση είναι /apps/api/. Επιλέγεις πόρο και ενέργεια από το URL.

1. Τι χρειάζεσαι πριν καλέσεις

  1. Προϊόν EMDI web με ενεργό πακέτο API.
  2. Το όνομα χρήστη EMDI web (το ίδιο με τη σύνδεση στον browser).
  3. Ένα HTTP key από το EMDI web: Ρυθμίσεις → Πωλήσεις/Αγορές → API (αντίγραψέ το· κράτα το μυστικό).
  4. Μετά από αλλαγή πακέτου ή δικαιωμάτων, ξανασυνδέσου στο EMDI web για να εφαρμοστεί.

Αν το πακέτο είναι κλειστό ή το key/user είναι λάθος, το API απαντά με σφάλμα (όχι με δεδομένα).

2. Πώς δουλεύει κάθε αίτημα

Κομμάτι Τι στέλνεις
Auth Πάντα ?user=YOUR_USER&key=YOUR_HTTPKEY (ή κεφαλίδα X-API-Key)
Λίστα GET /apps/api/list/{type}.json
Ανάγνωση GET /apps/api/{type}/{id}.json
Αποθήκευση POST /apps/api/save/{type}.json + JSON σώμα
Διαγραφή DELETE /apps/api/{type}/{id}.json

Το {type} είναι το όνομα πόρου (contacts, items, calendar, documents, ή lookup).

Μικρό παράδειγμα (λίστα ειδών παραστατικών)

Μικρό παράδειγμα (διάβασμα ενός ραντεβού)

Μικρό παράδειγμα (αποθήκευση επαφής)

Απάντηση επιτυχίας

Απάντηση σφάλματος

Συχνά error.code: auth, validation, not_found, duplicate, in_use, locked_mydata, package_disabled, rate_limited, server.

3. Πόροι

Lookups (λίστες επιλογών)

Μόνο GET /apps/api/list/{type}.json.

Το {type} ένα από: doc_types, vat_rates, users, contacts_relations, measurement_units, categories, subcategories, payment_methods, calendar_types, cashiers_positions

Κύρια δεδομένα (CRUD)

type Σημασία
contacts Πελάτες / προμηθευτές / άλλες επαφές
items Προϊόντα / υπηρεσίες
calendar Ραντεβού
documents Παραστατικά αγορών / πωλήσεων
Ενέργεια Μέθοδος + URL
list GET /apps/api/list/{type}.json (φίλτρα στο query: limit, offset, …)
get GET /apps/api/{type}/{id}.json
save POST /apps/api/save/{type}.json (id: 0 νέα, ή match: "code" upsert)
delete DELETE /apps/api/{type}/{id}.json

4. Χρήσιμες λεπτομέρειες

  • Όριο: έως 60 κλήσεις ανά λεπτό ανά χρήστη + IP.
  • Μέγεθος λίστας: limit προεπιλογή 50, μέγιστο 250 (επόμενη σελίδα με offset).
  • balance επαφών: όπως η αναφορά Υπολοίπων. Προαιρετικά date_from / date_to.
  • Αναζήτηση λίστας επαφών: ?name= στο trimmed Onoma+' '+Epiueto· ?company= στο trimmed Epvnymia — χωρίς διάκριση κεφαλαίων/τόνων. Χωρίς % = ακριβές· βάλε εσύ % (π.χ. name=PETER MARKS, name=PETER%, company=%SBZ%). Επίσης ακριβές code, vat_number, και active, modified_since.
  • Στο save: city, relation, unit μπορεί να δημιουργηθούν αυτόματα. Χρήστες / είδη παραστατικών πρέπει να υπάρχουν.
  • Παραστατικά (documents): όλα τα πεδία pvlhseis + γραμμές grammes στο lines. Στο get οι γραμμές έρχονται πάντα· στο list βάλε ?include_lines=1. Φίλτρα list: ?series= (Seira, ίδιο trim/κεφαλαία/τόνοι/% με name/company επαφών), ?number= ακριβής (Ariumospar), ?related_docs= στο trimmed Sxetika. Σύνολα με CALC_LINE_*. Χωρίς αποστολή myDATA από το API.
  • myDATA / in_use: κλειδωμένα παραστατικά δεν αλλάζουν· επαφές/είδη σε χρήση δεν διαγράφονται.
  • Ανάλυση πεδίων: Ανάλυση πεδίων EMDI web API — κάθε κλειδί JSON ανά πόρο.

Άνοιγμα διαδραστικής τεκμηρίωσης (Swagger)