# aade-mydata-client

> Node.js Client for AADE myDATA (my Digital Accounting and Tax Application) REST API v2.0.1

Latest version **2.0.1** (published 2026-08-31) · MIT license · 0 weekly downloads

## Install

```sh
npm install aade-mydata-client
pnpm add aade-mydata-client
yarn add aade-mydata-client
bun add aade-mydata-client
```

## Health

**Score 60/100 (C)** — status: active.

Positive: has types; no vulnerabilities; recently updated; high maintenance score.

Warnings: low downloads; no esm support.

## Facts

| | |
|---|---|
| Version | 2.0.1 |
| Published | 2026-08-31 |
| First published | 2021-06-17 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 6 |
| Unpacked size | 565.1 KB |
| Known vulnerabilities | 0 (+25 in 3 direct dependencies) |
| Install scripts | no |
| GitHub stars | 0 |
| Author | John Makridis |
| Maintainers | johnmakridis |
| Keywords | AADE, myData, Greece, REST, API, delivery-note, invoicing |

## Links

- npm: https://www.npmjs.com/package/aade-mydata-client
- Repository: https://github.com/johnmakridis/aade-mydata-client
- Homepage: https://github.com/johnmakridis/aade-mydata-client#readme
- Issues: https://github.com/johnmakridis/aade-mydata-client/issues
- npm.io page: https://npm.io/package/aade-mydata-client

## Dependencies (6)

