Просмотр исходного кода

Add configuration for admin access levels and update database credentials

szisz 11 часов назад
Родитель
Сommit
fc907b2a35

+ 8 - 0
.claude/settings.local.json

@@ -0,0 +1,8 @@
+{
+  "permissions": {
+    "allow": [
+      "Bash(wc -l /Users/szisz/Developments/empersend/openwebshop/backend/citywebshop_cms/application/models/*.php)",
+      "Bash(curl:*)"
+    ]
+  }
+}

+ 79 - 0
CLAUDE.md

@@ -0,0 +1,79 @@
+# CLAUDE.md
+
+This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
+
+## Project Overview
+
+CityWebShop CMS — a Budapest real estate and accommodation booking platform. Handles property listings (sale/rent), hotel/tourism accommodations, partner dashboards, reservations, and content management. Multi-language (Hungarian/English).
+
+## Tech Stack
+
+- **PHP** on a custom lightweight MVC framework (NOT CodeIgniter or Laravel)
+- **MySQL/MariaDB** with raw SQL queries via mysqli
+- **Frontend**: Bootstrap, jQuery, Trumbowyg/CKEditor (WYSIWYG), Google Maps
+- **Libraries**: PHPMailer, TCPDF/DOMPDF (PDF generation), PHPExcel
+- No Composer at root, no package manager, no build step
+
+## Running the Application
+
+This is a traditional PHP app served directly by Apache/Nginx. No build commands or test suite exist.
+
+- Entry point: `index.php`
+- URL rewriting via `.htaccess` (forces HTTPS, rewrites to `index.php`)
+- Database schema: `sql/openws.sql`
+- Config (DB credentials, API keys): `application/config/config.php`
+
+## Architecture
+
+### Custom MVC Framework (`system/`)
+
+- **`system/pip.php`** — The router. Parses URL segments and dispatches to controllers. Contains complex route mappings for properties, offices, blog, map, events, API, etc. Property URLs include Budapest district normalization (Roman numerals to text).
+- **`system/controller.php`** — Base controller with `loadModel()`, `loadView()`, `loadHelper()`, `redirect()`.
+- **`system/model.php`** — Base model extending `mysqli` directly. Methods: `query()`, `execute()`, `escapeString()`, `escapeArray()`, `getLastInsertID()`. No ORM — all queries are raw SQL.
+- **`system/view.php`** — Template engine using PHP `extract()` and output buffering. Supports partner-specific view overrides via `$_SESSION['realladev']`.
+
+### Application Layer (`application/`)
+
+- **Controllers** (`application/controllers/`): ~20 controllers. Key ones: `admin.php` (dashboard/auth), `api.php` (REST endpoints), `property.php` (listings), `map.php` (spatial search), `offices.php`, `auth.php` (user registration).
+- **Models** (`application/models/`): ~47 models with raw SQL. Largest: `map_model.php` (spatial property search), `api_model.php` (external API integration with cURL), `partners.php` (partner/vendor logic).
+- **Views** (`application/views/`): ~121 PHP templates. Admin views prefixed `admin_*`. Email templates in `views/mails/`.
+- **Helpers** (`application/helpers/`): `admin_utils.php` (settings, roles, translations), `common.php` (DB connection, IP validation), `lang.php` (translation lookup), `formatize.php` (currency, favorites cookies).
+
+### Standalone PHP Scripts (project root)
+
+- `qrcode.php` — QR code generation
+- `exportdata.php` — Hotel data CSV export, updates admin dashboard via serialized arrays
+- `pdf.php`, `pdf_property.php` — TCPDF-based PDF export for properties
+
+### API (`/api/` routes → `api.php` controller → `api_model.php`)
+
+External API integration with HopOnTicket (hotels, products, events, reservations). The model uses cURL to proxy calls to `https://hoponticket.com/api/index.php`. Key endpoints: `getGroupsList`, `getProductsList`, `getEventslist`, `initialize` (start transaction), `reservation`, `order`, `paymentstatus`, `validate` (reCAPTCHA v3).
+
+### Authentication & Roles
+
+- Session-based admin auth with 15-minute timeout (set in `index.php`)
+- Access levels in `azonics_roles` table: 11=superadmin, 13=manager, 14=vendor, 1=basic user
+- Password hashing: RIPEMD160
+- Partner-specific dashboards filter data by `$_SESSION['realladev']`
+
+### Database
+
+- Table prefix: `azonics_*` (CMS content), `hiper_ingatlan*` (properties), `hiper_munkatars` (agents)
+- Translation system: `azonics_translations` table with language-keyed lookups
+- No migration system — schema managed via `sql/openws.sql`
+
+### Routing Patterns
+
+URLs are parsed by `system/pip.php` segment-by-segment. Examples:
+- `/admin/login/` → `admin::login`
+- `/elado/lakas/budapest-i-kerulet/filter` → `property::search` (with district normalization)
+- `/api/getgroupslist` → `api::getgroupslist`
+- `/rockhome-irodak/` → `offices::index`
+
+## Key Conventions
+
+- Models return associative arrays from raw SQL; no entity/DTO objects
+- Views receive data via `$this->view->set('key', $value)` then `$this->view->render('view_name')`
+- Admin utilities and settings are loaded globally via `admin_utils.php` helper
+- Static assets live in `static/` (CSS, JS, fonts, plugins, uploads)
+- Partner view overrides: if a partner-specific view exists in `application/partners/{partner}/`, it's used instead of the default

+ 4 - 4
application/config/config.php

@@ -13,13 +13,13 @@ $config['default_controller'] = 'main'; // Default controller to load
 $config['error_controller'] = 'error'; // Controller used for errors (e.g. 404, 500 etc)
 $config['error_controller'] = 'error'; // Controller used for errors (e.g. 404, 500 etc)
 
 
 $config['db_host'] = 'localhost'; // Database host (e.g. localhost)
 $config['db_host'] = 'localhost'; // Database host (e.g. localhost)
-$config['db_name'] = 'openws'; // Database name
-$config['db_username'] = 'openws'; // Database username
+$config['db_name'] = 'admincitywebshop'; // Database name
+$config['db_username'] = 'admincitywebshop'; // Database username
 $config['db_password'] = '5jqPQEPGUihnY5XM6oPR'; // Database password
 $config['db_password'] = '5jqPQEPGUihnY5XM6oPR'; // Database password
 
 
-//$config['api_url'] = 'https://hoponticket.com/api/index.php';
+$config['api_url'] = 'https://hoponticket.com/api/index.php';
 //$config['api_url'] = 'https://szollosil.bbus.smbinfo.hu/api/index.php';
 //$config['api_url'] = 'https://szollosil.bbus.smbinfo.hu/api/index.php';
-$config['api_url'] = 'https://php82.umsbox.hu/api/index.php';
+//$config['api_url'] = 'https://php82.umsbox.hu/api/index.php';
 $config['api_key'] = '92JxvN5Zeti4E1FDwKg0QPEl3md4vY63';
 $config['api_key'] = '92JxvN5Zeti4E1FDwKg0QPEl3md4vY63';
 
 
 ?>
 ?>

