aade-mydata-client
v2.0.1
Published
Node.js Client for AADE myDATA (my Digital Accounting and Tax Application) REST API v2.0.1
Maintainers
Readme
aade-mydata-client
Node.js Client for AADE myDATA (my Digital Accounting and Tax Application) REST API
Features
✅ HTTP requests to AADE myDATA REST API through axios ✅ XML to JSON conversion (currently myData API only supports response data in XML. The client parses these data in JSON format.) ✅ JSON to XML conversion (The client parses your JSON data to XML for the request body.) ✅ Javascript/Typescript support ✅ Compatible with myDATA REST API v2.0.1 (2026-03) ✅ Digital Goods Movement / Delivery Notes (Ψηφιακό Δελτίο Αποστολής)
Breaking changes since 1.x
AadeBookInvoiceType.paymentMethodsand.taxesTotalsare 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 fromhttps://mydata-dev.azure-api.nettohttps://mydataapidev.aade.gr, per AADE's v2.0.1 documentation.
References
Official AADE documentation, all under the myDATA technical specifications page:
- REST API for ERP users (v2.0.1) — the main spec this client implements
- REST API for the digital goods movement / delivery note (v2.0.1)
- XSD schemas (v2.0.1, zip) — mirrored under
src/xsd/v2.0.1in this repo (olderv1.0.2/v2.0.0schemas are kept alongside for reference) - Income/expenses classification combinations (xlsx) — which
classificationType/classificationCategorypairs are valid together
Installation
npm install -S aade-mydata-clientUsage
TypeScript
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
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 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
Contributors
If you want to contribute to this repository send me a message.
