app.wishpool/greece-invoice-mcp icon

Greece Invoices (AADE myDATA national API)

by Wishpool.app

app.wishpool/greece-invoice-mcp

Greece myDATA invoices for AI agents: build AADE XML, transmit to myDATA, query by MARK.

Version 0.1.0 · latest
Data
Remote (HTTP)
View source

Greece Invoices (AADE myDATA national API) · v0.1.0 (latest)

by Wishpool.app

38

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/ · PROD https://mydatapi.aade.gr/myDATA/
  • Headers forwarded: aade-user-id, ocp-apim-subscription-key, Content-Type: text/xml
  • Send: POST /SendInvoices (raw XML body) → with statusCode + invoiceUid / invoiceMark / qrUrl
  • Query: GET /RequestTransmittedDocs?mark={n} → your transmitted docs with MARK greater than n

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.