/** * A simple set of functions to check our version 1.0 update service. * * @package WordPress * @since 2.3.0 */ /** * Check WordPress version against the newest version. * * The WordPress version, PHP version, and Locale is sent. Checks against the * WordPress server at api.wordpress.org server. Will only check if WordPress * isn't installing. * * @since 2.3.0 * @uses $wp_version Used to check against the newest WordPress version. * * @param array $extra_stats Extra statistics to report to the WordPress.org API. * @param bool $force_check Whether to bypass the transient cache and force a fresh update check. Defaults to false, true if $extra_stats is set. * @return mixed Returns null if update is unsupported. Returns false if check is too soon. */ function wp_version_check( $extra_stats = array(), $force_check = false ) { if ( defined('WP_INSTALLING') ) return; global $wpdb, $wp_local_package; include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version $php_version = phpversion(); $current = get_site_transient( 'update_core' ); $translations = wp_get_installed_translations( 'core' ); // Invalidate the transient when $wp_version changes if ( is_object( $current ) && $wp_version != $current->version_checked ) $current = false; if ( ! is_object($current) ) { $current = new stdClass; $current->updates = array(); $current->version_checked = $wp_version; } if ( ! empty( $extra_stats ) ) $force_check = true; // Wait 60 seconds between multiple version check requests $timeout = 60; $time_not_changed = isset( $current->last_checked ) && $timeout > ( time() - $current->last_checked ); if ( ! $force_check && $time_not_changed ) return false; $locale = get_locale(); /** * Filter the locale requested for WordPress core translations. * * @since 2.8.0 * * @param string $locale Current locale. */ $locale = apply_filters( 'core_version_check_locale', $locale ); // Update last_checked for current to prevent multiple blocking requests if request hangs $current->last_checked = time(); set_site_transient( 'update_core', $current ); if ( method_exists( $wpdb, 'db_version' ) ) $mysql_version = preg_replace('/[^0-9.].*/', '', $wpdb->db_version()); else $mysql_version = 'N/A'; if ( is_multisite() ) { $user_count = get_user_count(); $num_blogs = get_blog_count(); $wp_install = network_site_url(); $multisite_enabled = 1; } else { $user_count = count_users(); $user_count = $user_count['total_users']; $multisite_enabled = 0; $num_blogs = 1; $wp_install = home_url( '/' ); } $query = array( 'version' => $wp_version, 'php' => $php_version, 'locale' => $locale, 'mysql' => $mysql_version, 'local_package' => isset( $wp_local_package ) ? $wp_local_package : '', 'blogs' => $num_blogs, 'users' => $user_count, 'multisite_enabled' => $multisite_enabled, ); $post_body = array( 'translations' => json_encode( $translations ), ); if ( is_array( $extra_stats ) ) $post_body = array_merge( $post_body, $extra_stats ); $url = $http_url = 'http://api.wordpress.org/core/version-check/1.7/?' . http_build_query( $query, null, '&' ); if ( $ssl = wp_http_supports( array( 'ssl' ) ) ) $url = set_url_scheme( $url, 'https' ); $options = array( 'timeout' => ( ( defined('DOING_CRON') && DOING_CRON ) ? 30 : 3 ), 'user-agent' => 'WordPress/' . $wp_version . '; ' . home_url( '/' ), 'headers' => array( 'wp_install' => $wp_install, 'wp_blog' => home_url( '/' ) ), 'body' => $post_body, ); $response = wp_remote_post( $url, $options ); if ( $ssl && is_wp_error( $response ) ) { trigger_error( __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server’s configuration. If you continue to have problems, please try the support forums.' ) . ' ' . __( '(WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.)' ), headers_sent() || WP_DEBUG ? E_USER_WARNING : E_USER_NOTICE ); $response = wp_remote_post( $http_url, $options ); } if ( is_wp_error( $response ) || 200 != wp_remote_retrieve_response_code( $response ) ) return false; $body = trim( wp_remote_retrieve_body( $response ) ); $body = json_decode( $body, true ); if ( ! is_array( $body ) || ! isset( $body['offers'] ) ) return false; $offers = $body['offers']; foreach ( $offers as &$offer ) { foreach ( $offer as $offer_key => $value ) { if ( 'packages' == $offer_key ) $offer['packages'] = (object) array_intersect_key( array_map( 'esc_url', $offer['packages'] ), array_fill_keys( array( 'full', 'no_content', 'new_bundled', 'partial', 'rollback' ), '' ) ); elseif ( 'download' == $offer_key ) $offer['download'] = esc_url( $value ); else $offer[ $offer_key ] = esc_html( $value ); } $offer = (object) array_intersect_key( $offer, array_fill_keys( array( 'response', 'download', 'locale', 'packages', 'current', 'version', 'php_version', 'mysql_version', 'new_bundled', 'partial_version', 'notify_email', 'support_email' ), '' ) ); } $updates = new stdClass(); $updates->updates = $offers; $updates->last_checked = time(); $updates->version_checked = $wp_version; if ( isset( $body['translations'] ) ) $updates->translations = $body['translations']; set_site_transient( 'update_core', $updates ); if ( ! empty( $body['ttl'] ) ) { $ttl = (int) $body['ttl']; if ( $ttl && ( time() + $ttl < wp_next_scheduled( 'wp_version_check' ) ) ) { // Queue an event to re-run the update check in $ttl seconds. wp_schedule_single_event( time() + $ttl, 'wp_version_check' ); } } // Trigger a background updates check if running non-interactively, and we weren't called from the update handler. if ( defined( 'DOING_CRON' ) && DOING_CRON && ! doing_action( 'wp_maybe_auto_update' ) ) { do_action( 'wp_maybe_auto_update' ); } } /** * Check plugin versions against the latest versions hosted on WordPress.org. * * The WordPress version, PHP version, and Locale is sent along with a list of * all plugins installed. Checks against the WordPress server at * api.wordpress.org. Will only check if WordPress isn't installing. * * @since 2.3.0 * @uses $wp_version Used to notify the WordPress version. * * @param array $extra_stats Extra statistics to report to the WordPress.org API. * @return mixed Returns null if update is unsupported. Returns false if check is too soon. */ function wp_update_plugins( $extra_stats = array() ) { include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version if ( defined('WP_INSTALLING') ) return false; // If running blog-side, bail unless we've not checked in the last 12 hours if ( !function_exists( 'get_plugins' ) ) require_once( ABSPATH . 'wp-admin/includes/plugin.php' ); $plugins = get_plugins(); $translations = wp_get_installed_translations( 'plugins' ); $active = get_option( 'active_plugins', array() ); $current = get_site_transient( 'update_plugins' ); if ( ! is_object($current) ) $current = new stdClass; $new_option = new stdClass; $new_option->last_checked = time(); // Check for update on a different schedule, depending on the page. switch ( current_filter() ) { case 'upgrader_process_complete' : $timeout = 0; break; case 'load-update-core.php' : $timeout = MINUTE_IN_SECONDS; break; case 'load-plugins.php' : case 'load-update.php' : $timeout = HOUR_IN_SECONDS; break; default : if ( defined( 'DOING_CRON' ) && DOING_CRON ) { $timeout = 0; } else { $timeout = 12 * HOUR_IN_SECONDS; } } $time_not_changed = isset( $current->last_checked ) && $timeout > ( time() - $current->last_checked ); if ( $time_not_changed && ! $extra_stats ) { $plugin_changed = false; foreach ( $plugins as $file => $p ) { $new_option->checked[ $file ] = $p['Version']; if ( !isset( $current->checked[ $file ] ) || strval($current->checked[ $file ]) !== strval($p['Version']) ) $plugin_changed = true; } if ( isset ( $current->response ) && is_array( $current->response ) ) { foreach ( $current->response as $plugin_file => $update_details ) { if ( ! isset($plugins[ $plugin_file ]) ) { $plugin_changed = true; break; } } } // Bail if we've checked recently and if nothing has changed if ( ! $plugin_changed ) return false; } // Update last_checked for current to prevent multiple blocking requests if request hangs $current->last_checked = time(); set_site_transient( 'update_plugins', $current ); $to_send = compact( 'plugins', 'active' ); $locales = array( get_locale() ); /** * Filter the locales requested for plugin translations. * * @since 3.7.0 * * @param array $locales Plugin locale. Default is current locale of the site. */ $locales = apply_filters( 'plugins_update_check_locales', $locales ); if ( defined( 'DOING_CRON' ) && DOING_CRON ) { $timeout = 30; } else { // Three seconds, plus one extra second for every 10 plugins $timeout = 3 + (int) ( count( $plugins ) / 10 ); } $options = array( 'timeout' => $timeout, 'body' => array( 'plugins' => json_encode( $to_send ), 'translations' => json_encode( $translations ), 'locale' => json_encode( $locales ), 'all' => json_encode( true ), ), 'user-agent' => 'WordPress/' . $wp_version . '; ' . get_bloginfo( 'url' ) ); if ( $extra_stats ) { $options['body']['update_stats'] = json_encode( $extra_stats ); } $url = $http_url = 'http://api.wordpress.org/plugins/update-check/1.1/'; if ( $ssl = wp_http_supports( array( 'ssl' ) ) ) $url = set_url_scheme( $url, 'https' ); $raw_response = wp_remote_post( $url, $options ); if ( $ssl && is_wp_error( $raw_response ) ) { trigger_error( __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server’s configuration. If you continue to have problems, please try the support forums.' ) . ' ' . __( '(WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.)' ), headers_sent() || WP_DEBUG ? E_USER_WARNING : E_USER_NOTICE ); $raw_response = wp_remote_post( $http_url, $options ); } if ( is_wp_error( $raw_response ) || 200 != wp_remote_retrieve_response_code( $raw_response ) ) return false; $response = json_decode( wp_remote_retrieve_body( $raw_response ), true ); foreach ( $response['plugins'] as &$plugin ) { $plugin = (object) $plugin; } unset( $plugin ); foreach ( $response['no_update'] as &$plugin ) { $plugin = (object) $plugin; } unset( $plugin ); if ( is_array( $response ) ) { $new_option->response = $response['plugins']; $new_option->translations = $response['translations']; // TODO: Perhaps better to store no_update in a separate transient with an expiry? $new_option->no_update = $response['no_update']; } else { $new_option->response = array(); $new_option->translations = array(); $new_option->no_update = array(); } set_site_transient( 'update_plugins', $new_option ); } /** * Check theme versions against the latest versions hosted on WordPress.org. * * A list of all themes installed in sent to WP. Checks against the * WordPress server at api.wordpress.org. Will only check if WordPress isn't * installing. * * @since 2.7.0 * @uses $wp_version Used to notify the WordPress version. * * @param array $extra_stats Extra statistics to report to the WordPress.org API. * @return mixed Returns null if update is unsupported. Returns false if check is too soon. */ function wp_update_themes( $extra_stats = array() ) { include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version if ( defined( 'WP_INSTALLING' ) ) return false; $installed_themes = wp_get_themes(); $translations = wp_get_installed_translations( 'themes' ); $last_update = get_site_transient( 'update_themes' ); if ( ! is_object($last_update) ) $last_update = new stdClass; $themes = $checked = $request = array(); // Put slug of current theme into request. $request['active'] = get_option( 'stylesheet' ); foreach ( $installed_themes as $theme ) { $checked[ $theme->get_stylesheet() ] = $theme->get('Version'); $themes[ $theme->get_stylesheet() ] = array( 'Name' => $theme->get('Name'), 'Title' => $theme->get('Name'), 'Version' => $theme->get('Version'), 'Author' => $theme->get('Author'), 'Author URI' => $theme->get('AuthorURI'), 'Template' => $theme->get_template(), 'Stylesheet' => $theme->get_stylesheet(), ); } // Check for update on a different schedule, depending on the page. switch ( current_filter() ) { case 'upgrader_process_complete' : $timeout = 0; break; case 'load-update-core.php' : $timeout = MINUTE_IN_SECONDS; break; case 'load-themes.php' : case 'load-update.php' : $timeout = HOUR_IN_SECONDS; break; default : if ( defined( 'DOING_CRON' ) && DOING_CRON ) { $timeout = 0; } else { $timeout = 12 * HOUR_IN_SECONDS; } } $time_not_changed = isset( $last_update->last_checked ) && $timeout > ( time() - $last_update->last_checked ); if ( $time_not_changed && ! $extra_stats ) { $theme_changed = false; foreach ( $checked as $slug => $v ) { if ( !isset( $last_update->checked[ $slug ] ) || strval($last_update->checked[ $slug ]) !== strval($v) ) $theme_changed = true; } if ( isset ( $last_update->response ) && is_array( $last_update->response ) ) { foreach ( $last_update->response as $slug => $update_details ) { if ( ! isset($checked[ $slug ]) ) { $theme_changed = true; break; } } } // Bail if we've checked recently and if nothing has changed if ( ! $theme_changed ) return false; } // Update last_checked for current to prevent multiple blocking requests if request hangs $last_update->last_checked = time(); set_site_transient( 'update_themes', $last_update ); $request['themes'] = $themes; $locales = array( get_locale() ); /** * Filter the locales requested for theme translations. * * @since 3.7.0 * * @param array $locales Theme locale. Default is current locale of the site. */ $locales = apply_filters( 'themes_update_check_locales', $locales ); if ( defined( 'DOING_CRON' ) && DOING_CRON ) { $timeout = 30; } else { // Three seconds, plus one extra second for every 10 themes $timeout = 3 + (int) ( count( $themes ) / 10 ); } $options = array( 'timeout' => $timeout, 'body' => array( 'themes' => json_encode( $request ), 'translations' => json_encode( $translations ), 'locale' => json_encode( $locales ), ), 'user-agent' => 'WordPress/' . $wp_version . '; ' . get_bloginfo( 'url' ) ); if ( $extra_stats ) { $options['body']['update_stats'] = json_encode( $extra_stats ); } $url = $http_url = 'http://api.wordpress.org/themes/update-check/1.1/'; if ( $ssl = wp_http_supports( array( 'ssl' ) ) ) $url = set_url_scheme( $url, 'https' ); $raw_response = wp_remote_post( $url, $options ); if ( $ssl && is_wp_error( $raw_response ) ) { trigger_error( __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server’s configuration. If you continue to have problems, please try the support forums.' ) . ' ' . __( '(WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.)' ), headers_sent() || WP_DEBUG ? E_USER_WARNING : E_USER_NOTICE ); $raw_response = wp_remote_post( $http_url, $options ); } if ( is_wp_error( $raw_response ) || 200 != wp_remote_retrieve_response_code( $raw_response ) ) return false; $new_update = new stdClass; $new_update->last_checked = time(); $new_update->checked = $checked; $response = json_decode( wp_remote_retrieve_body( $raw_response ), true ); if ( is_array( $response ) ) { $new_update->response = $response['themes']; $new_update->translations = $response['translations']; } set_site_transient( 'update_themes', $new_update ); } /** * Performs WordPress automatic background updates. * * @since 3.7.0 */ function wp_maybe_auto_update() { include_once( ABSPATH . '/wp-admin/includes/admin.php' ); include_once( ABSPATH . '/wp-admin/includes/class-wp-upgrader.php' ); $upgrader = new WP_Automatic_Updater; $upgrader->run(); } /** * Retrieves a list of all language updates available. * * @since 3.7.0 */ function wp_get_translation_updates() { $updates = array(); $transients = array( 'update_core' => 'core', 'update_plugins' => 'plugin', 'update_themes' => 'theme' ); foreach ( $transients as $transient => $type ) { $transient = get_site_transient( $transient ); if ( empty( $transient->translations ) ) continue; foreach ( $transient->translations as $translation ) { $updates[] = (object) $translation; } } return $updates; } /** * Collect counts and UI strings for available updates * * @since 3.3.0 * * @return array */ function wp_get_update_data() { $counts = array( 'plugins' => 0, 'themes' => 0, 'wordpress' => 0, 'translations' => 0 ); if ( $plugins = current_user_can( 'update_plugins' ) ) { $update_plugins = get_site_transient( 'update_plugins' ); if ( ! empty( $update_plugins->response ) ) $counts['plugins'] = count( $update_plugins->response ); } if ( $themes = current_user_can( 'update_themes' ) ) { $update_themes = get_site_transient( 'update_themes' ); if ( ! empty( $update_themes->response ) ) $counts['themes'] = count( $update_themes->response ); } if ( ( $core = current_user_can( 'update_core' ) ) && function_exists( 'get_core_updates' ) ) { $update_wordpress = get_core_updates( array('dismissed' => false) ); if ( ! empty( $update_wordpress ) && ! in_array( $update_wordpress[0]->response, array('development', 'latest') ) && current_user_can('update_core') ) $counts['wordpress'] = 1; } if ( ( $core || $plugins || $themes ) && wp_get_translation_updates() ) $counts['translations'] = 1; $counts['total'] = $counts['plugins'] + $counts['themes'] + $counts['wordpress'] + $counts['translations']; $titles = array(); if ( $counts['wordpress'] ) $titles['wordpress'] = sprintf( __( '%d WordPress Update'), $counts['wordpress'] ); if ( $counts['plugins'] ) $titles['plugins'] = sprintf( _n( '%d Plugin Update', '%d Plugin Updates', $counts['plugins'] ), $counts['plugins'] ); if ( $counts['themes'] ) $titles['themes'] = sprintf( _n( '%d Theme Update', '%d Theme Updates', $counts['themes'] ), $counts['themes'] ); if ( $counts['translations'] ) $titles['translations'] = __( 'Translation Updates' ); $update_title = $titles ? esc_attr( implode( ', ', $titles ) ) : ''; $update_data = array( 'counts' => $counts, 'title' => $update_title ); /** * Filter the returned array of update data for plugins, themes, and WordPress core. * * @since 3.5.0 * * @param array $update_data { * Fetched update data. * * @type array $counts An array of counts for available plugin, theme, and WordPress updates. * @type string $update_title Titles of available updates. * } * @param array $titles An array of update counts and UI strings for available updates. */ return apply_filters( 'wp_get_update_data', $update_data, $titles ); } function _maybe_update_core() { include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version $current = get_site_transient( 'update_core' ); if ( isset( $current->last_checked ) && 12 * HOUR_IN_SECONDS > ( time() - $current->last_checked ) && isset( $current->version_checked ) && $current->version_checked == $wp_version ) return; wp_version_check(); } /** * Check the last time plugins were run before checking plugin versions. * * This might have been backported to WordPress 2.6.1 for performance reasons. * This is used for the wp-admin to check only so often instead of every page * load. * * @since 2.7.0 * @access private */ function _maybe_update_plugins() { $current = get_site_transient( 'update_plugins' ); if ( isset( $current->last_checked ) && 12 * HOUR_IN_SECONDS > ( time() - $current->last_checked ) ) return; wp_update_plugins(); } /** * Check themes versions only after a duration of time. * * This is for performance reasons to make sure that on the theme version * checker is not run on every page load. * * @since 2.7.0 * @access private */ function _maybe_update_themes() { $current = get_site_transient( 'update_themes' ); if ( isset( $current->last_checked ) && 12 * HOUR_IN_SECONDS > ( time() - $current->last_checked ) ) return; wp_update_themes(); } /** * Schedule core, theme, and plugin update checks. * * @since 3.1.0 */ function wp_schedule_update_checks() { if ( !wp_next_scheduled('wp_version_check') && !defined('WP_INSTALLING') ) wp_schedule_event(time(), 'twicedaily', 'wp_version_check'); if ( !wp_next_scheduled('wp_update_plugins') && !defined('WP_INSTALLING') ) wp_schedule_event(time(), 'twicedaily', 'wp_update_plugins'); if ( !wp_next_scheduled('wp_update_themes') && !defined('WP_INSTALLING') ) wp_schedule_event(time(), 'twicedaily', 'wp_update_themes'); if ( ( wp_next_scheduled( 'wp_maybe_auto_update' ) > ( time() + HOUR_IN_SECONDS ) ) && ! defined('WP_INSTALLING') ) wp_clear_scheduled_hook( 'wp_maybe_auto_update' ); } if ( ( ! is_main_site() && ! is_network_admin() ) || ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) return; add_action( 'admin_init', '_maybe_update_core' ); add_action( 'wp_version_check', 'wp_version_check' ); add_action( 'upgrader_process_complete', 'wp_version_check', 10, 0 ); add_action( 'load-plugins.php', 'wp_update_plugins' ); add_action( 'load-update.php', 'wp_update_plugins' ); add_action( 'load-update-core.php', 'wp_update_plugins' ); add_action( 'admin_init', '_maybe_update_plugins' ); add_action( 'wp_update_plugins', 'wp_update_plugins' ); add_action( 'upgrader_process_complete', 'wp_update_plugins', 10, 0 ); add_action( 'load-themes.php', 'wp_update_themes' ); add_action( 'load-update.php', 'wp_update_themes' ); add_action( 'load-update-core.php', 'wp_update_themes' ); add_action( 'admin_init', '_maybe_update_themes' ); add_action( 'wp_update_themes', 'wp_update_themes' ); add_action( 'upgrader_process_complete', 'wp_update_themes', 10, 0 ); add_action( 'wp_maybe_auto_update', 'wp_maybe_auto_update' ); add_action('init', 'wp_schedule_update_checks'); El descalabro del Banco Madrid en cinco claves - SesiónDeControl.comSesiónDeControl.com
Arrow

El descalabro del Banco Madrid en cinco claves


0
Información Sensible

Fusión entre una revista online y un sistema de crowdfunding. Una plataforma donde son los periodistas los que proponen directamente sus reportajes a los lectores, sin la presión de anunciantes o intermediarios. Además, Información Sensible cuenta con una redacción estable para elaborar sus propios reportajes


Escrito el 6 de abril de 2015 a las 1:15 | Clasificado en Economía

El culebrón bancario quema etapas mientras el dinero de sus clientes está en riesgo. Los puntos calientes del escándalo financiero del año.

Oficinas del Banco madrid (Foto: Banco Madrid)
Oficinas del Banco madrid (Foto: Banco Madrid)

El escándalo en Banca Privada de Andorra (BPA) y sus filiales por su supuesta colaboración con el blanqueo de dinero del crimen organizado ha obligado a las autoridades del Principado y también a las españolas a imponer un corralito temporal en el grupo financiero. El culebrón bancario quema etapas mientras el dinero de sus clientes está en riesgo, en una entidad que ya se empieza a conocer como aquel ‘paraíso fiscal’ en medio de la Castellana.

Ante la fuga de ahorros que venía sufriendo desde su intervención la semana pasada, los tres administradores provisionales de Banco Madrid designados por el Banco de España decidieron solicitar el concurso de acreedores y suspender la operativa de la entidad hasta que el juez decidiera sobre el futuro del banco.

Las colas de clientes comenzaban a ser una constante y la sucesión de informaciones turbias sobre las prácticas del banco no han hecho otra cosa que arrojar más leña al fuego del caso de una entidad que parece abocada a la caída, por aquello de no ser un banco ‘sistémico’ y por el elevado coste político que tendría en estos momentos un rescate en medio de las sospechas de delito.

Sin embargo, este martes el concurso quedaba suspendido hasta que el Fondo de Reestructuración Ordenada Bancaria, conocido por sus siglas Frob, decida si ejecuta un plan de rescate de la entidad financiera. Así lo estableció el juez Carlos Nieto, magistrado del juzgado de lo Mercantil número 1 de Madrid. Tendrán quince días para decidir. En esta tesitura, conviene fijar las claves de lo que es, al menos de momento, el escándalo financiero del año.

1. Suspensión de pagos, una medida sin precedentes

El Banco de España ha presentado concurso de acreedores, la antigua suspensión de pagos, de Banco Madrid. Se trata de una medida sin precedentes en el sistema financiero español. El Banco de España, como supervisor de las entidades financieras y regulador, suele intervenir un banco cuando hay problemas de solvencia o de liquidez y puede después nacionalizarlo, como ocurrió con Bankia.

La semana pasada, sin embargo, el Banco de España intervino el Banco de Madrid por las graves acusaciones que pesan sobre su matriz, Banca Privada d’Andorra (BPA), de colaboración en blanqueo de capitales procedente del crimen organizado, en una investigación abierta por el Departamento del Tesoro de EEUU. El objetivo de la intervención era garantizar el funcionamiento del banco y facilitar la investigación del delito de blanqueo. Sin embargo, el hecho de que el Gobierno de Andorra esté ya pensando en liquidar BPA ha derivado en un problema de liquidez en Banco Madrid.

2. El dinero de los clientes, en el aire

La operativa de la entidad ha quedado suspendida. Los depósitos de los clientes de Banco Madrid están garantizados por el Fondo de Garantía de Depósitos de Entidades de Crédito, una hucha que tiene la banca española para hacer frente a crisis, hasta un máximo de 100.000 euros por titular. Por encima de esa cantidad, no están garantizados. Y los que están cubiertos tampoco se pueden recuperar, al menos por ahora. Los clientes tendrán que esperar a que se cumplan los trámites que no se sabe cuánto tiempo podrán tomar.

Existen más de 15.000 depositantes con sus ahorros en Banco Madrid. De estos, solamente 500 ahorradores tienen depósitos superiores a los 100.000 euros. Estos clientes podrían perder parte de sus ahorros, los que están por encima de los 100.000 euros. Fuentes cercanas a la intervención confirman que hay pocos acreedores de deuda porque tenía muy pocas emisiones.

Además, la Comisión Nacional del Mercado de Valores (CNMV) ha suspendido los reembolsos de los fondos de inversión vinculados a Banco Madrid. Los fondos no están garantizados por el Fondo de Garantía de Depósitos, pero no se pierden con la liquidación del banco. De momento quedan bloqueados, ya que la gestora, aun siendo independiente, realizaba todas las operaciones a través del banco y este no puede funcionar.

3. La investigación apunta al blanqueo: Las caras conocidas

La investigación abierta tanto en Andorra como en España ha puesto de manifiesto que “el blanqueo estaba institucionalizado en estas dos entidades financieras; es decir, funcionaban como auténticas estructuras de lavado de dinero”, lo que añade más gravedad a este complejo caso.

Se han detectado tres tipos de clientes con responsabilidades muy distintas. El primero, formado por individuos de la delincuencia organizada que usaban los dos bancos para blanquear enormes cantidades de dinero; un segundo, al que las entidades “facilitaban” las herramientas y los soportes necesarios para defraudar, y un tercero, el de la mayoría, que utilizaba Banco Madrid para los fines legales que son propios del negocio de la banca privada, como es la realización de inversiones con el dinero de los depositantes.

Foto: Banco Madrid

Foto: Banco Madrid

Según el diario El Mundo, algunos “jerarcas del chavismo están siendo investigados por blanqueo”. Este periódico explica que “han podido manejar fondos en España procedentes presuntamente de sobornos millonarios a cambio de adjudicaciones del régimen venezolano”. Asimismo, destaca que se prestó “ayuda financiera” al mafioso ruso Andrei Petrov, “que necesitaba una entidad española para una operación de un millón de euros para comprar un local comercial en Lloret de Mar”. Presuntamente encontró apoyo en Banco de Madrid. También el supuesto entramado de blanqueo de Gao Ping ha vuelto al foco mediático.

Además, según el mismo diario, en la documentación de la Comisión de Prevención de Blanqueo de Capitales e Infracciones Monetarias (SEPBLAC) figura un listado de clientes sospechosos de haber realizado operaciones ilícitas o lavado de dinero, como el ex director general de la Policía y ex presidente de las Cortes Valencianas, Juan Cotino, y los hermanos Flores, empresarios conocidos por la organización de la trágica fiesta del Madrid Arena, según informa El MundoEl Confidencial añade otros nombres a la lista, como una sicav propiedad de la familia Carceller, dueños de la cervecera Damm.

por si fuera poco, el caso de BPA y Banco Madrid han dejado definitivamente sin excusas a las entidades andorranas para poner trabas al envío de información a España sobre importantes casos de corrupción, como el de Bárcenas y el de la familia Pujol. No en vano, a los Pujol les quedaban 1,5 millones de euros en las cuentas abiertas, un dinero que ahora están expuestos a perder 1,1 millones según sea la evolución de Banco Madrid.

4. Chivatazo y posible borrado de información

La retirada masiva de capitales vivida en Banco Madrid en los días que siguieron a la crisis de su matriz andorrana, y que ha provocado una situación de insolvencia en la entidad, pudo no ser sólo fruto del miedo. Internamente se sospecha de que algunos gestores del banco dieron la voz de alarma entre sus clientes que corrieron a retirar sus capitales a sabiendas de lo que podía estar por venir.

Explica Efe que, según declaraciones de la presidenta de la CNMV, Elvira Rodríguez, sólo en fondos de inversión se sacaron unos 40 millones, aunque ésta no es una cifra oficial y algunos elevan esa cantidad hasta los 70 millones. A esta cantidad habría que sumar los depósitos retirados por los clientes, que se empezaron a reclamar tras la intervención del Banco de España (BdE). De hecho, fuentes consultadas por El Confidencial Digital señalan que habrían “volado” 150 millones de euros, a una media de 30 millones diarios.

Por otro lado, tanto Anticorrupción como la Unidad de Delincuencia Económica y Fiscal de la Policía (UDEF) se personaron en la sede de Banco Madrid para recabar información de los ordenadores de la filial de Banca Privada d’Andorra y se encontraron con que los servidores están en el Principado.

Ante tal eventualidad y para asegurarse de que no haya habido ningún borrado de información, Anticorrupción tiene previsto enviar una comisión rogatoria a Andorra para ver si coinciden los datos obtenidos en Madrid y los que guardan en la sede del BPA, informa El Confidencial. Indica el medio que fuentes de la investigación indican que, aunque se hubieran eliminado datos, quedaría registro en los servidores.

5. La liquidación parece la salida natural

Diversas fuentes apuntan a que Banco Madrid acabará liquidado debido a su pequeño tamaño y al fuerte golpe que ha recibido su reputación. El Banco de España ha optado por el camino rápido hacia una liquidación ordenada para evitar que la fuga de depósitos quiebre el banco.

Además, las sanciones que puede imponer EE UU a Banca Privada de Andorra, sin contar Banco Madrid, alcanzarían los 340 millones de euros, cantidad que tendría que asumir el Ministerio de Economía a través del FROB, motivo por el que se ha paralizado el concurso voluntario de acreedores. La cantidad es elevada, ya que supone cinco años de beneficio de la entidad, aunque las multas de EE UU son un porcentaje de los ingresos, y también dependerán de la colaboración de la entidad financiera, por lo que se podría rebajar la sanción.

Este es el principal punto que enfrenta a grandes fortunas y al Ministerio de Economía, dirigido por Luis de Guindos, quien no tuvo reparos en pedir un rescate financiero para las cajas de ahorro en quiebra por valor de 51.000 millones de euros en efectivo.

Banco Madrid es una entidad que dedica más de la mitad de su negocio a gestionar grandes inversiones, mientras que su actividad de otorgar crédito es muy reducida. No es, por lo tanto, casualidad que sus inversores hayan sido los más beneficiados por la amnistía fiscal de Montoro y tampoco que su liquidación haya sido anunciada por el Banco de España una vez que el Tesoro de Estados Unidos comenzase a investigarla por operaciones de blanqueo de capitales relacionadas con las mafias rusa, venezolana y china. Una liquidación que es “sencilla” porque no es un banco sistémico.

Como dato final, conviene destacar que los principales directivos del Banco de Madrid son José Pérez (fue director de supervisión del Banco de España durante 25 años) y Soledad Núñez (directora general del Tesoro con el Gobierno de Zapatero y participó en la venta de Banco de Madrid como consejera del Banco de España).

Artículo original: “Escándalo en Banco Madrid: El descalabro del ‘paraíso fiscal de la Castellana’ en cinco claves”

Autor: Carlos Mier

Comparte tu punto de vista

XHTML: Puedes usar estas etiquetas: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>