sin

sin solución

Y porque pones como que usas Switch y no veo la instrucción switch en ningún lado? Mas alla de tu error o no.
La próxima vez intenta colocar un código con la debida sangria, o sea… cada estructura que este al nivel que le corresponde estar como yo lo indico a continuación
Esto es lo que pasa cuando pulsas ‘B’

  if (tecla == 'B') {
      pin[posicion] = tecla = customKeypad.getKey();
      if (pin[posicion]) {
          lcd.clear();
          lcd.setCursor(0,0);
          lcd.print("Ingresando Clave");
          
          for (int i = 0; i <= posicion; i++) {
               lcd.setCursor(i,1);
               lcd.print("i");
          }
          posicion++;
      }
      if (posicion == 5) 
          posicion = 0;
  }

que se supone que es esto

pin[posicion] = tecla = customKeypad.getKey();

Asignas el valor presioinado en el keypad a tecla y a pin[posicion]

O sea que si presiono 1 por ejemplo como 1 es != 0 dará VERDADERO en ese if(pin[posicion]) porque pides pin[0]

Pero el valor digitado es ‘B’ y asi será cada vez porque eso es lo que el programa dice.
Cuando se presione ‘B’ almacenalo en tecla y en pin[posicion] empezando por 0 y hasta que llegue a 5.
Como verás no esta bien.

Entiendo la molestia estaba intentando leer un carácter y se convierta en entero y si error lo estaba intentado con switch luego con if las disculpas del caso gracias x correcciones.

Entiendo la molestia

Qué molestia?

Respecto de la sangría es algo que simplemente con CONTRO+F en el IDE de arduino lo haces automáticamente y luego lo posteas acá y luce al menos organizado. Ayuda mucho hacerlo de ese modo porque uno no pierde el tiempo intentando entender donde empieza y termina cada cosa.

Ahora vamos al código.

Concentrate en esto

  pin[posicion] = tecla = customKeypad.getKey();

Asignas la tecla a pin[posicion] y a tecla para que lo haces asi?

La idea bueno esas lineas son de cuando ingresas una clave, si te fijas cuando ingresas van apareciendo * como si fueras escribiendo y que en vez de asteriscos fueran los caracteres.

Pero ya deje de usar

Ahora estoy con este problema

if(tecla == 'B'){
      lcd.clear();
      lcd.setCursor(0,0); // situamos el cursor el la posición 2 de la linea 0.
      lcd.print("Monto retirar"); // escribimos en LCD
      delay(3000);
      lcd.setCursor(cursor,1); // cursor en la posicion de la variable, linea 1
      char pulsacion = customKeypad.getKey() ;  // leemos pulsacion
      
 if (pulsacion != 0){  // Si el valor es 0 es que no se ha pulsado ninguna tecla
  
 if(pulsacion != '#' && pulsacion != '*'){  // descartamos almohadilla y asterisco
      lcd.print(pulsacion);  // imprimimos pulsacion
      cursor++;  // incrementamos el cursor

Si detecta la letra B pero no se como ingresar caracteres a enteros y restarlos a la variable ahorro.

Difícil ayudarte con códigos mutilados. Pon el código completo si quieres ayuda.