www.alsa.es Open in urlscan Pro
45.60.87.106  Public Scan

Submitted URL: http://www.alsa.es/
Effective URL: https://www.alsa.es/
Submission: On March 13 via api from US — Scanned from ES

Form analysis 3 forms found in the DOM

Name: loginFormPOST https://www.alsa.es/home?p_p_id=BusplusLoginPortlet_WAR_Alsaportlet_INSTANCE_utilityMiscLogin&p_p_lifecycle=1&p_p_state=normal&p_p_mode=view&_BusplusLoginPortlet_WAR_Alsaportlet_INSTANCE_utilityMiscLogin_javax.portlet.action=busplusLoginAction&p_auth=8Wiarh0z

<form class="form ng-pristine ng-invalid ng-invalid-required ng-valid-pattern" id="loginForm" name="loginForm" method="post"
  action="https://www.alsa.es/home?p_p_id=BusplusLoginPortlet_WAR_Alsaportlet_INSTANCE_utilityMiscLogin&amp;p_p_lifecycle=1&amp;p_p_state=normal&amp;p_p_mode=view&amp;_BusplusLoginPortlet_WAR_Alsaportlet_INSTANCE_utilityMiscLogin_javax.portlet.action=busplusLoginAction&amp;p_auth=8Wiarh0z"
  novalidate="" data-ng-submit="manageSubmit($event)" autocomplete="off">
  <!-- Post Action -->
  <input type="hidden" name="_BusplusLoginPortlet_WAR_Alsaportlet_INSTANCE_utilityMiscLogin_postLoginRedirect" id="_BusplusLoginPortlet_WAR_Alsaportlet_INSTANCE_utilityMiscLogin_postLoginRedirect" value="">
  <input type="hidden" name="_BusplusLoginPortlet_WAR_Alsaportlet_INSTANCE_utilityMiscLogin_postLoginRedirectUrl" id="_BusplusLoginPortlet_WAR_Alsaportlet_INSTANCE_utilityMiscLogin_postLoginRedirectUrl" value="">
  <fieldset>
    <!-- componente login google -->
    <div class="row">
      <div class="col-xs-12 px-0" ng-class="{'col-md-6 col-md-offset-3': !isPopupLogin}">
        <div class="g_id_signin" data-type="standard" data-shape="rectangular" data-theme="outline" data-text="signin_with" data-size="large" data-width="285" data-locale="es_ES" data-logo_alignment="left">
          <div class="S9gUrf-YoZ4jf" style="position: relative;">
            <div>
              <div tabindex="0" role="button" aria-labelledby="button-label" class="nsm7Bb-HzV7m-LgbsSe  hJDwNd-SxQuSe i5vt6e-Ia7Qfc uaxL4e-RbRzK" style="width:285px; max-width:400px; min-width:min-content;">
                <div class="nsm7Bb-HzV7m-LgbsSe-MJoBVe"></div>
                <div class="nsm7Bb-HzV7m-LgbsSe-bN97Pc-sM5MNb ">
                  <div class="nsm7Bb-HzV7m-LgbsSe-Bz112c"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" class="LgbsSe-Bz112c">
                      <g>
                        <path fill="#EA4335" d="M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z"></path>
                        <path fill="#4285F4" d="M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z"></path>
                        <path fill="#FBBC05" d="M10.53 28.59c-.48-1.45-.76-2.99-.76-4.59s.27-3.14.76-4.59l-7.98-6.19C.92 16.46 0 20.12 0 24c0 3.88.92 7.54 2.56 10.78l7.97-6.19z"></path>
                        <path fill="#34A853" d="M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z"></path>
                        <path fill="none" d="M0 0h48v48H0z"></path>
                      </g>
                    </svg></div><span class="nsm7Bb-HzV7m-LgbsSe-BPrWId">Iniciar sesión con Google</span><span class="L6cTce" id="button-label">Iniciar sesión con Google</span>
                </div>
              </div>
            </div><iframe
              src="https://accounts.google.com/gsi/button?type=standard&amp;shape=rectangular&amp;theme=outline&amp;text=signin_with&amp;size=large&amp;width=285&amp;logo_alignment=left&amp;client_id=1095897870165-1bvb91t0n687k6l037s2ltfh9j4rtrga.apps.googleusercontent.com&amp;iframe_id=gsi_714451_505852&amp;as=kj5hj0xEGL%2BF6VeGjDGAQQ&amp;hl=es_ES"
              allow="identity-credentials-get" id="gsi_714451_505852" title="Botón Iniciar sesión con Google" style="display: block; position: relative; top: 0px; left: 0px; height: 0px; width: 0px; border: 0px;"></iframe>
          </div>
        </div>
      </div>
    </div>
    <div class="row">
      <div class="col-xs-12" ng-class="{'col-md-6 col-md-offset-3': !isPopupLogin}">
        <p class="google-o"><strong class="google-o__text">o</strong></p>
      </div>
    </div>
    <!-- fin componente login google -->
    <!-- Form fields -->
    <div class="form-row row">
      <!-- Bloque para el input DocumentNumber -->
      <div class="col-xs-12" ng-class="{'col-md-6 col-md-offset-3': !isPopupLogin}">
        <div class="form-group">
          <label for="_BusplusLoginPortlet_WAR_Alsaportlet_INSTANCE_utilityMiscLogin_busplusDocumentNumber">NIF / NIE / Pasaporte/Email<span class="asterisco">*</span>
            <!-- ngIf: showErrorMessage(loginForm._BusplusLoginPortlet_WAR_Alsaportlet_INSTANCE_utilityMiscLogin_userName) -->
          </label>
          <input id="_BusplusLoginPortlet_WAR_Alsaportlet_INSTANCE_utilityMiscLogin_busplusDocumentNumber" name="_BusplusLoginPortlet_WAR_Alsaportlet_INSTANCE_utilityMiscLogin_userName" type="text"
            placeholder="Introduce tu documento de identidad o email" class="form-control ng-pristine ng-invalid ng-invalid-required"
            data-ng-class="{'invalid-field': showErrorMessage(loginForm._BusplusLoginPortlet_WAR_Alsaportlet_INSTANCE_utilityMiscLogin_userName)}" data-ng-model="documentNumber" data-required="" data-ng-focus="" data-uw-rm-form="nfx">
          <div class="error-container ng-hide" data-ng-show="showErrorMessage(loginForm._BusplusLoginPortlet_WAR_Alsaportlet_INSTANCE_utilityMiscLogin_userName)">
            <small class="error-message" data-ng-show="loginForm._BusplusLoginPortlet_WAR_Alsaportlet_INSTANCE_utilityMiscLogin_userName.$error.required">Campo requerido.</small>
          </div>
        </div>
      </div>
    </div> <!-- row -->
    <div class="form-row row">
      <!-- Bloque para el input Password -->
      <div class="col-xs-12" ng-class="{'col-md-6 col-md-offset-3': !isPopupLogin}">
        <div class="form-group">
          <label for="_BusplusLoginPortlet_WAR_Alsaportlet_INSTANCE_utilityMiscLogin_busplusPassword">Contraseña<span class="asterisco">*</span>
            <!-- ngIf: showErrorMessage(loginForm._BusplusLoginPortlet_WAR_Alsaportlet_INSTANCE_utilityMiscLogin_password) -->
          </label>
          <input id="_BusplusLoginPortlet_WAR_Alsaportlet_INSTANCE_utilityMiscLogin_busplusPassword" name="_BusplusLoginPortlet_WAR_Alsaportlet_INSTANCE_utilityMiscLogin_password" type="password" placeholder="Introduce tu contraseña"
            class="form-control ng-pristine ng-invalid ng-invalid-required" data-ng-class="{'invalid-field': showErrorMessage(loginForm._BusplusLoginPortlet_WAR_Alsaportlet_INSTANCE_utilityMiscLogin_password)}" data-ng-model="password"
            data-required="" data-ng-focus="" data-uw-rm-form="nfx">
          <div id="show_password" data-ng-class="revealedPassword_formLogin() ? 'icn-eye c-password__icon--slash' : 'icn-eye'" class="c-password__icon icn-eye ng-hide" type="image" data-ng-show="showButtonRevealPassword_formLogin()"
            data-ng-click="mostrarContrasena_formLogin($event)" title="Ver contraseña">
            <span class="ui-hidden-accessible">Ver contraseña</span>
          </div>
          <div class="error-container ng-hide" data-ng-show="showErrorMessage(loginForm._BusplusLoginPortlet_WAR_Alsaportlet_INSTANCE_utilityMiscLogin_password)">
            <small class="error-message" data-ng-show="loginForm._BusplusLoginPortlet_WAR_Alsaportlet_INSTANCE_utilityMiscLogin_password.$error.required">Campo requerido.</small>
          </div>
        </div>
      </div>
    </div><!-- row -->
    <div class="form-row row">
      <div class="col-xs-12" ng-class="{'col-md-6 col-md-offset-3': !isPopupLogin}">
        <!-- Esta parte no debe ser visible en el paso 3 - Fin -->
        <!-- Recordar en futuras visitas -->
        <div class="rememberLogin-container">
          <input id="_BusplusLoginPortlet_WAR_Alsaportlet_INSTANCE_utilityMiscLogin_rememberMe" class="ui-hidden-accessible" name="_BusplusLoginPortlet_WAR_Alsaportlet_INSTANCE_utilityMiscLogin_rememberMe" type="checkbox" value="true" checked=""
            data-uw-rm-form="nfx">
          <label class="label-checkbox checkbox-altocontraste" for="_BusplusLoginPortlet_WAR_Alsaportlet_INSTANCE_utilityMiscLogin_rememberMe"> Recuérdame para futuras visitas </label>
        </div>
      </div>
    </div><!-- row -->
    <div class="form-row row">
      <div class="col-xs-12" ng-class="{'col-md-6 col-md-offset-3': !isPopupLogin}">
        <button type="submit" class="btn btn-primary">Entrar</button>
      </div>
    </div> <!-- row -->
    <div class="form-row row">
      <div class="col-xs-12" ng-class="{'col-md-6 col-md-offset-3': !isPopupLogin}">
        <!-- Recuperar contraseña: Esta parte no debe ser visible en el paso 3 -->
        <!-- ngIf: !isThirdStep() -->
        <div class="recoverPass-container mt-3 ng-scope" data-ng-if="!isThirdStep()">
          <script type="text/javascript">
            params["isTestEnvironment"] = ""; // indica si estamos en entorno de desarrollo o produccion
            params["jsonDateFormat"] = "yyyy/MM/dd hh:mm:ss";
            params["timestamp"] = "1710215122000";
            params["responsive992"] = "991";
            params["responsive768"] = "767";
            params["groupId"] = "21643679";
            params["contextPath"] = '/o/Alsa-portlet';
            params["validNamePattern"] = "^[0-9a-zA-Zá-úÁ-ÚñÑÄËÏÖÜäëïöüàèìòùÀÈÌÒÙªº\\-\\s\\.]*$";
            //Si existe busplususer y no ha sido pasado como parámetro
            //Informacion para contenidos en ventanas emergentes de condiciones de compra, etc
            params["newsletterConditions"] = '21690005';
            //Constantes globales (se usaran en controladores y templates con constants.PASSPORT)
            //tipos de documentos a mostrar en los combos
            constants["PASSPORT"] = 0;
            constants["NIF"] = 1;
            constants["NIE"] = 2;
            if (params["activeGoogleTag"] == "true") {
              if ('') {
                alsa_GA.busplusAutoLogin('');
              }
              $(document).ready(function() {
                alsa_GA.externalLinksInit();
              });
            }
          </script>
          <script src="https://estaticos.alsa.es/o/Alsa-portlet/busplus/busplusresetpassword/app/busplusresetpassword-min.js?t=1710215122000" type="text/javascript"></script>
          <!-- <script src="https://estaticos.alsa.es/o/Alsa-portlet/busplus/busplusresetpassword/app/newPasswordFormApp.js?t=1710215122000" type="text/javascript"></script> -->
          <!-- <script src="https://estaticos.alsa.es/o/Alsa-portlet/busplus/busplusresetpassword/app/newPasswordFormAppController.js?t=1710215122000" type="text/javascript"></script> -->
          <!-- <script src="https://estaticos.alsa.es/o/Alsa-portlet/busplus/busplusresetpassword/app/recoverPasswordApp.js?t=1710215122000" type="text/javascript"></script> -->
          <!-- <script src="https://estaticos.alsa.es/o/Alsa-portlet/busplus/busplusresetpassword/app/recoverPasswordDirective.js?t=1710215122000" type="text/javascript"></script> -->
          <!-- <script src="https://estaticos.alsa.es/o/Alsa-portlet/busplus/busplusresetpassword/app/recoverPasswordService.js?t=1710215122000" type="text/javascript"></script> -->
          <script src="https://estaticos.alsa.es/o/Alsa-portlet/busplus/busplusresetpassword/app/recoverPasswordService.js?t=1710215122000" type="text/javascript"></script>
          <link rel="stylesheet" type="text/css" href="https://estaticos.alsa.es/o/Alsa-portlet/busplus/busplusresetpassword/css/recover-password.css?t=1710215122000">
          <script type="text/javascript">
            params["namespaceRecoverPassword"] = "_BusplusLoginPortlet_WAR_Alsaportlet_";
            params["RESET_PASSWORD_SHOW_SMS"] = 'true';
            i18n.addTranslation('busplus.recover-password.title', '¿Has olvidado tu contraseña?');
            i18n.addTranslation('busplus.recover-password.question', 'Escribe tu número de documento NIF,NIE, Pasaporte.');
            i18n.addTranslation('busplus.recharge-card.document-number', 'Número de documento');
            i18n.addTranslation('busplus.recover-password.question.email-empty', 'Tu usuario no tiene un email asociado. Por favor, introduce los siguientes datos de tu usuario y una dirección de email para hacerte llegar tu contraseña.');
            i18n.addTranslation('busplus.login.error-email-message', 'Usuario sin dirección de email.');
            i18n.addTranslation('busplus.login.error-email-message2', 'La fecha de nacimiento introducida no coincide con la del usuario. Por favor inténtelo de nuevo.');
            i18n.addTranslation('busplus.recover-password.id-placeholder', 'NIF/NIE/Pasaporte');
            i18n.addTranslation('busplus.recover-password.send-password', 'Recuperar contraseña');
            i18n.addTranslation('busplus.recover-password.password-sent', 'Te hemos enviado un email con tu nueva contraseña.');
            i18n.addTranslation('busplus.recover-password.can-change',
              'Mira tu bandeja de correo y si no lo encuentras, revisa la bandeja de correo no deseado o spam. Si quieres modificar la nueva contraseña que te hemos enviado, entra en la sección "Tu perfil", dentro de tu Alsa Plus.');
            i18n.addTranslation('busplus.login.error-message', 'Credenciales incorrectas.');
            i18n.addTranslation('busplus.login.error-message.email-empty', 'busplus.login.error-message.email-empty');
            i18n.addTranslation('busplus.login.unknown-error-message', 'Error desconocido durante el login. Por favor inténtalo más tarde.');
            i18n.addTranslation('busplus.email.info.body-part1', 'Revisa tu bandeja de entrada, valida tu email para completar el registro Alsa Plus');
            i18n.addTranslation('busplus.document-number.label', 'NIF / NIE / Pasaporte');
            i18n.addTranslation('busplus.birth-date.label', 'Fecha de nacimiento');
            i18n.addTranslation('general.label.day', 'Día');
            i18n.addTranslation('general.label.month', 'Mes');
            i18n.addTranslation('general.label.year', 'Año');
            i18n.addTranslation('busplus.email.label', 'Email');
            i18n.addTranslation('zz23.busplus.recover-password.password-sent', 'Si tus datos son correctos, recibirás un email para crear una nueva contraseña');
            i18n.addTranslation('zz23.busplus.recover-password.can-change',
              'Solo tienes que hacer clic en el enlace que aparece en el email y crear una nueva contraseña. Si no encuentras el mail en la bandeja de entrada, revisa la bandeja de correo no deseado o spam.');
            i18n.addTranslation('zz23.busplus.recover-password.can-change.note', 'IMPORTANTE: Recuerda que este enlace solo tiene una validez de 30 minutos desde que recibes el email.');
            i18n.addTranslation('zzz01.alsaplus.login.lost-password-question', '¿Olvidaste tu contraseña?');
            i18n.addTranslation('validation.required-field', 'Campo requerido.');
            i18n.addTranslation('zzz05.validation.password.secure', 'Introduce una contraseña segura: al menos 8 caracteres que incluyan una mayúscula, una minúscula y un número.');
            i18n.addTranslation('validation.not-match', 'Los campos no coinciden');
            i18n.addTranslation('busplus.profile.password.new', 'Nueva contraseña');
            i18n.addTranslation('busplus.profile.password.new.repeat', 'Confirmar la nueva contraseña');
            i18n.addTranslation('zzz05.recover-password.do.not.remember.email.phonenumber', 'No recuerdo el email ni el teléfono asociado');
            i18n.addTranslation('zzz05.recover-password.verify.sms', 'Código de verificación recibido');
            i18n.addTranslation('zzz05.recover-password.verify.sms.message', 'Si tus datos son correctos, recibirás un sms con un código de acceso de un sólo uso');
            i18n.addTranslation('zzz05.recover-password.can.not.contact', '¡Parece que no podemos contactar contigo!');
            i18n.addTranslation('zzz05.recover-password.refill.form', 'Por favor, rellena este formulario para que podamos ayudarte.');
            i18n.addTranslation('zzz05.recover-password.contact.alsaplus', 'Contacto Alsa Plus');
            i18n.addTranslation('general.navigation.close', 'Cerrar');
            i18n.addTranslation('zzz05.recover-password.select.how', 'Selecciona cómo prefieres restablecer tu contraseña');
            i18n.addTranslation('zzz05.recover-password.sms', 'Mensaje de texto (SMS)');
            i18n.addTranslation('zzz01.alsaplus.change-password', 'Cambiar contraseña');
            i18n.addTranslation('zzz05.general.resend', 'Reenviar');
            i18n.addTranslation('zzz03.registered-user.registry.success.explanation', 'Tus datos se han guardado correctamente');
            i18n.addTranslation('contactForm.error.title', 'Se ha producido un error');
            i18n.addTranslation('zzz05.reset-password.retries.left1', 'Código de verificación erróneo, te queda/n');
            i18n.addTranslation('zzz05.reset-password.retries.left2', '\ intento/s.');
            i18n.addTranslation('zzz05.reset-password.sms.active', 'Ya tienes un código de verificación activo, revisa en tu teléfono e introduce el código de verificación');
            i18n.addTranslation('zzz05.reset-password.no.retries', 'Ya no te quedan intentos, vuelve a enviar el SMS');
            i18n.addTranslation('zzz05.reset-password.resend.sms', 'Código de verificación erróneo, ya no te quedan intentos, vuelve a enviar el SMS.');
            i18n.addTranslation('zzz05.reset-password.sms.timeout', 'Código de verificación expirado. Vuelve a solicitar el envío SMS.');
          </script>
          <div id="recoverPasswordApp">
            <data-sag-alsa-recover-password
              data-recover-password-url="https://www.alsa.es/home?p_p_id=BusplusLoginPortlet_WAR_Alsaportlet&amp;p_p_lifecycle=2&amp;p_p_state=normal&amp;p_p_mode=view&amp;p_p_resource_id=AjaxRecoverPassword&amp;p_p_cacheability=cacheLevelPage&amp;p_p_auth=VMDAaUfB"
              data-recover-password-reset-email-url="https://www.alsa.es/home?p_p_id=BusplusLoginPortlet_WAR_Alsaportlet&amp;p_p_lifecycle=2&amp;p_p_state=normal&amp;p_p_mode=view&amp;p_p_resource_id=AjaxRecoverPasswordResetEmail&amp;p_p_cacheability=cacheLevelPage&amp;p_p_auth=VMDAaUfB"
              data-recover-password-sms-url="https://www.alsa.es/home?p_p_id=BusplusLoginPortlet_WAR_Alsaportlet&amp;p_p_lifecycle=2&amp;p_p_state=normal&amp;p_p_mode=view&amp;p_p_resource_id=AjaxRecoverPasswordSMS&amp;p_p_cacheability=cacheLevelPage&amp;p_p_auth=VMDAaUfB"
              data-recover-password-check-verification-code-url="https://www.alsa.es/home?p_p_id=BusplusLoginPortlet_WAR_Alsaportlet&amp;p_p_lifecycle=2&amp;p_p_state=normal&amp;p_p_mode=view&amp;p_p_resource_id=AjaxRecoverPasswordCheckVerificationCode&amp;p_p_cacheability=cacheLevelPage&amp;p_p_auth=VMDAaUfB"
              data-recover-password-reset-password-url="https://www.alsa.es/home?p_p_id=BusplusLoginPortlet_WAR_Alsaportlet&amp;p_p_lifecycle=2&amp;p_p_state=normal&amp;p_p_mode=view&amp;p_p_resource_id=AjaxRecoverPasswordResetPassword&amp;p_p_cacheability=cacheLevelPage&amp;p_p_auth=VMDAaUfB"
              class="ng-isolate-scope">
              <a href="#" data-ng-click="init('recoverPasswordModal')" class="recoverPass-container-link">
	<strong data-ng-bind="i18n.t('zzz01.alsaplus.login.lost-password-question')" class="ng-binding">¿Olvidaste tu contraseña?</strong>
