UniPass · OSPI illesztés · Hibajelentés a pénztárgép szállítójának

Ismételten használt tranzakcióazonosítók az OSPI kérésekben

Helyszín
Maed Bistro (Debreceni Egyetem, éttermek, büfék)
Terminál
UniPass TID 3022714 (PAX A910S, UniPass alkalmazás pUP-1.0.299)
Pénztárgép
HioPOS, IP-cím a helyi hálózaton: 172.19.132.180
Időszak
2026. szeptember 25., 09:35–11:52 (a terminál órája szerint)
Források
A terminál OSPI forgalmának naplója (minden kérés és válasz szó szerint), a terminál alkalmazásnaplója és a UniPass szerver nyilvántartása
Hivatkozott leírások
UniPass OSPI interfész v1.0; OTP Standard POS illesztés, OSPI 3.9
Készült
2026. szeptember 25.

A pénztárgép 11:43-kor két bankkártyás vásárlási kérést olyan Y azonosítóval küldött, amelyet aznap már korábban felhasznált. A 6000014 egy 09:57-kor megszakadt vásárlásé volt, a 6000015 pedig egy 11:06-kor sikeresen lezárt 850 Ft-os vásárlásé. A UniPass rendszer az ismételt azonosítójú kéréseket elutasította, így mindkét vásárlás meghiúsult. A vásárló kártyáját egyik esetben sem terhelték meg.

Ugyanezen a délelőttön a pénztárgép egy visszavét (A004) kérést is küldött, de nem jelölte meg, melyik vásárlást kell visszavenni. Ezt a terminál L20 kóddal utasította el, ezért a 11:06-os 850 Ft-os terhelés érvényben maradt.

Mit vár a UniPass a pénztárgéptől

  1. Minden pénzügyi kérés Y mezője legyen egyedi, és soha ne ismétlődjön. A UniPass az Y értéket tranzakcióazonosítóként tárolja, és egy már egyszer felhasznált értékkel érkező kérést elutasít, akkor is, ha a korábbi tranzakció megszakadt vagy sikertelen volt. Egy megszakadt vásárlás újrapróbálása tehát új azonosítót kapjon.
  2. Visszavételnél (A004) a kis z mezőben meg kell adni a visszavenni kívánt vásárlás azonosítóját (az eredeti kérés Y értékét). A UniPass rendszerben nincs előzmény nélküli visszavét. A legutolsó sikeres tranzakció sztornójára az A100 is használható.

Az első követelményt a UniPass OSPI v1.0 leírás nem mondja ki külön, ezért itt rögzítjük. A második a leírás A004 pontjában szerepel. Az OTP OSPI 3.9 szabvány az Y mezőt csak opcionális hivatkozásként írja le, a UniPass azonban ennél szigorúbban kezeli.

A pénztárgép pénzügyi kérései aznap

A táblázat a pénztárgép és a terminál közti összes vásárlási és visszavételi kérést tartalmazza. A pénztáros be- és kilépéseket (A050, A051) nem soroltuk fel, azok hibátlanul lezajlottak.

IdőpontPortKérésYÖsszegVálaszEredmény
09:35:551248A000 vásárlás60000111 850 FtF000sikeres
09:40:551249A000 vásárlás600001210 FtF000sikeres (UniPass kártya)
09:46:091248A000 vásárlás60000131 100 FtF000sikeres
09:57:211248A000 vásárlás6000014950 FtFL54megszakítva a banki alkalmazásban
11:06:211248A000 vásárlás6000015850 FtF000sikeres, a kártya terhelve
11:10:101248A004 visszavét0000000000850 FtFL20elutasítva: hiányzik a z mező
11:43:161248A000 vásárlás6000014950 FtF811elutasítva: az azonosító 09:57-kor már szerepelt
11:43:321248A000 vásárlás6000015950 FtF811elutasítva: az azonosító a 11:06-os sikeres vásárlásé

