Skip to content

myDATA

Issue Greek invoices via AADE timologio, get the MARK, keep one JSON per invoice, sync to your ERP (SAP B1 today; SoftOne, Pylon, Megasoft wanted). Claude skill, not a ΥΠΑΗΕΣ.

Install

$git clone https://github.com/palavogikos-collab/myDATA

Install command taken from the project's README or registry entry. Always review code before running it.

myDATA invoicing skill

Issue Greek invoices through AADE's free timologio application, get the MARK, keep one JSON per invoice, and push it into your ERP through a small adapter. Driven by a Claude skill: you say "invoice X to customer Y for Z euros", you approve a preview, everything else happens.

Works today with SAP Business One (Service Layer). A SoftOne (Soft1) adapter is drafted and waits for a real test. Adapters for Epsilon Pylon, Megasoft and others are the point of this repo being public. See Contributing.


What it is

A set of scripts and a SKILL.md that let an AI agent (Claude, through the Claude desktop app and the Chrome extension) do the full invoicing loop for a small Greek company:

  1. build the invoice in timologio (AADE's own e-invoicing app, free of charge),
  2. show you the PDF preview and stop,
  3. after your explicit "yes", issue it and receive the MARK,
  4. download the official PDF (with MARK and QR),
  5. write the invoice into the ERP, flagged as already transmitted, so the ERP's own myDATA connector does not send it a second time,
  6. email the PDF to the customer,
  7. keep a JSON file per invoice with every step recorded.

The JSON file is the single source of truth. timologio provides the MARK and the PDF, the ERP keeps the books, the JSON links the two. Tomorrow's ERP reads the same file.

Why it exists

From 2026 B2B e-invoicing is mandatory in Greece. The accepted channels are a certified provider (ΥΠΑΗΕΣ) or AADE's timologio. Providers charge per invoice plus yearly fees. For a company that issues a few dozen invoices a year the cost is out of proportion, and the ERP's myDATA connector alone does not satisfy the e-invoicing rule.

timologio is free, official and complete, but it is a web form. This repo turns that web form into something an agent can operate reliably, and closes the gap back to the ERP.

What it does, concretely

python3 scripts/issue.py new --vat 999999999 --item service --net 900 --descr "Παροχή υπηρεσιών, Οκτώβριος"

creates data/invoices/2026/DRAFT-....json and prints a spec. The agent injects scripts/timologio_client.js into the logged-in timologio tab and runs:

await TL.build(spec)      // fills the form using the app's own JS, captures the payload
await TL.preview()        // server-side validation + PDF, nothing issued
TL.showPdf()              // shown to the user, who says «ναι»
await TL.issue()          // -> { mark, aa }

then

python3 scripts/issue.py issued  DRAFT-... --mark 4000... --aa 12   # DRAFT -> MYDATA-000012
python3 scripts/issue.py pdf     MYDATA-000012                       # picks up printinvoice<mark>.pdf
python3 scripts/issue.py erp     MYDATA-000012 --dry-run             # shows the ERP body
python3 scripts/issue.py erp     MYDATA-000012 --yes                 # posts it
python3 scripts/issue.py email   MYDATA-000012                       # to / subject / body / attachment
python3 scripts/issue.py list

scripts/mydata_api.py is a read-only client for the myDATA REST API (RequestMyIncome, RequestMyExpenses, RequestTransmittedDocs, RequestDocs). It is used after every issuance to confirm the ERP did not re-transmit, and it is useful on its own for reconciliation.

What it is NOT

Similar plugs

Turn any codebase, with its docs, SQL schemas, configs, and PDFs, into a queryable knowledge graph. A /graphify skill for Claude Code, Cursor, Codex, and Gemini CLI: local…

Why use many token when few token do trick. Viral skill + proxy for coding agents that cuts 65% of tokens by talking like a caveman.