Banking as a Service: una plataforma bancària construïda de principi a fi
Una plataforma multientitat amb què una empresa dona d'alta les seves societats a Europa i als Estats Units, cobra els clients amb enllaços de pagament i factures, aprova i paga despeses de proveïdors des dels seus comptes bancaris i ho manté tot sincronitzat amb la comptabilitat. Com a CTO fraccional de CoinPanel, la vaig dissenyar i construir sencera.
- El meu paper
- CTO fraccional, arquitectura i desenvolupament complet
- Client
- CoinPanel, Suècia
- Stack
- Python, FastAPI, PostgreSQL, React 19, Cloud Run
- Integracions
- Stripe Connect, Revolut, Xero, Wise

- 187operacions d'API documentades
- 6integracions financeres i comptables
- 3entorns: test, sandbox i producció
- UE + EUAentitats legals des d'un mateix backend
El repte
Passar d'un producte de trading a una plataforma que altres empreses poguessin integrar per cobrar, pagar i conciliar, amb la seguretat i la traçabilitat que exigeix el sector financer, operant en dues jurisdiccions i sense un equip gran al darrere.
Què vaig construir
- Backend en Python amb FastAPI i PostgreSQL: un monòlit modular amb rutes separades per audiència (empresa, client final, pagaments públics, webhooks).
- Cobraments amb Stripe Connect: cada entitat legal és un compte connectat, amb credencials separades per a Europa i els Estats Units.
- Pagaments i tresoreria amb Revolut Business i Wise, inclosos esborranys que requereixen confirmació humana abans d'executar-se.
- Sincronització bidireccional amb Xero i Hiveage, reversible factura a factura, i lectura automàtica de factures amb OCR.
- Despeses de proveïdor amb flux d'aprovació per rols i traça d'auditoria completa.
- Consola de desenvolupador per als clients: claus d'API, webhooks signats i documentació OpenAPI.
- Frontend en React 19, TypeScript i Vite; infraestructura a Google Cloud amb Terraform i CI/CD a GitHub Actions.
La plataforma



Seguretat i traçabilitat
Webhooks verificats
Signatura comprovada a cada webhook d'entrada (Stripe, Revolut, Wise) i signatura HMAC als de sortida, amb protecció contra reenviaments.
Secrets fora del codi
Credencials a Secret Manager, tokens OAuth de tercers xifrats en repòs i claus d'API desades només com a hash.
Control d'accés per rols
Cinc nivells de permís declarats a cada endpoint, i tokens que no serveixen fora de la seva audiència.
Doble control en els pagaments
No es pot pagar un proveïdor fins que algú n'aprova les dades bancàries, i queda registrat qui ho ha fet i quan.
Traçabilitat d'extrem a extrem
Un identificador per petició a tots els logs estructurats: qualsevol operació es pot seguir des de la resposta HTTP.
Protecció SSRF
Les URL de webhook dels clients es validen contra xarxes privades abans de cada lliurament.
Decisions tècniques
Outbox per als webhooks
Els esdeveniments per als partners s'encuen i s'entreguen amb reintents: un partner caigut no bloqueja ni perd mai un pagament.
Versió del codi al token
Canviar una constant invalida totes les sessions a l'instant, sense taula de revocació ni consultes addicionals.
El sandbox com a producte
El mateix contenidor serveix els tres entorns; en sandbox activa la documentació, els límits i les dades de demostració per a una demo pública d'autoservei.
Resultat
Una plataforma BaaS en producció, amb versions etiquetades i auditables, un sandbox obert que fan servir clients, vendes i inversors, i la base tècnica que CoinPanel va construir sobre la seva experiència en cripto-trading en temps real.