Τεκμηρίωση API Veloxiom

Πλήρης τεκμηρίωση REST API για την πλατφόρμα διαχείρισης ISP Veloxiom. Διαχειριστείτε πελάτες, χρεώσεις, δίκτυο και integrations μέσω κώδικα.

Ενότητες API


🔐 Πιστοποίηση

Το Veloxiom εκθέτει δύο διαφορετικές επιφάνειες. Επιλέξτε τη σωστή για την ενσωμάτωσή σας:

API Tokens (REST API v1)

Δημιουργήστε scoped tokens στο panel από Admin → API & Webhooks. Κάθε token εμφανίζεται μία φορά (αποθηκεύεται μόνο SHA-256 hash), φέρει scopes ανά module, μπορεί να έχει λήξη και να ανακληθεί. Το token είναι tenant-scoped — βλέπει μόνο τα δεδομένα του tenant του.

# Send the token one of three ways (Bearer preferred): Authorization: Bearer vlx_xxxxxxxxxxxxxxxxxxxxxxxx X-Api-Token: vlx_xxxxxxxxxxxxxxxxxxxxxxxx ?token=vlx_xxxxxxxxxxxxxxxxxxxxxxxx # Base URL (tenant resolved by host/slug) https://{your-domain-or-slug}/api/v1.php
# Example: list customers (needs customers:view scope) curl https://panel.veloxiom.com/{tenant}/api/v1.php?resource=customers&limit=3 \ -H "Authorization: Bearer vlx_..."

Scopes Token

Κάθε token δίνει πρόσβαση ανά module σε επίπεδο none / view / write (write συνεπάγεται view). Κάθε endpoint απαιτεί συγκεκριμένο scope· ανεπαρκές scope επιστρέφει HTTP 403.

Ενότητα scopeΔίνει πρόσβαση σε
customersΠελάτες / συνδρομητές
plansΠλάνα υπηρεσιών
billingΤιμολόγια & χρέωση
routersΔικτυακές συσκευές / routers
monitoringΔεδομένα monitoring (διαβάζει και routers)
crmTickets & μηνύματα (write για αποστολή)

2FA (Αυθεντικοποίηση Δύο Παραγόντων)

POST
action=start_2fa_enroll
Εκκίνηση εγγραφής TOTP 2FA — επιστρέφει QR code και secret
POST
action=finish_2fa_enroll
Ολοκλήρωση εγγραφής 2FA με κωδικό επαλήθευσης
POST
action=disable_own_2fa
Απενεργοποίηση 2FA για τρέχον admin λογαριασμό
POST
action=reset_admin_2fa
Reset 2FA για άλλον admin (απαιτεί admin password)

🔌 REST API v1 (Token)

Το δημόσιο read-first REST API. Στείλτε GET με ?resource=<name> και Bearer token. Οι απαντήσεις είναι JSON με πεδίο ok· οι λίστες επιστρέφουν επίσης count και data. Όλα τα queries χρησιμοποιούν prepared statements και δεν εκθέτουν ποτέ passwords ή router secrets.

Πόροι Ανάγνωσης (GET)

GET
?resource=ping
Έλεγχος υγείας — χωρίς scope. Επιστρέφει {ok, pong, ts}.
GET
?resource=me
Επιστρέφει το όνομα και τα scopes του token. Χωρίς scope.
GET
?resource=customers
Λίστα συνδρομητών. Scope: customers:view. Πεδία: username, name, email, phone. Υποστηρίζει q, limit, offset.
GET
?resource=customer&username=…
Λεπτομέρειες συνδρομητή. Scope: customers:view. Πεδία: username, profile, rate_limit, meta{} (τα password/secret αφαιρούνται).
GET
?resource=plans
Λίστα πλάνων. Scope: plans:view. Πεδία: id, name, rate_limit, price.
GET
?resource=invoices
Λίστα τιμολογίων. Scope: billing:view. Φίλτρα: status, q. Πεδία: id, number, customer, username, total, status, issue_date.
GET
?resource=routers
Λίστα δικτυακών συσκευών. Scope: routers:view Ή monitoring:view. Πεδία: id, name, ip, hostname, site, role, health.
GET
?resource=tickets
Λίστα CRM tickets. Scope: crm:view. Φίλτρο: q. Πεδία: id, subject, customer, status, priority, created_at, updated_at.
GET
?resource=messages
Λίστα μηνυμάτων. Scope: crm:view. Φίλτρα: direction, channel, phone.