</a>
              <div class="sag-modal fade" id="recoverPasswordModal" aria-labelledby="recoverPasswordModal-title" role="dialog" aria-describedby="recoverPasswordModal-desc" tabindex="-1" aria-hidden="true">
                <div class="sag-modal-dialog sag-modal-dialog--medium pb-3">
                  <data-ng-form role="form" name="recoverForm" id="recoverForm" class="recover-password ng-pristine ng-valid-required ng-valid ng-valid-pattern" data-ng-model="formRecovery" novalidate="" data-isolate-form="">
                    <div class="sag-modal-header">
                      <button type="button" class="close" data-dismiss="modal">
                        <span aria-hidden="true"></span> <span class="sr-only ng-binding" data-ng-bind="i18n.t('general.navigation.close')">Cerrar</span>
                      </button>
                      <h2 id="recoverPasswordModal-title" class="sag-modal-title sag-modal-title--azul recover-password__modal-title">
                        <strong data-ng-bind="i18n.t('busplus.recover-password.title')" class="ng-binding">¿Has olvidado tu contraseña?</strong>
                      </h2>
                    </div>
                    <div class="sag-modal-content">
                      <div class="sag-modal-body" id="recoverPasswordModal-desc" aria-live="assertive">
                        <!-- Formulario de reset de contaseña -->
                        <!-- ngIf: RESET_PASSWORD_SHOW_SMS -->
                        <!-- Formulario reset contraseña SIN SMS -->
                        <!-- ngIf: !RESET_PASSWORD_SHOW_SMS -->
                        <div data-ng-if="!RESET_PASSWORD_SHOW_SMS" class="ng-scope">
                          <div data-ng-show="(data == '' &amp;&amp; !showContactFormRedirect) || (data != '' &amp;&amp; data.messageError)" class="ng-hide">
                            <!--  formulario para solicitar nueva password con dni (el usuario tiene email asociado) -->
                            <p data-ng-bind="i18n.t('busplus.recover-password.question')" class="ng-binding">Escribe tu número de documento NIF,NIE, Pasaporte.</p>
                            <!-- ngIf: data == '' || (data.messageError!='email-empty' && data.messageError!='email-empty-error') -->
                            <div class="form-group ng-scope" data-ng-if="data == '' || (data.messageError!='email-empty' &amp;&amp; data.messageError!='email-empty-error')">
                              <div data-ng-show="data.messageError" class="bg-danger ng-hide">
                                <p data-ng-bind="data.messageError" class="ng-binding"></p>
                              </div>
                              <label for="account-recovery" data-ng-bind="i18n.t('busplus.recharge-card.document-number')" class="ng-binding">Número de documento</label>
                              <input type="text" name="account-recovery" class="form-control ng-pristine ng-valid" id="account-recovery" autocomplete="off" placeholder="NIF/NIE/Pasaporte" data-ng-model="formRecovery.userIdentifier"
                                data-ng-disabled="loading" capitalize="" data-uw-rm-form="nfx">
                            </div><!-- end ngIf: data == '' || (data.messageError!='email-empty' && data.messageError!='email-empty-error') -->
                            <!--  formulario para solicitar nueva password con fecha nacimiento y nif (el usuario NO tiene email asociado) -->
                            <!-- ngIf: data != '' && (data.messageError=='email-empty' || data.messageError=='email-empty-error') -->
                          </div>
                        </div><!-- end ngIf: !RESET_PASSWORD_SHOW_SMS -->
                        <!-- Mensaje de success al seleccionar el reset por email -->
                        <div data-ng-show="data != ''" class="">
                          <div data-ng-show="data.message" class="ng-hide">
                            <h3 data-ng-bind="i18n.t(data.message)" class="ng-binding">Undefined translation: undefined</h3>
                            <p data-ng-bind="i18n.t(data.message2)" class="ng-binding">Undefined translation: undefined</p>
                            <p data-ng-bind="i18n.t(data.messageNote)" class="ng-binding">Undefined translation: undefined</p>
                          </div>
                        </div>
                        <div data-ng-show="showContactFormRedirect" class="ng-hide">
                          <p data-ng-bind="i18n.t('zzz05.recover-password.can.not.contact')" class="sag-modal-text ng-binding">¡Parece que no podemos contactar contigo!</p>
                          <p data-ng-bind="i18n.t('zzz05.recover-password.refill.form')" class="sag-modal-text ng-binding">Por favor, rellena este formulario para que podamos ayudarte.</p>
                          <p>
                            <a href="/contacto/alsaplus" class="sag-modal-text d-flex align-items-center">
								<span class="c-icn--form">
									<i class="icn-check-c"></i>
									<span class="c-icn--form__lines"></span>
								</span>
								<span data-ng-bind="i18n.t('zzz05.recover-password.contact.alsaplus')" class="ng-binding">Contacto Alsa Plus</span>
							</a>
                          </p>
                          <p class="text-right mb-0">
                            <button type="button" class="btn btn-primary" data-dismiss="modal" data-ng-click="updateShowContactFormRedirect(false)">
                              <span data-ng-bind="i18n.t('general.navigation.close')" class="ng-binding">Cerrar</span>
                            </button>
                          </p>
                        </div>
                        <!-- Formulario para rellenar el codigo de verificacion recibido por SMS -->
                        <div data-ng-show="sendSmsData != '' &amp;&amp; verificatedCodeData == ''" class="ng-hide">
                          <!-- <object data="sms-verification-code-form.html"></object> -->
                          <p class="sag-modal-text ng-binding" data-ng-bind="i18n.t('zzz05.recover-password.verify.sms.message')">Si tus datos son correctos, recibirás un sms con un código de acceso de un sólo uso</p>
                          <p class="recover-pass__verify-sms-text"><strong data-ng-bind="i18n.t('zzz05.recover-password.verify.sms')" class="ng-binding">Código de verificación recibido</strong></p>
                          <data-ng-form role="form" name="checkVerificationCodeForm" data-ng-model="formCheckVerificationCode" novalidate="" data-isolate-form="" class="ng-pristine ng-invalid ng-invalid-required">
                            <div class="row mx-0">
                              <div class="recover-pass__digit-container d-flex mb-3 col-md-6 col-md-offset-3 px-0">
                                <input class="digit-input recover-pass__digit-input ng-pristine ng-invalid ng-invalid-required" type="text" id="userVerificationCode1" name="userVerificationCode1"
                                  data-ng-model="formCheckVerificationCode.userVerificationCode1" pattern="/^[0-9]$/" maxlength="1" required="" autocomplete="off" data-ng-keydown="handleKeyDown($event, 1)" data-uw-rm-form="fx" aria-label="Text field"
                                  data-uw-hidden-control="hidden-control-element">
                                <input class="digit-input recover-pass__digit-input ng-pristine ng-invalid ng-invalid-required" type="text" id="userVerificationCode2" name="userVerificationCode2"
                                  data-ng-model="formCheckVerificationCode.userVerificationCode2" pattern="/^[0-9]$/" maxlength="1" required="" autocomplete="off" data-ng-keydown="handleKeyDown($event, 2)" data-uw-rm-form="fx" aria-label="Text field"
                                  data-uw-hidden-control="hidden-control-element">
                                <input class="digit-input recover-pass__digit-input ng-pristine ng-invalid ng-invalid-required" type="text" id="userVerificationCode3" name="userVerificationCode3"
                                  data-ng-model="formCheckVerificationCode.userVerificationCode3" pattern="/^[0-9]$/" maxlength="1" required="" autocomplete="off" data-ng-keydown="handleKeyDown($event, 3)" data-uw-rm-form="fx" aria-label="Text field"
                                  data-uw-hidden-control="hidden-control-element">
                                <input class="digit-input recover-pass__digit-input ng-pristine ng-invalid ng-invalid-required" type="text" id="userVerificationCode4" name="userVerificationCode4"
                                  data-ng-model="formCheckVerificationCode.userVerificationCode4" pattern="/^[0-9]$/" maxlength="1" required="" autocomplete="off" data-ng-keydown="handleKeyDown($event, 4)" data-uw-rm-form="fx" aria-label="Text field"
                                  data-uw-hidden-control="hidden-control-element">
                                <input class="digit-input recover-pass__digit-input ng-pristine ng-invalid ng-invalid-required" type="text" id="userVerificationCode5" name="userVerificationCode5"
                                  data-ng-model="formCheckVerificationCode.userVerificationCode5" pattern="/^[0-9]$/" maxlength="1" required="" autocomplete="off" data-ng-keydown="handleKeyDown($event, 5)" data-uw-rm-form="fx" aria-label="Text field"
                                  data-uw-hidden-control="hidden-control-element">
                                <input class="digit-input recover-pass__digit-input ng-pristine ng-invalid ng-invalid-required" type="text" id="userVerificationCode6" name="userVerificationCode6"
                                  data-ng-model="formCheckVerificationCode.userVerificationCode6" pattern="/^[0-9]$/" maxlength="1" required="" autocomplete="off" data-ng-keydown="handleKeyDown($event, 6)" data-uw-rm-form="fx" aria-label="Text field"
                                  data-uw-hidden-control="hidden-control-element">
                              </div>
                            </div>
                            <div data-ng-show="dataVerificationCode != '' || sendSmsData != ''" class="mb-3">
                              <div data-ng-show="dataVerificationCode.remainingAttempts" class="error-container ng-hide">
                                <small data-ng-bind="i18n.t('zzz05.reset-password.retries.left1') + ' ' + dataVerificationCode.remainingAttempts + i18n.t('zzz05.reset-password.retries.left2')" class="error-message ng-binding">Código de verificación
                                  erróneo, te queda/n intento/s.</small>
                              </div>
                              <div data-ng-show="dataVerificationCode.message || sendSmsData.message" class="error-container ng-hide">
                                <small data-ng-bind="dataVerificationCode.message || sendSmsData.message" class="error-message ng-binding"></small>
                              </div>
                            </div>
                            <div class="text-right">
                              <button type="button" class="btn btn-lg btn-primary mt-3" data-ng-click="checkVerificationCode()">
                                <span data-ng-bind="i18n.t('ok')" class="ng-binding">Aceptar</span>
                              </button>
                            </div>
                            <!-- ngIf: showResendSMS -->
                          </data-ng-form>
                        </div>
                        <div data-ng-show="verificatedCodeData != '' &amp;&amp; passwordResetMessage == ''" class="ng-hide">
                          <!-- <object data="reset-password-form.html"></object>-->
                          <!-- Formulario de reset de contraseña -->
                          <p class="sag-modal-text ng-binding" data-ng-bind="i18n.t('zzz01.alsaplus.change-password')">Cambiar contraseña</p>
                          <data-ng-form role="form" name="passwordResetForm" data-ng-model="passwordResetForm" novalidate="" data-isolate-form="" class="ng-pristine ng-invalid ng-invalid-required ng-invalid-pattern">
                            <div class="new-pass-form">
                              <div class="form-group">
                                <label data-ng-bind="i18n.t('busplus.profile.password.new')" class="ng-binding">Nueva contraseña</label>
                                <div class="input-with-icon">
                                  <input id="newPassword" type="password" name="newPassword" data-ng-model="passwordResetForm.newPassword" ng-pattern="/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}$/" required=""
                                    class="ng-pristine ng-invalid ng-invalid-required ng-invalid-pattern" data-uw-rm-form="fx" aria-label="Password field" data-uw-hidden-control="hidden-control-element">
                                  <i class="c-password__icon icn-eye" data-ng-class="showPassword ? 'icn-eye c-password__icon--slash' : 'icn-eye'" data-ng-click="showPassword = !showPassword"></i>
                                </div>
                                <div class="error-container ng-hide" data-ng-show="showErrorMessage(passwordResetForm.newPassword)">
                                  <small class="error-message ng-binding" data-ng-show="passwordResetForm.newPassword.$error.required" data-ng-bind="i18n.t('validation.required-field')">Campo requerido.</small>
                                </div>
                              </div>
                              <div class="form-group">
                                <label data-ng-bind="i18n.t('busplus.profile.password.new.repeat')" class="ng-binding">Confirmar la nueva contraseña</label>
                                <div class="input-with-icon">
                                  <input id="newPasswordRepeat" type="password" name="newPasswordRepeat" data-ng-model="passwordResetForm.newPasswordRepeat" ng-pattern="/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}$/" required=""
                                    class="ng-pristine ng-invalid ng-invalid-required ng-invalid-pattern" data-uw-rm-form="fx" aria-label="Password field" data-uw-hidden-control="hidden-control-element">
                                  <i class="c-password__icon icn-eye" data-ng-class="showPasswordRepeat ? 'icn-eye c-password__icon--slash' : 'icn-eye'" data-ng-click="showPasswordRepeat = !showPasswordRepeat"></i>
                                </div>
                                <div class="error-container ng-hide" data-ng-show="showErrorMessage(passwordResetForm.newPasswordRepeat)">
                                  <small class="error-message ng-binding" data-ng-show="passwordResetForm.newPasswordRepeat.$error.required" data-ng-bind="i18n.t('validation.required-field')">Campo requerido.</small>
                                </div>
                              </div>
                              <div class="error-container ng-hide" data-ng-show="resetPasswordData.passwordPatternError">
                                <small class="error-message ng-binding" data-ng-bind="i18n.t('zzz05.validation.password.secure')">Introduce una contraseña segura: al menos 8 caracteres que incluyan una mayúscula, una minúscula y un número.</small>
                              </div>
                              <div class="error-container">
                                <small class="error-message ng-binding ng-hide" data-ng-show="resetPasswordData.passwordMismatchError" data-ng-bind="i18n.t('validation.not-match')">Los campos no coinciden</small>
                              </div>
                            </div>
                            <div class="recover-pass-button button-blue text-right">
                              <button data-ng-click="resetPassword()" type="submit" class="btn btn-primary ng-binding" data-ng-bind="i18n.t('ok')">Aceptar</button>
                            </div>
                          </data-ng-form>
                        </div>
                        <div data-ng-show="passwordResetMessage != ''" class="">
                          <p class="sag-modal-text ng-binding" data-ng-bind="i18n.t(passwordResetMessage)">Undefined translation: undefined</p>
                          <p class="text-right mb-0">
                            <button type="button" class="btn btn-primary ng-binding" data-dismiss="modal" data-ng-bind="i18n.t('ok')">Aceptar</button>
                          </p>
                        </div>
                      </div>
                      <div class="sag-modal-footer">
                        <div class="recover-pass-button button-blue">
                          <!-- ngIf: (data == '' && sendSmsData == '' && !showContactFormRedirect) || (sendSmsData == '' && !data.message && data.messageError!='email-empty' && data.messageError!='email-empty-error' && !showContactFormRedirect) -->
                          <!-- ngIf: data != '' && (data.messageError=='email-empty' || data.messageError=='email-empty-error') -->
                          <div data-ng-show="data != '' &amp;&amp; data.message" class="ng-hide">
                            <button type="button" class="btn btn-primary mb-3 ng-binding" data-dismiss="modal" data-ng-bind="i18n.t('ok')">Aceptar</button>
                          </div>
                          <!-- ngIf: (data == '' || data.messageError) && sendSmsData == '' && verificatedCodeData == '' && !showContactFormRedirect -->
                        </div>
                      </div>
                    </div>
                    <!-- /.modal-content -->
                  </data-ng-form>
                </div>
                <!-- /.modal-dialog -->
              </div>
              <!-- /.modal -->
            </data-sag-alsa-recover-password>
          </div>
        </div><!-- end ngIf: !isThirdStep() -->
      </div>
    </div>
    <!-- Esta parte no debe ser visible en el paso 3, ni cuando se mostrando tambien la pagina de registro -->
    <!-- ngIf: !isThirdStep() && !isRenderModeBoth -->
    <div data-ng-if="!isThirdStep() &amp;&amp; !isRenderModeBoth" class="form-row row login-register ng-scope">
      <div class="form-group col-xs-12" ng-class="{'col-md-6 col-md-offset-3': !isPopupLogin}">
        <span class="link-register">
          <strong class="link-register-slogan">¿No eres cliente Alsa Plus?</strong>
          <a href="https://www.alsa.es/alsaplus-login/registro?p_p_id=BusplusLoginPortlet_WAR_Alsaportlet_INSTANCE_IMjszzHEduc8&amp;p_p_lifecycle=0&amp;p_p_state=normal&amp;p_p_mode=view&amp;p_p_auth=fvHhDLmh">Regístrate</a>
        </span>
      </div>
    </div><!-- end ngIf: !isThirdStep() && !isRenderModeBoth --><!-- row -->
    <!-- Esta parte no debe ser visible en el paso 3 - Fin -->
  </fieldset>