A 11:43-as kérések után a pénztárgép 11:52-ig nem küldött újabb vásárlást. A naplóink 11:52-ig terjednek.

A kérdéses üzenetek szó szerint

09:57 – az első 950 Ft-os vásárlás; a vásárlást a banki alkalmazásban megszakították
09:57:21.17 [1248] FROM POS: <STX>A000<FS>B95000<FS>HABYFEbQyLNq<FS>Y6000014<FS>q99<ETX>3F
09:57:39.50 [1248]   TO POS: 0138<STX>A000<FS>B000000095000<FS>Y6000014<FS>FL54<FS>…

11:06 – 850 Ft-os vásárlás, sikeres (F000)
11:06:21.22 [1248] FROM POS: <STX>A000<FS>B85000<FS>HABYFEbQyLNq<FS>Y6000015<FS>q99<ETX>3F
11:06:50.23 [1248]   TO POS: 0861<STX>A000<FS>B000000085000<FS>Y6000015<FS>F000<FS>…

11:10 – visszavét z mező nélkül, Y0000000000 értékkel
11:10:10.11 [1248] FROM POS: <STX>A004<FS>B85000<FS>HABYFEbQyLN<FS>Y0000000000<ETX>15
11:10:10.22 [1248]   TO POS: 0066<STX>A004<FS>B000000085000<FS>Y0000000000<FS>FL20<FS>…

11:43 – két újabb 950 Ft-os vásárlás, korábban már felhasznált azonosítókkal
11:43:16.54 [1248] FROM POS: <STX>A000<FS>B95000<FS>HABYFEbQyLNq<FS>Y6000014<FS>q99<ETX>3F
11:43:25.99 [1248]   TO POS: 0063<STX>A000<FS>B000000095000<FS>Y6000014<FS>F811<FS>…
11:43:32.62 [1248] FROM POS: <STX>A000<FS>B95000<FS>HABYFEbQyLNq<FS>Y6000015<FS>q99<ETX>3E
11:45:11.18 [1248]   TO POS: 0063<STX>A000<FS>B000000095000<FS>Y6000015<FS>F811<FS>…

A válaszok a nyugta- és kártyaadatok nélkül, rövidítve szerepelnek.

Mi történt a vásárlókkal

Egyéb megfigyelés

Az 1249-es (UniPass) porton a pénztárgép többször küldött 0 Ft-os vásárlási kérést Y0 azonosítóval (09:38, 09:51, 10:16, 10:31, 10:37). Ezekre a terminál FL54 (kezelői megszakítás) választ adott. Ha ezek nem szándékosak, kérjük, ezt is nézzék meg.

09:38:08.24 [1249] FROM POS: <STX>A000<FS>B000<FS>HABYFEbQyLN<FS>Y0<ETX>2C
09:38:26.09 [1249]   TO POS: 0057<STX>A000<FS>B000000000000<FS>Y0<FS>FL54<FS>…

A UniPass oldali javítások

Az ismételt azonosító miatti elutasításra a terminál jelenleg F811 kódot ad vissza, amely nem mondja meg a pénztárgépnek a valódi okot, a kezelőnek pedig félrevezető üzenetet mutat. Ezt a terminál alkalmazásában javítjuk, hogy az ok egyértelmű legyen. Ez azonban nem váltja ki a fenti két követelményt: ismételt azonosítóval a vásárlás a javítás után sem fog sikerülni.

Kérdéseink

  1. Miért tért vissza a pénztárgép 11:43-kor a 6000014 és 6000015 azonosítóhoz, miután a 6000015 már felhasználásra került? Összefügghet ez a 11:10-es sikertelen visszavétellel?
  2. Megszakadt vagy elutasított vásárlás újrapróbálásakor a pénztárgép ugyanazt az azonosítót küldi újra?
  3. Hogyan állítható be, hogy a visszavét (A004) a z mezőben megadja az eredeti vásárlás azonosítóját?