Μεταβολές (POST)

POST
action=send_message
Αποστολή εξερχόμενου μηνύματος. Scope: crm:write. Params: channel (default sms), to, text (ή body), username. Εκπέμπει το webhook message.sent.

Κοινές Παράμετροι Query

ΠαράμετροςΤύποςΠεριγραφή
resource / rstringΌνομα πόρου (δες λίστα)
limitintΜέγεθος σελίδας, 1–500 (default 100)
offsetintOffset για σελιδοποίηση (default 0)
qstringΑναζήτηση κειμένου (customers/invoices/tickets)

Σφάλματα

HTTPΣώμαΣημασία
401{"ok":false,"error":"unauthorized"}Λείπει/άκυρο/ανακληθέν/ληγμένο token
403{"ok":false,"error":"insufficient_scope","need":"module:level"}Το token δεν έχει το απαιτούμενο scope
404{"ok":false,"error":"unknown_resource"}Άγνωστος πόρος
400{"ok":false,"error":"unknown_action"}Άγνωστη POST action / λείπει param
429{"ok":false,"error":"rate_limited"}Υπέρβαση ορίου (120 req/min ανά token)
# Example response — GET ?resource=customers&limit=1 { "ok": true, "data": [ { "username": "000001", "name": "...", "email": "...", "phone": "..." } ], "count": 1, "pagination": { "limit": 1, "offset": 0, "total": 128, "has_more": true, "next_offset": 1 }, "meta": { "request_id": "req_5f3c…", "ts": "2026-08-15T01:20:00+00:00" } }

Envelope, Pagination & Request IDs

ΠεδίοΠεριγραφή
okΠάντα παρόν. true σε επιτυχία, false σε σφάλμα.
dataΤο payload (πίνακας για λίστες, object για μονό πόρο).
countΠλήθος γραμμών στην τρέχουσα απάντηση.
paginationlimit, offset, total, has_more, next_offset — για λίστες.
meta.request_idΜοναδικό id κλήσης· επιστρέφεται και ως header X-Request-Id.

Errors stay flat for backward compatibility ({ok:false,error:"…"}). Send envelope=2 for a structured error: {ok:false,error:{code,message,details},meta:{request_id}}. Validation failures return 422. Callers still using ?token=… receive Deprecation/Sunset headers — prefer Authorization: Bearer or X-Api-Token.

Τιμές πεδίων

invoice.statusunpaid · paid · partial · overdue · cancelled
message.channelsms · viber · whatsapp

Μηχανική Τεκμηρίωση (OpenAPI)

api/v1.php?resource=openapi returns an OpenAPI 3.0.3 document for your tenant — load it into Postman, Insomnia or a client generator.


👥 Πελάτες / Συνδρομητές (action μέσω session panel/mobile)

Διαχείριση συνδρομητών ISP — δημιουργία, επεξεργασία, διαγραφή και έλεγχος κατάστασης υπηρεσίας.

POST
action=add
Δημιουργία νέου πελάτη/συνδρομητή με PPPoE/DHCP credentials, πλάνο υπηρεσίας και στοιχεία επικοινωνίας
POST
action=edit
Ενημέρωση στοιχείων πελάτη — username, πλάνο, ταχύτητα, στοιχεία επικοινωνίας, custom πεδία
POST
action=delete
Διαγραφή πελάτη και συσχετισμένων RADIUS/MikroTik εγγραφών
POST
action=toggle_status
Ενεργοποίηση/απενεργοποίηση υπηρεσίας πελάτη (suspend/unsuspend)
POST
action=save_billing_customer
Αποθήκευση ρυθμίσεων χρέωσης πελάτη (κύκλος χρέωσης, φορολογικά, τρόπος πληρωμής)
POST
action=aade_lookup
Αναζήτηση φορολογικών στοιχείων πελάτη από ΑΑΔΕ με ΑΦΜ

