Get started

API Endpoint

https://wrapp.ai/api/v1/
                

The Wrapp API Service provides programmatic access and management of the client’s financial data. From accessing the client’s billing books to issuing all supported invoices to myDATA.

To use the Wrapp API Service, you need an API key. Please contact us at sales@wrapp.ai to get your own API key.

Login

# Here is a curl example
        
curl -L 'https://wrapp.ai/api/v1/login' \
-H 'Content-Type: application/json' \
-d '{
    "email": "tenant@example.com",
    "api_key": "xxxxxxxx"
}'
        
      

To use the API, first log in with the correct credentials by making a POST call to:
https://wrapp.ai/api/v1/login

Notice: The JWT Token expires after 24 hours


Response Success:
        
  {
  "data": {
    "type": "jwt",
    "attributes": {
      "jwt": "eyJhbGciOi...QZCe8F9xd3Xqu0"
    }
  }

        
Response Error:
        
  {
    "errors": [
        {
            "title": "Not valid user"
        }
    ]
  }
        
      

QUERY PARAMETERS

Field Type Description
api_key String (required) Your API key.
email String (required) The email address of the client

Vat Exemptions :: Index

# Here is a curl example
        
curl -L 'https://wrapp.ai/api/v1/vat_exemptions' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer xxxxxxxxxxxxxx'
        
      

To retrieve a list of all available VAT exemptions, make a GET call to:
https://wrapp.ai/api/v1/vat_exemptions


Response Success:
        
  [
    {
      "1": "Άρθρο 2 & 3"
    },
    {
      "2": "Άρθρο 5 (Παράδοση αγαθών)"
    },
    ...
  ]

        
Response Error:
        
  {
    "errors": [
        {
            "status": "401",
            "title": "Unauthorized"
        }
    ]
  }
        
      

HEADER PARAMETERS

Key Value
Accept: "application/json"
Authorization: "Bearer JWT"

Billing Books :: Index

# Here is a curl example
        
curl -L 'https://wrapp.ai/api/v1/billing_books' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer xxxxxxxxxxxxxx'
        
      

To retrieve a list of all available billing books, make a GET call to:
https://wrapp.ai/api/v1/billing_books

Response Success:
        
  [
    {
      "id": "xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "name": "Τιμ Παροχης",
      "series": "ΤΠΑ",
      "invoice_type_code": "2.1",
      "number": 3
    },
    {
      "id": "xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "name": "Απ Παροχης",
      "series": "ΕΑΠΑΡ",
      "invoice_type_code": "11.2",
      "number": 123
    },
    ...
  ]

        
Response Error:
        
  {
    "errors": [
        {
            "status": "401",
            "title": "Unauthorized"
        }
    ]
  }
        
      

HEADER PARAMETERS

Key Value
Accept: "application/json"
Authorization: "Bearer JWT"

For simplicity and automation, some invoice_type_codes are universal:
• Billing books with invoice_type_code 1.1 cover types 1.x
• Billing books with invoice_type_code 2.1 cover types 2.x
• Billing books with invoice_type_code 5.2 cover types 5.x
Example: Billing books with invoice_type_code 1.2 will default to 1.1.

Billing Books :: Create

# Here is a curl example
        
curl -L 'https://wrapp.ai/api/v1/billing_books' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer xxxxxxxxxxxxxx' \
-d '{
  "name": "Τιμολόγιο",
  "series": "ΕΤΠΑ",
  "number": 1,
  "invoice_type_code": "2.1"
}'
        
      

To create a new billing book, make a POST call to:
https://wrapp.ai/api/v1/billing_books


Response Success:
        
  {
    "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "name": "Τιμολόγιο",
    "series": "ΕΤΠΑ",
    "invoice_type_code": "2.1"
  }

        
Response Error:
        
  {
    "errors": [
        {
            "title": "Name το έχουν ήδη χρησιμοποιήσει"
        },
        {
            "title": "Series το έχουν ήδη χρησιμοποιήσει"
        }
    ]
  }
        
      

HEADER PARAMETERS

Key Value
Accept: "application/json"
Authorization: "Bearer JWT"

QUERY PARAMETERS

Field Type Description
name String (required) The name of the billing book.
series String (required) The serial identifier of the billing book.
number Integer (required) The unique number associated with the new billing book entry.
invoice_type_code String (required) The invoice type code for the invoices this billing book will handle. Examples include 1.1, 9.3 etc. For simplicity and automation, some invoice_type_codes are universal:
• Billing books with invoice_type_code 1.1 cover types 1.x
• Billing books with invoice_type_code 2.1 cover types 2.x
• Billing books with invoice_type_code 5.2 cover types 5.x
Example: Billing books with invoice_type_code 1.2 will default to 1.1.

Invoices :: Create

# Here is a curl example
        
curl -L 'https://wrapp.ai/api/v1/invoices' \
-Η 'Content-Type: application/json' \
-H 'Authorization: Bearer xxxxxxxxxxxxxx' \
-d '{
  "invoice_type_code": "2.1",
  "billing_book_id": "xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "payment_method_type": 1,
  "payment_details": "Bank: xxxxxxxxx, iban: xxxxxxxxxxx",
  "currency": "USD",
  "exchange_rate": 0.80,
  "net_total_amount": 20.00,
  "vat_total_amount": 4.80,
  "total_amount": 24.80,
  "payable_total_amount": 24.80,
  "correlated_invoices": [],
  "counterpart": {
    "name": "Γιάννης Ιωάννου",
    "country_code": "GR",
    "vat": "123456789",
    "city": "Αθήνα",
    "street": "Ερμού",
    "number": "0",
    "postal_code": "12345"
  },
  "invoice_lines": [{
    "line_number": 1,
    "name": "Name",
    "quantity": 1,
    "quantity_type": 1,
    "unit_price": 20.00,
    "net_total_price": 20.00,
    "vat_rate": 24,
    "vat_total": 4.80,
    "subtotal": 24.80,
    "vat_exemption_code": "",
    "classification_category": "category1_3",
    "classification_type": "E3_561_001"
  }]
}'
        