</form>

Name: _BusplusLoginPortlet_WAR_Alsaportlet_INSTANCE_utilityMiscLogin_loginGoogleFormPOST https://www.alsa.es/home?p_p_id=BusplusLoginPortlet_WAR_Alsaportlet_INSTANCE_utilityMiscLogin&p_p_lifecycle=1&p_p_state=normal&p_p_mode=view&_BusplusLoginPortlet_WAR_Alsaportlet_INSTANCE_utilityMiscLogin_javax.portlet.action=busplusLoginGoogleAction&p_auth=8Wiarh0z

<form class="form ng-pristine ng-valid" id="_BusplusLoginPortlet_WAR_Alsaportlet_INSTANCE_utilityMiscLogin_loginGoogleForm" name="_BusplusLoginPortlet_WAR_Alsaportlet_INSTANCE_utilityMiscLogin_loginGoogleForm" method="post"
  action="https://www.alsa.es/home?p_p_id=BusplusLoginPortlet_WAR_Alsaportlet_INSTANCE_utilityMiscLogin&amp;p_p_lifecycle=1&amp;p_p_state=normal&amp;p_p_mode=view&amp;_BusplusLoginPortlet_WAR_Alsaportlet_INSTANCE_utilityMiscLogin_javax.portlet.action=busplusLoginGoogleAction&amp;p_auth=8Wiarh0z"
  enctype="application/x-www-form-urlencoded" novalidate="">
  <input type="hidden" id="_BusplusLoginPortlet_WAR_Alsaportlet_INSTANCE_utilityMiscLogin_credential" name="_BusplusLoginPortlet_WAR_Alsaportlet_INSTANCE_utilityMiscLogin_credential">
  <input type="hidden" name="_BusplusLoginPortlet_WAR_Alsaportlet_INSTANCE_utilityMiscLogin_postLoginRedirect" id="_BusplusLoginPortlet_WAR_Alsaportlet_INSTANCE_utilityMiscLogin_postLoginRedirect" value="">
  <input type="hidden" name="_BusplusLoginPortlet_WAR_Alsaportlet_INSTANCE_utilityMiscLogin_postLoginRedirectUrl" id="_BusplusLoginPortlet_WAR_Alsaportlet_INSTANCE_utilityMiscLogin_postLoginRedirectUrl" value="">
  <input type="hidden" name="_BusplusLoginPortlet_WAR_Alsaportlet_INSTANCE_utilityMiscLogin_googleRememberLogin" id="_BusplusLoginPortlet_WAR_Alsaportlet_INSTANCE_utilityMiscLogin_googleRememberLogin">