Παράμετροι Πελάτη

ΠαράμετροςΤύποςΠεριγραφή
usernamestringPPPoE/DHCP username (μοναδικό)
passwordstringPPPoE password
fullnamestringΠλήρες όνομα πελάτη
emailstringEmail διεύθυνση
phonestringΤηλέφωνο
planstringΌνομα πλάνου υπηρεσίας
addressstringΔιεύθυνση εγκατάστασης
afmstringΑΦΜ για χρέωση
static_ipstringStatic IP ανάθεση (προαιρετικό)
mac_addressstringMAC address για DHCP binding

📋 Πακέτα Υπηρεσιών

Δημιουργία και διαχείριση πλάνων υπηρεσιών internet με ταχύτητες, τιμολόγηση και πολιτικές FUP.

POST
action=add_plan
Δημιουργία νέου πλάνου με ταχύτητες, τιμή και MikroTik queue parameters
POST
action=edit_plan
Ενημέρωση υπάρχοντος πλάνου
POST
action=delete_plan
Διαγραφή πλάνου (αποτυγχάνει αν υπάρχουν πελάτες)

Παράμετροι Πλάνου

ΠαράμετροςΤύποςΠεριγραφή
namestringΌνομα πλάνου (π.χ. 'FTTH 100Mbps')
downloadstringΤαχύτητα download (π.χ. '100M')
uploadstringΤαχύτητα upload (π.χ. '10M')
pricefloatΜηνιαία τιμή (EUR)
burst_limitstringMikroTik burst limit
burst_thresholdstringBurst threshold
burst_timestringΔιάρκεια burst
priorityintΠροτεραιότητα queue (1-8)

💰 Τιμολόγηση & Παραστατικά

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

POST
action=save_billing_settings
Ρύθμιση global ρυθμίσεων χρέωσης — φόροι, κύκλοι χρέωσης, αρίθμηση τιμολογίων, στοιχεία εταιρείας
POST
action=generate_invoices_month
Δημιουργία τιμολογίων για όλους τους πελάτες σε μήνα χρέωσης
POST
action=create_invoice_manual
Δημιουργία χειροκίνητου τιμολογίου για συγκεκριμένο πελάτη
POST
action=invoice_set_status
Ενημέρωση κατάστασης τιμολογίου (πληρωμένο, απλήρωτο, ακυρωμένο, ληξιπρόθεσμο)
POST
action=delete_invoice
Διαγραφή τιμολογίου (περιορισμός για υποβληθέντα ηλεκτρονικά τιμολόγια)

💳 Πληρωμές

Επεξεργασία πληρωμών μέσω πολλαπλών gateways — DIAS τραπεζικό, Revolut, Stripe, Viva Wallet, PayPal.

POST
action=pay_invoice
Επεξεργασία πληρωμής για συγκεκριμένο τιμολόγιο
POST
action=customer_bulk_pay
Μαζική πληρωμή — πληρωμή όλων των εκκρεμών τιμολογίων πελάτη
POST
action=manual_retry_charge
Επανάληψη αποτυχημένης αυτόματης χρέωσης

Υποστηριζόμενα Payment Gateways

Πάροχος πληρωμώνΤύποςΠεριγραφή
DIASbankΕλληνικό τραπεζικό σύστημα (κωδικοί RF)
RevolutonlineOnline πληρωμές κάρτας μέσω Revolut Business
StripeonlineΔιεθνείς πληρωμές κάρτας & subscriptions
Viva WalletonlineΕλληνικές/EU πληρωμές κάρτας
PayPalonlinePayPal πληρωμές

📄 Ηλεκτρονική Τιμολόγηση (ΑΑΔΕ / myDATA)

