Greece myDATA invoices for AI agents: build AADE XML, transmit to myDATA, query by MARK.
Greece myDATA invoices for AI agents: build AADE XML, transmit to myDATA, query by MARK.
Greece Invoices (AADE myDATA national API) · v0.1.0 (latest)
by Wishpool.app
Greece Invoice MCP 🇬🇷 — How can my AI agent issue a myDATA τιμολόγιο (timologio) in Greece?
Remote MCP server that lets any AI agent issue Greece myDATA electronic invoices (τιμολόγιο / timologio) into the national AADE (ΑΑΔΕ) platform. It builds an AadeBookInvoiceType `` XML and transmits it under the merchant's own AADE credentials, returning the official MARK (unique registration number). Stateless, bring-your-own credentials, never stores anything.
Live endpoint: https://inv-gr.wishpool.app/mcp · Registry: app.wishpool/greece-invoice-mcp
Quick start
{
"mcpServers": {
"greece-invoice": {
"type": "http",
"url": "https://inv-gr.wishpool.app/mcp",
"headers": {
"x-aade-user-id": "",
"x-aade-subscription-key": ""
}
}
}
}
You register your ERP once on the AADE myDATA portal and receive a user id + subscription key (the developer/test rail issues them instantly). Requests default to the AADE test rail (no fiscal effect); add x-aade-mode: prod for the live rail. Your credentials never leave your side beyond the per-request header.
Tools
| Tool | What it does |
|---|---|
create_invoice |
Build an AadeBookInvoiceType invoice from counterpart_vat + lines (net_value, vat_rate 24/13/9/6/4/17/0) and transmit to AADE myDATA /SendInvoices. Returns the official MARK, invoice uid, qr_url + computed VAT totals. |
query_invoice |
Look up one of your own transmitted docs by mark via /RequestTransmittedDocs; found:true means AADE has it registered. Pass mark=0 to list from the start. |
Amounts are in EUR, VAT-exclusive per line. Greek VAT rates map to AADE vatCategory automatically: 24 (cat 1, mainland standard), 13 (2), 6 (3), 17 (4), 9 (5), 4 (6), 0 (7, exempt — needs a vat_exemption_category 1-31). invoice_type defaults to 1.1 (sales); use 2.1 for services, 5.1 for a credit note.
No cancel at the API level — corrections are issued as a credit note (invoice_type 5.1). Income classification (E3) is optional per line (income_classification_type / income_classification_category) — supply it if your accounting requires it.
Owner policy guardrails ride optional headers (x-agentpay-max-amount, x-agentpay-approval-above, x-agentpay-allowed-tools) — set by the human owner in client config; the agent cannot relax them.
Endpoints wrapped (AADE myDATA REST, ERP channel)
- Base: DEV
https://mydataapidev.aade.gr/· PRODhttps://mydatapi.aade.gr/myDATA/ - Headers forwarded:
aade-user-id,ocp-apim-subscription-key,Content-Type: text/xml - Send:
POST /SendInvoices(rawXML body) →withstatusCode+invoiceUid/invoiceMark/qrUrl - Query:
GET /RequestTransmittedDocs?mark={n}→ your transmitted docs with MARK greater thann
Develop
node test/serve.js # local server on :3237
node test/e2e.js # protocol + validation + VAT math + AadeBookInvoiceType structure + fake-header live probes
Safety
Pure stateless translation layer over the national AADE myDATA API. The user id + subscription key travel per-request in headers, nothing is stored. Privacy policy.
Sister servers
National e-invoicing, one family: Romania e-Factura (inv-ro) · Mexico CFDI (inv-mx) · Brazil NF-e (inv-br) · Chile DTE (inv-cl) · Peru CPE (inv-pe) · India GST (inv-in). Local payments in 81 countries: mcp.wishpool.app.
MIT licensed.