</form>

Name: hrefFmPOST #

<form action="#" aria-hidden="true" class="hide" id="hrefFm" method="post" name="hrefFm"><span></span><input hidden="" type="submit" data-uw-rm-form="fx" aria-label="Submit button" data-uw-hidden-control="hidden-control-element"></form>

Text Content

Saltar al contenido principalHabilitar las funciones de accesibilidad para
Dificultades visualesAbrir el menú de accesibilidad Abrir el menú de navegación
accesible







Información sobre Cookies

Con tu consentimiento, nosotros y nuestros 12 socios usamos cookies o
tecnologías similares para almacenar, acceder y procesar datos personales, como
tus visitas a esta página web, las direcciones IP y los identificadores de
cookies. Algunos socios no te piden consentimiento para procesar tus datos y se
amparan en su legítimo interés comercial. Puedes retirar tu consentimiento u
oponerte al procesamiento de datos según el interés legítimo en cualquier
momento haciendo clic en ''Obtener más información'' o en la política de
privacidad de esta página web.

Nosotros y nuestros socios hacemos el siguiente tratamiento de datos:Cookies
publicitarias, Datos de localización geográfica precisa e identificación
mediante análisis de dispositivos , Publicidad y contenido personalizados,
medición de publicidad y contenido, investigación de audiencia y desarrollo de
servicios