Υποβολή τιμολογίων ηλεκτρονικά στο ΑΑΔΕ myDATA. Υποστηρίζει πολλαπλούς παρόχους ηλ. τιμολόγησης.

POST
action=einvoicing_submit_now
Υποβολή τιμολογίου στο ΑΑΔΕ myDATA μέσω ρυθμισμένου παρόχου
GET
action=einvoicing_history
Έλεγχος κατάστασης υποβολής (MARK, UID, σφάλματα)

Υποστηριζόμενοι Πάροχοι Ηλ. Τιμολόγησης

ΠάροχοςΚατάστασηΠεριγραφή
myDATA (AADE)activeΑπευθείας υποβολή ΑΑΔΕ API
ElorusactiveElorus ERP & πλατφόρμα ηλ. τιμολόγησης
IMPACTcoming soonIMPACT πάροχος ηλ. τιμολόγησης
Primer (Cosmos)coming soonPrimer/Cosmos ηλ. τιμολόγηση
Retail@Linkcoming soonRetail@Link ηλ. τιμολόγηση
Edpsoftcoming soonEdpsoft ηλ. τιμολόγηση

📡 RADIUS / PPPoE / DHCP

Ενσωμάτωση FreeRADIUS για PPPoE και DHCP authentication, CoA (Change of Authorization) και διαχείριση sessions.

Το PPPoE/DHCP authentication είναι πλήρως ενεργό. Οι παρακάτω on-demand ενέργειες session/CoA είναι στο roadmap και δεν εκτίθενται ακόμη ως HTTP actions.

GET
action=radius_sessions
Λίστα όλων των ενεργών RADIUS sessions με στατιστικά κίνησης
POST
action=radius_disconnect
Αποσύνδεση RADIUS session (αποστολή CoA Disconnect-Request)
POST
action=radius_coa
Αποστολή CoA για ενημέρωση ταχύτητας/attributes χωρίς αποσύνδεση

🔧 Routers MikroTik

Διαχείριση MikroTik RouterOS συσκευών — προσθήκη, ρύθμιση, παρακολούθηση και εκτέλεση API εντολών.

GET
action=get_routers
Λίστα όλων των ρυθμισμένων routers με κατάσταση σύνδεσης
GET
action=list_routers_ui
Λίστα routers με extended UI metadata (uptime, version, CPU, RAM)
POST
action=add_router
Προσθήκη νέου MikroTik router (IP, API credentials, RADIUS secret)
POST
action=edit_router
Ενημέρωση ρυθμίσεων router
POST
action=delete_router
Αφαίρεση router και καθαρισμός RADIUS/firewall rules
POST
action=switch_router
Εναλλαγή ενεργού router context (για multi-router setups)

Παράμετροι Router

ΠαράμετροςΤύποςΠεριγραφή
ipstringIP διεύθυνση διαχείρισης router
namestringΕμφανιζόμενο όνομα router
userstringRouterOS API username
passstringRouterOS API password
radius_ipstringRADIUS NAS IP (default: management IP)
radius_secretstringRADIUS shared secret

🌐 Ρυθμίσεις Δικτύου

POST
action=save_network_settings
Ρύθμιση IP pools, VLAN, OSPF, VPLS και routing parameters

🗺️ Τοπολογία & Χάρτες

Οπτικοποίηση τοπολογίας δικτύου με 2D/3D χάρτες. Υποστηρίζει πολλαπλά monitoring backends.

POST
action=save_topology_metrics_source
Ρύθμιση πηγής δεδομένων τοπολογίας — LibreNMS, Observium, Zabbix ή MikroTik direct

Υποστηριζόμενα Monitoring Backends

BackendΠρωτόκολλοΠεριγραφή
LibreNMSREST APIOpen-source network monitoring
ObserviumREST APINetwork monitoring platform
ZabbixJSON-RPCEnterprise monitoring solution
MikroTikRouterOS APIDirect router SNMP/API polling

📦 Απογραφή Συσκευών (IPAM)

Διαχείριση IP Addresses και inventory δικτυακών συσκευών με workflows έγκρισης.

