Skip to content

Issuing documents

Types, numbering, classifications, PDF, email to the recipient.

Is the income classification for E3 (incomeClassification) sent with the document, or is it a separate step after issuing?

It is sent with the document itself, in the same SendInvoices call, and it is your application's responsibility. Each income line has an incomeClassification (classificationType, classificationCategory and an amount equal to netValue), and invoiceSummary.incomeClassification holds the totals per type and category. For expenses (e.g. self-billing) you use expensesClassification. The values (e.g. E3_561_001 with category1_1) come from AADE's classification tables, depending on the business activity.

See: Invoices & receipts

Can I send income classifications retroactively for documents already issued through the Provider without a classification?

Not through the Provider API: through a certified e-invoicing provider, the classification is transmitted only together with the document, at the time of issue. For the old documents, the accountant can add the classifications in their accounting software or directly in myDATA. Alternatively, you need a separate integration with AADE's ERP channel (SendIncomeClassification method) with the client's myDATA credentials, outside Novus. For new documents, fix the payload so that it includes the classifications.

What does the API return after a document is issued, and can I print my own document with this data?

The response is synchronous, in the same SendInvoices call. With statusCode = Success you get invoiceMark (MARK), invoiceUid, authenticationCode, invoiceUrl/qrUrl (link to the PDF, printed as a QR code) and aadeQrUrl. On error, you get the statusCode and the errors. You can give the customer the Provider's PDF or print your own document. If you print your own, it must show at least the Provider's name and website, the QR code, the MARK, UID and Authentication Code, and the date and time of issue.

See: SendInvoices

Who sets the series and number (series, aa), are Greek letters accepted, and can I continue the numbering I used before the Provider?

series and aa are set only by your application, and the Provider transmits them unchanged. You make sure the numbering has no gaps and no duplicates. Greek characters in the series are supported (string up to 50 characters, "0" if there is no series). The Provider does not restrict how numbering continues, so you can continue from the number you had reached. Note: the same issuer, date, branch, type, series and number give the same UID, and the second submission is rejected as a duplicate.

See: SendInvoices

Are the fields lineUnitPrice, totalNetPriceBeforeDiscount and vatCategoryPercent required on document lines?

Yes. They are not sent to AADE, but they are data for the PDF (unit price, value before discount, VAT rate), and you send them on every line. When prices do not include VAT, show the net value in the value column.

See: SendInvoices

Can I print or send the document with my own template instead of the Provider's PDF?

Yes. The API always returns a ready-made Provider PDF (invoiceUrl) along with the document data, but you can produce your own PDF or printout. In that case, the document must show the Provider's name and website, the QR code (from invoiceUrl / qrUrl), MARK, UID, Authentication Code, the date and time of issue, the POS payment details where they exist, and the lost-connection notice for an offline issue. During certification you submit a sample of your printout (scenario B3), unless you give the customer the Provider's PDF.

See: Certification & go-live

Which issue date and time do I print on my own document, when the PDF is generated later than the issue?

Print the local date and time when the document was created (issued) in your system, not the moment the PDF is later generated or reprinted. The date must match the issueDate you sent, which through the Provider is today's date (except in the transmissionFailure = 1 case). The date and time must be legible.

See: Certification & go-live

Why is the proof of expenditure (type 3.1) I send rejected?

Type 3.1 is a purchase document, so for the issuer it is an expense. That is why, both on the lines (invoiceDetails) and in the summary (invoiceSummary), you send expensesClassification with category2_… categories, not incomeClassification. See the ready-made 3.1 example in the guide.

See: Invoices & receipts

Can I issue retail receipts through the API without a fiscal cash register or fiscal device?

Yes. Through the Provider you issue retail documents (11.x) and, in food service, the 8.6 order slips with the receipt that closes them, without a fiscal cash register (ΦΗΜ) or fiscal signature device (ΕΑΦΔΣΣ). The solution runs entirely in the cloud. The Provider transmits the documents to myDATA and produces a PDF with a QR code and all the required details. If your client makes B2C sales, the activation request also declares their internet service provider (ispDetails).

See: Invoices & receipts

How do I show a preview of the document PDF in the browser, since the endpoint returns it as a download (attachment)?

The PDF endpoint (invoiceUrl / GetInvoicePdf) deliberately returns the file as an attachment, so that ERPs download and store it. There is no parameter (e.g. ?preview=true) and no alternative header. For a preview, read the file on your side. Either serve it from your backend with Content-Disposition: inline, or in the frontend get it with fetch, read it as a Blob and open a local object URL.

See: Other endpoints

How do I send a type 1.5 invoice (settlement of third-party sales – fee from third-party sales)?

