Skip to main content

Greece — myDATA / AADE Sandbox Onboarding

Operational guide for getting test credentials at AADE myDATA sandbox.

PropertyValue
AuthorityAADE (Independent Authority for Public Revenue)
Sandbox base URLhttps://mydata-dev.azure-api.net
CostFree
Time to provision1-3 days
Identity requiredGreek AFM + TaxisNet personal login

Steps

  1. Log into TaxisNet at taxisnet.gr with your personal Greek tax credentials.
  2. From the AADE portal myaade.gov.gr → Manage Web Services Authentication Users, create a dedicated myDATA REST API user (sub-account, not the human login).
  3. Note the new user's aade-user-id — this is NOT your AFM, it's a separate API-user identifier.
  4. Register on the AADE Azure APIM developer portal at mydata-dev.developer.azure-api.net to get a Subscription Key.
  5. Sandbox accepts header Ocp-Apim-Subscription-Key; production uses Subscription-Key (note the difference).
  6. Test with a RequestDocs call against /RequestDocs?dateFrom=...&dateTo=....

GitHub secrets to set

GR_AADE_USER_ID
GR_AADE_SUBSCRIPTION_KEY_SANDBOX
GR_AADE_SUBSCRIPTION_KEY_PROD
GR_AADE_AFM

Gotchas

  • aade-user-id ≠ AFM. This is the most common point of confusion. The aade-user-id is a separately-spawned API user; the AFM is your tax number.
  • Subscription key header name differs sandbox vs productionOcp-Apim-Subscription-Key in sandbox, Subscription-Key in production. Both must be configured if you want both environments tested.
  • TPS limits enforced at Azure APIM, not at certificate level. Default sandbox throughput is generous; production has tighter limits unless you're an accredited provider.
  • Type B (counterpart-classification) requires a two-leg flow that sandbox-nightly should exercise — adapter at rust/adapters/greece/src/state.rs has the state machine.
  • Provider-channel (/myDataProvider/...) is for accredited e-invoicing providers; not Phase-1 scope.

Non-resident path

AADE has an explicit developer programme accessible to foreign software vendors.

  • Subscription Key from the Azure APIM portal does NOT require a Greek AFM — it is software-vendor-bound, issued against the Azure account.
  • aade-user-id is a software-side TaxisNet sub-account. For sandbox you can spin one up without being a Greek taxpayer if you have any TaxisNet login. TaxisNet itself is open to non-residents on application.
  • Production constraint. The issuer AFM goes in the payload; the merchants we serve must be Greek taxpayers. The platform does not need a Greek entity for the sandbox or for serving merchants — it needs one only if Zyntem itself issues Greek invoices on its own books.
  • Cheapest path: register on mydata-dev.developer.azure-api.net as a software vendor. ~1 week. No local presence needed.
  • Research doc: greece.md
  • Adapter crate: rust/adapters/greece/
  • Sandbox tests: rust/adapters/greece/tests/sandbox.rs