Read Me First

Using a third-party invoicing provider [provider for short] indicates your choice or obligation to do so. 
Using a provider has several advantages over invoicing, including the responsibility for correct syntax and sending the invoice to myDATA, which is exclusively his. 
To connect with an invoicing provider through myDATA.DLL, you will need the following classes, methods, and objects:

  1. SendInvoice Class: This class is general, regardless of whether or not you use a provider. In any case, you'll need to create an invoice object.
  2. provLine Object: This is the extra line of information a provider needs in order to issue the invoice.
  3. extraDetails Object: This object contains invoice headers and extra details every provider needs. Even if some of them may exist in the invoice object, the provider needs them separately.

For B2G Transactions you will also need thr following methods:

  1. getGovs Method: This method returns a Dictionary containing all Government Organizations with their IDs. 
    Format: {<govID>-<VatNumber>, <Full Name>} 
    Example: {"1234.5678.9012-123456789", "Gov Organization"}
  2. getPeppolCPV Method: This method returns all the available Item IDs according to Peppol.
  3. getPeppolItemClass Method: This method returns all the available Item Classifications according to Peppol.
  4. getPeppolMeasurementUnit Method: This method returns all the available Measurement Units according to Peppol.
  5. getPeppolTaxCategory Method: This method returns all the available Tax Categories according to Peppol.
  6. getPeppolVatex Method: This method returns all the available Vat Exemption Reasons according to Peppol.
  7. isGov Method: This method checks if the provided Greek Vat Number belongs to a Government Organization.

Now it is time to choose your provider. The supported providers are:

ProviderContact Details

Class to Use

Supports B2G

Invoice Details and Obligations

ILYDA S.A.

Website: https://www.ilyda.com/index.php/en/ 
Email: info@ilyda.com 
Phone Number: 0030-210 670 5000

ProvIlyda Class

YES

You design and issue each invoice, except for B2G invoices. 
The QR URL is used to display B2G invoices.

On any invoice you design, you must display the provider's MARK, UID, HASH, Name and the text "2021_09_108ILYDA_001_ Meg myData_V1_08092021".

ORIAN S.A.Website: https://orian.gr/?lang=en 
Email: support@orian.gr 
Phone Number: 0030-210 331 6533
ProvOrian ClassYES

You don't have to design any kind of invoice if you don't want to. ORIAN will send the final invoice to the counterpart via email. 
If you want to see the final invoice and print it, use the QR URL.  
The provider supports custom design invoices with an additional charge after communication.

If you want to design your own invoice, you must display the provider's MARK, UID, HASH, Name and the text "2023_07_115ORIAN_001_Orian MyInvoices_V1_07072023".

You must keep the Invoice ID in your database.

More providers are coming soon

Each provider has an additional fee, which is not included in the cost of this library. To learn about cost and how to try the connection with the selected provider, contact them. 
 
Disclaimer: Connecting to any of the supported providers generates no income for us. The choice is absolutely yours, and the agreement on provider usage is between you and the provider.

Remarks
 

General rules and guide for sending an invoice using a Provider

  1. Create the invoice as it would be without the provider, and then fill in the provider data (ex ilydaData).
  2. Each invoice must have the same number of rows as the provLine. Rule: invoice.lines.Count = <providerData>.invoiceLines.Count; 
    Example: invoice.lines.Count = ilydaData.invoiceLines.Count;

For B2G transactions using an Invoicing Provider:

  1. The difference between B2B and B2G transactions are: 
    a. extraDetails.b2g = true/false; 
    b. B2G transactions must have the fields extraDetails.contractReference and extraDetails.projectReference filled.
  2. When a B2G transaction occurs without a contract in place then extraDetails.contractReference = 0; and extraDetails.projectReference = "3|0";.
  3. The Provider can send only income invoice types, which you can get using myDATATools.getInvoiceTypeProvider
    For any other case, you must use the SendInvoices.SendInvoice method.

Summary 
First, implement the ERP code samples. At their core, ERP code samples and third-party Provider code samples are exactly the same. 
After that, just add the provider data (ex. ilydaData) at the end, and use the necessary class (ex. ProvIlyda) to send the invoice.

In this article

Definition