- [uuid](https://npm.io/package/uuid.md) ^8.3.2
- [axios](https://npm.io/package/axios.md) ^0.21.1
- [jsonix](https://npm.io/package/jsonix.md) ^3.0.0
- [xml-js](https://npm.io/package/xml-js.md) ^1.6.11
- [xml2js](https://npm.io/package/xml2js.md) ^0.4.23
- [moment-timezone](https://npm.io/package/moment-timezone.md) ^0.5.33

## Alternatives

- [launchdarkly-js-client-sdk](https://npm.io/package/launchdarkly-js-client-sdk.md) — 2.5M weekly downloads
- [@elastic/elasticsearch](https://npm.io/package/@elastic/elasticsearch.md) — 2.1M weekly downloads
- [@c8y/client](https://npm.io/package/@c8y/client.md) — 15.3K weekly downloads
- [@signaldb/maverickjs](https://npm.io/package/@signaldb/maverickjs.md) — 1.7K weekly downloads
- [@bbc/http-transport-cache](https://npm.io/package/@bbc/http-transport-cache.md) — 1.2K weekly downloads

## Recent versions

- 2.0.1 (latest) — 2026-08-31
- 2.0.0 — 2026-08-31
- 1.2.3 — 2021-07-01
- 1.2.2 — 2021-06-21
- 1.2.1 — 2021-06-21
- 1.2.0 — 2021-06-18
- 1.1.4 — 2021-06-17
- 1.1.3 — 2021-06-17
- 1.1.2 — 2021-06-17
- 1.1.1 — 2021-06-17

## README

# aade-mydata-client

[![npm version](https://img.shields.io/npm/v/aade-mydata-client.svg)](https://www.npmjs.com/package/aade-mydata-client)
[![license](https://img.shields.io/npm/l/aade-mydata-client.svg)](./LICENSE)
[![CI](https://github.com/johnmakridis/aade-mydata-client/actions/workflows/ci.yml/badge.svg)](https://github.com/johnmakridis/aade-mydata-client/actions/workflows/ci.yml)

Node.js Client for AADE myDATA (my Digital Accounting and Tax Application) REST API

## Features

✅ &nbsp;&nbsp;HTTP requests to AADE myDATA REST API through axios <br />
✅ &nbsp;&nbsp;XML to JSON conversion (currently myData API only supports response data in XML. The client parses these data in JSON format.)<br />
✅ &nbsp;&nbsp;JSON to XML conversion (The client parses your JSON data to XML for the request body.)<br />
✅ &nbsp;&nbsp;Javascript/Typescript support<br />
✅ &nbsp;&nbsp;Compatible with myDATA REST API v2.0.1 (2026-03)<br />
✅ &nbsp;&nbsp;Digital Goods Movement / Delivery Notes (Ψηφιακό Δελτίο Αποστολής)<br />

## Breaking changes since 1.x

- `AadeBookInvoiceType.paymentMethods` and `.taxesTotals` are now wrapper objects
  (`{ paymentMethodDetails: [...] }` / `{ taxes: [...] }`) instead of bare arrays, matching the
  actual myDATA XML schema (the old shape produced invalid XML for these two fields).
- The `dev` (non-`livemode`) base URL changed from `https://mydata-dev.azure-api.net` to
  `https://mydataapidev.aade.gr`, per AADE's v2.0.1 documentation.

## References

Official AADE documentation, all under the
[myDATA technical specifications page](https://www.aade.gr/mydata/tehnikes-prodiagrafes-ekdoseis-mydata):

- [REST API for ERP users (v2.0.1)](https://aade.gr/sites/default/files/2026-03/myDATA%20API%20Documentation%20v2.0.1_official_erp.pdf) — the main spec this client implements
- [REST API for the digital goods movement / delivery note (v2.0.1)](https://aade.gr/sites/default/files/2026-03/myDATA%20API%20Documentation_DeliveryNote_v2.0.1_official.pdf)
- [XSD schemas (v2.0.1, zip)](https://aade.gr/sites/default/files/2026-03/v2.0.1%20XSDs.zip) — mirrored under [`src/xsd/v2.0.1`](./src/xsd/v2.0.1) in this repo (older `v1.0.2`/`v2.0.0` schemas are kept alongside for reference)
- [Income/expenses classification combinations (xlsx)](https://aade.gr/sites/default/files/2026-03/syndiasmoi_xaraktirismwn_v2.0.1.xlsx) — which `classificationType`/`classificationCategory` pairs are valid together

## Installation
    npm install -S aade-mydata-client


## Usage

#### TypeScript

   ```ts
import { AADEmyDataClient } from 'aade-mydata-client';

class YourClass {

    public myDataClient: AADEmyDataClient;

    constructor() {

        this.myDataClient = new AADEmyDataClient({
            userId: 'YOUR_USER_ID',
            subscriptionKey: 'YOUR_SUBSCRIPTION_KEY',
            livemode: false // true for production API requests
        });

    }

    // Example call for RequestDocs
    async main(): Promise<void> {

        const invoices = await this.myDataClient.requestDocs({ mark: 0 });
        // this method returns Invoice[] for credentials you defined in the client above

    }

}
```

#### CommonJS
```js
const AADEmyDataClient = require('aade-mydata-client').AADEmyDataClient;

const myDataClient = new AADEmyDataClient({
    userId: 'YOUR_USER_ID',
    subscriptionKey: 'YOUR_SUBSCRIPTION_KEY',
    livemode: false // true for production API requests
});

const main = async () => {

    try {

        const invoices = await myDataClient.requestDocs({ mark: 0 });
        console.log(invoices);

    } catch (error) {

    }

}

main();

```

See [`docs/EXAMPLES.md`](./docs/EXAMPLES.md) for a runnable snippet of every method, including the
classification, VAT/E3 info, and delivery-note calls.

## Methods

#### `sendInvoices()`
Submits one or more invoices, including corrected/amending

#### `sendIncomeClassification()`
Submits one or more income classifications for already-submitted invoices

#### `sendExpensesClassification()`
Submits one or more expenses classifications for already-submitted invoices

#### `sendPaymentsMethod()`
Submits one or more payment methods for already-submitted invoices

#### `requestDocs()`
Returns all documents submitted by other users concerning this account (as recipient)

#### `requestTransmittedDocs()`
Returns all documents submitted by this account

#### `requestMyIncome()` / `requestMyExpenses()`
Returns income / expenses information for a date range

#### `requestVatInfo()` / `requestE3Info()`
Returns detailed VAT / E3 information for a date range

#### `cancelInvoice()`
Method for cancelling an invoice

### Ψηφιακό Δελτίο Αποστολής (digital goods movement / delivery notes)

#### `registerTransfer()`
Declares receipt of goods by a carrier — starts or hands off a shipment in transit

#### `confirmDeliveryOutcome()`
Declares the delivery outcome (by carrier) or confirms receipt (by recipient)

#### `rejectDeliveryNote()`
Declares total rejection of a shipment by the recipient

#### `getDeliveryNoteStatus()`
Returns the current status and full event history of a delivery note

#### `generateGroupQRCode()` / `requestGroupQRDetails()`
Groups multiple delivery notes' QR codes into one, and retrieves the individual QR codes back out of a group

## Author

<table>
	<tr>
		<td align="center"><a href="https://johnmakridis.github.io"><img src="https://avatars.githubusercontent.com/u/19326052?v=4" width="120px;" alt="John Makridis"/>	<br />John Makridis</a>
		</td>
	</tr>
</table>

## Contributors

If you want to contribute to this repository  <a href="https://johnmakridis.github.io">send me a message</a>.

---
_Source: https://npm.io/package/aade-mydata-client · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