Más InformaciónRechazar opcionalesAceptar y continuar



CAMBIO DE LENGUAJE

Español
Català
Français
Galego
English
Italiano
Portugues
Euskara
Deutsch
Aceptar
 * Español
    * Català
    * Français
    * Galego
    * English
    * Italiano
    * Portugues
    * Euskara
    * Deutsch
   
   Español
 * Atención al cliente
 * Alsa Empresas

 * Alsa Empresas
 * Inicia Sesión
   
   
   ACCESO
   
   Cerrar
   
   
   ACCESO
   
   
   Iniciar sesión con GoogleIniciar sesión con Google
   
   o
   
   NIF / NIE / Pasaporte/Email*
   Campo requerido.
   Contraseña*
   Ver contraseña
   Campo requerido.
   Recuérdame para futuras visitas
   Entrar
   ¿Olvidaste tu contraseña?
   Cerrar
   
   
   ¿HAS OLVIDADO TU CONTRASEÑA?
   
   Escribe tu número de documento NIF,NIE, Pasaporte.
   
   
   
   Número de documento
   
   
   UNDEFINED TRANSLATION: UNDEFINED
   
   Undefined translation: undefined
   
   Undefined translation: undefined
   
   ¡Parece que no podemos contactar contigo!
   
   Por favor, rellena este formulario para que podamos ayudarte.
   
   Contacto Alsa Plus
   
   Cerrar
   
   Si tus datos son correctos, recibirás un sms con un código de acceso de un
   sólo uso
   
   Código de verificación recibido
   
   
   Código de verificación erróneo, te queda/n intento/s.
   
   Aceptar
   
   Cambiar contraseña
   
   Nueva contraseña
   
   Campo requerido.
   Confirmar la nueva contraseña
   
   Campo requerido.
   Introduce una contraseña segura: al menos 8 caracteres que incluyan una
   mayúscula, una minúscula y un número.
   Los campos no coinciden
   Aceptar
   
   Undefined translation: undefined
   
   Aceptar
   
   Aceptar
   ¿No eres cliente Alsa Plus? Regístrate
   
   Close
   
   
   TE HEMOS ENVIADO UN EMAIL...
   
   
   REVISA TU BANDEJA DE ENTRADA, VALIDA TU EMAIL PARA COMPLETAR EL REGISTRO ALSA
   PLUS.
   
   Si no encuentras el email, revisa tu bandeja de correo no deseado o spam.
   
   Close
   
   
   LO SENTIMOS, HA HABIDO UN ERROR AL COMPROBAR TU INVITACIÓN
   
   Por favor, solicita a tu amigo que te genere una nueva invitación.
   Si lo prefieres, puedes continuar con el proceso de alta en Alsa Plus, pero
   PERDERÁS las ventajas de ingresar por invitación.

