44 KiB
ELTA Courier — API and printing reference
A reference for designing the ELTA Courier integration, reconstructed from ELTA's own
desktop client ("ELTA Customer Client", ELTA_PEL.exe, client version 0032), decompiled
from ELTA's official installer (https://www.elta-courier.gr/app/ELTA_COURIER_SETUP.msi).
The decompiled source lives next to this repo in ../elta-courier-decompiled/ (see its
README); file and line references below point there. Where something was confirmed by
calling ELTA's test account from our integration, it says so.
Two axes:
- Part A — the API: every SOAP operation, its inputs and outputs, the values the client sends, and the business rules it enforces before calling.
- Part B — printing: what the client prints, when, from which data, with every fixed text, every image and every formatting rule.
Part C lists where our current integration (src/Shipping/Carriers/Elta/) differs.
Part A — The API
A1. Transport
| Host | https://clients.elta-courier.gr (port 443). Verified 2026-09-30: the hostname now resolves to 18.156.16.255 (AWS Frankfurt) and serves HTTPS with a valid certificate; answers are identical to the old host. |
| Old host | 212.205.47.226:9003 (the installer's hosts-entry.txt) — plain HTTP only: HTTPS there fails the TLS handshake (SSL_ERROR_SYSCALL), and https://clients.elta-courier.gr:9003 fails with wrong version number (that port speaks HTTP). |
| Scheme | The client builds its URL as "https://" + <first field of ip.txt> (Form1.cs:213), i.e. HTTPS on the hostname. |
| Reliability | The HTTPS host was slower (~0.4–0.8 s vs ~0.2 s) and returned one transient HTTP 500 and one 15 s timeout during testing; retry on network errors / 5xx. |
| Protocol | SOAP 1.1, document/literal. One endpoint URL for every operation. |
| Namespace | Each operation has its own: /<OPERATION> (e.g. /PELVGNEW). |
| Body | <READ> element in that namespace, with each parameter as a child element. |
| SOAPAction | We send Get (works); the proxies' SoapDocumentMethod arguments weren't decodable. |
| Authentication | None at the HTTP/SOAP level. Account codes travel as ordinary body parameters. PELLOGINNEW checks the password; other operations take the account/user code without a password. |
| Proxy | Optional corporate HTTP proxy from proxy.txt (ip;port;user;pass), with Expect100Continue = false. Local-network only; nothing to do with ELTA auth. |
| WSDL | None published for these operations; the shapes come from the client's generated proxies (ELTA_PEL.pel_*/). |
Every response carries:
st_flag— the return value ofREAD(declaredinteger)."0"= success; anything else is an error.st_title— the message (Greek) to show on error, e.g.Λάθος Τ.Κ.(wrong postcode),Λάθος ΣΥΔΕΤΑ(wrong voucher),Δεν Επιτρέπεται! Εχει Γίνει Εκτύπωση(not allowed, already printed).
Paging convention (every list operation): a page is at most 100 rows. If a page
comes back with exactly 100 rows, call again passing the last row's id as the cursor
(in_id, pel_sub_code or a_paral_code, depending on the operation); the client stops
when a page has fewer than 100 (or the 100th row is empty).
Number formats: amounts come back right-aligned in 9 characters (" 0.00");
dates go in as dd/MM/yyyy; timestamps come back as yyyyMMddHHmm[ss] in Greek local time.
A2. Operations at a glance
| Operation | Purpose | Client screen |
|---|---|---|
PELLOGINNEW |
Log in, get account details and the user's station | Login |
PELVERNEW |
Latest client version (triggers FTP self-update) | Login |
PELLISTNEW |
Sub-senders of a multi-sender account | Login |
PELSRV |
Service catalogue | Login |
PELSUR |
Surcharge catalogue | Never called (surcharges are hardcoded) |
PELPARALLIST1 |
Saved recipients (address book) | Login |
PELTKNEW |
Postcode → station, default service, localities | Voucher entry |
PELTK |
Postcode → station, service (older/simpler) | Voucher entry, recipient pick |
PELTKBOX |
Postcode → PostBox station and service | Voucher entry (PostBox) |
PELTK1 |
Is this postcode valid? | File/Excel import |
PELVGNEW |
Create a voucher (pending or issued) | Voucher entry |
PELVGUP |
Edit a pending voucher | Voucher entry (edit mode) |
PELVGINNEW |
Create a pending voucher, simplified (bulk) | File/Excel import |
PELVG01NEW1 |
Issue a pending voucher (and re-print an issued one) | Batch processing |
PELVGDEL |
Delete a pending voucher | Batch processing |
PELPARALVGNEW1 |
List pending (and optionally issued) vouchers | Batch processing |
PELTTNEW01 |
Track one voucher (by voucher number or reference) | Tracking |
PELMANIF2 |
Vouchers in a date range with latest status, by status | Multiple search |
PELMANIFNEW |
Index / manifest of vouchers in a date range, with totals | Index report |
PELPARALIN / PELPARALUP / PELPARALSE |
Address book: insert / update / fetch one | Recipients |
PELPARALDE / PELPARALDE1 |
Address book: delete one / delete a code range | Recipients |
PELPARALCE |
Address book: check a code and postcode before import | Recipient Excel import |
A3. Account and reference data
PELLOGINNEW — log in
| In | |
|---|---|
pel_code |
Customer (account) code, e.g. test account 999999999 |
user_code |
User code (digits only in the client) |
user_pass |
Password |
| Out | |
|---|---|
st_title |
Error message |
pel_flag |
"1" = multi-sender account (has sub-senders, see PELLISTNEW); "0" = single sender |
pel_titles, pel_addres, pel_area, pel_tk, pel_tel_1, pel_tel_2 |
Account name/address/area/postcode/phones — printed as the sender on single-sender accounts |
user_station |
The user's ELTA station code — sent as sender_station to the postcode lookups and to PELVG01NEW1, and printed as the deposit station (Γρ.Κατάθεσης) |
user_pel_code |
The account code to use in every later call (pel_code / pel_apost_code) |
After a successful login the client calls PELVERNEW (if an FTP address is configured);
if ag_wupdate_version > its own version (0032) it downloads an update over FTP and
stops. Then it loads the reference lists below.
PELVERNEW — client version
No inputs. Out: st_title, ag_wupdate_version.
PELLISTNEW — sub-senders (multi-sender accounts only)
In: pel_code (= user_pel_code), pel_sub_code (cursor: last code of the previous page,
"" first). Out: st_title, ag_rec_rec[] (100/page), ag_rec_counter.
Row: ag_code, ag_title, ag_adress, ag_area, ag_tk, ag_tel_1, ag_tel_2,
ag_st (station), ag_st_t (station title).
Used to pick the sender of a voucher and the return-to party (see special handling).
PELSRV — service catalogue
No inputs. Out: st_title, ag_srv_rec[] (up to 150: ag_code, ag_title), ag_srv_counter.
The service picker only offers services whose code starts with the same two digits as
the one the postcode lookup returned (same family).
PELSUR — surcharge catalogue
No inputs. Out: ag_sur_rec[] (ag_code, ag_title). The client never calls it; its
surcharges are hardcoded (see A5).
PELPARALLIST1 — saved recipients
In: pel_code, a_paral_code (cursor). Out: ag_rec_rec[] (100/page: ag_code,
ag_title, ag_adress, ag_area, ag_tk, ag_tel_1, ag_tel_2), ag_rec_counter.
A4. Postcode, station and service lookups
PELTKNEW — the main lookup
In: pel_tk (postcode), sender_station (= user_station).
| Out | |
|---|---|
pel_fields.rec_station, rec_station_t |
Destination station code and title (Γρ. Επίδοσης) |
pel_fields.pel_service, pel_service_t |
Default service for that postcode |
pel_fields.pel_service_t201, pel_service_t231 |
Titles of services 201 and 231 (see localities) |
a_lview_data[] |
Up to 300 localities within the postcode |
locations_counter |
Number of localities; "0" = none, use pel_service as is |
Locality row: wloc_code, wloc_title, wloc_county, wloc_countyt, wloc_station,
wloc_stationt, wloc_distance (decimal), wloc_postal_code, wloc_coordinate_x,
wloc_coordinate_y, wloc_disp_flag, wloc_comments.
When a postcode has localities, the user must pick one (Sydeta.cs:3320):
- the recipient area becomes
"<wloc_code>/<wloc_title>"; wloc_disp_flag = "1"(hard to reach,ΔΥΣΠΡΟΣΙΤΟ) → service231ΠΟΛΗ ΠΟΛΗ -ΠΠ- ΔΥΣΠΡΟΣΙΤΟ; otherwise service201ΕΝΤΟΣ ΠΟΛΗΣ -ΠΠ- ΕΠΟΜΕΝΗ.
PELTK — simple lookup
In: pel_tk, sender_station. Out: st_title, rec_station, rec_station_t,
pel_service, pel_service_t. Used when a saved recipient is picked.
PELTKBOX — PostBox lookup
In: pel_tk, sender_station. Out: st_title, pel_fields (rec_station,
rec_station_t, pel_service, pel_service_t). Used instead of PELTKNEW when
"ΕΠΙΔΟΣΗ POST BOX" is ticked; on error the PostBox option is unticked.
PELTK1 — validate a postcode
In: pel_tk. Out: st_title (st_flag ≠ 0 = invalid). Used by the bulk imports.
A5. Vouchers (ΣΥ.ΔΕ.ΤΑ.)
Lifecycle
PELVGNEW (pel_insert_flag "0") ─► pending: has pel_vg_id, no voucher number
│ │ editable (PELVGUP), deletable (PELVGDEL)
│ ▼
│ PELVG01NEW1 (issue) ─► issued: voucher number, OCR line,
│ stations, service; child numbers
└── (pel_insert_flag "1") ─► issued immediately, same outputs as PELVGNEW
- Only pending vouchers can be deleted. An issued one is refused (
Δεν Επιτρέπεται! Εχει Γίνει Εκτύπωση). Confirmed on the test account. - In the client, issuing = printing: "Print" in batch processing calls
PELVG01NEW1and prints the result. It callsPELVG01NEW1for already-issued rows too, so it also serves to re-print (ELTA returns the existing voucher's data). - A multi-parcel send is one voucher record (
pel_temaxia> 1). The extra parcels get their own numbers (vg_child_no[]) only when the voucher is issued. They are not separately listed, deletable or trackable (tracking an extra parcel's number returnsΛάθος ΣΥΔΕΤΑ— confirmed).
PELVGNEW — create a voucher
The client's call (Sydeta.cs:1550), in order:
| # | Parameter | Client value | Notes / rules |
|---|---|---|---|
| 1 | pel_apost_code |
Sender code: user_pel_code (single-sender), or the chosen sub-sender |
Required |
| 2 | pel_paral_name |
Recipient name | Required; up to 150 chars in the form |
| 3 | pel_paral_address |
Recipient address | Required; up to 150 |
| 4 | pel_paral_area |
Recipient area (or "<wloc_code>/<wloc_title>") |
Up to 40 |
| 5 | pel_paral_tk |
Postcode | Required; 5 digits |
| 6 | pel_paral_thl_1 |
Phone | Digits only, up to 10. At least one of the two phones is required |
| 7 | pel_paral_thl_2 |
Mobile | Up to 10. PostBox: required, 10 digits, starting 69 |
| 8 | pel_service |
Service code from the postcode lookup / picker | Required by the client (Δεν Εχει Οριστεί Υπηρεσία). We send "" and ELTA assigns one on issue — works on the test account |
| 9 | pel_baros |
Weight in kg, . decimal |
Required, > 0 |
| 10 | pel_baros_xyz |
Volumetric weight: X × Y × Z (cm) ÷ 5000, 3 decimals | Only when dimensions are given |
| 11–13 | pel_x, pel_y, pel_z |
Dimensions in cm, integers up to 3 digits | All three > 0 or none (Λάθος Διαστάσεις) |
| 14 | pel_temaxia |
Number of pieces | Required, 1–20 (Μέγιστος Επιτρεπόμενος Αριθμός Τεμαχίων 20.) |
| 15 | pel_paral_sxolia |
Remarks + envelope/parcel flag, see below | Remarks up to 90 chars |
| 16 | pel_sur_1 |
002 special handling, or 917 PostBox |
Fixed slot, see below |
| 17 | pel_sur_2 |
003 set delivery time |
Fixed slot |
| 18 | pel_sur_3 |
004 Saturday delivery |
Fixed slot |
| 19 | pel_ant_poso |
COD cash amount | . decimal |
| 20–23 | pel_ant_poso1…4 |
COD cheque amounts (up to 4 cheques) | |
| 24–27 | pel_ant_date1…4 |
Each cheque's due date, dd/MM/yyyy |
Required per cheque; not in the past |
| 28 | pel_asf_poso |
Insured value | The client always sends a single space " " — it has no insurance input |
| 29 | pel_user |
user_code |
|
| 30 | pel_ref_no |
"Reference No" | Up to 30 chars; printed on the voucher, searchable, trackable |
| 31 | pel_insert_flag |
"1" = issue now ("Εκτύπωση ΣΥ.ΔΕ.ΤΑ." ticked), "0" = pending |
We send "0" |
| 32 | pel_paral_code |
Saved recipient's code, if picked from the address book | |
| 33 | pel_retur_code |
Return-to party's code (special handling only) | See below |
Envelope or parcel (mandatory). The client makes the user choose Φάκελος (envelope)
or Δέμα (parcel) (Δεν Εχει Επιλεγεί Είδος), and encodes it inside
pel_paral_sxolia: the remarks right-aligned in 99 characters, then "1" (envelope) or
"2" (parcel) — 100 characters total (Sydeta.cs:1530):
pel_paral_sxolia = $"{remarks.Trim(),99}" + "2"; // parcel
(Only PELVGNEW does this; PELVGUP and PELVGINNEW send the remarks plain.)
Surcharges go in fixed slots, not in order: special handling is always pel_sur_1, set
time always pel_sur_2, Saturday always pel_sur_3; PostBox (917) takes pel_sur_1.
The client's surcharges:
| Code | Surcharge | Slot |
|---|---|---|
002 |
ΕΙΔΙΚΗ ΔΙΑΧΕΙΡΙΣΗ (special handling) | pel_sur_1 |
003 |
ΠΡΟΚΑΘΟΡΙΣΜΕΝΗ ΩΡΑ (set delivery time) | pel_sur_2 |
004 |
ΕΠΙΔΟΣΗ ΣΑΒΒΑΤΟΥ (Saturday delivery) | pel_sur_3 |
917 |
ΕΠΙΔΟΣΗ POST BOX (PostBox delivery) | pel_sur_1 |
Special handling (002) and the return-to party. Ticking special handling sets a
return-to party (pel_retur_code), defaulting to the sender; multi-sender accounts can
pick another sub-sender. When ELTA then returns a return voucher (return_vg), the
client prints it (B6).
Business rules the client enforces (all before calling ELTA):
- name, address, postcode, service required; at least one phone; pieces 1–20; weight > 0;
- COD is cash or cheques, never both (
Δεν Επιτρέπεται Αντικαταβολή Μετρητά Και Επιταγή); - each cheque needs a due date, not in the past;
- PostBox: not with special handling (
Δεν Επιτρέπεται Post Box Με ειδική Διαχείρηση), not with COD (Δεν Επιτρέπεται Post Box Με Αντικαταβολή), and needs a 10-digit mobile starting69(Δεν Επιτρέπεται Post Box Χωρίς Κινητό Τηλέφωνο/...Λάθος Κινητό Τηλέφωνο); - envelope or parcel must be chosen.
Outputs (same set from PELVG01NEW1, plus stations/service there):
| Out | |
|---|---|
vg_code |
The voucher number, e.g. NZ000987368GR (empty when pending) |
vg_child_no[] |
One number per extra parcel of a multi-parcel send (up to 149) |
ocr_line |
OCR line, e.g. >14260009873682< 17004> 1317759< 25> — printed at the foot of the A4 payment stub; characters 2–14 are the 13-digit reference printed on the voucher |
return_vg, r_ocr_line |
Return voucher number and its OCR line (special handling) |
epitagh_vg, e_ocr_line |
Cheque-return voucher number and its OCR line (COD by cheque) |
date_time |
Issue time, yyyyMMddHHmm (Greek time). The client picks the report by it (≥ 202410 → current reports) |
PELVGNEW does not return the pending voucher's id (pel_vg_id); find it with
PELPARALVGNEW1 (match pel_ref_no, empty pel_paral_vg, highest id).
PELVG01NEW1 — issue (and re-print)
In: pel_id (= pel_vg_id, declared integer), sender_station (= user_station).
Out: st_title, return_vg, epitagh_vg, vg_code, vg_child_no[], ocr_line,
r_ocr_line, e_ocr_line, date_time, rec_station, rec_station_t (destination
station), rec_srv, rec_srv_t (the service ELTA settled on, e.g. 201 ΠΟΛΗ ΠΟΛΗ - ΠΠ).
PELVGUP — edit a pending voucher
In: pel_id, then the same fields as PELVGNEW 1–30 and pel_paral_code (no
pel_insert_flag, no pel_retur_code; remarks sent plain). Out: st_title.
PELVGINNEW — bulk insert (pending)
Used by the file/Excel imports. In: pel_code (sender), user_code, paral_title,
paral_adress, paral_area, paral_tk, paral_thl1, paral_thl2, paral_tem
(pieces), paral_baros, paral_sxolia, paral_ant_m (COD cash), paral_ant_e (COD
cheque), paral_ant_date (cheque due date), paral_da (always ""), paral_ref,
paral_sur_1…3, retour_code. Out: st_title. No service, no envelope/parcel flag,
no dimensions — ELTA works them out.
PELVGDEL — delete a pending voucher
In: pel_vg_id (the pending id, not the voucher number). Out: st_title. The client
only offers it for rows without a voucher number.
PELPARALVGNEW1 — list pending vouchers
In: pel_code, pel_user_code, flag_1 ("1" = "Εμφάνιση Όλων": include issued ones),
flag_2 ("1" = "Όλοι Οι Χρήστες": all the account's users), in_id (cursor: last
pel_vg_id, "0" first). Out: st_title, vg_rec[] (100/page), vg_rec_counter.
Row fields: pel_vg_id, pel_apost_code, pel_paral_vg (voucher number; empty =
pending), pel_paral_code, pel_paral_name, pel_paral_address, pel_paral_area,
pel_paral_tk, pel_paral_thl_1, pel_paral_thl_2, pel_service, pel_baros,
pel_baros_xyz, pel_x, pel_y, pel_z, pel_temaxia, pel_paral_sxolia,
pel_ant_poso, pel_ant_poso1…4, pel_ant_date1…4, pel_asf_poso, pel_ref_no,
pel_sur_1…3, pel_retour.
A6. Tracking and search
PELTTNEW01 — track one voucher
In: web_vg — a voucher number or our reference number (the client's field is labelled
ΣΥ.Δ.ΕΛ.ΤΑ./Reference No), pel_code.
Out: st_title, web_status[] (up to 50 checkpoints), web_status_counter, pel_rec.
Checkpoint: web_date_time (yyyyMMddHHmmss, Greek time), web_station,
web_status_name (e.g. ΔΗΜΙΟΥΡΓΙΑ ΣΥ.ΔΕ.ΤΑ. ΑΠΟ ΠΕΛΑΤΗ, in unaccented capitals),
web_sxolia (e.g. PEL CLIENT). Empty rows pad the array; skip rows without a date.
pel_rec (the voucher record):
| Field | Meaning |
|---|---|
a_vg_3 |
The voucher number |
a_vg_2 |
Its return voucher — verified: a special-handling voucher's return_vg came back here |
a_vg_1 |
Its cheque voucher (by elimination; the client's field labels suggested the opposite) |
a_ref |
Our reference |
a_rec_title, a_rec_address, a_rec_area, a_rec_postal, a_rec_tel_1, a_rec_tel_2 |
Recipient |
a_rec_station, a_rec_station_t |
Destination station |
a_services |
Service (code/text) |
a_weight (decimal), a_no_of_packages |
Weight, pieces |
a_antik (decimal), a_antik_text |
COD amount and text |
a_antik1 (decimal), a_antik_text1 |
Remittance ("Απόδοση") — the COD paid back to the merchant |
a_sender_date |
Date sent |
a_rec_name |
Delivered to — the name of whoever received it |
a_rec_date_time |
Delivered at — blank until delivered |
a_apost, a_sxolia |
Sender, remarks |
PELMANIF2 — vouchers in a date range, by status ("Πολλαπλή Αναζήτηση")
In: pel_code, date_1, date_2 (dd/MM/yyyy), paral_code (optional recipient),
status_flag, in_id (cursor: last pel_col_id).
status_flag |
|
|---|---|
0 |
All (Ολα) |
1 |
Delivered (Παραδομένα) |
2 |
Undelivered (Απαραδοτα) |
3 |
To be returned (Προς Επιστροφή) |
Row: pel_col_1 voucher · pel_col_2 reference · pel_col_3 recipient · pel_col_4
postcode · pel_col_5 station · pel_col_6 last status · pel_col_7 remarks/date ·
pel_col_8 COD · pel_col_id cursor. Only main vouchers are listed.
PELMANIFNEW — index / manifest ("Ευρετήριο")
In: pel_code, date_1, date_2, paral_code, in_id (cursor: last pel_col_15).
Out: ag_pel_rec[], ag_pel_counter, spel_baros (total weight of the page, decimal),
spel_temaxia (total pieces of the page).
Row: pel_col_1 voucher · 2 weight · 3 pieces · 4 recipient · 5 address ·
6 postcode · 7 station · 8 sender · 9 reference · 10 COD · 11 cheque
voucher · 12 return voucher · 13 + 14 the two phones · 15 cursor.
A7. Address book
| Operation | In | Out |
|---|---|---|
PELPARALIN |
pel_code, paral_code, paral_title, paral_adress, paral_area, paral_tk, paral_thl1, paral_thl2 |
st_title |
PELPARALUP |
same as PELPARALIN |
st_title |
PELPARALSE |
pel_code, paral_code |
the recipient's fields |
PELPARALDE |
pel_code, paral_code |
st_title |
PELPARALDE1 |
pel_code, paral_code_1, paral_code_2 (a code range) |
st_title |
PELPARALCE |
pel_code, paral_code, paral_tk, tk_flag, pel_flag |
st_tk ("1" = bad postcode), st_code ("1" = code already exists) |
A8. Client-side configuration files (for reference)
| File | Content |
|---|---|
ip.txt |
<host:port>;<ftp host> — web-service host (prefixed with https://) and update FTP host |
proxy.txt |
ip;port;user;pass |
printer.txt |
print_on_create(0/1);printer name;paper size — 1 = A4, 2 = label (A6) |
paral.txt, awb.txt |
Excel column letters for the recipient (7) and voucher (16) imports |
A9. Excel import (voucher columns)
Recipient name, address, area, postcode, phone, mobile, pieces, weight, remarks, COD cash,
COD cheque, cheque due date, reference, surcharge 1–3 — each mapped to a column letter
(defaults A…P). Rows are validated (postcode via PELTK1, PostBox via PELTKBOX,
pieces ≤ 20, …), invalid ones shown red and skipped; valid ones go through PELVGINNEW
as pending vouchers, issued later from batch processing.
Part B — Printing
B1. When the client prints
- On creation, if "Εκτύπωση ΣΥ.ΔΕ.ΤΑ." is ticked (default from
printer.txt): it sendspel_insert_flag = "1"and prints straight away. - From batch processing ("Εκτύπωση Επιλεγμένων" / "Εκτύπωση Όλων"): issues each voucher
with
PELVG01NEW1and prints it.
Each print job prints, in order (Sydeta.cs:1646, epexergasia.cs):
- the main voucher (
print_vg); - one label per extra parcel,
002/00n,003/00n, … (print_child) — printing the main voucher always prints every parcel; there is no way to print one extra parcel alone; - the return voucher, if ELTA returned
return_vg(B6); - the cheque-return voucher, if ELTA returned
epitagh_vg(B7).
B2. Paper and report selection
Paper (printer.txt) |
Page (render DeviceInfo) | Main voucher | Extra parcel |
|---|---|---|---|
1 A4 |
21 × 29.7 cm, no margins | sydetaE.rdlc |
sydetaE1.rdlc (separate, smaller report) |
2 label |
10.4 × 14.8 cm (not ISO A6's 10.5), no margins | SydetaLabelE.rdlc |
SydetaLabelE.rdlc (same report) |
Vouchers issued before October 2024 (date_time < 202410) use the older reports
(sydeta, sydeta1, SydetaLabel1). sydeta_R, sydeta1_R, SydetaLabel2 are only
on-screen previews. Rendering is EMF at the page size, drawn to the whole page, sent to the
configured printer without a dialog (a print dialog only if no printer is configured).
B3. The print data — every field
The reports read one dataset row (DataSet1.print_fields). How the client fills it for a
main voucher (Sydeta.cs::print_vg, epexergasia.cs::print_vg):
Sender (sender_1…5)
sender_1 |
"Κωδικός:" + sender code |
sender_2, sender_3 |
Sender name, split at 40 characters (sender_3 = the next 40, else "") |
sender_4 |
Sender address (first 40 characters) |
sender_5 |
"TK:" + postcode + " " + area + " ΤΗΛ:" + phone, cut at 40 |
Sender = the account (single-sender) or the chosen sub-sender.
Recipient (rec_1…5)
rec_1, rec_2 |
Recipient name, split at 40 (rec_2 = the rest, else "") |
rec_3 |
Address (first 40) |
rec_4 |
"TK:" + postcode + " " + area |
rec_5 |
"ΤΗΛ: " + phone + " " + mobile |
Voucher and routing
| Field | Value |
|---|---|
sydeta |
Voucher number, e.g. NZ000987368GR |
barcode |
"*" + voucher + "*" — printed in a Code 39 barcode font (the asterisks are Code 39 start/stop) |
barcode_2 |
ocr_line characters 2–14 (13 digits), e.g. 1426000987368 |
date |
A4: dd/MM/yyyy HH:mm; label: dd/MM/yyyy |
time |
Label only: HH:mm |
service, service_title |
Service code and title, e.g. 201 / ΠΟΛΗ ΠΟΛΗ - ΠΠ |
station_apo |
Deposit station = the user's station (Γρ.Κατάθεσης) |
station_pros, station_pros_title |
Destination station (Γρ. Επίδοσης), e.g. 94580 / ΙΩΑΝΝΙΝΑ - ΠΡΑΚΤΟΡΕΙΟ |
xreosi |
ΧΡΕΩΣΗ ΑΠΟΣΤΟΛΕΑ ΠΙΣΤΩΣΗ (charged to sender, on credit) |
siimvasi |
131775-9 (fixed; the ELTA "Ταχυπληρωμή" account number) |
copy |
Empty on a main voucher (see extra parcels / return voucher) |
Parcel
| Field | Value |
|---|---|
baros |
Weight as entered |
ogos_baros |
Volumetric weight (A4) |
ogos_1 |
"XxYxZ" (A4) |
ogos_2 |
"XxYxZ = <volumetric>" (label) |
ogos_3 |
* ΠΡΟΣΟΧΗ PostBox * for PostBox, else empty |
temaxia |
1 piece: the count as entered (1); several: "001/" + count (e.g. 001/003) |
polaplo |
* ΠΟΛΛΑΠΛΗ ΑΠΟΣΤΟΛΗ * when more than one piece |
periexomeno |
The Reference No (pel_ref_no) — printed in the REFERENCE box |
sxolia_1…3 |
Remarks in 27-character lines (1st 27, next 27, the rest) — the plain remarks, not the padded/flagged value |
Cash on delivery (num6 = cash + all cheques)
| Field | When | Value |
|---|---|---|
antik_minima |
COD | * ΠΡΟΣΟΧΗ ΑΝΤΙΚΑΤΑΒΟΛΗ * |
apodiksi |
COD | * Απόδειξη Είσπραξης * (the entry screen misspells it Είσπαξης; batch printing spells it right) |
antik_1 |
COD | ΑΝΤΙΚΑΤΑΒΟΛΗ <total, 2 decimals>; PostBox: * ΠΡΟΣΟΧΗ PostBox * |
antik_2 |
COD | * ΑΝΑΛΥΣΗ * |
antik_3 |
cash | <cash> MΕΤΡΗΤΑ (the "M" is a Latin M) |
antik_3…6 |
cheques, A4 | <amount> € ΕΠΙΤΑΓΗ <due date> per cheque |
antik_3…6 |
cheques, label | <amount> ΕΠ/ΓΗ <due date> per cheque |
antik_poso |
always | the total if paid in cash, else 0.00 (cheques and no COD) |
antik_ocr |
always | ocr_line — printed at the foot of the A4 payment stub |
Surcharges (sur_1…3) — from the codes, in this layout:
| Codes | sur_1 |
sur_2 |
sur_3 |
|---|---|---|---|
| 002 | 002 ΕΙΔΙΚΗ ΔΙΑΧΕΙΡΗΣΗ | ||
| 002 + 003 | 002 … | 003 ΠΡΟΚΑΘΟΡΙΣΜΕΝΗ ΩΡΑ | |
| 002 + 003 + 004 | 002 … | 003 … | 004 ΕΠΙΔΟΣΗ ΣΑΒΒΑΤΟΥ |
| 002 + 004 | 002 … | 004 ΕΠΙΔΟΣΗ ΣΑΒΒΑΤΟΥ | |
| 003 | 003 … | ||
| 003 + 004 | 003 … | 004 … (entry screen) / sur_1 = 004 (batch) |
|
| 004 | 004 … (entry screen) / sur_1 = 004 (batch) |
||
| 917 (PostBox) | * ΠΡΟΣΟΧΗ PostBox * |
(003/004 as above) |
(The entry screen and batch printing place 004 differently when 002 is absent — a client
inconsistency; sur_4 exists in the A4 report but is never filled.)
Fields in the dataset that no code fills: service_thirida, axia, sur_4, antik_7.
B4. Extra parcel labels (print_child)
For each vg_child_no (k = 2, 3, …; n = pieces):
| Field | Value |
|---|---|
sydeta, barcode |
The parcel's own number / *number* |
temaxia |
Label: "00k/00n" (e.g. 002/003); A4: n |
periexomeno |
A4 only: "00k/00n" — printed large in the child report |
polaplo |
Label: ΠΟΛΛΑΠΛΗ ΑΠΟΣΤΟΛΗ - MASTER : <main voucher> |
copy |
Label: ΠΟΛΛΑΠΛH; A4: "*" + main voucher + "*" (under ΜASTER ΣΥΔΕΤΑ) |
antik_minima, antik_1 |
COD: * ΠΡΟΣΟΧΗ ΑΝΤΙΚΑΤΑΒΟΛΗ * — no amount (collected on the main voucher) |
sender, recipient, date, time, service, service_title, baros, stations, sxolia_1…3 |
As on the main voucher |
| Not set | barcode_2, xreosi, siimvasi, sur_*, ogos_*, other antik_*, reference (label) |
B5. What each report prints
A4 main voucher — sydetaE.rdlc
One A4 page, three bands separated by cut lines, each with a side strip naming the copy:
| Band | Copies (side strips) | Contents |
|---|---|---|
| 1 (top) | 1. ΑΠΟΣΤΟΛΕΑΣ / SHIPPER, 3. ΑΡΧΕΙΟ / ΓΡΑΦΕΙΟ ΚΑΤΑΘΕΣΗΣ |
Full voucher: logo, ELTA details, title, barcode, voucher, deposit/destination stations, weight, volumetric, pieces, service, sender, recipient, charge line, surcharges, reference, remarks, COD block, signature boxes, terms |
| 2 | 6. ΠΑΡΑΛΗΠΤΗΣ / CONSIGNEE, 5. ΑΡΧΕΙΟ / ΓΡΑΦΕΙΟ ΕΠΙΔΟΣΗΣ |
Same voucher again, with the sender's signature box, print time, copy, antik_minima, apodiksi |
| 3 (payment stub) | 2. - 4. ΛΟΓΙΣΤΗΡΙΟ |
"ΤΑΧΥΠΛΗΡΩΜΗ ΕΙΣΠΡΑΞΗ / ΜΕΤΑΒΙΒΑΣΗ": voucher + barcode, stations, weight, pieces, service, charge, sender (code + name), recipient (name, address, postcode), surcharges, remarks, signature boxes, COD breakdown, ΠΟΣΟ (antik_poso), date stamp, fees, "Η-αριθμός", "Αρ. Λογ/κής Απόδοσης", and the OCR line below "ΜΗ ΣΗΜΕΙΩΝΕΤΕ ΚΑΤΩ ΑΠΟ ΑΥΤΗ ΤΗ ΓΡΑΜΜΗ" |
Fields used: antik_1–7, antik_minima, antik_ocr, antik_poso, apodiksi, barcode,
baros, copy, date, ogos_1, ogos_3, ogos_baros, periexomeno, rec_1–5,
sender_1–5, service, service_title, station_apo, station_pros,
station_pros_title, sur_1–4, sxolia_1–3, sydeta, temaxia.
Fixed texts (verbatim, typos included):
ΣΥΝΟΔΕΥΤΙΚΟ ΔΕΛΤΙΟ ΤΑΧΥΜΕΤΑΦΟΡΑΣΥΠΗΡΕΣΙΑ :,Ογκ/κο ΒάροςΧΡΕΩΣΗ ΑΠΟΣΤΟΛΕΑ ΤΡ.ΠΛΗΡ: ΠΙΣΤΩΣΗ(copies),ΧΡ. ΑΠΟΣΤ: ΠΙΣΤΩΣΗ(stub)Συν.Χρέωσης (€):/Συν.Χρέωσης. (€):/Συν.Χρ. (€):Πρόσθετες Υπηρεσίες,* ΕΠΙΒΑΡΥΝΣΕΙΣ ** REFERENCE No */* REFERENCE No** ΠΑΡΑΤΗΡΗΣΕΙΣ *ΓΙΑ ΤΗΝ ΠΑΡΑΛΑΒΗ,ΟΝΟΜΑ/ΥΠΟΓΡΑΦΗΥΠΟΓΡΑΦΗ ΑΠΟΣΤΟΛΕΑ,ΟΝΟΜΑ/ΥΠΟΓΡΑΦΗ ΠΑΡΑΛΗΠΤΗΗμερομηνία - Ωρα Εκτύπωσης :,Ημ/νία:,Ώρα:Π Ο Σ ΟΈλαβα γνώση των όρων που αναγράφονται στο αντίγραφο 1 και 6 και τους αποδέχομαι ανεπιφύλακτα(and a variant ending...αντίγραφο 1 και τους αποδέχομαι ανεπιφύλακτα)ΕΕΤΤ ΑΜ 99-150 Γενική Αδεια Ταχ/κων Υπηρεσιών
Images used, with what they contain:
| Image | Where | Content |
|---|---|---|
elta, elta1 |
Band 1/2 top-left | ELTA Courier logo |
Πλήρηστοιχεία_red1, _red2, _black |
Next to the logo; stub | ELTA company details (see B8) |
Point2_EETTAM_August2024 |
Band 1 | ΕΕΤΤ ΑΜ: 99-150 Γενική Άδεια Ταχ/κων Υπηρεσιών |
Point4_CompanynameEETTAM_August2024 |
Band 2 | ΕΛΛΗΝΙΚΑ ΤΑΧΥΔΡΟΜΕΙΑ Α.Ε. ΕΕΤΤ ΑΜ: 99-150 Γενική Άδεια Ταχ/κων Υπηρεσιών |
oroi |
Band 1, vertical | Ισχύουν οι Γενικοί Οροι Παραχής Υπηρεσιών οι οποίοι βρίσκονται αναρτημένοι στο www.elta-courier.gr και είναι διαθέσιμοι σε ολα τα καταστήματα της εταιρίας. ("Παραχής", "ολα": ELTA's own spelling, same as the label) |
ID1__shipper_ec |
Band 1 side | 1.ΑΠΟΣΤΟΛΕΑΣ / SHIPPER |
ID3__file_ec |
Band 1 side | 3. ΑΡΧΕΙΟ / ΓΡΑΦΕΙΟ ΚΑΤΑΘΕΣΗΣ |
ID6__consignee_ec |
Band 2 side | 6. ΠΑΡΑΛΗΠΤΗΣ / CONSIGNEE + ΕΕΤΤ ΑΜ:01-200 Γενική Άδεια Ταχ/κών Υπηρεσιών |
ID5__file_store_elta_courier |
Band 2 side | 5. ΑΡΧΕΙΟ / ΓΡΑΦΕΙΟ ΕΠΙΔΟΣΗΣ |
ID2_4_logistirio |
Stub side | 2. - 4. ΛΟΓΙΣΤΗΡΙΟ |
elta_taxyplirwmi_eispraksi |
Stub header | ΤΑΧΥΠΛΗΡΩΜΗ ΕΙΣΠΡΑΞΗ / ΜΕΤΑΒΙΒΑΣΗ Ο. Αριθμός Λογ/μού Ταχυπληρωμής 131775-9 |
elta_chromologiko_simantro |
Stub | ELTA Ταχυπληρωμή logo + Χρονολογικό Σήμαντρο (date-stamp box) |
elta_teli |
Stub | Τέλη (fees) |
elta_h_arithmos |
Stub | Η - αριθμός |
elta_ar__logiostikis_apodosis |
Stub | Αρ. Λογ/κής Απόδοσης |
Point5_ELTACourier_ΑποστολήμαςΕσείς_September2024 |
Stub, vertical | ELTA "Hellenic Post" logo + Αποστολή μας εσείς! |
mhn_shmeivnete |
Foot | ΜΗ ΣΗΜΕΙΩΝΕΤΕ ΚΑΤΩ ΑΠΟ ΑΥΤΗ ΤΗ ΓΡΑΜΜΗ |
A4 extra parcel — sydetaE1.rdlc
A single block: logo (eltared) + company details (Πλήρηστοιχεία_red1), ΕΕΤΤ ΑΜ 99-150 Γενική Αδεια Ταχ/κων Υπηρεσιών, ΣΥΝΟΔΕΥΤΙΚΟ ΔΕΛΤΙΟ ΤΑΧΥΜΕΤΑΦΟΡΑΣ, barcode + parcel number,
Ημερομηνία - Ωρα Εκτύπωσης : + date, deposit station / weight / Ογκ/κο Βάρος / pieces,
ΥΠΗΡΕΣΙΑ : + service, destination station, sender (5 lines), recipient (5 lines), and a
panel with ** ΠΟΛΛΑΠΛΗ ΑΠΟΣΤΟΛΗ **, the piece (002/003, large), the COD warning,
ΜASTER ΣΥΔΕΤΑ and the master voucher. No surcharges, reference, remarks, charge line,
COD amounts or stub.
Label (10.4 × 14.8 cm) — SydetaLabelE.rdlc
Top: logo (elta_logoblack), company details (Πλήρηστοιχεία_black1), a ΥΠΗΡΕΣΙΑ: box
(service + title), the EETT box (Point2_EETTAM_August2024), date and time,
ΣΥΝΟΔΕΥΤΙΚΟ ΔΕΛΤΙΟ ΤΑΧΥΜΕΤΑΦΟΡΑΣ, copy. Then Γρ. Επίδοσης : + destination station;
a row of charge (xreosi) / OCR reference (barcode_2) / siimvasi; Γρ.Κατάθεσης:,
ΒΑΡΟΣ(Kgr), ΟΓΚΟΜΕΤΡΙΚΟ ΒΑΡΟΣ(Kgr) (ogos_2), Τεμάχια; the sender (ΑΠΟΣΤΟΛΕΑΣ,
5 lines) next to ΑΙΤΙΑ ΕΠΙΣΤΡΟΦΗΣ (return reasons with tick boxes: Άγνωστος,
Ελλειπή Δ/νση, Απαράδεκτο, Άλλαξε Δ/νση, Αζήτητο); the recipient (Π Α Ρ Α Λ Η Π Τ Η Σ,
5 lines) next to the COD column (antik_1…7); REFERENCE (periexomeno) and
* ΠΑΡΑΤΗΡΗΣΕΙΣ * (sxolia_1, sxolia_2 — only two lines on the label) next to
* ΕΠΙΒΑΡΥΝΣΕΙΣ * (sur_1…3); the polaplo line; the terms (Ισχύουν οι Γενικοί Οροι Παραχής Υπηρεσιών οι οποίοι βρίσκονται αναρτημένοι στο www.elta-courier.gr / και είναι διαθέσιμοι σε ολα τα καταστήματα της εταιρίας. — "Παραχής" is ELTA's typo); the
antik_1 banner; the barcode; the voucher number (sydeta).
B6. Return voucher ("RETOUR")
Printed when return_vg is not empty (special handling with a return-to party):
| Field | Value |
|---|---|
copy |
RETOUR |
rec_1…5 (recipient = return-to party) |
"Κωδικός:" + code, name (split at 40), address, "TK:… … ΤΗΛ:…" |
sender_1…5 (sender = our recipient) |
name (split at 40), address, "TK:" + postcode + " " + area, "ΤΗΛ: " + phones |
sydeta, barcode |
return_vg |
barcode_2 |
r_ocr_line characters 2–14 |
service, service_title |
461 RETOUR ΕΝΤΟΣ ΠΟΛΗΣ if the original service starts with 1, else 462 RETOUR ΠΟΛΗ ΠΟΛΗ |
xreosi |
ΧΡΕΩΣΗ ΠΑΡΑΛΗΠΤΗ ΠΙΣΤΩΣΗ (charged to the recipient) |
siimvasi |
131775-9 |
baros, temaxia |
0.100, 1 |
station_apo / station_pros |
the original destination station / the return-to party's station |
sxolia_1…3 |
"ΣΥΔΕΤΑ <main voucher> Χρέωση Πελάτη <sender code>" in 27-char lines |
antik_poso / antik_ocr |
0.00 / r_ocr_line |
B7. Cheque-return voucher
Printed when epitagh_vg is not empty (COD by cheque) — carries the cheques back:
| Field | Value |
|---|---|
copy |
empty |
rec_* (recipient = our sender) |
"Κωδικός:" + sender code, sender name, address, TK/area/phone line |
sender_* (sender = our recipient) |
as in B6 |
sydeta, barcode, barcode_2 |
epitagh_vg, *epitagh_vg*, e_ocr_line characters 2–14 |
service, service_title |
350 ΕΠΙΣΤΡΟΦΗ ΑΞΙΟΓΡΑΦΩΝ |
xreosi |
ΧΡΕΩΣΗ ΠΑΡΑΛΗΠΤΗ ΠΙΣΤΩΣΗ |
siimvasi, baros, temaxia |
131775-9, 0.100, 1 |
station_apo / station_pros |
the original destination station / the user's station |
sxolia_* |
"ΣΥΔΕΤΑ <main voucher> Χρέωση Πελάτη <sender code>" |
antik_poso / antik_ocr |
0.00 / e_ocr_line |
B8. ELTA company details (as printed, from ELTA's current images)
ΕΛΛΗΝΙΚΑ ΤΑΧΥΔΡΟΜΕΙΑ Α.Ε.
Έδρα: Λεωφ. Ιωνίας 200 & Ιακωβάτων 61,
111 44 Αθήνα
Α.Φ.Μ.: 094026421 | Δ.Ο.Υ.: ΚΕ.ΦΟ.Δ.Ε. ΑΤΤΙΚΗΣ
Τ. 210-6073000 | Ε. info@elta-courier.gr
www.elta-courier.gr
Γ.Ε.ΜΗ: 001092101000
EETT licence: ΕΕΤΤ ΑΜ: 99-150 Γενική Άδεια Ταχ/κων Υπηρεσιών (the older 01-200 still
appears on the consignee copy strip and the legacy reports, whose company block reads
ΤΑΧΥΜΕΤΑΦΟΡΕΣ ΕΛΤΑ Α.Ε., Λ.Μεσογείων 395, Αγία Παρασκευή, 153 43, ΤΗΛ:210 6073000 FAX:2106073100, ΑΦΜ: 099759170 ΔΟΥ ΦΑΕ ΑΘΗΝΩΝ, Ε.Ε.Τ.Τ. ΑΜ 01-200 — not current).
B9. Other printouts (reports lists)
| Report | Screen | Columns |
|---|---|---|
Report1 (landscape) |
Index, simple | ΣΥ.ΔΕ.ΤΑ., ΒΑΡΟΣ, ΤΕΜΑΧΙΑ, ΠΑΡΑΛΗΠΤΗΣ, ΔΙΕΥΘΥΝΣΗ, Τ.Κ., ΣΤΑΘΜΟΣ, ΑΠΟΣΤΟΛΕΑΣ, REFERENCE No; title ΚΑΤΑΣΤΑΣΗ ΣΥ.ΔΕ.ΤΑ. + date range; totals row ΣΥΝΟΛΑ (weight, pieces) |
Report3 (landscape) |
Index, extended | the above + ΤΗΛΕΦΩΝΑ, ΑΝΤ/ΛΗ, ΣΥΔΕΤΑ ΕΠΙΤΑΓΗΣ, ΣΥΔΕΤΑ ΕΠΙΣΤΡΟΦΙΚΟΥ |
Report2 (landscape) |
Multiple search | ΣΥ.ΔΕ.ΤΑ., REFERENCE, ΠΑΡΑΛΗΠΤΗΣ, Τ.Κ., ΣΤΑΘΜΟΣ, ΑΝΤ/ΒΟΛΗ, ΤΕΛΕΥΤΑΙΟ STATUS, ΣΧΟΛΙΑ |
Part C — Where our integration differs (as of 0.29.3)
Rows marked Fixed are handled since 0.31.0 (see CHANGELOG); the "Ours" column describes the fixed behaviour.
Verified against ELTA's test account (2026-09-30)
All with generic test data (TEST RECIPIENT, TEST ADDRESS 1, 10431, 2100000000,
references TEST-…); pending vouchers were deleted afterwards. One issued voucher remains
on the shared account: NZ000987460GR (+ return voucher NZ000987473GR).
| Check | Result |
|---|---|
| HTTPS | Works on https://clients.elta-courier.gr (443); fails on the old IP and on port 9003 (see A1) |
| Envelope/parcel flag | Accepted. ELTA trims the padding and keeps the flag as the last character of the remarks (TEST REMARK2, also in tracking a_sxolia). Whether ELTA also reads it as the parcel type isn't visible through the API |
| Surcharge slots | Stored exactly in the slot sent (004 in slot 1 stays 004|000|000); ELTA does not normalize. Tracking (a_services) shows only the service, never surcharges, so their effect can't be read back. ELTA's own client only reads Saturday from slot 3 (B3), so 004 in slot 1 would not print as Saturday there |
| Blank service | Accepted, but ELTA stores 201 ΠΟΛΗ ΠΟΛΗ for 10431, where its own lookup (PELTKNEW) gives 101 ΕΝΤΟΣ ΠΟΛΗΣ for the test station — a blank service can land on a different service than the client would send. Explicit 101/201 are honoured |
| Localities | Common: 45500 Ιωάννινα has 190 localities (170 hard-to-reach → 231), 20100 Κόρινθος 41 (16), 72200 Χίος 56 (31); islands get 211 ΠΟΛΗ ΠΟΛΗ -ΠΠ- ΝΗΣΙ |
| Insurance | pel_asf_poso = 50.00 is stored; effect not visible |
| No phones / 21 pieces | Both accepted at creation (the limits are the client's); not tested at issue |
| Remarks > 90 | 95 characters accepted and stored in full (90 is the client's limit) |
| Special handling + return-to | Issuing returned a return voucher (return_vg + r_ocr_line); tracking lists it in a_vg_2 |
| Tracking by reference | PELTTNEW01 with our reference (00000007) returns the voucher |
| Delivery / remittance fields | Present in pel_rec (a_rec_name, a_rec_date_time, a_antik1, a_antik_text1); empty until delivery |
PostBox lookup (PELTKBOX) |
10431 → station 10200 ΑΙΟΛΟΥ 100 (Κ.Κ.), service 101; 45500, 84100, 00000 → st_flag 1 "Το Τ.Κ. Δεν Εχει PostBox" |
The differences
| # | Topic | ELTA client | Ours | Impact |
|---|---|---|---|---|
| 1 | Envelope/parcel | Mandatory; remarks right-aligned in 99 chars + 1/2 in pel_paral_sxolia |
Remarks right-aligned in 99 characters (padded by characters) + 2 |
Fixed |
| 2 | Surcharge slots | Fixed: 002→1, 003→2, 004→3, 917→1 |
Fixed slots, as the client | Fixed |
| 3 | Service | Always resolved first (PELTKNEW) and sent |
Resolved with PELTKNEW (sender station) and sent |
Fixed (was blank; ELTA then gave 201 where its lookup gives 101) |
| 4 | Localities | Area = code/title of the picked locality; hard-to-reach → service 231 |
Locality matched by the address's city (accents/case ignored) → code/title + its service; no match → blank service, noted on the shipment |
Fixed |
| 5 | Phones | At least one required; PostBox needs 69… mobile |
At least one required; digits only, 30/0030 dropped, 69… → mobile field |
Fixed (PostBox not offered) |
| 6 | Pieces | 1–20 | Refused above 20 | Fixed |
| 7 | Insurance | Never sent (" ") |
We send pel_asf_poso |
Unverified whether ELTA honours it |
| 8 | PostBox (917) |
Supported, with rules (no COD, no special handling, mobile) | "PostBox delivery" extra service: PELTKBOX routing, 917 in pel_sur_1, the client's rules checked, PostBox texts on the label |
Fixed |
| 9 | Cheque COD | Up to 4 cheques + dates; cheque-return voucher printed | Cash only | Fine for a shop; noted for completeness |
| 10 | Special handling + return | Return-to party (pel_retur_code); RETOUR voucher printed |
Return-to = our sender code; return_vg + r_ocr_line stored; RETOUR page printed after the parcels (B6) |
Fixed |
| 11 | Remarks length | 90 chars | 90 | — |
| 12 | Company details on labels | B8 (Ιωνίας 200, Γ.Ε.ΜΗ) | B8 details on the A4 copies, stub, A4 child and A6 | Fixed |
| 13 | Απόδειξη Είσπραξης |
Correct in batch printing | Correct | Fixed |
| 14 | Side copy strips, stub strips, "Αποστολή μας εσείς" | Images (B5) | Approximated / missing | Cosmetic |
| 15 | Tracking by reference | PELTTNEW01 accepts our reference |
We track by voucher only | Verified working — could track a voucher whose number we don't have |
| 16 | Delivery details | a_rec_name, a_rec_date_time |
Stored from each tracking poll (meta.delivered_to / delivered_at); shown on the order page and Carrier Vouchers view |
Fixed |
| 17 | COD remittance | a_antik1, a_antik_text1 |
Stored (meta.cod_remitted / cod_remittance); shown as "COD paid back" |
Fixed |
| 18 | Scheme | https://clients.elta-courier.gr |
https://clients.elta-courier.gr, 2 retries on connection errors / 5xx |
Fixed |