Programar dinero en el 2024 💰

Qué problemas existe hoy, especialmente en LATAM, al programar el dinero en el año 2024. A su vez por qué Shinkansen es tan importante 👀.

Programar dinero en el 2024 💰
Siempre me ha interesado el tren siberiano, tiene algo mágico. Y ya que hablamos de rieles... Photo by Andrey Larin / Unsplash.

Desde hace unas semanas soy parte del equipo de Shinkansen. A pesar de que encontré a payment nerds más grandes que yo y me han enseñado un sin fin de cosas, aún no puedo explicar bien que es lo que hacemos a mis amigos y menos a mis abuelos. No obstante estoy seguro de que si pude explicar Bitcoin a mis abuelos, voy a lograrlo.

Curiosamente siendo 2024, mientras la competencia por llegar a AGI es gigantesca, aparecen y crecen competidores de Chrome y Google, el mundo de las finanzas sigue muy parecido a varias décadas. Revisar si pagaron la factura a la empresa con un cheque y revisarlo automáticamente es tedioso y no trivial. Automatizar la transferencia de los sueldos y proveedores es doloroso y a veces no posible por el famoso digipass. O cuadrar lo que pagué con mi tarjeta y lo que escribí en mi excel sigue siendo un desafío de programación un poco terrible, ya que no hay forma directa de lograrlo.

Yo creo que lo podemos atribuir a dos razones:

  1. Nadie nos enseña programar con plata
  2. Dependemos del acceso a los canales (o rieles 🚅) por donde se envían los datos del dinero.

El link de la primera razón explica muy bien lo que no nos enseñan a programar, así que me centraré en la segunda.

Dall-e representando los rieles actuales por arriba de los andes, lentos pero seguros

Los rieles actuales

A pesar de ser muy Bitcoiner, quiero hacer un par de disclaimers:

Primero, encuentro técnicamente fascinante que sistemas de los 80, 90 y principios del 2000 funcionen hasta el día de hoy.

Segundo, si sigo aprendiendo de Bitcoin, soy un aprendiz más inicial de sistemas bancarios (y por eso estoy en Shinkansen 🙌🏼).

Finalmente, no quiero sonar como que me quejaré de todo, especialmente sabiendo que en Chile tenemos el CCA que nos permite transferir de forma gratuita (a las personas) e instantánea. Al funcionar tan bien, nos da esa sensación de que quizás programar con dinero es así de instantáneo, pero tristemente no lo es.

De todas formas, voy a contar un par de problemas que he visto como programador, en empresas o solo por mi lado.

Barreras a la automatización

Caso imaginario: quiero transferir $1.000 CLP a mi polola/novia por cada vez que compre papas fritas por Uber Eats. Si quiero que el traspaso sea automático para no discutir, un camino sería:

  1. Recibo correo electrónico de Uber Eats con ítem papas fritas
  2. Inicia un "transferir"
  3. Magia negra que simula que soy yo en el banco
  4. Tengo que aceptar en mi app del banco o digipass. Ahí es manual 😪

¡Genial que el Banco me avise! Pero al parecer ya no puedo transferir automáticamente por el pedido de las papas fritas (mejor para mí 🥳).

Pero las empresas no piensan así 👀. Hay personas especiales que tienen que estar durante el día dictando el digipass o aprobando en la página los pagos. Súper, mayor seguridad, pero, ¿si son mil pagos al día? Debe existir otra forma de validar que soy yo el que está haciendo las transacciones. Spoiler, sí existen

Formatos y velocidad

Los sistemas que he visto en los bancos procesan tramas de archivos txt con un sinfín de parámetros y códigos. También pueden pensarse como si nos enviáramos csv sin la cabecera y nos ponemos de acuerdo de qué significa cada cosa.

Esos archivos se transfieren usando SFTP (Secure File Transfer Protocol) o como si enviara un archivo a mi Google Drive. Luego, cada cierto tiempo el computador que recibió esos archivos procesa los que no conocía y escribe en la misma carpeta el resultado de lo que pasó en otro archivo.

Finalmente, rescatamos el archivo y obtenemos el resultado. Ahí vienen los errores y los éxitos.

El dibujo entonces queda con tiempos inventados:

Subo archivo (4 segundos) Espera que se procese (120 segundos) Se procesa (30 segundos) Me doy cuenta de que está listo el archivo (10 segundos) Rescato archivo (4 segundos)

Mientras que en el 2024, si quiero enviar enviar dinero por Stripe (fintech), se ve algo como el siguiente código:

curl <https://api.stripe.com/v1/transfers> \\
  -u "sk_test_4eC39Hq...arjtT1zdp7dcsk_test_4eC39HqLyjWDarjtT1zdp7dc:" \\
  -d amount=400 \\
  -d currency=usd \\
  -d destination=acct_1MTfjCQ9PRzxEwkZ \\
  -d transfer_group=ORDER_95

Mandar la instrucción a una API, esperar un par de segundos y listo. Harta diferencia 👀

De ahí nacen las dudas al programar estos envíos de dinero (por los rieles de los bancos):

  1. ¿Cada cuánto reviso si está el archivo?
  2. ¿Puedo repetir el pago si duplico el archivo?
  3. ¿Qué pasó con el pago?
  4. .....

Hay varios matices y simplificaciones en el ejemplo anterior. No obstante, creo que ejemplifica el modelo mental de cómo funciona un banco. En consecuencia, cómo funciona mi transferencia de dinero, la cual es muy distinta a programar otras funcionalidades: Escribir un cuento, prender una luz de la casa, enviar un correo electrónico, etc.

Acceso

Algunos bancos cuentan con Webservices, APIs o conexiones Host2Host 🥳. ¿Pero cómo llego a ellos? Bueno, no sé, no he preguntado, no tengo pruebas pero no tengo dudas de que no me van a permitir conectarme a la API como persona natural.

Dall-e representando los rieles de Shinkansen a toda velocidad sobre los Andes

Solución

Aquí aparece Shinkansen 🚄. Permite a los programadores o quizás no tan programadores pensar el dinero como si fuera una API de envío de correos electrónicos.

Mejora productos ya existentes o habilita nuevos productos que no se podían imaginar con el modelo mental de estar con digipass mandando transferencias a mano.

Y bueno, la diferencia en el cambio de mentalidad se siente bastante. De hecho, en Buda.com, uno de los primeros clientes de Shinkansen, fui de los integradores y promotores. 👀

Shinkansen, en el mundo no bitcoinizado de hoy, nos acerca a una bondad de Bitcoin: mover dinero a la velocidad de internet.