POST
action=save_inventory_node
Προσθήκη ή ενημέρωση inventory node (όνομα, IP, τύπος, τοποθεσία, σημειώσεις)
POST
action=approve_inventory_node
Έγκριση pending inventory node
POST
action=approve_inventory_all
Μαζική έγκριση όλων των pending inventory nodes
POST
action=delete_inventory_node
Διαγραφή inventory node
POST
action=delete_inventory_bulk
Μαζική διαγραφή inventory nodes (all_pending, all_approved, ή all)

📊 Εποπτεία SNMP

Real-time παρακολούθηση δικτύου μέσω SNMP. Συλλογή bandwidth, latency και interface metrics από routers και switches.

Το monitoring τρέχει μέσω προγραμματισμένων collectors και Grafana dashboards. Οι παρακάτω on-demand ενέργειες είναι στο roadmap και δεν εκτίθενται ακόμη ως HTTP actions.

GET
action=snmp_collect
Εκκίνηση κύκλου συλλογής SNMP δεδομένων για όλες τις παρακολουθούμενες συσκευές
GET
action=router_health
Λήψη health metrics router — CPU, μνήμη, θερμοκρασία, δίσκος, uptime

📞 VoIP / Τηλεφωνία (MOR)

MOR/M2 τηλεφωνική ενσωμάτωση — διαχείριση SIP trunks, CDR records, tariffs, balance management και VoIP billing.

GET
action=mor_balance_get
Λήψη υπολοίπου VoIP λογαριασμού
GET
action=mor_cdr_list_local
Ανάκτηση CDR records με φίλτρα (ημερομηνία, αριθμός, διάρκεια)
GET
action=mor_tariffs_list_local
Λίστα διαθέσιμων VoIP tariff πλάνων
POST
action=mor_topup_invoice_create
Προσθήκη credit/υπολοίπου σε VoIP λογαριασμό
POST
action=mor_create_remote_user
Δημιουργία νέων SIP λογαριασμών και ανάθεση DID αριθμών

🔒 WireGuard VPN

POST
action=router_wg_provision
Δημιουργία WireGuard VPN tunnel — δημιουργία keys, ρύθμιση peer σε MikroTik

🎫 Υποστήριξη / Αιτήματα

Σύστημα tickets υποστήριξης πελατών με ανάθεση, προτεραιότητες και παρακολούθηση κατάστασης.

POST
action=crm_tickets
Λίστα/αναζήτηση tickets (φίλτρα κατάστασης, προτεραιότητας, ανάθεσης)
POST
action=ticket_create
Δημιουργία νέου ticket υποστήριξης
POST
action=ticket_view
Προβολή ticket με απαντήσεις και σημειώσεις
POST
action=ticket_reply
Απάντηση σε ticket
POST
action=crm_tickets_bulk
Μαζική ενημέρωση tickets — αλλαγή κατάστασης, ανάθεση, προτεραιότητα, κλείσιμο/διαγραφή

🤖 Βοηθός AI

POST
action=save_ai_settings
Ρύθμιση AI assistant — επιλογή μοντέλου (GPT-4o, GPT-4o-mini), API key, συμπεριφορά

🔔 Ειδοποιήσεις

Multi-channel σύστημα ειδοποιήσεων — Telegram, Email, Push notifications.

POST
action=save_telegram_settings
Ρύθμιση καναλιού ειδοποιήσεων Telegram (bot token, chat id)
POST
action=incident_notify
Αποστολή ειδοποίησης συμβάντος μέσω των ρυθμισμένων καναλιών
POST
action=admin_save_notif_overrides
Ορισμός προτιμήσεων ειδοποιήσεων ανά admin

👤 Διαχείριση Διαχειριστών

POST
action=add_web_admin
Δημιουργία νέου admin λογαριασμού με role-based permissions
POST
action=edit_web_admin
Ενημέρωση admin λογαριασμού (password, permissions, role)
POST
action=delete_web_admin
Διαγραφή admin λογαριασμού (δεν μπορεί να διαγραφεί ο primary admin)

