[
  {
    "path": ".github/workflows/ci.yml",
    "content": "name: Run Tests\non:\n    push:\n        branches:\n            - master\n            - develop\n    workflow_dispatch:\n\njobs:\n    package-tests:\n        runs-on: ubuntu-latest\n\n        strategy:\n            matrix:\n                php-versions: [\"8.5\", \"8.4\", \"8.3\", \"8.2\"]\n                dependency-stability: [\"prefer-stable\"]\n\n        name: PHP ${{ matrix.php-versions }} - ${{ matrix.dependency-stability }}\n\n        steps:\n            - uses: actions/checkout@v4\n\n            - name: Get Composer Cache Directory\n              id: composer-cache\n              run: |\n                echo \"dir=$(composer config cache-files-dir)\" >> $GITHUB_OUTPUT\n\n            - name: Cache Composer Dependencies\n              uses: actions/cache@v4\n              with:\n                path: ${{ steps.composer-cache.outputs.dir }}\n                key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}\n                restore-keys: ${{ runner.os }}-composer-\n\n            - name: Install PHP\n              uses: shivammathur/setup-php@v2\n              with:\n                  php-version: ${{ matrix.php-versions }}\n\n            - name: Install Dependencies\n              run: composer update --no-interaction --prefer-dist\n\n            - name: PHP Version\n              run: php --version\n\n            - name: Execute tests via PHPUnit\n              run: vendor/bin/phpunit --testdox\n"
  },
  {
    "path": ".gitignore",
    "content": "# OS generated files #\n######################\n.DS_Store\n.DS_Store?\n._*\n.Spotlight-V100\n.Trashes\nehthumbs.db\nThumbs.db\n\n.idea\n\n# PHPUnit\n/.phpunit.cache\n.phpunit.result.cache\n\nphpunit.xml\nvendor\ndocker\ndocker-compose.yml\n.env\n\n# Development scripts\nAGENTS.md\ntest-docker.sh"
  },
  {
    "path": "CHANGELOG.md",
    "content": "# Changelog\n\nAll Notable changes to `Redsys` will be documented in this file\n\n## Version 1.6.0 (2026-03-08)\n\n### Added\n\n- Added InSite integration - embedded payment form via iframe (complete implementation)\n- Added new environments: `insiteSandbox`, `insiteLive`, `insiteRestSandbox`, `insiteRestLive`\n- Added `createInSiteForm()` method with full parameter support:\n  - Container ID customization\n  - CSS styles for button, body, box, and inputs\n  - Button text (HTML encoded)\n  - Language selection (SIS codes and ISO 639-1)\n  - Logo visibility toggle\n  - Reduced style option\n  - InSite style modes: 'inline' or 'twoRows'\n- Added `createInSiteFormJSON()` method - JSON-based configuration (recommended)\n- Added `sendInSite()` method - executes payment with operation ID\n- Added `setInSite()` method - enables/disables InSite mode\n- Added `getInSiteMode()` method - gets InSite mode status\n- Added `getInSiteJsUrl()` method - gets InSite JavaScript URL\n- Added InSite constants in `MerchantEnvironment`:\n  - `INSITE_SANDBOX`, `INSITE_LIVE`, `INSITE_REST_SANDBOX`, `INSITE_REST_LIVE`\n  - `INSITE_JS_SANDBOX`, `INSITE_JS_LIVE`\n- Added `MerchantInsiteLanguage` class - language codes for InSite forms\n- Added `MerchantInsiteError` class - error codes and descriptions for InSite validation\n- Added `MerchantInsiteStyle` class - style constants (inline, twoRows)\n- Added comprehensive InSite documentation with examples\n\n### Changed\n\n- Updated `setEnvironment()` to support InSite environments\n- Updated `createInSiteForm()` to require terminal parameter (as per Redsys docs)\n- Updated README with complete InSite documentation per official Redsys documentation\n\n### Fixed\n\n- None\n\n## Version 1.5.3 (2026-02-22)\n\n### Added\n\n- Added support for PHP 8.3, 8.4 and 8.5\n- Added support for PHPUnit 10\n\n### Changed\n\n- Updated CI workflow to use GitHub Actions with PHP 8.2-8.5\n- Improved README with better documentation, tables and examples\n- Migrated phpunit.xml.dist to PHPUnit 10 schema\n- Updated composer.json with PHP 8.3-8.5 and PHPUnit 10 support\n\n### Fixed\n\n- Fixed test assertions for PHPUnit 10 compatibility\n- Removed deprecated ReflectionMethod::setAccessible() call (PHP 8.5 compatibility)\n\n### Added\n\n- Added a new method to create an order number (createOrderNumber) to generates a Redsys order number following the recommended format.\n\n### Changed\n\n- None\n\n### Fixed\n\n- None\n\n## Version 1.5.1 (2025-01-23)\n\n### Added\n\n- Added a new test to handle successful or error responses from the Redsys payment gateway.\n- Updated README with additional information about errorCode verification and the usage of the MIT parameter.\n\n### Changed\n\n- None\n\n### Fixed\n\n- None\n\n## Version 1.5.0 (2025-01-16)\n\n### Added\n\n- None\n\n### Changed\n\n- Updated isEmpty method to properly handle non-string values\n\n### Fixed\n\n- Fixed deprecated warning in isEmpty method when passing null values to trim().\n- Fixed incorrect validation of boolean values in isEmpty method\n\n## Version 1.4.9 (2025-01-11)\n\n### Added\n\n- None\n\n### Changed\n\n- None\n\n### Fixed\n\n- I have just fixed an error in the setMerchantCofIni method. It always returns the value 'S'.\n\n## Version 1.4.8 (2024-03-05)\n\n### Added\n\n- Implementation of the `xpay` method within the `setMethod` functionality to support GooglePay and ApplePay.\n\n- TDD (Test Driven Development) implementation for enhanced code reliability and maintainability.\n\n### Changed\n\n- Possible internal changes were made to integrate the `xpay` method and accommodate the TDD implementation, ensuring code consistency.\n\n### Fixed\n\n- None\n\n## Version 1.4.7 (2024-02-24)\n\n### Added\n\n- Static validation methods for convenience and reusability.\n\n- Tests for the new methods and functionalities, ensuring code quality and stability.\n\n### Changed\n\n- Possible internal changes were made to implement the new features.\n\n### Fixed\n\n- None\n\n## Version 1.4.6 (2023-10-28)\n\n### Added\n\n- Test for method getPathJs\n\n- I just added a second optional parameter, $version, was added to the getJsPath() method to allow users to specify the version of the Redsys JavaScript file they want to use. The default version is 2 for compatibility reasons, but users can specify 3 to get the latest Redsys JavaScript file.\n\n### Changed\n\n- None\n\n### Fixed\n\n- None\n\n## Version 1.4.5 (2023-09-26)\n\n### Added\n\n- Tag 1.4.5\n\n### Changed\n\n- Method `check` updated in `Tpv.php` to enhance security and improve validation of signatures. The change involved replacing strict comparison (`===`) with `hash_equals()` for signature validation.\n\n### Fixed\n\n- None\n\n## Version 1.4.4 (2023-08-07)\n\n### Added\n\n- Merge pull request from diegomarty.\n- Changed value by default in setMethod: T to C.\n- Added validation for this parameters: 'T', 'C', 'R', 'D', 'z', 'p', 'N'\n- Added new test for setMethod\n\n### Fixed\n\n- Nothing\n\n## Version 1.4.3 (2023-02-16)\n\n### Added\n\n- Testing with PHP 8.2.\n- Added new method getJsPath for inSite.\n\n### Fixed\n\n- Nothing\n\n## Version 1.4.2 (2022-11-10)\n\n### Added\n\n- New environment iniciaPeticionREST to Rest Api.\n\n### Fixed\n\n- Nothing\n\n## Version 1.4.1 (2022-03-07)\n\n### Added\n\n- Nothing\n\n### Fixed\n\n- Updated README, example rest.\n\n## Version 1.4.0 (2022-02-22)\n\n### Added\n\n- Added new method: send using rest.\n\n### Fixed\n\n- setOrder, Allows you to add numbers and letters in the first 4.\n\n## Version 1.3.0 (2020-12-05)\n\n### Added\n\n- Added new method: setParameters\n\n### Deprecated\n\n- Nothing\n\n### Fixed\n\n- Nothing\n\n## Version 1.2.9 (2019-05-18)\n\n### Added\n\n- Added new methods for recurring payment:\n  - setSumtotal\n  - setChargeExpiryDate\n  - setDateFrecuency\n\n### Deprecated\n\n- Nothing\n\n### Fixed\n\n- Nothing\n\n## Version 1.2.8 (2018-10-11)\n\n### Added\n\n- Added travis_ci\n\n### Deprecated\n\n- Nothing\n\n### Fixed\n\n- Fixed errors when uses php5.6 (travis_ci)\n\n## Version 1.2.7 (2018-09-03)\n\n### Added\n\n- Added test.\n- Added method getNameForm.\n\n### Deprecated\n\n- Nothing\n\n### Fixed\n\n- Changed property and methods private to protected\n\n## Version 1.2.6 (2018-08-02)\n\n### Added\n\n- Add support to chain methods\n\n### Deprecated\n\n- Nothing\n\n### Fixed\n\n- Nothing\n\n## Version 1.2.5 (2018-04-04)\n\n### Added\n\n- Nothing\n\n### Deprecated\n\n- Nothing\n\n### Fixed\n\n- Changed validation for setCurrency, not limit to 978, 840, 826, 392\n\n## Version 1.2.4.1 (2018-03-22)\n\n### Added\n\n- Nothing\n\n### Deprecated\n\n- Nothing\n\n### Fixed\n\n- Changed information text about of parameter by default for setMethod.\n\n## Version 1.2.4 (2017-12-11)\n\n### Added\n\n- Merge pull request (Minor cosmetic fixes).\n- Added setEnvironment.\n\n### Deprecated\n\n- Method setEnviroment.\n\n### Fixed\n\n- Nothing\n\n## Version 1.2.3 (2017-11-23)\n\n### Added\n\n- Throwing custom exceptions TpvException\n\n### Deprecated\n\n- Nothing\n\n### Fixed\n\n- Nothing\n\n## Version 1.2.2 (2017-06-14)\n\n### Added\n\n- Method setPan, Set card number.\n- Method setExpiryDate, Set expiry date of card number.\n- Method setCVV2, Set CVV2 of card number.\n\n### Deprecated\n\n- Nothing\n\n### Fixed\n\n- Nothing\n\n## Version 1.2.1 (2017-05-20)\n\n### Added\n\n- Nothing\n\n### Deprecated\n\n- Nothing\n\n### Fixed\n\n- The method setOrder, now verified that the first 4 digits must be numeric and maximum 12 characters.\n\n## Version 1.2 (2017-01-27)\n\n### Added\n\n- Nothing\n\n### Deprecated\n\n- Nothing\n\n### Fixed\n\n- Changed the function mcrypt_encrypt to openssl_encrypt, with the new updated of PHP 7.1 the function mcrypt_encrypt is deprecated.\n\n## Version 1.1.6 (2016-10-19)\n\n### Added\n\n- Method setIdentifier, This parameter is used to handle the associated reference data card. It is an alphanumeric field of up to 40 positions whose value is generated by the Virtual TPV.\n- Method setMerchantDirectPayment, This parameter is optional, functions as a flag indicating whether to display additional screens (DCC, Fractionation and Authentication) default values are \"true\" or \"false\". If you used with the value \"true\", not additional screens (DCC, Fractionation and Authentication) are displayed during payment and should be used in conjunction with the parameter Ds_Merchant_Identifier containing a valid reference.\n\n### Deprecated\n\n- Nothing\n\n### Fixed\n\n- setAmount, Now amount maybe 0, it is for uses setIdentifier.\n\n## Version 1.1.5 (2016-06-17)\n\n### Added\n\n- Method getVersion, return version example: HMAC_SHA256_V1\n- Method getMerchantSignature, return merchant signature example: Cia90trhTPGxtJDmK6WDhqXzU+98LbuKZKAKYHMjtMs=\n\n### Deprecated\n\n- Nothing\n\n### Fixed\n\n- Nothing\n"
  },
  {
    "path": "LICENSE.md",
    "content": "# The MIT License (MIT)\n\nCopyright (c) 2015 Eduardo\n\n> Permission is hereby granted, free of charge, to any person obtaining a copy\n> of this software and associated documentation files (the \"Software\"), to deal\n> in the Software without restriction, including without limitation the rights\n> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n> copies of the Software, and to permit persons to whom the Software is\n> furnished to do so, subject to the following conditions:\n>\n> The above copyright notice and this permission notice shall be included in\n> all copies or substantial portions of the Software.\n>\n> THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n> THE SOFTWARE.\n"
  },
  {
    "path": "README.md",
    "content": "# Redsys - Biblioteca PHP para Pasarela de Pagos\n\n[![Latest Version on Packagist][ico-version]][link-packagist]\n[![Software License][ico-license]](LICENSE.md)\n[![Total Downloads][ico-downloads]][link-downloads]\n[![Run Tests](https://github.com/ssheduardo/sermepa/actions/workflows/ci.yml/badge.svg)][link-workflows]\n\nBiblioteca PHP para integrar la pasarela de pagos Redsys/Sermepa (Santander, Sabadell, LaCaixa, BBVA, etc.)\n\n## Requisitos\n\n- PHP 7.1.3+ a 8.2\n- ext-curl\n- ext-openssl\n- ext-json\n\n## Instalación\n\n```bash\ncomposer require sermepa/sermepa\n```\n\n## Inicio Rápido\n\n```php\nuse Sermepa\\Tpv\\Tpv;\n\n$redsys = new Tpv();\n$redsys->setAmount(2500)           // 25.00€\n    ->setOrder('1234AB')\n    ->setMerchantcode('999008881')\n    ->setCurrency('978')           // Euros\n    ->setTransactiontype('0')       // Autorización\n    ->setTerminal('1')\n    ->setMethod('C')                // Solo tarjeta\n    ->setNotification('https://tusitio.com/notificacion')\n    ->setUrlOk('https://tusitio.com/ok')\n    ->setUrlKo('https://tusitio.com/ko')\n    ->setEnvironment('test');       // Entorno de pruebas\n\n$signature = $redsys->generateMerchantSignature('TU_CLAVE_SECRETA');\n$redsys->setMerchantSignature($signature);\n\necho $redsys->createForm();\n```\n\n## Entornos Disponibles\n\n| Entorno | Descripción |\n|---------|-------------|\n| `test` | Pruebas (SIS Sandbox) |\n| `live` | Producción |\n| `restTest` | API REST Pruebas |\n| `restLive` | API REST Producción |\n| `insiteSandbox` | InSite Pruebas (JS + REST) |\n| `insiteLive` | InSite Producción (JS + REST) |\n| `insiteRestSandbox` | InSite REST Pruebas (solo pago) |\n| `insiteRestLive` | InSite REST Producción (solo pago) |\n\n## Métodos de Pago\n\n| Código | Descripción |\n|--------|-------------|\n| `C` o `T` | Tarjeta |\n| `R` | Transferencia |\n| `D` | Domiciliación |\n| `z` | Bizum |\n| `p` | PayPal |\n| `N` | Masterpass |\n| `xpay` | GooglePay / ApplePay |\n\n## Tipos de Transacción\n\n| Código | Descripción |\n|--------|-------------|\n| `0` | Autorización |\n| `1` | Preautorización |\n| `2` | Confirmación de preautorización |\n| `3` | Anulación de preautorización |\n| `4` | Devolución |\n| `5` | Cancelación |\n| `7` | Preautorización extendida |\n| `8` | Confirmación preautorización extendida |\n| `9` | Baja de preautorización extendida |\n\n## Códigos de Respuesta\n\nEl banco devuelve un código en `Ds_Response`. Los principales:\n\n| Código | Significado |\n|--------|-------------|\n| `0000` a `0099` | Pago aprobado |\n| `0100` a `0199` | Operatoria OK, verificación CVV obligatoria |\n| `0200` | Error de formato |\n| `0201` | Error de firma |\n| `0204` | Error de datos |\n| `0209` | Error de tajeta |\n| `0214` | Fecha de caducidad errónea |\n| `0215` | Error en importe mínimo (no usado) |\n| `0290` | Tarjeta no autorizada |\n| `0401` | Error en posición de tarjeta |\n| `0404` | Error de configuración de comercio |\n| `0501` | Operaciones pendientes |\n| `0904` | Comercio no operativo |\n| `0912` | Emisor no disponible |\n| `9912` | Emisor no disponible |\n| `9913` | Error en comunicación |\n| `9914` | Fallo al conectar con CA |\n| `9919` | Error de cryptograma |\n| `9929` | Error de deslinde |\n| `9932` | Error de bin |\n| `9933` | Error de BS. Cambio de dinámico a estático |\n| `9934` | Error de BS. Cambio de estático a dinámico |\n| `9951` | Operación de ingreso OK |\n| `9952` | Operación de ingreso NO OK |\n| `9953` | Devolución OK |\n| `9954` | Devolución NO OK |\n| `9955` | Anulación OK |\n| `9956` | Anulación NO OK |\n| `9957` | Ajuste OK |\n| `9958` | Ajuste NO OK |\n| `9961` | Error en cierre batch |\n| `9962` | Error en apertura batch |\n| `9963` | Error de operativa |\n| `9992` | Petición cancelada |\n| `9993` | Operatoria abandonada por el usuario |\n| `9995` | Operatoria abandonada - tiempo excedido |\n| `9996` | Error de conexión |\n| `9997` | Error de timeout |\n| `9998` | Error de validación |\n| `9999` | Error general |\n\n> **Nota:** Para pagos exitosos, el código debe estar entre `0000` y `0099`. Convertir a entero para comparar: `$DsResponse = (int) $parameters['Ds_Response'];`\n\n## Validar Respuesta del Banco\n\nEn tu URL de notificación (`setNotification`), debes validar la respuesta del banco:\n\n```php\nuse Sermepa\\Tpv\\Tpv;\nuse Sermepa\\Tpv\\TpvException;\n\ntry {\n    $redsys = new Tpv();\n    $key = 'TU_CLAVE_SECRETA';\n\n    // Decodificar parámetros recibidos\n    $parameters = $redsys->getMerchantParameters($_POST['Ds_MerchantParameters']);\n    $DsResponse = (int) $parameters['Ds_Response'];\n\n    // Validar firma y respuesta\n    if ($redsys->check($key, $_POST) && $DsResponse <= 99) {\n        // Pago correcto -Ds_Response = 0000 a 0099\n        // Aquí: actualizar pedido, enviar email, etc.\n    } else {\n        // Pago fallido\n    }\n} catch (TpvException $e) {\n    error_log('Error TPV: ' . $e->getMessage());\n}\n```\n\n## Pago con Tarjeta Guardada (Token)\n\nGuardar la tarjeta del cliente para pagos futuros:\n\n```php\n// 1. Crear referencia (primer pago)\n$redsys->setIdentifier();  // Sin parámetros - indica \"REQUIRED\"\n\n// Respuesta del banco contendrá:\n// $parameters['Ds_Merchant_Identifier']\n// $parameters['Ds_ExpiryDate']\n```\n\n```php\n// 2. Usar referencia (pagos recurrentes)\n$redsys->setIdentifier('IDENTIFICADOR_GUARDADO');\n$redsys->setMerchantDirectPayment(true);  // Pago directo sin autenticación 3D Secure\n```\n\n## Enviar Datos de Tarjeta Directamente\n\nPuedes enviar los datos de la tarjeta para que el usuario no tenga que introducirlos en la pasarela:\n\n```php\n$redsys->setPan('4548812049400004');     // Número de tarjeta\n$redsys->setExpiryDate('1228');          // Caducidad (AAMM)\n$redsys->setCVV2('123');                 // CVV2\n```\n\n> **Nota:** Esta opción requiere que tu comercio tenga autorización del banco para enviar datos de tarjeta directamente.\n\n## API REST (Cobros sin formulario)\n\nPara cobros directos sin redirección del usuario:\n\n```php\nuse Sermepa\\Tpv\\Tpv;\nuse Sermepa\\Tpv\\TpvException;\n\ntry {\n    $key = 'TU_CLAVE_SECRETA';\n\n    $redsys = new Tpv();\n    $redsys->setAmount(2500)\n        ->setOrder('1234AB')\n        ->setMerchantcode('999008881')\n        ->setCurrency('978')\n        ->setTransactiontype('0')\n        ->setTerminal('1')\n        ->setIdentifier('IDENTIFICADOR_GUARDADO')\n        ->setMerchantDirectPayment(true)\n        ->setVersion('HMAC_SHA256_V1')\n        ->setEnvironment('restTest')\n        ->setMerchantCofIni('N');\n\n    $signature = $redsys->generateMerchantSignature($key);\n    $redsys->setMerchantSignature($signature);\n\n    $response = json_decode($redsys->send(), true);\n\n    // Verificar error en respuesta\n    if (isset($response['errorCode'])) {\n        throw new Exception(\"Error: \" . $response['errorCode']);\n    }\n\n    // Decodificar respuesta\n    $parameters = $redsys->getMerchantParameters($response['Ds_MerchantParameters']);\n    $DsResponse = (int) $parameters['Ds_Response'];\n\n    if ($redsys->check($key, $response) && $DsResponse <= 99) {\n        // Cobro correcto\n    }\n} catch (TpvException $e) {\n    echo 'Error TPV: ' . $e->getMessage();\n}\n```\n\n## InSite (Pago Embebido)\n\nInSite permite incrustar el formulario de pago directamente en tu página web mediante un **iframe**, sin redirigir al usuario a la pasarela de Redsys. Los datos de tarjeta nunca pasan por tu servidor (cumplimiento PCI DSS).\n\n> **Nota:** Tu dominio debe estar registrado en Redsys para usar InSite. Configura los dominios permitidos en el Portal de Administración del TPV Virtual. Contacta con tu banco o soporte de Redsys.\n\n### Flujo de Integración\n\n1. **Generar formulario InSite** - Renderiza el iframe en tu página\n2. **Usuario completa pago** - Introduce datos en el iframe de Redsys\n3. **Obtener ID de operación** - Redsys retorna un `idOper` (válido por 30 minutos)\n4. **Ejecutar pago** - Envía el `idOper` mediante REST API\n\n### Paso 1: Generar Formulario InSite (Modo Unificado)\n\nEl modo unificado genera un iframe completo con todos los campos de pago:\n\n```php\nuse Sermepa\\Tpv\\Tpv;\nuse Redsys\\Merchant\\MerchantInsiteLanguage;\n\n$redsys = new Tpv();\n$redsys->setEnvironment('insiteSandbox')  // o 'insiteLive' para producción\n    ->setOrder('1234AB')\n    ->setMerchantcode('999008881')        // Tu código de comercio (FUC)\n    ->setTerminal('1');\n\n// Generar HTML del formulario InSite\n$htmlForm = $redsys->createInSiteForm(\n    'card-form',              // ID del contenedor\n    'background: #007bff;',   // Estilo del botón\n    'color: white;',          // Estilo del cuerpo\n    'padding: 10px;',         // Estilo de la caja de datos\n    'font-size: 14px;',       // Estilo de los inputs\n    'Pagar',                  // Texto del botón (HTML encoded: 'Bot&#243;n' para Botón)\n    MerchantInsiteLanguage::ISO_ES, // Idioma: 'ES', '1', etc.\n    true,                     // Mostrar logo de entidad\n    false,                    // Estilo reducido\n    'inline'                  // Estilo InSite: 'inline' o 'twoRows'\n);\n\necho $htmlForm;\n```\n\n### Modo JSON (Recomendado)\n\nPara mayor flexibilidad, usa el método JSON:\n\n```php\n$htmlForm = $redsys->createInSiteFormJSON([\n    'id' => 'card-form',\n    'fuc' => '999008881',\n    'terminal' => '1',\n    'order' => '1234AB',\n    'styleButton' => 'background: #007bff; color: white;',\n    'styleBody' => 'font-family: Arial;',\n    'styleBox' => 'padding: 10px;',\n    'buttonValue' => 'Pagar ahora',\n    'idiomaInsite' => 'ES',\n    'mostrarLogoInsite' => true,\n    'estiloReducidoInsite' => false,\n    'estiloInsite' => 'inline'  // o 'twoRows'\n]);\n```\n\n### Parámetros del Formulario\n\n| Parámetro | Obligatorio | Descripción |\n|-----------|-------------|-------------|\n| `id` / `$containerId` | Sí | ID del contenedor div |\n| `fuc` / merchantCode | Sí | Código de comercio (FUC) |\n| `terminal` | Sí | Número de terminal |\n| `order` | Sí | Número de pedido (4-12 caracteres) |\n| `styleButton` | No | CSS para el botón de pago |\n| `styleBody` | No | CSS para el cuerpo del formulario |\n| `styleBox` | No | CSS para la caja de datos |\n| `styleBoxText` | No | CSS para el texto de los inputs |\n| `buttonValue` | No | Texto del botón (HTML encoded) |\n| `idiomaInsite` | No | Código de idioma (ver tabla) |\n| `mostrarLogoInsite` | No | Mostrar logo de entidad (default: true) |\n| `estiloReducidoInsite` | No | Usar estilo reducido (default: false) |\n| `estiloInsite` | No | 'inline' o 'twoRows' (default: 'inline') |\n\n### Catálogo de Idiomas InSite\n\n| Idioma | Código SIS | ISO 639-1 |\n|--------|------------|-----------|\n| Español | 1 | ES |\n| Inglés | 2 | EN |\n| Catalán | 3 | CA |\n| Francés | 4 | FR |\n| Alemán | 5 | DE |\n| Italiano | 7 | IT |\n| Portugués | 9 | PT |\n| ... | ... | ... |\n\nUsa las constantes de `MerchantInsiteLanguage`:\n\n```php\nuse Redsys\\Merchant\\MerchantInsiteLanguage;\n\n$redsys->createInSiteForm(..., MerchantInsiteLanguage::SPANISH, ...);\n// o\n$redsys->createInSiteForm(..., MerchantInsiteLanguage::ISO_ES, ...);\n```\n\n### Paso 2: Recibir ID de Operación\n\nEl formulario incluye automáticamente un listener que almacena el `idOper` en un campo hidden:\n\n```html\n<input type=\"hidden\" id=\"token\" name=\"token\" value=\"\">\n<input type=\"hidden\" id=\"errorCode\" name=\"errorCode\" value=\"\">\n```\n\nPuedes personalizar la validación:\n\n```javascript\nfunction merchantValidation() {\n    // Tu validación personalizada\n    return true;  // true para continuar, false para cancelar\n}\n\nwindow.addEventListener(\"message\", function receiveMessage(event) {\n    storeIdOper(event, \"token\", \"errorCode\", merchantValidation);\n});\n```\n\n### Códigos de Error InSite\n\n| Código | Descripción |\n|--------|-------------|\n| msg1 | Ha de rellenar los datos de la tarjeta |\n| msg2 | La tarjeta es obligatoria |\n| msg3 | La tarjeta ha de ser numérica |\n| msg15 | La longitud de la tarjeta no es correcta |\n| msg16 | Debe introducir un número de tarjeta válido |\n| msg17 | Validación incorrecta por parte del comercio |\n| msg18 | Error de inicialización de dominio |\n\nUsa `MerchantInsiteError` para obtener descripciones:\n\n```php\nuse Redsys\\Merchant\\MerchantInsiteError;\n\n$errorDescription = MerchantInsiteError::getDescription('msg1');\n```\n\n### Paso 3: Ejecutar Pago con ID de Operación\n\n```php\nuse Sermepa\\Tpv\\Tpv;\nuse Sermepa\\Tpv\\TpvException;\n\ntry {\n    $key = 'TU_CLAVE_SECRETA';\n    $idOper = $_POST['token'];    // ID recibido del iframe\n    $order = '1234AB';             // Mismo pedido usado en el formulario\n\n    $redsys = new Tpv();\n    $redsys->setEnvironment('insiteRestLive')  // o 'insiteRestSandbox'\n        ->setAmount(2500)\n        ->setOrder($order)          // DEBE ser el mismo que en createInSiteForm\n        ->setMerchantcode('999008881')\n        ->setCurrency('978')\n        ->setTransactiontype('0')\n        ->setTerminal('1');\n\n    // Ejecutar pago con el ID de operación\n    $response = json_decode($redsys->sendInSite($idOper, $key), true);\n\n    // Decodificar respuesta\n    $parameters = $redsys->getMerchantParameters($response['Ds_MerchantParameters']);\n    $DsResponse = (int) $parameters['Ds_Response'];\n\n    if ($DsResponse >= 0 && $DsResponse <= 99) {\n        // Pago aprobado\n    } else {\n        // Pago denegado\n    }\n    }\n\n} catch (TpvException $e) {\n    echo 'Error TPV: ' . $e->getMessage();\n}\n```\n\n### Métodos InSite\n\n| Método | Descripción |\n|--------|-------------|\n| `setInSite(bool)` | Habilitar/deshabilitar modo InSite |\n| `getInSiteMode()` | Obtener estado del modo InSite |\n| `getInSiteJsUrl()` | Obtener URL del JavaScript de InSite |\n| `createInSiteForm(string $containerId, string $buttonStyle, string $bodyStyle)` | Generar HTML del formulario embebido |\n| `sendInSite(string $idOper, string $key)` | Ejecutar pago con ID de operación |\n\n### Personalización del Formulario\n\n```php\n// Generar formulario con estilos personalizados\n$html = $redsys->createInSiteForm(\n    'card-form',                                    // ID del contenedor\n    'background-color: #28a745; color: white; padding: 15px; border: none; border-radius: 5px;',  // Estilo botón\n    'font-family: Arial, sans-serif;'               // Estilo cuerpo\n);\n```\n\n## Redirección Automática\n\nPara redirección automática sin mostrar el botón:\n\n```php\n$redsys->executeRedirection();\n// Opcional: obtener HTML\n$html = $redsys->executeRedirection(true);\n```\n\n## Integración con JavaScript de Redsys\n\nLa biblioteca incluye un método estático para obtener la ruta del JavaScript de Redsys:\n\n```php\nuse Sermepa\\Tpv\\Tpv;\n\n// Obtener URL del script\n$jsUrl = Tpv::getJsPath('test', '3');  // Entorno test, versión 3\n// https://sis-t.redsys.es:25443/sis/NC/sandbox/redsysV3.js\n```\n\n| Versión | Descripción |\n|---------|-------------|\n| `2` | Redsys Classic |\n| `3` | Redsys API (soporte NFC, Apple Pay, Google Pay) |\n\n## Constantes Disponibles\n\nUsa las constantes predefinidas para evitar errores de transcripción:\n\n```php\nuse Redsys\\Merchant\\MerchantCurrencies;\nuse Redsys\\Merchant\\MerchantTransactionTypes;\nuse Redsys\\Merchant\\MerchantConsumerLanguages;\nuse Redsys\\Merchant\\MerchantPaymethods;\n\n// Monedas\n$redsys->setCurrency(MerchantCurrencies::EUR);      // 978\n$redsys->setCurrency(MerchantCurrencies::USD);      // 840\n$redsys->setCurrency(MerchantCurrencies::GBP);     // 826\n\n// Tipos de transacción\n$redsys->setTransactiontype(MerchantTransactionTypes::AUTHORIZATION);  // 0\n$redsys->setTransactiontype(MerchantTransactionTypes::PREAUTHORIZATION);  // 1\n\n// Idiomas\n$redsys->setLanguage(MerchantConsumerLanguages::SPANISH);   // 001\n$redsys->setLanguage(MerchantConsumerLanguages::ENGLISH);   // 002\n$redsys->setLanguage(MerchantConsumerLanguages::CATALAN);    // 003\n\n// Métodos de pago\n$redsys->setMethod(MerchantPaymethods::CARD);    // C\n$redsys->setMethod(MerchantPaymethods::BIZUM);   // z\n```\n\n### Códigos de Moneda\n\nLos códigos ISO 4217. Los más comunes:\n\n- `978` - Euro (EUR)\n- `840` - Dólar estadounidense (USD)\n- `826` - Libra esterlina (GBP)\n- `392` - Yen japonés (JPY)\n\n### Códigos de Idioma\n\n| Código | Idioma |\n|--------|--------|\n| 001 | Castellano |\n| 002 | Inglés |\n| 003 | Catalán |\n| 004 | Francés |\n| 005 | Alemán |\n| 006 | Holandés |\n| 007 | Italiano |\n| 008 | Sueco |\n| 009 | Portugués |\n| 010 | Valenciano |\n| 011 | Polaco |\n| 012 | Gallego |\n| 013 | Euskera |\n\n## API Reference\n\n### Métodos de Configuración\n\n| Método | Descripción | Requerido |\n|--------|-------------|-----------|\n| `setAmount(float)` | Importe (se convierte a céntimos) | Sí |\n| `setOrder(string)` | Número de pedido (4-12 caracteres, primeros 4 numéricos) | Sí |\n| `setMerchantcode(string)` | Código de comercio (FUC) | Sí |\n| `setCurrency(string)` | Código de moneda ISO | Sí |\n| `setTransactiontype(string)` | Tipo de transacción | Sí |\n| `setTerminal(string)` | Número de terminal | Sí |\n| `setMethod(string)` | Método de pago | No |\n| `setNotification(string)` | URL de notificación (callback) | Recomendado |\n| `setUrlOk(string)` | URL si pago exitoso | Recomendado |\n| `setUrlKo(string)` | URL si pago fallido | Recomendado |\n| `setEnvironment(string)` | Entorno de conexión | No |\n| `setVersion(string)` | Versión de firma | No |\n| `setTradeName(string)` | Nombre del comercio | No |\n| `setTitular(string)` | Titular del pago | No |\n| `setProductDescription(string)` | Descripción del producto | No |\n\n### Métodos de Firma y Envío\n\n| Método | Descripción |\n|--------|-------------|\n| `generateMerchantSignature(string $key)` | Genera firma HMAC-SHA256 |\n| `setMerchantSignature(string)` | Asigna la firma calculada |\n| `createForm()` | Genera formulario HTML |\n| `send()` | Envía petición REST (devuelve JSON) |\n| `executeRedirection()` | Redirección automática con JavaScript |\n\n### Métodos de Validación\n\n| Método | Descripción |\n|--------|-------------|\n| `check(string $key, array $postData)` | Valida firma de respuesta del banco |\n| `getMerchantParameters(string)` | Decodifica `Ds_MerchantParameters` |\n\n### Métodos InSite\n\n| Método | Descripción |\n|--------|-------------|\n| `setInSite(bool)` | Habilitar modo InSite |\n| `getInSiteMode()` | Obtener estado del modo InSite |\n| `getInSiteJsUrl()` | Obtener URL del JavaScript de InSite |\n| `createInSiteForm(...)` | Genera formulario embebido (modo unificado) |\n| `createInSiteFormJSON(array)` | Genera formulario embebido (modo JSON) |\n| `sendInSite(string $idOper, string $key)` | Ejecuta pago con ID de operación |\n\n#### Parámetros de createInSiteForm()\n\n| Parámetro | Tipo | Obligatorio | Descripción |\n|-----------|------|-------------|-------------|\n| `$containerId` | string | No | ID del contenedor div (default: 'card-form') |\n| `$buttonStyle` | string | No | CSS para el botón de pago |\n| `$bodyStyle` | string | No | CSS para el cuerpo del formulario |\n| `$boxStyle` | string | No | CSS para la caja de datos |\n| `$inputStyle` | string | No | CSS para los inputs |\n| `$buttonText` | string | No | Texto del botón (HTML encoded) |\n| `$language` | string | No | Código de idioma (default: 'ES') |\n| `$showLogo` | bool | No | Mostrar logo de entidad (default: true) |\n| `$reducedStyle` | bool | No | Usar estilo reducido (default: false) |\n| `$insiteStyle` | string | No | 'inline' o 'twoRows' (default: 'inline') |\n\n### Métodos Auxiliares\n\n| Método | Descripción |\n|--------|-------------|\n| `setNameForm(string)` | Nombre del formulario |\n| `setIdForm(string)` | ID del formulario |\n| `setAttributesSubmit(...)` | Personalizar botón submit |\n| `setLanguage(string)` | Idioma de la pasarela |\n| `setParameters(array)` | Parámetros adicionales |\n| `setIdentifier(string)` | Referencia de tarjeta guardada |\n| `setMerchantDirectPayment(bool)` | Pago directo sin autenticación |\n| `setPan(string)` | Número de tarjeta |\n| `setExpiryDate(string)` | Caducidad (AAMM) |\n| `setCVV2(string)` | Código CVV2 |\n| `setMerchantData(string)` | Datos adicionales del comercio |\n| `getOrder()` | Obtener número de pedido |\n| `getParameters()` | Obtener todos los parámetros |\n| `getVersion()` | Obtener versión de firma |\n| `getMerchantSignature()` | Obtener firma actual |\n| `getEnvironment()` | Obtener URL del entorno |\n| `getJsPath(string, string)` | Obtener ruta JS para integración moderna |\n| `createOrderNumber(int)` | Generar número de pedido válido |\n\n## Parámetros Avanzados\n\n### Pagos Recurrentes\n\n```php\n$redsys->setMerchantCofIni('S');           // Inicio de COF\n$redsys->setMerchantCofType('R');          // Tipo: R=Recurrente, I=Cuotas\n$redsys->setMerchantCofTxnid('123456789'); // ID de transacción\n$redsys->setSumtotal(50000);               // Importe total\n$redsys->setChargeExpiryDate('2025-12-31'); // Fecha expiración\n$redsys->setDateFrecuency(30);             // Frecuencia en días\n```\n\n### Excepción SCA (Strong Customer Authentication)\n\nAlgunos bancos requieren parámetros adicionales:\n\n```php\n$parameters = ['DS_MERCHANT_EXCEP_SCA' => 'MIT'];\n$redsys->setParameters($parameters);\n```\n\n## Ejemplos Completos\n\n### Ejemplo Completo: Pago Simple\n\n```php\n<?php\nuse Sermepa\\Tpv\\Tpv;\nuse Sermepa\\Tpv\\TpvException;\n\ntry {\n    $key = 'sq7HjrUOBfKmC576ILgskD5srU870gJ7';\n\n    $redsys = new Tpv();\n    $redsys->setAmount(25.50)\n        ->setOrder(date('YmdHis'))  // 20240215120000\n        ->setMerchantcode('999008881')\n        ->setCurrency('978')\n        ->setTransactiontype('0')\n        ->setTerminal('1')\n        ->setMethod('C')\n        ->setNotification('https://tusitio.com/notificacion')\n        ->setUrlOk('https://tusitio.com/ok')\n        ->setUrlKo('https://tusitio.com/ko')\n        ->setVersion('HMAC_SHA256_V1')\n        ->setTradeName('Mi Tienda')\n        ->setTitular('Cliente Ejemplo')\n        ->setProductDescription('Compra en Mi Tienda')\n        ->setEnvironment('test');\n\n    $signature = $redsys->generateMerchantSignature($key);\n    $redsys->setMerchantSignature($signature);\n\n    echo $redsys->createForm();\n\n} catch (TpvException $e) {\n    echo 'Error: ' . $e->getMessage();\n}\n```\n\n### Ejemplo Completo: Notificación (Callback)\n\n```php\n<?php\nuse Sermepa\\Tpv\\Tpv;\nuse Sermepa\\Tpv\\TpvException;\n\ntry {\n    $key = 'sq7HjrUOBfKmC576ILgskD5srU870gJ7';\n\n    $redsys = new Tpv();\n\n    // Decodificar parámetros\n    $parameters = $redsys->getMerchantParameters($_POST['Ds_MerchantParameters']);\n\n    // Obtener código de respuesta\n    $DsResponse = (int) $parameters['Ds_Response'];\n    $DsOrder = $parameters['Ds_Order'];\n\n    // Validar firma y respuesta\n    if ($redsys->check($key, $_POST)) {\n        if ($DsResponse >= 0 && $DsResponse <= 99) {\n            // Pago aprobado\n            // Aquí: actualizar pedido en BDD, enviar confirmación, etc.\n            error_log(\"Pago exitoso - Pedido: $DsOrder, Respuesta: $DsResponse\");\n        } else {\n            // Pago denegado\n            error_log(\"Pago denegado - Pedido: $DsOrder, Respuesta: $DsResponse\");\n        }\n    } else {\n        // Firma inválida - posible fraude\n        error_log(\"Firma inválida - Pedido: $DsOrder\");\n    }\n\n} catch (TpvException $e) {\n    error_log('Error TPV: ' . $e->getMessage());\n    http_response_code(500);\n}\n```\n\n## Changelog\n\nVer [CHANGELOG.md](CHANGELOG.md) para más detalles.\n\n## Licencia\n\nMIT - Ver [LICENSE.md](LICENSE.md)\n\n---\n\n## Contribuidores\n\n- [Eduardo D](mailto:ssh.eduardo@gmail.com) - Autor original\n- [jaumecornado](https://github.com/jaumecornado) - Redirección automática\n- [markitosgv](https://github.com/markitosgv) - Validación de respuesta\n\n## Donación\n\n¿Te gustaría apoyar este proyecto? ¡Gracias por tu aprecio!\n\n[![Donar con PayPal](https://www.paypalobjects.com/es_ES/ES/i/btn/btn_donate_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=ssh%2eeduardo%40gmail%2ecom&lc=ES&currency_code=EUR&bn=PP%2dDonationsBF%3abtn_donate_LG%2egif%3aNonHosted)\n\n## Support\n\n¿Necesitas ayuda? [Abre un issue](https://github.com/ssheduardo/sermepa/issues)\n\n[ico-version]: https://img.shields.io/packagist/v/sermepa/sermepa.svg?style=flat-square\n[ico-license]: https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square\n[ico-downloads]: https://img.shields.io/packagist/dt/sermepa/sermepa.svg?style=flat-square\n\n[link-packagist]: https://packagist.org/packages/sermepa/sermepa\n[link-downloads]: https://packagist.org/packages/sermepa/sermepa\n[link-author]: https://github.com/ssheduardo\n[link-workflows]: https://github.com/ssheduardo/sermepa/actions/workflows/ci.yml\n"
  },
  {
    "path": "composer.json",
    "content": "{\n  \"name\": \"sermepa/sermepa\",\n  \"description\": \"Pasarela de pago Redsys, Sermepa\",\n  \"version\": \"1.5.3\",\n  \"keywords\": [\"sermepa\", \"payment\", \"pasarela\", \"lacaixa\", \"sabadell\", \"redsys\"],\n  \"homepage\": \"https://github.com/ssheduardo/sermepa\",\n  \"license\": \"MIT\",\n  \"authors\": [\n    {\n      \"name\": \"Eduardo D\",\n      \"email\": \"ssh.eduardo@gmail.com\",\n      \"homepage\": \"http://ubublog.com/\"\n    }\n  ],\n  \"require\": {\n    \"php\": \"^7.1.3|^7.2.5|^8.0|^8.1|^8.2|^8.3|^8.4|^8.5\"\n  },\n  \"require-dev\": {\n    \"phpunit/phpunit\": \"^7.0|^8.5.8|^9.3.3|^10.0\"\n  },\n  \"autoload\": {\n    \"psr-4\": {\n      \"Sermepa\\\\Tpv\\\\\": \"src/Sermepa/Tpv/\",\n      \"Redsys\\\\\": \"src/Redsys/\"\n    }\n  },\n  \"minimum-stability\": \"stable\"\n}"
  },
  {
    "path": "doc/Códigos de Respuesta.md",
    "content": "# CÓDIGOS DE RESPUESTA\nhttps://pagosonline.redsys.es/codigosRespuesta.html\n\nEn este apartado se presenta un glosario de los códigos de respuesta que se pueden recibir en el proceso de integración y realización de una operación:\n\n## Códigos de error\n\nEl error que se ha producido se puede obtener consultando en el módulo de administración. En el caso de realizar una integración REST el código se error también se recibirá en la respuesta de la petición REST.\n\n| Código de error | Error SIS0XXX | Descripción |\n|-----:|----------|-|\n| 8102 |          | Operación que ha sido redirigida al emisor a autenticar EMV3DS V1.0.2 (para H2H)\n| 8210 |          | Operación que ha sido redirigida al emisor a autenticar EMV3DS V2.1.0 (para H2H)\n| 8220 |          | Operación que ha sido redirigida al emisor a autenticar EMV3DS V2.2.0 (para H2H)\n| 9001 | SIS0001  | Error Interno\n| 9002 | SIS0002  | Error genérico\n| 9003 | SIS0003  | Error genérico\n| 9004 | SIS0004  | Error genérico\n| 9005 | SIS0005  | Error genérico\n| 9006 | SIS0006  | Error genérico\n| 9007 | SIS0007  | El mensaje de petición no es correcto, debe revisar el formato\n| 9008 | SIS0008  | falta Ds_Merchant_MerchantCode\n| 9009 | SIS0009  | Error de formato en Ds_Merchant_MerchantCode\n| 9010 | SIS0010  | Error falta Ds_Merchant_Terminal\n| 9011 | SIS0011  | Error de formato en Ds_Merchant_Terminal\n| 9012 | SIS0012  | Error genérico\n| 9013 | SIS0013  | Error genérico\n| 9014 | SIS0014  | Error de formato en Ds_Merchant_Order\n| 9015 | SIS0015  | Error falta Ds_Merchant_Currency\n| 9016 | SIS0016  | Error de formato en Ds_Merchant_Currency\n| 9018 | SIS0018  | Falta Ds_Merchant_Amount\n| 9019 | SIS0019  | Error de formato en Ds_Merchant_Amount\n| 9020 | SIS0020  | Falta Ds_Merchant_MerchantSignature\n| 9021 | SIS0021  | La Ds_Merchant_MerchantSignature viene vacía\n| 9022 | SIS0022  | Error de formato en Ds_Merchant_TransactionType\n| 9023 | SIS0023  | Ds_Merchant_TransactionType desconocido\n| 9024 | SIS0024  | El Ds_Merchant_ConsumerLanguage tiene mas de 3 posiciones\n| 9025 | SIS0025  | Error de formato en Ds_Merchant_ConsumerLanguage\n| 9026 | SIS0026  | Problema con la configuración\n| 9027 | SIS0027  | Revisar la moneda que está enviando\n| 9028 | SIS0028  | Error Comercio / terminal está dado de baja\n| 9029 | SIS0029  | Que revise como está montando el mensaje\n| 9030 | SIS0030  | Nos llega un tipo de operación errónea\n| 9031 | SIS0031  | Nos está llegando un método de pago erróneo\n| 9032 | SIS0032  | Revisar como está montando el mensaje para la devolución.\n| 9033 | SIS0033  | El tipo de operación es erróneo\n| 9034 | SIS0034  | error interno\n| 9035 | SIS0035  | Error interno al recuperar datos de sesión\n| 9036 | SIS0036  | Error al tomar los datos para Pago Móvil desde el XML\n| 9037 | SIS0037  | El número de teléfono no es válido\n| 9038 | SIS0038  | Error genérico\n| 9039 | SIS0039  | Error genérico\n| 9040 | SIS0040  | El comercio tiene un error en la configuración, tienen que hablar con su entidad.\n| 9041 | SIS0041  | Error en el cálculo de la firma\n| 9042 | SIS0042  | Error en el cálculo de la firma\n| 9043 | SIS0043  | Error genérico\n| 9044 | SIS0044  | Error genérico\n|      | SIS0045  | Error genérico\n| 9046 | SIS0046  | Problema con la configuración del bin de la tarjeta\n| 9047 | SIS0047  | Error genérico\n| 9048 | SIS0048  | Error genérico\n| 9049 | SIS0049  | Error genérico\n| 9050 | SIS0050  | Error genérico\n| 9051 | SIS0051  | Error número de pedido repetido\n| 9052 | SIS0052  | Error genérico\n| 9053 | SIS0053  | Error genérico\n| 9054 | SIS0054  | No existe operación sobre la que realizar la devolución\n| 9055 | SIS0055  | existe más de un pago con el mismo número de pedido\n| 9056 | SIS0056  | Revisar el estado de la autorización\n| 9057 | SIS0057  | Que revise el importe que quiere devolver( supera el permitido)\n| 9058 | SIS0058  | Que revise los datos con los que está validando la confirmación\n| 9059 | SIS0059  | Revisar que existe esa operación\n| 9060 | SIS0060  | Revisar que exista la confirmación\n| 9061 | SIS0061  | Revisar el estado de la preautorización\n| 9062 | SIS0062  | Que el comercio revise el importe a confirmar.\n| 9063 | SIS0063  | Que el comercio revise el númer de tarjeta que nos están enviando.\n| 9064 | SIS0064  | Número de posiciones de la tarjeta incorrecto\n| 9065 | SIS0065  | El número de tarjeta no es numérico\n| 9066 | SIS0066  | Error mes de caducidad\n| 9067 | SIS0067  | El mes de la caducidad no es numérico\n| 9068 | SIS0068  | El mes de la caducidad no es válido\n| 9069 | SIS0069  | Año de caducidad no valido\n| 9070 | SIS0070  | El Año de la caducidad no es numérico\n| 9071 | SIS0071  | Tarjeta caducada\n| 9072 | SIS0072  | Operación no anulable\n| 9073 | SIS0073  | Error en la anulación\n| 9074 | SIS0074  | Falta Ds_Merchant_Order ( Pedido )\n| 9075 | SIS0075  | El comercio tiene que revisar cómo está enviando el número de pedido\n| 9077 | SIS0077  | El comercio tiene que revisar el número de pedido\n| 9078 | SIS0078  | Por la configuración de los métodos de pago de su comercio no se permiten los pagos con esa tarjeta.\n| 9079 | SIS0079  | Error genérico\n| 9080 | SIS0080  | Error genérico\n| 9081 | SIS0081  | Se ha perdico los datos de la sesión\n| 9082 | SIS0082  | Error genérico\n| 9083 | SIS0083  | Error genérico\n| 9084 | SIS0084  | El valor de Ds_Merchant_Conciliation es nulo.\n| 9085 | SIS0085  | El valor de Ds_Merchant_Conciliation no es numérico.\n| 9086 | SIS0086  | El valor de Ds_Merchant_Conciliation no ocupa 6 posiciones.\n| 9087 | SIS0087  | El valor de Ds_Merchant_Session es nulo.\n| 9088 | SIS0088  | El comercio tiene que revisar el valor que envía en ese campo.\n| 9089 | SIS0089  | El valor de caducidad no ocupa 4 posiciones.\n| 9090 | SIS0090  | Error genérico. Consulte con Soporte.\n| 9091 | SIS0091  | Error genérico. Consulte con Soporte.\n| 9092 | SIS0092  | Se ha introducido una caducidad incorrecta.\n| 9093 | SIS0093  | Denegación emisor\n| 9094 | SIS0094  | Denegación emisor\n| 9095 | SIS0095  | Denegación emisor\n| 9096 | SIS0096  | El formato utilizado para los datos 3DSecure es incorrecto\n| 9097 | SIS0097  | Valor del campo Ds_Merchant_CComercio no válido\n| 9098 | SIS0098  | Valor del campo Ds_Merchant_CVentana no válido\n| 9099 | SIS0099  | Error al interpretar respuesta de autenticación\n| 9103 | SIS0103  | Error al montar la petición de Autenticación\n| 9104 | SIS0104  | Comercio con “titular seguro” y titular sin clave de compra segura\n| 9112 | SIS0112  | Que revise que está enviando en el campo Ds_Merchant_Transacction_Type.\n| 9113 | SIS0113  | Error interno\n| 9114 | SIS0114  | Se está realizando la llamada por GET, la tiene que realizar por POST\n| 9115 | SIS0115  | Que revise los datos de la operación que nos está enviando\n| 9116 | SIS0116  | La operación sobre la que se desea pagar una cuota no es una operación válida\n| 9117 | SIS0117  | La operación sobre la que se desea pagar una cuota no está autorizada\n| 9118 | SIS0118  | Se ha excedido el importe total de las cuotas\n| 9119 | SIS0119  | Valor del campo Ds_Merchant_DateFrecuency no válido ( Pagos recurrentes)\n| 9120 | SIS0120  | Valor del campo Ds_Merchant_ChargeExpiryDate no válido\n| 9121 | SIS0121  | Valor del campo Ds_Merchant_SumTotal no válido\n| 9122 | SIS0122  | Formato incorrecto del campo Ds_Merchant_DateFrecuency o Ds_Merchant_SumTotal\n| 9123 | SIS0123  | Se ha excedido la fecha tope para realiza la Transacción\n| 9124 | SIS0124  | No ha transcurrido la frecuencia mínima en un pago recurrente sucesivo\n| 9125 | SIS0125  | Error genérico\n| 9126 | SIS0126  | Operación Duplicada\n| 9127 | SIS0127  | Error Interno\n| 9128 | SIS0128  | Error interno\n| 9129 | SIS0129  | Error, se ha detectado un intento masivo de peticiones desde la ip\n| 9130 | SIS0130  | Error Interno\n| 9131 | SIS0131  | Error Interno\n| 9132 | SIS0132  | La fecha de Confirmación de Autorización no puede superar en mas de 7 dias a la de Preautorización.\n| 9133 | SIS0133  | La fecha de Confirmación de Autenticación no puede superar en mas de 45 días a la de Autenticacion Previa que el comercio revise la fecha de la Preautenticación\n| 9134 | SIS0134  | El valor del Ds_MerchantCiers enviado no es válido\n| 9135 | SIS0135  | Error generando un nuevo valor para el IDETRA\n| 9136 | SIS0136  | Error al montar el mensaje de notificación\n| 9137 | SIS0137  | Error al intentar validar la tarjeta como 3DSecure NACIONAL\n| 9138 | SIS0138  | Error debido a que existe una Regla del ficheros de reglas que evita que se produzca la Autorizacion\n| 9139 | SIS0139  | pago recurrente inicial está duplicado\n| 9140 | SIS0140  | Error Interno\n| 9141 | SIS0141  | Error formato no correcto para 3DSecure\n| 9142 | SIS0142  | Tiempo excecido para el pago\n| 9151 | SIS0151  | Error Interno\n| 9169 | SIS0169  | El valor del campo Ds_Merchant_MatchingData ( Datos de Case) no es valido , que lo revise\n| 9170 | SIS0170  | Que revise el adquirente que manda en el campo\n| 9171 | SIS0171  | Que revise el CSB que nos está enviando\n| 9172 | SIS0172  | El valor del campo PUCE Ds_Merchant_MerchantCode no es válido\n| 9173 | SIS0173  | Que el comercio revise el campo de la URL OK\n| 9174 | SIS0174  | Error Interno\n| 9175 | SIS0175  | Error Interno\n| 9181 | SIS0181  | Error Interno\n| 9182 | SIS0182  | Error Interno\n| 9183 | SIS0183  | Error interno\n| 9184 | SIS0184  | Error interno\n| 9186 | SIS0186  | Faltan datos para operación\n| 9187 | SIS0187  | Error formato( Interno )\n| 9197 | SIS0197  | Error al obtener los datos de cesta de la compra\n| 9214 | SIS0214  | Su comercion no permite devoluciones por el tipo de firma ( Completo)\n| 9216 | SIS0216  | El CVV2 tiene mas de 3 posiciones\n| 9217 | SIS0217  | Error de formato en el CVV2\n| 9218 | SIS0218  | El comercio no permite operaciones seguras por las entradas \"operaciones\" o \"WebService\"\n| 9219 | SIS0219  | Se tiene que dirigir a su entidad.\n| 9220 | SIS0220  | Se tiene que dirigir a su entidad.\n| 9221 | SIS0221  | El cliente no está introduciendo el CVV2\n| 9222 | SIS0222  | Existe una anulación asociada a la preautorización\n| 9223 | SIS0223  | La preautorización que se desea anular no está autorizada\n| 9224 | SIS0224  | Su comercio no permite anulaciones por no tener la firma ampliada\n| 9225 | SIS0225  | No existe operación sobre la que realizar la anulación\n| 9226 | SIS0226  | Error en en los datos de la anulación manual\n| 9227 | SIS0227  | Que el comercio revise el campo Ds_Merchant_TransactionDate\n| 9228 | SIS0228  | El tipo de tarjeta no puede realizar pago aplazado\n| 9229 | SIS0229  | Error con el codigo de aplazamiento\n| 9230 | SIS0230  | Su comercio no permite pago fraccionado( Consulte a su entidad)\n| 9231 | SIS0231  | No hay forma de pago aplicable ( Consulte con su entidad)\n| 9232 | SIS0232  | Forma de pago no disponible\n| 9233 | SIS0233  | Forma de pago desconocida\n| 9234 | SIS0234  | Nombre del titular de la cuenta no disponible\n| 9235 | SIS0235  | Campo Sis_Numero_Entidad no disponible\n| 9236 | SIS0236  | El campo Sis_Numero_Entidad no tiene la longitud requerida\n| 9237 | SIS0237  | El campo Sis_Numero_Entidad no es numérico\n| 9238 | SIS0238  | Campo Sis_Numero_Oficina no disponible\n| 9239 | SIS0239  | El campo Sis_Numero_Oficina no tiene la longitud requerida\n| 9240 | SIS0240  | El campo Sis_Numero_Oficina no es numérico\n| 9241 | SIS0241  | Campo Sis_Numero_DC no disponible\n| 9242 | SIS0242  | El campo Sis_Numero_DC no tiene la longitud requerida\n| 9243 | SIS0243  | El campo Sis_Numero_DC no es numérico\n| 9244 | SIS0244  | Campo Sis_Numero_Cuenta no disponible\n| 9245 | SIS0245  | El campo Sis_Numero_Cuenta no tiene la longitud requerida\n| 9246 | SIS0246  | El campo Sis_Numero_Cuenta no es numérico\n| 9247 | SIS0247  | Dígito de Control de Cuenta Cliente no válido\n| 9248 | SIS0248  | El comercio no permite pago por domiciliación\n| 9249 | SIS0249  | Error genérico\n| 9250 | SIS0250  | Error genérico\n| 9251 | SIS0251  | No permite transferencias( Consultar con entidad )\n| 9252 | SIS0252  | Por su configuración no puede enviar la tarjeta. ( Para modificarlo consualtar con la entidad)\n| 9253 | SIS0253  | No se ha tecleado correctamente la tarjeta.\n| 9254 | SIS0254  | Se tiene que dirigir a su entidad.\n| 9255 | SIS0255  | Se tiene que dirigir a su entidad.\n| 9256 | SIS0256  | El comercio no permite operativa de preautorizacion.\n| 9257 | SIS0257  | La tarjeta no permite operativa de preautorizacion\n| 9258 | SIS0258  | Tienen que revisar los datos de la validación\n| 9259 | SIS0259  | No existe la operacion original para notificar o consultar\n| 9260 | SIS0260  | Entrada incorrecta al SIS\n| 9261 | SIS0261  | Se tiene que dirigir a su entidad.\n| 9262 | SIS0262  | Moneda no permitida para operación de transferencia o domiciliacion\n| 9263 | SIS0263  | Error calculando datos para procesar operación\n| 9264 | SIS0264  | Error procesando datos de respuesta recibidos\n| 9265 | SIS0265  | Error de firma en los datos recibidos\n| 9266 | SIS0266  | No se pueden recuperar los datos de la operación recibida\n| 9267 | SIS0267  | La operación no se puede procesar por no existir Codigo Cuenta Cliente\n| 9268 | SIS02648 | La devolución no se puede procesar por WebService\n| 9269 | SIS0269  | No se pueden realizar devoluciones de operaciones de domiciliacion no descargadas\n| 9270 | SIS0270  | El comercio no puede realizar preautorizaciones en diferido\n| 9274 | SIS0274  | Tipo de operación desconocida o no permitida por esta entrada al SIS\n| 9275 | SIS0275  | Premio sin IdPremio\n| 9276 | SIS076   | Unidades del Premio no numericas.\n| 9277 | SIS0277  | Error genérico. Consulte con Redsys\n| 9278 | SIS0278  | Error en el proceso de consulta de premios\n| 9279 | SIS0279  | El comercio no tiene activada la operativa de fidelización\n| 9280 | SIS0280  | Se tiene que dirigir a su entidad.\n| 9281 | SIS0281  | Se tiene que dirigir a su entidad.\n| 9282 | SIS0282  | Se tiene que dirigir a su entidad.\n| 9283 | SIS0283  | Se tiene que dirigir a su entidad.\n| 9284 | SIS0284  | No existe operacion sobre la que realizar el Pago Adicional\n| 9285 | SIS0285  | Tiene más de una operacion sobre la que realizar el Pago Adicional\n| 9286 | SIS0286  | La operación sobre la que se quiere hacer la operación adicional no esta Aceptada\n| 9287 | SIS0287  | la Operacion ha sobrepasado el importe para el Pago Adicional.\n| 9288 | SIS0288  | No se puede realizar otro pago Adicional. se ha superado el numero de pagos\n| 9289 | SIS0289  | El importe del pago Adicional supera el maximo días permitido.\n| 9290 | SIS0290  | Se tiene que dirigir a su entidad.\n| 9291 | SIS0291  | Se tiene que dirigir a su entidad.\n| 9292 | SIS0292  | Se tiene que dirigir a su entidad.\n| 9293 | SIS0293  | Se tiene que dirigir a su entidad.\n| 9294 | SIS0294  | La tarjeta no es privada.\n| 9295 | SIS0295  | duplicidad de operación. Se puede intentar de nuevo ( 1 minuto )\n| 9296 | SIS0296  | No se encuentra la operación Tarjeta en Archivo inicial\n| 9297 | SIS0297  | Número de operaciones sucesivas de Tarjeta en Archivo superado\n| 9298 | SIS0298  | No puede realizar este tipo de operativa. (Contacte con su entidad)\n| 9299 | SIS0299  | Error en pago con PayPal\n| 9300 | SIS0300  | Error en pago con PayPal\n| 9301 | SIS0301  | Error en pago con PayPal\n| 9302 | SIS0302  | Moneda no válida para pago con PayPal\n| 9304 | SIS0304  | No se permite pago fraccionado si la tarjeta no es de FINCONSUM\n| 9305 | SIS0305  | Revisar la moneda de la operación\n| 9306 | SIS0306  | Valor de Ds_Merchant_PrepaidCard no válido\n| 9307 | SIS0307  | Que consulte con su entidad. Operativa de tarjeta regalo no permitida\n| 9308 | SIS0308  | Tiempo límite para recarga de tarjeta regalo superado\n| 9309 | SIS0309  | Faltan datos adicionales para realizar la recarga de tarjeta prepago\n| 9310 | SIS0310  | Valor de Ds_Merchant_Prepaid_Expiry no válido\n| 9311 | SIS0311  | Error genérico\n| 9319 | SIS0319  | El comercio no pertenece al grupo especificado en Ds_Merchant_Group\n| 9320 | SIS0320  | Error generando la referencia\n| 9321 | SIS0321  | El identificador no está asociado al comercio\n| 9322 | SIS0322  | Que revise el formato del grupo\n| 9323 | SIS0323  | Para el tipo de operación F( pago en dos fases) es necesario enviar uno de estos campos. Ds_Merchant_Customer_Mobile o Ds_Merchant_Customer_Mail\n| 9324 | SIS0324  | Imposible enviar el link al cliente( Que revise la dirección mail)\n| 9326 | SIS0326  | Se han enviado datos de tarjeta en fase primera de un pago con dos fases\n| 9327 | SIS0327  | No se ha enviado ni móvil ni email en fase primera de un pago con dos fases\n| 9328 | SIS0328  | Token de pago en dos fases inválido\n| 9329 | SIS0329  | No se puede recuperar el Token de pago en dos fases.\n| 9330 | SIS0330  | Fechas incorrectas de pago dos fases\n| 9331 | SIS0331  | La operación no tiene un estado válido o no existe.\n| 9332 | SIS0332  | El importe de la operación original y de la devolución debe ser idéntico\n| 9333 | SIS0333  | Error en una petición a MasterPass Wallet\n| 9334 | SIS0334  | Bloqueo por control de Seguridad\n| 9335 | SIS0335  | El valor del campo Ds_Merchant_Recharge_Commission no es válido\n| 9336 | SIS0336  | Error genérico. Consulte con Redsys\n| 9342 | SIS0342  | El comercio no permite realizar operaciones de pago de tributos\n| 9343 | SIS0343  | Falta o es incorrecto el parámetro Ds_Merchant_Tax_Reference\n| 9344 | SIS0344  | No se han aceptado las condiciones de las cuotas\n| 9345 | SIS0345  | Se ha elegido un número de plazos incorrecto\n| 9346 | SIS0346  | Error en el formato del campo DS_MERCHANT_PAY_TYPE\n| 9347 | SIS0347  | El comercio no está configurado para realizar la consulta de BIN.\n| 9348 | SIS0348  | El BIN indicado en la consulta no se reconoce\n| 9349 | SIS0349  | Los datos de importe y DCC enviados no coinciden con los registrados en SIS\n| 9350 | SIS0350  | No hay datos DCC registrados en SIS para este número de pedido\n| 9351 | SIS0351  | Autenticación prepago incorrecta\n| 9352 | SIS0352  | El tipo de firma del comercio no permite esta operativa\n| 9353 | SIS0353  | El comercio no tiene definida una clave 3DES válida\n| 9354 | SIS0354  | Error descifrando petición\n| 9355 | SIS0355  | El comercio-terminal enviado en los datos cifrados no coincide con el enviado en la petición\n| 9356 | SIS0356  | Existen datos de entrada para control de fraude y el comercio no tiene activo control de fraude\n| 9357 | SIS0357  | El comercio tiene activo control de fraude y no existe campo ds_merchant_merchantscf\n| 9370 | SIS0370  | Error en formato Scf_Merchant_Nif. Longitud máxima 16\n| 9371 | SIS0371  | Error en formato Scf_Merchant_Name. Longitud máxima 30\n| 9372 | SIS0372  | Error en formato Scf_Merchant_First_Name. Longitud máxima 30\n| 9373 | SIS0373  | Error en formato Scf_Merchant_Last_Name. Longitud máxima 30\n| 9374 | SIS0374  | Error en formato Scf_Merchant_User. Longitud máxima 45\n| 9375 | SIS0375  | Error en formato Scf_Affinity_Card. Valores posibles 'S' o 'N'. Longitud máxima 1\n| 9376 | SIS0376  | Error en formato Scf_Payment_Financed. Valores posibles 'S' o 'N'. Longitud máxima 1\n| 9377 | SIS0377  | Error en formato Scf_Ticket_Departure_Point. Longitud máxima 30\n| 9378 | SIS0378  | Error en formato Scf_Ticket_Destination. Longitud máxima 30\n| 9379 | SIS0379  | Error en formato Scf_Ticket_Departure_Date. Debe tener formato yyyyMMddHHmmss.\n| 9380 | SIS080   | Error en formato Scf_Ticket_Num_Passengers. Longitud máxima 1.\n| 9381 | SIS081   | Error en formato Scf_Passenger_Dni. Longitud máxima 16.\n| 9382 | SIS082   | Error en formato Scf_Passenger_Name. Longitud máxima 30.\n| 9283 | SIS0334  | Se tiene que dirigir a su entidad.\n| 9335 | SIS0335  | El valor del campo Ds_Merchant_Recharge_Commission no es válido\n| 9336 | SIS0336  | Error genérico\n| 9342 | SIS0342  | El comercio no permite realizar operaciones de pago de tributos\n| 9343 | SIS0343  | Falta o es incorrecto el parámetro Ds_Merchant_Tax_Reference\n| 9344 | SIS0344  | El usuario ha elegido aplazar el pago, pero no ha aceptado las condiciones de las cuotas\n| 9345 | SIS0345  | Revisar el número de plazos que está enviando.\n| 9346 | SIS0346  | Revisar formato en parámetro DS_MERCHANT_PAY_TYPE\n| 9347 | SIS0347  | El comercio no está configurado para realizar la consulta de BIN.\n| 9348 | SIS0348  | El BIN indicado en la consulta no se reconoce\n| 9349 | SIS0349  | Los datos de importe y DCC enviados no coinciden con los registrados en SIS\n| 9350 | SIS0350  | No hay datos DCC registrados en SIS para este número de pedido\n| 9351 | SIS0351  | Autenticación prepago incorrecta\n| 9352 | SIS0352  | El tipo de firma no permite esta operativa\n| 9353 | SIS0353  | Clave no válida\n| 9354 | SIS0354  | Error descifrando petición al SIS\n| 9355 | SIS0355  | El comercio-terminal enviado en los datos cifrados no coincide con el enviado en la petición\n| 9356 | SIS0356  | El comercio no tiene activo control de fraude ( Consulte con su entidad\n| 9357 | SIS0357  | El comercio tiene activo control de fraude y no existe campo ds_merchant_merchantscf\n| 9359 | SIS0359  | El comercio solamente permite pago de tributos y no se está informando el campo Ds_Merchant_TaxReference\n| 9370 | SIS0370  | Error en formato Scf_Merchant_Nif. Longitud máxima 16\n| 9371 | SIS0371  | Error en formato Scf_Merchant_Name. Longitud máxima 30\n| 9372 | SIS0372  | Error en formato Scf_Merchant_First_Name. Longitud máxima 30\n| 9373 | SIS0373  | Error en formato Scf_Merchant_Last_Name. Longitud máxima 30\n| 9374 | SIS0374  | Error en formato Scf_Merchant_User. Longitud máxima 45\n| 9375 | SIS0375  | Error en formato Scf_Affinity_Card. Valores posibles 'S' o 'N'. Longitud máxima 1\n| 9376 | SIS0376  | Error en formato Scf_Payment_Financed. Valores posibles 'S' o 'N'. Longitud máxima 1\n| 9377 | SIS0377  | Error en formato Scf_Ticket_Departure_Point. Longitud máxima 30\n| 9378 | SIS0378  | Error en formato Scf_Ticket_Destination. Longitud máxima 30\n| 9379 | SIS0379  | Error en formato Scf_Ticket_Departure_Date. Debe tener formato yyyyMMddHHmmss.\n| 9380 | SIS0380  | Error en formato Scf_Ticket_Num_Passengers. Longitud máxima 1.\n| 9381 | SIS0381  | Error en formato Scf_Passenger_Dni. Longitud máxima 16.\n| 9382 | SIS0382  | Error en formato Scf_Passenger_Name. Longitud máxima 30.\n| 9383 | SIS0383  | Error en formato Scf_Passenger_First_Name. Longitud máxima 30.\n| 9384 | SIS0384  | Error en formato Scf_Passenger_Last_Name. Longitud máxima 30.\n| 9385 | SIS0385  | Error en formato Scf_Passenger_Check_Luggage. Valores posibles 'S' o 'N'. Longitud máxima 1.\n| 9386 | SIS0386  | Error en formato Scf_Passenger_Special_luggage. Valores posibles 'S' o 'N'. Longitud máxima 1.\n| 9387 | SIS0387  | Error en formato Scf_Passenger_Insurance_Trip. Valores posibles 'S' o 'N'. Longitud máxima 1.\n| 9388 | SIS0388  | Error en formato Scf_Passenger_Type_Trip. Valores posibles 'N' o 'I'. Longitud máxima 1.\n| 9389 | SIS0389  | Error en formato Scf_Passenger_Pet. Valores posibles 'S' o 'N'. Longitud máxima 1.\n| 9390 | SIS0390  | Error en formato Scf_Order_Channel. Valores posibles 'M'(móvil), 'P'(PC) o 'T'(Tablet)\n| 9391 | SIS0391  | Error en formato Scf_Order_Total_Products. Debe tener formato numérico y longitud máxima de 3.\n| 9392 | SIS0392  | Error en formato Scf_Order_Different_Products. Debe tener formato numérico y longitud máxima de 3.\n| 9393 | SIS0393  | Error en formato Scf_Order_Amount. Debe tener formato numérico y longitud máxima de 19.\n| 9394 | SIS0394  | Error en formato Scf_Order_Max_Amount. Debe tener formato numérico y longitud máxima de 19.\n| 9395 | SIS0395  | Error en formato Scf_Order_Coupon. Valores posibles 'S' o 'N'\n| 9396 | SIS0396  | Error en formato Scf_Order_Show_Type. Debe longitud máxima de 30.\n| 9397 | SIS0397  | Error en formato Scf_Wallet_Identifier\n| 9398 | SIS0398  | Error en formato Scf_Wallet_Client_Identifier\n| 9399 | SIS0399  | Error en formato Scf_Merchant_Ip_Address\n| 9400 | SIS0400  | Error en formato Scf_Merchant_Proxy\n| 9401 | SIS0401  | Error en formato Ds_Merchant_Mail_Phone_Number. Debe ser numérico y de longitud máxima 19\n| 9402 | SIS0402  | Error en llamada a SafetyPay para solicitar token url\n| 9403 | SIS0403  | Error en proceso de solicitud de token url a SafetyPay\n| 9404 | SIS0404  | Error en una petición a SafetyPay\n| 9405 | SIS0405  | Solicitud de token url denegada SAFETYPAY\n| 9406 | SIS0406  | Se tiene que poner en contacto con su entidad para que revisen la configuración del sector de actividad de su comercio\n| 9407 | SIS0407  | El importe de la operación supera el máximo permitido para realizar un pago de premio de apuesta(Gambling)\n| 9408 | SIS0408  | La tarjeta debe de haber operado durante el último año para poder realizar un pago de premio de apuesta (Gambling)\n| 9409 | SIS0409  | La tarjeta debe ser una Visa o MasterCard nacional para realizar un pago de premio de apuesta (Gambling)\n| 9410 | SIS0410  | Denegada por el emisor\n| 9411 | SIS0411  | Error en la configuración del comercio (Remitir a su entidad)\n| 9412 | SIS0412  | La firma no es correcta\n| 9413 | SIS0413  | Denegada, consulte con su entidad.\n| 9414 | SIS0414  | El plan de ventas no es correcto\n| 9415 | SIS0415  | El tipo de producto no es correcto\n| 9416 | SIS0416  | Importe no permitido en devolucion\n| 9417 | SIS0417  | Fecha de devolucion no permitida\n| 9418 | SIS0418  | No existe plan de ventas vigente\n| 9419 | SIS0419  | Tipo de cuenta no permitida\n| 9420 | SIS0420  | El comercio no dispone de formas de pago para esta operación\n| 9421 | SIS0421  | Tarjeta no permitida. No es producto Agro\n| 9422 | SIS0422  | Faltan datos para operacion Agro\n| 9423 | SIS0423  | CNPJ del comecio incorrecto\n| 9424 | SIS0424  | No se ha encontrado el establecimiento\n| 9425 | SIS0425  | No se ha encontrado la tarjeta\n| 9426 | SIS0426  | Enrutamiento no valido para el comercio\n| 9427 | SIS0427  | La conexion con CECA no ha sido posible\n| 9428 | SIS0428  | Operacion debito no segura\n| 9429 | SIS0429  | Error en la versión enviada por el comercio (Ds_SignatureVersion)\n| 9430 | SIS0430  | Error al decodificar el parámetro Ds_MerchantParameters\n| 9431 | SIS0431  | Error del objeto JSON que se envía codificado en el parámetro Ds_MerchantParameters\n| 9432 | SIS0432  | Error FUC del comercio erróneo\n| 9433 | SIS0433  | Error Terminal del comercio erróneo\n| 9434 | SIS0434  | Error ausencia de número de pedido en la op. del comercio\n| 9435 | SIS0435  | Error en el cálculo de la firma\n| 9436 | SIS0436  | Error en la construcción del elemento padre\n| 9437 | SIS0437  | Error en la construcción del elemento\n| 9438 | SIS0438  | Error en la construcción del elemento\n| 9439 | SIS0439  | Error en la construcción del elemento\n| 9440 | SIS0440  | Error genérico\n| 9441 | SIS0441  | Error no tenemos bancos para Mybank\n| 9442 | SIS0442  | Error genérico\n| 9443 | SIS0443  | No se permite pago con esta tarjeta\n| 9444 | SIS0444  | Se está intentando acceder usando firmas antiguas y el comercio está configurado como HMAC SHA256\n| 9445 | SIS0445  | Error genérico\n| 9446 | SIS0446  | Es obligatorio indicar la forma de pago\n| 9447 | SIS0447  | Error, se está utilizando una referencia que se generó con un adquirente distinto al adquirente que la utiliza.\n| 9448 | SIS0448  | El comercio no tiene el método de pago \"Pago DINERS\"\n| 9449 | SIS0449  | Tipo de pago de la operación no permitido para este tipo de tarjeta\n| 9450 | SIS0450  | Tipo de pago de la operación no permitido para este tipo de tarjeta\n| 9451 | SIS0451  | Tipo de pago de la operación no permitido para este tipo de tarjeta\n| 9453 | SIS0453  | No se permiten pagos con ese tipo de tarjeta\n| 9454 | SIS0454  | No se permiten pagos con ese tipo de tarjeta\n| 9455 | SIS0455  | No se permiten pagos con ese tipo de tarjeta\n| 9456 | SIS0456  | No tiene método de pago configurado (Consulte a su entidad)\n| 9457 | SIS0457  | Error, se aplica el método de pago \"MasterCard SecureCode\" con Respuesta [VEReq, VERes] = N con tarjeta MasterCard Comercial y el comercio no tiene el método de pago \"MasterCard Comercial\"\n| 9458 | SIS0458  | Error, se aplica el método de pago \"MasterCard SecureCode\" con Respuesta [VEReq, VERes] = U con tarjeta MasterCard Comercial y el comercio no tiene el método de pago \"MasterCard Comercial\"\n| 9459 | SIS0459  | No tiene método de pago configurado (Consulte a su entidad)\n| 9460 | SIS0460  | No tiene método de pago configurado (Consulte a su entidad)\n| 9461 | SIS0461  | No tiene método de pago configurado (Consulte a su entidad)\n| 9462 | SIS0462  | Metodo de pago no disponible para conexión HOST to HOST\n| 9463 | SIS0463  | Metodo de pago no permitido\n| 9464 | SIS0464  | El comercio no tiene el método de pago \"MasterCard Comercial\"\n| 9465 | SIS0465  | No tiene método de pago configurado (Consulte a su entidad)\n| 9466 | SIS0466  | La referencia que se está utilizando no existe.\n| 9467 | SIS0467  | La referencia que se está utilizando está dada de baja\n| 9468 | SIS0468  | Se está utilizando una referencia que se generó con un adquirente distinto al adquirente que la utiliza.\n| 9469 | SIS0469  | Error, no se ha superado el proceso de fraude MR\n| 9470 | SIS0470  | Error la solicitud del primer factor ha fallado.\n| 9471 | SIS0471  | Error en la URL de redirección de solicitud del primer factor.\n| 9472 | SIS0472  | Error al montar la petición de Autenticación de PPII.\n| 9473 | SIS0473  | Error la respuesta de la petición de Autenticación de PPII es nula.\n| 9474 | SIS0474  | Error el statusCode de la respuesta de la petición de Autenticación de PPII es nulo\n| 9475 | SIS0475  | Error el idOperación de la respuesta de la petición de Autenticación de PPII es nulo\n| 9476 | SIS0476  | Error tratando la respuesta de la Autenticación de PPII\n| 9477 | SIS0477  | Error se ha superado el tiempo definido entre el paso 1 y 2 de PPI\n| 9478 | SIS0478  | Error tratando la respuesta de la Autorización de PPII\n| 9479 | SIS0479  | Error la respuesta de la petición de Autorización de PPII es nula\n| 9480 | SIS0480  | Error el statusCode de la respuesta de la petición de Autorización de PPII es nulo.\n| 9481 | SIS0481  | Error, el comercio no es Payment Facilitator\n| 9482 | SIS0482  | Error el idOperación de la respuesta de una Autorización OK es nulo o no coincide con el idOp. de la Auth.\n| 9483 | SIS0483  | Error la respuesta de la petición de devolución de PPII es nula.\n| 9484 | SIS0484  | Error el statusCode o el idPetición de la respuesta de la petición de Devolución de PPII es nulo.\n| 9485 | SIS0485  | Error producido por la denegación de la devolución.\n| 9486 | SIS0486  | Error la respuesta de la petición de consulta de PPII es nula.\n| 9487 | SIS0487  | El comercio terminal no tiene habilitado el método de pago Paygold.\n| 9488 | SIS0488  | El comercio no tiene el método de pago \"Pago MOTO/Manual\" y la operación viene marcada como pago MOTO.\n| 9489 | SIS0489  | Error de datos. Operacion MPI Externo no permitida\n| 9490 | SIS0490  | Error de datos. Se reciben parametros MPI Redsys en operacion MPI Externo\n| 9491 | SIS0491  | Error de datos. SecLevel no permitido en operacion MPI Externo\n| 9492 | SIS0492  | Error de datos. Se reciben parametros MPI Externo en operacion MPI Redsys\n| 9493 | SIS0493  | Error de datos. Se reciben parametros de MPI en operacion no segura\n| 9494 | SIS0494  | FIRMA OBSOLETA\n| 9495 | SIS0495  | Configuración incorrecta ApplePay o AndroidPay\n| 9496 | SIS0496  | No tiene dado de alta el método de pago AndroidPay\n| 9497 | SIS0497  | No tiene dado de alta el método de pago ApplePay\n| 9498 | SIS0498  | moneda / importe de la operación de ApplePay no coinciden\n| 9499 | SIS0499  | Error obteniendo claves del comercio en Android/Apple Pay\n| 9500 | SIS0500  | Error en el DCC Dinámico, se ha modificado la tarjeta.\n| 9501 | SIS0501  | Error en La validación de datos enviados para genera el Id operación\n| 9502 | SIS0502  | Error al validar Id Oper\n| 9503 | SIS0503  | Error al validar el pedido\n| 9504 | SIS0504  | Error al validar tipo de transacción\n| 9505 | SIS0505  | Error al validar moneda\n| 9506 | SIS0506  | Error al validar el importe\n| 9507 | SIS0507  | Id Oper no tiene vigencia\n| 9508 | SIS0508  | Error al validar Id Oper\n| 9510 | SIS0510  | No se permite el envío de datos de tarjeta si se envía ID de operación\n| 9511 | SIS0511  | Error en la respuesta de consulta de BINES\n| 9515 | SIS0515  | El comercio tiene activado pago Amex en Perfil.\n| 9516 | SIS0516  | Error al montar el mensaje de China Union Pay\n| 9517 | SIS0517  | Error al establecer la clave para China Union Pay\n| 9518 | SIS0518  | Error al grabar los datos para pago China Union Pay\n| 9519 | SIS0519  | Mensaje de autenticación erróneo\n| 9520 | SIS0520  | El mensaje SecurePlus de sesión está vacío\n| 9521 | SIS0521  | El xml de respuesta viene vacío\n| 9522 | SIS0522  | No se han recibido parametros en datosentrada\n| 9523 | SIS0523  | La firma calculada no coincide con la recibida en la respuesta\n| 9524 | SIS0524  | el resultado de la autenticación 3DSecure MasterCard es PARes=\"A\" o VERes=\"N\" y no recibimos CAVV del emisor\n| 9525 | SIS0525  | No se puede utilizar la tarjeta privada en este comercio\n| 9526 | SIS0526  | La tarjeta no es china\n| 9527 | SIS0527  | Falta el parametro obligatorio DS_MERCHANT_BUYERID\n| 9528 | SIS0528  | Formato erróneo del parametro DS_MERCHANT_BUYERID en operación Sodexo Brasil\n| 9529 | SIS0529  | No se permite operación recurrente en pagos con tarjeta Voucher\n| 9530 | SIS0530  | La fecha de Anulación no puede superar en mas de 7 dias a la de Preautorización.\n| 9531 | SIS0531  | La fecha de Anulación no puede superar en mas de 72 horas a la de Preautorización diferida\n| 9532 | SIS0532  | La moneda de la petición no coincide con la devuelta\n| 9533 | SIS0533  | El importe de la petición no coincide con el devuelto\n| 9534 | SIS0534  | No se recibe recaudación emisora o referencia del recibo\n| 9535 | SIS0535  | Pago de tributo fuera de plazo\n| 9536 | SIS0536  | Tributo ya pagado\n| 9537 | SIS0537  | Pago de tributo denegado\n| 9538 | SIS0538  | Rechazo en el pago de tributo\n| 9539 | SIS0539  | Error en el envío de SMS\n| 9540 | SIS0540  | El móvil enviado es demasiado largo (más de 12 posiciones)\n| 9541 | SIS0541  | La referencia enviada es demasiada larga (más de 40 posiciones)\n| 9542 | SIS0542  | Error genérico. Consulte con Redsys\n| 9543 | SIS0543  | Error, la tarjeta de la operación es DINERS y el comercio no tiene el método de pago \"Pago DINERS\" o \"Pago Discover No Seguro\"\n| 9544 | SIS0544  | Error, la tarjeta de la operación es DINERS y el comercio no tiene el método de pago \"Pago Discover No Seguro\"\n| 9545 | SIS0545  | Error DISCOVER\n| 9546 | SIS0546  | Error DISCOVER\n| 9547 | SIS0547  | Error DISCOVER\n| 9548 | SIS0548  | Error DISCOVER\n| 9549 | SIS0549  | Error DISCOVER\n| 9550 | SIS0550  | ERROR en el gestor de envío de los SMS. Consulte con Redsys\n| 9551 | SIS0551  | ERROR en el proceso de autenticación.\n| 9552 | SIS0552  | ERROR el resultado de la autenticacion PARes = 'U'\n| 9553 | SIS0553  | ERROR se ha intentado hacer un pago con el método de pago UPI y la tarjeta no es china\n| 9554 | SIS0554  | ERROR el resultado de la autenticacion para UPI es PARes = 'U' y el comercio no tiene métodos de pago no seguros UPI EXPRESSPAY\n| 9555 | SIS0555  | ERROR la IP de conexión del módulo de administración no esta entre las permitidas.\n| 9556 | SIS0556  | Se envía pago Tradicional y el comercio no tiene pago Tradicional mundial ni Tradicional UE.\n| 9557 | SIS0557  | Se envía pago Tarjeta en Archivo y el comercio no tiene pago Tradicional mundial ni Tradicional UE.\n| 9558 | SIS0558  | ERROR, el formato de la fecha dsMerchantP2FExpiryDate es incorrecto\n| 9559 | SIS0559  | ERROR el id Operacion de la respuesta en la autenticación PPII es nulo o no se ha obtenido de la autenticación final\n| 9560 | SIS0560  | ERROR al enviar la notificacion de autenticacion al comercio\n| 9561 | SIS0561  | ERROR el idOperación de la respuesta de una confirmacion separada OK es nulo o no coincide con el idOp. de la Confirmacion.\n| 9562 | SIS0562  | ERROR la respuesta de la petición de confirmacion separada de PPII es nula.\n| 9563 | SIS0563  | ERROR tratando la respuesta de la confirmacion separada de PPII.\n| 9564 | SIS0564  | ERROR chequeando los importes de DCC antes del envío de la operación a Stratus.\n| 9565 | SIS0565  | Formato del importe del campo Ds_Merchant_Amount excede del límite permitido.\n| 9566 | SIS0566  | Error de acceso al nuevo Servidor Criptográfico.\n| 9567 | SIS0567  | ERROR se ha intentado hacer un pago con una tarjeta china UPI y el comercio no tiene método de pago UPI\n| 9568 | SIS0568  | Operacion de consulta de tarjeta rechazada, tipo de transacción erróneo\n| 9569 | SIS0569  | Operacion de consulta de tarjeta rechazada, no se ha informado la tarjeta\n| 9570 | SIS0570  | Operacion de consulta de tarjeta rechazada, se ha enviado tarjeta y referencia\n| 9571 | SIS0571  | Operacion de autenticacion rechazada, protocolVersion no indicado\n| 9572 | SIS0572  | Operacion de autenticacion rechazada, protocolVersion no reconocido\n| 9573 | SIS0573  | Operacion de autenticacion rechazada, browserAcceptHeader no indicado\n| 9574 | SIS0574  | Operacion de autenticacion rechazada, browserUserAgent no indicado\n| 9575 | SIS0575  | Operacion de autenticacion rechazada, browserJavaEnabled no indicado\n| 9576 | SIS0576  | Operacion de autenticacion rechazada, browserLanguage no indicado\n| 9577 | SIS0577  | Operacion de autenticacion rechazada, browserColorDepth no indicado\n| 9578 | SIS0578  | Operacion de autenticacion rechazada, browserScreenHeight no indicado\n| 9579 | SIS0579  | Operacion de autenticacion rechazada, browserScreenWidth no indicado\n| 9580 | SIS0580  | Operacion de autenticacion rechazada, browserTZ no indicado\n| 9581 | SIS0581  | Operacion de autenticacion rechazada, datos DS_MERCHANT_EMV3DS no está indicado o es demasiado grande y no se puede convertir en JSON\n| 9582 | SIS0582  | Operacion de autenticacion rechazada, threeDSServerTransID no indicado\n| 9583 | SIS0583  | Operacion de autenticacion rechazada, threeDSCompInd no indicado\n| 9584 | SIS0584  | Operacion de autenticacion rechazada, notificationURL no indicado\n| 9585 | SIS0585  | Operacion de autenticacion EMV3DS rechazada, no existen datos en la BBDD\n| 9586 | SIS0586  | Operacion de autenticacion rechazada, PARes no indicado\n| 9587 | SIS0587  | Operacion de autenticacion rechazada, MD no indicado\n| 9588 | SIS0588  | Operacion de autenticacion rechazada, la versión no coincide entre los mensajes AuthenticationData y ChallengeResponse\n| 9589 | SIS0589  | Operacion de autenticacion rechazada, respuesta sin CRes\n| 9590 | SIS0590  | Operacion de autenticacion rechazada, error al desmontar la respuesta CRes\n| 9591 | SIS0591  | Operacion de autenticacion rechazada, error la respuesta CRes viene sin threeDSServerTransID\n| 9592 | SIS0592  | Operacion de autenticacion rechazada, error el transStatus del CRes no coincide con el transStatus de la consulta final de la operación\n| 9593 | SIS0593  | Operacion de autenticacion rechazada, error el transStatus de la consulta final de la operación no está definido\n| 9594 | SIS0594  | Operacion de autenticacion rechazada, CRes no indicado\n| 9595 | SIS0595  | El comercio indicado no tiene métodos de pago seguros permitidos en 3DSecure V2\n| 9596 | SIS0596  | Operacion de consulta de tarjeta rechazada,moneda errónea\n| 9597 | SIS0597  | Operacion de consulta de tarjeta rechazada,importe erróneo\n| 9598 | SIS0598  | Autenticación 3DSecure v2 errónea, y no se permite hacer fallback a 3DSecure v1\n| 9599 | SIS0599  | Error en el proceso de autenticación 3DSecure v2\n| 9600 | SIS0600  | Error en el proceso de autenticación 3DSecure v2 - Respuesta Areq N\n| 9601 | SIS0601  | Error en el proceso de autenticación 3DSecure v2 - Respuesta Areq R\n| 9602 | SIS0602  | Error en el proceso de autenticación 3DSecure v2 - Respuesta Areq U y el comercio no tiene método de pago U\n| 9603 | SIS0603  | Error en el parámetro DS_MERCHANT_DCC de DCC enviado en operacion H2H (REST y SOAP)\n| 9604 | SIS0604  | Error en los datos de DCC enviados en el parámetro DS_MERCHANT_DCC en operacion H2H (REST y SOAP)\n| 9605 | SIS0605  | Error en el parámetro DS_MERCHANT_MPIEXTERNAL enviado en operacion H2H (REST y SOAP)\n| 9606 | SIS0606  | Error en los datos de MPI enviados en el parámetro DS_MERCHANT_MPIEXTERNAL en operacion H2H (REST y SOAP)\n| 9607 | SIS0607  | Error del parámetro TXID de MPI enviado en el parámetro DS_MERCHANT_MPIEXTERNAL en operacion H2H (REST y SOAP) es erróneo\n| 9608 | SIS0608  | Error del parámetro CAVV de MPI enviado en el parámetro DS_MERCHANT_MPIEXTERNAL en operacion H2H (REST y SOAP) es erróneo\n| 9609 | SIS0609  | Error del parámetro ECI de MPI enviado en el parámetro DS_MERCHANT_MPIEXTERNAL en operacion H2H (REST y SOAP) es erróneo\n| 9610 | SIS0610  | Error del parámetro threeDSServerTransID de MPI enviado en el parámetro DS_MERCHANT_MPIEXTERNAL en operacion H2H (REST y SOAP) es erróneo\n| 9611 | SIS0611  | Error del parámetro dsTransID de MPI enviado en el parámetro DS_MERCHANT_MPIEXTERNAL en operacion H2H (REST y SOAP) es erróneo\n| 9612 | SIS0612  | Error del parámetro authenticacionValue de MPI enviado en el parámetro DS_MERCHANT_MPIEXTERNAL en operacion H2H (REST y SOAP) es erróneo\n| 9613 | SIS0613  | Error del parámetro protocolVersion de MPI enviado en el parámetro DS_MERCHANT_MPIEXTERNAL en operacion H2H (REST y SOAP) es erróneo\n| 9614 | SIS0614  | Error del parámetro Eci de MPI enviado en el parámetro DS_MERCHANT_MPIEXTERNAL en operacion H2H (REST y SOAP) es erróneo\n| 9615 | SIS0615  | Error en MPI Externo, marca de tarjeta no permitida en SIS para MPI Externo\n| 9616 | SIS0616  | Error del parámetro DS_MERCHANT_EXCEP_SCA tiene un valor erróneo\n| 9617 | SIS0617  | Error del parámetro DS_MERCHANT_EXCEP_SCA es de tipo MIT y no vienen datos de COF o de pago por referencia\n| 9618 | SIS0618  | Error la exención enviada no está permitida y el comercio no está preparado para autenticar\n| 9619 | SIS0619  | Se recibe orderReferenceId de Amazon y no está el método de pago configurado\n| 9620 | SIS0620  | Error la operación de DCC tiene asociado un markUp más alto del permitido, se borran los datos de DCC\n| 9621 | SIS0621  | El amazonOrderReferenceId no es válido\n| 9622 | SIS0622  | Error la operación original se hizo sin marca de Nuevo modelo DCC y el comercio está configurado como Nuevo Modelo DCC\n| 9623 | SIS0623  | Error la operación original se hizo con marca de Nuevo modelo DCC y el comercio no está configurado como Nuevo Modelo DCC\n| 9624 | SIS0624  | Error la operación original se hizo con marca de Nuevo modelo DCC pero su valor difiere del modelo configurado en el comercio\n| 9625 | SIS0625  | Error en la anulación del pago, porque ya existe una devolución asociada a ese pago\n| 9626 | SIS0626  | Error en la devolución del pago, ya existe una anulación de la operación que se desea devolver\n| 9627 | SIS0627  | El número de referencia o solicitud enviada por CRTM no válida.\n| 9628 | SIS0628  | Error la operación de viene con datos de 3DSecure y viene por la entrada SERMEPA\n| 9629 | SIS0629  | Error no existe la operación de confirmación separada sobre la que realizar la anulación\n| 9630 | SIS0630  | Error en la anulación de confirmación separada, ya existe una devolución asociada a la confirmación separada\n| 9631 | SIS0631  | Error en la anulación de confirmación separada, ya existe una anulación asociada a la confirmación separada\n| 9632 | SIS0632  | Error la confirmacion separada sobre la que se desea anular no está autorizada\n| 9633 | SIS0633  | La fecha de Anulación no puede superar en los días configurados a la confirmacion separada.\n| 9634 | SIS0634  | Error no existe la operación de pago sobre la que realizar la anulación\n| 9635 | SIS0635  | Error en la anulación del pago, ya existe una anulación asociada al pago\n| 9636 | SIS0636  | Error el pago que se desea anular no está autorizado\n| 9637 | SIS0637  | La fecha de Anulación no puede superar en los días configurados al pago.\n| 9638 | SIS0638  | Error existe más de una devolución que se quiere anular y no se ha especificado cual.\n| 9639 | SIS0639  | Error no existe la operación de devolución sobre la que realizar la anulación\n| 9640 | SIS0640  | Error la confirmacion separada sobre la que se desea anular no está autorizada o ya está anulada\n| 9641 | SIS0641  | La fecha de Anulación no puede superar en los días configurados a la devolución.\n| 9642 | SIS0642  | La fecha de la preautorización que se desea reemplazar no puede superar los 30 días de antigüedad\n| 9643 | SIS0643  | Error al obtener la personalización del comercio\n| 9644 | SIS0644  | Error en el proceso de autenticación 3DSecure v2 - Se envían datos de la entrada IniciaPetición a la entrada TrataPetición\n| 9650 | SIS0650  | Error, la MAC no es correcta en la mensajeria de pago de tributos\n| 9651 | SIS0651  | Error la exención exige SCA y el comercio no está preparado para autenticar\n| 9652 | SIS0652  | Error la exención y la configuración del comercio exigen no SCA y el comercio no está configurado para autorizar con dicha marca de tarjeta\n| 9653 | SIS0653  | Operacion de autenticacion rechazada, browserJavascriptEnabled no indicado\n| 9654 | SIS0654  | Error, se indican datos de 3RI en Inicia Petición y la versión que se envía en el trataPetición no es 2.2\n| 9655 | SIS0655  | Error, se indican un valor de Ds_Merchant_3RI_Ind no permitido\n| 9656 | SIS0656  | Error, se indican un valor Ds_Merchant_3RI_Ind diferentes en el Inicia Petición y en el trataPetición\n| 9657 | SIS0657  | Error, se indican datos de 3RI pero están incompletos\n| 9658 | SIS0658  | Error, el parámetro threeRITrasactionID es erróneo o no se encuentran datos de operación original\n| 9659 | SIS0659  | Error, los datos de FUC y Terminal obtenidos del threeRITrasactionID no corresponden al comercio que envía la operación\n| 9660 | SIS0660  | Error, se indican datos de 3RI-OTA para Master y el campo authenticationValue en el trataPetición es vacío\n| 9661 | SIS0661  | Error, se indican datos de 3RI-OTA para Master y el campo Eci en el trataPetición es vacío\n| 9662 | SIS0662  | Error, el comercio no está entre los permitidos para realizar confirmaciones parciales.\n| 9663 | SIS0663  | No existe datos de Inicia Petición que concuerden con los enviados por el comercio en el mensaje Trata Petición\n| 9664 | SIS0664  | No se envía el elemento Id Transaccion 3DS Server en el mensaje Trata Petición y dicho elemento existe en el mensaje Inicia Petición\n| 9665 | SIS0665  | La moneda indicada por el comercio en el mensaje Trata Petición no corresponde con la enviada en el mensaje Inicia Petición\n| 9666 | SIS0666  | El importe indicado por el comercio en el mensaje Trata Petición no corresponde con el enviado en el mensaje Inicia Petición\n| 9667 | SIS0667  | El tipo de operación indicado por el comercio en el mensaje Trata Petición no corresponde con el enviado en el mensaje Inicia Petición\n| 9668 | SIS0668  | La referencia indicada por el comercio en el mensaje Trata Petición no corresponde con la enviada en el mensaje Inicia Petición\n| 9669 | SIS0669  | El Id Oper Insite indicado por el comercio en el mensaje Trata Petición no corresponde con el enviado en el mensaje Inicia Petición\n| 9670 | SIS0670  | La tarjeta indicada por el comercio en el mensaje Trata Petición no corresponde con la enviada en el mensaje Inicia Petición\n| 9671 | SIS0671  | Denegación por TRA Lynx\n| 9672 | SIS0672  | Bizum. Fallo en la autenticación. Bloqueo tras tres intentos.\n| 9673 | SIS0673  | Bizum. Operación cancelada. El usuario no desea seguir.\n| 9674 | SIS0674  | Bizum. Abono rechazado por beneficiario.\n| 9675 | SIS0675  | Bizum. Cargo rechazado por ordenante.\n| 9676 | SIS0676  | Bizum. El procesador rechaza la operación.\n| 9677 | SIS0677  | Bizum. Saldo disponible insuficiente.\n| 9678 | SIS0678  | La versión de 3DSecure indicada en el Trata Petición es errónea o es superior a la devuelva en el inicia petición\n| 9680 | SIS0680  | Error en la autenticación EMV3DS y la marca no permite hacer fallback a 3dSecure 1.0\n| 9681 | SIS0681  | Error al insertar los datos de autenticación en una operación con MPI Externo\n| 9682 | SIS0682  | Error la operación es de tipo Consulta de TRA y el parámetro Ds_Merchant_TRA_Data es erróneo\n| 9683 | SIS0683  | Error la operación es de tipo Consulta de TRA Fase 1 y falta el parámetro Ds_Merchant_TRA_Type\n| 9684 | SIS0684  | Error la operación es de tipo Consulta de TRA Fase 1 y el parámetro Ds_Merchant_TRA_Type tiene un valor no permitido\n| 9685 | SIS0685  | Error la operación es de tipo Consulta de TRA Fase 1 y el perfil del comercio no le permite exención TRA\n| 9686 | SIS0686  | Error la operación es de tipo Consulta de TRA Fase 1 y la confifguración del comercio no le permite usar el TRA de Redsys\n| 9687 | SIS0687  | Error la operación es de tipo Consulta de TRA Fase 2 y falta el parámetro Ds_Merchant_TRA_Result o tiene un valor no permitido\n| 9688 | SIS0688  | Error la operación es de tipo Consulta de TRA Fase 2 y falta el parámetro Ds_Merchant_TRA_Method o tiene un valor erróneo\n| 9689 | SIS0689  | Error la operación es de tipo Consulta de TRA Fase 2, no existe una operación concreta de Fase 1\n| 9690 | SIS0690  | Error la operación es de tipo Consulta de TRA Fase 2 y obtenemos un error en la respuesta de Lynx\n| 9691 | SIS0691  | Se envían datos SamsungPay y el comercio no tiene dado de alta el método de pago SamsungPay\n| 9692 | SIS0692  | Se envía petición con firma de PSP y el comercio no tiene asociado un PSP.\n| 9693 | SIS0693  | No se han obtenido correctamente los datos enviados por SamsungPay.\n| 9694 | SIS0694  | No ha podido realizarse el pago con SamsungPay\n| 9700 | SIS0700  | PayPal ha devuelto un KO\n| 9754 | SIS0754  | Autenticación en 3DSecure V1 Obsoleta\n| 9802 | SIS0802  | Envia un valor incorrecto en el parémtro DS_MERCHANT_COF_TYPE\n| 9812 | SIS0812  | Error obteniendo los parametros XPAYDECODEDDATA\n| 9813 | SIS0813  | Error obteniendo los parametros del parámetro Ds_Merchant_BrClientData\n| 9814 | SIS0814  | Error el tipo de operación enviado en el segundo trataPetición no coincide con el de la operación\n| 9815 | SIS0815  | Error, ya existe una operación de Paygold con los mismos datos en proceso de autorizar o ya autorizada\n| 9816 | SIS0816  | Error en operación con XPAY. Operación con token y sin criptograma\n| 9817 | SIS0817  | Operacion aunteticada por 3RI no se puede procesar por estado incorrecto\n| 9818 | SIS0818  | Operacion autenticada por 3RI no se puede procesar por moneda incorrecta\n| 9819 | SIS0819  | Operacion autenticada por 3RI no se puede procesar por importe incorrecto\n| 9820 | SIS0820  | Operacion autenticada por 3RI no se puede procesar por estar expirada\n| 9821 | SIS0821  | Operacion 3RI no encontrada, ID_OPER_3RI incorrecto\n| 9822 | SIS0822  | Importe incorrecto en datos adicionales de autenticacion 3RI. El importe total acumulado supera el importe de la autenticacion\n| 9823 | SIS0823  | Operacion autenticada por 3RI no se puede procesar, la marca de tarjeta no tiene su método de pago asociado\n| 9824 | SIS0824  | Error registrando datos 3RI\n| 9836 | SIS0836  | Error, no existe operación original de paygold con los datos proporcionados\n| 9837 | SIS0837  | Error, la fecha indicada en el parámetro Ds_Merchant_P2f_ExpiryDate no tiene un formato correcto o está vacía\n| 9843 | SIS0843  | Error en los datos Ds_Merchant_TokenData.\n| 9844 | SIS0844  | El perfil del comercio no está configurado para aceptar devoluciones de tributos.\n| 9850 |    9850  | Error en operación realizada con Amazon Pay\n| 9860 |    9860  | Error en operación realizada con Amazon Pay. Se puede reintentar la operación\n| 9899 |    9899  | No están correctamente firmados los datos que nos envían en el Ds_Merchant_Data.\n| 9900 |    9900  | SafetyPay ha devuelto un KO\n| 9909 |    9909  | Error interno\n| 9912 |    9912  | Emisor no disponible\n| 9913 |    9913  | Excepción en el envío SOAP de la notificacion\n| 9914 |    9914  | Respuesta KO en el envío SOAP de la notificacion\n| 9915 | SIS9915  | Cancelado por el titular\n| 9928 |    9928  | El titular ha cancelado la preautorización\n| 9929 |    9929  | El titular ha cancelado la operación\n| 9930 |    9930  | La transferencia está pendiente\n| 9931 |    9931  | Consulte con su entidad\n| 9932 |    9932  | Denegada por Fraude (LINX)\n| 9933 |    9933  | Denegada por Fraude (LINX)\n| 9934 |    9934  | Denegada ( Consulte con su entidad)\n| 9935 |    9935  | Denegada ( Consulte con su entidad)\n| 9966 |    9966  | BIZUM ha devuelto un KO en la autorización\n| 9992 |    9992  | Solicitud de PAE\n| 9994 |    9994  | No ha seleccionado ninguna tarjeta de la cartera.\n| 9995 |    9995  | Recarga de prepago denegada\n| 9996 |    9996  | No permite la recarga de tarjeta prepago\n| 9997 |    9997  | Con una misma tarjeta hay varios pagos en \"vuelo\" en el momento que se finaliza uno el resto se deniegan con este código. Esta restricción se realiza por seguridad.\n| 9998 |    9998  | Operación en proceso de solicitud de datos de tarjeta\n| 9999 |    9999  | Operación que ha sido redirigida al emisor a autenticar\n|  101 |     101  | Tarjeta caducada\n|  106 |     106  | Tarjeta bloqueada, exceso de pin erróneo\n|  129 |     129  | Código de seguridad CVV incorrecto.\n|  180 |     180  | Denegación emisor\n|  184 |     184  | el cliente de la operación no se ha autenticado\n|  190 |     190  | Denegación emisor\n|  904 |     904  | Problema con la configuración de su comercio. Dirigirse a la entidad.\n|      | XML0000  | Errores en el proceso del XML-String recibido\n|      | XML0001  | Error en la generación del DOM a partir del XML-String recibido y la DTD definida\n|      | XML0002  | No existe el elemento \"Message\" en el XML-String recibido\n|      | XML0003  | El tipo de \"Message\" en el XML-String recibido tiene un valor desconcido o inválido en la petición\n|      | XML0004  | No existe el elemento \"Ds_MerchantCode\" en el XML-String recibido\n|      | XML0005  | El elemento \"Ds_MerchantCode\" viene vacío en el XML-String recibido\n|      | XML0006  | El elemento \"Ds_MerchantCode\" tiene una longitud incorrecta en el XML-String recibido\n|      | XML0007  | El elemento \"Ds_MerchantCode\" no tiene formato numérico en el XML-String recibido\n|      | XML0008  | No existe el elemento \"Ds_Terminal\" en el XML-String recibido\n|      | XML0009  | El elemento \"Ds_Terminal\" viene vacío en el XML-String recibido\n|      | XML0010  | El elemento \"Ds_Terminal\" tiene una longitud incorrecta en el XML-String recibido\n|      | XML0011  | El elemento \"Ds_Terminal\" no tiene formato numérico en el XML-String recibido\n|      | XML0012  | No existe el elemento \"Ds_Order\" en el XML-String recibido\n|      | XML0013  | El elemento \"Ds_Order\" viene vacío en el XML-String recibido\n|      | XML0014  | El elemento \"Ds_Order\" tiene una longitud incorrecta en el XML-String recibido\n|      | XML0015  | El elemento \"Ds_Order\" no tiene sus 4 primeras posiciones numéricas en el XML-String recibido\n|      | XML0016  | No existe el elemento \"Ds_TransactionType\" en el XML-String recibido\n|      | XML0017  | El elemento \"Ds_TransactionType\" viene vacío en el XML-String recibido\n|      | XML0018  | El elemento \"Ds_TransactionType\" tiene una longitud incorrecta en el XML-String recibido\n|      | XML0019  | El elemento \"Ds_TransactionType\" no tiene formato numérico en el XML-String recibido\n|      | XML0020  | El elemento \"Ds_TransactionType\" tiene un valor desconcido o inválido en un mensaje Transaction\n|      | XML0021  | No existe el elemento \"Signature\" en el XML-String recibido\n|      | XML0022  | El elemento \"Signature\" viene vacío en el XML-String recibido\n|      | XML0023  | La firma no es correcta\n|      | XML0024  | No existen operaciones para los datos solicitados\n|      | XML0025  | El XML de respuesta está mal formado\n|      | XML0026  | No existe el elemento \"Ds_fecha_inicio\" en el XML-String recibido\n|      | XML0027  | No existe el elemento \"Ds_fecha_fin\" en el XML-String recibido\n|      | XML0028  | El comercio-terminal está dado de baja\n|      | XML0029  | El elemento \"SignatureVersion\" viene vacío en el XML-String recibido\n|      | XML0030  | El elemento \"SignatureVersion\" viene con un valor erróneo en el XML-String recibido\n|      | XML0031  | El elemento \"Entrada\" viene con un valor no permitido en el XML-String recibido\n|      | XML0032  | El elemento \"Autorizada\" viene con un valor no permitido en el XML-String recibido\n|      | XML0033  | El elemento \"ImporteMayor\" viene con un valor no permitido en el XML-String recibido\n|      | XML0034  | El elemento \"ImporteMenor\" viene con un valor no permitido en el XML-String recibido\n|      | XML0035  | El elemento \"Autenticada\" viene con un valor no permitido en el XML-String recibido\n|      | XML0036  | El elemento \"DCC\" viene con un valor no permitido en el XML-String recibido\n|      | XML0037  | El elemento \"Paymethod\" viene con un valor no permitido en el XML-String recibido\n|      | XML0038  | Error el elemento \"Ds_fecha_inicio\" es anterior a un año\n|      | XML0039  | Error la difernecia entre \"Ds_fecha_inicio\" y \"Ds_fecha_fin\" excede los 15 días\n|      | XML0040  | Error la \"Ds_fecha_fin\" es anterior a \"Ds_fecha_inicio\"\n|      | XML0041  | Error el comercio no puede utilizar la consulta SOAP\n\n## Códigos Ds_Response\n\nEn el caso que se realice la operación correctamente, el resultado de ésta será el resultado del parámetro \"Ds_Response\":\n\n|   Código    | Significado |\n|-------------|-------------|\n| 0000 a 0099 | Transacción autorizada para pagos y preautorizaciones\n| 0900        | Transacción autorizada para devoluciones y confirmaciones\n| 0400        | Transacción autorizada para anulaciones\n| 0101        | Tarjeta caducada\n| 0102        | Tarjeta en excepción transitoria o bajo sospecha de fraude\n| 0106        | Intentos de PIN excedidos\n| 0125        | Tarjeta no efectiva\n| 0129        | Código de seguridad (CVV2/CVC2) incorrecto\n|  172        | Denegada, no repetir.\n|  173        | Denegada, no repetir sin actualizar datos de tarjeta.\n|  174        | Denegada, no repetir antes de 72 horas.\n| 0180        | Tarjeta ajena al servicio\n| 0184        | Error en la autenticación del titular\n| 0190        | Denegación del emisor sin especificar motivo\n| 0191        | Fecha de caducidad errónea\n| 0195        | Requiere autenticación SCA\n| 0202        | Tarjeta en excepción transitoria o bajo sospecha de fraude con retirada de tarjeta\n| 0904        | Comercio no registrado en FUC\n| 0909        | Error de sistema\n| 0913        | Pedido repetido\n| 0944        | Sesión Incorrecta\n| 0950        | Operación de devolución no permitida\n| 9912/0912   | Emisor no disponible\n| 9064        | Número de posiciones de la tarjeta incorrecto\n| 9078        | Tipo de operación no permitida para esa tarjeta\n| 9093        | Tarjeta no existente\n| 9094        | Rechazo servidores internacionales\n| 9104        | Comercio con \"titular seguro\" y titular sin clave de compra segura\n| 9218        | El comercio no permite op. seguras por entrada /operaciones\n| 9253        | Tarjeta no cumple el check-digit\n| 9256        | El comercio no puede realizar preautorizaciones\n| 9257        | Esta tarjeta no permite operativa de preautorizaciones\n| 9261        | Operación detenida por superar el control de restricciones en la entrada al SIS\n| 9915        | A petición del usuario se ha cancelado el pago\n| 9997        | Se está procesando otra transacción en SIS con la misma tarjeta\n| 9998        | Operación en proceso de solicitud de datos  de tarjeta\n| 9999        | Operación que ha sido redirigida al emisor a autenticar"
  },
  {
    "path": "doc/Parámetros de entrada.html",
    "content": "\n\n\n\n\t\t\t\t\t<!-- \t*****************************\n        *****************************\n \t       TABLA PARÁMETROS ENTRADA\n \t    *****************************\n \t    *****************************  -->\n\n\t\t\t\t\t<div id=\"entradaTable_wrapper\" class=\"dataTables_wrapper no-footer active\" style=\"height: 400px;\"><table id=\"entradaTable\" title=\"Parámetros de entrada\" class=\"table table-striped errores-sis dataTable no-footer fix-head\" role=\"grid\">\n\t\t\t\t\t\t<thead id=\"tableHeader\">\n\t\t\t\t\t\t\t<tr id=\"pp\" role=\"row\"><th class=\"fix sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">\n\t\t\t\t\t\t\t\t\tDATO</th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\"><input id=\"entradaInput\" class=\"errores filter\" data-column-index=\"1\" style=\"color: #555;\" value=\"\" placeholder=\"PARÁMETRO DE ENTRADA\" type=\"text\"></th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">Long. / Tipo</th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">TIPO OPERACIÓN <br> <input id=\"entradaTTInput\" class=\"errores filter\" data-column-index=\"3\" style=\"color: #555;\" value=\"\" placeholder=\"DS_MERCHANT_TRANSACTIONTYPE\" type=\"text\"></th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">REDIRECCION <br> <select id=\"realizarInput\" class=\"errores filter\" data-column-index=\"4\" style=\"color: #555;\" value=\"\">\n\t\t\t\t\t\t\t\t\t\t<option value=\"\"></option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"OBLIGATORIO\">OBLIGATORIO</option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"OPCIONAL\">OPCIONAL</option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"CONDICIONAL\">CONDICIONAL</option>\n\t\t\t\t\t\t\t\t</select>\n\t\t\t\t\t\t\t\t</th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">REST/SOAP <br> <select id=\"soapInput\" class=\"errores filter\" data-column-index=\"5\" style=\"color: #555;\" value=\"\">\n\t\t\t\t\t\t\t\t\t\t<option value=\"\"></option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"OBLIGATORIO\">OBLIGATORIO</option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"OPCIONAL\">OPCIONAL</option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"CONDICIONAL\">CONDICIONAL</option>\n\t\t\t\t\t\t\t\t</select>\n\t\t\t\t\t\t\t\t</th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">COMENTARIOS</th></tr>\n\t\t\t\t\t\t</thead>\n\t\t\t\t\t\t<tbody>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\t\t\t\t\t\t<tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td class=\"col\">Importe</td>\n\t\t\t\t\t\t\t\t<td>DS_MERCHANT_AMOUNT</td>\n\t\t\t\t\t\t\t\t<td>12/N</td>\n\t\t\t\t\t\t\t\t<td>0,1,2,3,7,8,9,11,15,17,34,37,45,46,47,48</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>Las últimas posiciones hacen referencia a los decimales\n\t\t\t\t\t\t\t\t\tde la moneda.Ejemplo: En el caso del EURO 43,45 Euros habría\n\t\t\t\t\t\t\t\t\tque indicar 4345.</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td class=\"col\">Código de Autorización</td>\n\t\t\t\t\t\t\t\t<td>DS_MERCHANT_AUTHORISATIONCODE</td>\n\t\t\t\t\t\t\t\t<td>6/N</td>\n\t\t\t\t\t\t\t\t<td>3</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>Representa el código de autorización necesario para\n\t\t\t\t\t\t\t\t\tidentificar de manera inequivoca la transacción original sobre\n\t\t\t\t\t\t\t\t\tla que se desea realizar la devolución. Este parámetro tiene\n\t\t\t\t\t\t\t\t\tsentido en aquellos comercios que permiten repetir el número de\n\t\t\t\t\t\t\t\t\tpedido.</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td class=\"col\">Indicador de transacción COF</td>\n\t\t\t\t\t\t\t\t<td>DS_MERCHANT_COF_INI</td>\n\t\t\t\t\t\t\t\t<td>1/AN</td>\n\t\t\t\t\t\t\t\t<td>0,1,7,15</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>Obligatorio para operativa COF Visa y MC. Valores\n\t\t\t\t\t\t\t\t\tposibles:\n\t\t\t\t\t\t\t\t\t<ul class=\"nowrap\">\n\t\t\t\t\t\t\t\t\t\t<li>\"S\": Sí es primera transacción COF (almacenar\n\t\t\t\t\t\t\t\t\t\t\tcredenciales).</li>\n\t\t\t\t\t\t\t\t\t\t<li>\"N\": No es primera transacción COF.</li>\n\t\t\t\t\t\t\t\t\t\t<li>Cualquier otro valor no se tendrá en cuenta y la\n\t\t\t\t\t\t\t\t\t\t\toperación no se procesará como COF.</li>\n\t\t\t\t\t\t\t\t\t</ul> <!-- \t\t\t\t\t\t\t\t\tDocumentación: <a href=\"documents\\Especificaciones-COF-v1.2.pdf\" -->\n\t\t\t\t\t\t\t\t\t<!-- \t\t\t\t\t\t\t\t\t\ttarget=\"_blank\" rel=\"noopener\">Especificaciones-COF-v1.2.pdf</a></td> -->\n\t\t\t\t\t\t\t</td></tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td class=\"col\">Identificador de transacción COF</td>\n\t\t\t\t\t\t\t\t<td>DS_MERCHANT_COF_TXNID</td>\n\t\t\t\t\t\t\t\t<td>15/AN</td>\n\t\t\t\t\t\t\t\t<td>0,1,7</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>Opcional. Este identificador es devuelto en la\n\t\t\t\t\t\t\t\t\trespuesta de la primera operación COF (almacenamiento de\n\t\t\t\t\t\t\t\t\tcredenciales), y deberá enviarse en transacciones sucesivas\n\t\t\t\t\t\t\t\t\trealizadas con las credenciales que generaron este mismo\n\t\t\t\t\t\t\t\t\tId_txn.<br>\n\t\t\t\t\t\t\t\t<br> <!-- \t\t\t\t\t\t\t\tDocumentación: <a href=\"documents\\Especificaciones-COF-v1.2.pdf\" -->\n\t\t\t\t\t\t\t\t\t<!-- \t\t\t\t\t\t\t\t\t\ttarget=\"_blank\" rel=\"noopener\">Especificaciones-COF-v1.2.pdf</a></td> -->\n\t\t\t\t\t\t\t</td></tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td class=\"col\">Tipo de transacción COF</td>\n\t\t\t\t\t\t\t\t<td>DS_MERCHANT_COF_TYPE</td>\n\t\t\t\t\t\t\t\t<td>1 / AN</td>\n\t\t\t\t\t\t\t\t<td>0,1,7,15</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>Opcional para COF Visa y MC. Valores posibles:\n\t\t\t\t\t\t\t\t\t<ul class=\"nowrap\">\n\t\t\t\t\t\t\t\t\t\t<li>\"I\": Installments.</li>\n\t\t\t\t\t\t\t\t\t\t<li>\"R\": Recurring.</li>\n\t\t\t\t\t\t\t\t\t\t<li>\"H\": Reauthorization.</li>\n\t\t\t\t\t\t\t\t\t\t<li>\"E\": Resubmission.</li>\n\t\t\t\t\t\t\t\t\t\t<li>\"D\": Delayed.</li>\n\t\t\t\t\t\t\t\t\t\t<li>\"M\": Incremental.</li>\n\t\t\t\t\t\t\t\t\t\t<li>\"N\": No Show.</li>\n\t\t\t\t\t\t\t\t\t\t<li>\"C\": Otras.</li>\n\t\t\t\t\t\t\t\t\t</ul> <!-- \t\t\t\t\t\t\t\t\tDocumentación: <a href=\"documents\\Especificaciones-COF-v1.2.pdf\" -->\n\t\t\t\t\t\t\t\t\t<!-- \t\t\t\t\t\t\t\t\t\ttarget=\"_blank\" rel=\"noopener\">Especificaciones-COF-v1.2.pdf</a></td> -->\n\t\t\t\t\t\t\t</td></tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td class=\"col\">Idioma del titular</td>\n\t\t\t\t\t\t\t\t<td>DS_MERCHANT_CONSUMERLANGUAGE</td>\n\t\t\t\t\t\t\t\t<td>3/N.</td>\n\t\t\t\t\t\t\t\t<td>0,1,2,3,7,8,9,15,17,34,37</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>&nbsp;</td>\n\t\t\t\t\t\t\t\t<td>Los valores posibles se incluyen en la <a class=\"table-link\" table-target=\"idiomasTable\">tabla de\n\t\t\t\t\t\t\t\t\tidiomas</a></td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td class=\"col\">Moneda</td>\n\t\t\t\t\t\t\t\t<td>DS_MERCHANT_CURRENCY</td>\n\t\t\t\t\t\t\t\t<td>3/N</td>\n\t\t\t\t\t\t\t\t<td>0,1,2,3,7,8,9,11,15,17,34,37,45,46,47,48</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>Se debe enviar el código numérico de la moneda según el\n\t\t\t\t\t\t\t\t\tISO-4217, ver <a class=\"table-link\" style=\"color: #dc7c26;\" table-target=\"monedasTable\">tabla\n\t\t\t\t\t\t\t\t\tde monedas</a>.\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td class=\"col\">CVV2</td>\n\t\t\t\t\t\t\t\t<td>DS_MERCHANT_CVV2</td>\n\t\t\t\t\t\t\t\t<td>3-4/N</td>\n\t\t\t\t\t\t\t\t<td>0,1,7,17,34,37</td>\n\t\t\t\t\t\t\t\t<td>CONDICIONAL</td>\n\t\t\t\t\t\t\t\t<td><a data-toggle=\"popover\" data-placement=\"top\" data-content=\"Opcional si se envía el parámetro DS_MERCHANT_PAN y en\n\t\t\t\t\t\t\t\t\t\t\t\tfuncion de la configuración del comercio.\" data-original-title=\"\" title=\"\">CONDICIONAL</a></td>\n\t\t\t\t\t\t\t\t<td>Código CVV2 de la tarjeta.</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td class=\"col\">Indicador de pago sin autenticación</td>\n\t\t\t\t\t\t\t\t<td>DS_MERCHANT_DIRECTPAYMENT</td>\n\t\t\t\t\t\t\t\t<td>4/N</td>\n\t\t\t\t\t\t\t\t<td>0,1,7,15,17,37</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>Valores posibles:\n\t\t\t\t\t\t\t\t\t<ul role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t\t\t<li>\"true\": identifica la intención de realizar la\n\t\t\t\t\t\t\t\t\t\t\toperación sin autenticación.</li>\n\t\t\t\t\t\t\t\t\t\t<li>\"moto\": identifica la operación como pago MOTO.</li>\n\t\t\t\t\t\t\t\t\t</ul> <!-- \t\t\t\t\t\t\t\t\tDocumentación: <a href=\"documents\\TPV-Virtual-Pago-MOTO.pdf\" -->\n\t\t\t\t\t\t\t\t\t<!-- \t\t\t\t\t\t\t\t\t\ttarget=\"_blank\" rel=\"noopener\">TPV-Virtual-Pago-MOTO.pdf</a></td> -->\n\t\t\t\t\t\t\t</td></tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td class=\"col\">JSON con la información de la autenticación</td>\n\t\t\t\t\t\t\t\t<td>DS_MERCHANT_EMV3DS</td>\n\t\t\t\t\t\t\t\t<td>Variable/JSON Object</td>\n\t\t\t\t\t\t\t\t<td>0,1,7,17</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>Este campo contiene toda la información necesaria para\n\t\t\t\t\t\t\t\t\tautenticación EMV3DS (V1 o V2).\n\t\t\t\t\t\t\t\t\t <br><br> <b>***Con el fin de mejorar la experiencia del usuario en\n\t\t\t\t\t\t\t\t\t el proceso de autenticación, se recomienda añadir en la petición de\n\t\t\t\t\t\t\t\t\t pago los siguientes parámetros definidos en la versión EMV 3DS v2 (Email,\n\t\t\t\t\t\t\t\t\t homePhone, shipAddrLine1 y dentro de acctInfo: chAccChange, chAccDate y\n\t\t\t\t\t\t\t\t\t txnActivityYear), que aportan datos adicionales del titular de la tarjeta\n\t\t\t\t\t\t\t\t\t y del dispositivo que se está utilizando </b>.<br><br>\n\t\t\t\t\t\t\t\t<a class=\"table-link\" style=\"color: #dc7c26;\" table-target=\"dsemv3dsTable\">Ver tabla DS_MERCHANT_EMV3DS</a>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td class=\"col\">Caducidad</td>\n\t\t\t\t\t\t\t\t<td>DS_MERCHANT_EXPIRYDATE</td>\n\t\t\t\t\t\t\t\t<td>4/N</td>\n\t\t\t\t\t\t\t\t<td>0,1,7,17,34,37</td>\n\t\t\t\t\t\t\t\t<td>CONDICIONAL</td>\n\t\t\t\t\t\t\t\t<td><a data-toggle=\"popover\" data-placement=\"top\" data-content=\"Obligatorio si se envía el parámetro\n\t\t\t\t\t\t\t\t\t\t\t\tDS_MERCHANT_PAN.\" data-original-title=\"\" title=\"\">CONDICIONAL</a></td>\n\t\t\t\t\t\t\t\t<td>Caducidad de la tarjeta. Su formato es AAMM, siendo AA\n\t\t\t\t\t\t\t\t\tlos dos últimos dígitos del año y MM los dos dígitos del mes.</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td class=\"col\">Código de grupo</td>\n\t\t\t\t\t\t\t\t<td>DS_MERCHANT_GROUP</td>\n\t\t\t\t\t\t\t\t<td>9/N</td>\n\t\t\t\t\t\t\t\t<td>0,1,7,15,17,37</td>\n\t\t\t\t\t\t\t\t<td>CONDICIONAL</td>\n\t\t\t\t\t\t\t\t<td><a data-toggle=\"popover\" data-placement=\"top\" data-content=\"Opcional si se envía el parámetro\n\t\t\t\t\t\t\t\t\t\t\t\tDS_MERCHANT_IDENTIFIER.\" data-original-title=\"\" title=\"\">CONDICIONAL</a>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td>Identificador del código de grupo asociado a la\n\t\t\t\t\t\t\t\t\treferencia <!-- \t\t\t\t\t\t\t\t\tDocumentación: <a href=\"documents\\TPV-Virtual-Pago-por-referencia.pdf\" -->\n\t\t\t\t\t\t\t\t\t<!-- \t\t\t\t\t\t\t\t\t\ttarget=\"_blank\" rel=\"noopener\">TPV-Virtual-Pago-por-referencia.pdf</a> -->\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td class=\"col\">Referencia</td>\n\t\t\t\t\t\t\t\t<td>DS_MERCHANT_IDENTIFIER</td>\n\t\t\t\t\t\t\t\t<td>40/N</td>\n\t\t\t\t\t\t\t\t<td>0,1,7,15,17,38</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td><a data-toggle=\"popover\" data-placement=\"top\" data-content=\"Obligatorio si se genera o utiliza una referencia\" data-original-title=\"\" title=\"\">OBLIGATORIO</a></td>\n\t\t\t\t\t\t\t\t<td>Este parámetro indica la referencia de la tarjeta a\n\t\t\t\t\t\t\t\t\tutilizar, o la solicitud de generar una referencia.<br> Para\n\t\t\t\t\t\t\t\t\tgenerar una nueva referencia enviar \"REQUIRED\" en el caso de\n\t\t\t\t\t\t\t\t\tREST/SOAP el parámetro DS_MERCHANT_PAN es Obligatorio. <!-- \t\t\t\t\t\t\t\t\tDocumentación: <a href=\"documents\\TPV-Virtual-Pago-por-referencia.pdf\" -->\n\t\t\t\t\t\t\t\t\t<!-- \t\t\t\t\t\t\t\t\t\ttarget=\"_blank\" rel=\"noopener\">TPV-Virtual-Pago-por-referencia.pdf</a> -->\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td class=\"col\">Identificador de la operación de INSITE</td>\n\t\t\t\t\t\t\t\t<td>DS_MERCHANT_IDOPER</td>\n\t\t\t\t\t\t\t\t<td>40/A-N</td>\n\t\t\t\t\t\t\t\t<td>0,1,7,17,37</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>Identificador de la operación de INSITE. <!-- \t\t\t\t\t\t\t\t\tDocumentación: <a href=\"documents\\TPV-Virtual-Integración-inSite-V2.1.pdf\" -->\n\t\t\t\t\t\t\t\t\t<!-- \t\t\t\t\t\t\t\t\t\ttarget=\"_blank\" rel=\"noopener\">TPV-Virtual-Integración-inSite-V2.1.pdf</a> -->\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td class=\"col\">Identificación de comercio: código FUC</td>\n\t\t\t\t\t\t\t\t<td>DS_MERCHANT_MERCHANTCODE</td>\n\t\t\t\t\t\t\t\t<td>9/N.</td>\n\t\t\t\t\t\t\t\t<td>0,1,2,3,7,8,9,11,15,17,34,37,45,46,47,48</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>Código FUC asignado al comercio.(Nº de comercio)</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td class=\"col\">Datos del comercio</td>\n\t\t\t\t\t\t\t\t<td>DS_MERCHANT_MERCHANTDATA</td>\n\t\t\t\t\t\t\t\t<td>1024 /A-N</td>\n\t\t\t\t\t\t\t\t<td>0,1,2,3,7,8,9,15,17,34,37</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>Cadena de datos que no procesará el TPV-Virtual y se\n\t\t\t\t\t\t\t\t\tdevolverán de la misma forma en la respuesta</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td class=\"col\">Identificación de comercio:</td>\n\t\t\t\t\t\t\t\t<td>DS_MERCHANT_MERCHANTNAME</td>\n\t\t\t\t\t\t\t\t<td>25/A-N</td>\n\t\t\t\t\t\t\t\t<td>0,1,2,3,7,8,9,15,17,34,37</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>Para la entrada de realizar pago esta información se\n\t\t\t\t\t\t\t\t\tmostrará al titular en la pantallas con las que este\n\t\t\t\t\t\t\t\t\tinteraciona. En caso de no informarse aparecerá el nombre\n\t\t\t\t\t\t\t\t\tconfigurado en la administración del TPV- Virtual.</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td class=\"col\">URL del comercio para la notificación\n\t\t\t\t\t\t\t\t\t\"on-line\"</td>\n\t\t\t\t\t\t\t\t<td>DS_MERCHANT_MERCHANTURL</td>\n\t\t\t\t\t\t\t\t<td>250/A-N</td>\n\t\t\t\t\t\t\t\t<td>0,1,2,3,7,8,9,15,17,34,37</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>&nbsp;</td>\n\t\t\t\t\t\t\t\t<td>Si el comercio tiene configurada notificación online\n\t\t\t\t\t\t\t\t\t\"HTTP\" en el módulo de administración, se enviará una petición\n\t\t\t\t\t\t\t\t\tpost con el resultado de la transacción a la URL especificada.</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td class=\"col\">Número de Pedido</td>\n\t\t\t\t\t\t\t\t<td>DS_MERCHANT_ORDER</td>\n\t\t\t\t\t\t\t\t<td>12 / A-N.</td>\n\t\t\t\t\t\t\t\t<td>0,1,2,3,7,8,9,11,15,17,34,37,45,46,47,48</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>Se recomienda, por posibles problemas en el proceso de\n\t\t\t\t\t\t\t\t\tliquidación, que los 4 primeros dígitos sean numéricos. Para\n\t\t\t\t\t\t\t\t\tlos dígitos restantes solo utilizar los siguientes caracteres\n\t\t\t\t\t\t\t\t\tASCII:\n\t\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t\t<li>Del 48 = 0 al 57 = 9</li>\n\t\t\t\t\t\t\t\t\t\t<li>Del 65 = A al 90 = Z</li>\n\t\t\t\t\t\t\t\t\t\t<li>Del 97 = a al 122 = z</li>\n\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td class=\"col\">Tarjeta</td>\n\t\t\t\t\t\t\t\t<td>DS_MERCHANT_PAN</td>\n\t\t\t\t\t\t\t\t<td>19/N</td>\n\t\t\t\t\t\t\t\t<td>0,1,7,17,34,37</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td><a data-toggle=\"popover\" data-placement=\"top\" data-content=\"Obligatorio si no se envía el parámetro\n\t\t\t\t\t\t\t\t\t\t\t\tDS_MERCHANT_IDENTIFIER o\n\t\t\t\t\t\t\t\t\t\t\t\tel valor de DS_MERCHANT_IDENTIFIER es 'REQUIRED'.\" data-original-title=\"\" title=\"\">CONDICIONAL</a></td>\n\t\t\t\t\t\t\t\t<td>Tarjeta. Su longitud depende del tipo de tarjeta.</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td class=\"col\">Forma de pago aplicable</td>\n\t\t\t\t\t\t\t\t<td>DS_MERCHANT_PAYMETHODS</td>\n\t\t\t\t\t\t\t\t<td>1/A</td>\n\t\t\t\t\t\t\t\t<td>Ver tabla <a class=\"table-link\" style=\"color: #dc7c26;\" table-target=\"dspaymethodsTable\">DS_MERCHANT_PAYMETHODS</a></td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>&nbsp;</td>\n\t\t\t\t\t\t\t\t<td>Ver tabla <a class=\"table-link\" style=\"color: #dc7c26;\" table-target=\"dspaymethodsTable\">DS_MERCHANT_PAYMETHODS</a></td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td class=\"col\">Descripción del producto</td>\n\t\t\t\t\t\t\t\t<td>DS_MERCHANT_PRODUCTDESCRIPTION</td>\n\t\t\t\t\t\t\t\t<td>125 / A-N</td>\n\t\t\t\t\t\t\t\t<td>0,1,2,3,7,8,9,15,17,34,37</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>La longitud máxima es 125. Para la entrada de realizar\n\t\t\t\t\t\t\t\t\tpago esta información se mostrará al titular en la pantallas\n\t\t\t\t\t\t\t\t\tcon las que este interaciona.</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td class=\"col\">Código del tributo a pagar</td>\n\t\t\t\t\t\t\t\t<td>DS_MERCHANT_TAX_REFERENCE</td>\n\t\t\t\t\t\t\t\t<td>100/N</td>\n\t\t\t\t\t\t\t\t<td>0</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>Operativa especial de pago de tributos. Código de\n\t\t\t\t\t\t\t\t\tbarras del tributo en operativa especial de pago de tributos.\n\t\t\t\t\t\t\t\t\tSe requiere activación por parte de la entidad.</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td class=\"col\">Número de terminal</td>\n\t\t\t\t\t\t\t\t<td>DS_MERCHANT_TERMINAL</td>\n\t\t\t\t\t\t\t\t<td>3/N.</td>\n\t\t\t\t\t\t\t\t<td>0,1,2,3,7,8,9,11,15,17,34,37,45,46,47,48</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>Número de terminal que le asignará su banco.</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td class=\"col\">Nombre y apellidos del titular</td>\n\t\t\t\t\t\t\t\t<td>DS_MERCHANT_TITULAR</td>\n\t\t\t\t\t\t\t\t<td>60/A-N</td>\n\t\t\t\t\t\t\t\t<td>0,1,2,3,7,8,9,15,17,34,37</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>Su longitud máxima es de 60 caracteres. Para la entrada\n\t\t\t\t\t\t\t\t\tde realizar pago esta información se mostrará al titular en la\n\t\t\t\t\t\t\t\t\tpantallas con las que este interaciona. En la pantalla de pago,\n\t\t\t\t\t\t\t\t\tel titular podrá modificar este valor.</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td class=\"col\">Fecha de la operación</td>\n\t\t\t\t\t\t\t\t<td>DS_MERCHANT_TRANSACTIONDATE</td>\n\t\t\t\t\t\t\t\t<td>10 / A-N</td>\n\t\t\t\t\t\t\t\t<td>3</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>Formato yyyy-mm-dd. Representa la fecha de la operación\n\t\t\t\t\t\t\t\t\tsobre que la se realiza la devolución, este campo es necesario\n\t\t\t\t\t\t\t\t\tpara identificar de manera inequivoca la transacción original\n\t\t\t\t\t\t\t\t\tsobre la que se desea realizar la devolución. Este parámetro\n\t\t\t\t\t\t\t\t\ttiene sentido en aquellos comercios que permiten repetir el\n\t\t\t\t\t\t\t\t\tnúmero de pedido.</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td class=\"col\">Tipo de transacción</td>\n\t\t\t\t\t\t\t\t<td>DS_MERCHANT_TRANSACTIONTYPE</td>\n\t\t\t\t\t\t\t\t<td>1 / Num</td>\n\t\t\t\t\t\t\t\t<td>0,1,2,3,7,8,9,11,15,17,34,37,45,46,47,48</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>Tipo de operación.Ver tabla <a class=\"table-link\" style=\"color: #dc7c26;\" table-target=\"dstransactiontypeTable\">DS_MERCHANT_TRANSACTTIONTYPE</a></td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td class=\"col\">URL KO</td>\n\t\t\t\t\t\t\t\t<td>DS_MERCHANT_URLKO</td>\n\t\t\t\t\t\t\t\t<td>250/A-N</td>\n\t\t\t\t\t\t\t\t<td>0,1,2,3,7,8,9,15,17,34,37</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>&nbsp;</td>\n\t\t\t\t\t\t\t\t<td>URL en la que se enviará una petición HTTP get cuando\n\t\t\t\t\t\t\t\t\tel resultado de la transacción sea KO. Si este parámetro no\n\t\t\t\t\t\t\t\t\tviene informado se usará la configuración en el módulo de\n\t\t\t\t\t\t\t\t\tadministración.</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td class=\"col\">URLOK</td>\n\t\t\t\t\t\t\t\t<td>DS_MERCHANT_URLOK</td>\n\t\t\t\t\t\t\t\t<td>250/A-N</td>\n\t\t\t\t\t\t\t\t<td>0,1,2,3,7,8,9,15,17,34,37</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>&nbsp;</td>\n\t\t\t\t\t\t\t\t<td>URL en la que se enviará una petición HTTP get cuando\n\t\t\t\t\t\t\t\t\tel resultado de la transacción sea OK. Si este parámetro no\n\t\t\t\t\t\t\t\t\tviene informado se usará la configuración en el módulo de\n\t\t\t\t\t\t\t\t\tadministración.</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td class=\"col\">Datos de XPAY</td>\n\t\t\t\t\t\t\t\t<td>DS_XPAYDECODEDDATA</td>\n\t\t\t\t\t\t\t\t<td>JSON</td>\n\t\t\t\t\t\t\t\t<td>0.1</td>\n\t\t\t\t\t\t\t\t<td>&nbsp;</td>\n\t\t\t\t\t\t\t\t<td><a data-toggle=\"popover\" data-placement=\"top\" data-content=\"Obligatorio si se envia DS_XPAYORIGEN y DS_XPAYTYPE (Si se envía este parámetro,\n\t\t\t\t\t\t\t\t\t\tno se enviará el DS_XPAYDATA).\" data-original-title=\"\" title=\"\">CONDICIONAL</a>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td>Campo en el que se incluyen los datos descrifrados en referencia a los xPay\n\t\t\t\t\t\t\t\t<a class=\"table-link\" style=\"color: #dc7c26;\" table-target=\"dsXpayCodeDataTable\">ver tabla DS_XPAYDECODEDATA</a>\n<!-- \t\t\t\t\t\t\t\t\tDocumentación: <a href=\"documents\\TPV-Virtual-ApplePay.pdf\" -->\n<!-- \t\t\t\t\t\t\t\t\t\ttarget=\"_blank\" rel=\"noopener\">TPV-Virtual-ApplePay.pdf</a></td> -->\n\n\t\t\t\t\t\t\t</td></tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td class=\"col\">Datos de XPAY</td>\n\t\t\t\t\t\t\t\t<td>DS_XPAYDATA</td>\n\t\t\t\t\t\t\t\t<td>10000 / A-N</td>\n\t\t\t\t\t\t\t\t<td>0.1</td>\n\t\t\t\t\t\t\t\t<td>&nbsp;</td>\n\t\t\t\t\t\t\t\t<td><a data-toggle=\"popover\" data-placement=\"top\" data-content=\"Obligatorio si se envia DS_XPAYORIGEN y DS_XPAYTYPE\n\t\t\t\t\t\t\t\t\t(Si se envía este parámetro, no se enviará el DS_XPAYDECODEDDATA).\" data-original-title=\"\" title=\"\">CONDICIONAL</a>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td>Campo en el que se incluyen los datos del enviados por\n\t\t\t\t\t\t\t\t\tel xPay en formato Hexadecimal.\n\t\t\t\t\t\t\t\t\t <!-- \t\t\t\t\t\t\t\t\tDocumentación: <a href=\"documents\\TPV-Virtual-ApplePay.pdf\" -->\n\t\t\t\t\t\t\t\t\t<!-- \t\t\t\t\t\t\t\t\t\ttarget=\"_blank\" rel=\"noopener\">TPV-Virtual-ApplePay.pdf</a></td> -->\n\t\t\t\t\t\t\t</td></tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td class=\"col\">Origen XPAY</td>\n\t\t\t\t\t\t\t\t<td>DS_XPAYORIGEN</td>\n\t\t\t\t\t\t\t\t<td>5 / A-N</td>\n\t\t\t\t\t\t\t\t<td>0.1</td>\n\t\t\t\t\t\t\t\t<td>&nbsp;</td>\n\t\t\t\t\t\t\t\t<td><a data-toggle=\"popover\" data-placement=\"top\" data-content=\"Obligatorio si se envia DS_XPAYDATA y DS_XPAYTYPE.\" data-original-title=\"\" title=\"\">CONDICIONAL</a>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td>Origen de la petición. Los posibles valores son:\n\t\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t\t<li>Google.</li>\n\t\t\t\t\t\t\t\t\t\t<li>Apple.</li>\n\t\t\t\t\t\t\t\t\t</ul> <!-- \t\t\t\t\t\t\t\t\tDocumentación: <a href=\"documents\\TPV-Virtual-ApplePay.pdf\" -->\n\t\t\t\t\t\t\t\t\t<!-- \t\t\t\t\t\t\t\t\t\ttarget=\"_blank\" rel=\"noopener\">TPV-Virtual-ApplePay.pdf</a></td> -->\n\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td class=\"col\">Tipo de XPAY</td>\n\t\t\t\t\t\t\t\t<td>DS_XPAYTYPE</td>\n\t\t\t\t\t\t\t\t<td>10 / A-N</td>\n\t\t\t\t\t\t\t\t<td>0.1</td>\n\t\t\t\t\t\t\t\t<td>&nbsp;</td>\n\t\t\t\t\t\t\t\t<td><a data-toggle=\"popover\" data-placement=\"top\" data-content=\"Obligatorio si se envia DS_XPAYORIGEN y DS_XPAYDATA.\" data-original-title=\"\" title=\"\">CONDICIONAL</a>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td>Tipo de xPay. Los posibles valores son:\n\t\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t\t<li>WEB.</li>\n\t\t\t\t\t\t\t\t\t\t<li>InApp.</li>\n\t\t\t\t\t\t\t\t\t</ul> <!-- \t\t\t\t\t\t\t\t\tDocumentación: <a href=\"documents\\TPV-Virtual-ApplePay.pdf\" -->\n\t\t\t\t\t\t\t\t\t<!-- \t\t\t\t\t\t\t\t\t\ttarget=\"_blank\" rel=\"noopener\">TPV-Virtual-ApplePay.pdf</a></td> -->\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td class=\"col\">Indicador de obtención de datos de\n\t\t\t\t\t\t\t\t\tdirección de PayPal</td>\n\t\t\t\t\t\t\t\t<td>DS_MERCHANT_SHIPPINGADDRESSPYP</td>\n\t\t\t\t\t\t\t\t<td>1 / N</td>\n\t\t\t\t\t\t\t\t<td>0,1,15</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>&nbsp;</td>\n\t\t\t\t\t\t\t\t<td>Indica si entre los campos de respuesta al comercio se\n\t\t\t\t\t\t\t\t\tincluye información relativa a la dirección de envío que tiene\n\t\t\t\t\t\t\t\t\tel titular configurada en su cuenta PayPal. Los valores que se\n\t\t\t\t\t\t\t\t\tpueden indicar en dicho campo son:\n\t\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t\t<li>S: si se desea obtener dicha información en la\n\t\t\t\t\t\t\t\t\t\t\trespuesta del TPV-Virtual.</li>\n\t\t\t\t\t\t\t\t\t\t<li>N: se NO se desea obtener dicha información en la\n\t\t\t\t\t\t\t\t\t\t\trespuesta del TPV-Virtual.</li>\n\t\t\t\t\t\t\t\t\t</ul> <!-- \t\t\t\t\t\t\t\t\tDocumentación: <a href=\"documents\\TPV-Virtual-Manual-PayPal.pdf\" -->\n\t\t\t\t\t\t\t\t\t<!-- \t\t\t\t\t\t\t\t\t\ttarget=\"_blank\" rel=\"noopener\">TPV-Virtual-Manual-PayPal.pdf</a></td> -->\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td class=\"col\">Descriptor Flexible</td>\n\t\t\t\t\t\t\t\t<td>DS_MERCHANT_MERCHANTDESCRIPTOR</td>\n\t\t\t\t\t\t\t\t<td>25 / A-N</td>\n\t\t\t\t\t\t\t\t<td>0,1,2,3,7,8,9,15,17,34,37</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>&nbsp;</td>\n\t\t\t\t\t\t\t\t<td>El valor de este parámetro es de 25 posiciones (caracteres).\n\t\t\t\t\t\t\t\tSi el comercio está configurado para poder enviar este parámetro\n\t\t\t\t\t\t\t\ty no envía ninguna información, o no está configurado, por defecto\n\t\t\t\t\t\t\t\tse enviará el nombre del comercio. Requiere activación por porte de la entidad.\n\t\t\t\t\t\t\t\t\t <!-- \t\t\t\t\t\t\t\t\tDocumentación: <a href=\"documents\\TPV-Virtual-Manual-PayPal.pdf\" -->\n\t\t\t\t\t\t\t\t\t<!-- \t\t\t\t\t\t\t\t\t\ttarget=\"_blank\" rel=\"noopener\">TPV-Virtual-Manual-PayPal.pdf</a></td> -->\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td class=\"col\">Código de personalización</td>\n\t\t\t\t\t\t\t\t<td>DS_MERCHANT_PERSOCODE</td>\n\t\t\t\t\t\t\t\t<td>1 / N</td>\n\t\t\t\t\t\t\t\t<td>0,1,3,7,8,9,15,34,37</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>&nbsp;</td>\n\t\t\t\t\t\t\t\t<td>Número de personalización que se desea utilizar en la\n\t\t\t\t\t\t\t\t\toperación. Si no se informa dicho parámetro o el valor que se\n\t\t\t\t\t\t\t\t\tinforma no corresponde con un número de personalización activa\n\t\t\t\t\t\t\t\t\texistente <br>\n\t\t\t\t\t\t\t\t<br> <!-- \t\t\t\t\t\t\t\t\tDocumentación: <a href=\"documents\\TPV-Virtual-Herramienta-Personalizacion.pdf\" -->\n\t\t\t\t\t\t\t\t\t<!-- \t\t\t\t\t\t\t\t\t\ttarget=\"_blank\" rel=\"noopener\">TPV-Virtual-Herramienta-Personalizacion.pdf</a></td> -->\n\t\t\t\t\t\t\t</td></tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td class=\"col\">Matching data</td>\n\t\t\t\t\t\t\t\t<td>DS_MERCHANT_MATCHINGDATA</td>\n\t\t\t\t\t\t\t\t<td>21/A-N</td>\n\t\t\t\t\t\t\t\t<td>17</td>\n\t\t\t\t\t\t\t\t<td>&nbsp;</td>\n\t\t\t\t\t\t\t\t<td><a data-toggle=\"popover\" data-placement=\"top\" data-content=\"Obligatorio si se envia DS_ACQUIRER_IDENTIFIER.\" data-original-title=\"\" title=\"\">CONDICIONAL</a>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td>No debe repetirse. Valor que enviará en la respuesta\n\t\t\t\t\t\t\t\t\tpara identificar a la petición</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td class=\"col\">Identificador del que procesará la\n\t\t\t\t\t\t\t\t\toperación</td>\n\t\t\t\t\t\t\t\t<td>DS_ACQUIRER_IDENTIFIER</td>\n\t\t\t\t\t\t\t\t<td>6/N</td>\n\t\t\t\t\t\t\t\t<td>17</td>\n\t\t\t\t\t\t\t\t<td>&nbsp;</td>\n\t\t\t\t\t\t\t\t<td><a data-toggle=\"popover\" data-placement=\"top\" data-content=\"Obligatorio si se envia DS_MERCHANT_MATCHINGDATA.\" data-original-title=\"\" title=\"\">CONDICIONAL</a>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td>Es el valor de la interfaz PUC, por dónde el comercio\n\t\t\t\t\t\t\t\t\tprocesará la transacción de autorización.</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td class=\"col\">Parámetros para MPI External</td>\n\t\t\t\t\t\t\t\t<td>DS_MERCHANT_MPIEXTERNAL</td>\n\t\t\t\t\t\t\t\t<td>JSON</td>\n\t\t\t\t\t\t\t\t<td>0,1,7</td>\n\t\t\t\t\t\t\t\t<td>&nbsp;</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>Ver tabla <a class=\"table-link\" style=\"color: #dc7c26;\" table-target=\"dsmpiexternalTable\">DS_MERCHANT_MPIEXTERNAL</a></td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td class=\"col\">Telefóno del titular para PayGold</td>\n\t\t\t\t\t\t\t\t<td>DS_MERCHANT_CUSTOMER_MOBILE</td>\n\t\t\t\t\t\t\t\t<td>19 /A-N</td>\n\t\t\t\t\t\t\t\t<td>15</td>\n\t\t\t\t\t\t\t\t<td>&nbsp;</td>\n\t\t\t\t\t\t\t\t<td><a data-toggle=\"popover\" data-placement=\"top\" data-content=\"Obligatorio si se envian DS_MERCHANT_CUSTOMER_MAIL,\n\t\t\t\t\t\t\t\t\tDS_MERCHANT_P2F_EXPIRYDATE, DS_MERCHANT_CUSTOMER_SMS_TEXT,\n\t\t\t\t\t\t\t\t\tDS_MERCHANT_P2F_XMLDATA.\" data-original-title=\"\" title=\"\">CONDICIONAL</a></td>\n\t\t\t\t\t\t\t\t<td>Para informar el número de teléfono del titular para\n\t\t\t\t\t\t\t\t\tenviar el SMS con el enlace.</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td class=\"col\">Mail del titular para PayGold</td>\n\t\t\t\t\t\t\t\t<td>DS_MERCHANT_CUSTOMER_MAIL</td>\n\t\t\t\t\t\t\t\t<td>100 /A-N</td>\n\t\t\t\t\t\t\t\t<td>15</td>\n\t\t\t\t\t\t\t\t<td>&nbsp;</td>\n\t\t\t\t\t\t\t\t<td><a data-toggle=\"popover\" data-placement=\"top\" data-content=\"Obligatorio si se envian DS_MERCHANT_CUSTOMER_MOBILE,\n\t\t\t\t\t\t\t\t\tDS_MERCHANT_P2F_EXPIRYDATE, DS_MERCHANT_CUSTOMER_SMS_TEXT,\n\t\t\t\t\t\t\t\t\tDS_MERCHANT_P2F_XMLDATA.\" data-original-title=\"\" title=\"\">CONDICIONAL</a>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td>Para informar la dirección de mail del titular para\n\t\t\t\t\t\t\t\t\tenviar el enlace.</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td class=\"col\">Fecha de caducidad enlace PayGold</td>\n\t\t\t\t\t\t\t\t<td>DS_MERCHANT_P2F_EXPIRYDATE</td>\n\t\t\t\t\t\t\t\t<td>23/ A-N</td>\n\t\t\t\t\t\t\t\t<td>15</td>\n\t\t\t\t\t\t\t\t<td>&nbsp;</td>\n\t\t\t\t\t\t\t\t<td><a data-toggle=\"popover\" data-placement=\"top\" data-content=\"Obligatorio si se envian DS_MERCHANT_CUSTOMER_MOBILE,\n\t\t\t\t\t\t\t\t\tDS_MERCHANT_CUSTOMER_MAIL, DS_MERCHANT_CUSTOMER_SMS_TEXT,\n\t\t\t\t\t\t\t\t\tDS_MERCHANT_P2F_XMLDATA\" data-original-title=\"\" title=\"\">CONDICIONAL</a></td>\n\n\t\t\t\t\t\t\t\t<td>Permite especificar la fecha de caducidad del enlace\n\t\t\t\t\t\t\t\t\tsiendo posible especificar la fecha de cada operación mediante\n\t\t\t\t\t\t\t\t\teste parámetro. El valor del campo podrá ser el número de\n\t\t\t\t\t\t\t\t\tminutos desde la operación o la fecha y hora exacta de\n\t\t\t\t\t\t\t\t\tcaducidad con el siguiente formato: aaaa-mm-dd-HH:MM:ss.sss\n\t\t\t\t\t\t\t\t\t(por ejemplo 2014-08-06-16.31.35.318).</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td class=\"col\">Texto del SMS de PayGold</td>\n\t\t\t\t\t\t\t\t<td>DS_MERCHANT_CUSTOMER_SMS_TEXT</td>\n\t\t\t\t\t\t\t\t<td>160/A-N</td>\n\t\t\t\t\t\t\t\t<td>15</td>\n\t\t\t\t\t\t\t\t<td>&nbsp;</td>\n\t\t\t\t\t\t\t\t<td><a data-toggle=\"popover\" data-placement=\"top\" data-content=\"Obligatorio si se envian DS_MERCHANT_CUSTOMER_MOBILE,\n\t\t\t\t\t\t\t\t\tDS_MERCHANT_CUSTOMER_MAIL, DS_MERCHANT_P2F_EXPIRYDATE,\n\t\t\t\t\t\t\t\t\tDS_MERCHANT_P2F_XMLDATA.\" data-original-title=\"\" title=\"\">CONDICIONAL</a></td>\n\n\t\t\t\t\t\t\t\t<td>Personalización de los mensajes SMS enviados al\n\t\t\t\t\t\t\t\t\tusuario. Este campo contendrá una cadena de texto con los\n\t\t\t\t\t\t\t\t\tcampos relevantes entre arrobas, es obligatorio incluir siempre\n\t\t\t\t\t\t\t\t\tla URL (@URL@). Los campos soportados son @COMERCIO@,\n\t\t\t\t\t\t\t\t\t@IMPORTE@, @MONEDA@ y @URL@. Se sustituirán dichos campos por\n\t\t\t\t\t\t\t\t\tlos valores correspondientes. Es recomendable limitar la\n\t\t\t\t\t\t\t\t\tlongitud del texto (máximo 160 caracteres) para que se envíe en\n\t\t\t\t\t\t\t\t\tun único SMS.<br> Mensaje de ejemplo: <br>\n\t\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t\t<li>\"Esto es un SMS personalizado del comercio\n\t\t\t\t\t\t\t\t\t\t\t@COMERCIO@. Debe pagar @IMPORTE@ @MONEDA@ en la siguiente\n\t\t\t\t\t\t\t\t\t\t\turl: @URL@\"</li>\n\t\t\t\t\t\t\t\t\t</ul>\n\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td class=\"col\">Texto del Mail de PayGold</td>\n\t\t\t\t\t\t\t\t<td>DS_MERCHANT_P2F_XMLDATA</td>\n\t\t\t\t\t\t\t\t<td>1000/A-N</td>\n\t\t\t\t\t\t\t\t<td>15</td>\n\t\t\t\t\t\t\t\t<td>&nbsp;</td>\n\t\t\t\t\t\t\t\t<td><a data-toggle=\"popover\" data-placement=\"top\" data-content=\"Obligatorio si se envian DS_MERCHANT_CUSTOMER_MOBILE,\n\t\t\t\t\t\t\t\t\tDS_MERCHANT_CUSTOMER_MAIL, DS_MERCHANT_P2F_EXPIRYDATE,\n\t\t\t\t\t\t\t\t\tDS_MERCHANT_CUSTOMER_SMS_TEXT.\" data-original-title=\"\" title=\"\">CONDICIONAL</a></td>\n\n\t\t\t\t\t\t\t\t<td>Personalización de los mensajes de correo enviados.\n\t\t\t\t\t\t\t\t\tDicho campo permite pasar TAGs para la personalización. Es\n\t\t\t\t\t\t\t\t\timportante escapar los símbolos &lt;&gt;y / como &amp;lt; &amp;gt; y\n\t\t\t\t\t\t\t\t\t&amp;#47; así como dejarlos dentro del CDATA.<br> Cualquier\n\t\t\t\t\t\t\t\t\terror aquí podría ocasionar que el XML no esté bien formado y\n\t\t\t\t\t\t\t\t\tque la petición falle por lo que es obligatorio escapar también\n\t\t\t\t\t\t\t\t\tlos caracteres especiales como acentos etc. Los campos que\n\t\t\t\t\t\t\t\t\tincluye este parámetro son:\n\t\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t\t<li>nombreComprador: El nombre del comprador. Sin\n\t\t\t\t\t\t\t\t\t\t\tlimitación de caracteres.</li>\n\t\t\t\t\t\t\t\t\t\t<li>direccionComprador: La dirección del comprador. Sin\n\t\t\t\t\t\t\t\t\t\t\tlimitación de caracteres.</li>\n\t\t\t\t\t\t\t\t\t\t<li>textoLibre1: El texto que se incluirá describiendo la\n\t\t\t\t\t\t\t\t\t\t\tcompra. Sin limitación de caracteres.</li>\n\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td class=\"col\">Campo indicador para la solicitud de DCC y\n\t\t\t\t\t\t\t\t\tenvio de información DCC</td>\n\t\t\t\t\t\t\t\t<td>DS_MERCHANT_DCC</td>\n\t\t\t\t\t\t\t\t<td>JSON</td>\n\t\t\t\t\t\t\t\t<td>0</td>\n\t\t\t\t\t\t\t\t<td>&nbsp;</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>Enviar Y o N para la solicitud de iniciaPetición. Para\n\t\t\t\t\t\t\t\t\tmandar información de DCC ver tabla <a class=\"table-link\" style=\"color: #dc7c26;\" table-target=\"dsmerchantdccTable\">DS_MERCHANT_DCC</a>.\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td class=\"col\">Exenciones para PDS2</td>\n\t\t\t\t\t\t\t\t<td>DS_MERCHANT_EXCEP_SCA</td>\n\t\t\t\t\t\t\t\t<td>3/A-N</td>\n\t\t\t\t\t\t\t\t<td>0.1</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>Valores posibles: MIT , LWV, TRA, COR, ATD, NDF.\n\t\t\t\t\t\t\t\t\tRequiere activación por parte de la Entidad.</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td class=\"col\">Exenciones para PDS2</td>\n\t\t\t\t\t\t\t\t<td>DS_MERCHANT_OTA</td>\n\t\t\t\t\t\t\t\t<td>1/N</td>\n\t\t\t\t\t\t\t\t<td>7</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>Valor: S (petición inicial OTA SI).Petición de\n\t\t\t\t\t\t\t\t\toperación inicial de Autenticación de Viajes Online (OTA)</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td class=\"col\">IP de cliente</td>\n\t\t\t\t\t\t\t\t<td>DS_MERCHANT_CLIENTIP</td>\n\t\t\t\t\t\t\t\t<td>15/A-N</td>\n\t\t\t\t\t\t\t\t<td>0,1,2,3,7,8,9,15,17,34,37</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td class=\"col\">Valor RTS para Devoluciones de confirmaciones parciales.</td>\n\t\t\t\t\t\t\t\t<td>DS_MERCHANT_RTS</td>\n\t\t\t\t\t\t\t\t<td>24/N</td>\n\t\t\t\t\t\t\t\t<td>3</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>Obligatorio para realizar una devolución de una confirmación parcial</td>\n\t\t\t\t\t\t\t</tr></tbody>\n\t\t\t\t\t</table></div>\n\n\n\n\n\n\n\n\n\n\n\t\t\t\t\t<!-- \t*****************************\n        *****************************\n \t       TABLA PARÁMETROS SALIDA\n \t    *****************************\n \t    *****************************  -->\n\n\n\t\t\t\t\t<div id=\"salidaTable_wrapper\" class=\"dataTables_wrapper no-footer\" style=\"height: 400px;\"><table id=\"salidaTable\" title=\"Parámetros de salida\" class=\"center table table-striped errores-sis dataTable no-footer fix-head\" role=\"grid\">\n\t\t\t\t\t\t<thead>\n\t\t\t\t\t\t\t<tr role=\"row\"><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">DATO</th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\"><input id=\"entradaSalidaInput\" class=\"errores filter\" data-column-index=\"1\" style=\"color: #555;\" value=\"\" placeholder=\"PARÁMETRO DE SALIDA\" type=\"text\"></th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">Long. / Tipo</th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">REALIZAR PAGO<br> <select id=\"salidaPagoInput\" class=\"errores\n\t\t\t\t\t\t\t\t\t\tfilter\" data-column-index=\"3\" style=\"color: #555;\" value=\"\">\n\t\t\t\t\t\t\t\t\t\t<option value=\"\"></option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"OBLIGATORIO\">OBLIGATORIO</option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"OPCIONAL\">OPCIONAL</option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"CONDICIONAL\">CONDICIONAL</option>\n\t\t\t\t\t\t\t\t</select></th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">REST/SOAP<br> <select id=\"salidaSoapInput\" class=\"errores\n\t\t\t\t\t\t\t\t\t\tfilter\" data-column-index=\"4\" style=\"color: #555;\" value=\"\">\n\t\t\t\t\t\t\t\t\t\t<option value=\"\"></option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"OBLIGATORIO\">OBLIGATORIO</option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"OPCIONAL\">OPCIONAL</option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"CONDICIONAL\">CONDICIONAL</option>\n\t\t\t\t\t\t\t\t</select></th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">COMENTARIOS</th></tr>\n\t\t\t\t\t\t</thead>\n\t\t\t\t\t\t<tbody>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\t\t\t\t\t\t<tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Fecha</td>\n\t\t\t\t\t\t\t\t<td>DS_DATE</td>\n\t\t\t\t\t\t\t\t<td>dd/mm/yyyy</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t\t<td>Fecha de la transacción</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Hora</td>\n\t\t\t\t\t\t\t\t<td>DS_HOUR</td>\n\t\t\t\t\t\t\t\t<td>HH:mm</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t\t<td>Hora de la transacción</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Importe</td>\n\t\t\t\t\t\t\t\t<td>DS_AMOUNT</td>\n\t\t\t\t\t\t\t\t<td>12 / Núm.</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>Mismo importe que se envió en la petición.</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Moneda</td>\n\t\t\t\t\t\t\t\t<td>DS_CURRENCY</td>\n\t\t\t\t\t\t\t\t<td>3 / Núm.</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>Misma moneda que se envió en la petición. Lo de la\n\t\t\t\t\t\t\t\t\tlongitd ya viene en otra columna.</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Número de pedido</td>\n\t\t\t\t\t\t\t\t<td>DS_ORDER</td>\n\t\t\t\t\t\t\t\t<td>12 / A-N.</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>Mismo pedido que se envió en la petición.</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Identificación de comercio: código FUC</td>\n\t\t\t\t\t\t\t\t<td>DS_MERCHANTCODE</td>\n\t\t\t\t\t\t\t\t<td>9 / N.</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>Mismo código de comercio que se envió en la petición.</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Terminal</td>\n\t\t\t\t\t\t\t\t<td>DS_TERMINAL</td>\n\t\t\t\t\t\t\t\t<td>3 / Núm.</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>Mismo código de terminal que se envió en la petición</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Código de respuesta</td>\n\t\t\t\t\t\t\t\t<td>DS_RESPONSE</td>\n\t\t\t\t\t\t\t\t<td>4 / Núm.</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>Valor que indica el resultado de la operación. Indicará\n\t\t\t\t\t\t\t\t\tsi ha sido autorizada o no. Ver <a href=\"codigosRespuesta.html#codigo-dsresponse\">tabla\n\t\t\t\t\t\t\t\t\t\tDs_Response</a>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Datos del comercio</td>\n\t\t\t\t\t\t\t\t<td>DS_MERCHANTDATA</td>\n\t\t\t\t\t\t\t\t<td>1024 / A-N</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>Información opcional enviada por el comercio en el\n\t\t\t\t\t\t\t\t\tformulario de pago.</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Pago Seguro</td>\n\t\t\t\t\t\t\t\t<td>DS_SECUREPAYMENT</td>\n\t\t\t\t\t\t\t\t<td>1 / Núm.</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td><ul>\n\t\t\t\t\t\t\t\t\t\t<li>0 - Si el pago NO es seguro</li>\n\t\t\t\t\t\t\t\t\t\t<li>1 - Si el pago es seguro</li>\n\t\t\t\t\t\t\t\t\t</ul></td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Tipo de operación</td>\n\t\t\t\t\t\t\t\t<td>DS_TRANSACTIONTYPE</td>\n\t\t\t\t\t\t\t\t<td>1 / A-N</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>Tipo de operación que se envió en el formulario de pago</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>País del titular</td>\n\t\t\t\t\t\t\t\t<td>DS_CARD_COUNTRY</td>\n\t\t\t\t\t\t\t\t<td>3/Núm</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>País de emisión de la tarjeta con la que se ha\n\t\t\t\t\t\t\t\t\tintentado realizar el pago. En el siguiente enlace es posible\n\t\t\t\t\t\t\t\t\tconsultar los códigos de país y su correspondencia:\n\t\t\t\t\t\t\t\t\thttp://unstats.un.org/unsd/methods/m49/m49alpha.htm</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Código de autorización</td>\n\t\t\t\t\t\t\t\t<td>DS_AUTHORISATIONCODE</td>\n\t\t\t\t\t\t\t\t<td>6/ A-N</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>Código alfanumérico de autorización asignado a la\n\t\t\t\t\t\t\t\t\taprobación de la transacción por la institución autorizadora.</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Idioma del titular</td>\n\t\t\t\t\t\t\t\t<td>DS_CONSUMERLANGUAGE</td>\n\t\t\t\t\t\t\t\t<td>3 / Núm</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t\t<td>El valor 0, indicará que no se ha determinado el idioma\n\t\t\t\t\t\t\t\t\tdel cliente.</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Tipo de Tarjeta</td>\n\t\t\t\t\t\t\t\t<td>DS_CARD_TYPE</td>\n\t\t\t\t\t\t\t\t<td>1 / A-N</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>Valores posibles:\n\t\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t\t<li>C - Crédito</li>\n\t\t\t\t\t\t\t\t\t\t<li>D - Débito</li>\n\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Marca de Tarjeta</td>\n\t\t\t\t\t\t\t\t<td>DS_CARD_BRAND</td>\n\t\t\t\t\t\t\t\t<td>2 / Núm</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>\"No se debe hacer una validación cerrada sobre estos\n\t\t\t\t\t\t\t\t\tvalores, pues pueden variar y/o añadise nuevos. Valores\n\t\t\t\t\t\t\t\t\tposibles:\n\t\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t\t<li>1 - VISA</li>\n\t\t\t\t\t\t\t\t\t\t<li>2 - MASTERCARD</li>\n\t\t\t\t\t\t\t\t\t\t<li>6 - DINERS</li>\n\t\t\t\t\t\t\t\t\t\t<li>7 - PRIVADA</li>\n\t\t\t\t\t\t\t\t\t\t<li>8 - AMEX</li>\n\t\t\t\t\t\t\t\t\t\t<li>9 - JCB</li>\n\t\t\t\t\t\t\t\t\t\t<li>22 - UPI</li>\n\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t</td></tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Número de tarjeta</td>\n\t\t\t\t\t\t\t\t<td>DS_CARD_NUMBER</td>\n\t\t\t\t\t\t\t\t<td>19/N</td>\n\t\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>Tarjeta. Su longitud depende del tipo de tarjeta.</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Fecha caducidad de la tarjeta</td>\n\t\t\t\t\t\t\t\t<td>DS_EXPIRYDATE</td>\n\t\t\t\t\t\t\t\t<td>4/N</td>\n\t\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>Caducidad de la tarjeta. Su formato es AAMM, siendo AA\n\t\t\t\t\t\t\t\t\tlos dos últimos dígitos del año y MM los dos dígitos del mes.</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Referencia de la tarjeta</td>\n\t\t\t\t\t\t\t\t<td>DS_MERCHANT_IDENTIFIER</td>\n\t\t\t\t\t\t\t\t<td>8/N</td>\n\t\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>Este parámetro indica la referencia de la tarjeta a\n\t\t\t\t\t\t\t\t\tutilizar</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Código de error</td>\n\t\t\t\t\t\t\t\t<td>DS_ERRORCODE</td>\n\t\t\t\t\t\t\t\t<td>7/A-N</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t\t<td>Código de error</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Código de error</td>\n\t\t\t\t\t\t\t\t<td>ERRORCODE</td>\n\t\t\t\t\t\t\t\t<td>7/A-N</td>\n\t\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t\t<td>Código de error</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Código de error</td>\n\t\t\t\t\t\t\t\t<td>CODIGO</td>\n\t\t\t\t\t\t\t\t<td>7/A-N</td>\n\t\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t\t<td>Valores posibles:\n\t\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t\t<li><strong>CODIGO igual a 0</strong> (La transacción se\n\t\t\t\t\t\t\t\t\t\t\tha procesado pero no implica que se haya autorizado. Para\n\t\t\t\t\t\t\t\t\t\t\tsaber si la operación está autorizada se debe revisar el\n\t\t\t\t\t\t\t\t\t\t\tparámetro <a href=\"codigosRespuesta.html#codigo-dsresponse\">Ds_Response</a>).</li>\n\t\t\t\t\t\t\t\t\t\t<li><strong>CODIGO diferente de 0</strong> (La\n\t\t\t\t\t\t\t\t\t\t\ttransacción no se ha podido procesar diversos motivos)</li>\n\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Enlace de pago Paygold</td>\n\t\t\t\t\t\t\t\t<td>DS_URLPAGO2FASES</td>\n\t\t\t\t\t\t\t\t<td>Max 80 /A-N</td>\n\t\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>URL del enlace que se le envía al cliente para realizar\n\t\t\t\t\t\t\t\t\tel pago PayGold</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Firma</td>\n\t\t\t\t\t\t\t\t<td>DS_SIGNATURE</td>\n\t\t\t\t\t\t\t\t<td>44 / A-N</td>\n\t\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>Firma de la petición de respuesta</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Información sobre DCC</td>\n\t\t\t\t\t\t\t\t<td>DS_DCC</td>\n\t\t\t\t\t\t\t\t<td>Json</td>\n\t\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>Información sobre DCC, ver <a class=\"table-link\" style=\"color: #dc7c26;\" table-target=\"dsdccTable\">tabla DS_DCC</a></td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Información sobre pago seguro</td>\n\t\t\t\t\t\t\t\t<td>DS_EMV3DS</td>\n\t\t\t\t\t\t\t\t<td>Json</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>Información sobre EMV3DS, ver <a class=\"table-link\" style=\"color: #dc7c26;\" table-target=\"dsemv3dsTable\">Tabla DS_EMV3DS</a></td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Tarjeta afectada por PSD2</td>\n\t\t\t\t\t\t\t\t<td>DS_CARD_PSD2</td>\n\t\t\t\t\t\t\t\t<td>Max 1/A-N</td>\n\t\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>Parámetro de respuesta en iniciaPeticion.\n\t\t\t\t\t\t\t\t\tValores posibles: Y (Si afectada) o N (no afectada)\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Excepciones permitidas</td>\n\t\t\t\t\t\t\t\t<td>Ds_Excep_SCA</td>\n\t\t\t\t\t\t\t\t<td>Max 40 /A-N</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>Parámetro de respuesta en iniciaPeticion. Valores\n\t\t\t\t\t\t\t\t\tposibles un subjunto de: LWV;TRA[30.0];COR;MIT;ATD;WHL</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Identificador de transacción COF</td>\n\t\t\t\t\t\t\t\t<td>Ds_ProcessedPayMethod</td>\n\t\t\t\t\t\t\t\t<td>3/N</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>Opcional. Informa sobre el método en el que se ha\n\t\t\t\t\t\t\t\t\trealizado la operación:, ver <a class=\"table-link\" style=\"color: #dc7c26;\" table-target=\"ds_ProcessedPayMethodTable\">Tabla\n\t\t\t\t\t\t\t\t\t\tDS_ProcessedPayMethod</a>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Identificador de transacción COF</td>\n\t\t\t\t\t\t\t\t<td>Ds_Merchant_Cof_Txnid</td>\n\t\t\t\t\t\t\t\t<td>Max 15 / AN</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>Este identificador es devuelto en la respuesta de la primera\n\t\t\t\t\t\t\t\t\toperación COF (almacenamiento de credenciales), y deberá enviarse\n\t\t\t\t\t\t\t\t\ten transacciones sucesivas realizadas con las credenciales que\n\t\t\t\t\t\t\t\t\tgeneraron este mismo Id_txn.\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Importe en la moneda DCC</td>\n\t\t\t\t\t\t\t\t<td>Ds_Amount_DCC</td>\n\t\t\t\t\t\t\t\t<td>Max 12 / N</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>Solo aplica en operaciones DCC.\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Contravalor en euros cuando la operación se realiza en moneda diferente de euro</td>\n\t\t\t\t\t\t\t\t<td>Ds_Amount_Euro</td>\n\t\t\t\t\t\t\t\t<td>Max 12 / N</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>Solo aplica en operaciones DCC.\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Codigo de moneda DCC</td>\n\t\t\t\t\t\t\t\t<td>Ds_Currency_DCC</td>\n\t\t\t\t\t\t\t\t<td>Max 3 / N</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>Solo aplica en operaciones DCC.\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Valor RTS en Confirmaciones Parciales</td>\n\t\t\t\t\t\t\t\t<td>rts</td>\n\t\t\t\t\t\t\t\t<td>Max 24 / N</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>Solo aplica en confirmaciones parciales TransactionType 48.\n\t\t\t\t\t\t\t\t\tEste valor se envía en la respuesta de la confirmación parcial\n\t\t\t\t\t\t\t\t\t para que en el caso de querer realizar una devolución de esa\n\t\t\t\t\t\t\t\t\t  confirmación, se envíe en el parámetro de entrada DS_MERCHANT_RTS.L\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Valor de control</td>\n\t\t\t\t\t\t\t\t<td>Ds_Control_XXXXXXXXXXXXX</td>\n\t\t\t\t\t\t\t\t<td>Max 13 / N</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>Se trata de un campo con valor aleatorio pensado para\n\t\t\t\t\t\t\t\t que el comercio esté preparado a recibir campos nuevos sin\n\t\t\t\t\t\t\t\t que esto afecte a su servicio,  con esto se pretende que\n\t\t\t\t\t\t\t\t  no se realice una validación restrictiva de los campos\n\t\t\t\t\t\t\t\t   en la respuesta que se envía al comercio y  que cuando\n\t\t\t\t\t\t\t\t    se envíe uno nuevo no afecte al comercio</td>\n\t\t\t\t\t\t\t</tr></tbody>\n\t\t\t\t\t</table></div>\n\n\t\t\t\t\t<!-- \t*****************************\n        *****************************\n \t     TABLA DS_PROCESSEDPAYMETHOD\n \t    *****************************\n \t    *****************************  -->\n\n\n\t\t\t\t\t<div id=\"ds_ProcessedPayMethodTable_wrapper\" class=\"dataTables_wrapper no-footer\" style=\"height: 400px;\"><table id=\"ds_ProcessedPayMethodTable\" title=\"Tabla Ds_ProcessedPayMethod\" class=\"table table-striped errores-sis dataTable no-footer fix-head\" role=\"grid\">\n\t\t\t\t\t\t<thead>\n\t\t\t\t\t\t\t<tr role=\"row\"><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">Método de pago</th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">Valor</th></tr></thead>\n\t\t\t\t\t\t<tbody>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\t\t\t\t\t\t<tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>1</td>\n\t\t\t\t\t\t\t\t<td>Visa Secure</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>3</td>\n\t\t\t\t\t\t\t\t<td>Tradicional Mundial</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>5</td>\n\t\t\t\t\t\t\t\t<td>Finanet</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>11</td>\n\t\t\t\t\t\t\t\t<td>Capacidad FINANET</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>13</td>\n\t\t\t\t\t\t\t\t<td>Capacidad Visa Secure</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>14</td>\n\t\t\t\t\t\t\t\t<td>Tradicional UE</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>22</td>\n\t\t\t\t\t\t\t\t<td>MasterCard Identity Check</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>23</td>\n\t\t\t\t\t\t\t\t<td>Capacidad Identity Check</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>24</td>\n\t\t\t\t\t\t\t\t<td>Pago AMEX</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>25</td>\n\t\t\t\t\t\t\t\t<td>Pago MOTO</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>28</td>\n\t\t\t\t\t\t\t\t<td>Pago JCB</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>31</td>\n\t\t\t\t\t\t\t\t<td>Pago DINERS</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>39</td>\n\t\t\t\t\t\t\t\t<td>JCB JSecure</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>40</td>\n\t\t\t\t\t\t\t\t<td>Capacidad JSecure</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>41</td>\n\t\t\t\t\t\t\t\t<td>Domiciliacion</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>42</td>\n\t\t\t\t\t\t\t\t<td>Transferencia</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>54</td>\n\t\t\t\t\t\t\t\t<td>PayPal</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>57</td>\n\t\t\t\t\t\t\t\t<td>SafeKey</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>58</td>\n\t\t\t\t\t\t\t\t<td>Capacidad SafeKey</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>59</td>\n\t\t\t\t\t\t\t\t<td>MasterPass Wallet</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>68</td>\n\t\t\t\t\t\t\t\t<td>Bizum</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>70</td>\n\t\t\t\t\t\t\t\t<td>UPI ExpressPay</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>71</td>\n\t\t\t\t\t\t\t\t<td>GooglePay</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>72</td>\n\t\t\t\t\t\t\t\t<td>ApplePay</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>73</td>\n\t\t\t\t\t\t\t\t<td>UPI SecurePlus</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>74</td>\n\t\t\t\t\t\t\t\t<td>Capacidad Discover</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>75</td>\n\t\t\t\t\t\t\t\t<td>Discover ProtectBuy</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>76</td>\n\t\t\t\t\t\t\t\t<td>Discover</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>77</td>\n\t\t\t\t\t\t\t\t<td>Amazon Pay</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>78</td>\n\t\t\t\t\t\t\t\t<td>Challenge Visa</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>79</td>\n\t\t\t\t\t\t\t\t<td>Challenge MasterCard</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>80</td>\n\t\t\t\t\t\t\t\t<td>Frictionless Visa</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>81</td>\n\t\t\t\t\t\t\t\t<td>Frictionless MasterCard</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>82</td>\n\t\t\t\t\t\t\t\t<td>Attempt Visa</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>83</td>\n\t\t\t\t\t\t\t\t<td>Attempt MasterCard</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>85</td>\n\t\t\t\t\t\t\t\t<td>Challenge Amex</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>86</td>\n\t\t\t\t\t\t\t\t<td>Challenge Discover</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>87</td>\n\t\t\t\t\t\t\t\t<td>Frictionless Amex</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>88</td>\n\t\t\t\t\t\t\t\t<td>Frictionless Discover</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>89</td>\n\t\t\t\t\t\t\t\t<td>Attempt Amex</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>90</td>\n\t\t\t\t\t\t\t\t<td>Attempt Discover</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>92</td>\n\t\t\t\t\t\t\t\t<td>Pago DINERS ProtectBuy</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>93</td>\n\t\t\t\t\t\t\t\t<td>Challenge Diners ProtectBuy</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>94</td>\n\t\t\t\t\t\t\t\t<td>Frictionless Diners ProtectBuy</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>95</td>\n\t\t\t\t\t\t\t\t<td>Pago Attempt Diners ProtectBuy</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>96</td>\n\t\t\t\t\t\t\t\t<td>Challenge JCB</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>97</td>\n\t\t\t\t\t\t\t\t<td>Frictionless JCB</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>98</td>\n\t\t\t\t\t\t\t\t<td>Attempt JCB</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>107</td>\n\t\t\t\t\t\t\t\t<td>Pago con cuenta</td>\n\t\t\t\t\t\t\t</tr></tbody>\n\t\t\t\t\t</table></div>\n\n\n\t\t\t\t\t<!-- \t*****************************\n        *****************************\n \t           TABLA DE MONEDAS\n \t    *****************************\n \t    *****************************  -->\n\n\n\n\t\t\t\t\t<div id=\"monedasTable_wrapper\" class=\"dataTables_wrapper no-footer\" style=\"height: 400px;\"><table id=\"monedasTable\" title=\"Tabla Monedas\" class=\"table table-striped errores-sis dataTable no-footer fix-head\" role=\"grid\">\n\t\t\t\t\t\t<thead>\n\t\t\t\t\t\t\t<tr role=\"row\"><th style=\"width: 100px;\" class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\"><input id=\"isoMonedaInput\" class=\"errores filter\" data-column-index=\"0\" style=\"color: #555;\" value=\"\" placeholder=\"CÓDIGO ISO\" type=\"text\"></th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">Moneda</th></tr>\n\n\t\t\t\t\t\t</thead>\n\t\t\t\t\t\t<tbody>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\t\t\t\t\t\t<tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>840</td>\n\t\t\t\t\t\t\t\t<td>DOLAR U.S.A. USD</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>826</td>\n\t\t\t\t\t\t\t\t<td>POUND STERLING GBP</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>392</td>\n\t\t\t\t\t\t\t\t<td>YEN JPY</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>32</td>\n\t\t\t\t\t\t\t\t<td>ARGENTINE AUSTRAL ARP</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>36</td>\n\t\t\t\t\t\t\t\t<td>AUSTRALIAN DOLLAR AUD</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>124</td>\n\t\t\t\t\t\t\t\t<td>CANADIAN DOLLAR CAD</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>152</td>\n\t\t\t\t\t\t\t\t<td>CHILEAN PESO CLP</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>170</td>\n\t\t\t\t\t\t\t\t<td>COLOMBIAN PESO COP</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>188</td>\n\t\t\t\t\t\t\t\t<td>COSTA RICA COLON CRC</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>356</td>\n\t\t\t\t\t\t\t\t<td>INDIAN RUPEE INR</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>484</td>\n\t\t\t\t\t\t\t\t<td>MEXICAN PESO MXP</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>604</td>\n\t\t\t\t\t\t\t\t<td>PERU INTI PEI</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>756</td>\n\t\t\t\t\t\t\t\t<td>SWISS FRANC CHF</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>858</td>\n\t\t\t\t\t\t\t\t<td>URUGUAYAN PESO UYP</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>986</td>\n\t\t\t\t\t\t\t\t<td>BRAZILIAN REAL BRL</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>949</td>\n\t\t\t\t\t\t\t\t<td>TURKISH LIRA TRY</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>8</td>\n\t\t\t\t\t\t\t\t<td>LEK ALL</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>12</td>\n\t\t\t\t\t\t\t\t<td>ALGERIAN DINAR DZD</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>24</td>\n\t\t\t\t\t\t\t\t<td>ANGOLA KWANZA AOK</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>30</td>\n\t\t\t\t\t\t\t\t<td>PROBANDO DESA MON</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>31</td>\n\t\t\t\t\t\t\t\t<td>AZERBAIJANIAN MANAT AZM</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>32</td>\n\t\t\t\t\t\t\t\t<td>ARGENTINE AUSTRAL ARP</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>36</td>\n\t\t\t\t\t\t\t\t<td>AUSTRALIAN DOLLAR AUD</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>44</td>\n\t\t\t\t\t\t\t\t<td>BAHAMIAN DOLLAR BSD</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>48</td>\n\t\t\t\t\t\t\t\t<td>BAHRAINI DINAR BHD</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>50</td>\n\t\t\t\t\t\t\t\t<td>TAKA BDT</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>51</td>\n\t\t\t\t\t\t\t\t<td>ARMENIAN DRAM AMD</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>52</td>\n\t\t\t\t\t\t\t\t<td>BARBADOS DOLLAR BBD</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>60</td>\n\t\t\t\t\t\t\t\t<td>BERMUDAN DOLLAR BMD</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>64</td>\n\t\t\t\t\t\t\t\t<td>NGULTRUM BTN</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>68</td>\n\t\t\t\t\t\t\t\t<td>BOLIVIAN PESO BOP</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>70</td>\n\t\t\t\t\t\t\t\t<td>DINAR BAD</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>72</td>\n\t\t\t\t\t\t\t\t<td>PULA BWP</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>76</td>\n\t\t\t\t\t\t\t\t<td>CRUZEIRO BRC</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>84</td>\n\t\t\t\t\t\t\t\t<td>BELIZE DOLLAR 084</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>90</td>\n\t\t\t\t\t\t\t\t<td>SOLOMON ISLANDS DOLL SBD</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>96</td>\n\t\t\t\t\t\t\t\t<td>BRUNEI DOLLAR BND</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>100</td>\n\t\t\t\t\t\t\t\t<td>LEV BGL</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>104</td>\n\t\t\t\t\t\t\t\t<td>KYAT BUK</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>108</td>\n\t\t\t\t\t\t\t\t<td>BURUNDI FRANC BIF</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>112</td>\n\t\t\t\t\t\t\t\t<td>BELARUSSIAN RUBLE BYB</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>116</td>\n\t\t\t\t\t\t\t\t<td>RIEL KHR</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>124</td>\n\t\t\t\t\t\t\t\t<td>CANADIAN DOLLAR CAD</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>132</td>\n\t\t\t\t\t\t\t\t<td>CAPE VERDE ESCUDO CVE</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>136</td>\n\t\t\t\t\t\t\t\t<td>CAYMAN ISLANDS DOLLA KYD</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>144</td>\n\t\t\t\t\t\t\t\t<td>SRI LANKA RUPEE LKR</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>152</td>\n\t\t\t\t\t\t\t\t<td>CHILEAN PESO CLP</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>156</td>\n\t\t\t\t\t\t\t\t<td>YUAN RENMINBI CNY</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>157</td>\n\t\t\t\t\t\t\t\t<td>CHINESE RENMIMBI CNH</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>158</td>\n\t\t\t\t\t\t\t\t<td>CHINESE RENMINBI CNX</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>170</td>\n\t\t\t\t\t\t\t\t<td>COLOMBIAN PESO COP</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>174</td>\n\t\t\t\t\t\t\t\t<td>COMOROS FRANC KMF</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>180</td>\n\t\t\t\t\t\t\t\t<td>ZAIRE ZRZ</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>188</td>\n\t\t\t\t\t\t\t\t<td>COSTA RICA COLON CRC</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>191</td>\n\t\t\t\t\t\t\t\t<td>CROATIAN KUNA HRK</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>192</td>\n\t\t\t\t\t\t\t\t<td>CUBAN PESO CUP</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>196</td>\n\t\t\t\t\t\t\t\t<td>CYPRUS POUND CYP</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>200</td>\n\t\t\t\t\t\t\t\t<td>KORUNA CSK</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>203</td>\n\t\t\t\t\t\t\t\t<td>CZECH KORUNA CZK</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>208</td>\n\t\t\t\t\t\t\t\t<td>DANISH KRONE DKK</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>214</td>\n\t\t\t\t\t\t\t\t<td>DOMINICAN PESO DOP</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>218</td>\n\t\t\t\t\t\t\t\t<td>SUCRE ECS</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>222</td>\n\t\t\t\t\t\t\t\t<td>EL SALVADOR COLON SVC</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>226</td>\n\t\t\t\t\t\t\t\t<td>EKWELE GQE</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>230</td>\n\t\t\t\t\t\t\t\t<td>ETHIOPIAN BIRR ETB</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>232</td>\n\t\t\t\t\t\t\t\t<td>ERITREAN NAKTAN ERN</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>233</td>\n\t\t\t\t\t\t\t\t<td>ESTONIAN KROON EEK</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>238</td>\n\t\t\t\t\t\t\t\t<td>FALKLAND ISLANDS FKP</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>242</td>\n\t\t\t\t\t\t\t\t<td>FIJI DOLLAR FJD</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>262</td>\n\t\t\t\t\t\t\t\t<td>DJIBOUTI FRANC DJF</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>268</td>\n\t\t\t\t\t\t\t\t<td>GEORGIAN LARI GEL</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>270</td>\n\t\t\t\t\t\t\t\t<td>DALASI GMD</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>278</td>\n\t\t\t\t\t\t\t\t<td>MARK DER DDR DDM</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>288</td>\n\t\t\t\t\t\t\t\t<td>GHANA CEDI GHC</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>292</td>\n\t\t\t\t\t\t\t\t<td>GIBRALTAR POUND GIP</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>320</td>\n\t\t\t\t\t\t\t\t<td>QUETZAL GTQ</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>324</td>\n\t\t\t\t\t\t\t\t<td>SYLI GNS</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>328</td>\n\t\t\t\t\t\t\t\t<td>GUYANA DOLLAR GYD</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>332</td>\n\t\t\t\t\t\t\t\t<td>GOURDE HTG</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>340</td>\n\t\t\t\t\t\t\t\t<td>LEMPIRA HNL</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>344</td>\n\t\t\t\t\t\t\t\t<td>HONG KONG DOLLAR HKD</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>348</td>\n\t\t\t\t\t\t\t\t<td>FORINT HUF</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>352</td>\n\t\t\t\t\t\t\t\t<td>ICELAND KRONA ISK</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>356</td>\n\t\t\t\t\t\t\t\t<td>INDIAN RUPEE INR</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>360</td>\n\t\t\t\t\t\t\t\t<td>RUPIAH IDR</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>364</td>\n\t\t\t\t\t\t\t\t<td>IRANIAL RIAL IRR</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>365</td>\n\t\t\t\t\t\t\t\t<td>IRANIAN AIRLINE RATE IRA</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>368</td>\n\t\t\t\t\t\t\t\t<td>IRAQI DINAR IQD</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>376</td>\n\t\t\t\t\t\t\t\t<td>ISRAEL SHEKEL ILS</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>388</td>\n\t\t\t\t\t\t\t\t<td>JAMAICAN DOLLAR JMD</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>392</td>\n\t\t\t\t\t\t\t\t<td>YEN JPY</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>398</td>\n\t\t\t\t\t\t\t\t<td>TENGE KZT</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>400</td>\n\t\t\t\t\t\t\t\t<td>JORDANIAN DINAR JOD</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>404</td>\n\t\t\t\t\t\t\t\t<td>KENYAN SHILLING KES</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>408</td>\n\t\t\t\t\t\t\t\t<td>NORTH KOREAN WON KPW</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>410</td>\n\t\t\t\t\t\t\t\t<td>KOREAN WON KRW</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>414</td>\n\t\t\t\t\t\t\t\t<td>KUWAITI DINAR KWD</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>417</td>\n\t\t\t\t\t\t\t\t<td>KYRGYZSTAN SON KGS</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>418</td>\n\t\t\t\t\t\t\t\t<td>KIP LAK</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>422</td>\n\t\t\t\t\t\t\t\t<td>LEBANESE POUND LBP</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>426</td>\n\t\t\t\t\t\t\t\t<td>LESOTHO LOTI LSM</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>428</td>\n\t\t\t\t\t\t\t\t<td>LATVIAN LAT LVL</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>430</td>\n\t\t\t\t\t\t\t\t<td>LIBERIAN DOLLAR LRD</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>434</td>\n\t\t\t\t\t\t\t\t<td>LIBYAN DINAR LYD</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>440</td>\n\t\t\t\t\t\t\t\t<td>LITHUANIAN LITAS LTL</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>446</td>\n\t\t\t\t\t\t\t\t<td>PATACA MOP</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>450</td>\n\t\t\t\t\t\t\t\t<td>MALAGASY FRANC MGF</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>454</td>\n\t\t\t\t\t\t\t\t<td>MALAWI KWACHA MWK</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>458</td>\n\t\t\t\t\t\t\t\t<td>MALASYAN RINGGIT MYR</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>462</td>\n\t\t\t\t\t\t\t\t<td>MALDIVE RUPEE MVR</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>466</td>\n\t\t\t\t\t\t\t\t<td>MALI MLF</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>470</td>\n\t\t\t\t\t\t\t\t<td>MALTESE LIRA MTL</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>478</td>\n\t\t\t\t\t\t\t\t<td>OUGUIYA MRO</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>480</td>\n\t\t\t\t\t\t\t\t<td>MAURITIUS RUPEE MUR</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>484</td>\n\t\t\t\t\t\t\t\t<td>MEXICAN PESO MXP</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>496</td>\n\t\t\t\t\t\t\t\t<td>TUGRIK MNT</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>498</td>\n\t\t\t\t\t\t\t\t<td>MOLDOVIAN LEU MDL</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>504</td>\n\t\t\t\t\t\t\t\t<td>MORROCAN DIRHAM MAD</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>508</td>\n\t\t\t\t\t\t\t\t<td>METICAL MZM</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>512</td>\n\t\t\t\t\t\t\t\t<td>RIAL OMANI OMR</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>516</td>\n\t\t\t\t\t\t\t\t<td>NAMIBIAN DOLLAR NAD</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>524</td>\n\t\t\t\t\t\t\t\t<td>NEPALESE RUPEE NPR</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>532</td>\n\t\t\t\t\t\t\t\t<td>NETHERLANDS ANTILLIA ANG</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>533</td>\n\t\t\t\t\t\t\t\t<td>ARUBA AWG</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>536</td>\n\t\t\t\t\t\t\t\t<td>YUGOSLAVIAN NEW DIAN NTZ</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>548</td>\n\t\t\t\t\t\t\t\t<td>VANUATU VATU VUV</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>554</td>\n\t\t\t\t\t\t\t\t<td>NEW ZEALAND DOLLAR NZD</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>556</td>\n\t\t\t\t\t\t\t\t<td>NAIRA 566</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>558</td>\n\t\t\t\t\t\t\t\t<td>CORDOBA NIC</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>566</td>\n\t\t\t\t\t\t\t\t<td>NAIRA NGN</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>578</td>\n\t\t\t\t\t\t\t\t<td>NORWEGIAN KRONE NOK</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>582</td>\n\t\t\t\t\t\t\t\t<td>PACIFIC ISLAND PCI</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>586</td>\n\t\t\t\t\t\t\t\t<td>PAKISTAN RUPEE PKR</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>590</td>\n\t\t\t\t\t\t\t\t<td>BALBOA PAB</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>598</td>\n\t\t\t\t\t\t\t\t<td>KINA PGK</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>600</td>\n\t\t\t\t\t\t\t\t<td>GUARANI PYG</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>604</td>\n\t\t\t\t\t\t\t\t<td>PERU INTI PEI</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>608</td>\n\t\t\t\t\t\t\t\t<td>PHILIPPINE PESO PHP</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>616</td>\n\t\t\t\t\t\t\t\t<td>ZLOTY PLZ</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>624</td>\n\t\t\t\t\t\t\t\t<td>GUINEA</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>626</td>\n\t\t\t\t\t\t\t\t<td>TIMOR ESCUDO TPE</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>634</td>\n\t\t\t\t\t\t\t\t<td>QATARI RIAL QAR</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>642</td>\n\t\t\t\t\t\t\t\t<td>LEU ROL</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>643</td>\n\t\t\t\t\t\t\t\t<td>RUSSIAN ROUBLE RUB</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>646</td>\n\t\t\t\t\t\t\t\t<td>RWANDA FRANC RWF</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>654</td>\n\t\t\t\t\t\t\t\t<td>ST.HELENA POUND SHP</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>678</td>\n\t\t\t\t\t\t\t\t<td>DOBRA STD</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>682</td>\n\t\t\t\t\t\t\t\t<td>SAUDI RIYAL SAR</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>690</td>\n\t\t\t\t\t\t\t\t<td>SEYCHELLES RUPEE SCR</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>694</td>\n\t\t\t\t\t\t\t\t<td>LEONE SLL</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>702</td>\n\t\t\t\t\t\t\t\t<td>SINGAPORE DOLLAR SGD</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>703</td>\n\t\t\t\t\t\t\t\t<td>SLOVAK KORUNA SKK</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>704</td>\n\t\t\t\t\t\t\t\t<td>DONG VND</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>705</td>\n\t\t\t\t\t\t\t\t<td>SLOVENIAN TOLAR SIT</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>706</td>\n\t\t\t\t\t\t\t\t<td>SOMALI SHILLING SOS</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>710</td>\n\t\t\t\t\t\t\t\t<td>RAND ZAR</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>716</td>\n\t\t\t\t\t\t\t\t<td>ZIMBABWE DOLLAR ZWD</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>720</td>\n\t\t\t\t\t\t\t\t<td>YEMENI DINAR YDD</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>728</td>\n\t\t\t\t\t\t\t\t<td>SOUTH SUDANESE POUND SSP</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>736</td>\n\t\t\t\t\t\t\t\t<td>SUDANESE POUND SDP</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>737</td>\n\t\t\t\t\t\t\t\t<td>SUDAN AIRLINES SDA</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>740</td>\n\t\t\t\t\t\t\t\t<td>SURINAM GUILDER SRG</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>748</td>\n\t\t\t\t\t\t\t\t<td>LILANGENI SZL</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>752</td>\n\t\t\t\t\t\t\t\t<td>SWEDISH KRONA SEK</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>756</td>\n\t\t\t\t\t\t\t\t<td>SWISS FRANC CHF</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>760</td>\n\t\t\t\t\t\t\t\t<td>SYRIAN POUND SYP</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>762</td>\n\t\t\t\t\t\t\t\t<td>TAJIK RUBLE TJR</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>764</td>\n\t\t\t\t\t\t\t\t<td>BAHT THB</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>776</td>\n\t\t\t\t\t\t\t\t<td>PA'ANGA TOP</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>780</td>\n\t\t\t\t\t\t\t\t<td>TRINIDAD Y TOBAGO DO TTD</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>784</td>\n\t\t\t\t\t\t\t\t<td>UAE DIRHAM AED</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>788</td>\n\t\t\t\t\t\t\t\t<td>TUNISIAN DINAR TND</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>792</td>\n\t\t\t\t\t\t\t\t<td>TURKISH LIRA TRL</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>793</td>\n\t\t\t\t\t\t\t\t<td>PSEUDO TURKISH LIRA PTL</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>795</td>\n\t\t\t\t\t\t\t\t<td>MANAT TMM</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>800</td>\n\t\t\t\t\t\t\t\t<td>UGANDA SHILLING UGS</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>804</td>\n\t\t\t\t\t\t\t\t<td>KARBOVANET UAK</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>807</td>\n\t\t\t\t\t\t\t\t<td>MACEDONIAN DENAR MKD</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>810</td>\n\t\t\t\t\t\t\t\t<td>RUSSIAN ROUBLE RUR</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>818</td>\n\t\t\t\t\t\t\t\t<td>EGYPTIAN POUND EGP</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>826</td>\n\t\t\t\t\t\t\t\t<td>POUND STERLING GBP</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>834</td>\n\t\t\t\t\t\t\t\t<td>TANZANIAN SHILLING TZS</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>840</td>\n\t\t\t\t\t\t\t\t<td>DOLAR U.S.A. USD</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>858</td>\n\t\t\t\t\t\t\t\t<td>URUGUAYAN PESO UYP</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>860</td>\n\t\t\t\t\t\t\t\t<td>UZBEKISTAN SUM UZS</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>862</td>\n\t\t\t\t\t\t\t\t<td>BOLIVAR VEB</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>882</td>\n\t\t\t\t\t\t\t\t<td>TALA WST</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>886</td>\n\t\t\t\t\t\t\t\t<td>YEMINI RIAL YER</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>890</td>\n\t\t\t\t\t\t\t\t<td>NEW YUGOSLAVIAN DOLL YUD</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>891</td>\n\t\t\t\t\t\t\t\t<td>NEW DINAR YUG</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>894</td>\n\t\t\t\t\t\t\t\t<td>KWACHA ZMK</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>901</td>\n\t\t\t\t\t\t\t\t<td>NEW TAIWAN DOLLAR TWD</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>934</td>\n\t\t\t\t\t\t\t\t<td>NEW MANAT TMT</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>936</td>\n\t\t\t\t\t\t\t\t<td>GHANA CEDI GHS</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>941</td>\n\t\t\t\t\t\t\t\t<td>DINAR SERBIO RSD</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>943</td>\n\t\t\t\t\t\t\t\t<td>MOZAMBIQUE METICAL MZN</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>944</td>\n\t\t\t\t\t\t\t\t<td>AZERBAIJANIAN MANAT AZN</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>946</td>\n\t\t\t\t\t\t\t\t<td>NEW LEU RON</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>949</td>\n\t\t\t\t\t\t\t\t<td>TURKISH LIRA TRY</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>950</td>\n\t\t\t\t\t\t\t\t<td>CFA FRANC BEAC XAF</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>951</td>\n\t\t\t\t\t\t\t\t<td>EAST CARIBBEAN DOLLA XCD</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>952</td>\n\t\t\t\t\t\t\t\t<td>CFA FRANC BCEAO XOF</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>953</td>\n\t\t\t\t\t\t\t\t<td>CFP FRANC XPF</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>954</td>\n\t\t\t\t\t\t\t\t<td>E.C.U. EUROPEAN CUR XEU</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>967</td>\n\t\t\t\t\t\t\t\t<td>KWACHA ZMW</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>968</td>\n\t\t\t\t\t\t\t\t<td>SURINAME DOLLAR SRD</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>969</td>\n\t\t\t\t\t\t\t\t<td>ARIARY MGA</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>971</td>\n\t\t\t\t\t\t\t\t<td>AFGHANISTAN AFGHANI AFN</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>972</td>\n\t\t\t\t\t\t\t\t<td>TAJIKISTAN SOMONI TJS</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>973</td>\n\t\t\t\t\t\t\t\t<td>KWANZA ANGOLA AOA</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>974</td>\n\t\t\t\t\t\t\t\t<td>BELARUSSIAN RUBLE BYR</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>975</td>\n\t\t\t\t\t\t\t\t<td>NEW LEV BGN</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>976</td>\n\t\t\t\t\t\t\t\t<td>FRANCO DEL CONGO CDF</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>977</td>\n\t\t\t\t\t\t\t\t<td>BOSNIAN MARKA BAM</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>978</td>\n\t\t\t\t\t\t\t\t<td>EURO EUR</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>980</td>\n\t\t\t\t\t\t\t\t<td>HRYVNIA UAH</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>981</td>\n\t\t\t\t\t\t\t\t<td>GEORGIAN LARI GEL</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>985</td>\n\t\t\t\t\t\t\t\t<td>NEW POLISH ZLOTY PLN</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>986</td>\n\t\t\t\t\t\t\t\t<td>BRAZILIAN REAL BRL</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>991</td>\n\t\t\t\t\t\t\t\t<td>RAND FINANCIER ZAL</td>\n\t\t\t\t\t\t\t</tr></tbody>\n\t\t\t\t\t</table></div>\n\n\t\t\t\t\t<!-- \t*****************************\n        *****************************\n \t            TABLA DE IDIOMAS\n \t    *****************************\n \t    *****************************  -->\n\n\n\t\t\t\t\t<div id=\"idiomasTable_wrapper\" class=\"dataTables_wrapper no-footer\" style=\"height: 400px;\"><table id=\"idiomasTable\" title=\"Tabla Idiomas\" class=\"table table-striped errores-sis dataTable no-footer fix-head\" role=\"grid\">\n\t\t\t\t\t\t<thead>\n\t\t\t\t\t\t\t<tr role=\"row\"><th style=\"width: 100px;\" class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\"><input id=\"isoIdiomaInput\" class=\"errores filter\" data-column-index=\"0\" style=\"color: #555;\" value=\"\" placeholder=\"CÓDIGO ISO\" type=\"text\"></th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">Idioma</th></tr></thead>\n\t\t\t\t\t\t<tbody>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\t\t\t\t\t\t<tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>0</td>\n\t\t\t\t\t\t\t\t<td>Por defecto - Español</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>1</td>\n\t\t\t\t\t\t\t\t<td>Español</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>2</td>\n\t\t\t\t\t\t\t\t<td>English - Ingles</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>3</td>\n\t\t\t\t\t\t\t\t<td>Català</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>4</td>\n\t\t\t\t\t\t\t\t<td>Français - Frances</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>5</td>\n\t\t\t\t\t\t\t\t<td>Deutsch - Aleman</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>6</td>\n\t\t\t\t\t\t\t\t<td>Nederlands - Holandes</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>7</td>\n\t\t\t\t\t\t\t\t<td>Italiano</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>8</td>\n\t\t\t\t\t\t\t\t<td>Svenska - Sueco</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>9</td>\n\t\t\t\t\t\t\t\t<td>Português</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>10</td>\n\t\t\t\t\t\t\t\t<td>Valencià</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>11</td>\n\t\t\t\t\t\t\t\t<td>Polski - Polaco</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>12</td>\n\t\t\t\t\t\t\t\t<td>Galego</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>13</td>\n\t\t\t\t\t\t\t\t<td>Euskara</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>100</td>\n\t\t\t\t\t\t\t\t<td>български език - Bulgaro</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>156</td>\n\t\t\t\t\t\t\t\t<td>Chino</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>191</td>\n\t\t\t\t\t\t\t\t<td>Hrvatski - Croata</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>203</td>\n\t\t\t\t\t\t\t\t<td>Čeština - Checo</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>208</td>\n\t\t\t\t\t\t\t\t<td>Dansk - Danes</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>233</td>\n\t\t\t\t\t\t\t\t<td>Eesti keel - Estonio</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>246</td>\n\t\t\t\t\t\t\t\t<td>Suomi - Finlandes</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>300</td>\n\t\t\t\t\t\t\t\t<td>ελληνικά - Griego</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>348</td>\n\t\t\t\t\t\t\t\t<td>Magyar - Hungaro</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>392</td>\n\t\t\t\t\t\t\t\t<td>Japonés</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>428</td>\n\t\t\t\t\t\t\t\t<td>Latviešu valoda - Leton</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>440</td>\n\t\t\t\t\t\t\t\t<td>Lietuvių kalba - Lituano</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>470</td>\n\t\t\t\t\t\t\t\t<td>Malti - Maltés</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>642</td>\n\t\t\t\t\t\t\t\t<td>Română - Rumano</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>643</td>\n\t\t\t\t\t\t\t\t<td>ру́сский язы́к - Ruso</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>703</td>\n\t\t\t\t\t\t\t\t<td>Slovenský jazyk - Eslovaco</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>705</td>\n\t\t\t\t\t\t\t\t<td>Slovenski jezik - Esloveno</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>792</td>\n\t\t\t\t\t\t\t\t<td>Türkçe - Turco</td>\n\t\t\t\t\t\t\t</tr></tbody>\n\t\t\t\t\t</table></div>\n\n\t\t\t\t\t<!-- \t*****************************\n        *****************************\n \t          TABLA DS_RESPONSE\n \t    *****************************\n \t    *****************************  -->\n\n\n\t\t\t\t\t<div id=\"dsresponseTable_wrapper\" class=\"dataTables_wrapper no-footer\" style=\"height: 400px;\"><table id=\"dsresponseTable\" title=\"Tabla DS_RESPONSE\" class=\"table table-striped errores-sis dataTable no-footer fix-head\" role=\"grid\">\n\t\t\t\t\t\t<thead>\n\t\t\t\t\t\t\t<tr role=\"row\"><th style=\"width: 100px;\" class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\"><input id=\"codigoDSresponseInput\" class=\"errores filter\" data-column-index=\"0\" style=\"color: #555;\" value=\"\" placeholder=\"Código\" type=\"text\"></th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">Significado</th></tr></thead>\n\t\t\t\t\t\t<tbody>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\t\t\t\t\t\t<tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>0000 a 0099</td>\n\t\t\t\t\t\t\t\t<td>Transacción autorizada para pagos y preautorizaciones</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>900</td>\n\t\t\t\t\t\t\t\t<td>Transacción autorizada para devoluciones y\n\t\t\t\t\t\t\t\t\tconfirmaciones</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>400</td>\n\t\t\t\t\t\t\t\t<td>Transacción autorizada para anulaciones</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>101</td>\n\t\t\t\t\t\t\t\t<td>Tarjeta caducada</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>102</td>\n\t\t\t\t\t\t\t\t<td>Tarjeta en excepción transitoria o bajo sospecha de\n\t\t\t\t\t\t\t\t\tfraude</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>106</td>\n\t\t\t\t\t\t\t\t<td>Intentos de PIN excedidos</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>125</td>\n\t\t\t\t\t\t\t\t<td>Tarjeta no efectiva</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>129</td>\n\t\t\t\t\t\t\t\t<td>Código de seguridad (CVV2/CVC2) incorrecto</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>172</td>\n\t\t\t\t\t\t\t\t<td>Denegada, no repetir.</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>173</td>\n\t\t\t\t\t\t\t\t<td>Denegada, no repetir sin actualizar datos de tarjeta.</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>174</td>\n\t\t\t\t\t\t\t\t<td>Denegada, no repetir antes de 72 horas.</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>180</td>\n\t\t\t\t\t\t\t\t<td>Tarjeta ajena al servicio</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>184</td>\n\t\t\t\t\t\t\t\t<td>Error en la autenticación del titular</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>190</td>\n\t\t\t\t\t\t\t\t<td>Denegación del emisor sin especificar motivo</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>191</td>\n\t\t\t\t\t\t\t\t<td>Fecha de caducidad errónea</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>202</td>\n\t\t\t\t\t\t\t\t<td>Tarjeta en excepción transitoria o bajo sospecha de\n\t\t\t\t\t\t\t\t\tfraude con retirada de tarjeta</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>904</td>\n\t\t\t\t\t\t\t\t<td>Comercio no registrado en FUC</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>909</td>\n\t\t\t\t\t\t\t\t<td>Error de sistema</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>913</td>\n\t\t\t\t\t\t\t\t<td>Pedido repetido</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>944</td>\n\t\t\t\t\t\t\t\t<td>Sesión Incorrecta</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>950</td>\n\t\t\t\t\t\t\t\t<td>Operación de devolución no permitida</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>9912/912</td>\n\t\t\t\t\t\t\t\t<td>Emisor no disponible</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>9064</td>\n\t\t\t\t\t\t\t\t<td>Número de posiciones de la tarjeta incorrecto</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>9078</td>\n\t\t\t\t\t\t\t\t<td>Tipo de operación no permitida para esa tarjeta</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>9093</td>\n\t\t\t\t\t\t\t\t<td>Tarjeta no existente</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>9094</td>\n\t\t\t\t\t\t\t\t<td>Rechazo servidores internacionales</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>9104</td>\n\t\t\t\t\t\t\t\t<td>Comercio con \"titular seguro\" y titular sin clave de\n\t\t\t\t\t\t\t\t\tcompra segura</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>9218</td>\n\t\t\t\t\t\t\t\t<td>El comercio no permite op. seguras por entrada\n\t\t\t\t\t\t\t\t\t/operaciones</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>9253</td>\n\t\t\t\t\t\t\t\t<td>Tarjeta no cumple el check-digit</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>9256</td>\n\t\t\t\t\t\t\t\t<td>El comercio no puede realizar preautorizaciones</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>9257</td>\n\t\t\t\t\t\t\t\t<td>Esta tarjeta no permite operativa de preautorizaciones</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>9261</td>\n\t\t\t\t\t\t\t\t<td>Operación detenida por superar el control de\n\t\t\t\t\t\t\t\t\trestricciones en la entrada al SIS</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>9915</td>\n\t\t\t\t\t\t\t\t<td>A petición del usuario se ha cancelado el pago</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>9997</td>\n\t\t\t\t\t\t\t\t<td>Se está procesando otra transacción en SIS con la misma\n\t\t\t\t\t\t\t\t\ttarjeta</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>9998</td>\n\t\t\t\t\t\t\t\t<td>Operación en proceso de solicitud de datos de tarjeta</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>9999</td>\n\t\t\t\t\t\t\t\t<td>Operación que ha sido redirigida al emisor a autenticar</td>\n\t\t\t\t\t\t\t</tr></tbody>\n\t\t\t\t\t</table></div>\n\n\t\t\t\t\t<!-- \t*****************************\n        *****************************\n \t       TABLA TRANSACTION TYPE\n \t    *****************************\n \t    *****************************  -->\n\t\t\t\t\t<div id=\"dstransactiontypeTable_wrapper\" class=\"dataTables_wrapper no-footer\" style=\"height: 400px;\"><table id=\"dstransactiontypeTable\" title=\"Tabla\n\t\t\t\t\t\t\t\tDS_MERCHANT_TRANSACTIONTYPE\" class=\"table table-striped errores-sis dataTable no-footer fix-head\" role=\"grid\">\n\t\t\t\t\t\t<thead>\n\t\t\t\t\t\t\t<tr role=\"row\"><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">TIPO DE OPERACIÓN</th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">DS_MERCHANT_TRANSACTIONSTYPE</th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">ENTRADAS</th></tr></thead>\n\t\t\t\t\t\t<tbody>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\t\t\t\t\t\t<tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Autorización</td>\n\t\t\t\t\t\t\t\t<td>0</td>\n\t\t\t\t\t\t\t\t<td><ul>\n\t\t\t\t\t\t\t\t\t\t<li>Redirección</li>\n\t\t\t\t\t\t\t\t\t\t<li>REST/SOAP</li>\n\t\t\t\t\t\t\t\t\t</ul></td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Preautorización</td>\n\t\t\t\t\t\t\t\t<td>1</td>\n\t\t\t\t\t\t\t\t<td><ul>\n\t\t\t\t\t\t\t\t\t\t<li>Redirección</li>\n\t\t\t\t\t\t\t\t\t\t<li>REST/SOAP</li>\n\t\t\t\t\t\t\t\t\t</ul></td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Preautorización de reemplazo</td>\n\t\t\t\t\t\t\t\t<td>11</td>\n\t\t\t\t\t\t\t\t<td><ul>\n\t\t\t\t\t\t\t\t\t\t<li>Redirección</li>\n\t\t\t\t\t\t\t\t\t\t<li>REST/SOAP</li>\n\t\t\t\t\t\t\t\t\t</ul></td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Confirmación</td>\n\t\t\t\t\t\t\t\t<td>2</td>\n\t\t\t\t\t\t\t\t<td><ul>\n\t\t\t\t\t\t\t\t\t\t<li>Redirección</li>\n\t\t\t\t\t\t\t\t\t\t<li>REST/SOAP</li>\n\t\t\t\t\t\t\t\t\t</ul></td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Devolución</td>\n\t\t\t\t\t\t\t\t<td>3</td>\n\t\t\t\t\t\t\t\t<td><ul>\n\t\t\t\t\t\t\t\t\t\t<li>Redirección</li>\n\t\t\t\t\t\t\t\t\t\t<li>REST/SOAP</li>\n\t\t\t\t\t\t\t\t\t</ul></td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Preautorización Separada</td>\n\t\t\t\t\t\t\t\t<td>7</td>\n\t\t\t\t\t\t\t\t<td><ul>\n\t\t\t\t\t\t\t\t\t\t<li>Redirección</li>\n\t\t\t\t\t\t\t\t\t\t<li>REST/SOAP</li>\n\t\t\t\t\t\t\t\t\t</ul></td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Confirmación Separada</td>\n\t\t\t\t\t\t\t\t<td>8</td>\n\t\t\t\t\t\t\t\t<td><ul>\n\t\t\t\t\t\t\t\t\t\t<li>Redirección</li>\n\t\t\t\t\t\t\t\t\t\t<li>REST/SOAP</li>\n\t\t\t\t\t\t\t\t\t</ul></td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Anulación</td>\n\t\t\t\t\t\t\t\t<td>9</td>\n\t\t\t\t\t\t\t\t<td><ul>\n\t\t\t\t\t\t\t\t\t\t<li>Redirección</li>\n\t\t\t\t\t\t\t\t\t\t<li>REST/SOAP</li>\n\t\t\t\t\t\t\t\t\t</ul></td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Paygold</td>\n\t\t\t\t\t\t\t\t<td>15</td>\n\t\t\t\t\t\t\t\t<td><ul>\n\t\t\t\t\t\t\t\t\t\t<li>Redirección</li>\n\t\t\t\t\t\t\t\t\t\t<li>REST/SOAP</li>\n\t\t\t\t\t\t\t\t\t</ul></td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Autenticación Puce</td>\n\t\t\t\t\t\t\t\t<td>17</td>\n\t\t\t\t\t\t\t\t<td><ul>\n\t\t\t\t\t\t\t\t\t\t<li>REST/SOAP</li>\n\t\t\t\t\t\t\t\t\t</ul></td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Devolución sin original</td>\n\t\t\t\t\t\t\t\t<td>34</td>\n\t\t\t\t\t\t\t\t<td><ul>\n\t\t\t\t\t\t\t\t\t\t<li>Redirección</li>\n\t\t\t\t\t\t\t\t\t\t<li>REST/SOAP</li>\n\t\t\t\t\t\t\t\t\t</ul></td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Premio de apuestas</td>\n\t\t\t\t\t\t\t\t<td>37</td>\n\t\t\t\t\t\t\t\t<td><ul>\n\t\t\t\t\t\t\t\t\t\t<li>REST/SOAP</li>\n\t\t\t\t\t\t\t\t\t</ul></td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Anulación de pago</td>\n\t\t\t\t\t\t\t\t<td>45</td>\n\t\t\t\t\t\t\t\t<td><ul>\n\t\t\t\t\t\t\t\t\t\t<li>Redirección</li>\n\t\t\t\t\t\t\t\t\t\t<li>REST/SOAP</li>\n\t\t\t\t\t\t\t\t\t</ul></td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Anulación de devolución</td>\n\t\t\t\t\t\t\t\t<td>46</td>\n\t\t\t\t\t\t\t\t<td><ul>\n\t\t\t\t\t\t\t\t\t\t<li>Redirección</li>\n\t\t\t\t\t\t\t\t\t\t<li>REST/SOAP</li>\n\t\t\t\t\t\t\t\t\t</ul></td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Anulación de confirmación separada</td>\n\t\t\t\t\t\t\t\t<td>47</td>\n\t\t\t\t\t\t\t\t<td><ul>\n\t\t\t\t\t\t\t\t\t\t<li>Redirección</li>\n\t\t\t\t\t\t\t\t\t\t<li>REST/SOAP</li>\n\t\t\t\t\t\t\t\t\t</ul></td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Modificación de caducidad del enlace (Paygold)</td>\n\t\t\t\t\t\t\t\t<td>51</td>\n\t\t\t\t\t\t\t\t<td><ul>\n\t\t\t\t\t\t\t\t\t\t<li>Redirección</li>\n\t\t\t\t\t\t\t\t\t\t<li>REST/SOAP</li>\n\t\t\t\t\t\t\t\t\t</ul></td>\n\t\t\t\t\t\t\t</tr></tbody>\n\t\t\t\t\t</table></div>\n\t\t\t\t\t<!-- \t*****************************\n        *****************************\n \t             TABLA EMV3DS\n \t    *****************************\n \t    *****************************  -->\n\n\t\t\t\t\t<div id=\"dsemv3dsTable_wrapper\" class=\"dataTables_wrapper no-footer\" style=\"height: 400px;\"><table id=\"dsemv3dsTable\" title=\"Tabla DS_MERCHANT_EMV3DS\" class=\"table table-striped errores-sis dataTable no-footer fix-head\" role=\"grid\">\n\n\n\t\t\t\t\t\t<thead id=\"tableHeader\">\n\t\t\t\t\t\t\t<tr id=\"pp\" role=\"row\"><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">DATO</th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\"><input id=\"datoDSemv3dInput\" class=\"errores filter\" data-column-index=\"1\" style=\"color: #555;\" value=\"\" placeholder=\"NOMBRE DEL DATO\" type=\"text\"></th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">Long. / Tipo</th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">OPCION DEL PARÁMETRO<br> <select id=\"opcionDSemv3dInput\" class=\"errores filter\" data-column-index=\"3\" style=\"color: #555;\" value=\"\">\n\t\t\t\t\t\t\t\t\t\t<option value=\"\"></option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"OBLIGATORIO\">OBLIGATORIO</option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"OPCIONAL\">OPCIONAL</option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"CONDICIONAL\">CONDICIONAL</option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"RECOMENDABLE\">RECOMENDABLE</option>\n\t\t\t\t\t\t\t\t</select></th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">COMENTARIOS</th></tr>\n\t\t\t\t\t\t</thead>\n\t\t\t\t\t\t<tbody>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\t\t\t\t\t\t<tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Información adicional de la cuenta del cliene</td>\n\t\t\t\t\t\t\t\t<td>acctID</td>\n\t\t\t\t\t\t\t\t<td>Variable, máximo 64 / A-N</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>Información adicional sobre la cuenta</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Información de la cuenta del titular</td>\n\t\t\t\t\t\t\t\t<td>acctInfo</td>\n\t\t\t\t\t\t\t\t<td>JSON Data Type Object</td>\n\t\t\t\t\t\t\t\t<td>RECOMENDABLE</td>\n\t\t\t\t\t\t\t\t<td>Información adicional de la cuenta de usuario en\n\t\t\t\t\t\t\t\t\tel establecimiento.\n\t\t\t\t\t\t\t\t\t<br><br><b>***Se recomienda enviar este parámetro para mejorar la\n\t\t\t\t\t\t\t\t\texperiencia del usuario en el proceso de autenticación.</b>.<br><br>\n\t\t\t\t\t\t\t\t\t Ver tabla <a class=\"table-link\" style=\"color: #dc7c26;\" table-target=\"acctInfoTable\">acctInfo</a>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Indicador de coincidencia de dirección</td>\n\t\t\t\t\t\t\t\t<td>addrMatch</td>\n\t\t\t\t\t\t\t\t<td>1/A-N</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>Indica si la dirección de envío es la misma que la\n\t\t\t\t\t\t\t\t\tdirección de facturación\n\t\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t\t<li>Y= La dirección de envío es la misma que la de\n\t\t\t\t\t\t\t\t\t\t\tfacturación</li>\n\t\t\t\t\t\t\t\t\t\t<li>N= Las direcciones de envío y facturación son\n\t\t\t\t\t\t\t\t\t\t\tdiferentes</li>\n\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Ciudad de la dirección de facturación</td>\n\t\t\t\t\t\t\t\t<td>billAddrCity</td>\n\t\t\t\t\t\t\t\t<td>Variable, máximo 50 / A-N</td>\n\t\t\t\t\t\t\t\t<td><a data-toggle=\"popover\" data-placement=\"top\" data-content=\"Definido como Conditional por el estándar EMV 3DS, podría ser\n\t\t\t\t\t\t\t\t\trequerido según el\n\t\t\t\t\t\t\t\t\temisor de la\n\t\t\t\t\t\t\t\t\ttarjeta. Altamente recomendado para permitir autenticaciones\n\t\t\t\t\t\t\t\t\tbasadas en análisis del\n\t\t\t\t\t\t\t\t\triesgo (Risk\n\t\t\t\t\t\t\t\t\tBased Analisys) y facilitar una experiencia de compra sin\n\t\t\t\t\t\t\t\t\tfricción (frictionless).\n\t\t\t\t\t\t\t\t\tIgualmente\n\t\t\t\t\t\t\t\t\trecomendable si se solicita la aplicación de exenciones SCA\n\t\t\t\t\t\t\t\t\t(PSD2). \" data-original-title=\"\" title=\"\">OPCIONAL</a>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td>La ciudad de la dirección de facturación del titular de\n\t\t\t\t\t\t\t\t\tla tarjeta asociada a la compra</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>País de la dirección de facturación</td>\n\t\t\t\t\t\t\t\t<td>billAddrCountry</td>\n\t\t\t\t\t\t\t\t<td>3 / N</td>\n\t\t\t\t\t\t\t\t<td><a data-toggle=\"popover\" data-placement=\"top\" data-content=\"Obligatorio si se envía el billAddrState. \" data-original-title=\"\" title=\"\">\n\t\t\t\t\t\t\t\t\t\tCONDICIONAL</a></td>\n\t\t\t\t\t\t\t\t<td>Corresponde al código numérico (ISO 3166-1) del país de\n\t\t\t\t\t\t\t\t\tla dirección de facturación del titular de la tarjeta asociada\n\t\t\t\t\t\t\t\t\tasociado a la compra</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Dirección de facturación (línea 1)</td>\n\t\t\t\t\t\t\t\t<td>billAddrLine1</td>\n\t\t\t\t\t\t\t\t<td>Variable, máximo 50 / A-N</td>\n\t\t\t\t\t\t\t\t<td><a data-toggle=\"popover\" data-placement=\"top\" data-content=\"Definido como Conditional por el estándar EMV 3DS, podría ser\n\t\t\t\t\t\t\t\t\trequerido según el\n\t\t\t\t\t\t\t\t\temisor de la\n\t\t\t\t\t\t\t\t\ttarjeta. Altamente recomendado para permitir autenticaciones\n\t\t\t\t\t\t\t\t\tbasadas en análisis del\n\t\t\t\t\t\t\t\t\triesgo (Risk\n\t\t\t\t\t\t\t\t\tBased Analisys) y facilitar una experiencia de compra sin\n\t\t\t\t\t\t\t\t\tfricción (frictionless).\n\t\t\t\t\t\t\t\t\tIgualmente\n\t\t\t\t\t\t\t\t\trecomendable si se solicita la aplicación de exenciones SCA\n\t\t\t\t\t\t\t\t\t(PSD2). \" data-original-title=\"\" title=\"\">\n\t\t\t\t\t\t\t\t\t\tOPCIONAL</a></td>\n\t\t\t\t\t\t\t\t<td>Primera línea de la dirección de facturación del\n\t\t\t\t\t\t\t\t\ttitular de la tarjeta asociada a la compra</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Dirección de facturación (línea 2)</td>\n\t\t\t\t\t\t\t\t<td>billAddrLine2</td>\n\t\t\t\t\t\t\t\t<td>Variable, máximo 50 / A-N</td>\n\t\t\t\t\t\t\t\t<td><a data-toggle=\"popover\" data-placement=\"top\" data-content=\"Definido como Conditional por el estándar EMV 3DS, podría ser\n\t\t\t\t\t\t\t\t\trequerido según el\n\t\t\t\t\t\t\t\t\temisor de la\n\t\t\t\t\t\t\t\t\ttarjeta. Altamente recomendado para permitir autenticaciones\n\t\t\t\t\t\t\t\t\tbasadas en análisis del\n\t\t\t\t\t\t\t\t\triesgo (Risk\n\t\t\t\t\t\t\t\t\tBased Analisys) y facilitar una experiencia de compra sin\n\t\t\t\t\t\t\t\t\tfricción (frictionless).\n\t\t\t\t\t\t\t\t\tIgualmente\n\t\t\t\t\t\t\t\t\trecomendable si se solicita la aplicación de exenciones SCA\n\t\t\t\t\t\t\t\t\t(PSD2).\" data-original-title=\"\" title=\"\">\n\t\t\t\t\t\t\t\t\t\tOPCIONAL</a></td>\n\t\t\t\t\t\t\t\t<td>Segunda línea de la dirección de facturación del\n\t\t\t\t\t\t\t\t\ttitular de la tarjeta asociada a la compra.</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Dirección de facturación (línea 3)</td>\n\t\t\t\t\t\t\t\t<td>billAddrLine3</td>\n\t\t\t\t\t\t\t\t<td>Longitud: Variable, máximo 50 / A-N</td>\n\t\t\t\t\t\t\t\t<td><a data-toggle=\"popover\" data-placement=\"top\" data-content=\"Definido como Conditional por el estándar EMV 3DS, podría ser\n\t\t\t\t\t\t\t\t\trequerido según el\n\t\t\t\t\t\t\t\t\temisor de la\n\t\t\t\t\t\t\t\t\ttarjeta. Altamente recomendado para permitir autenticaciones\n\t\t\t\t\t\t\t\t\tbasadas en análisis del\n\t\t\t\t\t\t\t\t\triesgo (Risk\n\t\t\t\t\t\t\t\t\tBased Analisys) y facilitar una experiencia de compra sin\n\t\t\t\t\t\t\t\t\tfricción (frictionless).\n\t\t\t\t\t\t\t\t\tIgualmente\n\t\t\t\t\t\t\t\t\trecomendable si se solicita la aplicación de exenciones SCA\n\t\t\t\t\t\t\t\t\t(PSD2).\" data-original-title=\"\" title=\"\">\n\t\t\t\t\t\t\t\t\t\tOPCIONAL</a></td>\n\t\t\t\t\t\t\t\t<td>Tercera línea de la dirección de facturación del\n\t\t\t\t\t\t\t\t\ttitular de la tarjeta asociada a la compra.</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Código postal de la dirección de facturación</td>\n\t\t\t\t\t\t\t\t<td>billAddrPostCode</td>\n\t\t\t\t\t\t\t\t<td>Variable, máximo 16 / A-N</td>\n\t\t\t\t\t\t\t\t<td><a data-toggle=\"popover\" data-placement=\"top\" data-content=\"Definido como Conditional por el estándar EMV 3DS, podría ser\n\t\t\t\t\t\t\t\t\trequerido según el\n\t\t\t\t\t\t\t\t\temisor de la\n\t\t\t\t\t\t\t\t\ttarjeta. Altamente recomendado para permitir autenticaciones\n\t\t\t\t\t\t\t\t\tbasadas en análisis del\n\t\t\t\t\t\t\t\t\triesgo (Risk\n\t\t\t\t\t\t\t\t\tBased Analisys) y facilitar una experiencia de compra sin\n\t\t\t\t\t\t\t\t\tfricción (frictionless).\n\t\t\t\t\t\t\t\t\tIgualmente\n\t\t\t\t\t\t\t\t\trecomendable si se solicita la aplicación de exenciones SCA\n\t\t\t\t\t\t\t\t\t(PSD2).\" data-original-title=\"\" title=\"\">\n\t\t\t\t\t\t\t\t\t\tOPCIONAL</a></td>\n\t\t\t\t\t\t\t\t<td>Código postal de la dirección de facturación del\n\t\t\t\t\t\t\t\t\ttitular de la tarjeta asociada a la compra.</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Estado o provincia de la dirección de facturación</td>\n\t\t\t\t\t\t\t\t<td>billAddrState</td>\n\t\t\t\t\t\t\t\t<td>Variable, máximo 3 / A-N</td>\n\t\t\t\t\t\t\t\t<td><a data-toggle=\"popover\" data-placement=\"top\" data-content=\"Definido como Conditional por el estándar EMV 3DS, podría ser\n\t\t\t\t\t\t\t\t\trequerido según el\n\t\t\t\t\t\t\t\t\temisor de la\n\t\t\t\t\t\t\t\t\ttarjeta. Altamente recomendado para permitir autenticaciones\n\t\t\t\t\t\t\t\t\tbasadas en análisis del\n\t\t\t\t\t\t\t\t\triesgo (Risk\n\t\t\t\t\t\t\t\t\tBased Analisys) y facilitar una experiencia de compra sin\n\t\t\t\t\t\t\t\t\tfricción (frictionless).\n\t\t\t\t\t\t\t\t\tIgualmente\n\t\t\t\t\t\t\t\t\trecomendable si se solicita la aplicación de exenciones SCA\n\t\t\t\t\t\t\t\t\t(PSD2).\" data-original-title=\"\" title=\"\">\n\t\t\t\t\t\t\t\t\t\tOPCIONAL</a></td>\n\t\t\t\t\t\t\t\t<td>El estado o provincia de la dirección de facturación\n\t\t\t\t\t\t\t\t\tdel titular de la tarjeta asociada a esta compra.<br>Corresponde\n\t\t\t\t\t\t\t\t\tal código de subdivisión ISO 3166-2\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Browser Accept Headers</td>\n\t\t\t\t\t\t\t\t<td>browserAcceptHeader</td>\n\t\t\t\t\t\t\t\t<td>Variable, máximo 2048 / A-N</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>HTTP accept headers enviado desde el navegador .</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Browser Screen Color Depth</td>\n\t\t\t\t\t\t\t\t<td>browserColorDepth</td>\n\t\t\t\t\t\t\t\t<td>1-2 /A-N</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>Valor que representa la profundidad de bits de la\n\t\t\t\t\t\t\t\t\tpaleta de colores para mostrar imágenes, en bits por píxel.<br>Obtenido\n\t\t\t\t\t\t\t\t\tdesde el navegador del titular de la tarjeta utilizando la\n\t\t\t\t\t\t\t\t\tpropiedad screen.colorDepth.<br>Valores aceptados:<br>1\n\t\t\t\t\t\t\t\t\t= 1 bit<br>4 = 4 bits<br>8 = 8 bits<br>15 = 15\n\t\t\t\t\t\t\t\t\tbits<br>16 = 16 bit<br>24 = 24 bits<br>32 = 32\n\t\t\t\t\t\t\t\t\tbits<br>48 = 48 bits<br>Enviar 1 en el caso que no\n\t\t\t\t\t\t\t\t\ttenga habilitado javascript (versión 3DS2.1.0)\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Browser IP Address</td>\n\t\t\t\t\t\t\t\t<td>browserIP</td>\n\t\t\t\t\t\t\t\t<td>Variable, máximo 45 / A-N</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>IP del navegador. Value accepted: IPv4 address Ejemplo:\n\t\t\t\t\t\t\t\t\t1.12.123.255 IPv6 address.\n\t\t\t\t\t\t\t\t\tEjemplo:2011:0db8:85a3:0101:0101:8a2e:0370:7334</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Browser Java Enabled</td>\n\t\t\t\t\t\t\t\t<td>browserJavaEnabled</td>\n\t\t\t\t\t\t\t\t<td>Boolean</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>Indicador de capacidad del navegador de ejecutar Java\n\t\t\t\t\t\t\t\t\tValores aceptados:\n\t\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t\t<li>true</li>\n\t\t\t\t\t\t\t\t\t\t<li>false</li>\n\t\t\t\t\t\t\t\t\t</ul> Si no tiene habilitado javascript enviar false (versión\n\t\t\t\t\t\t\t\t\t3DS2.1.0)\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Browser JavaScript Enabled</td>\n\t\t\t\t\t\t\t\t<td>browserJavascriptEnabled</td>\n\t\t\t\t\t\t\t\t<td>Boolean</td>\n\t\t\t\t\t\t\t\t<td>CONDICIONAL</td>\n\t\t\t\t\t\t\t\t<td>Indicador de capacidad del navegador de ejecutar\n\t\t\t\t\t\t\t\t\tJavascript Valores aceptados:\n\t\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t\t<li>true</li>\n\t\t\t\t\t\t\t\t\t\t<li>false</li>\n\t\t\t\t\t\t\t\t\t</ul>.Si no tiene habilitado javascript enviar false (versión\n\t\t\t\t\t\t\t\t\t3DS2.1.0)\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Browser Language</td>\n\t\t\t\t\t\t\t\t<td>browserLanguage</td>\n\t\t\t\t\t\t\t\t<td>Variable, 1-8 / A-N</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>Idioma del navegador definido en IETF BCP47 . Es el\n\t\t\t\t\t\t\t\t\tvalor retornado por la propiedad navigator.language</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Browser Screen Height</td>\n\t\t\t\t\t\t\t\t<td>browserScreenHeight</td>\n\t\t\t\t\t\t\t\t<td>Variable, 1-6 / A-N</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>Altura total de la pantalla en píxeles<br>El valor\n\t\t\t\t\t\t\t\t\tse devuelve de la propiedad screen.height<br>Enviar 0 en\n\t\t\t\t\t\t\t\t\tel caso que no tenga habilitado javascript (versión 3Ds2.1.0)\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Browser Screen Width</td>\n\t\t\t\t\t\t\t\t<td>browserScreenWidth</td>\n\t\t\t\t\t\t\t\t<td>Variable, 1-6 / A-N</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>Ancho total de la pantalla en píxeles.<br>El valor\n\t\t\t\t\t\t\t\t\tse devuelve de la propiedad screen.width<br>Enviar 0 en el\n\t\t\t\t\t\t\t\t\tcaso que no tenga habilitado javascript (version 3DS2.1.0)\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Browser Time Zone</td>\n\t\t\t\t\t\t\t\t<td>browserTZ</td>\n\t\t\t\t\t\t\t\t<td>1-5 / A-N</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>Diferencia horaria entre la hora UTC y la hora local\n\t\t\t\t\t\t\t\t\tdel navegador, en minutos<br>Value accepted:<br>Value\n\t\t\t\t\t\t\t\t\tis returned from the getTimezoneOffset() method<br>Enviar\n\t\t\t\t\t\t\t\t\t0 en el caso que no tenga habilitado javascript (version\n\t\t\t\t\t\t\t\t\t3DS2.1.0)\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Browser User-Agent</td>\n\t\t\t\t\t\t\t\t<td>browserUserAgent</td>\n\t\t\t\t\t\t\t\t<td>Variable, máximo 2048 / A-N</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>Http user-agent header<br>Si la longitud total del\n\t\t\t\t\t\t\t\t\tUser-Agent enviado por el navegador supera los 2048 caracteres,\n\t\t\t\t\t\t\t\t\tel valor será truncado\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Nombre del titular</td>\n\t\t\t\t\t\t\t\t<td>cardholderName</td>\n\t\t\t\t\t\t\t\t<td>Variable, 2-45 / A-N</td>\n\t\t\t\t\t\t\t\t<td><a data-toggle=\"popover\" data-placement=\"top\" data-content=\"Definido como Conditional por el estándar EMV 3DS, podría ser\n\t\t\t\t\t\t\t\t\trequerido según el\n\t\t\t\t\t\t\t\t\temisor de la\n\t\t\t\t\t\t\t\t\ttarjeta. Altamente recomendado para permitir autenticaciones\n\t\t\t\t\t\t\t\t\tbasadas en análisis del\n\t\t\t\t\t\t\t\t\triesgo (Risk\n\t\t\t\t\t\t\t\t\tBased Analisys) y facilitar una experiencia de compra sin\n\t\t\t\t\t\t\t\t\tfricción (frictionless).\n\t\t\t\t\t\t\t\t\tIgualmente\n\t\t\t\t\t\t\t\t\trecomendable si se solicita la aplicación de exenciones SCA\n\t\t\t\t\t\t\t\t\t(PSD2).\" data-original-title=\"\" title=\"\">\n\t\t\t\t\t\t\t\t\t\tOPCIONAL</a></td>\n\t\t\t\t\t\t\t\t<td>Nombre del titular</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Tamaño de ventana del challenge</td>\n\t\t\t\t\t\t\t\t<td>challengeWindowSize</td>\n\t\t\t\t\t\t\t\t<td>2 / A-N</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>\"Dimensión de ventana de challenge que el banco emisor\n\t\t\t\t\t\t\t\t\tpresentará al cliente para realizar la autenticación<br>Valores\n\t\t\t\t\t\t\t\t\tposibles (tamaño en píxeles):<br>01 = 250 x 400<br>02\n\t\t\t\t\t\t\t\t\t= 390 x 400<br>03 = 500 x 600<br>04 = 600 x 400<br>05\n\t\t\t\t\t\t\t\t\t= Full screen (Valor por defecto<br>El tamaño\n\t\t\t\t\t\t\t\t\tprecondigurado es el ancho x alto en píxeles de la ventana del\n\t\t\t\t\t\t\t\t\tnavegador\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Cres de respuesta del ACS al Challenge</td>\n\t\t\t\t\t\t\t\t<td>cres</td>\n\t\t\t\t\t\t\t\t<td>Variable length / JSON Data Type: String</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>Cres de respuesta del ACS, se deberá enviar de\n\t\t\t\t\t\t\t\t\trespuesta de la autenticación. <br>cres codificado\n\t\t\t\t\t\t\t\t\tBase64url<br>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Dirección de correo electrónico del titular</td>\n\t\t\t\t\t\t\t\t<td>Email</td>\n\t\t\t\t\t\t\t\t<td>Variable, máximo 254 / A-N</td>\n\t\t\t\t\t\t\t\t<td><a data-toggle=\"popover\" data-placement=\"top\" data-content=\"Definido como Conditional por el estándar EMV 3DS, podría ser\n\t\t\t\t\t\t\t\t\trequerido según el\n\t\t\t\t\t\t\t\t\temisor de la\n\t\t\t\t\t\t\t\t\ttarjeta. Altamente recomendado para permitir autenticaciones\n\t\t\t\t\t\t\t\t\tbasadas en análisis del\n\t\t\t\t\t\t\t\t\triesgo (Risk\n\t\t\t\t\t\t\t\t\tBased Analisys) y facilitar una experiencia de compra sin\n\t\t\t\t\t\t\t\t\tfricción (frictionless).\n\t\t\t\t\t\t\t\t\tIgualmente\n\t\t\t\t\t\t\t\t\trecomendable si se solicita la aplicación de exenciones SCA\n\t\t\t\t\t\t\t\t\t(PSD2).\" data-original-title=\"\" title=\"\">\n\t\t\t\t\t\t\t\t\t\tRECOMENDABLE</a></td>\n\t\t\t\t\t\t\t\t<td>La dirección de correo electrónico asociada con la\n\t\t\t\t\t\t\t\t\tcuenta del titular de la tarjeta.\n\t\t\t\t\t\t\t\t\t<br><br><b>***Se recomienda enviar este parámetro para mejorar la\n\t\t\t\t\t\t\t\t\texperiencia del usuario en el proceso de autenticación.</b></td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Número de teléfono del domicilio</td>\n\t\t\t\t\t\t\t\t<td>homePhone</td>\n\t\t\t\t\t\t\t\t<td>JSON Data Type: Object</td>\n\t\t\t\t\t\t\t\t<td><a data-toggle=\"popover\" data-placement=\"top\" data-content=\"Definido como Conditional por el estándar EMV 3DS, podría ser\n\t\t\t\t\t\t\t\t\trequerido según el\n\t\t\t\t\t\t\t\t\temisor de la\n\t\t\t\t\t\t\t\t\ttarjeta. Altamente recomendado para permitir autenticaciones\n\t\t\t\t\t\t\t\t\tbasadas en análisis del\n\t\t\t\t\t\t\t\t\triesgo (Risk\n\t\t\t\t\t\t\t\t\tBased Analisys) y facilitar una experiencia de compra sin\n\t\t\t\t\t\t\t\t\tfricción (frictionless).\n\t\t\t\t\t\t\t\t\tIgualmente\n\t\t\t\t\t\t\t\t\trecomendable si se solicita la aplicación de exenciones SCA\n\t\t\t\t\t\t\t\t\t(PSD2).\" data-original-title=\"\" title=\"\">\n\t\t\t\t\t\t\t\t\t\tRECOMENDABLE</a></td>\n\t\t\t\t\t\t\t\t<td>Número de teléfono del domicilio del titular.\n\t\t\t\t\t\t\t\t<br><br><b>***Se recomienda enviar este parámetro para mejorar la\n\t\t\t\t\t\t\t\t\texperiencia del usuario en el proceso de autenticación.</b><br><br> Ver <a class=\"table-link\" style=\"color: #dc7c26;\" table-target=\"phoneTable\">tabla Phone</a></td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Indicador de riesgo del comerciante</td>\n\t\t\t\t\t\t\t\t<td>merchantRiskIndicator</td>\n\t\t\t\t\t\t\t\t<td>JSON Data Type: Object</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>Altamente recomendable el envío de esta información.\n\t\t\t\t\t\t\t\t\tInformación adicional del comercio que representa la evaluación\n\t\t\t\t\t\t\t\t\tdel nivel de riesgo de fraude para la autenticación. Ver tabla\n\t\t\t\t\t\t\t\t\t<a class=\"table-link\" style=\"color: #dc7c26;\" table-target=\"riskTable\">merchantRiskIndicator</a>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Número de móvil del titular</td>\n\t\t\t\t\t\t\t\t<td>mobilePhone</td>\n\t\t\t\t\t\t\t\t<td>JSON Data Type: Object</td>\n\t\t\t\t\t\t\t\t<td><a data-toggle=\"popover\" data-placement=\"top\" data-content=\"Definido como Conditional por el estándar EMV 3DS, podría ser\n\t\t\t\t\t\t\t\t\trequerido según el\n\t\t\t\t\t\t\t\t\temisor de la\n\t\t\t\t\t\t\t\t\ttarjeta. Altamente recomendado para permitir autenticaciones\n\t\t\t\t\t\t\t\t\tbasadas en análisis del\n\t\t\t\t\t\t\t\t\triesgo (Risk\n\t\t\t\t\t\t\t\t\tBased Analisys) y facilitar una experiencia de compra sin\n\t\t\t\t\t\t\t\t\tfricción (frictionless).\n\t\t\t\t\t\t\t\t\tIgualmente\n\t\t\t\t\t\t\t\t\trecomendable si se solicita la aplicación de exenciones SCA\n\t\t\t\t\t\t\t\t\t(PSD2).\" data-original-title=\"\" title=\"\">\n\t\t\t\t\t\t\t\t\t\tOPCIONAL</a></td>\n\t\t\t\t\t\t\t\t<td>Número de teléfono móvil del titular. Ver tabla <a class=\"table-link\" style=\"color: #dc7c26;\" table-target=\"phoneTable\">tabla Phone</a></td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>URL de notificación de respuesta del challenge</td>\n\t\t\t\t\t\t\t\t<td>notificationURL</td>\n\t\t\t\t\t\t\t\t<td>Variable, máximo 256 / A-N</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>Url del comercio que recibirá la notificación con el\n\t\t\t\t\t\t\t\t\tmensaje CRes al finaliza el challenge</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Versión del protocolo 3DSecure</td>\n\t\t\t\t\t\t\t\t<td>protocolVersion</td>\n\t\t\t\t\t\t\t\t<td>Variable 5-8 / A-N</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>Versión de protocolo 3DSecure Valores posibles:\n\t\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t\t<li>1.0.2</li>\n\t\t\t\t\t\t\t\t\t\t<li>2.1.0</li>\n\t\t\t\t\t\t\t\t\t\t<li>2.2.0</li>\n\t\t\t\t\t\t\t\t\t</ul>\n\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Datos de pago aplazado</td>\n\t\t\t\t\t\t\t\t<td>purchaseInstalData</td>\n\t\t\t\t\t\t\t\t<td>Variable, máximo 3 / N</td>\n\t\t\t\t\t\t\t\t<td><a data-toggle=\"popover\" data-placement=\"top\" data-content=\"Obligatorio para operaciones Instalment.\" data-original-title=\"\" title=\"\">\n\t\t\t\t\t\t\t\t\t\tCONDICIONAL</a></td>\n\t\t\t\t\t\t\t\t<td>Indica el número máximo de autorizaciones en pago\n\t\t\t\t\t\t\t\t\taplazado Valores aceptados: El valor debe ser mayor que 1</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Finalización de pago recurrente</td>\n\t\t\t\t\t\t\t\t<td>recurringExpiry</td>\n\t\t\t\t\t\t\t\t<td>8 / A-N</td>\n\t\t\t\t\t\t\t\t<td><a data-toggle=\"popover\" data-placement=\"top\" data-content=\"Obligatorio para operaciones Recurring e Instalment.\" data-original-title=\"\" title=\"\">\n\t\t\t\t\t\t\t\t\t\tCONDICIONAL</a></td>\n\t\t\t\t\t\t\t\t<td>La fecha a partir de la cual no se harán más\n\t\t\t\t\t\t\t\t\tautorizaciones Formato aceptado: YYYYMMDD</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Frecuencia de pagos recurrentes</td>\n\t\t\t\t\t\t\t\t<td>recurringFrequency</td>\n\t\t\t\t\t\t\t\t<td>Variable, máximo 4 / A-N</td>\n\t\t\t\t\t\t\t\t<td><a data-toggle=\"popover\" data-placement=\"top\" data-content=\"Obligatorio para operaciones Recurring e Instalment.\" data-original-title=\"\" title=\"\">\n\t\t\t\t\t\t\t\t\t\tCONDICIONAL</a></td>\n\t\t\t\t\t\t\t\t<td>Indica el mínimo número de días entre autorizaciones</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Ciudad de la dirección de envío</td>\n\t\t\t\t\t\t\t\t<td>shipAddrCity</td>\n\t\t\t\t\t\t\t\t<td>Variable, máximo 50 / A-N</td>\n\t\t\t\t\t\t\t\t<td><a data-toggle=\"popover\" data-placement=\"top\" data-content=\"Definido como Conditional por el estándar EMV 3DS, podría ser\n\t\t\t\t\t\t\t\t\trequerido según el\n\t\t\t\t\t\t\t\t\temisor de la\n\t\t\t\t\t\t\t\t\ttarjeta. Altamente recomendado para permitir autenticaciones\n\t\t\t\t\t\t\t\t\tbasadas en análisis del\n\t\t\t\t\t\t\t\t\triesgo (Risk\n\t\t\t\t\t\t\t\t\tBased Analisys) y facilitar una experiencia de compra sin\n\t\t\t\t\t\t\t\t\tfricción (frictionless).\n\t\t\t\t\t\t\t\t\tIgualmente\n\t\t\t\t\t\t\t\t\trecomendable si se solicita la aplicación de exenciones SCA\n\t\t\t\t\t\t\t\t\t(PSD2). \" data-original-title=\"\" title=\"\">\n\t\t\t\t\t\t\t\t\t\tOPCIONAL</a></td>\n\t\t\t\t\t\t\t\t<td>Ciudad de la dirección de envío solicitada por el\n\t\t\t\t\t\t\t\t\ttitular de la tarjeta</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>País de la dirección de envío</td>\n\t\t\t\t\t\t\t\t<td>shipAddrCountry</td>\n\t\t\t\t\t\t\t\t<td>3 / N</td>\n\t\t\t\t\t\t\t\t<td><a data-toggle=\"popover\" data-placement=\"top\" data-content=\"Obligatorio si se envía el shipAddrState . \" data-original-title=\"\" title=\"\">\n\t\t\t\t\t\t\t\t\t\tCONDICIONAL</a></td>\n\t\t\t\t\t\t\t\t<td>Corresponde al código numérico (ISO 3166-1) del país de\n\t\t\t\t\t\t\t\t\tla dirección de envío solicitada por el titular de la tarjeta</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Dirección de envío (línea 1)</td>\n\t\t\t\t\t\t\t\t<td>shipAddrLine1</td>\n\t\t\t\t\t\t\t\t<td>Variable, máximo 50 / A-N</td>\n\t\t\t\t\t\t\t\t<td><a data-toggle=\"popover\" data-placement=\"top\" data-content=\"Definido como Conditional por el estándar EMV 3DS, podría ser\n\t\t\t\t\t\t\t\t\trequerido según el\n\t\t\t\t\t\t\t\t\temisor de la\n\t\t\t\t\t\t\t\t\ttarjeta. Altamente recomendado para permitir autenticaciones\n\t\t\t\t\t\t\t\t\tbasadas en análisis del\n\t\t\t\t\t\t\t\t\triesgo (Risk\n\t\t\t\t\t\t\t\t\tBased Analisys) y facilitar una experiencia de compra sin\n\t\t\t\t\t\t\t\t\tfricción (frictionless).\n\t\t\t\t\t\t\t\t\tIgualmente\n\t\t\t\t\t\t\t\t\trecomendable si se solicita la aplicación de exenciones SCA\n\t\t\t\t\t\t\t\t\t(PSD2). \" data-original-title=\"\" title=\"\">\n\t\t\t\t\t\t\t\t\t\tRECOMENDABLE</a></td>\n\t\t\t\t\t\t\t\t<td>Primera línea de la dirección de envío solicitada por\n\t\t\t\t\t\t\t\t\tel titular de la tarjeta.\n\t\t\t\t\t\t\t\t\t<br><br><b>***Se recomienda enviar este parámetro para mejorar la\n\t\t\t\t\t\t\t\t\texperiencia del usuario en el proceso de autenticación.</b></td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Dirección de envío (línea 2)</td>\n\t\t\t\t\t\t\t\t<td>shipAddrLine2</td>\n\t\t\t\t\t\t\t\t<td>Variable, máximo 50 / A-N</td>\n\t\t\t\t\t\t\t\t<td><a data-toggle=\"popover\" data-placement=\"top\" data-content=\"Definido como Conditional por el estándar EMV 3DS, podría ser\n\t\t\t\t\t\t\t\t\trequerido según el\n\t\t\t\t\t\t\t\t\temisor de la\n\t\t\t\t\t\t\t\t\ttarjeta. Altamente recomendado para permitir autenticaciones\n\t\t\t\t\t\t\t\t\tbasadas en análisis del\n\t\t\t\t\t\t\t\t\triesgo (Risk\n\t\t\t\t\t\t\t\t\tBased Analisys) y facilitar una experiencia de compra sin\n\t\t\t\t\t\t\t\t\tfricción (frictionless).\n\t\t\t\t\t\t\t\t\tIgualmente\n\t\t\t\t\t\t\t\t\trecomendable si se solicita la aplicación de exenciones SCA\n\t\t\t\t\t\t\t\t\t(PSD2). \" data-original-title=\"\" title=\"\">\n\t\t\t\t\t\t\t\t\t\tOPCIONAL</a></td>\n\t\t\t\t\t\t\t\t<td>Segunda línea de la dirección de envío solicitada por\n\t\t\t\t\t\t\t\t\tel titular de la tarjeta.</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Dirección de envío (línea 3)</td>\n\t\t\t\t\t\t\t\t<td>shipAddrLine3</td>\n\t\t\t\t\t\t\t\t<td>Variable, máximo 50 / A-N</td>\n\t\t\t\t\t\t\t\t<td><a data-toggle=\"popover\" data-placement=\"top\" data-content=\"Definido como Conditional por el estándar EMV 3DS, podría ser\n\t\t\t\t\t\t\t\t\trequerido según el\n\t\t\t\t\t\t\t\t\temisor de la\n\t\t\t\t\t\t\t\t\ttarjeta. Altamente recomendado para permitir autenticaciones\n\t\t\t\t\t\t\t\t\tbasadas en análisis del\n\t\t\t\t\t\t\t\t\triesgo (Risk\n\t\t\t\t\t\t\t\t\tBased Analisys) y facilitar una experiencia de compra sin\n\t\t\t\t\t\t\t\t\tfricción (frictionless).\n\t\t\t\t\t\t\t\t\tIgualmente\n\t\t\t\t\t\t\t\t\trecomendable si se solicita la aplicación de exenciones SCA\n\t\t\t\t\t\t\t\t\t(PSD2). \" data-original-title=\"\" title=\"\">\n\t\t\t\t\t\t\t\t\t\tOPCIONAL</a></td>\n\t\t\t\t\t\t\t\t<td>Tercera línea de la dirección de envío solicitada por\n\t\t\t\t\t\t\t\t\tel titular de la tarjeta</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Código postal de la dirección de envío</td>\n\t\t\t\t\t\t\t\t<td>shipAddrPostCode</td>\n\t\t\t\t\t\t\t\t<td>Variable, máximo 16 / A-N</td>\n\t\t\t\t\t\t\t\t<td><a data-toggle=\"popover\" data-placement=\"top\" data-content=\"Definido como Conditional por el estándar EMV 3DS, podría ser\n\t\t\t\t\t\t\t\t\trequerido según el\n\t\t\t\t\t\t\t\t\temisor de la\n\t\t\t\t\t\t\t\t\ttarjeta. Altamente recomendado para permitir autenticaciones\n\t\t\t\t\t\t\t\t\tbasadas en análisis del\n\t\t\t\t\t\t\t\t\triesgo (Risk\n\t\t\t\t\t\t\t\t\tBased Analisys) y facilitar una experiencia de compra sin\n\t\t\t\t\t\t\t\t\tfricción (frictionless).\n\t\t\t\t\t\t\t\t\tIgualmente\n\t\t\t\t\t\t\t\t\trecomendable si se solicita la aplicación de exenciones SCA\n\t\t\t\t\t\t\t\t\t(PSD2). \" data-original-title=\"\" title=\"\">\n\t\t\t\t\t\t\t\t\t\tOPCIONAL</a></td>\n\t\t\t\t\t\t\t\t<td>El código postal de la dirección de envío solicitada\n\t\t\t\t\t\t\t\t\tpor el titular de la tarjeta.</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Estado o provincia de la dirección de envío</td>\n\t\t\t\t\t\t\t\t<td>shipAddrState</td>\n\t\t\t\t\t\t\t\t<td>Variable, máximo 3 / A-N</td>\n\t\t\t\t\t\t\t\t<td><a data-toggle=\"popover\" data-placement=\"top\" data-content=\"Definido como Conditional por el estándar EMV 3DS, podría ser\n\t\t\t\t\t\t\t\t\trequerido según el\n\t\t\t\t\t\t\t\t\temisor de la\n\t\t\t\t\t\t\t\t\ttarjeta. Altamente recomendado para permitir autenticaciones\n\t\t\t\t\t\t\t\t\tbasadas en análisis del\n\t\t\t\t\t\t\t\t\triesgo (Risk\n\t\t\t\t\t\t\t\t\tBased Analisys) y facilitar una experiencia de compra sin\n\t\t\t\t\t\t\t\t\tfricción (frictionless).\n\t\t\t\t\t\t\t\t\tIgualmente\n\t\t\t\t\t\t\t\t\trecomendable si se solicita la aplicación de exenciones SCA\n\t\t\t\t\t\t\t\t\t(PSD2). \" data-original-title=\"\" title=\"\">\n\t\t\t\t\t\t\t\t\t\tOPCIONAL</a></td>\n\t\t\t\t\t\t\t\t<td>El estado o provincia de la dirección de envío asociada\n\t\t\t\t\t\t\t\t\tcon la tarjeta utilizada para esta compra. Corresponde al\n\t\t\t\t\t\t\t\t\tcódigo de subdivisión ISO 3166-2</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Indicador del resultado del 3DSMethod</td>\n\t\t\t\t\t\t\t\t<td>threeDSCompInd</td>\n\t\t\t\t\t\t\t\t<td>1 / Y,N,U</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>Indica si el 3DSMethod se ha ejecutado<br>Values\n\t\t\t\t\t\t\t\t\taccepted:<br>\n\t\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t\t<li>Y= Completado correctamente</li>\n\t\t\t\t\t\t\t\t\t\t<li>N =Completado con errores</li>\n\t\t\t\t\t\t\t\t\t\t<li>U = 3DSMethod no ejecutado</li>\n\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Tipo de información 3dSecure enviada</td>\n\t\t\t\t\t\t\t\t<td>threeDSInfo</td>\n\t\t\t\t\t\t\t\t<td>Variable, máximo 32/A-N</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>Tipo de solicitud. Valores posibles:\n\t\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t\t<li>CardData</li>\n\t\t\t\t\t\t\t\t\t\t<li>AuthenticationData</li>\n\t\t\t\t\t\t\t\t\t\t<li>ChallengeResponse</li>\n\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t</td></tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Información de inicio de sesión en el establecimiento</td>\n\t\t\t\t\t\t\t\t<td>threeDSRequestorAuthenticationInfo</td>\n\t\t\t\t\t\t\t\t<td>JSON Data Type: Object</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>Información adicional sobre como el cliente se\n\t\t\t\t\t\t\t\t\tautenticó en el inicio de sesión en la cuenta del comercio. Ver\n\t\t\t\t\t\t\t\t\ttabla <a class=\"table-link\" style=\"color: #dc7c26;\" table-target=\"dsauthenticationTable\">threeDSRequestorAuthenticationInfo</a>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Preferencia del comercio para la autenticación</td>\n\t\t\t\t\t\t\t\t<td>threeDSRequestorChallengeInd</td>\n\t\t\t\t\t\t\t\t<td>2/JSON Data Type: String</td>\n\t\t\t\t\t\t\t\t<td><a data-toggle=\"popover\" data-placement=\"top\" data-content=\"CONDICIONAL para conexiones host to host (webservice soap o rest)\n\t\t\t\t\t\t\t\tPara conexiones host to host, en el caso de operaciones rechazadas con código 195 (soft decline) el\n\t\t\t\t\t\t\t\tcomercio deberá reenviar la operación con el parámetro threDSRequestorChallengeInd= 4, indicando así la necesidad de que\n\t\t\t\t\t\t\t\tal cliente se le aplique autenticación reforzada (a petición del emisor)\n\t\t\t\t\t\t\t\tOPCIONAL para conexiones por Redirección \" data-original-title=\"\" title=\"\">\n\t\t\t\t\t\t\t\t\t\tCONDICIONAL</a></td>\n\t\t\t\t\t\t\t\t<td>Indica la preferencia del comercio para que se aplique\n\t\t\t\t\t\t\t\t\tautenticación reforzada (SCA) a su cliente en esta operación.\n\t\t\t\t\t\t\t\t\tValores posibles: 03: indica que el comercio desea que se\n\t\t\t\t\t\t\t\t\taplique autenticación reforzada (SCA) a su cliente 04: indica\n\t\t\t\t\t\t\t\t\tque hay un mandato que obliga al cliente a la autenticación\n\t\t\t\t\t\t\t\t\treforzada (SCA) En caso de no enviarse este parámetro no se\n\t\t\t\t\t\t\t\t\tindicará preferencia alguna al emisor y la operación puede ser\n\t\t\t\t\t\t\t\t\texencionada, autenticada con SCA o autenticada sin SCA\n\t\t\t\t\t\t\t\t\t(frictionless).</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Identificador de transacción 3DSecure</td>\n\t\t\t\t\t\t\t\t<td>threeDSServerTransID</td>\n\t\t\t\t\t\t\t\t<td>36 / A-N</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>El mismo valor devuelto en la consutla de tarjeta</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Teléfono del trabajo</td>\n\t\t\t\t\t\t\t\t<td>workPhone</td>\n\t\t\t\t\t\t\t\t<td>JSON Data Type: Object</td>\n\t\t\t\t\t\t\t\t<td><a data-toggle=\"popover\" data-placement=\"top\" data-content=\"Definido como Conditional por el estándar EMV 3DS, podría ser\n\t\t\t\t\t\t\t\t\trequerido según el\n\t\t\t\t\t\t\t\t\temisor de la\n\t\t\t\t\t\t\t\t\ttarjeta. Altamente recomendado para permitir autenticaciones\n\t\t\t\t\t\t\t\t\tbasadas en análisis del\n\t\t\t\t\t\t\t\t\triesgo (Risk\n\t\t\t\t\t\t\t\t\tBased Analisys) y facilitar una experiencia de compra sin\n\t\t\t\t\t\t\t\t\tfricción (frictionless).\n\t\t\t\t\t\t\t\t\tIgualmente\n\t\t\t\t\t\t\t\t\trecomendable si se solicita la aplicación de exenciones SCA\n\t\t\t\t\t\t\t\t\t(PSD2). \" data-original-title=\"\" title=\"\">\n\t\t\t\t\t\t\t\t\t\tOPCIONAL</a></td>\n\t\t\t\t\t\t\t\t<td>Número de teléfono del trabajo.Ver tabla <a class=\"table-link\" style=\"color: #dc7c26;\" table-target=\"phoneTable\">tabla Phone</a></td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Información de la autenticación previa</td>\n\t\t\t\t\t\t\t\t<td>threeDSRequestorPriorAuthenticationInfo</td>\n\t\t\t\t\t\t\t\t<td>JSON Data Type: Object</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>Datos de la autenticación previa. Estos datos pueden\n\t\t\t\t\t\t\t\t\tser requeridos en determinadas operativas. Por ejemplo, en\n\t\t\t\t\t\t\t\t\trecurrentes EMV 3DS subsiguientes deberá enviarse en este campo\n\t\t\t\t\t\t\t\t\tel json Object threeDSRequestorPriorAuthenticationInfo de la\n\t\t\t\t\t\t\t\t\trecurrente inicial, es decir, lo mismo que se devolvió en el\n\t\t\t\t\t\t\t\t\tthreeDSRequestorPriorAuthenticationInfo (DS_EMV3DS) en la\n\t\t\t\t\t\t\t\t\trecurrente inicial. Para más información consultar el apartado\n\t\t\t\t\t\t\t\t\tFuncionalidades Avanzadas EMV3DS en las guías de integración</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Preferencia del comercio para la autenticación</td>\n\t\t\t\t\t\t\t\t<td>threeDSRequestorChallengeInd</td>\n\t\t\t\t\t\t\t\t<td>2/JSON Data Type: String</td>\n\t\t\t\t\t\t\t\t<td>CONDICIONAL</td>\n\t\t\t\t\t\t\t\t<td>Indica la preferencia del comercio para que se aplique autenticación\n\t\t\t\t\t\t\t\t\treforzada (SCA) a su cliente en esta operación. Valores posibles:\n\t\t\t\t\t\t\t\t\t<br><br>\n\t\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t<li>03: indica que el comercio desea que se aplique autenticación reforzada (SCA) a su cliente</li>\n\t\t\t\t\t\t\t\t\t<li>04: indica que hay un mandato que obliga al cliente a la autenticación reforzada (SCA) </li>\n\t\t\t\t\t\t\t\t\t</ul>\n\n\t\t\t\t\t\t\t\t\tEn caso de no enviarse este parámetro no se indicará preferencia alguna al emisor y la operación puede\n\t\t\t\t\t\t\t\t\tser exencionada, autenticada con SCA o autenticada sin SCA (frictionless).</td>\n\t\t\t\t\t\t\t</tr></tbody>\n\t\t\t\t\t</table></div>\n\t\t\t\t\t<!-- \t*****************************\n        *****************************\n \t             TABLA PHONE\n \t    *****************************\n \t    *****************************  -->\n\n\n\n\t\t\t\t\t<div id=\"phoneTable_wrapper\" class=\"dataTables_wrapper no-footer\" style=\"height: 400px;\"><table id=\"phoneTable\" title=\"Tabla Phone\" class=\"table table-striped errores-sis dataTable no-footer fix-head\" role=\"grid\">\n\n\t\t\t\t\t\t<thead>\n\t\t\t\t\t\t<tr role=\"row\"><td colspan=\"4\" rowspan=\"1\"><i><b>NOTA:</b>Los números de teléfono enviados en estos parámetros deben ir estructurados\n\t\t\t\t\t\t\t\tindicando en campos independientes el prefijo del país (campo <b>\"cc\"</b>) y el número de\n\t\t\t\t\t\t\t\tteléfono del abonado (campo <b>\"subscriber\"</b>) de forma obligatoria.</i><br>\n\n\t\t\t\t\t\t\t\tPor ejemplo:<br>\n\n \t\t\t\t\t\t\t\t\t\t\t <code>\"mobilePhone\": {<br>\n \t\t\t\t\t\t\t\t\t\t     \"cc\": \"34\",<br>\n                                             \"subscriber\": \"699999999\"<br>\n                                             }</code><br>\n\n                                <i><b>NOTA-1:</b> En ningún caso se debe omitir alguno de los campos o enviarlo vacío.</i><br>\n                                Los siguientes ejemplos serían incorrectos:<br>\n\n                                            <code> \"mobilePhone\": {<br>\n                                             \"subscriber\": \"699999999\"<br>\n                                             }</code><br>\n\n                                            <code> \"mobilePhone\": {<br>\n                                             \"cc\": \"\",<br>\n                                             \"subscriber\": \"699999999\"<br>\n                                             }</code><br>\n\n                                            <code>\"mobilePhone\": {\"699999999\"}</code><br>\n\n                                           <code> \"mobilePhone\": {\"\"}</code><br>\n\n                                <i><b>NOTA-2:</b> En el caso de no disponer de los datos completos deberá omitirse el\n                                \t\t\t\tparámero <b>\"mobilePhone\"</b> / <b>\"workPhone\"</b> / <b>\"homePhone\"</b>.</i>\n                                </td></tr>\n\n\t\t\t\t\t\t\t<tr role=\"row\"><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">DATO</th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">NOMBRE DEL DATO</th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">Long./Tipo</th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">COMENTARIOS</th></tr>\n\t\t\t\t\t\t</thead>\n\t\t\t\t\t\t\t<tbody>\n\n\n\n\t\t\t\t\t<tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Prefijo</td>\n\t\t\t\t\t\t\t\t<td>cc</td>\n\t\t\t\t\t\t\t\t<td>1 -3 / N</td>\n\t\t\t\t\t\t\t\t<td>Indicativo del país correspondiente al número de teléfono.</td>\n\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Numeración</td>\n\t\t\t\t\t\t\t\t<td>Subscriber</td>\n\t\t\t\t\t\t\t\t<td>Máximo 15 / N</td>\n\t\t\t\t\t\t\t\t<td>Numeración correspondiente al número de teléfono.</td>\n\n\t\t\t\t\t\t\t</tr></tbody></table></div>\n\n\n\n\t\t\t\t\t<!-- \t*****************************\n        *****************************\n \t      TABLA DS_AUTHENTICATION\n \t    *****************************\n \t    *****************************  -->\n\n\t\t\t\t\t<div id=\"dsauthenticationTable_wrapper\" class=\"dataTables_wrapper no-footer\" style=\"height: 400px;\"><table id=\"dsauthenticationTable\" title=\"Tabla\n\t\t\t\t\t\t\t\t\t\tthreeDSRequestorAuthenticationI\" class=\"table table-striped errores-sis dataTable no-footer fix-head\" role=\"grid\">\n\t\t\t\t\t\t<thead>\n\t\t\t\t\t\t\t<tr role=\"row\"><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">DATO</th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">NOMBRE DEL DATO</th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">long/Tipo</th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">COMENTARIOS</th></tr></thead>\n\t\t\t\t\t\t<tbody>\n\n\n\n\t\t\t\t\t\t<tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Datos de inicio de sesión</td>\n\t\t\t\t\t\t\t\t<td>threeDSReqAuthData</td>\n\t\t\t\t\t\t\t\t<td>Máximo 2048 / A-N</td>\n\t\t\t\t\t\t\t\t<td>Datos que documentan y soportan un proceso de\n\t\t\t\t\t\t\t\t\tautenticación especifico. No está especificado el contenido en\n\t\t\t\t\t\t\t\t\tla versión actual del protocolo</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Método de autenticación en el inicio de sesión</td>\n\t\t\t\t\t\t\t\t<td>threeDSReqAuthMethod</td>\n\t\t\t\t\t\t\t\t<td>2 / A-N</td>\n\t\t\t\t\t\t\t\t<td>Mecanismo utilizado por el titular para autenticarse en\n\t\t\t\t\t\t\t\t\tel comercio. Valores aceptados:<br>01 = No 3DS Requestor\n\t\t\t\t\t\t\t\t\tauthentication occurred (i.e. cardholder “logged in” as guest)<br>02\n\t\t\t\t\t\t\t\t\t= Login to the cardholder account at the 3DS Requestor system\n\t\t\t\t\t\t\t\t\tusing 3DS Requestor’s own credentials<br>03 = Login to the\n\t\t\t\t\t\t\t\t\tcardholder account at the 3DS Requestor system using federated\n\t\t\t\t\t\t\t\t\tID<br>04 = Login to the cardholder account at the 3DS\n\t\t\t\t\t\t\t\t\tRequestor system using issuer credentials<br>05 = Login to\n\t\t\t\t\t\t\t\t\tthe cardholder account at the 3DS Requestor system using\n\t\t\t\t\t\t\t\t\tthird-party authentication<br>06 = Login to the cardholder\n\t\t\t\t\t\t\t\t\taccount at the 3DS Requestor system using FIDO Authenticator<br>07–79\n\t\t\t\t\t\t\t\t\t= Reserved<br>80–99 = Reserved\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Fecha Hora de autenticación (inicio de sesión)</td>\n\t\t\t\t\t\t\t\t<td>threeDSReqAuth Timestamp</td>\n\t\t\t\t\t\t\t\t<td>12 / N</td>\n\t\t\t\t\t\t\t\t<td>Fecha y hora UTC de la autenticación Date format =\n\t\t\t\t\t\t\t\t\tYYYYMMDDHHMM</td>\n\t\t\t\t\t\t\t</tr></tbody>\n\t\t\t\t\t</table></div>\n\n\t\t\t\t\t<!-- \t*****************************\n        *****************************\n \t\t\t\tTABLA RISK\n \t    *****************************\n \t    *****************************  -->\n\n\n\t\t\t\t\t<div id=\"riskTable_wrapper\" class=\"dataTables_wrapper no-footer\" style=\"height: 400px;\"><table id=\"riskTable\" title=\"Tabla merchantRiskIndicator\" class=\"table table-striped errores-sis dataTable no-footer fix-head\" role=\"grid\">\n\t\t\t\t\t\t<thead>\n\t\t\t\t\t\t\t<tr role=\"row\"><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">DATO</th><th style=\"width: 130px;\" class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\"><input id=\"datoRiskInput\" class=\"errores filter\" data-column-index=\"1\" style=\"color: #555;\" value=\"\" placeholder=\"NOMBRE DEL DATO\" type=\"text\"></th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">long/Tipo</th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">COMENTARIOS</th></tr></thead>\n\t\t\t\t\t\t<tbody>\n\n\n\n\n\n\n\n\n\n\t\t\t\t\t\t<tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Dirección de entrega electrónica</td>\n\t\t\t\t\t\t\t\t<td>deliveryEmailAddress</td>\n\t\t\t\t\t\t\t\t<td>Máximo 254 / A-N</td>\n\t\t\t\t\t\t\t\t<td>Para la entrega electrónica, la dirección de correo\n\t\t\t\t\t\t\t\t\telectrónico a la que se entregó la mercancía</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Plazo de entrega</td>\n\t\t\t\t\t\t\t\t<td>deliveryTimeframe</td>\n\t\t\t\t\t\t\t\t<td>2 / A-N</td>\n\t\t\t\t\t\t\t\t<td>Indica el plazo de entrega de la mercancía. Valores\n\t\t\t\t\t\t\t\t\taceptados:<br>01 = Electronic Delivery<br>02 = Same\n\t\t\t\t\t\t\t\t\tday shipping<br>03 = Overmight shipping<br>04 =\n\t\t\t\t\t\t\t\t\tTwo-day or more shipping\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Importe en compras de tarjetas prepago / regalo</td>\n\t\t\t\t\t\t\t\t<td>giftCardAmount</td>\n\t\t\t\t\t\t\t\t<td>máximo 15 / A-N</td>\n\t\t\t\t\t\t\t\t<td>Para compras de tarjetas prepago o tarjetas regalo, el\n\t\t\t\t\t\t\t\t\timporte total de la compra en unidades principales (por\n\t\t\t\t\t\t\t\t\tejemplo, USD 123,.45 es 123)</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Recuento de tarjetas preapago/regalo</td>\n\t\t\t\t\t\t\t\t<td>giftCardCount</td>\n\t\t\t\t\t\t\t\t<td>2 / N</td>\n\t\t\t\t\t\t\t\t<td>Para la compra de tarjeta prepago o tarjetas regalo,\n\t\t\t\t\t\t\t\t\trecuento toal de tarjetas prepago o tarjetas/códigosregalo\n\t\t\t\t\t\t\t\t\tcomprados.</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Código de moneda de tajeta prepago/regalo</td>\n\t\t\t\t\t\t\t\t<td>giftCardCurr</td>\n\t\t\t\t\t\t\t\t<td>3 / N</td>\n\t\t\t\t\t\t\t\t<td>Para la compra de tarjeta prepago / regalo, el código\n\t\t\t\t\t\t\t\t\tISO-4217 de moneda de la tarjeta</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Fecha prevista de compra preordenada</td>\n\t\t\t\t\t\t\t\t<td>preOrderDate</td>\n\t\t\t\t\t\t\t\t<td>8 / N</td>\n\t\t\t\t\t\t\t\t<td>Para una compra preordenada, la fecha prevista de\n\t\t\t\t\t\t\t\t\tdisponibilidad de la mercancía. Date format = YYYYMMDD</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Indicador de disponibilidad del pedido</td>\n\t\t\t\t\t\t\t\t<td>preOrderPurchaseInd</td>\n\t\t\t\t\t\t\t\t<td>2 / A-N</td>\n\t\t\t\t\t\t\t\t<td>\"Indica si el titular de la tarjeta realiza un pedido\n\t\t\t\t\t\t\t\t\tcon disponibilidad o fecha de lanzamiento futuros. Valores\n\t\t\t\t\t\t\t\t\taceptados:<br>01 = Merchandise available<br>02 =\n\t\t\t\t\t\t\t\t\tFuture availability\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Indicador de recompra</td>\n\t\t\t\t\t\t\t\t<td>reorderItemsInd</td>\n\t\t\t\t\t\t\t\t<td>2 / A-N</td>\n\t\t\t\t\t\t\t\t<td>\"Indica si el titular de la tarjeta está reordenando\n\t\t\t\t\t\t\t\t\tmercancía comprada previamente. Valores aceptados:<br>01 =\n\t\t\t\t\t\t\t\t\tFirst time ordered<br>01 = Reordered\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Método de envío</td>\n\t\t\t\t\t\t\t\t<td>shipIndicator</td>\n\t\t\t\t\t\t\t\t<td>2 / A-N</td>\n\t\t\t\t\t\t\t\t<td>\"Indica el método de envío elegido para la transacción.\n\t\t\t\t\t\t\t\t\tLos comercios deben elegir el código del indicador de envío que\n\t\t\t\t\t\t\t\t\tdescriba con mayor precisión la transacción específica del\n\t\t\t\t\t\t\t\t\ttitular de la tarjeta, no su actividad comercial en general.<br>Si\n\t\t\t\t\t\t\t\t\tse incluyen uno o más artículos en la venta, utilice el código\n\t\t\t\t\t\t\t\t\tdel Indicador de envío para los bienes físicos, o si todos los\n\t\t\t\t\t\t\t\t\tproductos son digitales, utilice el código del Indicador de\n\t\t\t\t\t\t\t\t\tenvío que describe el artículo más caro.<br>Valores\n\t\t\t\t\t\t\t\t\taceptados:<br>01 = Ship to cardholder's billing address<br>02\n\t\t\t\t\t\t\t\t\t= Ship to another verified address on file with merchant<br>03\n\t\t\t\t\t\t\t\t\t= Ship to address that is different than the cardholder's\n\t\t\t\t\t\t\t\t\tbilling address<br>04 = \"Ship to Store\" / Pick-up at local\n\t\t\t\t\t\t\t\t\tstore (Store address shall be populated in shipping address\n\t\t\t\t\t\t\t\t\tfields)<br>05 = Digital goods (includes online services,\n\t\t\t\t\t\t\t\t\telectronic gift cards and redemption codes)<br>06 = Travel\n\t\t\t\t\t\t\t\t\tand Event tickets, not shipped<br>06 = Travel and Event\n\t\t\t\t\t\t\t\t\ttickets, not shipped<br>07 = Other (for example, Gaming,\n\t\t\t\t\t\t\t\t\tdigital services not shipped, emedia subscriptions, etc.)\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr></tbody>\n\t\t\t\t\t</table></div>\n\n\n\t\t\t\t\t<!-- \t*****************************\n        *****************************\n \t\t\t\tTABLA TRA (acctInfo)\n \t    *****************************\n \t    *****************************  -->\n\n\t\t\t\t\t<div id=\"acctInfoTable_wrapper\" class=\"dataTables_wrapper no-footer\" style=\"height: 400px;\"><table id=\"acctInfoTable\" title=\"Tabla AcctInfo\" class=\"table table-striped errores-sis dataTable no-footer fix-head\" role=\"grid\">\n\t\t\t\t\t\t<thead>\n\t\t\t\t\t\t\t<tr role=\"row\"><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">DATO</th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\"><input id=\"datoAcctInput\" class=\"errores filter\" data-column-index=\"1\" style=\"color: #555; width: 140px\" value=\"\" placeholder=\"NOMBRE\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tDEL DATO\" type=\"text\"></th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">Long/Tipo</th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">COMENTARIOS</th></tr>\n\t\t\t\t\t\t</thead>\n\t\t\t\t\t\t<tbody>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\t\t\t\t\t\t<tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Indicador de permanencia de la cuenta</td>\n\t\t\t\t\t\t\t\t<td>chAccAgeInd</td>\n\t\t\t\t\t\t\t\t<td>2 / A-N</td>\n\t\t\t\t\t\t\t\t<td>\"Periodo de tiempo que el titular de la tarjeta ha\n\t\t\t\t\t\t\t\t\ttenido la cuenta en el comercio. Valores posibles:<br> 01\n\t\t\t\t\t\t\t\t\t= No account (guest check-out) <br> 02 = Created during\n\t\t\t\t\t\t\t\t\tthis transaction <br> 03 = Less than 30 days <br> 04\n\t\t\t\t\t\t\t\t\t= 30-60 days <br> 05 = More than 60 days <br>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Fecha de modificación de la cuenta</td>\n\t\t\t\t\t\t\t\t<td>chAccChange</td>\n\t\t\t\t\t\t\t\t<td>8 / N</td>\n\t\t\t\t\t\t\t\t<td>Fecha en que se modificó por última vez la cuenta del\n\t\t\t\t\t\t\t\t\ttitular de la tarjeta en el comercio, incluida la dirección de\n\t\t\t\t\t\t\t\t\tfacturación o de envío, la nueva cuenta de pago o los nuevos\n\t\t\t\t\t\t\t\t\tusuarios agregados.<br><br><b>***Se recomienda enviar este parámetro para mejorar la\n\t\t\t\t\t\t\t\t\texperiencia del usuario en el proceso de autenticación.</b>\n\t\t\t\t\t\t\t\t\t<br>Date format = YYYYMMDD</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Indicador de modificación de la cuenta</td>\n\t\t\t\t\t\t\t\t<td>chAccChangeInd</td>\n\t\t\t\t\t\t\t\t<td>2 / A-N</td>\n\t\t\t\t\t\t\t\t<td>\"Período de tiempo transcurrido desde que se modificó\n\t\t\t\t\t\t\t\t\tpor última vez la información de la cuenta del titular de la\n\t\t\t\t\t\t\t\t\ttarjeta en el comercio, incluida la dirección de facturación o\n\t\t\t\t\t\t\t\t\tde envío, la nueva cuenta de pago o los nuevos usuarios\n\t\t\t\t\t\t\t\t\tagregados. Valores aceptados:<br>01 = Modificado en esta\n\t\t\t\t\t\t\t\t\ttransacción <br>02 = Menos de 30 días<br>03 = 30-60\n\t\t\t\t\t\t\t\t\tdías <br>04 = Más de 60 días <br>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Fecha de alta</td>\n\t\t\t\t\t\t\t\t<td>chAccDate</td>\n\t\t\t\t\t\t\t\t<td>9 / N</td>\n\t\t\t\t\t\t\t\t<td>Fecha en que el titular de la tarjeta abrió la cuenta\n\t\t\t\t\t\t\t\t\ten el comercio.\n\t\t\t\t\t\t\t\t\t<br><br><b>***Se recomienda enviar este parámetro para mejorar la\n\t\t\t\t\t\t\t\t\texperiencia del usuario en el proceso de autenticación.</b><br>\n\t\t\t\t\t\t\t\t\t Date format = YYYYMMDD</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Fecha de cambio de contraseña</td>\n\t\t\t\t\t\t\t\t<td>chAccPwChange</td>\n\t\t\t\t\t\t\t\t<td>8 / N</td>\n\t\t\t\t\t\t\t\t<td>Fecha en que el titular tuvo un cambio de contraseña en\n\t\t\t\t\t\t\t\t\tla cuenta del comercio o un restablecimiento de la cuenta. Date\n\t\t\t\t\t\t\t\t\tformat = YYYYMMDD</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Indicador de cambio de contraseña</td>\n\t\t\t\t\t\t\t\t<td>chAccPwChangeInd</td>\n\t\t\t\t\t\t\t\t<td>2 / A-N</td>\n\t\t\t\t\t\t\t\t<td>\"Indica el período de tiempo desde que la cuenta del\n\t\t\t\t\t\t\t\t\ttitular de la tarjeta en el comercio tuvo un cambio de\n\t\t\t\t\t\t\t\t\tcontraseña o restablecimiento de cuenta. Valores aceptados: <br>01\n\t\t\t\t\t\t\t\t\t= No change <br>02 = Changed during this transaction <br>03\n\t\t\t\t\t\t\t\t\t= Less than 30 days <br>04 = 30-60 days <br>05 = More\n\t\t\t\t\t\t\t\t\tthan 60 days <br>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Número de compras 6 meses</td>\n\t\t\t\t\t\t\t\t<td>nbPurchaseAccount</td>\n\t\t\t\t\t\t\t\t<td>máximo 4 / N</td>\n\t\t\t\t\t\t\t\t<td>Númerco de compras con esta cuenta durante los últimos\n\t\t\t\t\t\t\t\t\tseis meses</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Intentos de agregar tarjeta 24 h</td>\n\t\t\t\t\t\t\t\t<td>provisionAttemptsDay</td>\n\t\t\t\t\t\t\t\t<td>máximo 3 / N</td>\n\t\t\t\t\t\t\t\t<td>Número de intentos de agregar tarjeta en las últimas 24\n\t\t\t\t\t\t\t\t\thoras</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Número de transacciones 24 h</td>\n\t\t\t\t\t\t\t\t<td>txnActivityDay</td>\n\t\t\t\t\t\t\t\t<td>máximo 3 / N</td>\n\t\t\t\t\t\t\t\t<td>Número de transacciones (exitosas y abandonadas) para\n\t\t\t\t\t\t\t\t\testa cuenta del titular de la tarjeta en el comercio en todas\n\t\t\t\t\t\t\t\t\tlas cuentas de pago en las últimas 24 horas.</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Número de transacciones año anterior</td>\n\t\t\t\t\t\t\t\t<td>txnActivityYear</td>\n\t\t\t\t\t\t\t\t<td>máximo 3 / N</td>\n\t\t\t\t\t\t\t\t<td>Número de transacciones (exitosas y abandonadas) para\n\t\t\t\t\t\t\t\t\testa cuenta del titular de la tarjeta en el comercio en todas\n\t\t\t\t\t\t\t\t\tlas cuentas de pago del año anterior.\n\t\t\t\t\t\t\t\t\t<br><br><b>***Se recomienda enviar este parámetro para mejorar la\n\t\t\t\t\t\t\t\t\texperiencia del usuario en el proceso de autenticación.</b></td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Alta de cuenta de pago</td>\n\t\t\t\t\t\t\t\t<td>paymentAccAge</td>\n\t\t\t\t\t\t\t\t<td>8 / N</td>\n\t\t\t\t\t\t\t\t<td>Fecha en que la cuenta de pago se inscribió en la\n\t\t\t\t\t\t\t\t\tcuenta del titular de la tarjeta en el comercio. Date format =\n\t\t\t\t\t\t\t\t\tYYYYMMDD</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Indicador de creación de cuenta de pago</td>\n\t\t\t\t\t\t\t\t<td>paymentAccInd</td>\n\t\t\t\t\t\t\t\t<td>2 / A-N</td>\n\t\t\t\t\t\t\t\t<td>\"Indica el período de tiempo que la cuenta de pago se\n\t\t\t\t\t\t\t\t\tinscribió en la cuenta del titular de la tarjeta en el\n\t\t\t\t\t\t\t\t\tcomercio. Valores aceptados: <br>01 = No account (guest\n\t\t\t\t\t\t\t\t\tcheck-out) <br>02 = During this transaction <br>03 =\n\t\t\t\t\t\t\t\t\tLess than 30 days <br>04 = 30-60 days <br>05 = More\n\t\t\t\t\t\t\t\t\tthan 60 days\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Fecha de primer uso de dirección de envío</td>\n\t\t\t\t\t\t\t\t<td>shipAddressUsage</td>\n\t\t\t\t\t\t\t\t<td>8 / N</td>\n\t\t\t\t\t\t\t\t<td>Fecha en que la dirección de envío utilizada para esta\n\t\t\t\t\t\t\t\t\ttransacción se utilizó por primera vez con el comercio. Date\n\t\t\t\t\t\t\t\t\tformat = YYYYMMDD</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Indicador de primer uso de dirección de envío</td>\n\t\t\t\t\t\t\t\t<td>shipAddressUsageInd</td>\n\t\t\t\t\t\t\t\t<td>2 / A-N</td>\n\t\t\t\t\t\t\t\t<td>\"Indica cuándo la dirección de envío utilizada para\n\t\t\t\t\t\t\t\t\testa transacción se utilizó por primera vez con el comercio.\n\t\t\t\t\t\t\t\t\tValores aceptados: <br>01 = This transaction <br>02 =\n\t\t\t\t\t\t\t\t\tLess than 30 days <br>03 = 30-60 days<br>04 = More\n\t\t\t\t\t\t\t\t\tthan 60 days\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Indicador de nombre de titular</td>\n\t\t\t\t\t\t\t\t<td>shipNameIndicator</td>\n\t\t\t\t\t\t\t\t<td>2 / A-N</td>\n\t\t\t\t\t\t\t\t<td>\"Indica si el Nombre del titular de la tarjeta en la\n\t\t\t\t\t\t\t\t\tcuenta es idéntico al Nombre de envío utilizado para esta\n\t\t\t\t\t\t\t\t\ttransacción. Valores aceptados: <br>01 = Account Name\n\t\t\t\t\t\t\t\t\tidentical to shipping Name <br>02 = Account Name different\n\t\t\t\t\t\t\t\t\tthan shipping Name\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Indicador de actividad sospechosa</td>\n\t\t\t\t\t\t\t\t<td>suspiciousAccActivity</td>\n\t\t\t\t\t\t\t\t<td>2 / A-N</td>\n\t\t\t\t\t\t\t\t<td>\"Indica si el comercio ha experimentado actividad\n\t\t\t\t\t\t\t\t\tsospechosa (incluido fraude anterior) en la cuenta del titular\n\t\t\t\t\t\t\t\t\tde la tarjeta. Valores aceptados: <br>01 = No suspicious\n\t\t\t\t\t\t\t\t\tactivity has been observed <br>02 = Suspicious activity\n\t\t\t\t\t\t\t\t\thas been observed\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr></tbody>\n\t\t\t\t\t</table></div>\n\n\t\t\t\t\t<!-- \t*****************************\n        *****************************\n \t\t\t\tTABLA DCC\n \t    *****************************\n \t    *****************************  -->\n\n\t\t\t\t\t<div id=\"dsmerchantdccTable_wrapper\" class=\"dataTables_wrapper no-footer\" style=\"height: 400px;\"><table id=\"dsmerchantdccTable\" title=\"Tabla DS_MERCHANT_DCC\" class=\"table table-striped errores-sis dataTable no-footer fix-head\" role=\"grid\">\n\t\t\t\t\t\t<thead>\n\t\t\t\t\t\t\t<tr role=\"row\"><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">DATO</th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">NOMBRE DEL DATO</th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">Long./Tipo</th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">COMENTARIOS</th></tr></thead>\n\t\t\t\t\t\t<tbody>\n\n\n\t\t\t\t\t\t<tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Moneda DCC</td>\n\t\t\t\t\t\t\t\t<td>MonedaDCC</td>\n\t\t\t\t\t\t\t\t<td>4 / Núm.</td>\n\t\t\t\t\t\t\t\t<td>Se debe enviar el código numérico de la moneda según el\n\t\t\t\t\t\t\t\t\tISO-4217, ver tabla <a class=\"table-link\" style=\"color: #dc7c26;\" table-target=\"monedasTable\">Monedas</a>.\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Importe DCC</td>\n\t\t\t\t\t\t\t\t<td>ImporteDCC</td>\n\t\t\t\t\t\t\t\t<td>12 / N</td>\n\t\t\t\t\t\t\t\t<td>Las últimas posiciones hacen referencia a los decimales\n\t\t\t\t\t\t\t\t\tde la moneda. Ejemplo:<br>En el caso de EURO43,45 Euros\n\t\t\t\t\t\t\t\t\thabría que indicar 4345\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr></tbody>\n\t\t\t\t\t</table></div>\n\n\n\t\t\t\t\t<!-- \t*****************************\n        *****************************\n \t\t\tTABLA FORMAS DE PAGO\n \t    *****************************\n \t    *****************************  -->\n\n\t\t\t\t\t<div id=\"dspaymethodsTable_wrapper\" class=\"dataTables_wrapper no-footer\" style=\"height: 400px;\"><table id=\"dspaymethodsTable\" title=\"Tabla\n\t\t\t\t\t\t\t\t\t\t\t\t\tDS_MERCHANT_PAYMETHODS\" class=\"table table-striped errores-sis dataTable no-footer fix-head\" role=\"grid\">\n\t\t\t\t\t\t<thead>\n\t\t\t\t\t\t\t<tr role=\"row\"><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">FORMA DE PAGO</th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">DS_MERCHANT_PAYMETHODS</th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">DS_MERCHANT_TRANSACTIONTYPE</th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">COMENTARIOS</th></tr></thead>\n\t\t\t\t\t\t<tbody>\n\n\n\n\n\n\t\t\t\t\t\t<tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>BIZUM</td>\n\t\t\t\t\t\t\t\t<td>z</td>\n\t\t\t\t\t\t\t\t<td>0,7,8</td>\n\t\t\t\t\t\t\t\t<td>Se requiere activación por parte de la entidad.</td>\n\t\t\t\t\t\t\t\t<!-- \t\t\t\t\t\t\t\t<td>Documentación: <a href=\"documents\\TPV-Virtual-BIZUM.pdf\" -->\n\t\t\t\t\t\t\t\t<!-- \t\t\t\t\t\t\t\t\t\ttarget=\"_blank\" rel=\"noopener\">TPV-Virtual-BIZUM.pdf</a></td> -->\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>PAYPAL</td>\n\t\t\t\t\t\t\t\t<td>p</td>\n\t\t\t\t\t\t\t\t<td>0,1,15</td>\n\t\t\t\t\t\t\t\t<td>Se requiere activación por parte de la entidad.</td>\n\t\t\t\t\t\t\t\t<!-- \t\t\t\t\t\t\t\t<td>Documentación: <a href=\"documents\\TPV-Virtual-Manual-PayPal.pdf\" -->\n\t\t\t\t\t\t\t\t<!-- \t\t\t\t\t\t\t\t\t\ttarget=\"_blank\" rel=\"noopener\">TPV-Virtual-Manual-PayPal.pdf</a></td> -->\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Transferencia</td>\n\t\t\t\t\t\t\t\t<td>R</td>\n\t\t\t\t\t\t\t\t<td>0,15,</td>\n\t\t\t\t\t\t\t\t<td>Se requiere activación por parte de la entidad.</td>\n\t\t\t\t\t\t\t\t<!-- \t\t\t\t\t\t\t\t<td>Documentación: <a href=\"documents\\TPV-Virtual-Transferencia.pdf -->\n\t\t\t\t\t\t\t\t<!-- \t\t\t\t\t\t\t\t\t\ttarget=\"_blank\" rel=\"noopener\">TPV-Virtual-Transferencia.pdf</a></td> -->\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Masterpass</td>\n\t\t\t\t\t\t\t\t<td>N</td>\n\t\t\t\t\t\t\t\t<td>0,7,15,</td>\n\t\t\t\t\t\t\t\t<td>Se requiere activación por parte de la entidad.</td>\n\t\t\t\t\t\t\t\t<!-- \t\t\t\t\t\t\t\t<td>Documentación: <a href=\"documents\\TPV-Virtual-Masterpass.pdf -->\n\t\t\t\t\t\t\t\t<!-- \t\t\t\t\t\t\t\t\t\ttarget=\"_blank\" rel=\"noopener\">TPV-Virtual-Masterpass.pdf</a></td> -->\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Con Tarjeta</td>\n\t\t\t\t\t\t\t\t<td>C</td>\n\t\t\t\t\t\t\t\t<td>TODAS</td>\n\t\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t\t<!-- \t\t\t\t\t\t\t\t<td></td> -->\n\t\t\t\t\t\t\t</tr></tbody>\n\t\t\t\t\t</table></div>\n\n\n\t\t\t\t\t<!-- \t*****************************\n        *****************************\n \t\t     TABLA MPI EXTERNO\n \t    *****************************\n \t    *****************************  -->\n\n\t\t\t\t\t<div id=\"dsmpiexternalTable_wrapper\" class=\"dataTables_wrapper no-footer\" style=\"height: 400px;\"><table id=\"dsmpiexternalTable\" title=\"Tabla\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tDS_MERCHANT_MPIEXTERNAL\" class=\"table table-striped errores-sis dataTable no-footer fix-head\" role=\"grid\">\n\t\t\t\t\t\t<thead>\n\t\t\t\t\t\t\t<tr role=\"row\"><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">NOMBRE DEL DATO</th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">Long. /Tipo</th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">VERSIÓN</th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">CONDICIÓN DEL PARÁMETRO</th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">COMENTARIOS</th></tr></thead>\n\t\t\t\t\t\t<tbody>\n\n\n\n\n\n\n\n\n\n\n\n\t\t\t\t\t\t<tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>TXID</td>\n\t\t\t\t\t\t\t\t<td>28 / A-N</td>\n\t\t\t\t\t\t\t\t<td>1.0.2</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>Identificador que devuelve al autenticador. Valor en\n\t\t\t\t\t\t\t\t\tBase 64</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>CAVV</td>\n\t\t\t\t\t\t\t\t<td>28 / A-N</td>\n\t\t\t\t\t\t\t\t<td>1.0.2</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>Valor CAVV de campo autenticado. Valor en Base 64</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>ECI</td>\n\t\t\t\t\t\t\t\t<td>2/N</td>\n\t\t\t\t\t\t\t\t<td>1.0.2</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>Valor de ECI. Valores posibles: 05, 06 o 07.</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>threeDSServerTransID</td>\n\t\t\t\t\t\t\t\t<td>36 / A-N</td>\n\t\t\t\t\t\t\t\t<td>2.1.0</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>Identificador de la transacción</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>dsTransID</td>\n\t\t\t\t\t\t\t\t<td>36 / A-N</td>\n\t\t\t\t\t\t\t\t<td>2.1.0</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>Identificador del DS</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>authenticationValue</td>\n\t\t\t\t\t\t\t\t<td>28 / A-N</td>\n\t\t\t\t\t\t\t\t<td>2.1.0</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>Valor CAVV de campo autenticado. Valor en Base 64</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>ProtocolVersion</td>\n\t\t\t\t\t\t\t\t<td>Variable 5-8 / A-N</td>\n\t\t\t\t\t\t\t\t<td>2.1.0</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>Version de protocolo 3DSecure 2 con la que se ha\n\t\t\t\t\t\t\t\t\tautenticado la operación.<br>Valores permitidos:<br>2.1.0\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Eci</td>\n\t\t\t\t\t\t\t\t<td>2 / A-N</td>\n\t\t\t\t\t\t\t\t<td>2.1.0</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td>Valores a determinar por las marcas. Valores posibles:\n\t\t\t\t\t\t\t\t\t05, 06, o 07</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>authenticationMethod</td>\n\t\t\t\t\t\t\t\t<td>2 / A-N</td>\n\t\t\t\t\t\t\t\t<td>2.1.0</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>Valores posibles<br>01 = Static Passcode<br>02\n\t\t\t\t\t\t\t\t\t= SMS OTP<br>03 = Key fob or EMV card reader OTP<br>04\n\t\t\t\t\t\t\t\t\t= App OTP<br>05 = OTP Other<br>06 = KBA<br>07 =\n\t\t\t\t\t\t\t\t\tOOB Biometrics<br>08 = OOB Login<br>09 = OOB Other<br>10\n\t\t\t\t\t\t\t\t\t= Other\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>authentication Type</td>\n\t\t\t\t\t\t\t\t<td>2 / A-N</td>\n\t\t\t\t\t\t\t\t<td>2.1.0</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>authentication Flow</td>\n\t\t\t\t\t\t\t\t<td>1 / A-N</td>\n\t\t\t\t\t\t\t\t<td>2.1.0</td>\n\t\t\t\t\t\t\t\t<td>OPCIONAL</td>\n\t\t\t\t\t\t\t\t<td>Valores posibles:<br>F = Frictionless<br>C =\n\t\t\t\t\t\t\t\t\tChallenge\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr></tbody>\n\t\t\t\t\t</table></div>\n\n\t\t\t\t\t<!-- \t*****************************\n        *****************************\n \t\t\t\tTABLA DCC\n \t    *****************************\n \t    *****************************  -->\n\t\t\t\t\t<div id=\"dsdccTable_wrapper\" class=\"dataTables_wrapper no-footer\" style=\"height: 400px;\"><table id=\"dsdccTable\" title=\"Tabla DS_DCC\" class=\"table table-striped errores-sis dataTable no-footer fix-head\" role=\"grid\">\n\t\t\t\t\t\t<thead>\n\t\t\t\t\t\t\t<tr role=\"row\"><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">DATO</th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">NOMBRE DEL DATO</th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">Long./Tipo</th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">COMENTARIOS</th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">PARÁMETROS DEL JSON</th></tr>\n\n\t\t\t\t\t\t</thead>\n\t\t\t\t\t\t<tbody>\n\n\n\t\t\t\t\t\t<tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Información de la moneda de la tarjeta</td>\n\t\t\t\t\t\t\t\t<td>InfoMoneda Tarjeta</td>\n\t\t\t\t\t\t\t\t<td>JSON</td>\n\t\t\t\t\t\t\t\t<td>Información adicional sobre la moneda de la tarjeta</td>\n\t\t\t\t\t\t\t\t<td><ul>\n\t\t\t\t\t\t\t\t\t\t<li>MonedaDCC</li>\n\t\t\t\t\t\t\t\t\t\t<li>litMonedaDCC</li>\n\t\t\t\t\t\t\t\t\t\t<li>importeDCC</li>\n\t\t\t\t\t\t\t\t\t\t<li>cambioDCC</li>\n\t\t\t\t\t\t\t\t\t\t<li>fechaCambioDCC</li>\n\t\t\t\t\t\t\t\t\t\t<li>markUp</li>\n\t\t\t\t\t\t\t\t\t</ul></td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Información de la moneda del titular</td>\n\t\t\t\t\t\t\t\t<td>InfoMoneda Titular</td>\n\t\t\t\t\t\t\t\t<td>JSON</td>\n\t\t\t\t\t\t\t\t<td>Información adicional sobre la moneda del titular</td>\n\t\t\t\t\t\t\t\t<td><ul>\n\t\t\t\t\t\t\t\t\t\t<li>monedaCome</li>\n\t\t\t\t\t\t\t\t\t\t<li>litMonedaCome</li>\n\t\t\t\t\t\t\t\t\t\t<li>importeCome</li>\n\t\t\t\t\t\t\t\t\t</ul></td>\n\t\t\t\t\t\t\t</tr></tbody>\n\t\t\t\t\t</table></div>\n\n\n\t\t\t\t<!-- \t*****************************\n        *****************************\n \t             TABLA DS_XPAYDECODEDDATA\n \t    *****************************\n \t    *****************************  -->\n\n\t\t\t\t\t<div id=\"dsXpayCodeDataTable_wrapper\" class=\"dataTables_wrapper no-footer\" style=\"height: 400px;\"><table id=\"dsXpayCodeDataTable\" title=\"Tabla DS_XPAYDECODEDDATA\" class=\"table table-striped errores-sis dataTable no-footer fix-head\" role=\"grid\">\n\n\n\t\t\t\t\t\t<thead id=\"tableHeader\">\n\t\t\t\t\t\t\t<tr id=\"pp\" role=\"row\"><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">DATO</th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\"><input id=\"datoXpayCodeDataImput\" class=\"errores filter\" data-column-index=\"1\" style=\"color: #555;\" value=\"\" placeholder=\"NOMBRE DEL DATO\" type=\"text\"></th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">Long. / Tipo</th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">OPCION DEL PARÁMETRO<br> <select id=\"opcionXpayCodeDataImput\" class=\"errores filter\" data-column-index=\"3\" style=\"color: #555;\" value=\"\">\n\t\t\t\t\t\t\t\t\t\t<option value=\"\"></option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"OBLIGATORIO\">OBLIGATORIO</option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"CONDICIONAL\">CONDICIONAL</option>\n\t\t\t\t\t\t\t\t</select></th><th class=\"sorting_disabled\" rowspan=\"1\" colspan=\"1\" style=\"width: 0px;\">COMENTARIOS</th></tr>\n\t\t\t\t\t\t</thead>\n\t\t\t\t\t\t<tbody>\n\n\n\n\n\n\n\t\t\t\t\t\t<tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Criptograma descifrado</td>\n\t\t\t\t\t\t\t\t<td>cryptogram</td>\n\t\t\t\t\t\t\t\t<td>Variable/ String</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Indicador de ECI</td>\n\t\t\t\t\t\t\t\t<td>eciInd</td>\n\t\t\t\t\t\t\t\t<td>2 / String</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Fecha de caducidad</td>\n\t\t\t\t\t\t\t\t<td>expirationDate</td>\n\t\t\t\t\t\t\t\t<td>4 / String</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"even\">\n\t\t\t\t\t\t\t\t<td>Regerencia de la tarjeta</td>\n\t\t\t\t\t\t\t\t<td>token</td>\n\t\t\t\t\t\t\t\t<td>19/ String</td>\n\t\t\t\t\t\t\t\t<td>OBLIGATORIO</td>\n\t\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t</tr><tr role=\"row\" class=\"odd\">\n\t\t\t\t\t\t\t\t<td>Forma de Pago</td>\n\t\t\t\t\t\t\t\t<td>paymentMethod</td>\n\t\t\t\t\t\t\t\t<td>Variable / String</td>\n\t\t\t\t\t\t\t\t<td><a data-toggle=\"popover\" data-placement=\"top\" data-content=\"Unicamente será necesario cuando el pago sea de Google Pay\" data-original-title=\"\" title=\"\">CONDICIONAL</a>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td>Unicamente será necesario cuando el pago sea de Google Pay</td>\n\t\t\t\t\t\t\t</tr></tbody>\n\t\t\t\t\t</table></div>\n\n\n\n"
  },
  {
    "path": "doc/Tabla DS_MERCHANT_CONSUMERLANGUAGE.md",
    "content": "# Tabla DS_MERCHANT_CONSUMERLANGUAGE\n| CÓDIGO ISO | IDIOMA |\n|------------|-|\n| 0 | Por defecto - Español |\n| 1 | Español |\n| 2 | English - Ingles |\n| 3 | Català |\n| 4 | Français - Frances |\n| 5 | Deutsch - Aleman |\n| 6 | Nederlands - Holandes |\n| 7 | Italiano |\n| 8 | Svenska - Sueco |\n| 9 | Português |\n| 10 | Valencià |\n| 11 | Polski - Polaco |\n| 12 | Galego |\n| 13 | Euskara |\n| 100 | български език - Bulgaro |\n| 156 | Chino |\n| 191 | Hrvatski - Croata |\n| 203 | Čeština - Checo |\n| 208 | Dansk - Danes |\n| 233 | Eesti keel - Estonio |\n| 246 | Suomi - Finlandes |\n| 300 | ελληνικά - Griego |\n| 348 | Magyar - Hungaro |\n| 392 | Japonés |\n| 428 | Latviešu valoda - Leton |\n| 440 | Lietuvių kalba - Lituano |\n| 470 | Malti - Maltés |\n| 642 | Română - Rumano |\n| 643 | ру́сский язы́к - Ruso |\n| 703 | Slovenský jazyk - Eslovaco |\n| 705 | Slovenski jezik - Esloveno |\n| 792 | Türkçe - Turco |"
  },
  {
    "path": "doc/Tabla DS_MERCHANT_CURRENCY.md",
    "content": "# Tabla DS_MERCHANT_CURRENCY\n| CÓDIGO ISO | MONEDA |\n|------------|-|\n| 840 | DOLAR U.S.A. USD |\n| 826 | POUND STERLING GBP |\n| 392 | YEN JPY |\n| 32 | ARGENTINE AUSTRAL ARP |\n| 36 | AUSTRALIAN DOLLAR AUD |\n| 124 | CANADIAN DOLLAR CAD |\n| 152 | CHILEAN PESO CLP |\n| 170 | COLOMBIAN PESO COP |\n| 188 | COSTA RICA COLON CRC |\n| 356 | INDIAN RUPEE INR |\n| 484 | MEXICAN PESO MXP |\n| 604 | PERU INTI PEI |\n| 756 | SWISS FRANC CHF |\n| 858 | URUGUAYAN PESO UYP |\n| 986 | BRAZILIAN REAL BRL |\n| 949 | TURKISH LIRA TRY |\n| 8 | LEK ALL |\n| 12 | ALGERIAN DINAR DZD |\n| 24 | ANGOLA KWANZA AOK |\n| 30 | PROBANDO DESA MON |\n| 31 | AZERBAIJANIAN MANAT AZM |\n| 32 | ARGENTINE AUSTRAL ARP |\n| 36 | AUSTRALIAN DOLLAR AUD |\n| 44 | BAHAMIAN DOLLAR BSD |\n| 48 | BAHRAINI DINAR BHD |\n| 50 | TAKA BDT |\n| 51 | ARMENIAN DRAM AMD |\n| 52 | BARBADOS DOLLAR BBD |\n| 60 | BERMUDAN DOLLAR BMD |\n| 64 | NGULTRUM BTN |\n| 68 | BOLIVIAN PESO BOP |\n| 70 | DINAR BAD |\n| 72 | PULA BWP |\n| 76 | CRUZEIRO BRC |\n| 84 | BELIZE DOLLAR 084 |\n| 90 | SOLOMON ISLANDS DOLL SBD |\n| 96 | BRUNEI DOLLAR BND |\n| 100 | LEV BGL |\n| 104 | KYAT BUK |\n| 108 | BURUNDI FRANC BIF |\n| 112 | BELARUSSIAN RUBLE BYB |\n| 116 | RIEL KHR |\n| 124 | CANADIAN DOLLAR CAD |\n| 132 | CAPE VERDE ESCUDO CVE |\n| 136 | CAYMAN ISLANDS DOLLA KYD |\n| 144 | SRI LANKA RUPEE LKR |\n| 152 | CHILEAN PESO CLP |\n| 156 | YUAN RENMINBI CNY |\n| 157 | CHINESE RENMIMBI CNH |\n| 158 | CHINESE RENMINBI CNX |\n| 170 | COLOMBIAN PESO COP |\n| 174 | COMOROS FRANC KMF |\n| 180 | ZAIRE ZRZ |\n| 188 | COSTA RICA COLON CRC |\n| 191 | CROATIAN KUNA HRK |\n| 192 | CUBAN PESO CUP |\n| 196 | CYPRUS POUND CYP |\n| 200 | KORUNA CSK |\n| 203 | CZECH KORUNA CZK |\n| 208 | DANISH KRONE DKK |\n| 214 | DOMINICAN PESO DOP |\n| 218 | SUCRE ECS |\n| 222 | EL SALVADOR COLON SVC |\n| 226 | EKWELE GQE |\n| 230 | ETHIOPIAN BIRR ETB |\n| 232 | ERITREAN NAKTAN ERN |\n| 233 | ESTONIAN KROON EEK |\n| 238 | FALKLAND ISLANDS FKP |\n| 242 | FIJI DOLLAR FJD |\n| 262 | DJIBOUTI FRANC DJF |\n| 268 | GEORGIAN LARI GEL |\n| 270 | DALASI GMD |\n| 278 | MARK DER DDR DDM |\n| 288 | GHANA CEDI GHC |\n| 292 | GIBRALTAR POUND GIP |\n| 320 | QUETZAL GTQ |\n| 324 | SYLI GNS |\n| 328 | GUYANA DOLLAR GYD |\n| 332 | GOURDE HTG |\n| 340 | LEMPIRA HNL |\n| 344 | HONG KONG DOLLAR HKD |\n| 348 | FORINT HUF |\n| 352 | ICELAND KRONA ISK |\n| 356 | INDIAN RUPEE INR |\n| 360 | RUPIAH IDR |\n| 364 | IRANIAL RIAL IRR |\n| 365 | IRANIAN AIRLINE RATE IRA |\n| 368 | IRAQI DINAR IQD |\n| 376 | ISRAEL SHEKEL ILS |\n| 388 | JAMAICAN DOLLAR JMD |\n| 392 | YEN JPY |\n| 398 | TENGE KZT |\n| 400 | JORDANIAN DINAR JOD |\n| 404 | KENYAN SHILLING KES |\n| 408 | NORTH KOREAN WON KPW |\n| 410 | KOREAN WON KRW |\n| 414 | KUWAITI DINAR KWD |\n| 417 | KYRGYZSTAN SON KGS |\n| 418 | KIP LAK |\n| 422 | LEBANESE POUND LBP |\n| 426 | LESOTHO LOTI LSM |\n| 428 | LATVIAN LAT LVL |\n| 430 | LIBERIAN DOLLAR LRD |\n| 434 | LIBYAN DINAR LYD |\n| 440 | LITHUANIAN LITAS LTL |\n| 446 | PATACA MOP |\n| 450 | MALAGASY FRANC MGF |\n| 454 | MALAWI KWACHA MWK |\n| 458 | MALASYAN RINGGIT MYR |\n| 462 | MALDIVE RUPEE MVR |\n| 466 | MALI MLF |\n| 470 | MALTESE LIRA MTL |\n| 478 | OUGUIYA MRO |\n| 480 | MAURITIUS RUPEE MUR |\n| 484 | MEXICAN PESO MXP |\n| 496 | TUGRIK MNT |\n| 498 | MOLDOVIAN LEU MDL |\n| 504 | MORROCAN DIRHAM MAD |\n| 508 | METICAL MZM |\n| 512 | RIAL OMANI OMR |\n| 516 | NAMIBIAN DOLLAR NAD |\n| 524 | NEPALESE RUPEE NPR |\n| 532 | NETHERLANDS ANTILLIA ANG |\n| 533 | ARUBA AWG |\n| 536 | YUGOSLAVIAN NEW DIAN NTZ |\n| 548 | VANUATU VATU VUV |\n| 554 | NEW ZEALAND DOLLAR NZD |\n| 556 | NAIRA 566 |\n| 558 | CORDOBA NIC |\n| 566 | NAIRA NGN |\n| 578 | NORWEGIAN KRONE NOK |\n| 582 | PACIFIC ISLAND PCI |\n| 586 | PAKISTAN RUPEE PKR |\n| 590 | BALBOA PAB |\n| 598 | KINA PGK |\n| 600 | GUARANI PYG |\n| 604 | PERU INTI PEI |\n| 608 | PHILIPPINE PESO PHP |\n| 616 | ZLOTY PLZ |\n| 624 | GUINEA |\n| 626 | TIMOR ESCUDO TPE |\n| 634 | QATARI RIAL QAR |\n| 642 | LEU ROL |\n| 643 | RUSSIAN ROUBLE RUB |\n| 646 | RWANDA FRANC RWF |\n| 654 | ST.HELENA POUND SHP |\n| 678 | DOBRA STD |\n| 682 | SAUDI RIYAL SAR |\n| 690 | SEYCHELLES RUPEE SCR |\n| 694 | LEONE SLL |\n| 702 | SINGAPORE DOLLAR SGD |\n| 703 | SLOVAK KORUNA SKK |\n| 704 | DONG VND |\n| 705 | SLOVENIAN TOLAR SIT |\n| 706 | SOMALI SHILLING SOS |\n| 710 | RAND ZAR |\n| 716 | ZIMBABWE DOLLAR ZWD |\n| 720 | YEMENI DINAR YDD |\n| 728 | SOUTH SUDANESE POUND SSP |\n| 736 | SUDANESE POUND SDP |\n| 737 | SUDAN AIRLINES SDA |\n| 740 | SURINAM GUILDER SRG |\n| 748 | LILANGENI SZL |\n| 752 | SWEDISH KRONA SEK |\n| 756 | SWISS FRANC CHF |\n| 760 | SYRIAN POUND SYP |\n| 762 | TAJIK RUBLE TJR |\n| 764 | BAHT THB |\n| 776 | PA'ANGA TOP |\n| 780 | TRINIDAD Y TOBAGO DO TTD |\n| 784 | UAE DIRHAM AED |\n| 788 | TUNISIAN DINAR TND |\n| 792 | TURKISH LIRA TRL |\n| 793 | PSEUDO TURKISH LIRA PTL |\n| 795 | MANAT TMM |\n| 800 | UGANDA SHILLING UGS |\n| 804 | KARBOVANET UAK |\n| 807 | MACEDONIAN DENAR MKD |\n| 810 | RUSSIAN ROUBLE RUR |\n| 818 | EGYPTIAN POUND EGP |\n| 826 | POUND STERLING GBP |\n| 834 | TANZANIAN SHILLING TZS |\n| 840 | DOLAR U.S.A. USD |\n| 858 | URUGUAYAN PESO UYP |\n| 860 | UZBEKISTAN SUM UZS |\n| 862 | BOLIVAR VEB |\n| 882 | TALA WST |\n| 886 | YEMINI RIAL YER |\n| 890 | NEW YUGOSLAVIAN DOLL YUD |\n| 891 | NEW DINAR YUG |\n| 894 | KWACHA ZMK |\n| 901 | NEW TAIWAN DOLLAR TWD |\n| 934 | NEW MANAT TMT |\n| 936 | GHANA CEDI GHS |\n| 941 | DINAR SERBIO RSD |\n| 943 | MOZAMBIQUE METICAL MZN |\n| 944 | AZERBAIJANIAN MANAT AZN |\n| 946 | NEW LEU RON |\n| 949 | TURKISH LIRA TRY |\n| 950 | CFA FRANC BEAC XAF |\n| 951 | EAST CARIBBEAN DOLLA XCD |\n| 952 | CFA FRANC BCEAO XOF |\n| 953 | CFP FRANC XPF |\n| 954 | E.C.U. EUROPEAN CUR XEU |\n| 967 | KWACHA ZMW |\n| 968 | SURINAME DOLLAR SRD |\n| 969 | ARIARY MGA |\n| 971 | AFGHANISTAN AFGHANI AFN |\n| 972 | TAJIKISTAN SOMONI TJS |\n| 973 | KWANZA ANGOLA AOA |\n| 974 | BELARUSSIAN RUBLE BYR |\n| 975 | NEW LEV BGN |\n| 976 | FRANCO DEL CONGO CDF |\n| 977 | BOSNIAN MARKA BAM |\n| 978 | EURO EUR |\n| 980 | HRYVNIA UAH |\n| 981 | GEORGIAN LARI GEL |\n| 985 | NEW POLISH ZLOTY PLN |\n| 986 | BRAZILIAN REAL BRL |\n| 991 | RAND FINANCIER ZAL |"
  },
  {
    "path": "doc/Tabla DS_MERCHANT_PAYMETHODS.md",
    "content": "# Tabla DS_MERCHANT_PAYMETHODS\n\n| FORMA DE PAGO | DS_MERCHANT_PAYMETHODS | DS_MERCHANT_TRANSACTIONTYPE | COMENTARIOS |\n|-|-|-|-|\n| BIZUM | z | 0, 7, 8 | Se requiere activación por parte de la entidad. |\n| PAYPAL | p | 0, 1, 15 | Se requiere activación por parte de la entidad. |\n| Transferencia | R | 0, 15, | Se requiere activación por parte de la entidad. |\n| Masterpass | N | 0, 7, 15, | Se requiere activación por parte de la entidad. |\n| Con Tarjeta | C | TODAS | |"
  },
  {
    "path": "doc/Tabla DS_MERCHANT_TRANSACTIONTYPE.md",
    "content": "# Tabla DS_MERCHANT_TRANSACTIONTYPE\n|                TIPO DE OPERACIÓN               | DS_MERCHANT_TRANSACTIONSTYPE | ENTRADAS |\n|------------------------------------------------|----|----------------------------|\n| Autorización                                   |  0 | Redirección <br> REST/SOAP |\n| Preautorización                                |  1 | Redirección <br> REST/SOAP |\n| Preautorización de reemplazo                   | 11 | Redirección <br> REST/SOAP |\n| Confirmación                                   |  2 | Redirección <br> REST/SOAP |\n| Devolución                                     |  3 | Redirección <br> REST/SOAP |\n| Preautorización Separada                       |  7 | Redirección <br> REST/SOAP |\n| Confirmación Separada                          |  8 | Redirección <br> REST/SOAP |\n| Anulación                                      |  9 | Redirección <br> REST/SOAP |\n| Paygold                                        | 15 | Redirección <br> REST/SOAP |\n| Autenticación Puce                             | 17 | REST/SOAP |\n| Devolución sin original                        | 34 | Redirección <br> REST/SOAP |\n| Premio de apuestas                             | 37 | REST/SOAP |\n| Anulación de pago                              | 45 | Redirección <br> REST/SOAP |\n| Anulación de devolución                        | 46 | Redirección <br> REST/SOAP |\n| Anulación de confirmación separada             | 47 | Redirección <br> REST/SOAP |\n| Modificación de caducidad del enlace (Paygold) | 51 | Redirección <br> REST/SOAP |\n"
  },
  {
    "path": "doc/Tabla Ds_ProcessedPayMethod.md",
    "content": "# Tabla Ds_ProcessedPayMethod\n\nInforma sobre el método en el que se ha realizado la operación:\n\nhttps://pagosonline.redsys.es/parametros-entrada-salida.html\n\n| Método de pago | Valor |\n|---------------:|-------|\n|   1 | Visa Secure\n|   3 | Tradicional Mundial\n|   5 | Finanet\n|  11 | Capacidad FINANET\n|  13 | Capacidad Visa Secure\n|  14 | Tradicional UE\n|  22 | MasterCard Identity Check\n|  23 | Capacidad Identity Check\n|  24 | Pago AMEX\n|  25 | Pago MOTO\n|  28 | Pago JCB\n|  31 | Pago DINERS\n|  39 | JCB JSecure\n|  40 | Capacidad JSecure\n|  41 | Domiciliacion\n|  42 | Transferencia\n|  54 | PayPal\n|  57 | SafeKey\n|  58 | Capacidad SafeKey\n|  59 | MasterPass Wallet\n|  68 | Bizum\n|  70 | UPI ExpressPay\n|  71 | GooglePay\n|  72 | ApplePay\n|  73 | UPI SecurePlus\n|  74 | Capacidad Discover\n|  75 | Discover ProtectBuy\n|  76 | Discover\n|  77 | Amazon Pay\n|  78 | Challenge Visa\n|  79 | Challenge MasterCard\n|  80 | Frictionless Visa\n|  81 | Frictionless MasterCard\n|  82 | Attempt Visa\n|  83 | Attempt MasterCard\n|  85 | Challenge Amex\n|  86 | Challenge Discover\n|  87 | Frictionless Amex\n|  88 | Frictionless Discover\n|  89 | Attempt Amex\n|  90 | Attempt Discover\n|  92 | Pago DINERS ProtectBuy\n|  93 | Challenge Diners ProtectBuy\n|  94 | Frictionless Diners ProtectBuy\n|  95 | Pago Attempt Diners ProtectBuy\n|  96 | Challenge JCB\n|  97 | Frictionless JCB\n|  98 | Attempt JCB\n| 107 | Pago con cuenta\n"
  },
  {
    "path": "phpunit.xml.dist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!-- https://phpunit.de/manual/current/en/appendixes.configuration.html -->\n<phpunit xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"https://schema.phpunit.de/10.5/phpunit.xsd\" colors=\"true\" cacheDirectory=\".phpunit.cache\">\n  <testsuites>\n    <testsuite name=\"ssheduardo/sermepa test suite\">\n      <directory>./tests</directory>\n    </testsuite>\n  </testsuites>\n  <source>\n    <include>\n      <directory suffix=\".php\">./src</directory>\n    </include>\n  </source>\n</phpunit>\n"
  },
  {
    "path": "src/Redsys/Merchant/MerchantCofTypes.php",
    "content": "<?php\n  declare(strict_types=1);\n\n\tnamespace Redsys\\Merchant;\n\n\tuse ReflectionClass;\n\n\tclass MerchantCofTypes {\n    public const INSTALLMENTS = 'I';\n    public const RECURRING = 'R';\n    public const REAUTHORIZATION = 'H';\n    public const RESUBMISSION = 'E';\n    public const DELAYED = 'D';\n    public const INCREMENTAL = 'M';\n    public const NO_SHOW = 'N';\n    public const OTHER = 'C';\n\n\t\tpublic static function isValid (string $value) : bool {\n\t\t\treturn in_array($value, (new ReflectionClass(self::class))->getConstants());\n\t\t}\n\t}"
  },
  {
    "path": "src/Redsys/Merchant/MerchantConsumerLanguages.php",
    "content": "<?php\n  declare(strict_types=1);\n\n\tnamespace Redsys\\Merchant;\n\n\tuse ReflectionClass;\n\n\tclass MerchantConsumerLanguages {\n\t\tpublic const DEFAULT =   0;\t// Por defecto - Español\n\t\tpublic const ES      =   1;\t// Español\n\t\tpublic const EN      =   2;\t// English - Ingles\n\t\tpublic const CAT     =   3;\t// Català\n\t\tpublic const FR      =   4;\t// Français - Frances\n\t\tpublic const DE      =   5;\t// Deutsch - Aleman\n\t\tpublic const NL      =   6;\t// Nederlands - Holandes\n\t\tpublic const IT      =   7;\t// Italiano\n\t\tpublic const SV      =   8;\t// Svenska - Sueco\n\t\tpublic const PT      =   9;\t// Português\n \t\tpublic const VAL     =  10;\t// Valencià\n \t\tpublic const PL      =  11;\t// Polski - Polaco\n \t\tpublic const GL      =  12;\t// Galego\n \t\tpublic const EU      =  13;\t// Euskara\n\t\tpublic const BG      = 100;\t// български език - Bulgaro\n\t\tpublic const ZH      = 156;\t// Chino\n\t\tpublic const HR      = 191;\t// Hrvatski - Croata\n\t\tpublic const CS      = 203;\t// Čeština - Checo\n\t\tpublic const DA      = 208;\t// Dansk - Danes\n\t\tpublic const ET      = 233;\t// Eesti keel - Estonio\n\t\tpublic const FI      = 246;\t// Suomi - Finlandes\n\t\tpublic const EL      = 300;\t// ελληνικά - Griego\n\t\tpublic const HU      = 348;\t// Magyar - Hungaro\n\t\tpublic const JA      = 392;\t// Japonés\n\t\tpublic const LV      = 428;\t// Latviešu valoda - Leton\n\t\tpublic const LT      = 440;\t// Lietuvių kalba - Lituano\n\t\tpublic const MT      = 470;\t// Malti - Maltés\n\t\tpublic const RO      = 642;\t// Română - Rumano\n\t\tpublic const RU      = 643;\t// ру́сский язы́к - Ruso\n\t\tpublic const SK      = 703;\t// Slovenský jazyk - Eslovaco\n\t\tpublic const SL      = 705;\t// Slovenski jezik - Esloveno\n\t\tpublic const TR      = 792;\t// Türkçe - Turco\n\n\t\tpublic static function isValid (int $value) : bool {\n\t\t\treturn in_array($value, (new ReflectionClass(self::class))->getConstants());\n\t\t}\n\t}\n"
  },
  {
    "path": "src/Redsys/Merchant/MerchantCurrencies.php",
    "content": "<?php\n  declare(strict_types=1);\n\n\tnamespace Redsys\\Merchant;\n\n\tuse ReflectionClass;\n\n\tclass MerchantCurrencies {\n\t\tpublic const AED = '784'; // Dirham DE EAU\n\t\tpublic const AFN = '971'; // Afgani afgano\n\t\tpublic const ALL = '008'; // Lek\n\t\tpublic const AMD = '051'; // Dram armenio\n\t\tpublic const ANG = '532'; // Florín holandés\n\t\tpublic const AOA = '973'; // Kwanza angoleño\n\t\tpublic const ARS = '032'; // Peso argentino\n\t\tpublic const AUD = '036'; // Dólar australiano\n\t\tpublic const AWG = '533'; // Florín arubeño\n\t\tpublic const AZN = '944'; // Manat azerbaiyano\n\t\tpublic const BAM = '977'; // Marco bosnioherzegovino\n\t\tpublic const BBD = '052'; // Dólar de Barbados\n\t\tpublic const BDT = '050'; // Taka\n\t\tpublic const BGN = '975'; // Lev\n\t\tpublic const BHD = '048'; // Dinar bareiní\n\t\tpublic const BIF = '108'; // Franco burundés\n\t\tpublic const BMD = '060'; // Dólar bermudeño\n\t\tpublic const BND = '096'; // Dólar de Brunei\n\t\tpublic const BOB = '068'; // Boliviano\n\t\tpublic const BOV = '984'; // Mvdol\n\t\tpublic const BRL = '986'; // Real brasileño\n\t\tpublic const BSD = '044'; // Dólar bahameño\n\t\tpublic const BTN = '064'; // Ngultrum butanés\n\t\tpublic const BWP = '072'; // Pula\n\t\tpublic const BYR = '974'; // Rublo bielorruso\n\t\tpublic const BZD = '084'; // Dólar beliceño\n\t\tpublic const CAD = '124'; // Dólar canadiense\n\t\tpublic const CDF = '976'; // Franco congoleño\n\t\tpublic const CHE = '947'; // WIR Euro\n\t\tpublic const CHF = '756'; // Franco suizo\n\t\tpublic const CHW = '948'; // Franco WIR\n\t\tpublic const CLF = '990'; // Unidad de Fomento\n\t\tpublic const CLP = '152'; // Peso chileno\n\t\tpublic const CNY = '156'; // Renminbi\n\t\tpublic const COP = '170'; // Peso colombiano\n\t\tpublic const COU = '970'; // Unidad de valor real\n\t\tpublic const CRC = '188'; // Colón costarricense\n\t\tpublic const CUC = '931'; // Peso convertible\n\t\tpublic const CUP = '192'; // Peso cubano\n\t\tpublic const CVE = '132'; // Escudo caboverdiano\n\t\tpublic const CZK = '203'; // Czech Koruna\n\t\tpublic const DJF = '262'; // Franco yibutiano\n\t\tpublic const DKK = '208'; // Corona danesa\n\t\tpublic const DOP = '214'; // Peso dominicano\n\t\tpublic const DZD = '012'; // Dinar argelino\n\t\tpublic const EGP = '818'; // Libra egipcia\n\t\tpublic const ERN = '232'; // Nakfa\n\t\tpublic const ETB = '230'; // Birr etíope\n\t\tpublic const EUR = '978'; // Euro\n\t\tpublic const FJD = '242'; // Dólar fiyiano\n\t\tpublic const FKP = '238'; // Libra malvinense\n\t\tpublic const GBP = '826'; // Libra esterlina\n\t\tpublic const GEL = '981'; // Lari\n\t\tpublic const GHS = '936'; // Cedi\n\t\tpublic const GIP = '292'; // Libra gibraltareña\n\t\tpublic const GMD = '270'; // Dalasi\n\t\tpublic const GNF = '324'; // Franco guineano\n\t\tpublic const GTQ = '320'; // Quetzal\n\t\tpublic const GYD = '328'; // Dólar guyanés\n\t\tpublic const HKD = '344'; // Dólar de Hong Kong\n\t\tpublic const HNL = '340'; // Lempira\n\t\tpublic const HRK = '191'; // Kuna\n\t\tpublic const HTG = '332'; // Gourde\n\t\tpublic const HUF = '348'; // Forinto húngaro\n\t\tpublic const IDR = '360'; // Rupia indonesia\n\t\tpublic const ILS = '376'; // Nuevo séquel\n\t\tpublic const INR = '356'; // Rupia india\n\t\tpublic const IQD = '368'; // Dinar iraquí\n\t\tpublic const IRR = '364'; // Rial iraní\n\t\tpublic const ISK = '352'; // Corona islandesa\n\t\tpublic const JMD = '388'; // Dólar jamaiquino\n\t\tpublic const JOD = '400'; // Dinar jordano\n\t\tpublic const JPY = '392'; // Yen\n\t\tpublic const KES = '404'; // Chelín keniano\n\t\tpublic const KGS = '417'; // Som\n\t\tpublic const KHR = '116'; // Riel camboyano\n\t\tpublic const KMF = '174'; // Franco comorense\n\t\tpublic const KPW = '408'; // Won norcoreano\n\t\tpublic const KRW = '410'; // Won\n\t\tpublic const KWD = '414'; // Dinar kuwaití\n\t\tpublic const KYD = '136'; // Dólar de las Islas Cayman\n\t\tpublic const KZT = '398'; // Tenge kazajo\n\t\tpublic const LAK = '418'; // Kip laosiano\n\t\tpublic const LBP = '422'; // Libra libanesa\n\t\tpublic const LKR = '144'; // Rupia de Sri Lanka\n\t\tpublic const LRD = '430'; // Dólar liberiano\n\t\tpublic const LSL = '426'; // Loti\n\t\tpublic const LYD = '434'; // Dinar libio\n\t\tpublic const MAD = '504'; // Dirham marroquí\n\t\tpublic const MDL = '498'; // Leu Moldavo\n\t\tpublic const MGA = '969'; // Ariary malgache\n\t\tpublic const MKD = '807'; // Dinar\n\t\tpublic const MMK = '104'; // Kyat birmano\n\t\tpublic const MNT = '496'; // Tugrik\n\t\tpublic const MOP = '446'; // Pataca\n\t\tpublic const MRO = '478'; // Uguiya\n\t\tpublic const MUR = '480'; // Rupia de Mauricio\n\t\tpublic const MVR = '462'; // Rupia de maldivas\n\t\tpublic const MWK = '454'; // Kwacha malauí\n\t\tpublic const MXN = '484'; // Peso mexicano\n\t\tpublic const MXV = '979'; // Unidad de Inversion Mexicana(UDI)\n\t\tpublic const MYR = '458'; // Ringgit malayo\n\t\tpublic const MZN = '943'; // Metical mozambiqueño\n\t\tpublic const NAD = '516'; // Dólar de Namibia\n\t\tpublic const NGN = '566'; // Naira\n\t\tpublic const NIO = '558'; // Córdoba oro\n\t\tpublic const NOK = '578'; // Corona noruega\n\t\tpublic const NPR = '524'; // Rupia nepalí\n\t\tpublic const NZD = '554'; // Dólar neozelandés\n\t\tpublic const OMR = '512'; // Rial omaní\n\t\tpublic const PAB = '590'; // Balboa\n\t\tpublic const PEN = '604'; // Nuevo Sol\n\t\tpublic const PGK = '598'; // Kina\n\t\tpublic const PHP = '608'; // Peso filipino\n\t\tpublic const PKR = '586'; // Rupia pakistaní\n\t\tpublic const PLN = '985'; // Zloty\n\t\tpublic const PYG = '600'; // Guaraní\n\t\tpublic const QAR = '634'; // Riyal catarí\n\t\tpublic const RON = '946'; // Leu rumano\n\t\tpublic const RSD = '941'; // Dinar serbio\n\t\tpublic const RUB = '643'; // Rublo ruso\n\t\tpublic const RWF = '646'; // Franco ruandés\n\t\tpublic const SAR = '682'; // Riyal saudí\n\t\tpublic const SBD = '090'; // Dólar de Islas Salomón\n\t\tpublic const SCR = '690'; // Rupia de Seychelles\n\t\tpublic const SDG = '938'; // Libra sudanesa\n\t\tpublic const SEK = '752'; // Corona sueca\n\t\tpublic const SGD = '702'; // Dólar de Singapur\n\t\tpublic const SHP = '654'; // Libra de Santa Helena\n\t\tpublic const SLL = '694'; // Leone\n\t\tpublic const SOS = '706'; // Chelín somalí\n\t\tpublic const SRD = '968'; // Dólar de Surinam\n\t\tpublic const SSP = '728'; // Libra sursudanesa\n\t\tpublic const STD = '678'; // Dobra\n\t\tpublic const SVC = '222'; // Colón\n\t\tpublic const SYP = '760'; // Libra siria\n\t\tpublic const SZL = '748'; // Lilangeni\n\t\tpublic const THB = '764'; // Baht\n\t\tpublic const TJS = '972'; // Somoni\n\t\tpublic const TMT = '934'; // Manat turcomano\n\t\tpublic const TND = '788'; // Dinar tunecino\n\t\tpublic const TOP = '776'; // Pa’anga\n\t\tpublic const TRY = '949'; // Lira turca\n\t\tpublic const TTD = '780'; // Dólar de Trinidad y Tobago\n\t\tpublic const TWD = '901'; // Nuevo dólar de Taiwán\n\t\tpublic const TZS = '834'; // Chelín tanzano\n\t\tpublic const UAH = '980'; // Grivnia\n\t\tpublic const UGX = '800'; // Chelín ugandés\n\t\tpublic const USD = '840'; // Dólar estadounidense\n\t\tpublic const USN = '997'; // Dólar estadounidense (Next day)\n\t\tpublic const UYI = '940'; // Peso uruguayo en unidades indexadas (URUIURUI)\n\t\tpublic const UYU = '858'; // Peso uruguayo\n\t\tpublic const UZS = '860'; // Som uzbeko\n\t\tpublic const VEF = '937'; // Bolívar\n\t\tpublic const VND = '704'; // Dong\n\t\tpublic const VUV = '548'; // Vatu\n\t\tpublic const WST = '882'; // Tala\n\t\tpublic const XAF = '950'; // Franco CFA de África Central\n\t\tpublic const XCD = '951'; // Dólar del Caribe Oriental\n\t\tpublic const XDR = '960'; // SDR (Derecho Especial de Retiro)\n\t\tpublic const XOF = '952'; // Franco CFA de África Occidental\n\t\tpublic const XPF = '953'; // Franco CFP\n\t\tpublic const XSU = '994'; // Sucre\n\t\tpublic const XUA = '965'; // BAD UNIDAD DE CUENTAS\n\t\tpublic const YER = '886'; // Rial yemení\n\t\tpublic const ZAR = '710'; // Rand\n\t\tpublic const ZMW = '967'; // Kwacha zambiano\n\t\tpublic const ZWL = '932'; // Dólar zimbabuense\n\n\t\tpublic static function isValid (string $value) : bool {\n\t\t\treturn in_array($value, (new ReflectionClass(self::class))->getConstants());\n\t\t}\n\t}\n"
  },
  {
    "path": "src/Redsys/Merchant/MerchantEnvironment.php",
    "content": "<?php\n  declare(strict_types=1);\n\n\tnamespace Redsys\\Merchant;\n\n\tuse ReflectionClass;\n\n\tclass MerchantEnvironment {\n\t\tpublic const LIVE = 'live';\n\t\tpublic const TEST = 'test';\n\t\tpublic const REST_LIVE = 'restLive';\n\t\tpublic const REST_TEST = 'restTest';\n\t\tpublic const START_REST_LIVE = 'startRequestRestLive';\n\t\tpublic const START_REST_TEST = 'startRequestRestTest';\n\t\tpublic const MANAGE_REQUEST_REST_LIVE = 'manageRequestRestLive';\n\t\tpublic const MANAGE_REQUEST_REST_TEST = 'manageRequestRestTest';\n\n\t\t// InSite environments\n\t\tpublic const INSITE_SANDBOX = 'insiteSandbox';\n\t\tpublic const INSITE_LIVE = 'insiteLive';\n\t\tpublic const INSITE_REST_SANDBOX = 'insiteRestSandbox';\n\t\tpublic const INSITE_REST_LIVE = 'insiteRestLive';\n\n\t\t// InSite JS URLs\n\t\tpublic const INSITE_JS_SANDBOX = 'https://sis-t.redsys.es:25443/sis/NC/sandbox/redsysV3.js';\n\t\tpublic const INSITE_JS_LIVE = 'https://sis.redsys.es/sis/NC/redsysV3.js';\n\n\t\tpublic static function isValid (string $value) : bool {\n\t\t\treturn in_array($value, (new ReflectionClass(self::class))->getConstants());\n\t\t}\n\t}"
  },
  {
    "path": "src/Redsys/Merchant/MerchantInsiteError.php",
    "content": "<?php\ndeclare(strict_types=1);\n\nnamespace Redsys\\Merchant;\n\nuse ReflectionClass;\n\n/**\n * InSite Error codes for Redsys payment forms\n * \n * Error codes returned by the InSite JavaScript validation.\n */\nclass MerchantInsiteError\n{\n    public const MSG_01 = 'msg1';   // Ha de rellenar los datos de la tarjeta\n    public const MSG_02 = 'msg2';   // La tarjeta es obligatoria\n    public const MSG_03 = 'msg3';   // La tarjeta ha de ser numérica\n    public const MSG_04 = 'msg4';   // La tarjeta no puede ser negativa\n    public const MSG_05 = 'msg5';   // El mes de caducidad de la tarjeta es obligatorio\n    public const MSG_06 = 'msg6';   // El mes de caducidad de la tarjeta ha de ser numérico\n    public const MSG_07 = 'msg7';   // El mes de caducidad de la tarjeta es incorrecto\n    public const MSG_08 = 'msg8';   // El año de caducidad de la tarjeta es obligatorio\n    public const MSG_09 = 'msg9';   // El año de caducidad de la tarjeta ha de ser numérico\n    public const MSG_10 = 'msg10'; // El año de caducidad de la tarjeta no puede ser negativo\n    public const MSG_11 = 'msg11'; // El código de seguridad de la tarjeta no tiene la longitud correcta\n    public const MSG_12 = 'msg12'; // El código de seguridad de la tarjeta ha de ser numérico\n    public const MSG_13 = 'msg13'; // El código de seguridad de la tarjeta no puede ser negativo\n    public const MSG_14 = 'msg14'; // El código de seguridad no es necesario para su tarjeta\n    public const MSG_15 = 'msg15'; // La longitud de la tarjeta no es correcta\n    public const MSG_16 = 'msg16'; // Debe introducir un número de tarjeta válido (sin espacios ni guiones)\n    public const MSG_17 = 'msg17'; // Validación incorrecta por parte del comercio\n    public const MSG_18 = 'msg18'; // Error de inicialización de dominio\n\n    /**\n     * Error descriptions in Spanish\n     */\n    public const DESCRIPTIONS = [\n        'msg1' => 'Ha de rellenar los datos de la tarjeta',\n        'msg2' => 'La tarjeta es obligatoria',\n        'msg3' => 'La tarjeta ha de ser numérica',\n        'msg4' => 'La tarjeta no puede ser negativa',\n        'msg5' => 'El mes de caducidad de la tarjeta es obligatorio',\n        'msg6' => 'El mes de caducidad de la tarjeta ha de ser numérico',\n        'msg7' => 'El mes de caducidad de la tarjeta es incorrecto',\n        'msg8' => 'El año de caducidad de la tarjeta es obligatorio',\n        'msg9' => 'El año de caducidad de la tarjeta ha de ser numérico',\n        'msg10' => 'El año de caducidad de la tarjeta no puede ser negativo',\n        'msg11' => 'El código de seguridad de la tarjeta no tiene la longitud correcta',\n        'msg12' => 'El código de seguridad de la tarjeta ha de ser numérico',\n        'msg13' => 'El código de seguridad de la tarjeta no puede ser negativo',\n        'msg14' => 'El código de seguridad no es necesario para su tarjeta',\n        'msg15' => 'La longitud de la tarjeta no es correcta',\n        'msg16' => 'Debe introducir un número de tarjeta válido (sin espacios ni guiones)',\n        'msg17' => 'Validación incorrecta por parte del comercio',\n        'msg18' => 'Error de inicialización de dominio',\n    ];\n\n    /**\n     * Get error description\n     *\n     * @param string $code Error code (msg1, msg2, etc.)\n     * @return string Error description in Spanish\n     */\n    public static function getDescription(string $code): string\n    {\n        return self::DESCRIPTIONS[$code] ?? 'Error desconocido';\n    }\n}"
  },
  {
    "path": "src/Redsys/Merchant/MerchantInsiteLanguage.php",
    "content": "<?php\ndeclare(strict_types=1);\n\nnamespace Redsys\\Merchant;\n\nuse ReflectionClass;\n\n/**\n * InSite Language codes for Redsys payment forms\n * \n * Both SIS codes and ISO 639-1 codes are supported.\n */\nclass MerchantInsiteLanguage\n{\n    // SIS Language Codes\n    public const SPANISH = '1';\n    public const ENGLISH = '2';\n    public const CATALAN = '3';\n    public const FRENCH = '4';\n    public const GERMAN = '5';\n    public const DUTCH = '6';\n    public const ITALIAN = '7';\n    public const SWEDISH = '8';\n    public const PORTUGUESE = '9';\n    public const VALENCIAN = '10';\n    public const POLISH = '11';\n    public const GALICIAN = '12';\n    public const BASQUE = '13';\n    public const BULGARIAN = '100';\n    public const CHINESE = '156';\n    public const CROATIAN = '191';\n    public const CZECH = '203';\n    public const DANISH = '208';\n    public const ESTONIAN = '233';\n    public const FINNISH = '246';\n    public const GREEK = '300';\n    public const HUNGARIAN = '348';\n    public const HINDI = '356';\n    public const JAPANESE = '392';\n    public const KOREAN = '410';\n    public const LATVIAN = '428';\n    public const LITHUANIAN = '440';\n    public const MALTESE = '470';\n    public const ROMANIAN = '642';\n    public const RUSSIAN = '643';\n    public const ARABIC = '682';\n    public const SLOVAK = '703';\n    public const SLOVENIAN = '705';\n    public const TURKISH = '792';\n\n    // ISO 639-1 Codes (also supported)\n    public const ISO_ES = 'ES';\n    public const ISO_EN = 'EN';\n    public const ISO_CA = 'CA';\n    public const ISO_FR = 'FR';\n    public const ISO_DE = 'DE';\n    public const ISO_NL = 'NL';\n    public const ISO_IT = 'IT';\n    public const ISO_SV = 'SV';\n    public const ISO_PT = 'PT';\n    public const ISO_VA = 'VA';\n    public const ISO_PL = 'PL';\n    public const ISO_GL = 'GL';\n    public const ISO_EU = 'EU';\n    public const ISO_BG = 'BG';\n    public const ISO_ZH = 'ZH';\n    public const ISO_HR = 'HR';\n    public const ISO_CS = 'CS';\n    public const ISO_DA = 'DA';\n    public const ISO_ET = 'ET';\n    public const ISO_FI = 'FI';\n    public const ISO_EL = 'EL';\n    public const ISO_HU = 'HU';\n    public const ISO_HI = 'HI';\n    public const ISO_JA = 'JA';\n    public const ISO_KO = 'KO';\n    public const ISO_LV = 'LV';\n    public const ISO_LT = 'LT';\n    public const ISO_MT = 'MT';\n    public const ISO_RO = 'RO';\n    public const ISO_RU = 'RU';\n    public const ISO_AR = 'AR';\n    public const ISO_SK = 'SK';\n    public const ISO_SL = 'SL';\n    public const ISO_TR = 'TR';\n\n    /**\n     * Check if a language code is valid\n     *\n     * @param string $value Language code (SIS or ISO 639-1)\n     * @return bool\n     */\n    public static function isValid(string $value): bool\n    {\n        return in_array($value, (new ReflectionClass(self::class))->getConstants());\n    }\n\n    /**\n     * Get all valid language codes\n     *\n     * @return array\n     */\n    public static function getAll(): array\n    {\n        return (new ReflectionClass(self::class))->getConstants();\n    }\n}"
  },
  {
    "path": "src/Redsys/Merchant/MerchantInsiteStyle.php",
    "content": "<?php\ndeclare(strict_types=1);\n\nnamespace Redsys\\Merchant;\n\nuse ReflectionClass;\n\n/**\n * InSite Style constants for Redsys payment forms\n * \n * Style options for InSite forms.\n */\nclass MerchantInsiteStyle\n{\n    // InSite form styles\n    public const INLINE = 'inline';\n    public const TWO_ROWS = 'twoRows';\n    \n    /**\n     * Check if a style is valid\n     *\n     * @param string $value Style code\n     * @return bool\n     */\n    public static function isValid(string $value): bool\n    {\n        return in_array($value, [self::INLINE, self::TWO_ROWS]);\n    }\n}"
  },
  {
    "path": "src/Redsys/Merchant/MerchantPaymethods.php",
    "content": "<?php\n  declare(strict_types=1);\n\n\tnamespace Redsys\\Merchant;\n\n\tuse ReflectionClass;\n\n\tclass MerchantPaymethods {\n\t\tpublic const ALL = '';\n\t\tpublic const TARJETA = 'C';\n\t\tpublic const TARJETA_IUPAY = 'T';\n\t\tpublic const BIZUM = 'z';\n\t\tpublic const PAYPAL = 'P';\n\t\tpublic const TRANSFERENCIA = 'R';\n\t\tpublic const MASTERPASS = 'N';\n\t\tpublic const IUPAY = 'O';\n\n\t\tpublic static function isValid (string $value) : bool {\n\t\t\treturn in_array($value, (new ReflectionClass(self::class))->getConstants());\n\t\t}\n\t}\n"
  },
  {
    "path": "src/Redsys/Merchant/MerchantTransactionTypes.php",
    "content": "<?php\n  declare(strict_types=1);\n\n\tnamespace Redsys\\Merchant;\n\n\tuse ReflectionClass;\n\n\tclass MerchantTransactionTypes {\n\t\tpublic const AUTORIZACION                                 =  0; // Autorización\n\t\tpublic const PREAUTORIZACION                              =  1; // Preautorización\n\t\tpublic const PREAUTORIZACION_DE_REEMPLAZO                 = 11; // Preautorización de reemplazo\n\t\tpublic const CONFIRMACION                                 =  2; // Confirmación de preautorización\n\t\tpublic const DEVOLUCION                                   =  3; // Devolución Automática\n\t\tpublic const PREAUTORIZACION_SEPARADA                     =  7; // Autenticación\n\t\tpublic const CONFIRMACION_SEPARADA                        =  8; // Confirmación de Autenticación\n\t\tpublic const ANULACION                                    =  9; // Anulación de Preautorización o Autorización\n\t\tpublic const PAYGOLD                                      = 15; // Paygold\n\t\tpublic const AUTENTICACION_PUCE                           = 17; // Autenticación Puce\n\t\tpublic const DEVOLUCION_SIN_ORIGINAL                      = 34; // Devolución sin original\n\t\tpublic const PREMIO_DE_APUESTAS                           = 37; // Abono de Apuestas\n\t\tpublic const ANULACION_DE_PAGO                            = 45; // Anulación de pago\n\t\tpublic const ANULACION_DE_DEVOLUCION                      = 46; // Anulación de devolución\n\t\tpublic const ANULACION_DE_CONFIRMACION_SEPARADA           = 47; // Anulación de confirmación separada\n\t\tpublic const MODIFICACION_DE_CADUCIDAD_DEL_ENLACE_PAYGOLD = 51; // Modificación de caducidad del enlace (Paygold)\n\n\t\tpublic static function isValid (int $value) : bool {\n\t\t\treturn in_array($value, (new ReflectionClass(self::class))->getConstants());\n\t\t}\n\t}\n"
  },
  {
    "path": "src/Sermepa/Tpv/Tpv.php",
    "content": "<?php\n\nnamespace Sermepa\\Tpv;\n\nuse Exception;\n\n/**\n * Class Sermepa\n */\nclass Tpv\n{\n    CONST TIMEOUT = 10;\n    CONST READ_TIMEOUT = 120;\n    CONST SSLVERSION_TLSv1_2 = 6;\n\n    protected $_setEnvironment;\n    protected $_setNameForm;\n    protected $_setIdForm;\n    protected $_setParameters;\n    protected $_setVersion;\n    protected $_setNameSubmit;\n    protected $_setIdSubmit;\n    protected $_setValueSubmit;\n    protected $_setStyleSubmit;\n    protected $_setClassSubmit;\n    protected $_setSignature;\n    \n    // InSite properties\n    protected $_setInSiteMode = false;\n    protected $_setInSiteJsUrl = '';\n\n    /**\n     * Constructor\n     */\n    public function __construct()\n    {\n        $this->setEnvironment();\n\n        $this->_setParameters = array();\n        $this->_setVersion = 'HMAC_SHA256_V1';\n        $this->_setNameForm = 'redsys_form';\n        $this->_setIdForm = 'redsys_form';\n        $this->_setNameSubmit = 'btn_submit';\n        $this->_setIdSubmit = 'btn_submit';\n        $this->_setValueSubmit = 'Send';\n        $this->_setStyleSubmit = '';\n        $this->_setClassSubmit = '';\n\n    }\n\n    /************* NEW METHODS ************* */\n\n    /**\n     * Set identifier required\n     *\n     * @param string $value Este parámetro se utilizará para manejar la referencia asociada a los datos de tarjeta. Es\n     *                      un campo alfanumérico de un máximo de 40 posiciones cuyo valor es generado por el TPV\n     *                      Virtual.\n     *\n     * @return $this\n     * @throws TpvException\n     */\n    public function setIdentifier($value = 'REQUIRED')\n    {\n        if ($this->isEmpty($value)) {\n            throw new TpvException('Please add value');\n        }\n\n        $this->_setParameters['DS_MERCHANT_IDENTIFIER'] = $value;\n\n        return $this;\n    }\n\n    /**\n     * @param bool $flat\n     *\n     * @return $this\n     * @throws TpvException\n     */\n    public function setMerchantDirectPayment($flat = false)\n    {\n        if (!is_bool($flat)) {\n            throw new TpvException('Please set true or false');\n        }\n\n        $this->_setParameters['DS_MERCHANT_DIRECTPAYMENT'] = $flat;\n\n        return $this;\n    }\n\n    /**\n     * Set amount (required)\n     *\n     * @param $amount\n     *\n     * @return $this\n     * @throws TpvException\n     */\n    public function setAmount($amount)\n    {\n        if ($amount < 0) {\n            throw new TpvException('Amount must be greater than or equal to 0.');\n        }\n\n        $amount = $this->convertNumber($amount);\n        $amount = intval(strval($amount * 100));\n\n        $this->_setParameters['DS_MERCHANT_AMOUNT'] = $amount;\n\n        return $this;\n    }\n\n    /**\n     * Set Sum total (required for recurring payment)\n     *\n     * @param $sumTotal\n     *\n     * @return $this\n     * @throws TpvException\n     */\n    public function setSumtotal($sumTotal)\n    {\n        if ($sumTotal < 0) {\n            throw new TpvException('Sum total must be greater than or equal to 0.');\n        }\n\n        $sumTotal = $this->convertNumber($sumTotal);\n        $sumTotal = intval(strval($sumTotal * 100));\n\n        $this->_setParameters['DS_MERCHANT_SUMTOTAL'] = $sumTotal;\n\n        return $this;\n    }\n\n\n    /**\n     * Set Charge expiry date (required for recurring payment)\n     *\n     * @param $date\n     *\n     * @return $this\n     * @throws TpvException\n     */\n    public function setChargeExpiryDate($date)\n    {\n        if ( ! $this->isValidDate($date) ) {\n            throw new TpvException('Date is not valid.');\n        }\n\n        $this->_setParameters['DS_MERCHANT_CHARGEEXPIRYDATE'] = $date;\n\n        return $this;\n    }\n\n    /**\n     * Set Date frecuency (required for recurring payment)\n     *\n     * @param $dateFrecuency\n     *\n     * @return $this\n     * @throws TpvException\n     */\n    public function setDateFrecuency($dateFrecuency)\n    {\n        if ( !is_numeric($dateFrecuency) || (strlen($dateFrecuency) < 1 || strlen($dateFrecuency) > 5) ) {\n            throw new TpvException('Date frecuency is not valid.');\n        }\n\n        $this->_setParameters['DS_MERCHANT_DATEFRECUENCY'] = $dateFrecuency;\n\n        return $this;\n    }\n\n\n\n    /**\n     * Set Order number - [The first 4 digits must be numeric.] (required)\n     *\n     * @param $order\n     *\n     * @return $this\n     * @throws TpvException\n     */\n    public function setOrder($order='')\n    {\n        $order = trim($order);\n        if (strlen($order) <= 3 || strlen($order) > 12 || !preg_match('/^[\\w\\.]+$/', substr($order, 0, 4))) {\n            throw new TpvException('Order id must be a 4 digit string at least, maximum 12 characters.');\n        }\n\n        $this->_setParameters['DS_MERCHANT_ORDER'] = $order;\n\n        return $this;\n    }\n\n    /**\n     * Get order\n     *\n     * @return mixed\n     */\n    public function getOrder()\n    {\n        return $this->_setParameters['DS_MERCHANT_ORDER'];\n    }\n\n    /**\n     * Get Ds_Order of Notification\n     *\n     * @param array $parameters Array with parameters\n     *\n     * @return string\n     */\n    public function getOrderNotification($parameters)\n    {\n        $order = '';\n        foreach ($parameters as $key => $value) {\n            if (strtolower($key) === 'ds_order') {\n                $order = $value;\n            }\n        }\n\n        return $order;\n    }\n\n    /**\n     * Set code Fuc of trade (required)\n     *\n     * @param string $fuc Fuc\n     *\n     * @return $this\n     * @throws TpvException\n     */\n    public function setMerchantcode($fuc='')\n    {\n        if ($this->isEmpty($fuc)) {\n            throw new TpvException('Please add Fuc');\n        }\n\n        $this->_setParameters['DS_MERCHANT_MERCHANTCODE'] = $fuc;\n\n        return $this;\n    }\n\n    /**\n     * Set currency\n     *\n     * @param int $currency Algunos ejemplos: 978 para Euros, 840 para Dólares, 826 para libras esterlinas y 392 para Yenes.\n     *\n     * @return $this\n     * @throws TpvException\n     */\n    public function setCurrency($currency = 978)\n    {\n        if (!preg_match('/^[0-9]{3}$/', $currency)) {\n            throw new TpvException('Currency is not valid');\n        }\n\n        $this->_setParameters['DS_MERCHANT_CURRENCY'] = $currency;\n\n        return $this;\n    }\n\n    /**\n     * Set Transaction type\n     *\n     * @param int $transaction\n     *\n     * @return $this\n     * @throws TpvException\n     */\n    public function setTransactiontype($transaction = 0)\n    {\n        if ($this->isEmpty($transaction)) {\n            throw new TpvException('Please add transaction type');\n        }\n\n        $this->_setParameters['DS_MERCHANT_TRANSACTIONTYPE'] = $transaction;\n\n        return $this;\n    }\n\n    /**\n     * Set terminal by default is 1 to  Sadabell(required)\n     *\n     * @param int $terminal\n     *\n     * @return $this\n     * @throws TpvException\n     */\n    public function setTerminal($terminal = 1)\n    {\n        if (intval($terminal) === 0) {\n            throw new TpvException('Terminal is not valid.');\n        }\n\n        $this->_setParameters['DS_MERCHANT_TERMINAL'] = $terminal;\n\n        return $this;\n    }\n\n    /**\n     * Set url notification\n     *\n     * @param string $url\n     * @return $this\n     */\n    public function setNotification($url = '')\n    {\n        $this->_setParameters['DS_MERCHANT_MERCHANTURL'] = $url;\n\n        return $this;\n    }\n\n    /**\n     * Set url Ok\n     *\n     * @param string $url\n     * @return $this\n     */\n    public function setUrlOk($url = '')\n    {\n        $this->_setParameters['DS_MERCHANT_URLOK'] = $url;\n\n        return $this;\n    }\n\n    /**\n     * Set url Ko\n     *\n     * @param string $url\n     * @return $this\n     */\n    public function setUrlKo($url = '')\n    {\n        $this->_setParameters['DS_MERCHANT_URLKO'] = $url;\n\n        return $this;\n    }\n\n    /**\n     * @param string $version\n     * @return $this\n     * @throws TpvException\n     */\n    public function setVersion($version = '')\n    {\n        if ($this->isEmpty($version)) {\n            throw new TpvException('Please add version.');\n        }\n        $this->_setVersion = $version;\n\n        return $this;\n    }\n\n    /**\n     * Generate Merchant Parameters\n     *\n     * @return string\n     */\n    public function generateMerchantParameters()\n    {\n        //Convert Array to Json\n        $json = $this->arrayToJson($this->_setParameters);\n\n        //Return Json to Base64\n        return $this->encodeBase64($json);\n    }\n\n    /**\n     * Generate Merchant Signature\n     *\n     * @param string $key\n     *\n     * @return string\n     */\n    public function generateMerchantSignature($key)\n    {\n        $key = $this->decodeBase64($key);\n        //Generate Merchant Parameters\n        $merchant_parameter = $this->generateMerchantParameters();\n        // Get key with Order and key\n        $key = $this->encrypt_3DES($this->getOrder(), $key);\n        // Generated Hmac256 of Merchant Parameter\n        $result = $this->hmac256($merchant_parameter, $key);\n\n        // Base64 encoding\n        return $this->encodeBase64($result);\n    }\n\n    /**\n     * Generate Merchant Signature Notification\n     *\n     * @param string $key\n     * @param string $data\n     *\n     * @return string\n     */\n    public function generateMerchantSignatureNotification($key, $data)\n    {\n        $key = $this->decodeBase64($key);\n        // Decode data base64\n        $decode = $this->base64_url_decode($data);\n        // Los datos decodificados se pasan al array de datos\n        $parameters = $this->JsonToArray($decode);\n        $order = $this->getOrderNotification($parameters);\n\n        $key = $this->encrypt_3DES($order, $key);\n        // Generated Hmac256 of Merchant Parameter\n        $result = $this->hmac256($data, $key);\n\n        return $this->base64_url_encode($result);\n    }\n\n    /**\n     * Set Merchant Signature\n     *\n     * @param string $signature\n     * @return $this\n     */\n    public function setMerchantSignature($signature)\n    {\n        $this->_setSignature = $signature;\n\n        return $this;\n    }\n\n    /**\n     * Set environment\n     *\n     * @param string $environment test or live\n     *\n     * @return $this\n     * @throws TpvException\n     */\n    public function setEnvironment($environment = 'test')\n    {\n        $environment = trim($environment);\n        if ($environment === 'live') {\n            //Live\n            $this->_setEnvironment = 'https://sis.redsys.es/sis/realizarPago';\n        } elseif ($environment === 'test') {\n            //Test\n            $this->_setEnvironment = 'https://sis-t.redsys.es:25443/sis/realizarPago';\n        } elseif ($environment === 'restLive' || $environment === 'manageRequestRestLive') {\n            //Rest Live\n            $this->_setEnvironment = 'https://sis.redsys.es/sis/rest/trataPeticionREST';\n        } elseif ($environment === 'restTest' || $environment === 'manageRequestRestTest' ) {\n            //Rest Test\n            $this->_setEnvironment = 'https://sis-t.redsys.es:25443/sis/rest/trataPeticionREST';\n        } elseif ($environment === 'startRequestRestLive') {\n            //Start request\n            $this->_setEnvironment = 'https://sis.redsys.es/sis/rest/iniciaPeticionREST';\n        } elseif ($environment === 'startRequestRestTest') {\n            //Start request test\n            $this->_setEnvironment = 'https://sis-t.redsys.es:25443/sis/rest/iniciaPeticionREST';\n        } elseif ($environment === 'insiteSandbox') {\n            //InSite Sandbox - JS URL\n            $this->_setInSiteJsUrl = 'https://sis-t.redsys.es:25443/sis/NC/sandbox/redsysV3.js';\n            $this->_setEnvironment = 'https://sis-t.redsys.es:25443/sis/rest/iniciaPeticionREST';\n        } elseif ($environment === 'insiteLive') {\n            //InSite Live - JS URL\n            $this->_setInSiteJsUrl = 'https://sis.redsys.es/sis/NC/redsysV3.js';\n            $this->_setEnvironment = 'https://sis.redsys.es/sis/rest/iniciaPeticionREST';\n        } elseif ($environment === 'insiteRestSandbox') {\n            //InSite REST Sandbox (for sendInSite)\n            $this->_setInSiteJsUrl = 'https://sis-t.redsys.es:25443/sis/NC/sandbox/redsysV3.js';\n            $this->_setEnvironment = 'https://sis-t.redsys.es:25443/sis/rest/trataPeticionREST';\n        } elseif ($environment === 'insiteRestLive') {\n            //InSite REST Live (for sendInSite)\n            $this->_setInSiteJsUrl = 'https://sis.redsys.es/sis/NC/redsysV3.js';\n            $this->_setEnvironment = 'https://sis.redsys.es/sis/rest/trataPeticionREST';\n        } else {\n            throw new TpvException('Add test or live');\n        }\n\n        return $this;\n    }\n\n    /**\n     * @param string $environment\n     * @throws TpvException\n     * @deprecated Use `setEnvironment`\n     * @return $this\n     */\n    public function setEnviroment($environment = 'test')\n    {\n        $this->setEnvironment($environment);\n\n        return $this;\n    }\n\n    /**\n     * Set language code by default 001 = Spanish\n     *\n     * @param string $languageCode Language code [Castellano-001, Inglés-002, Catalán-003, Francés-004, Alemán-005,\n     *                             Holandés-006, Italiano-007, Sueco-008, Portugués-009, Valenciano-010, Polaco-011,\n     *                             Gallego-012 y Euskera-013.]\n     *\n     * @return $this\n     * @throws Exception\n     */\n    public function setLanguage($languageCode = '001')\n    {\n        if ($this->isEmpty($languageCode)) {\n            throw new TpvException('Add language code');\n        }\n\n        $this->_setParameters['DS_MERCHANT_CONSUMERLANGUAGE'] = trim($languageCode);\n\n        return $this;\n    }\n\n    /**\n     * Return environment\n     * @deprecated Use `getEnvironment`\n     * @return string Url of environment\n     */\n    public function getEnviroment()\n    {\n        return $this->getEnvironment();\n    }\n\n    /**\n     * Return environment\n     *\n     * @return string Url of environment\n     */\n    public function getEnvironment()\n    {\n        return $this->_setEnvironment;\n    }\n\n    /**\n     * Returns the path to the Redsys JavaScript file for the specified environment and version.\n     *\n     * @param string $environment Environment: test or live.\n     * @param string $version JavaScript file version: 2 or 3.\n     * @return string JavaScript file path.\n     */\n    public static function getJsPath($environment = 'test', $version = '2'){\n\n        // Stores the array of JavaScript file paths.\n        static $jsPaths = [\n            'test' => [\n                '2' => 'https://sis-t.redsys.es:25443/sis/NC/sandbox/redsysV2.js',\n                '3' => 'https://sis-t.redsys.es:25443/sis/NC/sandbox/redsysV3.js',\n            ],\n            'live' => [\n                '2' => 'https://sis.redsys.es/sis/NC/redsysV2.js',\n                '3' => 'https://sis.redsys.es/sis/NC/redsysV3.js',\n            ],\n        ];\n\n        // Checks if the environment and version are valid.\n        if (!isset($jsPaths[$environment][$version])) {\n            throw new TpvException('Invalid environment or version');\n        }\n\n        // Returns the JavaScript file path.\n        return $jsPaths[$environment][$version];\n    }\n\n    /**\n     * Optional field for the trade to be included in the data sent by the \"on-line\" response to trade if this option\n     * has been chosen.\n     *\n     * @param string $merchantdata\n     *\n     * @return $this\n     * @throws Exception\n     */\n    public function setMerchantData($merchantdata='')\n    {\n        if ($this->isEmpty($merchantdata)) {\n            throw new TpvException('Add merchant data');\n        }\n\n        $this->_setParameters['DS_MERCHANT_MERCHANTDATA'] = trim($merchantdata);\n\n        return $this;\n    }\n\n    /**\n     * Set product description (optional)\n     *\n     * @param string $description\n     *\n     * @return $this\n     * @throws Exception\n     */\n    public function setProductDescription($description = '')\n    {\n        if ($this->isEmpty($description)) {\n            throw new TpvException('Add product description');\n        }\n\n        $this->_setParameters['DS_MERCHANT_PRODUCTDESCRIPTION'] = trim($description);\n\n        return $this;\n    }\n\n    /**\n     * Set name of the user making the purchase (required)\n     *\n     * @param string $titular name of the user (for example Alonso Cotos)\n     *\n     * @return $this\n     * @throws Exception\n     */\n    public function setTitular($titular = '')\n    {\n        if ($this->isEmpty($titular)) {\n            throw new TpvException('Add name for the user');\n        }\n\n        $this->_setParameters['DS_MERCHANT_TITULAR'] = trim($titular);\n\n        return $this;\n    }\n\n    /**\n     * Set Trade name Trade name will be reflected in the ticket trade (Optional)\n     *\n     * @param string $tradename trade name\n     *\n     * @return $this\n     * @throws Exception\n     */\n    public function setTradeName($tradename = '')\n    {\n        if ($this->isEmpty($tradename)) {\n            throw new TpvException('Add name for Trade name');\n        }\n\n        $this->_setParameters['DS_MERCHANT_MERCHANTNAME'] = trim($tradename);\n\n        return $this;\n    }\n\n    /**\n     * Payment type\n     *\n     * @param string $method\n     * [\n     *      T o C = Sólo Tarjeta (mostrará sólo el formulario para datos de tarjeta)\n     *      R = Pago por Transferencia,\n     *      D = Domiciliación\n     *      z = Bizum\n     *      p = PayPal\n     *      N = Masterpass\n     *      xpay = GooglePay y ApplePay\n     * ]\n     *\n     * @return $this\n     * @throws Exception\n     */\n    public function setMethod($method = 'C')\n    {\n        if ($this->isEmpty($method)) {\n            throw new TpvException('Add pay method');\n        }\n\n        if (!in_array($method, ['T', 'C', 'R', 'D', 'z', 'p', 'N', 'xpay'])) {\n            throw new TpvException('Pay method is not valid');\n        }\n\n        $this->_setParameters['DS_MERCHANT_PAYMETHODS'] = trim($method);\n\n        return $this;\n    }\n\n    /**\n     * Card number\n     *\n     * @param string $pan Tarjeta. Su longitud depende del tipo de tarjeta.\n     *\n     * @return $this\n     * @throws TpvException\n     */\n    public function setPan($pan=0)\n    {\n        if (intval($pan) === 0) {\n            throw new TpvException('Pan not valid');\n        }\n\n        $this->_setParameters['DS_MERCHANT_PAN'] = $pan;\n\n        return $this;\n    }\n\n    /**\n     * Expire date\n     *\n     * @param $expirydate . Caducidad de la tarjeta. Su formato es AAMM, siendo AA los dos últimos dígitos del año y MM\n     *                    los dos dígitos del mes.\n     *\n     * @return $this\n     * @throws TpvException\n     */\n    public function setExpiryDate($expirydate='')\n    {\n        if ( !$this->isExpiryDate($expirydate) ) {\n            throw new TpvException('Expire date is not valid');\n        }\n        $this->_setParameters['DS_MERCHANT_EXPIRYDATE'] = $expirydate;\n        return $this;\n\n    }\n\n    /**\n     * Set parameters\n     *\n     * @param array $parameters\n     * @return $this\n     * @throws TpvException\n     */\n\n    public function setParameters($parameters=[])\n    {\n        if(!is_array($parameters)) {\n            throw new TpvException('Parameters is not an array');\n        }\n\n        $keys = array_keys($parameters);\n\n        if(array_keys($keys) === $keys ) {\n            throw new TpvException('Parameters is not an array associative');\n        }\n\n        $parameters = array_change_key_case($parameters, CASE_UPPER);\n        $this->_setParameters = array_merge($this->_setParameters, $parameters);\n        return $this;\n    }\n\n    /**\n     * CVV2 card\n     *\n     * @param string $cvv2 Código CVV2 de la tarjeta\n     *\n     * @return $this\n     * @throws TpvException\n     */\n    public function setCVV2($cvv2=0)\n    {\n        if (intval($cvv2) === 0) {\n            throw new TpvException('CVV2 is not valid');\n        }\n\n        $this->_setParameters['DS_MERCHANT_CVV2'] = $cvv2;\n\n        return $this;\n    }\n\n    /**\n     * Set name to form\n     *\n     * @param string $name Name for form.\n     * @return $this\n     */\n    public function setNameForm($name = 'servired_form')\n    {\n        $this->_setNameForm = $name;\n\n        return $this;\n    }\n\n    /**\n     * Get name form\n     *\n     * @return string\n     */\n    public function getNameForm()\n    {\n        return $this->_setNameForm;\n    }\n\n    /**\n     * Set Id to form\n     *\n     * @param string $id Name for Id\n     * @return $this\n     */\n    public function setIdForm($id = 'servired_form')\n    {\n        $this->_setIdForm = $id;\n\n        return $this;\n    }\n\n    /**\n     * Set Attributes to submit\n     *\n     * @param string $name Name submit\n     * @param string $id Id submit\n     * @param string $value Value submit\n     * @param string $style Set Style\n     * @param string $cssClass CSS class\n     * @return $this\n     */\n    public function setAttributesSubmit(\n        $name = 'btn_submit',\n        $id = 'btn_submit',\n        $value = 'Send',\n        $style = '',\n        $cssClass = ''\n    ) {\n        $this->_setNameSubmit = $name;\n        $this->_setIdSubmit = $id;\n        $this->_setValueSubmit = $value;\n        $this->_setStyleSubmit = $style;\n        $this->_setClassSubmit = $cssClass;\n\n        return $this;\n    }\n\n    /**\n     * Execute redirection to TPV\n     *\n     * @return string|null\n     */\n    public function executeRedirection($return = false)\n    {\n        $html = $this->createForm();\n        $html .= '<script>document.forms[\"'.$this->_setNameForm.'\"].submit();</script>';\n\n        if (!$return) {\n            echo $html;\n\n            return null;\n        }\n\n        return $html;\n    }\n\n    /**\n     * Generate form html\n     *\n     * @return string\n     */\n    public function createForm()\n    {\n        $form = '\n            <form action=\"'.$this->_setEnvironment.'\" method=\"post\" id=\"'.$this->_setIdForm.'\" name=\"'.$this->_setNameForm.'\" >\n                <input type=\"hidden\" name=\"Ds_MerchantParameters\" value=\"'.$this->generateMerchantParameters().'\"/>\n                <input type=\"hidden\" name=\"Ds_Signature\" value=\"'.$this->_setSignature.'\"/>\n                <input type=\"hidden\" name=\"Ds_SignatureVersion\" value=\"'.$this->_setVersion.'\"/>\n                <input type=\"submit\" name=\"'.$this->_setNameSubmit.'\" id=\"'.$this->_setIdSubmit.'\" value=\"'.$this->_setValueSubmit.'\" '.($this->_setStyleSubmit != '' ? ' style=\"'.$this->_setStyleSubmit.'\"' : '').' '.($this->_setClassSubmit != '' ? ' class=\"'.$this->_setClassSubmit.'\"' : '').'>\n            </form>\n        ';\n\n        return $form;\n    }\n\n    /**\n     * Send data\n     */\n    public function send()\n    {\n        $data['Ds_MerchantParameters'] = $this->generateMerchantParameters();\n        $data['Ds_Signature'] = $this->_setSignature;\n        $data['Ds_SignatureVersion'] = $this->_setVersion;\n\n        $jsonCode = json_encode($data);\n\n        $rest = curl_init ();\n        curl_setopt ($rest, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);\n        curl_setopt ( $rest, CURLOPT_URL, $this->_setEnvironment );\n        curl_setopt ( $rest, CURLOPT_CONNECTTIMEOUT, self::TIMEOUT );\n        curl_setopt ( $rest, CURLOPT_TIMEOUT, self::READ_TIMEOUT );\n        curl_setopt ( $rest, CURLOPT_RETURNTRANSFER, true );\n        curl_setopt ( $rest, CURLOPT_SSL_VERIFYHOST, 0 );\n        curl_setopt ( $rest, CURLOPT_SSL_VERIFYPEER, 0 );\n        curl_setopt ( $rest, CURLOPT_SSLVERSION, self::SSLVERSION_TLSv1_2 );\n        curl_setopt ( $rest, CURLOPT_POST, true );\n        curl_setopt ( $rest, CURLOPT_POSTFIELDS, $jsonCode );\n\n        $tmp = curl_exec ( $rest );\n        $httpCode=curl_getinfo($rest,CURLINFO_HTTP_CODE);\n\n        if($tmp !== false && $httpCode==200){\n            $result=$tmp;\n        }\n        else{\n            $strError=\"Request failure \".(($httpCode!=200)?\"[HttpCode: '\".$httpCode.\"']\":\"\").((curl_error($rest))?\" [Error: '\".curl_error($rest).\"']\":\"\");\n            exit($strError);\n        }\n\n        curl_close( $rest );\n\n        return $result;\n    }\n\n    /**\n     * Check if properly made ​​the purchase.\n     *\n     * @param string $key      Key\n     * @param array  $postData Data received by the bank\n     *\n     * @return bool\n     * @throws TpvException\n     */\n    public function check($key, $postData)\n    {\n        if (!isset($postData)) {\n            throw new TpvException(\"Add data return of bank\");\n        }\n\n        $parameters = $postData[\"Ds_MerchantParameters\"];\n        $signatureReceived = $postData[\"Ds_Signature\"];\n        $signature = $this->generateMerchantSignatureNotification($key, $parameters);\n\n        return hash_equals($signature, $signatureReceived);\n    }\n\n    /**\n     *  Decode Ds_MerchantParameters, return array with the parameters\n     *\n     * @param $parameters\n     *\n     * @return array with parameters of bank\n     */\n    public function getMerchantParameters($parameters)\n    {\n        $decoded = $this->decodeParameters($parameters);\n\n        return $this->JsonToArray($decoded);\n    }\n\n    /**\n     * Return array with all parameters assigned.\n     *\n     * @return array\n     */\n    public function getParameters()\n    {\n        return $this->_setParameters;\n    }\n\n    /**\n     * Return version\n     *\n     * @return string\n     */\n    public function getVersion()\n    {\n        return $this->_setVersion;\n    }\n\n    /**\n     * Return MerchantSignature\n     *\n     * @return string\n     */\n    public function getMerchantSignature()\n    {\n        return $this->_setSignature;\n    }\n\n    /**\n     * COF Transition Indicator.\n     * Mandatory for COF Visa and MC operations.\n     * Possible values:\n     * “S”: It is first COF transaction (store credentials)\n     * “N”: It is not the first COF transaction\n     *\n     * @param $value\n     *\n     * @return $this\n     * @throws Exception\n     */\n    public function setMerchantCofIni($value)\n    {\n        $validOptions = ['S', 'N'];\n        $value = strtoupper($value);\n        if (!in_array($value, $validOptions, true)) {\n            throw new TpvException('Set Merchant COF INI valid options');\n        }\n        $this->_setParameters['DS_MERCHANT_COF_INI'] = $value;\n\n        return $this;\n    }\n\n    /**\n     * COF transaction type. Optional for COF Visa and MC.\n     * Possible values:\n     * “I”: Installments “R”: Recurring\n     * “H”: Reauthorization “E”: Resubmission “D”: Delayed\n     * “M”: Incremental “N”: No Show\n     * “C”: Otras\n     *\n     * @return $this\n     * @throws TpvException\n     */\n    public function setMerchantCofType($value)\n    {\n        $validOptions = ['I', 'R', 'H', 'E', 'D', 'M', 'N', 'C'];\n        $value = strtoupper($value);\n        if (!in_array($value, $validOptions, true)) {\n            throw new TpvException('Set Merchant COF type');\n        }\n        $this->_setParameters['DS_MERCHANT_COF_TYPE'] = $value;\n\n        return $this;\n    }\n\n    /**\n     * COF identifier identifier. Optional. This\n     * identifier is returned in the answer of the first\n     * COF (store credentials) operation and\n     * we must send in successive transactions made\n     * with the credentials that generated this same Id_txn\n     *\n     * @return $this\n     */\n    public function setMerchantCofTxnid($txid)\n    {\n        if($txid) {\n        $this->_setParameters['DS_MERCHANT_COF_TXNID'] = $txid;\n        }\n        return $this;\n    }\n\n    /**\n     * Generates a Redsys order number following the recommended format.\n     * The first 4 characters must be numeric, and the remaining characters must be alphanumeric.\n     *\n     * @param int $length The total length of the order number (must be at least 4)\n     * @return string The generated order number\n     * @throws InvalidArgumentException If the length is less than 4\n     */\n    function createOrderNumber($length = 12)\n    {\n        // Verify that the length is an integer\n        if (!is_int($length)) {\n            throw new TpvException(\"The order number length must be an integer.\");\n        }\n        \n        // Verify that the length is between 4 and 12\n        if ($length < 4 || $length > 12) {\n            throw new TpvException(\"The order number length must be between 4 and 12.\");\n        }\n\n        // Generate the first 4 numeric digits\n        $numericPart = sprintf(\"%04d\", rand(1000, 9999));\n\n        // Define the alphanumeric characters\n        $alphanumericCharacters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\n\n        // Generate the remaining alphanumeric part\n        $alphanumericPart = substr(\n            str_shuffle(\n                str_repeat(\n                    $alphanumericCharacters,\n                    ceil($length / strlen($alphanumericCharacters))\n                )\n            ),\n            0,\n            $length - 4\n        );\n\n        // Combine the numeric and alphanumeric parts to form the order number\n        return $numericPart . $alphanumericPart;\n    }\n\n    // ******** UTILS ********\n\n    /**\n     * Convert Array to json\n     *\n     * @param array $data Array\n     *\n     * @return string Json\n     */\n    protected function arrayToJson($data)\n    {\n        return json_encode($data);\n    }\n\n    /**\n     * Convert Json to array\n     *\n     * @param string $data\n     *\n     * @return mixed\n     */\n    protected function JsonToArray($data)\n    {\n        return json_decode($data, true);\n    }\n\n    /**\n     * Generate sha256\n     *\n     * @param string $data\n     * @param string $key\n     *\n     * @return string\n     */\n    protected function hmac256($data, $key)\n    {\n        return hash_hmac('sha256', $data, $key, true);\n    }\n\n    /**\n     * Encrypt to 3DES\n     *\n     * @param string $data Data for encrypt\n     * @param string $key  Key\n     *\n     * @return string\n     */\n    protected function encrypt_3DES($data, $key)\n    {\n        $iv = \"\\0\\0\\0\\0\\0\\0\\0\\0\";\n        $data_padded = $data;\n\n        if (strlen($data_padded) % 8) {\n            $data_padded = str_pad($data_padded, strlen($data_padded) + 8 - strlen($data_padded) % 8, \"\\0\");\n        }\n\n        return openssl_encrypt($data_padded, \"DES-EDE3-CBC\", $key, OPENSSL_RAW_DATA | OPENSSL_NO_PADDING, $iv);\n    }\n\n    /**\n     * @param string $data\n     *\n     * @return bool|string\n     */\n    protected function decodeParameters($data)\n    {\n        return base64_decode(strtr($data, '-_', '+/'));\n    }\n\n    /**\n     * @param string $value\n     *\n     * @return bool\n     */\n    protected function isEmpty($value)\n    {\n        if ($value === null) {\n            return true;\n        }\n\n        return is_string($value) && '' === trim($value);\n    }\n\n    /**\n     * Check if expiry date is valid\n     *\n     * @param string $expirydate\n     * @return boolean\n     */\n    protected function isExpiryDate($expirydate='')\n    {\n        return (strlen(trim($expirydate)) === 4 && is_numeric($expirydate));\n    }\n\n    /**\n     * Check is order is valid\n     *\n     * @param string $order\n     * @return boolean\n     */\n    protected function isValidOrder($order='')\n    {\n        return ( strlen($order) >= 4 && strlen($order) <= 12 && preg_match('/^[\\w\\.]+$/', substr($order, 0, 4)) )?true:false;\n\n    }\n\n    /**\n     * @param mixed $price\n     *\n     * @return string\n     */\n    protected function convertNumber($price)\n    {\n        return number_format(str_replace(',', '.', $price), 2, '.', '');\n    }\n\n    protected function isValidDate($date)\n    {\n        return preg_match(\"/^(\\d{4})-(\\d{1,2})-(\\d{1,2})$/\", $date, $m)\n            ? checkdate(intval($m[2]), intval($m[3]), intval($m[1]))\n            : false;\n    }\n\n    /******  Base64 Functions  *****\n     *\n     * @param string $input\n     *\n     * @return string\n     */\n    protected function base64_url_encode($input)\n    {\n        return strtr(base64_encode($input), '+/', '-_');\n    }\n\n    /**\n     * @param string $data\n     *\n     * @return string\n     */\n    protected function encodeBase64($data)\n    {\n        return base64_encode($data);\n    }\n\n    /**\n     * @param string $input\n     *\n     * @return string\n     */\n    protected function base64_url_decode($input)\n    {\n        return base64_decode(strtr($input, '-_', '+/'));\n    }\n\n    /**\n     * @param string $data\n     *\n     * @return string\n     */\n    protected function decodeBase64($data)\n    {\n        return base64_decode($data);\n    }\n\n    // ******** END UTILS ********\n\n    /************* INSITE METHODS ************* */\n\n    /**\n     * Enable or disable InSite mode\n     *\n     * @param bool $enabled\n     *\n     * @return $this\n     */\n    public function setInSite(bool $enabled = true)\n    {\n        $this->_setInSiteMode = $enabled;\n\n        return $this;\n    }\n\n    /**\n     * Get InSite mode status\n     *\n     * @return bool\n     */\n    public function getInSiteMode(): bool\n    {\n        return $this->_setInSiteMode;\n    }\n\n    /**\n     * Get InSite JavaScript URL\n     *\n     * @return string\n     */\n    public function getInSiteJsUrl(): string\n    {\n        return $this->_setInSiteJsUrl;\n    }\n\n    /**\n     * Generate InSite form HTML with embedded iframe (unified mode)\n     *\n     * According to Redsys InSite documentation, this generates an iframe with all payment fields.\n     *\n     * @param string $containerId    ID for the container div (default: 'card-form')\n     * @param string $buttonStyle    CSS style for the submit button\n     * @param string $bodyStyle      CSS style for the form body\n     * @param string $boxStyle       CSS style for the data input box\n     * @param string $inputStyle     CSS style for the input fields\n     * @param string $buttonText     Text for the pay button (HTML encoded, e.g., 'Pagar' or 'Bot&#243;n')\n     * @param string $language       Language code (1=ES, 2=EN, 3=CA, etc.) or ISO 639-1 (ES, EN, CA)\n     * @param bool   $showLogo       Show entity logo (default: true)\n     * @param bool   $reducedStyle   Use reduced width style (default: false)\n     * @param string $insiteStyle    InSite style: 'inline' or 'twoRows' (default: 'inline')\n     *\n     * @return string HTML with script and container\n     * @throws TpvException\n     */\n    public function createInSiteForm(\n        string $containerId = 'card-form',\n        string $buttonStyle = '',\n        string $bodyStyle = '',\n        string $boxStyle = '',\n        string $inputStyle = '',\n        string $buttonText = 'Pagar',\n        string $language = 'ES',\n        bool   $showLogo = true,\n        bool   $reducedStyle = false,\n        string $insiteStyle = 'inline'\n    ): string {\n        // Validate required parameters\n        if (!isset($this->_setParameters['DS_MERCHANT_MERCHANTCODE'])) {\n            throw new TpvException('Merchant code (FUC) is required for InSite');\n        }\n        if (!isset($this->_setParameters['DS_MERCHANT_TERMINAL'])) {\n            throw new TpvException('Terminal is required for InSite');\n        }\n        if (!isset($this->_setParameters['DS_MERCHANT_ORDER'])) {\n            throw new TpvException('Order is required for InSite');\n        }\n\n        $jsUrl = $this->_setInSiteJsUrl;\n        if (empty($jsUrl)) {\n            $jsUrl = 'https://sis-t.redsys.es:25443/sis/NC/sandbox/redsysV3.js';\n        }\n\n        $fuc = $this->_setParameters['DS_MERCHANT_MERCHANTCODE'];\n        $terminal = $this->_setParameters['DS_MERCHANT_TERMINAL'];\n        $order = $this->_setParameters['DS_MERCHANT_ORDER'];\n\n        // Build the getInSiteForm JavaScript call\n        $showLogoJs = $showLogo ? 'true' : 'false';\n        $reducedStyleJs = $reducedStyle ? 'true' : 'false';\n        $insiteStyleJs = in_array($insiteStyle, ['inline', 'twoRows']) ? $insiteStyle : 'inline';\n\n        $form = '<script src=\"' . $jsUrl . '\"></script>\n<div id=\"' . $containerId . '\"></div>\n<form name=\"datos\" id=\"datos\" method=\"post\" target=\"_self\">\n    <input type=\"hidden\" id=\"token\" name=\"token\" value=\"\">\n    <input type=\"hidden\" id=\"errorCode\" name=\"errorCode\" value=\"\">\n</form>\n<script>\nfunction merchantValidation(){\n    // Add custom validations here\n    return true;\n}\nfunction loadRedsysForm(){\n    getInSiteForm(\n        \\'' . $containerId . '\\',\n        \\'' . $buttonStyle . '\\',\n        \\'' . $bodyStyle . '\\',\n        \\'' . $boxStyle . '\\',\n        \\'' . $inputStyle . '\\',\n        \\'' . $buttonText . '\\',\n        \\'' . $fuc . '\\',\n        \\'' . $terminal . '\\',\n        \\'' . $order . '\\',\n        \\'' . $language . '\\',\n        ' . $showLogoJs . ',\n        ' . $reducedStyleJs . ',\n        \\'' . $insiteStyleJs . '\\'\n    );\n}\nwindow.addEventListener(\"message\", function receiveMessage(event) {\n    storeIdOper(event, \"token\", \"errorCode\", merchantValidation);\n});\nwindow.onload = loadRedsysForm;\n</script>';\n\n        return $form;\n    }\n\n    /**\n     * Generate InSite form HTML using JSON configuration (recommended)\n     *\n     * This method provides more flexibility by accepting a configuration array.\n     *\n     * @param array $options Configuration options:\n     *   - 'id' (required): Container ID\n     *   - 'fuc' (required): Merchant code\n     *   - 'terminal' (required): Terminal number\n     *   - 'order' (required): Order number\n     *   - 'styleButton': CSS for button\n     *   - 'styleBody': CSS for body\n     *   - 'styleBox': CSS for input box\n     *   - 'styleBoxText': CSS for input text\n     *   - 'buttonValue': Button text\n     *   - 'idiomaInsite': Language code\n     *   - 'mostrarLogoInsite': Show logo (true/false)\n     *   - 'estiloReducidoInsite': Reduced style (true/false)\n     *   - 'estiloInsite': 'inline' or 'twoRows'\n     *\n     * @return string HTML with script and container\n     * @throws TpvException\n     */\n    public function createInSiteFormJSON(array $options): string\n    {\n        // Validate required options\n        if (empty($options['id'])) {\n            throw new TpvException('Container ID is required for InSite');\n        }\n        if (empty($options['fuc'])) {\n            throw new TpvException('Merchant code (FUC) is required for InSite');\n        }\n        if (empty($options['terminal'])) {\n            throw new TpvException('Terminal is required for InSite');\n        }\n        if (empty($options['order'])) {\n            throw new TpvException('Order is required for InSite');\n        }\n\n        $jsUrl = $this->_setInSiteJsUrl;\n        if (empty($jsUrl)) {\n            $jsUrl = 'https://sis-t.redsys.es:25443/sis/NC/sandbox/redsysV3.js';\n        }\n\n        // Build JSON config\n        $config = [\n            'id' => $options['id'],\n            'fuc' => $options['fuc'],\n            'terminal' => $options['terminal'],\n            'order' => $options['order']\n        ];\n\n        // Optional parameters\n        if (isset($options['styleButton'])) {\n            $config['styleButton'] = $options['styleButton'];\n        }\n        if (isset($options['styleBody'])) {\n            $config['styleBody'] = $options['styleBody'];\n        }\n        if (isset($options['styleBox'])) {\n            $config['styleBox'] = $options['styleBox'];\n        }\n        if (isset($options['styleBoxText'])) {\n            $config['styleBoxText'] = $options['styleBoxText'];\n        }\n        if (isset($options['buttonValue'])) {\n            $config['buttonValue'] = $options['buttonValue'];\n        }\n        if (isset($options['idiomaInsite'])) {\n            $config['idiomaInsite'] = $options['idiomaInsite'];\n        }\n        if (isset($options['mostrarLogoInsite'])) {\n            $config['mostrarLogoInsite'] = $options['mostrarLogoInsite'];\n        }\n        if (isset($options['estiloReducidoInsite'])) {\n            $config['estiloReducidoInsite'] = $options['estiloReducidoInsite'];\n        }\n        if (isset($options['estiloInsite'])) {\n            $config['estiloInsite'] = $options['estiloInsite'];\n        }\n\n        $jsonConfig = json_encode($config);\n\n        $form = '<script src=\"' . $jsUrl . '\"></script>\n<div id=\"' . $options['id'] . '\"></div>\n<form name=\"datos\" id=\"datos\" method=\"post\" target=\"_self\">\n    <input type=\"hidden\" id=\"token\" name=\"token\" value=\"\">\n    <input type=\"hidden\" id=\"errorCode\" name=\"errorCode\" value=\"\">\n</form>\n<script>\nfunction merchantValidation(){\n    return true;\n}\nfunction loadRedsysForm(){\n    var insiteJSON = ' . $jsonConfig . ';\n    getInSiteFormJSON(insiteJSON);\n}\nwindow.addEventListener(\"message\", function receiveMessage(event) {\n    storeIdOper(event, \"token\", \"errorCode\", merchantValidation);\n});\nwindow.onload = loadRedsysForm;\n</script>';\n\n        return $form;\n    }\n\n    /**\n     * Execute InSite payment with operation ID\n     *\n     * @param string $idOper  Operation ID obtained from InSite form\n     * @param string $key     Merchant key\n     *\n     * @return string\n     * @throws TpvException\n     */\n    public function sendInSite(string $idOper, string $key): string\n    {\n        if (empty($idOper)) {\n            throw new TpvException('Operation ID is required for InSite payment');\n        }\n\n        // Set the operation ID instead of card data\n        $this->_setParameters['DS_MERCHANT_IDOPER'] = $idOper;\n\n        // Generate signature for the request\n        $this->generateMerchantSignature($key);\n\n        return $this->send();\n    }\n}\n"
  },
  {
    "path": "src/Sermepa/Tpv/TpvException.php",
    "content": "<?php\n\nnamespace Sermepa\\Tpv;\n\nclass TpvException extends \\Exception\n{\n}\n"
  },
  {
    "path": "tests/MerchantCofTypesTest.php",
    "content": "<?php\r\n  declare(strict_types=1);\r\n\r\n\tnamespace Redsys\\Merchant;\r\n\r\n\tuse PHPUnit\\Framework\\TestCase as PHPUnitTestCase;\r\n\r\n\tclass MerchantCofTypesTest extends PHPUnitTestCase {\r\n\t\tpublic function testCodeIsValid () {\r\n\t\t\t$this->assertTrue(MerchantCofTypes::isValid(MerchantCofTypes::OTHER));\r\n\t\t}\r\n\r\n\t\tpublic function testCodeNotValid () {\r\n\t\t\t$this->assertFalse(MerchantCofTypes::isValid('INVALID'));\r\n\t\t}\r\n\t}"
  },
  {
    "path": "tests/MerchantConsumerLanguagesTest.php",
    "content": "<?php\r\n  declare(strict_types=1);\r\n\r\n\tnamespace Redsys\\Merchant;\r\n\r\n\tuse PHPUnit\\Framework\\TestCase as PHPUnitTestCase;\r\n\r\n\tclass MerchantConsumerLanguagesTest extends PHPUnitTestCase {\r\n\t\tpublic function testCodeIsValid () {\r\n\t\t\t$this->assertTrue(MerchantConsumerLanguages::isValid(MerchantConsumerLanguages::ES));\r\n\t\t}\r\n\r\n\t\tpublic function testCodeNotValid () {\r\n\t\t\t$this->assertFalse(MerchantConsumerLanguages::isValid(-1));\r\n\t\t}\r\n\t}"
  },
  {
    "path": "tests/MerchantCurrenciesTest.php",
    "content": "<?php\r\n  declare(strict_types=1);\r\n\r\n\tnamespace Redsys\\Merchant;\r\n\r\n\tuse PHPUnit\\Framework\\TestCase as PHPUnitTestCase;\r\n\r\n\tclass MerchantCurrenciesTest extends PHPUnitTestCase {\r\n\t\tpublic function testCodeIsValid () {\r\n\t\t\t$this->assertTrue(MerchantCurrencies::isValid(MerchantCurrencies::EUR));\r\n\t\t}\r\n\r\n\t\tpublic function testCodeNotValid () {\r\n\t\t\t$this->assertFalse(MerchantCurrencies::isValid('INVALID'));\r\n\t\t}\r\n\t}"
  },
  {
    "path": "tests/MerchantEnvironmentTest.php",
    "content": "<?php\r\n  declare(strict_types=1);\r\n\r\n\tnamespace Redsys\\Merchant;\r\n\r\n\tuse PHPUnit\\Framework\\TestCase as PHPUnitTestCase;\r\n\r\n\tclass MerchantEnvironmentTest extends PHPUnitTestCase {\r\n\t\tpublic function testCodeIsValid () {\r\n\t\t\t$this->assertTrue(MerchantEnvironment::isValid(MerchantEnvironment::LIVE));\r\n\t\t}\r\n\r\n\t\tpublic function testCodeNotValid () {\r\n\t\t\t$this->assertFalse(MerchantEnvironment::isValid('INVALID'));\r\n\t\t}\r\n\t}"
  },
  {
    "path": "tests/MerchantPaymethodsTest.php",
    "content": "<?php\r\n  declare(strict_types=1);\r\n\r\n\tnamespace Redsys\\Merchant;\r\n\r\n\tuse PHPUnit\\Framework\\TestCase as PHPUnitTestCase;\r\n\r\n\tclass MerchantPaymethodsTest extends PHPUnitTestCase {\r\n\t\tpublic function testCodeIsValid () {\r\n\t\t\t$this->assertTrue(MerchantPaymethods::isValid(MerchantPaymethods::TARJETA));\r\n\t\t}\r\n\r\n\t\tpublic function testCodeNotValid () {\r\n\t\t\t$this->assertFalse(MerchantPaymethods::isValid('INVALID'));\r\n\t\t}\r\n\t}"
  },
  {
    "path": "tests/MerchantTransactionTypesTest.php",
    "content": "<?php\r\n  declare(strict_types=1);\r\n\r\n\tnamespace Redsys\\Merchant;\r\n\r\n\tuse PHPUnit\\Framework\\TestCase as PHPUnitTestCase;\r\n\r\n\tclass MerchantTransactionTypesTest extends PHPUnitTestCase {\r\n\t\tpublic function testCodeIsValid () {\r\n\t\t\t$this->assertTrue(MerchantTransactionTypes::isValid(MerchantTransactionTypes::AUTORIZACION));\r\n\t\t}\r\n\r\n\t\tpublic function testCodeNotValid () {\r\n\t\t\t$this->assertFalse(MerchantTransactionTypes::isValid(-1));\r\n\t\t}\r\n\t}"
  },
  {
    "path": "tests/TpvResponseTest.php",
    "content": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Sermepa\\Tpv;\n\nuse PHPUnit\\Framework\\TestCase;\nuse Sermepa\\Tpv\\Tpv;\n\nclass TpvResponseTest extends TestCase\n{\n\n    public function test_response_error_code()\n    {\n        $response = [\n            'errorCode' => '123'\n        ];\n\n        $key = 'YOUR_KEY';\n\n        $redsys = $this->createMock(Tpv::class);\n        $redsys->method('getMerchantParameters')->willReturn(['Ds_Response' => '00']);\n        $redsys->method('check')->willReturn(true);\n\n        try {\n\n            if (array_key_exists('errorCode', $response)) {\n                throw new \\Exception(\"Error en la respuesta: \" . $response['errorCode']);\n            } else {\n                $parameters = $redsys->getMerchantParameters($response['Ds_MerchantParameters']);\n                $DsResponse = $parameters[\"Ds_Response\"];\n                $DsResponse += 0;\n                if ($redsys->check($key, $response) && $DsResponse <= 99) {\n                    print_r($parameters);\n                } else {\n                    throw new \\Exception(\"Error en la verificación de la respuesta.\");\n                }\n            }\n        } catch (\\Exception $e) {\n            $this->assertEquals(\"Error en la respuesta: 123\", $e->getMessage());\n        }\n    }\n\n    public function test_successful_response()\n    {\n        $response = [\n            'Ds_MerchantParameters' => 'encodedParams',\n            'Ds_Signature' => 'signature'\n        ];\n\n        $key = 'YOUR_KEY';\n\n        $redsys = $this->createMock(Tpv::class);\n        $redsys->method('getMerchantParameters')->willReturn([\n            'Ds_Response' => '00',\n            'Ds_MerchantParameters' => 'param'\n        ]);\n\n        $redsys->method('check')->willReturn(true);\n\n        try {\n            if (array_key_exists('errorCode', $response)) {\n                throw new \\Exception(\"Error en la respuesta: \" . $response['errorCode']);\n            } else {\n                $parameters = $redsys->getMerchantParameters($response['Ds_MerchantParameters']);\n                $DsResponse = $parameters[\"Ds_Response\"];\n                $DsResponse += 0;\n                if ($redsys->check($key, $response) && $DsResponse <= 99) {\n                    $this->assertTrue(true); // Success\n                } else {\n                    throw new \\Exception(\"Error en la verificación de la respuesta.\");\n                }\n            }\n        } catch (\\Exception $e) {\n            $this->fail(\"No se esperaba una excepción: \" . $e->getMessage());\n        }\n    }\n}\n"
  },
  {
    "path": "tests/TpvTest.php",
    "content": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Sermepa\\Tpv;\n\nuse ReflectionClass;\nuse PHPUnit\\Framework\\TestCase as PHPUnitTestCase;\n\nclass TpvTest extends PHPUnitTestCase\n{\n\n    private $isEmptyMethod;\n    private $redsys;\n\n    protected function setUp(): void\n    {\n        $this->redsys = new Tpv();\n        $reflection = new ReflectionClass(Tpv::class);\n        $this->isEmptyMethod = $reflection->getMethod('isEmpty');\n    }\n\n    /**\n     * Data provider for the isEmpty method\n     *\n     * @return array Array of empty values\n     */\n    public function emptyValuesProvider()\n    {\n        return [\n            'null value' => [null],\n            'empty string' => [''],\n            'whitespace string' => ['   '],\n            'tabs' => [\"\\t\\t\"],\n            'newlines' => [\"\\n\\r\"],\n        ];\n    }\n\n    /**\n     * @test\n     * @dataProvider emptyValuesProvider\n     */\n    public function isEmpty_should_handle_empty_values($value)\n    {\n        $result = $this->isEmptyMethod->invoke($this->redsys, $value);\n        $this->assertTrue($result);\n    }\n\n    /**\n     * Data provider for the isEmpty method\n     *\n     * @return array Array of empty values\n     */\n    public function nonEmptyValuesProvider()\n    {\n        return [\n            'boolean true' => [true],\n            'boolean false' => [false],\n            'empty array' => [[]],\n            'zero as string' => ['0'],\n            'zero as integer' => [0],\n            'normal string' => ['test'],\n        ];\n    }\n\n    /**\n     * @test\n     * @dataProvider nonEmptyValuesProvider\n     */\n    public function isEmpty_returns_false_for_non_empty_values($value)\n    {\n        $result = $this->isEmptyMethod->invoke($this->redsys, $value);\n        $this->assertFalse($result);\n    }\n\n    /** @test */\n    public function identifier_by_default_required()\n    {\n        $redsys = new Tpv();\n        $redsys->setIdentifier();\n        $parameters = $redsys->getParameters();\n        $this->assertArrayHasKey('DS_MERCHANT_IDENTIFIER', $parameters);\n        $this->assertEquals('REQUIRED', $parameters['DS_MERCHANT_IDENTIFIER']);\n    }\n\n    public function booleanProvider()\n    {\n        return [\n            [true],\n            [false]\n        ];\n    }\n\n    /**\n     * @test\n     * @dataProvider booleanProvider\n     */\n    public function merchant_direct_payment_return_false_or_true($boolean)\n    {\n        $redsys = new Tpv();\n        $redsys->setMerchantDirectPayment($boolean);\n        $ds = $redsys->getParameters();\n        $this->assertIsBool($ds['DS_MERCHANT_DIRECTPAYMENT']);\n    }\n\n    public function amountProvider()\n    {\n        return [\n            [0, '00,00'],\n            [3330, '33,3'],\n            [790, 7.9],\n            [91200, 912],\n            [100, '01'],\n            [6990, 69.90],\n            [3060056, 30600.56]\n        ];\n    }\n\n    /**\n     * @test\n     * @dataProvider amountProvider\n     */\n    public function amount_is_valid($correctAmount, $amount)\n    {\n        $redsys = new Tpv();\n        $redsys->setAmount($amount);\n        $ds = $redsys->getParameters();\n        $this->assertEquals($correctAmount, $ds['DS_MERCHANT_AMOUNT']);\n    }\n\n\n    /**\n     * @test\n     * @dataProvider amountProvider\n     */\n    public function sum_total_is_valid($correctAmount, $amount)\n    {\n        $redsys = new Tpv();\n        $redsys->setSumTotal($amount);\n        $ds = $redsys->getParameters();\n        $this->assertEquals($correctAmount, $ds['DS_MERCHANT_SUMTOTAL']);\n    }\n\n    /**\n     * @test\n     */\n    public function throw_sum_total_is_invalid_number()\n    {\n        $this->expectExceptionMessage(\"Sum total must be greater than or equal to 0.\");\n        $this->expectException(\\Sermepa\\Tpv\\TpvException::class);\n        $redsys = new Tpv();\n        $redsys->setSumTotal(-1);\n    }\n\n\n    public function dateFrecuencyProvider()\n    {\n        return [\n            [3],\n            [75],\n            [490],\n            [9120]\n        ];\n    }\n\n    /**\n     * @test\n     * @dataProvider dateFrecuencyProvider\n     */\n    public function date_frecuency_is_valid($dateFrecuency)\n    {\n        $redsys = new Tpv();\n        $redsys->setDateFrecuency($dateFrecuency);\n        $parameters = $redsys->getParameters();\n\n        $this->assertArrayHasKey('DS_MERCHANT_DATEFRECUENCY', $parameters);\n    }\n\n    public function invalidDateFrecuencyProvider()\n    {\n        return [\n            [666666],\n            [155555],\n            ['cat'],\n            ['A1'],\n\n        ];\n    }\n\n    /**\n     * @test\n     * @dataProvider invalidDateFrecuencyProvider\n     */\n    public function throw_date_frecuency_is_invalid($dateFrecuency)\n    {\n        $this->expectExceptionMessage(\"Date frecuency is not valid.\");\n        $this->expectException(\\Sermepa\\Tpv\\TpvException::class);\n        $redsys = new Tpv();\n        $redsys->setDateFrecuency($dateFrecuency);\n    }\n\n    /**\n     * @test\n     */\n    public function charge_expiry_date_is_valid()\n    {\n        $redsys = new Tpv();\n        $redsys->setChargeExpiryDate('2025-03-04');\n        $parameters = $redsys->getParameters();\n\n        $this->assertArrayHasKey('DS_MERCHANT_CHARGEEXPIRYDATE', $parameters);\n    }\n\n    public function invalidChargeExpiryDateProvider()\n    {\n        return [\n            ['2024-13-04'],\n            ['04-03-81'],\n            ['01-05-2019'],\n            ['00-00-00'],\n            ['03-21-19'],\n            ['10-21-2022'],\n            ['22-06-29'],\n        ];\n    }\n\n    /**\n     * @test\n     * @dataProvider invalidChargeExpiryDateProvider\n     */\n    public function throw_charge_expiry_date_is_invalid($date)\n    {\n        $this->expectExceptionMessage(\"Date is not valid.\");\n        $this->expectException(\\Sermepa\\Tpv\\TpvException::class);\n        $redsys = new Tpv();\n        $redsys->setChargeExpiryDate($date);\n    }\n\n\n    public function invalidOrderNumberProvider()\n    {\n        return [\n            ['A-001'],\n            ['13A'],\n            ['53N'],\n            ['--00DA34'],\n            ['3656745676711'],\n            [date('YmdHis')],\n            ['111'],\n            [22],\n            ['/*()$\"%()!·%']\n        ];\n    }\n\n    /**\n     * @test\n     * @dataProvider invalidOrderNumberProvider\n     */\n    public function throw_when_order_is_invalid($orderNumber)\n    {\n        $this->expectExceptionMessage(\"Order id must be a 4 digit string at least, maximum 12 characters.\");\n        $this->expectException(\\Sermepa\\Tpv\\TpvException::class);\n        $redsys = new Tpv();\n        $redsys->setOrder($orderNumber);\n    }\n\n    public function orderNumberProvider()\n    {\n        return [\n            [100253508],\n            ['200065'],\n            ['0001-A45'],\n            ['9834BC-001'],\n            ['300004A'],\n            ['4000-H001-A'],\n            ['ACAR00001120'],\n            ['5A7000000001']\n        ];\n    }\n\n    /**\n     *\n     * @test\n     * @dataProvider orderNumberProvider\n     */\n    public function should_validate_an_order_number($order)\n    {\n        $redsys = new Tpv();\n        $redsys->setOrder($order);\n        $parameters = $redsys->getParameters();\n        $this->assertArrayHasKey('DS_MERCHANT_ORDER', $parameters);\n    }\n\n    /**\n     * @test\n     */\n    public function throw_merchant_code_is_empty()\n    {\n        $this->expectExceptionMessage(\"Please add Fuc\");\n        $this->expectException(\\Sermepa\\Tpv\\TpvException::class);\n        $redsys = new Tpv();\n        $redsys->setMerchantcode();\n    }\n\n    /**\n     * @test\n     */\n    public function throw_currency_is_not_supported()\n    {\n        $this->expectExceptionMessage(\"Currency is not valid\");\n        $this->expectException(\\Sermepa\\Tpv\\TpvException::class);\n        $redsys = new Tpv();\n        $redsys->setCurrency('csm');\n    }\n\n    /**\n     * @test\n     */\n    public function throw_transaction_type_is_empty()\n    {\n        $this->expectExceptionMessage(\"Please add transaction type\");\n        $this->expectException(\\Sermepa\\Tpv\\TpvException::class);\n        $redsys = new Tpv();\n        $redsys->setTransactiontype('');\n    }\n\n\n    /**\n     * @test\n     */\n    public function throw_terminal_is_invalid_number()\n    {\n        $this->expectExceptionMessage(\"Terminal is not valid.\");\n        $this->expectException(\\Sermepa\\Tpv\\TpvException::class);\n        $redsys = new Tpv();\n        $redsys->setTerminal('0');\n    }\n\n    /**\n     * @test\n     */\n    public function throw_environment_is_not_test_or_live()\n    {\n        $this->expectExceptionMessage(\"Add test or live\");\n        $this->expectException(\\Sermepa\\Tpv\\TpvException::class);\n        $redsys = new Tpv();\n        $redsys->setEnvironment('production');\n    }\n\n    public function SearchingFormProvider()\n    {\n        return [\n            ['Ds_MerchantParameters'],\n            ['Ds_Signature'],\n            ['Ds_SignatureVersion'],\n            ['btn_submit'],\n        ];\n    }\n\n    /**\n     * @test\n     * @dataProvider SearchingFormProvider\n     */\n    public function check_if_form_create_inputs_with_parameters($search)\n    {\n        $redsys = new Tpv();\n        $form = $redsys->createForm();\n        $this->assertStringContainsString($search, $form);\n    }\n\n    /**\n     * @test\n     *\n     */\n    public function when_set_all_parameters_should_obtain_all_ds_merchant_valid()\n    {\n        $redsys = new Tpv();\n        $redsys->setEnvironment('test')\n            ->setAmount(rand(10, 600))\n            ->setOrder(time())\n            ->setMerchantcode('999008881')\n            ->setCurrency('978')\n            ->setTransactiontype('0')\n            ->setTerminal('1')\n            ->setMethod('C')\n            ->setNotification('')\n            ->setUrlOk('http://localhost/ok.php')\n            ->setUrlKo('http://localhost/ko.php')\n\n            ->setEnvironment('test');\n        $parameters = $redsys->getParameters();\n\n        $this->assertArrayHasKey('DS_MERCHANT_AMOUNT', $parameters);\n        $this->assertArrayHasKey('DS_MERCHANT_ORDER', $parameters);\n        $this->assertArrayHasKey('DS_MERCHANT_MERCHANTCODE', $parameters);\n        $this->assertArrayHasKey('DS_MERCHANT_CURRENCY', $parameters);\n        $this->assertArrayHasKey('DS_MERCHANT_TRANSACTIONTYPE', $parameters);\n        $this->assertArrayHasKey('DS_MERCHANT_TERMINAL', $parameters);\n        $this->assertArrayHasKey('DS_MERCHANT_PAYMETHODS', $parameters);\n        $this->assertArrayHasKey('DS_MERCHANT_MERCHANTURL', $parameters);\n        $this->assertArrayHasKey('DS_MERCHANT_URLOK', $parameters);\n        $this->assertArrayHasKey('DS_MERCHANT_URLKO', $parameters);\n    }\n\n    /**\n     * @test\n     */\n    public function throw_version_is_empty()\n    {\n        $this->expectExceptionMessage(\"Please add version.\");\n        $this->expectException(\\Sermepa\\Tpv\\TpvException::class);\n        $redsys = new Tpv();\n        $redsys->setVersion();\n    }\n\n\n    public function urlTpvProvider()\n    {\n        return [\n            ['live', 'https://sis.redsys.es/sis/realizarPago'],\n            ['test', 'https://sis-t.redsys.es:25443/sis/realizarPago'],\n            ['restLive', 'https://sis.redsys.es/sis/rest/trataPeticionREST'],\n            ['restTest', 'https://sis-t.redsys.es:25443/sis/rest/trataPeticionREST'],\n            ['startRequestRestLive', 'https://sis.redsys.es/sis/rest/iniciaPeticionREST'],\n            ['startRequestRestTest', 'https://sis-t.redsys.es:25443/sis/rest/iniciaPeticionREST'],\n        ];\n    }\n\n    /**\n     * @test\n     * @dataProvider urlTpvProvider\n     */\n    public function check_if_url_of_tpv_is_test_or_live($environment, $url)\n    {\n        $redsys = new Tpv();\n        $redsys->setEnvironment($environment);\n        $url_tpv = $redsys->getEnvironment();\n        $this->assertEquals($url, $url_tpv);\n    }\n\n    /**\n     * @test\n     */\n    public function force_to_send_the_form_with_javascript()\n    {\n        $redsys = new Tpv();\n        $redsys->setNameForm('custom_form_' . date('His'));\n        $js = 'document.forms[\"' . $redsys->getNameForm() . '\"].submit();';\n\n        $redirect = $redsys->executeRedirection(true);\n\n        $this->assertStringContainsString($js, $redirect);\n    }\n\n    /**\n     * @test\n     */\n    public function throw_merchant_data_is_empty()\n    {\n        $this->expectExceptionMessage(\"Add merchant data\");\n        $this->expectException(\\Sermepa\\Tpv\\TpvException::class);\n        $redsys = new Tpv();\n        $redsys->setMerchantData();\n    }\n\n    /**\n     * @test\n     */\n    public function throw_product_description_is_empty()\n    {\n        $this->expectExceptionMessage(\"Add product description\");\n        $this->expectException(\\Sermepa\\Tpv\\TpvException::class);\n        $redsys = new Tpv();\n        $redsys->setProductDescription();\n    }\n\n    /**\n     * @test\n     */\n    public function throw_titular_is_empty()\n    {\n        $this->expectExceptionMessage(\"Add name for the user\");\n        $this->expectException(\\Sermepa\\Tpv\\TpvException::class);\n        $redsys = new Tpv();\n        $redsys->setTitular();\n    }\n\n    /**\n     * @test\n     */\n    public function throw_trade_name_is_empty()\n    {\n        $this->expectExceptionMessage(\"Add name for Trade name\");\n        $this->expectException(\\Sermepa\\Tpv\\TpvException::class);\n        $redsys = new Tpv();\n        $redsys->setTradeName();\n    }\n\n    /**\n     * @test\n     */\n    public function throw_pan_is_invalid()\n    {\n        $this->expectExceptionMessage(\"Pan not valid\");\n        $this->expectException(\\Sermepa\\Tpv\\TpvException::class);\n        $redsys = new Tpv();\n        $redsys->setPan(0);\n    }\n\n    public function invalidExpiryDateProvider()\n    {\n        return [\n            ['23233'],\n            [45],\n            [666],\n            ['a452'],\n            ['564O'],\n            ['aamm'],\n            ['am'],\n            ['236'],\n        ];\n    }\n\n    /**\n     * @test\n     * @dataProvider invalidExpiryDateProvider\n     */\n    public function throw_expiry_date_is_invalid($expiry_date)\n    {\n        $this->expectExceptionMessage(\"Expire date is not valid\");\n        $this->expectException(\\Sermepa\\Tpv\\TpvException::class);\n        $redsys = new Tpv();\n        $redsys->setExpiryDate($expiry_date);\n    }\n\n    /**\n     * @test\n     */\n    public function expiry_date_is_number_and_has_four_characters()\n    {\n        $redsys = new Tpv();\n        $redsys->setExpiryDate(2012);\n        $parameters = $redsys->getParameters();\n        $this->assertArrayHasKey('DS_MERCHANT_EXPIRYDATE', $parameters);\n    }\n\n    /**\n     * @test\n     */\n    public function throw_cvv2_is_invalid()\n    {\n        $this->expectExceptionMessage(\"CVV2 is not valid\");\n        $this->expectException(\\Sermepa\\Tpv\\TpvException::class);\n        $redsys = new Tpv();\n        $redsys->setCVV2();\n    }\n\n\n    public function invalidParameters()\n    {\n        return [\n            ['23233'],\n            [45],\n            [666],\n            [\n                [100, 'R'],\n                ['Ds_store' => 233]\n            ]\n        ];\n    }\n\n    /**\n     * @test\n     * @dataProvider invalidParameters\n     */\n\n    public function throw_parameters_is_not_an_array($parameters)\n    {\n        $this->expectExceptionMessage(\"Parameters is not an array associative\");\n        $this->expectExceptionMessage(\"Parameters is not an array\");\n        $this->expectException(\\Sermepa\\Tpv\\TpvException::class);\n        $redsys = new Tpv();\n\n        $redsys->setParameters($parameters);\n    }\n\n    /**\n     * @test\n     */\n\n    public function set_new_parameters()\n    {\n        $parameters = ['DS_MERCHANT_COF_INI' => 'S', 'DS_MERCHANT_COF_TYPE' => 'R'];\n        $redsys = new Tpv();\n        $redsys->setParameters($parameters);\n\n        $this->assertArrayHasKey('DS_MERCHANT_COF_INI', $parameters);\n        $this->assertArrayHasKey('DS_MERCHANT_COF_TYPE', $parameters);\n    }\n\n    public function invalidSetMethod()\n    {\n        return [\n            ['V'],\n            ['A'],\n            ['X'],\n            ['AA'],\n            ['Np'],\n            ['Xpay']\n        ];\n    }\n\n    /**\n     * @test\n     * @dataProvider invalidSetMethod\n     */\n    public function throw_when_set_method_is_invalid($method)\n    {\n        $this->expectExceptionMessage(\"Pay method is not valid\");\n        $this->expectException(\\Sermepa\\Tpv\\TpvException::class);\n        $redsys = new Tpv();\n        $redsys->setMethod($method);\n    }\n\n    public function methodsProvider()\n    {\n        return [\n            ['T'],\n            ['C'],\n            ['R'],\n            ['D'],\n            ['z'],\n            ['p'],\n            ['N'],\n            ['xpay']\n        ];\n    }\n\n    /**\n     *\n     * @test\n     * @dataProvider methodsProvider\n     */\n    public function should_validate_a_method($method)\n    {\n        $redsys = new Tpv();\n        $redsys->setMethod($method);\n        $parameters = $redsys->getParameters();\n        $this->assertArrayHasKey('DS_MERCHANT_PAYMETHODS', $parameters);\n    }\n\n    public function jsPathProvider()\n    {\n        return [\n            ['test', '2', 'https://sis-t.redsys.es:25443/sis/NC/sandbox/redsysV2.js'],\n            ['test', '3', 'https://sis-t.redsys.es:25443/sis/NC/sandbox/redsysV3.js'],\n            ['live', '2', 'https://sis.redsys.es/sis/NC/redsysV2.js'],\n            ['live', '3', 'https://sis.redsys.es/sis/NC/redsysV3.js'],\n        ];\n    }\n\n    /**\n     * @test\n     * @dataProvider jsPathProvider\n     */\n    public function should_return_the_correct_js_path($environment, $version, $expectedPath)\n    {\n        $redsys = new Tpv();\n        $actualPath = $redsys->getJsPath($environment, $version);\n\n        $this->assertEquals($expectedPath, $actualPath);\n    }\n\n    public function invalidEnvironmentVersionPathJs()\n    {\n        return [\n            ['test', '1'],\n            ['test', 'N'],\n            ['live', '12'],\n            ['live', '4'],\n            ['real', '2'],\n            ['testeo', '3'],\n            ['life', '2'],\n            ['', '1'],\n            ['real', '5'],\n            ['testing', '1'],\n        ];\n    }\n\n    /**\n     * @test\n     * @dataProvider invalidEnvironmentVersionPathJs\n     */\n    public function throw_when_set_environment_or_version_is_invalid($environment, $version)\n    {\n        $this->expectExceptionMessage(\"Invalid environment or version\");\n        $this->expectException(\\Sermepa\\Tpv\\TpvException::class);\n        $redsys = new Tpv();\n        $redsys->getJsPath($environment, $version);\n    }\n\n    public function cofIniProvider()\n    {\n        return [\n            ['S'],\n            ['N'],\n        ];\n    }\n\n    /**\n     *\n     * @dataProvider cofIniProvider\n     */\n    public function test_should_validate_a_merchant_cof_ini($cofIni)\n    {\n        $redsys = new Tpv();\n        $redsys->setMerchantCofIni($cofIni);\n        $parameters = $redsys->getParameters();\n        $this->assertArrayHasKey('DS_MERCHANT_COF_INI', $parameters);\n        $this->assertEquals($cofIni, $parameters['DS_MERCHANT_COF_INI']);\n    }\n\n    public function invalidSetMerchantCofIni()\n    {\n        return [\n            [''],\n            ['B'],\n            ['-1'],\n            ['G'],\n            [0],\n            ['Del']\n        ];\n    }\n\n    /**\n     * @test\n     * @dataProvider invalidSetMerchantCofIni\n     */\n    public function throw_when_set_method_merchnant_cof_ini_is_invalid($cofIni)\n    {\n        $this->expectExceptionMessage(\"Set Merchant COF INI valid options\");\n        $this->expectException(\\Sermepa\\Tpv\\TpvException::class);\n        $redsys = new Tpv();\n        $redsys->setMerchantCofIni($cofIni);\n    }\n\n    /**\n     * Data provider for the createOrderNumber method\n     *\n     * @return array Array of different lengths for order numbers\n     */\n    public function orderNumberLengthsProvider()\n    {\n        return [\n            'length 12' => [12],\n            'length 10' => [10],\n            'length 8' => [8],\n            'length 6' => [6],\n            'length 4' => [4],\n        ];\n    }\n\n    /**\n     * @test\n     * @dataProvider orderNumberLengthsProvider\n     */\n    public function createOrderNumber_generates_valid_order_number($length)\n    {\n        $orderNumber = $this->redsys->createOrderNumber($length);\n\n        // Verify that the order number has the correct length\n        $this->assertEquals($length, strlen($orderNumber));\n\n        // Verify that the first 4 characters are numeric\n        $this->assertMatchesRegularExpression('/^[0-9]{4}/', $orderNumber);\n\n        // Verify that the remaining characters are alphanumeric\n        $this->assertMatchesRegularExpression('/^[0-9A-Za-z]*$/', substr($orderNumber, 4));\n    }\n\n    /**\n     * Data provider for the createOrderNumber method with invalid inputs\n     *\n     * @return array Array of different invalid inputs for order numbers\n     */\n    public function invalidOrderNumberInputsProvider()\n    {\n        return [\n            'length 20' => [20],\n            'length 100' => [100],\n            'length 23' => [23],\n            'length 1' => [1],\n            'length 3' => [3],\n            'null value' => [null],\n            'string \"5\"' => ['5'],\n            'string \"xxx\"' => ['xxx'],\n            'float value' => [5.5],\n            'boolean true' => [true],\n            'boolean false' => [false],\n        ];\n    }\n\n    /**\n     * Test that createOrderNumber throws an exception for invalid inputs\n     *\n     * @test\n     * @dataProvider invalidOrderNumberInputsProvider\n     */\n    public function createOrderNumber_throws_exception_for_invalid_input($input)\n    {\n        $this->expectException(\\Sermepa\\Tpv\\TpvException::class);\n\n        // Call the createOrderNumber method with an invalid input\n        $this->redsys->createOrderNumber($input);\n    }\n\n    /************* INSITE TESTS ************* */\n\n    /**\n     * Data provider for InSite environment URLs\n     *\n     * @return array\n     */\n    public function insiteEnvironmentsProvider()\n    {\n        return [\n            'insiteSandbox' => [\n                'insiteSandbox',\n                'sis-t.redsys.es:25443/sis/NC/sandbox/redsysV3.js',\n                'sis-t.redsys.es:25443/sis/rest/iniciaPeticionREST'\n            ],\n            'insiteLive' => [\n                'insiteLive',\n                'sis.redsys.es/sis/NC/redsysV3.js',\n                'sis.redsys.es/sis/rest/iniciaPeticionREST'\n            ],\n            'insiteRestSandbox' => [\n                'insiteRestSandbox',\n                'sis-t.redsys.es:25443/sis/NC/sandbox/redsysV3.js',\n                'sis-t.redsys.es:25443/sis/rest/trataPeticionREST'\n            ],\n            'insiteRestLive' => [\n                'insiteRestLive',\n                'sis.redsys.es/sis/NC/redsysV3.js',\n                'sis.redsys.es/sis/rest/trataPeticionREST'\n            ],\n        ];\n    }\n\n    /**\n     * @test\n     * @dataProvider insiteEnvironmentsProvider\n     */\n    public function setEnvironment_insite_configures_correct_urls($env, $expectedJsUrl, $expectedRestUrl)\n    {\n        $redsys = new Tpv();\n        $redsys->setEnvironment($env);\n        \n        $this->assertStringContainsString($expectedJsUrl, $redsys->getInSiteJsUrl());\n        $this->assertStringContainsString($expectedRestUrl, $redsys->getEnvironment());\n    }\n\n    /**\n     * @test\n     */\n    public function setInSite_enables_insite_mode()\n    {\n        $redsys = new Tpv();\n        $this->assertFalse($redsys->getInSiteMode());\n        \n        $redsys->setInSite(true);\n        $this->assertTrue($redsys->getInSiteMode());\n        \n        $redsys->setInSite(false);\n        $this->assertFalse($redsys->getInSiteMode());\n    }\n\n    /**\n     * @test\n     */\n    public function createInSiteForm_generates_html_with_script_tag()\n    {\n        $redsys = new Tpv();\n        $redsys->setEnvironment('insiteSandbox')\n            ->setOrder('1234')\n            ->setMerchantcode('999008881')\n            ->setTerminal('1');\n        \n        $form = $redsys->createInSiteForm();\n        \n        $this->assertStringContainsString('<script', $form);\n        $this->assertStringContainsString('redsysV3.js', $form);\n        $this->assertStringContainsString('getInSiteForm', $form);\n        $this->assertStringContainsString(\"'999008881'\", $form); // FUC\n        $this->assertStringContainsString(\"'1'\", $form); // Terminal\n        $this->assertStringContainsString(\"'1234'\", $form); // Order\n    }\n\n    /**\n     * @test\n     */\n    public function createInSiteForm_generates_div_with_container_id()\n    {\n        $redsys = new Tpv();\n        $redsys->setEnvironment('insiteSandbox')\n            ->setOrder('1234')\n            ->setMerchantcode('999008881')\n            ->setTerminal('1');\n        \n        $form = $redsys->createInSiteForm('my-payment-form');\n        \n        $this->assertStringContainsString('id=\"my-payment-form\"', $form);\n    }\n\n    /**\n     * @test\n     */\n    public function createInSiteForm_includes_all_parameters()\n    {\n        $redsys = new Tpv();\n        $redsys->setEnvironment('insiteSandbox')\n            ->setOrder('1234AB')\n            ->setMerchantcode('999008881')\n            ->setTerminal('1');\n        \n        $form = $redsys->createInSiteForm(\n            'card-form',\n            'background: blue;',\n            'color: white;',\n            'padding: 10px;',\n            'font-size: 14px;',\n            'Pagar',\n            'ES',\n            true,\n            false,\n            'inline'\n        );\n        \n        $this->assertStringContainsString(\"'card-form'\", $form);\n        $this->assertStringContainsString(\"'background: blue;'\", $form);\n        $this->assertStringContainsString(\"'color: white;'\", $form);\n        $this->assertStringContainsString(\"'padding: 10px;'\", $form);\n        $this->assertStringContainsString(\"'font-size: 14px;'\", $form);\n        $this->assertStringContainsString(\"'Pagar'\", $form);\n        $this->assertStringContainsString(\"'ES'\", $form);\n        $this->assertStringContainsString(\"'999008881'\", $form);\n        $this->assertStringContainsString(\"'1234AB'\", $form);\n    }\n\n    /**\n     * Data provider for required parameter validation\n     *\n     * @return array\n     */\n    public function insiteRequiredParamsProvider()\n    {\n        return [\n            'without terminal' => [\n                'Terminal is required for InSite',\n                ['order' => '1234', 'merchantcode' => '999008881']\n            ],\n            'without order' => [\n                'Order is required for InSite',\n                ['merchantcode' => '999008881', 'terminal' => '1']\n            ],\n            'without merchant code' => [\n                'Merchant code (FUC) is required for InSite',\n                ['order' => '1234', 'terminal' => '1']\n            ],\n        ];\n    }\n\n    /**\n     * @test\n     * @dataProvider insiteRequiredParamsProvider\n     */\n    public function createInSiteForm_throws_exception_without_required_params($expectedMessage, $params)\n    {\n        $this->expectException(\\Sermepa\\Tpv\\TpvException::class);\n        $this->expectExceptionMessage($expectedMessage);\n        \n        $redsys = new Tpv();\n        $redsys->setEnvironment('insiteSandbox');\n        \n        if (isset($params['order'])) {\n            $redsys->setOrder($params['order']);\n        }\n        if (isset($params['merchantcode'])) {\n            $redsys->setMerchantcode($params['merchantcode']);\n        }\n        if (isset($params['terminal'])) {\n            $redsys->setTerminal($params['terminal']);\n        }\n        \n        $redsys->createInSiteForm();\n    }\n\n    /**\n     * @test\n     */\n    public function createInSiteFormJSON_generates_html_with_json_config()\n    {\n        $redsys = new Tpv();\n        $redsys->setEnvironment('insiteSandbox');\n        \n        $form = $redsys->createInSiteFormJSON([\n            'id' => 'card-form',\n            'fuc' => '999008881',\n            'terminal' => '1',\n            'order' => '1234AB',\n            'idiomaInsite' => 'ES',\n            'estiloInsite' => 'inline'\n        ]);\n        \n        $this->assertStringContainsString('<script', $form);\n        $this->assertStringContainsString('redsysV3.js', $form);\n        $this->assertStringContainsString('getInSiteFormJSON', $form);\n        $this->assertStringContainsString('\"fuc\":\"999008881\"', $form);\n        $this->assertStringContainsString('\"terminal\":\"1\"', $form);\n        $this->assertStringContainsString('\"order\":\"1234AB\"', $form);\n    }\n\n    /**\n     * @test\n     */\n    public function createInSiteFormJSON_throws_exception_without_fuc()\n    {\n        $this->expectException(\\Sermepa\\Tpv\\TpvException::class);\n        $this->expectExceptionMessage('Merchant code (FUC) is required for InSite');\n        \n        $redsys = new Tpv();\n        $redsys->createInSiteFormJSON([\n            'id' => 'card-form',\n            'terminal' => '1',\n            'order' => '1234'\n        ]);\n    }\n\n    /**\n     * @test\n     */\n    public function sendInSite_throws_exception_with_empty_idoper()\n    {\n        $this->expectException(\\Sermepa\\Tpv\\TpvException::class);\n        $this->expectExceptionMessage('Operation ID is required for InSite payment');\n        \n        $redsys = new Tpv();\n        $redsys->setEnvironment('insiteRestSandbox')\n            ->setAmount(100)\n            ->setOrder('1234')\n            ->setMerchantcode('999008881')\n            ->setCurrency('978')\n            ->setTransactiontype('0')\n            ->setTerminal('1')\n            ->sendInSite('', 'test_key');\n    }\n\n    /**\n     * @test\n     */\n    public function getInSiteJsUrl_returns_js_url()\n    {\n        $redsys = new Tpv();\n        $redsys->setEnvironment('insiteSandbox');\n        \n        $this->assertStringContainsString('redsysV3.js', $redsys->getInSiteJsUrl());\n    }\n\n    /**\n     * @test\n     */\n    public function getInSiteJsUrl_returns_empty_when_not_set()\n    {\n        $redsys = new Tpv();\n        $redsys->setEnvironment('test');\n        \n        $this->assertEmpty($redsys->getInSiteJsUrl());\n    }\n}\n"
  }
]