openapi: 3.0.3
info:
title: 'Invoice Portal'
description: ''
version: 1.0.0
servers:
-
url: 'https://dev.invoiceportal.gr'
paths:
/api/v2/order-notes/pending:
get:
summary: 'Pending Order Notes'
operationId: pendingOrderNotes
description: ''
parameters:
-
in: query
name: vat_number
description: ''
example: '998914851'
required: true
schema:
type: string
description: ''
example: '998914851'
nullable: false
-
in: query
name: branch
description: ''
example: 0
required: true
schema:
type: string
description: ''
example: 0
nullable: false
-
in: query
name: table
description: ''
example: 'table #1'
required: false
schema:
type: string
description: ''
example: 'table #1'
nullable: false
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
table: 'table #1'
invoices:
uid: 69C235338728CF9E2429E90348E62FF1D357B85C
mark: '400001929261975'
authentication_code: 69C235338728CF9E2429E90348E62FF1D357B85C
issue_date: '2024-09-18 14:55:41.000'
items:
-
name: 'Item Name'
value: '100.00'
quantity: 4
seller_id: e7314833-f451-42b7-8f8a-533b78015187
-
name: 'Item 2'
value: '8.00'
quantity: 1
seller_id: 643379a0-963e-405d-b544-4af3cbaa0372
properties:
data:
type: array
example:
-
table: 'table #1'
invoices:
uid: 69C235338728CF9E2429E90348E62FF1D357B85C
mark: '400001929261975'
authentication_code: 69C235338728CF9E2429E90348E62FF1D357B85C
issue_date: '2024-09-18 14:55:41.000'
items:
-
name: 'Item Name'
value: '100.00'
quantity: 4
seller_id: e7314833-f451-42b7-8f8a-533b78015187
-
name: 'Item 2'
value: '8.00'
quantity: 1
seller_id: 643379a0-963e-405d-b544-4af3cbaa0372
items:
type: object
properties:
table:
type: string
example: 'table #1'
invoices:
type: object
properties:
uid:
type: string
example: 69C235338728CF9E2429E90348E62FF1D357B85C
mark:
type: string
example: '400001929261975'
authentication_code:
type: string
example: 69C235338728CF9E2429E90348E62FF1D357B85C
issue_date:
type: string
example: '2024-09-18 14:55:41.000'
items:
type: array
example:
-
name: 'Item Name'
value: '100.00'
quantity: 4
seller_id: e7314833-f451-42b7-8f8a-533b78015187
-
name: 'Item 2'
value: '8.00'
quantity: 1
seller_id: 643379a0-963e-405d-b544-4af3cbaa0372
items:
type: object
properties:
name:
type: string
example: 'Item Name'
value:
type: string
example: '100.00'
quantity:
type: integer
example: 4
seller_id:
type: string
example: e7314833-f451-42b7-8f8a-533b78015187
tags:
- Company
/api/v2/companies:
post:
summary: 'Invite a company'
operationId: inviteACompany
description: "Create and invite a company to Invoice Portal.\nYou can also assign one or more invoice buckets to the company, so it can start issuing right away.\n"
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
link: 'https://invoiceportal.gr/XXXX'
properties:
link:
type: string
example: 'https://invoiceportal.gr/XXXX'
400:
description: ''
content:
application/json:
schema:
oneOf:
-
description: ''
type: object
example:
message: 'Invalid Vat Number'
properties:
message:
type: string
example: 'Invalid Vat Number'
-
description: ''
type: object
example:
message: 'Company Already Exists'
properties:
message:
type: string
example: 'Company Already Exists'
tags:
- Company
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
email:
type: string
description: "The admin user's email address"
example: admin@example.com
nullable: false
vat_number:
type: string
description: 'The VAT Number of the company'
example: '801082480'
nullable: false
reseller_email:
type: string|null
description: "An extra address that receives the company's invitations and notifications"
example: reseller@example.com
nullable: false
buckets:
type: array
description: ''
example:
- []
items:
type: object
properties:
branch:
type: string
description: 'The branch of the company. If null, the bucket will be available to all branches'
example: '0'
nullable: false
invoices:
type: string
description: 'Number of invoices to make available'
example: '1000'
nullable: false
expires_at:
type: string
description: 'Expiration date for the bucket. Must be after today'
example: '2026-09-14T01:02:03Z'
nullable: false
required:
- branch
- invoices
- expires_at
send_email:
type: boolean
description: 'Send an invitation email to the admin user. Defaults to false'
example: false
nullable: false
tags:
type: array
description: 'Names of existing reseller tags to attach to the company'
example:
- retail
items:
type: string
required:
- email
- vat_number
'/api/v2/companies/{vatNumber}':
put:
summary: 'Update a company'
operationId: updateACompany
description: 'Update the editable fields of a company.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: ok
properties:
message:
type: string
example: ok
400:
description: ''
content:
application/json:
schema:
type: object
example:
message: 'Company Not Found'
properties:
message:
type: string
example: 'Company Not Found'
tags:
- Company
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
reseller_email:
type: string|null
description: "An extra address that receives the company's invitations and notifications. Send null to remove it"
example: reseller@example.com
nullable: false
parameters:
-
in: path
name: vatNumber
description: ''
example: '998914851'
required: true
schema:
type: string
'/api/v2/companies/{vatNumber}/status':
get:
summary: Status
operationId: status
description: "Get information regarding the current status of a company.\nThe following statuses are available:\n- `PENDING`: The company hasn't completed the onboarding process.\n- `ACTIVE`: The company is active and able to issue invoices.\n- `SUSPENDED`: The company is suspended and cannot issue invoices.\n- `BANNED`: The company has been banned and is unable to issue invoices\n\n"
parameters: []
responses:
200:
description: 'Success, company has 100/200 invoices available'
content:
application/json:
schema:
type: object
example:
status: ACTIVE
onboarding_status: null
reseller_email: reseller@example.com
available: 35
used: 20003
capacity: 20038
statement:
b2c: true
b2b: false
invoice_provider:
name: 'Invoice Portal'
site: 'https://invoiceportal.gr'
license: '2024_07_122BUSINESS CLOUD_001_Invoice Portal_V1_25072024'
aade_provider_id: 22
buckets:
-
branch: 0
capacity: 38
available: 35
used: 3
expires_at: '2024-08-10T00:00:00.000000Z'
created_at: '2024-07-16T18:27:27.000000Z'
updated_at: '2024-08-07T10:10:34.000000Z'
-
branch: null
capacity: 20000
available: 0
used: 20000
expires_at: null
created_at: '2024-07-16T18:27:27.000000Z'
updated_at: '2024-07-16T18:27:27.000000Z'
properties:
status:
type: string
example: ACTIVE
onboarding_status:
type: string
example: null
reseller_email:
type: string
example: reseller@example.com
available:
type: integer
example: 35
used:
type: integer
example: 20003
capacity:
type: integer
example: 20038
statement:
type: object
properties:
b2c:
type: boolean
example: true
b2b:
type: boolean
example: false
invoice_provider:
type: object
properties:
name:
type: string
example: 'Invoice Portal'
site:
type: string
example: 'https://invoiceportal.gr'
license:
type: string
example: '2024_07_122BUSINESS CLOUD_001_Invoice Portal_V1_25072024'
aade_provider_id:
type: integer
example: 22
buckets:
type: array
example:
-
branch: 0
capacity: 38
available: 35
used: 3
expires_at: '2024-08-10T00:00:00.000000Z'
created_at: '2024-07-16T18:27:27.000000Z'
updated_at: '2024-08-07T10:10:34.000000Z'
-
branch: null
capacity: 20000
available: 0
used: 20000
expires_at: null
created_at: '2024-07-16T18:27:27.000000Z'
updated_at: '2024-07-16T18:27:27.000000Z'
items:
type: object
properties:
branch:
type: integer
example: 0
capacity:
type: integer
example: 38
available:
type: integer
example: 35
used:
type: integer
example: 3
expires_at:
type: string
example: '2024-08-10T00:00:00.000000Z'
created_at:
type: string
example: '2024-07-16T18:27:27.000000Z'
updated_at:
type: string
example: '2024-08-07T10:10:34.000000Z'
404:
description: ''
content:
application/json:
schema:
type: object
example:
message: 'Not Found'
properties:
message:
type: string
example: 'Not Found'
tags:
- Company
parameters:
-
in: path
name: vatNumber
description: ''
example: '998914851'
required: true
schema:
type: string
'/api/v2/companies/{vatNumber}/resend-email':
post:
summary: 'Resend Invitation email'
operationId: resendInvitationEmail
description: 'Resend the invitation email to a company. The company **must** be in a PENDING status.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
link: 'https://invoiceportal.gr/XXX'
properties:
link:
type: string
example: 'https://invoiceportal.gr/XXX'
tags:
- Company
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
email:
type: string|null
description: 'Optional override email address'
example: user@example.com
nullable: false
parameters:
-
in: path
name: vatNumber
description: ''
example: '998914851'
required: true
schema:
type: string
'/api/v2/companies/{vatNumber}/renew-contract':
post:
summary: 'Renew Contract'
operationId: renewContract
description: "Restart the onboarding process of a company, so it can sign a new contract.\nThe company's status is set to PENDING_LINK and the onboarding link is returned.\n"
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
link: 'https://invoiceportal.gr/XXX'
properties:
link:
type: string
example: 'https://invoiceportal.gr/XXX'
400:
description: ''
content:
application/json:
schema:
type: object
example:
message: 'Company Not Found'
properties:
message:
type: string
example: 'Company Not Found'
tags:
- Company
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
send_email:
type: boolean
description: 'Send the onboarding email to the company'
example: true
nullable: false
email:
type: string|null
description: 'Optional override email address'
example: user@example.com
nullable: false
required:
- send_email
parameters:
-
in: path
name: vatNumber
description: ''
example: '998914851'
required: true
schema:
type: string
'/api/v2/companies/{vatNumber}/invoices':
post:
summary: 'Assign invoices to a company'
operationId: assignInvoicesToACompany
description: ''
parameters: []
responses: { }
tags:
- Company
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
buckets:
type: array
description: ''
example:
- []
items:
type: object
properties:
branch:
type: 'int?'
description: 'The branch in which the invoices will be available. If null the invoices will be available to ALL branches'
example: 2
nullable: false
expires_at:
type: string
description: ''
example: '2030-12-31T23:59:59Z'
nullable: false
invoices:
type: integer
description: 'The number of invoices to assign'
example: 1000
nullable: false
required:
- branch
- expires_at
- invoices
required:
- buckets
parameters:
-
in: path
name: vatNumber
description: ''
example: '801082480'
required: true
schema:
type: string
'/api/v2/companies/{vatNumber}/activate':
post:
summary: 'Activate a company'
operationId: activateACompany
description: "Activate a company.\nThe company must have completed the onboarding proccess."
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: ok
properties:
message:
type: string
example: ok
400:
description: ''
content:
application/json:
schema:
oneOf:
-
description: ''
type: object
example:
message: 'Invalid Vat Number'
properties:
message:
type: string
example: 'Invalid Vat Number'
-
description: ''
type: object
example:
message: 'Onboarding proccess incomplete'
properties:
message:
type: string
example: 'Onboarding proccess incomplete'
tags:
- Company
parameters:
-
in: path
name: vatNumber
description: ''
example: '801082480'
required: true
schema:
type: string
'/api/v2/companies/{vatNumber}/branches':
post:
summary: 'Store Branch'
operationId: storeBranch
description: "Stores a branch of a company. Branches are unique by their serial number.\nIf you store a branch with a serial number that already exists, the existing branch will be updated instead"
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: ok
properties:
message:
type: string
example: ok
tags:
- Company
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
serial_number:
type: integer
description: ''
example: 1
nullable: false
street:
type: string
description: ''
example: 'Mixalakopoulou 38'
nullable: false
city:
type: string
description: ''
example: Athens
nullable: false
zip_code:
type: string
description: ''
example: '99999'
nullable: false
required:
- serial_number
- street
- city
- zip_code
parameters:
-
in: path
name: vatNumber
description: ''
example: '998914851'
required: true
schema:
type: string
/api/v2/transform:
post:
summary: 'Map a JSON invoice to UBL & AADE xml'
operationId: mapAJSONInvoiceToUBLAADEXml
description: ''
parameters:
-
in: query
name: output
description: 'If provided only the selected xml will be returned'
example: aade
required: true
schema:
type: ubl|aade
description: 'If provided only the selected xml will be returned'
example: aade
nullable: false
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
aade: '**xml file**'
peppol: '**xml file**'
properties:
aade:
type: string
example: '**xml file**'
peppol:
type: string
example: '**xml file**'
tags:
- Invoices
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
uid:
type: string
description: "See AADE's documentation for how to generate this field. It is used as a checksum, to verify the invoice's integrity."
example: F2B1762EF3380A47FDDD74FC14BD4F9E4FFF12AE
nullable: true
transmission_failure:
type: string
description: 'A flag signifying a transmission failure. Should either be AADE_DOWN (transmissionFailure_2) or ERP_DOWN (transmissionFailure_1).'
example: null
nullable: true
enum:
- AADE_DOWN
- ERP_DOWN
issue_date:
type: string
description: 'The issue date of the invoice. Must be in Europe/Athens. Must be a valid date in the format Y-m-d H:i:s.'
example: '2024-07-26 10:03:16'
nullable: false
self_pricing:
type: boolean
description: 'Defaults to false.'
example: false
nullable: true
dispatch_date:
type: string
description: 'Must be a valid date in the format Y-m-d H:i:s.'
example: '2026-09-25 10:00:00'
nullable: true
vehicle_number:
type: string
description: ''
example: ΙΚΤ1234
nullable: true
loading_address:
type: object
description: ''
example: null
nullable: true
properties:
postal_code:
type: string
description: ''
example: null
nullable: true
city:
type: string
description: ''
example: null
nullable: true
number:
type: string
description: ''
example: null
nullable: true
street:
type: string
description: ''
example: null
nullable: true
delivery_address:
type: object
description: ''
example: null
nullable: true
properties:
postal_code:
type: string
description: ''
example: null
nullable: true
city:
type: string
description: ''
example: null
nullable: true
number:
type: string
description: ''
example: null
nullable: true
street:
type: string
description: ''
example: null
nullable: true
start_shipping_branch:
type: number
description: ''
example: null
nullable: true
complete_shipping_branch:
type: number
description: ''
example: null
nullable: true
vat_payment_suspension:
type: boolean
description: 'Defaults to false.'
example: false
nullable: true
correlated:
type: array
description: ''
example:
- 4.0000192972214E+14
items:
type: number
comments:
type: string
description: validation.max.
example: 'Free text'
nullable: true
gross_value:
type: number
description: ''
example: 124.0
nullable: true
header:
type: object
description: ''
example: []
nullable: false
properties:
code:
type: string
description: "For more info, view AADE's documentation."
example: '11.1'
nullable: false
enum:
- '1.1'
- '1.2'
- '1.3'
- '1.4'
- '1.5'
- '1.6'
- '2.1'
- '2.2'
- '2.3'
- '2.4'
- '3.1'
- '3.2'
- '4'
- '5.1'
- '5.2'
- '6.1'
- '6.2'
- '7.1'
- '8.1'
- '8.2'
- '8.4'
- '8.5'
- '8.6'
- '9.1'
- '9.2'
- '9.3'
- '10.1'
- '10.2'
- '11.1'
- '11.2'
- '11.3'
- '11.4'
- '11.5'
- '12'
- '13.1'
- '13.2'
- '13.3'
- '13.4'
- '13.30'
- '13.31'
- '14.1'
- '14.2'
- '14.3'
- '14.4'
- '14.5'
- '14.30'
- '14.31'
- '15.1'
- '16.1'
- '17.1'
- '17.2'
- '17.3'
- '17.4'
- '17.5'
- '17.6'
serial_number:
type: string
description: ''
example: 53
nullable: false
series:
type: string
description: "The invoice's series. Defaults to 0."
example: ΤΔΑ-Α
nullable: false
special_invoice_category:
type: number
description: 'Special Invoice Category. For F&B, use 12.'
example: 12.0
nullable: true
is_cancel_order:
type: boolean
description: 'Special flag, which if true cancels all correlated invoices of type 8.6.'
example: false
nullable: true
table_name:
type: string
description: 'The name of the table, if F&B. Max length is 50. validation.max.'
example: A1
nullable: true
is_fuel_invoice:
type: boolean
description: ''
example: null
nullable: true
reverse_delivery_note_purpose:
type: integer
description: 'Marks the delivery note as reverse, with this purpose. Maps to reverseDeliveryNotePurpose. For more info, view AADE''s documentation.'
example: null
nullable: true
enum:
- 1
- 2
- 3
- 4
- 5
receiving_note_purpose:
type: object
description: 'Receiving notes only. code maps to receivingNotePurpose. display_name maps to otherReceivingNotePurposeTitle, used when the code is 7. For more info, view AADE''s documentation.'
example: null
nullable: true
properties:
code:
type: integer
description: 'This field is required when header.receiving_note_purpose is present.'
example: null
nullable: false
enum:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
display_name:
type: string
description: ''
example: null
nullable: true
to_weigh:
type: boolean
description: ''
example: null
nullable: true
non_obligated_recipient:
type: boolean
description: 'Delivery notes only. Flags the recipient as not obligated (Μη Υπόχρεος Λήπτης). Defaults to false.'
example: false
nullable: true
without_digital_transport_tracking:
type: boolean
description: 'Delivery notes only. Flags the movement as without digital transport tracking (Χωρίς Ψηφιακή Παρακολούθηση Διακίνησης). Defaults to false.'
example: false
nullable: true
required:
- code
- serial_number
- series
move_purpose:
type: string
description: 'The purpose of the movement, 1 through 20. Either the code as a string, or an object {code, display_name}.'
example: '1'
nullable: true
currency:
type: object
description: ''
example: []
nullable: false
properties:
code:
type: string
description: 'ISO 4217 code of the currency. validation.max.'
example: EUR
nullable: false
exchange_rate:
type: number
description: '5 decimal places required. If the currency is EUR, defaults to 1.00000. This field is required unless currency.code is in EUR. validation.min.'
example: 1.0
nullable: false
required:
- code
other_correlated_entities:
type: array
description: ''
example: null
items:
type: object
nullable: true
properties:
type:
type: number
description: ''
example: null
nullable: true
entity:
type: object
description: ''
example: []
nullable: false
properties:
name:
type: string
description: ''
example: null
nullable: false
vat_number:
type: string
description: ''
example: null
nullable: false
country:
type: string
description: validation.max.
example: null
nullable: false
tax_office:
type: string
description: ''
example: null
nullable: true
activity:
type: string
description: ''
example: null
nullable: true
phone:
type: string
description: ''
example: null
nullable: true
branch:
type: integer
description: ''
example: null
nullable: true
address:
type: object
description: ''
example: null
nullable: true
properties:
postal_code:
type: string
description: ''
example: null
nullable: true
city:
type: string
description: ''
example: null
nullable: true
number:
type: string
description: ''
example: null
nullable: true
street:
type: string
description: ''
example: null
nullable: true
required:
- name
- vat_number
- country
issuer:
type: object
description: ''
example: []
nullable: false
properties:
name:
type: string
description: ''
example: 'Some Company'
nullable: false
vat_number:
type: string
description: ''
example: '9000000000'
nullable: false
tax_office:
type: string
description: ''
example: 'ΚΕΦΟΔΕ ΑΤΤΙΚΗΣ - 1190'
nullable: false
activity:
type: string
description: ''
example: 'ΔΡΑΣΤΗΡΙΟΤΗΤΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΗΛΕΚΤΡΟΝΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ'
nullable: false
phone:
type: string
description: ''
example: '+30 2100000000'
nullable: true
country:
type: string
description: "ISO2 of the issuer's country. validation.max."
example: GR
nullable: false
supply_account_no:
type: string
description: ''
example: null
nullable: true
document_id_no:
type: string
description: ''
example: null
nullable: true
country_document_id:
type: string
description: ''
example: null
nullable: true
branch:
type: integer
description: "The number of the issuer's branch. Defaults to 0 for headquarters."
example: 0
nullable: true
address:
type: object
description: ''
example: []
nullable: false
properties:
postal_code:
type: string
description: ''
example: '11528'
nullable: false
city:
type: string
description: ''
example: Αθήνα
nullable: false
number:
type: string
description: ''
example: '10'
nullable: true
street:
type: string
description: ''
example: Μιχαλακοπούλου
nullable: false
required:
- postal_code
- city
- street
required:
- name
- vat_number
- tax_office
- activity
- country
- address
counterpart:
type: object
description: ''
example: []
nullable: false
properties:
name:
type: string
description: ''
example: 'Other Company'
nullable: false
vat_number:
type: string
description: 'Required when the invoice is wholesale.'
example: '9000000000'
nullable: true
tax_office:
type: string
description: ''
example: 'ΦΑΕ ΑΘΗΝΩΝ'
nullable: true
activity:
type: string
description: ''
example: ΕΜΠΟΡΙΟ
nullable: true
phone:
type: string
description: ''
example: '+30 2100000000'
nullable: true
document_id_no:
type: string
description: ''
example: null
nullable: true
supply_account_no:
type: string
description: ''
example: null
nullable: true
country:
type: string
description: "ISO2 of the counterpart's country. validation.max."
example: GR
nullable: false
branch:
type: integer
description: "The number of the counterpart's branch. If unknown, defaults to 0."
example: 0
nullable: true
address:
type: object
description: ''
example: null
nullable: true
properties:
postal_code:
type: string
description: 'This field is required when counterpart.address is present.'
example: '10431'
nullable: false
city:
type: string
description: 'This field is required when counterpart.address is present.'
example: Αθήνα
nullable: false
number:
type: string
description: ''
example: '10'
nullable: true
street:
type: string
description: ''
example: Πατησίων
nullable: true
required:
- name
- country
details:
type: array
description: ''
example: null
items:
type: object
nullable: true
properties:
line_number:
type: integer
description: "Serial numbering of the invoice's details."
example: 1
nullable: false
name:
type: string
description: validation.max.
example: 'EXAMPLE PRODUCT'
nullable: false
code:
type: string
description: "The detils' code. Only used when printing the invoice. validation.max."
example: '00000'
nullable: true
comments:
type: string
description: validation.max.
example: null
nullable: true
other:
type: string
description: 'Other comments for the details. validation.max.'
example: null
nullable: true
not_vat_195:
type: boolean
description: ''
example: false
nullable: true
cpv_code:
type: string
description: validation.max.
example: null
nullable: true
rec_type:
type: number
description: "Special details flag. Common cases include:\n
1.5, then it must have 1 detail of type 1,\nas well as one of type 2."
example: 1
nullable: true
quantity:
type: number
description: validation.min.
example: 2.0
nullable: false
price_per_unit:
type: number
description: "The details' price per unit before any discount is applied. Supports up to 2 decimals. validation.min."
example: 100.0
nullable: false
net_value:
type: number
description: "The details' net value after discounts. validation.min."
example: 200.0
nullable: false
discount:
type: number
description: "The details' discount. Defaults to 0. validation.min."
example: 0.0
nullable: true
deductions:
type: number
description: ''
example: 0.0
nullable: true
tax:
type: object
description: ''
example: []
nullable: false
properties:
code:
type: string
description: ''
example: null
nullable: false
enum:
- '1'
- '2'
- '3'
- '4'
- '5'
- '6'
- '7'
- '8'
value:
type: number
description: ''
example: 48.0
nullable: false
rate:
type: number
description: ''
example: 24.0
nullable: false
required:
- code
- value
- rate
tax_exemption:
type: string
description: 'Required when tax rate = 0.'
example: null
nullable: true
enum:
- '1'
- '2'
- '3'
- '4'
- '5'
- '6'
- '7'
- '8'
- '9'
- '10'
- '11'
- '12'
- '13'
- '14'
- '15'
- '16'
- '17'
- '18'
- '19'
- '20'
- '21'
- '22'
- '23'
- '24'
- '25'
- '26'
- '27'
- '28'
- '29'
- '30'
- '31'
unit:
type: object
description: ''
example: null
nullable: true
properties:
code:
type: string
description: ''
example: '1'
nullable: true
enum:
- '1'
- '2'
- '3'
- '4'
- '5'
- '6'
- '7'
display_name:
type: string
description: ''
example: ΤΕΜ
nullable: true
quantity:
type: integer
description: ''
example: null
nullable: true
other_taxes:
type: object
description: ''
example: null
nullable: true
properties:
code:
type: string
description: ''
example: null
nullable: true
enum:
- '1'
- '2'
- '3'
- '4'
- '5'
- '6'
- '7'
- '8'
- '9'
- '10'
- '11'
- '12'
- '13'
- '14'
- '15'
- '16'
- '17'
- '18'
- '19'
- '20'
- '21'
- '22'
- '23'
- '24'
- '25'
- '26'
- '27'
- '28'
- '29'
- '30'
amount:
type: number
description: ''
example: 0.0
nullable: true
stamp_duty:
type: object
description: ''
example: null
nullable: true
properties:
code:
type: string
description: ''
example: null
nullable: true
enum:
- '1'
- '2'
- '3'
- '4'
amount:
type: number
description: ''
example: 0.0
nullable: true
retention_tax:
type: object
description: ''
example: null
nullable: true
properties:
code:
type: string
description: ''
example: null
nullable: true
enum:
- '1'
- '2'
- '3'
- '4'
- '5'
- '6'
- '7'
- '8'
- '9'
- '10'
- '11'
- '12'
- '13'
- '14'
- '15'
- '16'
- '17'
- '18'
rate:
type: number
description: ''
example: 0.0
nullable: true
amount:
type: number
description: ''
example: 0.0
nullable: true
fee:
type: object
description: ''
example: null
nullable: true
properties:
code:
type: string
description: ''
example: null
nullable: true
enum:
- '1'
- '2'
- '3'
- '4'
- '5'
- '6'
- '7'
- '8'
- '9'
- '10'
- '11'
- '12'
- '13'
- '14'
- '15'
- '16'
- '17'
- '18'
- '19'
- '20'
- '21'
- '22'
amount:
type: number
description: ''
example: 0.0
nullable: true
fuel_code:
type: number
description: ''
example: null
nullable: true
discount_option:
type: boolean
description: ''
example: null
nullable: true
income:
type: array
description: ''
example: null
items:
type: object
nullable: true
properties:
type:
type: string
description: ''
example: E3_561_002
nullable: true
enum:
- ''
- E3_106
- E3_205
- E3_210
- E3_305
- E3_310
- E3_318
- E3_561_001
- E3_561_002
- E3_561_003
- E3_561_004
- E3_561_005
- E3_561_006
- E3_561_007
- E3_562
- E3_563
- E3_564
- E3_565
- E3_566
- E3_567
- E3_568
- E3_569
- E3_570
- E3_595
- E3_596
- E3_597
- E3_880_001
- E3_880_002
- E3_880_003
- E3_880_004
- E3_881_001
- E3_881_002
- E3_881_003
- E3_881_004
category:
type: string
description: ''
example: category1_1
nullable: true
enum:
- category1_1
- category1_2
- category1_3
- category1_4
- category1_5
- category1_6
- category1_7
- category1_8
- category1_9
- category1_10
- category1_95
- category3
amount:
type: number
description: ''
example: 100.0
nullable: true
expense:
type: array
description: ''
example: null
items:
type: object
nullable: true
properties:
type:
type: string
description: ''
example: null
nullable: true
enum:
- E3_101
- E3_102_001
- E3_102_002
- E3_102_003
- E3_102_004
- E3_102_005
- E3_102_006
- E3_104
- E3_201
- E3_202_001
- E3_202_002
- E3_202_003
- E3_202_004
- E3_202_005
- E3_204
- E3_207
- E3_209
- E3_301
- E3_302_001
- E3_302_002
- E3_302_003
- E3_302_004
- E3_302_005
- E3_304
- E3_307
- E3_309
- E3_312
- E3_313_001
- E3_313_002
- E3_313_003
- E3_313_004
- E3_313_005
- E3_315
- E3_581_001
- E3_581_002
- E3_581_003
- E3_582
- E3_583
- E3_584
- E3_585_001
- E3_585_002
- E3_585_003
- E3_585_004
- E3_585_005
- E3_585_006
- E3_585_007
- E3_585_008
- E3_585_009
- E3_585_010
- E3_585_011
- E3_585_012
- E3_585_013
- E3_585_014
- E3_585_015
- E3_585_016
- E3_585_017
- E3_586
- E3_587
- E3_588
- E3_589
- E3_882_001
- E3_882_002
- E3_882_003
- E3_882_004
- E3_883_001
- E3_883_002
- E3_883_003
- E3_883_004
- VAT_361
- VAT_362
- VAT_363
- VAT_364
- VAT_365
- VAT_366
- E3_103
- E3_203
- E3_303
- E3_208
- E3_308
- E3_314
- E3_106
- E3_205
- E3_305
- E3_210
- E3_310
- E3_318
- E3_598_002
category:
type: string
description: ''
example: null
nullable: true
enum:
- category2_1
- category2_2
- category2_3
- category2_4
- category2_5
- category2_6
- category2_7
- category2_8
- category2_9
- category2_10
- category2_11
- category2_12
- category2_13
- category2_14
- category2_95
amount:
type: number
description: ''
example: null
nullable: false
required:
- line_number
- name
- quantity
- price_per_unit
- net_value
- tax
taxes_totals:
type: array
description: ''
example: null
items:
type: object
nullable: true
properties:
tax_category:
type: number
description: 'The category of the specified tax.'
example: null
nullable: true
underlying_value:
type: number
description: 'The underlying value of this tax. validation.min.'
example: 100.0
nullable: true
id:
type: number
description: 'The line number of the item for which the tax is applied. validation.min.'
example: 1.0
nullable: true
tax_type:
type: number
description: 'The type of tax. This field is required when taxes_totals.* is present.'
example: 1.0
nullable: false
tax_amount:
type: number
description: 'This field is required when taxes_totals.* is present. validation.min.'
example: 4.0
nullable: false
packings_declarations:
type: array
description: ''
example: null
items:
type: object
properties:
packaging_type:
type: integer
description: ''
example: null
nullable: false
quantity:
type: integer
description: ''
example: null
nullable: false
other_packaging_type_title:
type: string
description: ''
example: null
nullable: true
required:
- packaging_type
- quantity
payment_methods:
type: array
description: ''
example:
- []
items:
type: object
properties:
code:
type: string
description: ''
example: '3'
nullable: false
enum:
- '1'
- '2'
- '3'
- '4'
- '5'
- '6'
- '7'
- '8'
amount:
type: number
description: 'Up to 2 decimal places are required.'
example: 100.0
nullable: false
info:
type: string
description: validation.max.
example: null
nullable: true
tip:
type: number
description: ''
example: null
nullable: true
provider_data:
type: string
description: ''
example: null
nullable: true
required:
- code
- amount
required:
- issue_date
- header
- currency
- issuer
- counterpart
- payment_methods
'/api/v2/invoices/{uid}':
get:
summary: 'View Invoice Status'
operationId: viewInvoiceStatus
description: ''
parameters: []
responses:
200:
description: Success
content:
application/json:
schema:
type: object
example:
uid: BF3C1C867FC4B97DEA1728900F0FD8CFE4E7BA1D
authentication_code: 92A60F7464481B1BE2AD203A15E934BE542D786F
mark: '400001929722136'
qr: 'https://invoiceportal.gr/invoices/2024-BF3C1C867FC4B97DEA1728900F0FD8CFE4E7BA1D/qr'
url: 'https://invoiceportal.gr/invoices/2024-BF3C1C867FC4B97DEA1728900F0FD8CFE4E7BA1D'
properties:
uid:
type: string
example: BF3C1C867FC4B97DEA1728900F0FD8CFE4E7BA1D
authentication_code:
type: string
example: 92A60F7464481B1BE2AD203A15E934BE542D786F
mark:
type: string
example: '400001929722136'
qr:
type: string
example: 'https://invoiceportal.gr/invoices/2024-BF3C1C867FC4B97DEA1728900F0FD8CFE4E7BA1D/qr'
url:
type: string
example: 'https://invoiceportal.gr/invoices/2024-BF3C1C867FC4B97DEA1728900F0FD8CFE4E7BA1D'
404:
description: 'Not Found'
content:
application/json:
schema:
type: array
items:
type: object
example: []
tags:
- Invoices
parameters:
-
in: path
name: uid
description: ''
example: D4EB1048870839BCAB165550D388EFBCA2134D54
required: true
schema:
type: string
'/api/v2/invoices/{uid}/pdf':
post:
summary: 'Upload Invoice PDF'
operationId: uploadInvoicePDF
description: ''
parameters: []
responses: { }
tags:
- Invoices
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
properties:
pdf:
type: string
format: binary
description: 'Must be a file.'
nullable: false
required:
- pdf
parameters:
-
in: path
name: uid
description: ''
example: D4EB1048870839BCAB165550D388EFBCA2134D54
required: true
schema:
type: string
/api/v2/invoices:
post:
summary: 'Create a new Invoice (PEPPOL & myDATA)'
operationId: createANewInvoicePEPPOLMyDATA
description: "Issue a new invoice.\nThis requires two xml files, one according to AADE's spec, and one according to the PEPPOL protocol.Y-m-d H:i:s.'
example: '2024-07-26 10:03:16'
nullable: false
self_pricing:
type: boolean
description: 'Defaults to false.'
example: false
nullable: true
dispatch_date:
type: string
description: 'Must be a valid date in the format Y-m-d H:i:s.'
example: '2026-09-25 10:00:00'
nullable: true
vehicle_number:
type: string
description: ''
example: ΙΚΤ1234
nullable: true
loading_address:
type: object
description: ''
example: null
nullable: true
properties:
postal_code:
type: string
description: ''
example: null
nullable: true
city:
type: string
description: ''
example: null
nullable: true
number:
type: string
description: ''
example: null
nullable: true
street:
type: string
description: ''
example: null
nullable: true
delivery_address:
type: object
description: ''
example: null
nullable: true
properties:
postal_code:
type: string
description: ''
example: null
nullable: true
city:
type: string
description: ''
example: null
nullable: true
number:
type: string
description: ''
example: null
nullable: true
street:
type: string
description: ''
example: null
nullable: true
start_shipping_branch:
type: number
description: ''
example: null
nullable: true
complete_shipping_branch:
type: number
description: ''
example: null
nullable: true
vat_payment_suspension:
type: boolean
description: 'Defaults to false.'
example: false
nullable: true
correlated:
type: array
description: ''
example:
- 4.0000192972214E+14
items:
type: number
comments:
type: string
description: validation.max.
example: 'Free text'
nullable: true
gross_value:
type: number
description: ''
example: 124.0
nullable: true
header:
type: object
description: ''
example: []
nullable: false
properties:
code:
type: string
description: "For more info, view AADE's documentation."
example: '11.1'
nullable: false
enum:
- '1.1'
- '1.2'
- '1.3'
- '1.4'
- '1.5'
- '1.6'
- '2.1'
- '2.2'
- '2.3'
- '2.4'
- '3.1'
- '3.2'
- '4'
- '5.1'
- '5.2'
- '6.1'
- '6.2'
- '7.1'
- '8.1'
- '8.2'
- '8.4'
- '8.5'
- '8.6'
- '9.1'
- '9.2'
- '9.3'
- '10.1'
- '10.2'
- '11.1'
- '11.2'
- '11.3'
- '11.4'
- '11.5'
- '12'
- '13.1'
- '13.2'
- '13.3'
- '13.4'
- '13.30'
- '13.31'
- '14.1'
- '14.2'
- '14.3'
- '14.4'
- '14.5'
- '14.30'
- '14.31'
- '15.1'
- '16.1'
- '17.1'
- '17.2'
- '17.3'
- '17.4'
- '17.5'
- '17.6'
serial_number:
type: string
description: ''
example: 53
nullable: false
series:
type: string
description: "The invoice's series. Defaults to 0."
example: ΤΔΑ-Α
nullable: false
special_invoice_category:
type: number
description: 'Special Invoice Category. For F&B, use 12.'
example: 12.0
nullable: true
is_cancel_order:
type: boolean
description: 'Special flag, which if true cancels all correlated invoices of type 8.6.'
example: false
nullable: true
table_name:
type: string
description: 'The name of the table, if F&B. Max length is 50. validation.max.'
example: A1
nullable: true
is_fuel_invoice:
type: boolean
description: ''
example: null
nullable: true
reverse_delivery_note_purpose:
type: integer
description: 'Marks the delivery note as reverse, with this purpose. Maps to reverseDeliveryNotePurpose. For more info, view AADE''s documentation.'
example: null
nullable: true
enum:
- 1
- 2
- 3
- 4
- 5
receiving_note_purpose:
type: object
description: 'Receiving notes only. code maps to receivingNotePurpose. display_name maps to otherReceivingNotePurposeTitle, used when the code is 7. For more info, view AADE''s documentation.'
example: null
nullable: true
properties:
code:
type: integer
description: 'This field is required when header.receiving_note_purpose is present.'
example: null
nullable: false
enum:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
display_name:
type: string
description: ''
example: null
nullable: true
to_weigh:
type: boolean
description: ''
example: null
nullable: true
non_obligated_recipient:
type: boolean
description: 'Delivery notes only. Flags the recipient as not obligated (Μη Υπόχρεος Λήπτης). Defaults to false.'
example: false
nullable: true
without_digital_transport_tracking:
type: boolean
description: 'Delivery notes only. Flags the movement as without digital transport tracking (Χωρίς Ψηφιακή Παρακολούθηση Διακίνησης). Defaults to false.'
example: false
nullable: true
required:
- code
- serial_number
- series
move_purpose:
type: string
description: 'The purpose of the movement, 1 through 20. Either the code as a string, or an object {code, display_name}.'
example: '1'
nullable: true
currency:
type: object
description: ''
example: []
nullable: false
properties:
code:
type: string
description: 'ISO 4217 code of the currency. validation.max.'
example: EUR
nullable: false
exchange_rate:
type: number
description: '5 decimal places required. If the currency is EUR, defaults to 1.00000. This field is required unless currency.code is in EUR. validation.min.'
example: 1.0
nullable: false
required:
- code
other_correlated_entities:
type: array
description: ''
example: null
items:
type: object
nullable: true
properties:
type:
type: number
description: ''
example: null
nullable: true
entity:
type: object
description: ''
example: []
nullable: false
properties:
name:
type: string
description: ''
example: null
nullable: false
vat_number:
type: string
description: ''
example: null
nullable: false
country:
type: string
description: validation.max.
example: null
nullable: false
tax_office:
type: string
description: ''
example: null
nullable: true
activity:
type: string
description: ''
example: null
nullable: true
phone:
type: string
description: ''
example: null
nullable: true
branch:
type: integer
description: ''
example: null
nullable: true
address:
type: object
description: ''
example: null
nullable: true
properties:
postal_code:
type: string
description: ''
example: null
nullable: true
city:
type: string
description: ''
example: null
nullable: true
number:
type: string
description: ''
example: null
nullable: true
street:
type: string
description: ''
example: null
nullable: true
required:
- name
- vat_number
- country
issuer:
type: object
description: ''
example: []
nullable: false
properties:
name:
type: string
description: ''
example: 'Some Company'
nullable: false
vat_number:
type: string
description: ''
example: '9000000000'
nullable: false
tax_office:
type: string
description: ''
example: 'ΚΕΦΟΔΕ ΑΤΤΙΚΗΣ - 1190'
nullable: false
activity:
type: string
description: ''
example: 'ΔΡΑΣΤΗΡΙΟΤΗΤΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΗΛΕΚΤΡΟΝΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ'
nullable: false
phone:
type: string
description: ''
example: '+30 2100000000'
nullable: true
country:
type: string
description: "ISO2 of the issuer's country. validation.max."
example: GR
nullable: false
supply_account_no:
type: string
description: ''
example: null
nullable: true
document_id_no:
type: string
description: ''
example: null
nullable: true
country_document_id:
type: string
description: ''
example: null
nullable: true
branch:
type: integer
description: "The number of the issuer's branch. Defaults to 0 for headquarters."
example: 0
nullable: true
address:
type: object
description: ''
example: []
nullable: false
properties:
postal_code:
type: string
description: ''
example: '11528'
nullable: false
city:
type: string
description: ''
example: Αθήνα
nullable: false
number:
type: string
description: ''
example: '10'
nullable: true
street:
type: string
description: ''
example: Μιχαλακοπούλου
nullable: false
required:
- postal_code
- city
- street
required:
- name
- vat_number
- tax_office
- activity
- country
- address
counterpart:
type: object
description: ''
example: []
nullable: false
properties:
name:
type: string
description: ''
example: 'Other Company'
nullable: false
vat_number:
type: string
description: 'Required when the invoice is wholesale.'
example: '9000000000'
nullable: true
tax_office:
type: string
description: ''
example: 'ΦΑΕ ΑΘΗΝΩΝ'
nullable: true
activity:
type: string
description: ''
example: ΕΜΠΟΡΙΟ
nullable: true
phone:
type: string
description: ''
example: '+30 2100000000'
nullable: true
document_id_no:
type: string
description: ''
example: null
nullable: true
supply_account_no:
type: string
description: ''
example: null
nullable: true
country:
type: string
description: "ISO2 of the counterpart's country. validation.max."
example: GR
nullable: false
branch:
type: integer
description: "The number of the counterpart's branch. If unknown, defaults to 0."
example: 0
nullable: true
address:
type: object
description: ''
example: null
nullable: true
properties:
postal_code:
type: string
description: 'This field is required when counterpart.address is present.'
example: '10431'
nullable: false
city:
type: string
description: 'This field is required when counterpart.address is present.'
example: Αθήνα
nullable: false
number:
type: string
description: ''
example: '10'
nullable: true
street:
type: string
description: ''
example: Πατησίων
nullable: true
required:
- name
- country
details:
type: array
description: ''
example: null
items:
type: object
nullable: true
properties:
line_number:
type: integer
description: "Serial numbering of the invoice's details."
example: 1
nullable: false
name:
type: string
description: validation.max.
example: 'EXAMPLE PRODUCT'
nullable: false
code:
type: string
description: "The detils' code. Only used when printing the invoice. validation.max."
example: '00000'
nullable: true
comments:
type: string
description: validation.max.
example: null
nullable: true
other:
type: string
description: 'Other comments for the details. validation.max.'
example: null
nullable: true
not_vat_195:
type: boolean
description: ''
example: false
nullable: true
cpv_code:
type: string
description: validation.max.
example: null
nullable: true
rec_type:
type: number
description: "Special details flag. Common cases include:\n1.5, then it must have 1 detail of type 1,\nas well as one of type 2."
example: 1
nullable: true
quantity:
type: number
description: validation.min.
example: 2.0
nullable: false
price_per_unit:
type: number
description: "The details' price per unit before any discount is applied. Supports up to 2 decimals. validation.min."
example: 100.0
nullable: false
net_value:
type: number
description: "The details' net value after discounts. validation.min."
example: 200.0
nullable: false
discount:
type: number
description: "The details' discount. Defaults to 0. validation.min."
example: 0.0
nullable: true
deductions:
type: number
description: ''
example: 0.0
nullable: true
tax:
type: object
description: ''
example: []
nullable: false
properties:
code:
type: string
description: ''
example: null
nullable: false
enum:
- '1'
- '2'
- '3'
- '4'
- '5'
- '6'
- '7'
- '8'
value:
type: number
description: ''
example: 48.0
nullable: false
rate:
type: number
description: ''
example: 24.0
nullable: false
required:
- code
- value
- rate
tax_exemption:
type: string
description: 'Required when tax rate = 0.'
example: null
nullable: true
enum:
- '1'
- '2'
- '3'
- '4'
- '5'
- '6'
- '7'
- '8'
- '9'
- '10'
- '11'
- '12'
- '13'
- '14'
- '15'
- '16'
- '17'
- '18'
- '19'
- '20'
- '21'
- '22'
- '23'
- '24'
- '25'
- '26'
- '27'
- '28'
- '29'
- '30'
- '31'
unit:
type: object
description: ''
example: null
nullable: true
properties:
code:
type: string
description: ''
example: '1'
nullable: true
enum:
- '1'
- '2'
- '3'
- '4'
- '5'
- '6'
- '7'
display_name:
type: string
description: ''
example: ΤΕΜ
nullable: true
quantity:
type: integer
description: ''
example: null
nullable: true
other_taxes:
type: object
description: ''
example: null
nullable: true
properties:
code:
type: string
description: ''
example: null
nullable: true
enum:
- '1'
- '2'
- '3'
- '4'
- '5'
- '6'
- '7'
- '8'
- '9'
- '10'
- '11'
- '12'
- '13'
- '14'
- '15'
- '16'
- '17'
- '18'
- '19'
- '20'
- '21'
- '22'
- '23'
- '24'
- '25'
- '26'
- '27'
- '28'
- '29'
- '30'
amount:
type: number
description: ''
example: 0.0
nullable: true
stamp_duty:
type: object
description: ''
example: null
nullable: true
properties:
code:
type: string
description: ''
example: null
nullable: true
enum:
- '1'
- '2'
- '3'
- '4'
amount:
type: number
description: ''
example: 0.0
nullable: true
retention_tax:
type: object
description: ''
example: null
nullable: true
properties:
code:
type: string
description: ''
example: null
nullable: true
enum:
- '1'
- '2'
- '3'
- '4'
- '5'
- '6'
- '7'
- '8'
- '9'
- '10'
- '11'
- '12'
- '13'
- '14'
- '15'
- '16'
- '17'
- '18'
rate:
type: number
description: ''
example: 0.0
nullable: true
amount:
type: number
description: ''
example: 0.0
nullable: true
fee:
type: object
description: ''
example: null
nullable: true
properties:
code:
type: string
description: ''
example: null
nullable: true
enum:
- '1'
- '2'
- '3'
- '4'
- '5'
- '6'
- '7'
- '8'
- '9'
- '10'
- '11'
- '12'
- '13'
- '14'
- '15'
- '16'
- '17'
- '18'
- '19'
- '20'
- '21'
- '22'
amount:
type: number
description: ''
example: 0.0
nullable: true
fuel_code:
type: number
description: ''
example: null
nullable: true
discount_option:
type: boolean
description: ''
example: null
nullable: true
income:
type: array
description: ''
example: null
items:
type: object
nullable: true
properties:
type:
type: string
description: ''
example: E3_561_002
nullable: true
enum:
- ''
- E3_106
- E3_205
- E3_210
- E3_305
- E3_310
- E3_318
- E3_561_001
- E3_561_002
- E3_561_003
- E3_561_004
- E3_561_005
- E3_561_006
- E3_561_007
- E3_562
- E3_563
- E3_564
- E3_565
- E3_566
- E3_567
- E3_568
- E3_569
- E3_570
- E3_595
- E3_596
- E3_597
- E3_880_001
- E3_880_002
- E3_880_003
- E3_880_004
- E3_881_001
- E3_881_002
- E3_881_003
- E3_881_004
category:
type: string
description: ''
example: category1_1
nullable: true
enum:
- category1_1
- category1_2
- category1_3
- category1_4
- category1_5
- category1_6
- category1_7
- category1_8
- category1_9
- category1_10
- category1_95
- category3
amount:
type: number
description: ''
example: 100.0
nullable: true
expense:
type: array
description: ''
example: null
items:
type: object
nullable: true
properties:
type:
type: string
description: ''
example: null
nullable: true
enum:
- E3_101
- E3_102_001
- E3_102_002
- E3_102_003
- E3_102_004
- E3_102_005
- E3_102_006
- E3_104
- E3_201
- E3_202_001
- E3_202_002
- E3_202_003
- E3_202_004
- E3_202_005
- E3_204
- E3_207
- E3_209
- E3_301
- E3_302_001
- E3_302_002
- E3_302_003
- E3_302_004
- E3_302_005
- E3_304
- E3_307
- E3_309
- E3_312
- E3_313_001
- E3_313_002
- E3_313_003
- E3_313_004
- E3_313_005
- E3_315
- E3_581_001
- E3_581_002
- E3_581_003
- E3_582
- E3_583
- E3_584
- E3_585_001
- E3_585_002
- E3_585_003
- E3_585_004
- E3_585_005
- E3_585_006
- E3_585_007
- E3_585_008
- E3_585_009
- E3_585_010
- E3_585_011
- E3_585_012
- E3_585_013
- E3_585_014
- E3_585_015
- E3_585_016
- E3_585_017
- E3_586
- E3_587
- E3_588
- E3_589
- E3_882_001
- E3_882_002
- E3_882_003
- E3_882_004
- E3_883_001
- E3_883_002
- E3_883_003
- E3_883_004
- VAT_361
- VAT_362
- VAT_363
- VAT_364
- VAT_365
- VAT_366
- E3_103
- E3_203
- E3_303
- E3_208
- E3_308
- E3_314
- E3_106
- E3_205
- E3_305
- E3_210
- E3_310
- E3_318
- E3_598_002
category:
type: string
description: ''
example: null
nullable: true
enum:
- category2_1
- category2_2
- category2_3
- category2_4
- category2_5
- category2_6
- category2_7
- category2_8
- category2_9
- category2_10
- category2_11
- category2_12
- category2_13
- category2_14
- category2_95
amount:
type: number
description: ''
example: null
nullable: false
required:
- line_number
- name
- quantity
- price_per_unit
- net_value
- tax
taxes_totals:
type: array
description: ''
example: null
items:
type: object
nullable: true
properties:
tax_category:
type: number
description: 'The category of the specified tax.'
example: null
nullable: true
underlying_value:
type: number
description: 'The underlying value of this tax. validation.min.'
example: 100.0
nullable: true
id:
type: number
description: 'The line number of the item for which the tax is applied. validation.min.'
example: 1.0
nullable: true
tax_type:
type: number
description: 'The type of tax. This field is required when taxes_totals.* is present.'
example: 1.0
nullable: false
tax_amount:
type: number
description: 'This field is required when taxes_totals.* is present. validation.min.'
example: 4.0
nullable: false
packings_declarations:
type: array
description: ''
example: null
items:
type: object
properties:
packaging_type:
type: integer
description: ''
example: null
nullable: false
quantity:
type: integer
description: ''
example: null
nullable: false
other_packaging_type_title:
type: string
description: ''
example: null
nullable: true
required:
- packaging_type
- quantity
payment_methods:
type: array
description: ''
example:
- []
items:
type: object
properties:
code:
type: string
description: ''
example: '3'
nullable: false
enum:
- '1'
- '2'
- '3'
- '4'
- '5'
- '6'
- '7'
- '8'
amount:
type: number
description: 'Up to 2 decimal places are required.'
example: 100.0
nullable: false
info:
type: string
description: validation.max.
example: null
nullable: true
tip:
type: number
description: ''
example: null
nullable: true
provider_data:
type: string
description: ''
example: null
nullable: true
required:
- code
- amount
emails:
type: array
description: ''
example:
- user1@example.com
- user2@example.com
items:
type: string
required:
- issue_date
- header
- currency
- issuer
- counterpart
- payment_methods
/api/v2/delivery-notes/cancel:
post:
summary: 'Cancel a delivery note'
operationId: cancelADeliveryNote
description: "Cancels a delivery note, and returns a cancellation mark.\nOnly invoices of type 9.3 can be canceled"
parameters: []
responses:
200:
description: 'Successful cancellation'
content:
application/json:
schema:
type: object
example:
cancellation_mark: '400001942783398'
properties:
cancellation_mark:
type: string
example: '400001942783398'
400:
description: 'Invalid Cancellation Request'
content:
application/json:
schema:
type: object
example:
code: '251'
message: 'Invoice with MARK 400001942783398 has already been cancelled'
properties:
code:
type: string
example: '251'
message:
type: string
example: 'Invoice with MARK 400001942783398 has already been cancelled'
tags:
- Invoices
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
issuer_vat_number:
type: string
description: 'The vat number of the issuer'
example: '801082480'
nullable: false
uid:
type: string
description: 'The uid of the invoice to be cancelled.'
example: C1574181AE8DE7019BB06B0912CD0A37850D5062
nullable: false
required:
- issuer_vat_number
- uid
/api/v2/receiving-notes/cancel:
post:
summary: 'Cancel a receiving note'
operationId: cancelAReceivingNote
description: "Cancels a receiving note, and returns a cancellation mark.\nOnly invoices of type 10.X can be canceled"
parameters: []
responses:
200:
description: 'Successful cancellation'
content:
application/json:
schema:
type: object
example:
cancellation_mark: '400001942783398'
properties:
cancellation_mark:
type: string
example: '400001942783398'
400:
description: 'Invalid Cancellation Request'
content:
application/json:
schema:
type: object
example:
code: '251'
message: 'Invoice with MARK 400001942783398 has already been cancelled'
properties:
code:
type: string
example: '251'
message:
type: string
example: 'Invoice with MARK 400001942783398 has already been cancelled'
tags:
- Invoices
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
issuer_vat_number:
type: string
description: 'The vat number of the issuer'
example: '801082480'
nullable: false
uid:
type: string
description: 'The uid of the invoice to be cancelled.'
example: C1574181AE8DE7019BB06B0912CD0A37850D5062
nullable: false
required:
- issuer_vat_number
- uid
/api/v2/uid:
post:
summary: 'Calculate UID'
operationId: calculateUID
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
uid: 6937509F49384F7D521CFA1D5FCB65A349662979
properties:
uid:
type: string
example: 6937509F49384F7D521CFA1D5FCB65A349662979
tags:
- Misc
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
issuer:
type: string
description: 'Isser Vat Number'
example: '998914851'
nullable: false
date:
type: string
description: 'Invoice Issue Date'
example: '2025-01-01'
nullable: false
branch:
type: string
description: "The issuer's branch"
example: '0'
nullable: false
type:
type: string
description: 'The invoice type'
example: '1.1'
nullable: false
series:
type: string
description: "The invoice's series"
example: A
nullable: false
serial_number:
type: string
description: 'The serial number of the invoice'
example: '12345'
nullable: false
required:
- issuer
- date
- branch
- type
- series
- serial_number
/api/v2/webhook:
post:
summary: 'Setup webhooks'
operationId: setupWebhooks
description: "Set up a webhook URL for cases where the invoices are sent asynchronously.\nA webhook key is returned, which will be used as a bearer token in the webhook request headers.\n\nExample webhook request:\n{\n \"vat_number\": \"example vat number\",\n \"successes\": [\n { \"uid\": \"XXX\", \"mark\": \"YYY\", \"authentication_code\": \"YYY\"},\n { \"uid\": \"XXX\", \"mark\": \"YYY\", \"authentication_code\": \"YYY\"},\n ],\n}"
parameters: []
responses:
200:
description: 'A new webhook key'
content:
application/json:
schema:
type: object
example:
key: XXXXX
properties:
key:
type: string
example: XXXXX
tags:
- Misc
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
url:
type: string
description: ''
example: 'https://example.com/invoice-portal'
nullable: false
required:
- url
/api/v2/signature:
post:
summary: 'Create a new POS payment request'
operationId: createANewPOSPaymentRequest
description: "Create a provider signature, used for activating POS devices.net_value and gross_value fields.\n\nIf the payment is for an invoice that has not yet been issued you can set the mark field to null, otherwise it must be equal to the mark\nof an existing invoice whose payment methods will be updated.\n\n"
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
signature: MEUCIQD6SCJw5mEK5PHDYqrfi+CCIyCfdi4OKk7WODq3YFKB2gIgITLVnyhC9sTrJ4f+WN7FHXoLxe2B5Q9h6IpNyNxZX7o=
data: 6E7297D2828B1DFF02CE85094AADBCFF0043892C;400001929268735;20240625153412;2260;2260;0;2260;160000000
provider_id: '123'
properties:
signature:
type: string
example: MEUCIQD6SCJw5mEK5PHDYqrfi+CCIyCfdi4OKk7WODq3YFKB2gIgITLVnyhC9sTrJ4f+WN7FHXoLxe2B5Q9h6IpNyNxZX7o=
data:
type: string
example: 6E7297D2828B1DFF02CE85094AADBCFF0043892C;400001929268735;20240625153412;2260;2260;0;2260;160000000
provider_id:
type: string
example: '123'
tags:
- Payments
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
issuer:
type: string
description: 'The VAT Id of the issuer.'
example: '999999999'
nullable: false
uid:
type: string
description: 'The UID of the invoice to be issued'
example: 6E7297D2828B1DFF02CE85094AADBCFF0043892C
nullable: false
payment_amount:
type: string
description: 'Total amount to be paid'
example: 124.0
nullable: false
net_value:
type: string
description: 'Total Net amount of the invoice'
example: 100.0
nullable: false
vat_amount:
type: string
description: 'Total Vat amount of the invoice'
example: 24.0
nullable: false
gross_value:
type: string
description: 'Total Gross value of the invoice'
example: 124.0
nullable: false
terminal:
type: string
description: 'The id of the terminal which will handle the payment'
example: '160000000'
nullable: false
type:
type: string
description: 'The payment provider. One of viva, mellon, cardlink, epay, inss, edps, edps_ecr, nexi, worldline, epay_softpos. edps_ecr is treated as edps.'
example: mellon
nullable: false
mark:
type: string
description: 'The mark of the invoice. Required only if the invoice already exists.'
example: '160000000'
nullable: false
required:
- issuer
- uid
- payment_amount
- net_value
- vat_amount
- gross_value
- terminal
- type
- mark
/api/v2/payments:
post:
summary: 'Update the payments of an invoice'
operationId: updateThePaymentsOfAnInvoice
description: ''
parameters: []
responses:
200:
description: Success
content:
application/json:
schema:
type: object
nullable: true
400:
description: 'Invalid Signature'
content:
application/json:
schema:
type: object
example:
message: 'Invalid Signature for Payment index $index'
properties:
message:
type: string
example: 'Invalid Signature for Payment index $index'
tags:
- Payments
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
mark:
type: string
description: 'The mark of the invoice.'
example: 400001929592800
nullable: false
payments:
type: array
description: ''
example:
- []
items:
type: object
properties:
signature:
type: string
description: 'The signature of the payment. Required if code = 7'
example: MEUCIQDHPN9WXEDWinhbyCyTYf0cH+o66K7OufkuKl3RVMXqcgIgS2UkaK5Gg64T3QWB9CR6MIQMfbHSgbisLxj3VBSSihY=
nullable: false
transaction_id:
type: string
description: 'The id of this transaction, returned by the POS.'
example: '9258762217454285091123'
nullable: false
tip:
type: string
description: 'The amount of tip in the invoice'
example: 1
nullable: false
paid_amount:
type: string
description: 'The total amount paid for the invoice (tip not included)'
example: 9
nullable: false
code:
type: string
description: "AADE's code for the payment method."
example: 7
nullable: false
required:
- signature
- transaction_id
- tip
- paid_amount
- code
required:
- mark
- payments
/api/v2/unsigned:
post:
summary: 'Initiate an unsigned Invoice (myDATA)'
operationId: initiateAnUnsignedInvoicemyDATA
description: ''
parameters: []
responses:
200:
description: Success
content:
application/json:
schema:
type: object
example:
uid: BF3C1C867FC4B97DEA1728900F0FD8CFE4E7BA1D
authentication_code: null
mark: '400001929722136'
transmission_failure: null
remaining_invoices: 1000
total_invoices: 3
qr: 'https://invoiceportal.gr/invoices/2024-BF3C1C867FC4B97DEA1728900F0FD8CFE4E7BA1D/qr'
url: 'https://invoiceportal.gr/invoices/2024-BF3C1C867FC4B97DEA1728900F0FD8CFE4E7BA1D'
properties:
uid:
type: string
example: BF3C1C867FC4B97DEA1728900F0FD8CFE4E7BA1D
authentication_code:
type: string
example: null
mark:
type: string
example: '400001929722136'
transmission_failure:
type: string
example: null
remaining_invoices:
type: integer
example: 1000
total_invoices:
type: integer
example: 3
qr:
type: string
example: 'https://invoiceportal.gr/invoices/2024-BF3C1C867FC4B97DEA1728900F0FD8CFE4E7BA1D/qr'
url:
type: string
example: 'https://invoiceportal.gr/invoices/2024-BF3C1C867FC4B97DEA1728900F0FD8CFE4E7BA1D'
400:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'Invalid issuer VAT Number'
type: object
example:
message: INVALID_COMPANY
properties:
message:
type: string
example: INVALID_COMPANY
-
description: 'The user attempted to issue an invoice containing an invalid signature'
type: object
example:
message: INVALID_SIGNATURE
properties:
message:
type: string
example: INVALID_SIGNATURE
tags:
- 'Unsigned Invoices'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
aade_invoice:
type: string
description: "An xml file describing the invoice according to AADE's documentation.\n You can find AADE's documentation here."
example: ...
nullable: false
peppol_invoice:
type: string
description: "An xml file describing the invoice according to the PEPPOL protocol.\n You can find read more about the protocol here."
example: ...
nullable: false
required:
- aade_invoice
- peppol_invoice
/api/v2/unsigned/json:
post:
summary: 'Initiate an unsigned Invoice (JSON)'
operationId: initiateAnUnsignedInvoiceJSON
description: ''
parameters: []
responses:
200:
description: Success
content:
application/json:
schema:
type: object
example:
uid: BF3C1C867FC4B97DEA1728900F0FD8CFE4E7BA1D
authentication_code: null
mark: '400001929722136'
transmission_failure: null
qr: 'https://invoiceportal.gr/invoices/2024-BF3C1C867FC4B97DEA1728900F0FD8CFE4E7BA1D/qr'
url: 'https://invoiceportal.gr/invoices/2024-BF3C1C867FC4B97DEA1728900F0FD8CFE4E7BA1D'
properties:
uid:
type: string
example: BF3C1C867FC4B97DEA1728900F0FD8CFE4E7BA1D
authentication_code:
type: string
example: null
mark:
type: string
example: '400001929722136'
transmission_failure:
type: string
example: null
qr:
type: string
example: 'https://invoiceportal.gr/invoices/2024-BF3C1C867FC4B97DEA1728900F0FD8CFE4E7BA1D/qr'
url:
type: string
example: 'https://invoiceportal.gr/invoices/2024-BF3C1C867FC4B97DEA1728900F0FD8CFE4E7BA1D'
400:
description: 'Invalid issuer VAT Number'
content:
application/json:
schema:
type: object
example:
message: INVALID_COMPANY
properties:
message:
type: string
example: INVALID_COMPANY
402:
description: 'The user has used up their invoices.'
content:
application/json:
schema:
type: object
example:
message: DEPLETED_INVOICES
properties:
message:
type: string
example: DEPLETED_INVOICES
tags:
- 'Unsigned Invoices'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
uid:
type: string
description: "See AADE's documentation for how to generate this field. It is used as a checksum, to verify the invoice's integrity."
example: F2B1762EF3380A47FDDD74FC14BD4F9E4FFF12AE
nullable: true
transmission_failure:
type: string
description: 'A flag signifying a transmission failure. Should either be AADE_DOWN (transmissionFailure_2) or ERP_DOWN (transmissionFailure_1).'
example: null
nullable: true
enum:
- AADE_DOWN
- ERP_DOWN
issue_date:
type: string
description: 'The issue date of the invoice. Must be in Europe/Athens. Must be a valid date in the format Y-m-d H:i:s.'
example: '2024-07-26 10:03:16'
nullable: false
self_pricing:
type: boolean
description: 'Defaults to false.'
example: false
nullable: true
dispatch_date:
type: string
description: 'Must be a valid date in the format Y-m-d H:i:s.'
example: '2026-09-25 10:00:00'
nullable: true
vehicle_number:
type: string
description: ''
example: ΙΚΤ1234
nullable: true
loading_address:
type: object
description: ''
example: null
nullable: true
properties:
postal_code:
type: string
description: ''
example: null
nullable: true
city:
type: string
description: ''
example: null
nullable: true
number:
type: string
description: ''
example: null
nullable: true
street:
type: string
description: ''
example: null
nullable: true
delivery_address:
type: object
description: ''
example: null
nullable: true
properties:
postal_code:
type: string
description: ''
example: null
nullable: true
city:
type: string
description: ''
example: null
nullable: true
number:
type: string
description: ''
example: null
nullable: true
street:
type: string
description: ''
example: null
nullable: true
start_shipping_branch:
type: number
description: ''
example: null
nullable: true
complete_shipping_branch:
type: number
description: ''
example: null
nullable: true
vat_payment_suspension:
type: boolean
description: 'Defaults to false.'
example: false
nullable: true
correlated:
type: array
description: ''
example:
- 4.0000192972214E+14
items:
type: number
comments:
type: string
description: validation.max.
example: 'Free text'
nullable: true
gross_value:
type: number
description: ''
example: 124.0
nullable: true
header:
type: object
description: ''
example: []
nullable: false
properties:
code:
type: string
description: "For more info, view AADE's documentation."
example: '11.1'
nullable: false
enum:
- '1.1'
- '1.2'
- '1.3'
- '1.4'
- '1.5'
- '1.6'
- '2.1'
- '2.2'
- '2.3'
- '2.4'
- '3.1'
- '3.2'
- '4'
- '5.1'
- '5.2'
- '6.1'
- '6.2'
- '7.1'
- '8.1'
- '8.2'
- '8.4'
- '8.5'
- '8.6'
- '9.1'
- '9.2'
- '9.3'
- '10.1'
- '10.2'
- '11.1'
- '11.2'
- '11.3'
- '11.4'
- '11.5'
- '12'
- '13.1'
- '13.2'
- '13.3'
- '13.4'
- '13.30'
- '13.31'
- '14.1'
- '14.2'
- '14.3'
- '14.4'
- '14.5'
- '14.30'
- '14.31'
- '15.1'
- '16.1'
- '17.1'
- '17.2'
- '17.3'
- '17.4'
- '17.5'
- '17.6'
serial_number:
type: string
description: ''
example: 53
nullable: false
series:
type: string
description: "The invoice's series. Defaults to 0."
example: ΤΔΑ-Α
nullable: false
special_invoice_category:
type: number
description: 'Special Invoice Category. For F&B, use 12.'
example: 12.0
nullable: true
is_cancel_order:
type: boolean
description: 'Special flag, which if true cancels all correlated invoices of type 8.6.'
example: false
nullable: true
table_name:
type: string
description: 'The name of the table, if F&B. Max length is 50. validation.max.'
example: A1
nullable: true
is_fuel_invoice:
type: boolean
description: ''
example: null
nullable: true
reverse_delivery_note_purpose:
type: integer
description: 'Marks the delivery note as reverse, with this purpose. Maps to reverseDeliveryNotePurpose. For more info, view AADE''s documentation.'
example: null
nullable: true
enum:
- 1
- 2
- 3
- 4
- 5
receiving_note_purpose:
type: object
description: 'Receiving notes only. code maps to receivingNotePurpose. display_name maps to otherReceivingNotePurposeTitle, used when the code is 7. For more info, view AADE''s documentation.'
example: null
nullable: true
properties:
code:
type: integer
description: 'This field is required when header.receiving_note_purpose is present.'
example: null
nullable: false
enum:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
display_name:
type: string
description: ''
example: null
nullable: true
to_weigh:
type: boolean
description: ''
example: null
nullable: true
non_obligated_recipient:
type: boolean
description: 'Delivery notes only. Flags the recipient as not obligated (Μη Υπόχρεος Λήπτης). Defaults to false.'
example: false
nullable: true
without_digital_transport_tracking:
type: boolean
description: 'Delivery notes only. Flags the movement as without digital transport tracking (Χωρίς Ψηφιακή Παρακολούθηση Διακίνησης). Defaults to false.'
example: false
nullable: true
required:
- code
- serial_number
- series
move_purpose:
type: string
description: 'The purpose of the movement, 1 through 20. Either the code as a string, or an object {code, display_name}.'
example: '1'
nullable: true
currency:
type: object
description: ''
example: []
nullable: false
properties:
code:
type: string
description: 'ISO 4217 code of the currency. validation.max.'
example: EUR
nullable: false
exchange_rate:
type: number
description: '5 decimal places required. If the currency is EUR, defaults to 1.00000. This field is required unless currency.code is in EUR. validation.min.'
example: 1.0
nullable: false
required:
- code
other_correlated_entities:
type: array
description: ''
example: null
items:
type: object
nullable: true
properties:
type:
type: number
description: ''
example: null
nullable: true
entity:
type: object
description: ''
example: []
nullable: false
properties:
name:
type: string
description: ''
example: null
nullable: false
vat_number:
type: string
description: ''
example: null
nullable: false
country:
type: string
description: validation.max.
example: null
nullable: false
tax_office:
type: string
description: ''
example: null
nullable: true
activity:
type: string
description: ''
example: null
nullable: true
phone:
type: string
description: ''
example: null
nullable: true
branch:
type: integer
description: ''
example: null
nullable: true
address:
type: object
description: ''
example: null
nullable: true
properties:
postal_code:
type: string
description: ''
example: null
nullable: true
city:
type: string
description: ''
example: null
nullable: true
number:
type: string
description: ''
example: null
nullable: true
street:
type: string
description: ''
example: null
nullable: true
required:
- name
- vat_number
- country
issuer:
type: object
description: ''
example: []
nullable: false
properties:
name:
type: string
description: ''
example: 'Some Company'
nullable: false
vat_number:
type: string
description: ''
example: '9000000000'
nullable: false
tax_office:
type: string
description: ''
example: 'ΚΕΦΟΔΕ ΑΤΤΙΚΗΣ - 1190'
nullable: false
activity:
type: string
description: ''
example: 'ΔΡΑΣΤΗΡΙΟΤΗΤΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΗΛΕΚΤΡΟΝΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ'
nullable: false
phone:
type: string
description: ''
example: '+30 2100000000'
nullable: true
country:
type: string
description: "ISO2 of the issuer's country. validation.max."
example: GR
nullable: false
supply_account_no:
type: string
description: ''
example: null
nullable: true
document_id_no:
type: string
description: ''
example: null
nullable: true
country_document_id:
type: string
description: ''
example: null
nullable: true
branch:
type: integer
description: "The number of the issuer's branch. Defaults to 0 for headquarters."
example: 0
nullable: true
address:
type: object
description: ''
example: []
nullable: false
properties:
postal_code:
type: string
description: ''
example: '11528'
nullable: false
city:
type: string
description: ''
example: Αθήνα
nullable: false
number:
type: string
description: ''
example: '10'
nullable: true
street:
type: string
description: ''
example: Μιχαλακοπούλου
nullable: false
required:
- postal_code
- city
- street
required:
- name
- vat_number
- tax_office
- activity
- country
- address
counterpart:
type: object
description: ''
example: []
nullable: false
properties:
name:
type: string
description: ''
example: 'Other Company'
nullable: false
vat_number:
type: string
description: 'Required when the invoice is wholesale.'
example: '9000000000'
nullable: true
tax_office:
type: string
description: ''
example: 'ΦΑΕ ΑΘΗΝΩΝ'
nullable: true
activity:
type: string
description: ''
example: ΕΜΠΟΡΙΟ
nullable: true
phone:
type: string
description: ''
example: '+30 2100000000'
nullable: true
document_id_no:
type: string
description: ''
example: null
nullable: true
supply_account_no:
type: string
description: ''
example: null
nullable: true
country:
type: string
description: "ISO2 of the counterpart's country. validation.max."
example: GR
nullable: false
branch:
type: integer
description: "The number of the counterpart's branch. If unknown, defaults to 0."
example: 0
nullable: true
address:
type: object
description: ''
example: null
nullable: true
properties:
postal_code:
type: string
description: 'This field is required when counterpart.address is present.'
example: '10431'
nullable: false
city:
type: string
description: 'This field is required when counterpart.address is present.'
example: Αθήνα
nullable: false
number:
type: string
description: ''
example: '10'
nullable: true
street:
type: string
description: ''
example: Πατησίων
nullable: true
required:
- name
- country
details:
type: array
description: ''
example: null
items:
type: object
nullable: true
properties:
line_number:
type: integer
description: "Serial numbering of the invoice's details."
example: 1
nullable: false
name:
type: string
description: validation.max.
example: 'EXAMPLE PRODUCT'
nullable: false
code:
type: string
description: "The detils' code. Only used when printing the invoice. validation.max."
example: '00000'
nullable: true
comments:
type: string
description: validation.max.
example: null
nullable: true
other:
type: string
description: 'Other comments for the details. validation.max.'
example: null
nullable: true
not_vat_195:
type: boolean
description: ''
example: false
nullable: true
cpv_code:
type: string
description: validation.max.
example: null
nullable: true
rec_type:
type: number
description: "Special details flag. Common cases include:\n1.5, then it must have 1 detail of type 1,\nas well as one of type 2."
example: 1
nullable: true
quantity:
type: number
description: validation.min.
example: 2.0
nullable: false
price_per_unit:
type: number
description: "The details' price per unit before any discount is applied. Supports up to 2 decimals. validation.min."
example: 100.0
nullable: false
net_value:
type: number
description: "The details' net value after discounts. validation.min."
example: 200.0
nullable: false
discount:
type: number
description: "The details' discount. Defaults to 0. validation.min."
example: 0.0
nullable: true
deductions:
type: number
description: ''
example: 0.0
nullable: true
tax:
type: object
description: ''
example: []
nullable: false
properties:
code:
type: string
description: ''
example: null
nullable: false
enum:
- '1'
- '2'
- '3'
- '4'
- '5'
- '6'
- '7'
- '8'
value:
type: number
description: ''
example: 48.0
nullable: false
rate:
type: number
description: ''
example: 24.0
nullable: false
required:
- code
- value
- rate
tax_exemption:
type: string
description: 'Required when tax rate = 0.'
example: null
nullable: true
enum:
- '1'
- '2'
- '3'
- '4'
- '5'
- '6'
- '7'
- '8'
- '9'
- '10'
- '11'
- '12'
- '13'
- '14'
- '15'
- '16'
- '17'
- '18'
- '19'
- '20'
- '21'
- '22'
- '23'
- '24'
- '25'
- '26'
- '27'
- '28'
- '29'
- '30'
- '31'
unit:
type: object
description: ''
example: null
nullable: true
properties:
code:
type: string
description: ''
example: '1'
nullable: true
enum:
- '1'
- '2'
- '3'
- '4'
- '5'
- '6'
- '7'
display_name:
type: string
description: ''
example: ΤΕΜ
nullable: true
quantity:
type: integer
description: ''
example: null
nullable: true
other_taxes:
type: object
description: ''
example: null
nullable: true
properties:
code:
type: string
description: ''
example: null
nullable: true
enum:
- '1'
- '2'
- '3'
- '4'
- '5'
- '6'
- '7'
- '8'
- '9'
- '10'
- '11'
- '12'
- '13'
- '14'
- '15'
- '16'
- '17'
- '18'
- '19'
- '20'
- '21'
- '22'
- '23'
- '24'
- '25'
- '26'
- '27'
- '28'
- '29'
- '30'
amount:
type: number
description: ''
example: 0.0
nullable: true
stamp_duty:
type: object
description: ''
example: null
nullable: true
properties:
code:
type: string
description: ''
example: null
nullable: true
enum:
- '1'
- '2'
- '3'
- '4'
amount:
type: number
description: ''
example: 0.0
nullable: true
retention_tax:
type: object
description: ''
example: null
nullable: true
properties:
code:
type: string
description: ''
example: null
nullable: true
enum:
- '1'
- '2'
- '3'
- '4'
- '5'
- '6'
- '7'
- '8'
- '9'
- '10'
- '11'
- '12'
- '13'
- '14'
- '15'
- '16'
- '17'
- '18'
rate:
type: number
description: ''
example: 0.0
nullable: true
amount:
type: number
description: ''
example: 0.0
nullable: true
fee:
type: object
description: ''
example: null
nullable: true
properties:
code:
type: string
description: ''
example: null
nullable: true
enum:
- '1'
- '2'
- '3'
- '4'
- '5'
- '6'
- '7'
- '8'
- '9'
- '10'
- '11'
- '12'
- '13'
- '14'
- '15'
- '16'
- '17'
- '18'
- '19'
- '20'
- '21'
- '22'
amount:
type: number
description: ''
example: 0.0
nullable: true
fuel_code:
type: number
description: ''
example: null
nullable: true
discount_option:
type: boolean
description: ''
example: null
nullable: true
income:
type: array
description: ''
example: null
items:
type: object
nullable: true
properties:
type:
type: string
description: ''
example: E3_561_002
nullable: true
enum:
- ''
- E3_106
- E3_205
- E3_210
- E3_305
- E3_310
- E3_318
- E3_561_001
- E3_561_002
- E3_561_003
- E3_561_004
- E3_561_005
- E3_561_006
- E3_561_007
- E3_562
- E3_563
- E3_564
- E3_565
- E3_566
- E3_567
- E3_568
- E3_569
- E3_570
- E3_595
- E3_596
- E3_597
- E3_880_001
- E3_880_002
- E3_880_003
- E3_880_004
- E3_881_001
- E3_881_002
- E3_881_003
- E3_881_004
category:
type: string
description: ''
example: category1_1
nullable: true
enum:
- category1_1
- category1_2
- category1_3
- category1_4
- category1_5
- category1_6
- category1_7
- category1_8
- category1_9
- category1_10
- category1_95
- category3
amount:
type: number
description: ''
example: 100.0
nullable: true
expense:
type: array
description: ''
example: null
items:
type: object
nullable: true
properties:
type:
type: string
description: ''
example: null
nullable: true
enum:
- E3_101
- E3_102_001
- E3_102_002
- E3_102_003
- E3_102_004
- E3_102_005
- E3_102_006
- E3_104
- E3_201
- E3_202_001
- E3_202_002
- E3_202_003
- E3_202_004
- E3_202_005
- E3_204
- E3_207
- E3_209
- E3_301
- E3_302_001
- E3_302_002
- E3_302_003
- E3_302_004
- E3_302_005
- E3_304
- E3_307
- E3_309
- E3_312
- E3_313_001
- E3_313_002
- E3_313_003
- E3_313_004
- E3_313_005
- E3_315
- E3_581_001
- E3_581_002
- E3_581_003
- E3_582
- E3_583
- E3_584
- E3_585_001
- E3_585_002
- E3_585_003
- E3_585_004
- E3_585_005
- E3_585_006
- E3_585_007
- E3_585_008
- E3_585_009
- E3_585_010
- E3_585_011
- E3_585_012
- E3_585_013
- E3_585_014
- E3_585_015
- E3_585_016
- E3_585_017
- E3_586
- E3_587
- E3_588
- E3_589
- E3_882_001
- E3_882_002
- E3_882_003
- E3_882_004
- E3_883_001
- E3_883_002
- E3_883_003
- E3_883_004
- VAT_361
- VAT_362
- VAT_363
- VAT_364
- VAT_365
- VAT_366
- E3_103
- E3_203
- E3_303
- E3_208
- E3_308
- E3_314
- E3_106
- E3_205
- E3_305
- E3_210
- E3_310
- E3_318
- E3_598_002
category:
type: string
description: ''
example: null
nullable: true
enum:
- category2_1
- category2_2
- category2_3
- category2_4
- category2_5
- category2_6
- category2_7
- category2_8
- category2_9
- category2_10
- category2_11
- category2_12
- category2_13
- category2_14
- category2_95
amount:
type: number
description: ''
example: null
nullable: false
required:
- line_number
- name
- quantity
- price_per_unit
- net_value
- tax
taxes_totals:
type: array
description: ''
example: null
items:
type: object
nullable: true
properties:
tax_category:
type: number
description: 'The category of the specified tax.'
example: null
nullable: true
underlying_value:
type: number
description: 'The underlying value of this tax. validation.min.'
example: 100.0
nullable: true
id:
type: number
description: 'The line number of the item for which the tax is applied. validation.min.'
example: 1.0
nullable: true
tax_type:
type: number
description: 'The type of tax. This field is required when taxes_totals.* is present.'
example: 1.0
nullable: false
tax_amount:
type: number
description: 'This field is required when taxes_totals.* is present. validation.min.'
example: 4.0
nullable: false
packings_declarations:
type: array
description: ''
example: null
items:
type: object
properties:
packaging_type:
type: integer
description: ''
example: null
nullable: false
quantity:
type: integer
description: ''
example: null
nullable: false
other_packaging_type_title:
type: string
description: ''
example: null
nullable: true
required:
- packaging_type
- quantity
payment_methods:
type: array
description: ''
example:
- []
items:
type: object
properties:
code:
type: string
description: ''
example: '3'
nullable: false
enum:
- '1'
- '2'
- '3'
- '4'
- '5'
- '6'
- '7'
- '8'
amount:
type: number
description: 'Up to 2 decimal places are required.'
example: 100.0
nullable: false
info:
type: string
description: validation.max.
example: null
nullable: true
tip:
type: number
description: ''
example: null
nullable: true
provider_data:
type: string
description: ''
example: null
nullable: true
required:
- code
- amount
required:
- issue_date
- header
- currency
- issuer
- counterpart
- payment_methods
tags:
-
name: Company
description: ''
-
name: Invoices
description: ''
-
name: Misc
description: ''
-
name: Payments
description: ''
-
name: 'Unsigned Invoices'
description: ''
components:
securitySchemes:
default:
type: http
scheme: bearer
description: "Contact us to obtain your own key.\n\nYou can also include an **`X-Company-Secret`** header with the company's secret.\nThis is especially convenient for self-hosted software, but web-based software can use it as well.\nIt is activated upon request and applies to all companies of your account.\nEach merchant can find their secret inside their Invoice Portal panel and provide it to you."
security:
-
default: []