Toggle navigation





 * Destinos y rutas
   
   
   DESTINOS Y RUTAS
   
   
    * * RUTAS
        
        * MADRID - BARCELONA
        
        * MADRID - GRANADA
        
        * BILBAO - MADRID
        
        * MADRID - TOLEDO
        
        * MÁLAGA - GRANADA
        
        * MADRID - LISBOA
        
        * MADRID - PARÍS
        
        * MADRID - OPORTO
        
        * MÁS RUTAS
   
   
    * * DESTINOS
        
        * MADRID
        
        * GRANADA
        
        * BARCELONA
        
        * BILBAO
        
        * OVIEDO
        
        * PARÍS
        
        * LISBOA
        
        * BURDEOS
        
        * MÁS DESTINOS
   
   
    * * AEROPUERTOS
        
        * MADRID-BARAJAS T4
        
        * MÁLAGA-COSTA DEL SOL
        
        * ALICANTE-ELCHE
        
        * BARCELONA-EL PRAT T1
        
        * GRANADA-JAÉN
        
        * IBIZA
        
        * OPORTO-SÁ CARNEIRO
        
        * GINEBRA
        
        * MÁS AEROPUERTOS

 * Tu viaje
   
   
   TU VIAJE
   
   
    * * HORARIOS
      
      
      * ALSA, MOVILIDAD SEGURA
      
      
      * GESTIÓN DE BILLETES
        
        * CAMBIOS Y ANULACIONES
        
        * POLÍTICA DE CAMBIOS Y ANULACIONES
        
        * SOLICITAR FACTURA
      
      
      * EQUIPAJE
      
      
      * MOVILIDAD ACCESIBLE E INCLUSIVA
   
   
    * * TARIFAS Y DESCUENTOS
        
        * OFERTAS
          
          * TARIFA JOVEN DE 12 A 25
          
          * TARIFA GRUPOS +4
          
          * TARIFA MAYORES DE 60
        
        * BLOQUEA EL ASIENTO DE AL LADO
   
   
    * * BONOS DISPONIBLES
        
        * BONOS GRATUITOS
        
        * BONOS REGIONALES HASTA 50% DTO.

 * A bordo
   
   
   A BORDO
   
   
    * * TIPOS DE AUTOBÚS
        
        * COMFORT
        
        * SUPRA
      
      
      * LOCALIZA TU BUS
   
   
    * * ENTRETENIMIENTO A BORDO
        
        * WIFI
        
        * ALSA RADIO
        
        * OCIO AUDIOVISUAL
    * 

 * Servicios de movilidad
   
   
   SERVICIOS DE MOVILIDAD
   
   
    * * URBANOS Y METROPOLITANOS
        
        * BILBAO
        
        * JAÉN
        
        * TORREJÓN DE ARDOZ
        
        * FERROL
        
        * A CORUÑA
        
        * MURCIA
        
        * MAR MENOR - CARTAGENA
        
        * MÁS URBANOS Y METROPOLITANOS
      
      
      * ALSA MOBI4U
      
      
      * ALSA CAB
      
      
      * OTROS SERVICIOS
        
        * SOPORTES PUBLICITARIOS
      
      
      * ALSA RAIL
   
   
    * * REGIONALES, NACIONALES E INTERNACIONALES
        
        * REGIONALES
          
          * SERVICIO AUTOBUSES COMUNIDAD DE MADRID
          
          * CATALUÑA
          
          * ASTURIAS
          
          * CANTABRIA
          
          * COMUNIDAD VALENCIANA
          
          * MÁS REGIONALES
        
        * NACIONALES
          
          * MADRID - GUADALAJARA
          
          * MURCIA - ALMERÍA
        
        * INTERNACIONALES
          
          * PORTUGAL
          
          * ITALIA
          
          * FRANCIA
          
          * MÁS INTERNACIONALES
   
   
    * * ALQUILER
        
        * AUTOBUSES
        
        * COCHES CON CONDUCTOR
        
        * BODAS
        
        * OTROS EVENTOS
      
      
      * TURÍSTICOS
        
        * AUTOBUSES TURÍSTICOS
        
        * TREN DE FELIPE II
        
        * TRENES HISTÓRICOS
          
          * TRENES PATRIMONIO FERROVIARIO
        
        * NIEVE Y ESQUÍ

 * Alsa Plus
   
   
   ALSA PLUS
   
    * 
    * 
    * 

 * Monedero
   
   
   MONEDERO
   
    * 
    * 
    * 