# Here is a curl example for invoice type code 8.2
        
curl -L 'https://wrapp.ai/api/v1/invoices' \
-Η 'Content-Type: application/json' \
-H 'Authorization: Bearer xxxxxxxxxxxxxx' \
-d '{
  "invoice_type_code": "8.2",
  "billing_book_id": "xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "payment_method_type": 1,
  "net_total_amount": 0,
  "vat_total_amount": 0,
  "total_amount": 1.50,
  "payable_total_amount": 1.50,
  "other_taxes_amount": 1.50,
  "counterpart": {
    "name": "Γιάννης Ιωάννου",
    "country_code": "GR",
    "vat": "123456789",
    "city": "Αθήνα",
    "street": "Ερμού",
    "number": "0",
    "postal_code": "12345"
  },
  "invoice_lines": [{
    "line_number": 1,
    "accommodation_tax": 1.50,
    "other_taxes_percent_category": "7",
    "other_taxes_amount": 1,50,
    "classification_category": "category1_95"
  }]
}'
        
      

To issue a new invoice, make a POST call to:
https://wrapp.ai/api/v1/invoices


Response Success:
        
  {
      "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "my_data_mark": "xxxxxxxxxxxxxx",
      "my_data_uid": "xxxxxxxxxxxxxxx",
      "my_data_qr_url": "https://mydataapidev.aade.gr/TimologioQR/QRInfo?q=xxxxxxxxx"
  }

        
Response Pending:
# To check if the invoice has been issued succesfully to myDATA, 
# we need to make a call to invoices status.
{ "status": "pending", "invoice_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" } Response Model Errors: { "status": "Invoice Errors", "errors": [ { "title": "Invoice type δεν συμπεριλαμβάνεται στη λίστα" }, { "title": "Invoice Type does not match selected Billing Book Invoice Type" } ] } Response myDATA Errors: { "status": "myDATA Errors", "errors": [ { "code": "313", "message": "Classification type E3_561_003 is forbidden for Classification category category1_3 combined with invoice type Item2_1" } ] }

HEADER PARAMETERS

Key Value
Accept: "application/json"
Authorization: "Bearer JWT"