+ 16 - 1
application/controllers/admin.php

@@ -1192,7 +1192,22 @@ class admin extends Controller {
         $model = $this->loadModel('crawler_model');
         $model = $this->loadModel('crawler_model');
         $api = $this->loadModel('api_model');
         $api = $this->loadModel('api_model');
         $view = $this->loadView('monitoring_view');
         $view = $this->loadView('monitoring_view');
-        $view->set('hotels', $api->getAllPartner());
+        $hotels = $api->getAllPartner();
+        $filteredPartners = [];
+        if ($_SESSION['admin_user']->admin_access_level != '1' && $_SESSION['admin_user']->admin_access_level != '11') {
+            $userData = unserialize($_SESSION['admin_user']->admin_dashboard);
+            foreach ($userData as $hotelID) {
+                foreach ($hotels as $hotel) {
+                    if ($hotel['key'] == $hotelID) {
+                    $filteredPartners[] = $hotel;
+                    }
+                }
+            }
+        }
+        else {
+            $filteredPartners = $hotels;
+        }
+        $view->set('hotels', $filteredPartners);
         $view->render();
         $view->render();
     }
     }
     
     

+ 1 - 1
application/helpers/admin_utils.php

@@ -1083,7 +1083,7 @@ class admin_utils {
 
 
     
     
     function check_admin_access_to_action() {
     function check_admin_access_to_action() {
-        if ($_SESSION['admin_user']->admin_access_level=='1') {
+        if ($_SESSION['admin_user']->admin_access_level=='1' || $_SESSION['admin_user']->admin_access_level=='11') {
             return true;
             return true;
         }
         }
         else {
         else {

+ 128 - 5
application/models/api_model.php

@@ -173,6 +173,51 @@ class api_model extends Model {
     return $events;
     return $events;
   }
   }
 
 
+  private function getAllEventsListByGroup($groupID) {
+    $curl = curl_init();
+    curl_setopt_array($curl, array(
+      CURLOPT_URL => $this->API.'/affiliateapi/events?group_id='.$groupID.'&groupByDate=1',
+      CURLOPT_RETURNTRANSFER => true,
+      CURLOPT_ENCODING => '',
+      CURLOPT_MAXREDIRS => 10,
+      CURLOPT_TIMEOUT => 0,
+      CURLOPT_FOLLOWLOCATION => true,
+      CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
+      CURLOPT_CUSTOMREQUEST => 'GET',
+      CURLOPT_HTTPHEADER => array(
+        'DOLAPIKEY: '.$this->API_KEY
+      ),
+    ));
+    $response = curl_exec($curl);
+    curl_close($curl);
+    $eventsByKey = [];
+    $response = json_decode($response, true);
+    foreach ($response as $key => $item) {
+      $event = [];
+      $event['key'] = $key;
+      foreach ($item as $subkey => $subitem) {
+        $sub = [];
+        $date = explode(' ', $subkey);
+        $sub['id'] = $subitem['id'];
+        $sub['label'] = $subitem['label'];
+        $sub['description'] = $subitem['description'];
+        $sub['date'] = $date[0];
+        $sub['time'] = substr($date[1],0,-3);
+        $sub['max_num'] = $subitem['max_num'];
+        $sub['participants'] = $subitem['participants'];
+        $sub['available'] = $subitem['max_num'] - $subitem['participants'];
+        $event['dates'][] = $sub;
+      }
+      $event['label'] = $event['dates'][0]['label'];
+      $event['description'] = $event['dates'][0]['description'];
+      $event['date'] = $event['dates'][0]['date'];
+      $event['time'] = $event['dates'][0]['time'];
+      $event['available'] = $event['dates'][0]['available'];
+      $eventsByKey[$key] = $event;
+    }
+    return $eventsByKey;
+  }
+
   public function getMenusList($eventID) {
   public function getMenusList($eventID) {
     $curl = curl_init();
     $curl = curl_init();
 
 
@@ -441,14 +486,90 @@ class api_model extends Model {
     return formatize::currency(round($lowest));
     return formatize::currency(round($lowest));
   }
   }
 
 
+  private function fetchLowestPrices($eventIDs) {
+    $multiHandle = curl_multi_init();
+    $handles = [];
+
+    foreach ($eventIDs as $eventID) {
+      $ch = curl_init();
+      curl_setopt_array($ch, array(
+        CURLOPT_URL => $this->API.'/affiliateapi/menus?eventDetailId='.$eventID,
+        CURLOPT_RETURNTRANSFER => true,
+        CURLOPT_ENCODING => '',
+        CURLOPT_MAXREDIRS => 10,
+        CURLOPT_TIMEOUT => 30,
+        CURLOPT_FOLLOWLOCATION => true,
+        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
+        CURLOPT_CUSTOMREQUEST => 'GET',
+        CURLOPT_HTTPHEADER => array(
+          'DOLAPIKEY: '.$this->API_KEY
+        ),
+      ));
+      $handles[$eventID] = $ch;
+      curl_multi_add_handle($multiHandle, $ch);
+    }
+
+    $running = null;
+    do {
+      curl_multi_exec($multiHandle, $running);
+      curl_multi_select($multiHandle);
+    } while ($running > 0);
+
+    $prices = [];
+    foreach ($handles as $eventID => $ch) {
+      $response = curl_multi_getcontent($ch);
+      $menus = json_decode($response, true);
+      $lowest = null;
+      if (is_array($menus)) {
+        foreach ($menus as $item) {
+          if ($lowest === null || $item['price'] < $lowest) {
+            $lowest = $item['price'];
+          }
+        }
+      }
+      $prices[$eventID] = $lowest !== null ? formatize::currency(round($lowest)) : '';
+      curl_multi_remove_handle($multiHandle, $ch);
+      curl_close($ch);
+    }
+    curl_multi_close($multiHandle);
+
+    return $prices;
+  }
+
   public function getEventsData($groupID, $lang = 'hu') {
   public function getEventsData($groupID, $lang = 'hu') {
     $parentID = $this->getGroupID($groupID);
     $parentID = $this->getGroupID($groupID);
     $rows = $this->query("SELECT * FROM `azonics_events` WHERE box_status=1 AND parent_service=".$parentID.";");
     $rows = $this->query("SELECT * FROM `azonics_events` WHERE box_status=1 AND parent_service=".$parentID.";");
+
+    if (empty($rows)) {
+      return [];
+    }
+
+    // 1) Egyetlen API hívás az összes event date-hez (N cURL → 1 cURL)
+    $allEventsByKey = $this->getAllEventsListByGroup($groupID);
+
+    // 2) Egyetlen DB query az összes image-hez (N query → 1 query)
+    $boxIds = [];
     foreach ($rows as $row) {
     foreach ($rows as $row) {
-      $row->parent_price = $this->getLowestEventprice($row->parent_event);
-      $images = $this->query("SELECT * FROM `azonics_events_blocks` WHERE block_status=1 AND box_id=".$row->box_id.";");
-      $row->images = $images;
-      $row->dates = $this->getEventsListByGroup($groupID, $row->parent_event);
+      $boxIds[] = $row->box_id;
+    }
+    $allImages = $this->query("SELECT * FROM `azonics_events_blocks` WHERE block_status=1 AND box_id IN (".implode(',', $boxIds).");");
+    $imagesByBoxId = [];
+    foreach ($allImages as $img) {
+      $imagesByBoxId[$img->box_id][] = $img;
+    }
+
+    // 3) Párhuzamos menu API hívások az árakhoz (N szekvenciális → N párhuzamos cURL)
+    $eventIDs = [];
+    foreach ($rows as $row) {
+      $eventIDs[] = $row->parent_event;
+    }
+    $lowestPrices = $this->fetchLowestPrices($eventIDs);
+
+    $results = [];
+    foreach ($rows as $row) {
+      $row->parent_price = isset($lowestPrices[$row->parent_event]) ? $lowestPrices[$row->parent_event] : '';
+      $row->images = isset($imagesByBoxId[$row->box_id]) ? $imagesByBoxId[$row->box_id] : [];
+      $row->dates = isset($allEventsByKey[$row->parent_event]) ? [$allEventsByKey[$row->parent_event]] : [];
       if ($lang == 'en') {
       if ($lang == 'en') {
         $row->box_title = $row->box_title_en;
         $row->box_title = $row->box_title_en;
         $row->box_subtitle = $row->box_subtitle_en;
         $row->box_subtitle = $row->box_subtitle_en;
@@ -842,7 +963,9 @@ class api_model extends Model {
   public function updateOrderDetails($data) {
   public function updateOrderDetails($data) {
     $this->execute("UPDATE azonics_orders SET 
     $this->execute("UPDATE azonics_orders SET 
     order_transaction_id = '".$data['order_transaction_id']."', 
     order_transaction_id = '".$data['order_transaction_id']."', 
-    order_auth_code = '".$data['order_auth_code']."' WHERE order_id = '".$data['order_id']."';");
+    order_auth_code = '".$data['order_auth_code']."', 
+    order_error_code = '".$data['order_error_code']."', 
+    order_error_message = '".$data['order_error_message']."' WHERE order_id = '".$data['order_id']."';");
     return $data['order_id'];
     return $data['order_id'];
   }
   }
 
 

+ 1 - 1
application/views/admin_footer.php

@@ -1,6 +1,6 @@
             <footer class="main-footer">
             <footer class="main-footer">
                 <div class="pull-right hidden-xs">
                 <div class="pull-right hidden-xs">
-                    <b>Version</b> 1.7.4
+                    <b>Version</b> <?=admin_utils::getSystemParam('VERSION')?>
                 </div>
                 </div>
                 <strong>Copyright &copy; 2025. <a href="http://buds.hu/" target="_blank">BUDS</a> | powered by empersend studio</strong>
                 <strong>Copyright &copy; 2025. <a href="http://buds.hu/" target="_blank">BUDS</a> | powered by empersend studio</strong>
             </footer>
             </footer>

+ 4 - 0
application/views/admin_orders.php

@@ -37,6 +37,8 @@
                                 <th><?=lang::_('House number')?></th>
                                 <th><?=lang::_('House number')?></th>
                                 <th><?=lang::_('Transaction ID')?></th>
                                 <th><?=lang::_('Transaction ID')?></th>
                                 <th><?=lang::_('Status')?></th>
                                 <th><?=lang::_('Status')?></th>
+                                <th><?=lang::_('Error code')?></th>
+                                <th><?=lang::_('Error message')?></th>
                                 <th><?=lang::_('IP')?></th>
                                 <th><?=lang::_('IP')?></th>
                                 <th><?=lang::_('Browser')?></th>
                                 <th><?=lang::_('Browser')?></th>
                                 <th>&nbsp;</th>
                                 <th>&nbsp;</th>
@@ -60,6 +62,8 @@
                                 <td><?=$order->order_customer_house?></td>
                                 <td><?=$order->order_customer_house?></td>
                                 <td><?=$order->order_transaction_id?></td>
                                 <td><?=$order->order_transaction_id?></td>
                                 <td><?=$order->order_auth_code?></td>
                                 <td><?=$order->order_auth_code?></td>
+                                <td><?=$order->order_error_code?></td>
+                                <td><?=$order->order_error_message?></td>
                                 <td><?=$order->order_customer_ip?></td>
                                 <td><?=$order->order_customer_ip?></td>
                                 <td><?=$order->order_customer_browser?></td>
                                 <td><?=$order->order_customer_browser?></td>
                                 <td>
                                 <td>

+ 2 - 2
exportdata.php

@@ -5,9 +5,9 @@ error_reporting(E_ERROR);
 define('DB_ENGINE','mysql');
 define('DB_ENGINE','mysql');
 define('DB_HOST','localhost');
 define('DB_HOST','localhost');
 define('DB_PORT',3306);
 define('DB_PORT',3306);
-define('DB_USER','openws');
+define('DB_USER','admincitywebshop');
 define('DB_PW','5jqPQEPGUihnY5XM6oPR');
 define('DB_PW','5jqPQEPGUihnY5XM6oPR');
-define('DB_DBNAME','openws');
+define('DB_DBNAME','admincitywebshop');
 
 
 //const API = 'https://szollosil.bbus.smbinfo.hu/api/index.php';
 //const API = 'https://szollosil.bbus.smbinfo.hu/api/index.php';
 const API = 'https://hoponticket.com/api/index.php';
 const API = 'https://hoponticket.com/api/index.php';

+ 356 - 0
sql/simplepay_error_codes.sql

@@ -0,0 +1,356 @@
+-- SimplePay hibakódok / error codes dictionary
+-- Table: azonics_settings (dictionary)
+
+INSERT INTO azonics_settings (setting_name, setting_value_text, setting_value_text_en) VALUES
+('0', 'Sikeres művelet', 'Successful operation'),
+('999', 'Általános hibakód.', 'General error code.'),
+('1529', 'SimplePay belső hiba', 'SimplePay internal error'),
+('2003', 'Megadott jelszó érvénytelen', 'Invalid password provided'),
+('2004', 'Általános hibakód', 'General error code'),
+('2006', 'Megadott kereskedő nem található', 'Specified merchant not found'),
+('2008', 'Megadott e-mail nem megfelelő', 'Invalid email address provided'),
+('2010', 'Megadott tranzakcióazonosító nem megfelelő', 'Invalid transaction ID provided'),
+('2013', 'Nincs elég fedezet a kártyán', 'Insufficient funds on card'),
+('2014', 'Fizetéshez jelszó szükséges', 'Password required for payment'),
+('2016', 'A felhasználó megszakította a fizetés', 'The user cancelled the payment'),
+('2019', 'Időtúllépés az elfogadói kommunikációban', 'Timeout in acquirer communication'),
+('2020', 'Elfogadó bank oldali hiba', 'Acquirer bank side error'),
+('2021', 'Kártyakibocsátó interaktív 3DS ellenőrzést igényel', 'Card issuer requires interactive 3DS verification'),
+('2023', 'A megismételt 3DS ellenőrzés is sikertelen. A tranzakció ellenőrzése sikertelen eredménnyel lezárva.', 'The repeated 3DS verification also failed. The transaction verification was closed with an unsuccessful result.'),
+('2030', 'Kártya nem törölhető, mert egyenlege pozitív / Megadott összeg helytelen', 'Card cannot be deleted because its balance is positive / Invalid amount specified'),
+('2040', 'Érvénytelen devizanem', 'Invalid currency'),
+('2063', 'Kártya inaktív', 'Card inactive'),
+('2064', 'Hibás bankkártya adatok', 'Invalid bank card data'),
+('2066', 'Kártya nem terhelhető / limittúllépés miatt', 'Card cannot be charged / limit exceeded'),
+('2068', 'Kártya adat hiba / nem létező kártya', 'Card data error / non-existent card'),
+('2071', 'Hibás bankkártya adatok / nem létező kártya', 'Invalid bank card data / non-existent card'),
+('2072', 'Hibásan adta meg a bankkártya adatait. Kérjük ellenőrizze az adatokat, szükség esetén vegye fel a kapcsolatot a bankkártyát kibocsátó bankkal.', 'Bank card data entered incorrectly. Please check the data, and if necessary, contact the card issuing bank.'),
+('2073', 'Hibásan adta meg a bankkártya adatait. Kérjük ellenőrizze az adatokat, szükség esetén vegye fel a kapcsolatot a bankkártyát kibocsátó bankkal.', 'Bank card data entered incorrectly. Please check the data, and if necessary, contact the card issuing bank.'),
+('2074', 'Kártyabirtokos neve több, mint 32 karakter', 'Cardholder name exceeds 32 characters'),
+('2077', 'Érvénytelen CVC', 'Invalid CVC'),
+('2078', 'Általános hiba, a kártyakibocsátó bank nem adja meg a hiba okát', 'General error, the card issuing bank does not provide the reason for the error'),
+('2079', 'A routingnak megfelelő elfogadó bank nem érhető el', 'The acquirer bank matching the routing is not available'),
+('2130', 'Helytelen bemeneti kód.', 'Incorrect input code.'),
+('2131', 'Helytelen cím megadás.', 'Incorrect address entry.'),
+('2132', 'Helytelen születési dátum.', 'Incorrect date of birth.'),
+('2999', 'SimplePay belső hiba', 'SimplePay internal error'),
+('3000', 'Általános 3DS hiba', 'General 3DS error'),
+('3001', 'Érvénytelen 3DS válaszüzenet', 'Invalid 3DS response message'),
+('3002', '3DS folyamat hiba - Technikai hiba a SimplePay rendszerében, vagy a kártyakibocsátó rejected/no választ adott.', '3DS process error - Technical error in SimplePay system, or the card issuer gave a rejected/no response.'),
+('3003', '3DS folyamat hiba', '3DS process error'),
+('3004', 'Redirect 3DS challenge folyamán (vásárló átirányítása szükséges a kártyakibocsátó ACS szerverére a kapott URL felhasználásával)', 'Redirect during 3DS challenge (customer redirection required to the card issuer ACS server using the received URL)'),
+('3005', '3DS interaktív azonosítás szükséges', '3DS interactive authentication required'),
+('3006', '3DS folyamat hiba - Kártyatársasági válasz nem, vagy késve érkezik meg.', '3DS process error - Card scheme response not received or received late.'),
+('3012', '3DS folyamat hiba, nem 3DS képes kártya, 3DS valamelyik szereplőnél levő probléma', '3DS process error, non-3DS capable card, problem at one of the 3DS participants'),
+('3013', '3DS folyamat hiba', '3DS process error'),
+('3102', 'Érvénytelen 3DS verzió', 'Invalid 3DS version'),
+('3203', '3DS adat formátum hiba, vagy szükséges adat hiánya', '3DS data format error, or missing required data'),
+('3303', '3DS belső hiba, érvénytelen 3DS végpont', '3DS internal error, invalid 3DS endpoint'),
+('3402', '3DS ellenőrzési folyamat időtúllépés', '3DS verification process timeout'),
+('3403', '3DS átmeneti rendszerhiba', '3DS temporary system error'),
+('3404', '3DS tartósan fennálló rendszerhiba', '3DS persistent system error'),
+('3501', '3DS ACS kártyakibocsátó bank oldal, a felhasználó megszakította az interaktív ellenőrzés (challenge) folyamatát', '3DS ACS card issuer bank side, the user cancelled the interactive verification (challenge) process'),
+('3504', '3DS ACS timeout, kártyakibocsátó bank oldal', '3DS ACS timeout, card issuer bank side'),
+('3505', '3DS ACS timeout, kártyakibocsátó bank oldalról nem-, vagy nem időben érkezik válasz', '3DS ACS timeout, no response or delayed response from card issuer bank side'),
+('3506', '3DS ACS tranzakció hiba, kártyakibocsátó bank oldali', '3DS ACS transaction error, card issuer bank side'),
+('3507', '3DS ACS ismeretlen hiba, kártyakibocsátó bank oldal', '3DS ACS unknown error, card issuer bank side'),
+('3508', '3DS ACS tranzakció hiba, kártyakibocsátó bank oldali komponensben', '3DS ACS transaction error, in card issuer bank side component'),
+('5000', 'Általános hibakód', 'General error code'),
+('5010', 'A kereskedői fiók nem található', 'Merchant account not found'),
+('5011', 'A tranzakció nem található', 'Transaction not found'),
+('5012', 'A kereskedői fiók nem egyezik meg', 'Merchant account does not match'),
+('5013', 'A tranzakció már létezik (és nincs újraindíthatóként jelölve).', 'Transaction already exists (and is not marked as restartable).'),
+('5014', 'A tranzakció nem megfelelő típusú', 'Transaction is of incorrect type'),
+('5015', 'A tranzakció éppen fizetés alatt', 'Transaction is currently being paid'),
+('5016', 'Tranzakció időtúllépés (elfogadói/acquirer oldal felől érkező kérés során).', 'Transaction timeout (during request from acquirer side).'),
+('5017', 'A tranzakció meg lett szakítva (elfogadói/acquirer oldal felől érkező kérés során).', 'Transaction was interrupted (during request from acquirer side).'),
+('5018', 'A tranzakció már kifizetésre került (így újabb művelet nem kezdeményezhető).', 'Transaction has already been paid (no further operation can be initiated).'),
+('5019', 'Érvénytelen tranzakcióazonosító.', 'Invalid transaction ID.'),
+('5020', 'A kérésben megadott érték vagy az eredeti tranzakcióösszeg ("originalTotal") ellenőrzése sikertelen', 'Validation of the value specified in the request or the original transaction amount ("originalTotal") failed'),
+('5021', 'A tranzakció már lezárásra került (így újabb Finish művelet nem kezdeményezhető).', 'Transaction has already been closed (no further Finish operation can be initiated).'),
+('5022', 'A tranzakció nem a kéréshez elvárt állapotban van.', 'Transaction is not in the expected state for the request.'),
+('5023', 'Ismeretlen / nem megfelelő fiók devizanem.', 'Unknown / invalid account currency.'),
+('5024', 'Érvénytelen e-mail cím.', 'Invalid email address.'),
+('5025', 'Érvénytelen név.', 'Invalid name.'),
+('5026', 'Tranzakció letiltva (sikertelen fraud-vizsgálat következtében).', 'Transaction blocked (due to failed fraud check).'),
+('5027', 'Tranzakció zárolási probléma.', 'Transaction locking problem.'),
+('5028', 'A tranzakció nem egyeztetett.', 'Transaction not reconciled.'),
+('5029', 'A tranzakció még nem került visszatérítésre.', 'Transaction has not yet been refunded.'),
+('5030', 'A művelet nem engedélyezett', 'Operation not permitted'),
+('5033', 'Visszatérítési tranzakció törlése nem engedélyezett.', 'Deletion of refund transaction is not permitted.'),
+('5040', 'Tárolt kártya nem található', 'Stored card not found'),
+('5041', 'Tárolt kártya lejárt', 'Stored card expired'),
+('5042', 'Tárolt kártya inaktíválva', 'Stored card deactivated'),
+('5043', 'Fantom tárolt kártya.', 'Phantom stored card.'),
+('5044', 'Recurring nincs engedélyezve', 'Recurring not enabled'),
+('5045', 'Ismétlődő regisztrációhoz távoli azonosító szükséges.', 'Remote identifier required for recurring registration.'),
+('5046', 'Ismétlődő regisztrációhoz IDTS szükséges.', 'IDTS required for recurring registration.'),
+('5047', 'Ismétlődő IDTS.', 'Duplicate IDTS.'),
+('5048', 'Recurring until szükséges', 'Recurring until required'),
+('5049', 'Recurring until eltér', 'Recurring until mismatch'),
+('5050', 'Érvénytelen fizetési módszer.', 'Invalid payment method.'),
+('5051', 'Érvénytelen referencia szám.', 'Invalid reference number.'),
+('5052', 'Érvénytelen külső referencia.', 'Invalid external reference.'),
+('5053', 'Érvénytelen időbélyeg.', 'Invalid timestamp.'),
+('5054', 'Érvénytelen számlázási keresztnév.', 'Invalid billing first name.'),
+('5055', 'Érvénytelen számlázási vezetéknév.', 'Invalid billing last name.'),
+('5056', 'Érvénytelen számlázási e-mail cím.', 'Invalid billing email address.'),
+('5057', 'Érvénytelen számlázási telefonszám.', 'Invalid billing phone number.'),
+('5058', 'Érvénytelen számlázási cím.', 'Invalid billing address.'),
+('5059', 'Érvénytelen számlázási város.', 'Invalid billing city.'),
+('5060', 'Érvénytelen szállítási keresztnév.', 'Invalid shipping first name.'),
+('5061', 'Érvénytelen szállítási vezetéknév.', 'Invalid shipping last name.'),
+('5062', 'Érvénytelen szállítási telefonszám.', 'Invalid shipping phone number.'),
+('5063', 'Érvénytelen szállítási cím.', 'Invalid shipping address.'),
+('5064', 'Érvénytelen szállítási város.', 'Invalid shipping city.'),
+('5065', 'Érvénytelen összeg.', 'Invalid amount.'),
+('5066', 'Érvénytelen pénznem.', 'Invalid currency.'),
+('5067', 'Kötelező számlázási e-mail cím hiányzik.', 'Required billing email address is missing.'),
+('5068', 'Érvénytelen szállítási e-mail cím.', 'Invalid shipping email address.'),
+('5069', 'Elérte a maximálisan megengedett összeget.', 'Maximum allowed amount reached.'),
+('5070', 'Hiba az új közvetlen fizetés létrehozásakor.', 'Error creating new direct payment.'),
+('5071', 'Tárolt kártya érvénytelen hossz', 'Stored card invalid length'),
+('5072', 'Tárolt kártya érvénytelen művelet', 'Stored card invalid operation'),
+('5080', 'Eredeti azonosító eltérés az ismétlődő regisztrációnál.', 'Original identifier mismatch in recurring registration.'),
+('5081', 'Recurring token nem található', 'Recurring token not found'),
+('5082', 'Recurring token használatban', 'Recurring token in use'),
+('5083', 'Token times szükséges', 'Token times required'),
+('5084', 'Token times túl nagy', 'Token times too large'),
+('5085', 'Token until szükséges', 'Token until required'),
+('5086', 'Token until túl nagy', 'Token until too large'),
+('5087', 'Token maxAmount szükséges', 'Token maxAmount required'),
+('5088', 'Token maxAmount túl nagy', 'Token maxAmount too large'),
+('5089', 'Recurring és oneclick regisztráció egyszerre nem indítható egy tranzakcióban', 'Recurring and oneclick registration cannot be started simultaneously in one transaction'),
+('5090', 'Recurring token szükséges', 'Recurring token required'),
+('5091', 'Recurring token inaktív', 'Recurring token inactive'),
+('5092', 'Recurring token lejárt', 'Recurring token expired'),
+('5093', 'Recurring account eltérés', 'Recurring account mismatch'),
+('5094', 'Érvénytelen időtúllépés meghatározás.', 'Invalid timeout definition.'),
+('5095', 'Előre kiválasztott fizetési mód szükséges.', 'Pre-selected payment method required.'),
+('5096', 'Az EAM használata nem engedélyezett.', 'EAM usage is not permitted.'),
+('5097', 'Érvénytelen EAM típus.', 'Invalid EAM type.'),
+('5100', 'Érvénytelen aláírás.', 'Invalid signature.'),
+('5101', 'Hiányzó rendelési hivatkozás.', 'Missing order reference.'),
+('5102', 'Hiányzó rendelési összeg.', 'Missing order amount.'),
+('5103', 'Hiányzó rendelési pénznem.', 'Missing order currency.'),
+('5104', 'Hiányzó dátum.', 'Missing date.'),
+('5105', 'Hiba a megerősítés során.', 'Error during confirmation.'),
+('5106', 'Érvénytelen visszatérítési összeg.', 'Invalid refund amount.'),
+('5110', 'Nem megfelelő visszatérítendő összeg.', 'Incorrect amount to be refunded.'),
+('5111', 'Az orderRef és a transactionId közül az egyik küldése kötelező', 'Either orderRef or transactionId must be sent'),
+('5113', 'A hívó kliensprogram megnevezése, verziószáma ("sdkVersion") kötelező.', 'The calling client program name and version ("sdkVersion") is required.'),
+('5150', 'Hiányzó iOS kereskedő azonosító.', 'Missing iOS merchant identifier.'),
+('5151', 'Hiányzó külső referencia.', 'Missing external reference.'),
+('5199', 'Érvénytelen kártyaadatok.', 'Invalid card data.'),
+('5200', 'Érvénytelen számla.', 'Invalid invoice.'),
+('5201', 'A kereskedői fiók azonosítója ("merchant") hiányzik.', 'The merchant account identifier ("merchant") is missing.'),
+('5202', 'Hozzáférés megtagadva.', 'Access denied.'),
+('5203', 'Érvénytelen adat.', 'Invalid data.'),
+('5204', 'Érvénytelen termékkód.', 'Invalid product code.'),
+('5205', 'Érvénytelen terméknév.', 'Invalid product name.'),
+('5206', 'Érvénytelen termékinformáció.', 'Invalid product information.'),
+('5207', 'Érvénytelen termékár.', 'Invalid product price.'),
+('5208', 'Érvénytelen ÁFA érték.', 'Invalid VAT value.'),
+('5209', 'Érvénytelen mennyiség.', 'Invalid quantity.'),
+('5210', 'Érvénytelen termékváltozat.', 'Invalid product variant.'),
+('5211', 'Érvénytelen termékcsoport.', 'Invalid product group.'),
+('5212', 'Érvénytelen ár.', 'Invalid price.'),
+('5213', 'A kereskedői tranzakcióazonosító ("orderRef") hiányzik.', 'The merchant transaction identifier ("orderRef") is missing.'),
+('5214', 'Érvénytelen dátum.', 'Invalid date.'),
+('5215', 'Érvénytelen kedvezmény.', 'Invalid discount.'),
+('5216', 'Érvénytelen szállítási összeg', 'Invalid shipping amount'),
+('5217', 'Érvénytelen módszer.', 'Invalid method.'),
+('5218', 'Érvénytelen visszairányítási URL.', 'Invalid redirect URL.'),
+('5219', 'Email cím ("customerEmail") hiányzik, vagy nem email formátumú.', 'Email address ("customerEmail") is missing or not in email format.'),
+('5220', 'A tranzakció nyelve ("language") nem megfelelő', 'The transaction language ("language") is not valid'),
+('5221', 'Érvénytelen kedvezmény formátum.', 'Invalid discount format.'),
+('5222', 'Érvénytelen szállítási formátum.', 'Invalid shipping format.'),
+('5223', 'A tranzakció pénzneme ("currency") nem megfelelő, vagy hiányzik.', 'The transaction currency ("currency") is not valid or is missing.'),
+('5224', 'Érvénytelen időkorlát.', 'Invalid time limit.'),
+('5225', 'Érvénytelen banki átutalási időkorlát.', 'Invalid bank transfer time limit.'),
+('5226', 'Érvénytelen kommunikációs állapot.', 'Invalid communication status.'),
+('5227', 'Érvénytelen időtúllépés meghatározás.', 'Invalid timeout definition.'),
+('5228', 'Visszatérítési limit túllépve.', 'Refund limit exceeded.'),
+('5229', 'Visszatérítési határidő lejárt.', 'Refund deadline expired.'),
+('5230', 'Visszatérítés nem engedélyezett.', 'Refund not permitted.'),
+('5301', 'Felhasználó átirányítása szükséges.', 'User redirection required.'),
+('5302', 'Nem megfelelő aláírás (signature) a beérkező kérésben. (A kereskedői API-ra érkező hívás aláírás-ellenőrzése sikertelen.)', 'Invalid signature in the incoming request. (Signature verification of the call to the merchant API failed.)'),
+('5303', 'Nem megfelelő aláírás (signature) a beérkező kérésben. (A kereskedői API-ra érkező hívás aláírás-ellenőrzése sikertelen.)', 'Invalid signature in the incoming request. (Signature verification of the call to the merchant API failed.)'),
+('5304', 'Időtúllépés miatt sikertelen hívás.', 'Call failed due to timeout.'),
+('5305', 'Sikertelen tranzakcióküldés a fizetési rendszer (elfogadói/acquirer oldal) felé.', 'Failed transaction submission to the payment system (acquirer side).'),
+('5306', 'Sikertelen tranzakciólétrehozás', 'Failed transaction creation'),
+('5307', 'A kérésben megadott devizanem ("currency") nem egyezik a fiókhoz beállítottal.', 'The currency specified in the request does not match the one set for the account.'),
+('5308', 'A kérésben érkező kétlépcsős tranzakcióindítás nem engedélyezett a kereskedői fiókon', 'Two-step transaction initiation in the request is not permitted on the merchant account'),
+('5309', 'Számlázási adatokban a címzett hiányzik ("name" természetes személy esetén, "company" jogi személy esetén).', 'Billing data recipient is missing ("name" for natural persons, "company" for legal entities).'),
+('5310', 'Számlázási adatokban a város kötelező.', 'City is required in billing data.'),
+('5311', 'Számlázási adatokban az irányítószám kötelező.', 'Zip code is required in billing data.'),
+('5312', 'Számlázási adatokban a cím első sora kötelező.', 'First address line is required in billing data.'),
+('5313', 'A megvásárlandó termékek listájában ("items") a termék neve ("title") kötelező.', 'Product name ("title") is required in the items list.'),
+('5314', 'A megvásárlandó termékek listájában ("items") a termék egységára ("price") kötelező.', 'Product unit price ("price") is required in the items list.'),
+('5315', 'A megvásárlandó termékek listájában ("items") a rendelt mennyiség ("amount") kötelező pozitív egész szám.', 'Ordered quantity ("amount") in the items list must be a positive integer.'),
+('5316', 'Szállítási adatokban a címzett kötelező ("name" természetes személy esetén, "company" jogi személy esetén).', 'Shipping data recipient is required ("name" for natural persons, "company" for legal entities).'),
+('5317', 'Szállítási adatokban a város kötelező.', 'City is required in shipping data.'),
+('5318', 'Szállítási adatokban az irányítószám kötelező.', 'Zip code is required in shipping data.'),
+('5319', 'Szállítási adatokban a cím első sora kötelező.', 'First address line is required in shipping data.'),
+('5320', 'A hívó kliensprogram megnevezése, verziószáma ("sdkVersion") kötelező.', 'The calling client program name and version ("sdkVersion") is required.'),
+('5321', 'Formátumhiba / érvénytelen JSON string', 'Format error / invalid JSON string'),
+('5322', 'Érvénytelen ország', 'Invalid country'),
+('5323', 'Lezárás összege érvénytelen', 'Invalid closing amount'),
+('5324', 'Termékek listája ("items"), vagy tranzakciófőösszeg ("total") szükséges', 'Product list ("items") or transaction total ("total") is required'),
+('5325', 'Érvénytelen URL', 'Invalid URL'),
+('5326', 'Hiányzó cardId', 'Missing cardId'),
+('5327', 'Lekérdezendő kereskedői tranzakcióazonosítók ("orderRefs") maximális számának (50) túllépése.', 'Maximum number (50) of merchant transaction identifiers ("orderRefs") to query exceeded.'),
+('5328', 'Lekérdezendő SimplePay tranzakcióazonosítók ("transactionIds") maximális számának (50) túllépése.', 'Maximum number (50) of SimplePay transaction identifiers ("transactionIds") to query exceeded.'),
+('5329', 'Lekérdezendő tranzakcióindítás időszakában "from" az "until" időpontot meg kell előzze.', 'In the transaction initiation period to query, "from" must precede the "until" date.'),
+('5330', 'Lekérdezendő tranzakcióindítás időszakában "from" és "until" együttesen adandó meg.', 'In the transaction initiation period to query, "from" and "until" must be specified together.'),
+('5331', 'Érvénytelen tranzakció forrás.', 'Invalid transaction source.'),
+('5332', 'Tranzakcióazonosítója és célpontja szükséges.', 'Transaction identifier and target required.'),
+('5333', 'Hiányzó tranzakcióazonosító', 'Missing transaction identifier'),
+('5334', 'Bankkártya adatok szükségesek.', 'Bank card data required.'),
+('5335', 'Bankkártya BIN szükséges.', 'Bank card BIN required.'),
+('5336', 'Csalásellenes hash szükséges.', 'Anti-fraud hash required.'),
+('5337', 'Hiba összetett adat szöveges formába írásakor.', 'Error writing complex data to text format.'),
+('5338', 'Acquirer tranzakcióazonosítója szükséges.', 'Acquirer transaction identifier required.'),
+('5339', 'Lekérdezendő tranzakciókhoz tartozóan vagy az indítás időszaka ("from" és "until") vagy az azonosítólista ("orderRefs" vagy "transactionIds") megadandó.', 'For transactions to query, either the initiation period ("from" and "until") or the identifier list ("orderRefs" or "transactionIds") must be specified.'),
+('5340', 'A tranzakció nem tárcához kötött.', 'Transaction is not wallet-bound.'),
+('5341', 'Partner opció szükséges.', 'Partner option required.'),
+('5342', 'Partner számlák szükségesek.', 'Partner accounts required.'),
+('5343', 'Nem megfelelő tranzakcióstátusz', 'Incorrect transaction status'),
+('5344', 'Nem megfelelő tranzakcióstátusz', 'Incorrect transaction status'),
+('5345', 'Áfa összege kisebb, mint 0', 'VAT amount is less than 0'),
+('5346', 'Érvénytelen tranzakciós mód.', 'Invalid transaction mode.'),
+('5347', 'Érvénytelen Auchan részletfizetés.', 'Invalid Auchan installment payment.'),
+('5348', 'JWT szükséges.', 'JWT required.'),
+('5349', 'A tranzakció nem engedélyezett az elszámoló fiókon (AMEX, TSP)', 'Transaction not permitted on the settlement account (AMEX, TSP)'),
+('5350', 'Érvénytelen email', 'Invalid email'),
+('5351', 'Érvénytelen nap', 'Invalid day'),
+('5352', 'Simple business fiók hiba / nem létező fiók', 'Simple business account error / non-existent account'),
+('5353', 'Érvénytelen kezdő és záró paraméterek.', 'Invalid start and end parameters.'),
+('5354', 'Érvénytelen eszközazonosító.', 'Invalid device identifier.'),
+('5355', 'Nem SoftPOS számla.', 'Not a SoftPOS account.'),
+('5356', 'Érvénytelen sablon.', 'Invalid template.'),
+('5357', 'Érvénytelen rendelési hivatkozás.', 'Invalid order reference.'),
+('5358', 'Érvénytelen időszak.', 'Invalid period.'),
+('5359', 'SoftPOS nem elérhető.', 'SoftPOS not available.'),
+('5360', 'A tranzakció távoli hozzárendelése sikertelen.', 'Remote transaction assignment failed.'),
+('5361', 'A tranzakció távoli törlése sikertelen.', 'Remote transaction deletion failed.'),
+('5362', 'A tranzakció távoli lejáratának beállítása sikertelen.', 'Remote transaction expiration setting failed.'),
+('5363', 'Eredeti tranzakció szükséges.', 'Original transaction required.'),
+('5364', 'Érvénytelen további információ.', 'Invalid additional information.'),
+('5365', 'Partner azonosító megadása kötelező.', 'Partner identifier is required.'),
+('5366', 'Érvénytelen EAM állapot.', 'Invalid EAM status.'),
+('5367', 'Fizetési hivatkozás megadása kötelező.', 'Payment reference is required.'),
+('5368', 'Adós bankjának BIC kódja szükséges.', 'Debtor bank BIC code required.'),
+('5369', 'End-to-end azonosító megadása kötelező.', 'End-to-end identifier is required.'),
+('5370', 'Érvénytelen termékár.', 'Invalid product price.'),
+('5371', 'Érvénytelen termékmennyiség.', 'Invalid product quantity.'),
+('5372', 'Összeg kifizetve a kereskedőnek.', 'Amount paid to merchant.'),
+('5373', 'Apple Pay nem engedélyezett', 'Apple Pay not permitted'),
+('5380', 'E-mail paraméterek szükségesek.', 'Email parameters required.'),
+('5381', 'E-mail típus szükséges.', 'Email type required.'),
+('5382', 'Ügyfél e-mail címe szükséges.', 'Customer email address required.'),
+('5401', 'Érvénytelen salt, nem 32-64 hosszú', 'Invalid salt, not 32-64 characters long'),
+('5402', 'Tranzakció alapja szükséges.', 'Transaction base required.'),
+('5403', 'Simple tranzakció a fizetés alatt.', 'Simple transaction is being paid.'),
+('5404', 'Érvénytelen tranzakció állapot.', 'Invalid transaction status.'),
+('5405', 'A tranzakció nem CDE munkamenetben van.', 'Transaction is not in CDE session.'),
+('5413', 'Létrejött utalási tranzakció', 'Wire transfer transaction created'),
+('5501', 'Böngésző accept kötelező', 'Browser accept required'),
+('5502', 'Böngésző agent kötelező', 'Browser agent required'),
+('5503', 'Böngésző ip kötelező', 'Browser IP required'),
+('5504', 'Böngésző java kötelező', 'Browser Java required'),
+('5505', 'Böngésző nyelv kötelező', 'Browser language required'),
+('5506', 'Böngésző szín kötelező', 'Browser color required'),
+('5507', 'Böngésző magasság kötelező', 'Browser height required'),
+('5508', 'Böngésző szélesség kötelező', 'Browser width required'),
+('5509', 'Böngésző tz kötelező', 'Browser timezone required'),
+('5530', 'Érvénytelen type', 'Invalid type'),
+('5555', 'Hiba a Raven hívás során.', 'Error during Raven call.'),
+('5601', 'Érvénytelen azonosító kód.', 'Invalid identification code.'),
+('5602', 'Érvénytelen üzenet.', 'Invalid message.'),
+('5603', 'Érvénytelen tranzakciós helyzet.', 'Invalid transaction situation.'),
+('5604', 'Érvénytelen kiskereskedelmi adatok.', 'Invalid retail data.'),
+('5605', 'Érvénytelen eszköz.', 'Invalid device.'),
+('5606', 'Érvénytelen számlaazonosító.', 'Invalid account identifier.'),
+('5607', 'Érvénytelen ügyfél adatok.', 'Invalid customer data.'),
+('5608', 'Érvénytelen ellenőrző kód.', 'Invalid verification code.'),
+('5700', 'Hiányzó sikeres hitelesítési kommunikáció.', 'Missing successful authentication communication.'),
+('5701', 'Ajánlás már elküldve.', 'Recommendation already sent.'),
+('5702', 'Hiányzó részletfizetési adat.', 'Missing installment payment data.'),
+('5703', 'Érvénytelen opció index.', 'Invalid option index.'),
+('5704', 'Tartomány választás nem elérhető.', 'Domain selection not available.'),
+('5705', 'Teljes összegű fizetés nem elérhető.', 'Full amount payment not available.'),
+('5706', 'Hiba az acquiring hívás során.', 'Error during acquiring call.'),
+('5707', 'Részletfizetési adat értelmezési hiba.', 'Installment payment data interpretation error.'),
+('5708', 'Érvénytelen részletfizetési szám.', 'Invalid installment number.'),
+('5709', 'Hiányzó részletfizetési opció.', 'Missing installment payment option.'),
+('5710', 'Hiányzó sikeres ajánlási kommunikáció.', 'Missing successful recommendation communication.'),
+('5711', 'Elszámolószámla-azonosító szükséges.', 'Settlement account identifier required.'),
+('5712', 'Sorozat méret szükséges.', 'Series size required.'),
+('5812', 'Érvénytelen kártyatípus.', 'Invalid card type.'),
+('5813', 'Kártya / tranzakció elutasítva', 'Card / transaction declined'),
+('5814', 'API v1 verziója le van tiltva.', 'API v1 version is disabled.'),
+('5900', 'Érvénytelen alkalmazás platform.', 'Invalid application platform.'),
+('5901', 'Érvénytelen időbélyeg.', 'Invalid timestamp.'),
+('5902', 'Mobil alkalmazás nem található.', 'Mobile application not found.'),
+('5903', 'Deeplink adatcsomag nem található.', 'Deeplink data package not found.'),
+('5904', 'Platform vagy belső azonosítók szükségesek.', 'Platform or internal identifiers required.'),
+('5905', 'Visszatérő URL-ek szükségesek.', 'Return URLs required.'),
+('5906', 'Több visszatérő URL megadva.', 'Multiple return URLs specified.'),
+('6100', 'RTP (Real-Time Payment) nem engedélyezett.', 'RTP (Real-Time Payment) not permitted.'),
+('6101', 'Érvénytelen csomag hivatkozás.', 'Invalid package reference.'),
+('6102', 'Érvénytelen rendelési hivatkozás.', 'Invalid order reference.'),
+('6103', 'Érvénytelen teljes összeg.', 'Invalid total amount.'),
+('6104', 'Érvénytelen pénznem.', 'Invalid currency.'),
+('6105', 'Ügyfél szükséges.', 'Customer required.'),
+('6106', 'Szükséges az ügyfél e-mail címe vagy bankszámlaszáma.', 'Customer email address or bank account number required.'),
+('6107', 'Érvénytelen ügyfél e-mail cím.', 'Invalid customer email address.'),
+('6108', 'Érvénytelen ügyfél bankszámlaszám.', 'Invalid customer bank account number.'),
+('6109', 'Érvénytelen ismétlődő idők.', 'Invalid recurring times.'),
+('6110', 'Szükséges az ismétlődés időtartama.', 'Recurring duration required.'),
+('6111', 'Az ismétlődés időtartama túllépve.', 'Recurring duration exceeded.'),
+('6112', 'Érvénytelen ismétlődő nap.', 'Invalid recurring day.'),
+('6113', 'Érvénytelen ismétlődő intervallum.', 'Invalid recurring interval.'),
+('6114', 'Üres fizetések.', 'Empty payments.'),
+('6115', 'Érvénytelen fizetési eredmény.', 'Invalid payment result.'),
+('6116', 'Érvénytelen kereskedő.', 'Invalid merchant.'),
+('6117', 'Szükséges az SDK verziója.', 'SDK version required.'),
+('6118', 'A tranzakció már létezik.', 'Transaction already exists.'),
+('6119', 'Érvénytelen nyelv.', 'Invalid language.'),
+('6120', 'Érvénytelen tranzakciós állapot.', 'Invalid transaction status.'),
+('6121', 'Érvénytelen csomag vagy rendelési hivatkozás.', 'Invalid package or order reference.'),
+('6122', 'Érvénytelen lekérdezési paraméterek.', 'Invalid query parameters.'),
+('6123', 'Rendelési azonosító méret túllépés.', 'Order identifier size exceeded.'),
+('6124', 'A kezdő dátum a záró dátum után van.', 'Start date is after end date.'),
+('6125', 'Kezdő és záró dátum együtt szükséges.', 'Start and end date required together.'),
+('6126', 'Hiányzó RTP azonosító.', 'Missing RTP identifier.'),
+('6127', 'Érvénytelen állapot.', 'Invalid status.'),
+('6128', 'Érvénytelen határidő.', 'Invalid deadline.'),
+('6129', 'Lekérdezéshez rendelési hivatkozás vagy tranzakcióazonosító szükséges.', 'Order reference or transaction identifier required for query.'),
+('6130', 'Giro hiba.', 'Giro error.'),
+('6131', 'A tranzakció nem létezik.', 'Transaction does not exist.'),
+('6132', 'Ügyfél vagy bankszámla szükséges.', 'Customer or bank account required.'),
+('6133', 'Túl hosszú közlemény.', 'Message too long.'),
+('6134', 'A bankszámla már be van állítva.', 'Bank account is already set up.'),
+('6135', 'Tranzakciók számának túllépése.', 'Transaction count exceeded.'),
+('6136', 'Üres fizetendő összeg RTP-nél.', 'Empty payable amount for RTP.'),
+('6140', 'Tranzakció inicializálása.', 'Transaction initialization.'),
+('6141', 'Várakozás a bankszámla adatokra.', 'Waiting for bank account data.'),
+('6142', 'A tranzakció elküldésre kész.', 'Transaction ready to send.'),
+('6143', 'A tranzakció elküldve.', 'Transaction sent.'),
+('6144', 'A tranzakció fogadva.', 'Transaction received.'),
+('6145', 'A tranzakció elfogadva.', 'Transaction accepted.'),
+('6146', 'A tranzakció elutasítva.', 'Transaction declined.'),
+('6147', 'A tranzakció lejárt.', 'Transaction expired.'),
+('6148', 'A tranzakció visszafordítva.', 'Transaction reversed.'),
+('6149', 'Sikertelen tranzakció.', 'Failed transaction.'),
+('6150', 'Változtathatatlan tranzakció.', 'Immutable transaction.'),
+('6151', 'Fizetett tranzakció.', 'Paid transaction.'),
+('6153', 'Tranzakció nem található.', 'Transaction not found.'),
+('6154', 'Tranzakció végállapotban.', 'Transaction in final state.'),
+('6155', 'Érvénytelen partner bankszámla.', 'Invalid partner bank account.'),
+('6156', 'Visszafordítás folyamatban.', 'Reversal in progress.'),
+('6157', 'Tranzakciók szükségesek.', 'Transactions required.'),
+('6999', 'Általános hiba.', 'General error.'),
+('7100', 'A kereskedő nem található.', 'Merchant not found.'),
+('7999', 'Általános hiba.', 'General error.');