HASTA DONDE TÚ QUIERAS. SOLUCIONES DE MOVILIDAD - ALSA


VIAJA SIN LÍMITES EN SEMANA SANTA CON TU BONO GRATIS

¡Compra tu bono!





Bonos

Gestiona tus billetes

Localiza tu bus



15% de descuento si te haces Alsa Plus

Date de alta como Alsa Plus en la web ¡y consigue 15% de descuento! Para
obtenerlo, regístrate gratis y no te olvides de hacer clic en "Deseo recibir
ofertas y descuentos personalizados..."

¡Hazte Alsa Plus!

Alsa, líder en movilidad sostenible

Nos mueven tus motivos

En Alsa creemos que no hay trayecto grande o pequeño, que lo importante no es el
destino, sino ese motivo que tienes para llegar allí. Siempre que haya un
motivo, tendremos una forma de llegar a él.

Nos mueves

Alsa, Movilidad Segura

En Alsa seguimos trabajando para garantizarte la máxima seguridad en cada viaje.
Aplicamos estrictos protocolos de limpieza y desinfección y nuestros buses
cuentan con el mejor equipamiento para que viajes seguro y tranquilo.

Movilidad Segura





Compensa tu huella

Ahora puedes compensar la huella de carbono de tu viaje y colaborar en nuestros
proyectos de reforestación para luchar contra el cambio climático. ¡Gracias por
viajar en autobús!