QUERY PARAMETERS

Example code of invoice type 8.2 is included separately on the side section

Field Type Description
counterpart Object (required) Contains customer information for the invoice.
billing_book_id String (required) The ID of the billing book to be used for this invoice.
invoice_type_code String (required) The invoice type code, as specified by myDATA documentation (e.g., "1.1", "9.3").
payment_method_type Integer (required) The payment method type identifier.
payment_details String Contains details about the payment. Accepts special characters, for example \n for new line.
currency String The currency code. For example "USD", "NOK", etc.
exchange_rate Float (required if currency is defined) The exchange rate of the currency defined, rounded to a maximum of 2 decimal places.
other_taxes_amount Float (required for invoice type 8.2) Rounded to a maximum of 2 decimal places.
net_total_amount Float (required) The total net amount of the invoice, rounded to a maximum of 2 decimal places.
vat_total_amount Float (required) The total VAT amount of the invoice, rounded to a maximum of 2 decimal places.
total_amount Float (required) The total invoice amount, rounded to a maximum of 2 decimal places.
payable_total_amount Float (required) The total payable amount of the invoice, rounded to a maximum of 2 decimal places.
correlated_invoices Array An array containing the IDs of any correlated invoices.
Example: [ ] for none or [ 'xxxxxxxxx' , 'xxxxxxxxxx' ].
invoice_lines Array (required) An array of objects representing individual invoice line items.

COUNTERPART OBJECT

Field Type Description
name String (required) Full name of the counterpart
country_code String (required) Code of the client's country.
Example: "GR" for Greece
vat String (required) The client's tax id number.
city String (required) The client's city name.
street String (required) The client's street address.
number String (required) The client's street number.
postal_code String (required) The client's postal code.

PAYMENT METHOD TYPES

Code Description
0 Cash
1 Credit
2 Local bank account
3 Card
4 Cheque
5 Overseas bank account
6 Web banking transfer
7 Iris payment

INVOICE LINE OBJECT

Field Type Description
line_number Integer (required) The index number of the invoice line
name String (required) The name of the product or service.
Example: "Product 1"
quantity Integer (required) The quantity number of the product or service.
quantity_type Integer The corresponding quantity code for the specific product / service according to myDATA specification
unit_price Float (required) The price per unit for the corresponding product / service. Maximum 2 digits.
net_total_price Float (required) The net total price of the invoice line.
vat_rate Integer (required) The corresponding vat rate according to myDATA specifications.
vat_total Float (required) The total price if the invoice line for the specified vat rate. Maximum 2 digits.
subtotal Float (required) The sub total price of the invoice line. Maximum 2 digits.
vat_exemption_code Integer (required when vat_rate is zero) The appropriate vat exemption code according to myDATA specifications when vat_rate is zero.
classification_category String (required) The appropriate classification category according to myDATA specifications.
classification_type String (required) The appropriate classification type according to myDATA specifications.
other_taxes_amount Float (required for invoice type code 8.2) Rounded to a maximum of 2 decimal places.
accommodation_tax Float (required for invoice type code 8.2) Rounded to a maximum of 2 decimal places.
other_taxes_percent_category String (required for invoice type code 8.2) Valid values are: '6' , '7' , '8' , '9' , '10'

Invoices :: Status

# Here is a curl example
        
curl -L 'https://wrapp.ai/api/v1/invoices/123456-1234-1234-123456789012' \
-H 'Authorization: Bearer xxxxxxxxxxxxxx'
        
      

To get information about a specific invoice object make a GET call to:
https://wrapp.ai/api/v1/invoices/:id


Response Success:
        
  {
    "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "my_data_mark": "xxxxxxxxxxxxxx",
    "my_data_uid": "xxxxxxxxxxxxxxx",
    "my_data_qr_url": "https://mydataapidev.aade.gr/TimologioQR/QRInfo?q=xxxxxxxxx"
  }

        
Response Error:
        
  {
    "errors": [
        { "title": "Record not found" }
    ]
  }
        
      

HEADER PARAMETERS

Key Value
Authorization: "Bearer JWT"

REST URL PARAMETERS

Key Value
:id (required) The id of the invoice.