You send it with SendInvoices and invoiceType = 1.5, with the same JSON structure as any invoice (issuer, counterpart, invoiceHeader, paymentMethods, invoiceDetails, invoiceSummary, providerAdditionalInvoiceDetails). The difference is in the lines: each line declares invoiceDetailType 1 (settlement of third-party sales) or 2 (fee from third-party sales), and AADE requires at least one line of each (error 246). Classifications follow AADE's combinations for type 1.5, and the summary holds the totals of the line classifications (income and expenses, where present).

See: Lines & payments

Is issuing a document synchronous, or does the result come by webhook?

Synchronous. SendInvoices returns the result in the same call: statusCode, MARK, UID, Authentication Code, QR and PDF link, or the errors. You do not need a webhook. The only exception is statusCode = Offline: the document has been issued and the Provider transmits it as soon as AADE is back. You find the MARK later with RequestTransmittedDocs.

See: How it works

Who emails the document to the recipient, and can I customize the sender, subject and text?

The Provider sends the PDF to providerAdditionalInvoiceDetails.additionalDetails.recipients.email, if you fill it in, and to the addresses that AADE returns for the recipient, if the recipient has declared that they receive documents electronically. If there is neither, no email is sent. The sender, subject and text are fixed. You can also send your own email from your application with the invoiceUrl.

See: SendInvoices

Can a subscription platform or e-shop automatically issue a document through the API after each successful card charge on a payment gateway?

Yes. Your platform charges the card through the payment gateway, receives the confirmation, and then calls SendInvoices to issue the document (e.g. 11.2 for a consumer, 2.1 for a business), with no manual step. Novus does not connect directly to the payment gateway. Your developer builds the gateway → platform → Provider API flow. As the payment method you declare type 7 (POS / e-POS). The provider signature (skipSignature=false) is only needed when the terminal is "locked" under A.1155/2023, so confirm whether this applies to your gateway.

See: How it works

Does the API accept AADE codes directly (document types, VAT, classifications, payment methods), and which document types does it support?

Yes, the API accepts the official myDATA codes directly: invoiceType (e.g. 2.1, 11.2, 5.1), vatCategory, vatExemptionCategory (required when vatCategory = 7), incomeClassification / expensesClassification and paymentMethods[].type. Through a Provider, however, only types 1.1 to 11.5 are transmitted. Types 12.x to 17.x (recipient documents, expenses, adjustment entries) are never sent by a Provider. All codes are in the "AADE code tables" section of the documentation, and there are ready-made JSON examples for the main types.

See: Document types

How do I declare the Climate Crisis Resilience Fee for accommodation?

The fee is issued as a type 8.2 document (climate crisis resilience fee). On the line, it is declared as an other tax with an amount: otherTaxesPercentCategory from 20 to 30, depending on the type of accommodation, and otherTaxesAmount = amount per night × nights, with netValue 0, vatCategory 8 and classification category1_95. totalOtherTaxesAmount, totalGrossValue and the payment method equal the fee amount. A ready-made JSON is included in the examples of the "Invoices & receipts" guide.

See: Invoices & receipts

Can I transmit documents with an earlier issue date through the Provider, if they were not sent on the right day?

No. Through the Provider, issueDate must be today's date (otherwise AADE rejects it with error 238), because the Provider only transmits in real time. The only exception is when your application could not reach the Provider: then you send with "transmissionFailure": 1 and the original date, but only within 1 day of the issueDate. Documents that were never sent cannot be transmitted retroactively, so check that every submission actually went through, and ask the accountant how to handle such documents.

See: SendInvoices

Are there ready-made JSON examples for an intra-community supply invoice (1.2) and a supplementary document (1.6)?

The current documentation has no ready-made JSON for 1.2 and 1.6 (there are examples for 1.1, 2.1, 3.1, 5.1, 5.2, 8.2 and 11.x). Both are issued with the same SendInvoices, by changing invoiceType and the related fields. In a 1.2, the recipient is foreign (with name and address) and the usual classification is E3_561_005. A 1.6 does not accept multipleConnectedMarks. You can request samples for 1.2 and 1.6 from Novus.

See: Invoices & receipts

Can I issue a document through the Provider that is not transmitted to AADE, e.g. for a pre-payment in a tax-free process run by a third-party service?

No. Every document issued through the Provider gets a MARK and is transmitted to myDATA at the time of issue. There is no "non-transmitted" document, just as there is none on a cash register. For tax free run by an external service, confirm with the accountant how to document the pre-payment and the retail credit note for the refunded VAT.

See: How it works

How do I send a document (e.g. a simplified 11.3 without VAT) so that the amount is classified in myDATA as informational and not as income?

The classification is not set by the series or by the Provider. It comes from the incomeClassification that your application sends in SendInvoices. On the lines (invoiceDetails[].incomeClassification), send classificationCategory = category1_95 (other informational income data) without a classificationType (E3 code), with an amount equal to netValue. Make the same change in invoiceSummary.incomeClassification, with the total net value as the amount. Lines with real income keep the normal classification (category1_x with E3). The accountant decides which case applies.

See: Income / expense classifications