🏢 Πολλαπλοί Πάροχοι

Multi-tenant αρχιτεκτονική — κάθε tenant είναι μια απομονωμένη ISP instance με δική του βάση, domain, branding και ρυθμίσεις.

Η δημιουργία tenant είναι super-admin ενέργεια από το control panel· εκτελεί όλο το pipeline (βάση, schema, RADIUS, WireGuard/NPM, captive portal) εσωτερικά με rollback σε αποτυχία.

POST
action=provision
Super-admin: δημιουργία νέου tenant (βάση, schema, RADIUS, WireGuard/NPM, captive portal)

⚙️ Ρυθμίσεις Συστήματος

POST
action=save_settings
Αποθήκευση γενικών ρυθμίσεων — στοιχεία εταιρείας, logo, favicon, timezone, γλώσσα, θέμα

🔗 Webhooks

Λήψη real-time ειδοποιήσεων όταν συμβαίνουν events. Ρυθμίστε outbound webhooks στο panel από Admin → API & Webhooks. Το signing secret (whsec_…) εμφανίζεται μία φορά.

Διαθέσιμα Events

ΓεγονόςΠεριγραφή
message.receivedΕλήφθη εισερχόμενο μήνυμα (SMS/άλλο κανάλι)
message.sentΣτάλθηκε εξερχόμενο μήνυμα (π.χ. μέσω API send_message)
pingΔοκιμαστικό event από το admin UI
*Εγγραφή σε όλα τα τρέχοντα και μελλοντικά events

Επιπλέον business events (customer.*, invoice.*, ticket.*, router.*) είναι στο roadmap και δεν εκπέμπονται ακόμη.

Παράδοση & Υπογραφή

Κάθε παράδοση είναι HTTPS POST με JSON body. Επαληθεύστε τη γνησιότητα με την HMAC-SHA256 υπογραφή πάνω στο ακατέργαστο σώμα, με το webhook secret σας.

# Delivery headers Content-Type: application/json X-Veloxiom-Event: message.sent X-Veloxiom-Signature: sha256=<hex hmac-sha256 of raw body> # Body shape { "event": "ping", "ts": "2026-06-17T12:00:00+00:00", "data": { ... } } # Verify (PHP) $expected = 'sha256=' . hash_hmac('sha256', $rawBody, $secret); if (hash_equals($expected, $_SERVER['HTTP_X_VELOXIOM_SIGNATURE'])) { /* trusted */ }

🏗️ Διασυνδέσεις ERP

Σύνδεση Veloxiom με το ERP σύστημά σας για συγχρονισμένη χρέωση, δεδομένα πελατών και οικονομικές αναφορές.

ERPΚατάστασηΤύπος Ενσωμάτωσης
ElorusactiveΠλήρης συγχρονισμός — τιμολόγια, πελάτες, πληρωμές
SoftOnecoming soonREST API integration
Epsilon Netcoming soonREST API integration
Entersoftcoming soonREST API integration
Galaxy / Realcoming soonREST API integration
QuickBooks OnlinebetaOAuth2 — πελάτες, τιμολόγια, πληρωμές μέσω ουράς συγχρονισμού
XerobetaOAuth2 — πελάτες, τιμολόγια, πληρωμές μέσω ουράς συγχρονισμού
1C:EnterprisebetaOData — πελάτες, τιμολόγια, πληρωμές μέσω ουράς συγχρονισμού

📨 Μορφή Απάντησης

Όλα τα API responses επιστρέφουν JSON. Επιτυχείς λειτουργίες περιλαμβάνουν ok: true.

// Success response { "ok": true, "data": { ... } } // Error response { "ok": false, "error": "missing_username" }

⏱️ Όρια Κλήσεων

ΕύροςΌριοΠαράθυρο
REST API v1 token120 requestsανά λεπτό, ανά token (HTTP 429 σε υπέρβαση)

Χρειάζεστε Βοήθεια;

Για υποστήριξη API και βοήθεια custom integrations, επικοινωνήστε μέσω της