Conoce el Bosque Alsa



 * Tarifas y descuentos
   
   Elige entre nuestras tarifas mínima, reducida o flexible, y entre nuestros
   descuentos: familia numerosa, personas con discapacidad... Muévete al mejor
   precio.
   
   Aprovecha nuestras tarifas

 * Horarios
   
   Consulta todos nuestros horarios y disfruta de todas las ventajas de
   organizar tus rutas de autobús, conociendo las salidas de cada trayecto antes
   de reservar tu billete.
   
   Elige tu horario

 * Equipaje
   
   Puedes llevar contigo hasta 30 kilos de equipaje de forma gratuita. Y, si
   necesitas equipaje extra, no te preocupes, podrás añadir hasta otros 20 kilos
   más.
   
   Descubre más



Descárgate la App

Todo son ventajas: navega de forma sencilla, localiza tu bus en tiempo real,
elige tu forma de pago favorita... y no imprimas tu billete, podrás mostrarlo o
descargarlo en tu wallet.

Google Play Apple Store Huawei App Gallery




EMPTY HEADING

 * Sobre Alsa
 * Gestiona tus billetes
 * Empleo y formación
 * Soportes publicitarios
 * Fondos públicos
 * Contacto
 * Confianza Online


SÍGUENOS

 * 
 * 
 * 
 * 
 * 
 * 



 * Aviso legal
 * Política de privacidad
 * Política de cookies
 * Condiciones de compra
 * Mapa web
 * Accesibilidad web



...


Estás usando un navegador desactualizado o muy antiguo. Te recomendamos que lo
actualices o que uses un navegador más moderno.

Te sugerimos navegadores como Firefox o Chrome para mejorar tu experiencia de
navegación en www.alsa.es.


Cerrar

Please ensure Javascript is enabled for purposes of website accessibility